Merge "Replace a few more logical operators"
authorjenkins-bot <jenkins-bot@gerrit.wikimedia.org>
Mon, 27 Oct 2014 17:59:06 +0000 (17:59 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Mon, 27 Oct 2014 17:59:06 +0000 (17:59 +0000)
69 files changed:
docs/mwlogger.txt
includes/AutoLoader.php
includes/Block.php
includes/DefaultSettings.php
includes/api/i18n/en.json
includes/debug/logger/Logger.php
includes/debug/logger/NullSpi.php
includes/debug/logger/monolog/Spi.php
includes/filebackend/lockmanager/LockManager.php
includes/installer/i18n/lzh.json
includes/installer/i18n/nl.json
includes/json/FormatJson.php
includes/libs/ObjectFactory.php [new file with mode: 0644]
includes/objectcache/SqlBagOStuff.php
includes/search/SearchResult.php
includes/skins/Skin.php
includes/skins/SkinTemplate.php
includes/specials/SpecialSearch.php
includes/specials/SpecialUserrights.php
languages/i18n/be-tarask.json
languages/i18n/be.json
languages/i18n/bn.json
languages/i18n/bs.json
languages/i18n/cs.json
languages/i18n/da.json
languages/i18n/de.json
languages/i18n/egl.json
languages/i18n/en.json
languages/i18n/et.json
languages/i18n/fa.json
languages/i18n/gl.json
languages/i18n/he.json
languages/i18n/hu.json
languages/i18n/ia.json
languages/i18n/ja.json
languages/i18n/ko.json
languages/i18n/lb.json
languages/i18n/lzh.json
languages/i18n/mk.json
languages/i18n/ml.json
languages/i18n/ms.json
languages/i18n/nap.json
languages/i18n/nl.json
languages/i18n/pam.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/ru.json
languages/i18n/sah.json
languages/i18n/sk.json
languages/i18n/sl.json
languages/i18n/sr-ec.json
languages/i18n/sr-el.json
languages/i18n/ta.json
languages/i18n/th.json
languages/i18n/tr.json
languages/i18n/uk.json
languages/i18n/uz.json
languages/i18n/zh-hans.json
languages/i18n/zh-hant.json
languages/messages/MessagesAng.php
languages/messages/MessagesMai.php
maintenance/oracle/update-keys.sql [new file with mode: 0644]
resources/src/mediawiki.ui/components/inputs.less
tests/phpunit/includes/jobqueue/JobQueueTest.php
tests/phpunit/includes/json/FormatJsonTest.php

index 9964e8b..5a3e249 100644 (file)
@@ -50,10 +50,8 @@ a more feature rich logging configuration.
 
 == Globals ==
 ; $wgMWLoggerDefaultSpi
-: Default service provider interface to use with MWLogger
-; $wgMWLoggerMonologSpiConfig
-: Configuration for MWLoggerMonologSpi describing how to configure the
-  Monolog logger instances.
+: Specification for creating the default service provider interface to use
+  with MWLogger
 
 [0]: https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-3-logger-interface.md
 [1]: https://github.com/Seldaek/monolog
index 99b2d84..09bc5c0 100644 (file)
@@ -131,6 +131,7 @@ $wgAutoloadLocalClasses = array(
        'MWHookException' => 'includes/Hooks.php',
        'MWHttpRequest' => 'includes/HttpFunctions.php',
        'MWNamespace' => 'includes/MWNamespace.php',
+       'ObjectFactory' => 'includes/libs/ObjectFactory.php',
        'OutputPage' => 'includes/OutputPage.php',
        'PathRouter' => 'includes/PathRouter.php',
        'PathRouterPatternReplacer' => 'includes/PathRouter.php',
index 134ee6b..3c80035 100644 (file)
@@ -893,7 +893,7 @@ class Block {
        }
 
        /**
-        * Get/set whether the Block is a hardblock (affects logged-in users on a given IP/range
+        * Get/set whether the Block is a hardblock (affects logged-in users on a given IP/range)
         * @param bool|null $x
         * @return bool
         */
index d45e573..6b937ea 100644 (file)
@@ -5219,38 +5219,21 @@ $wgDebugLogGroups = array();
 /**
  * Default service provider for creating MWLogger instances.
  *
- * This can either be the name of a class implementing the MWLoggerSpi
- * interface 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.
- *
- * @since 1.25
- * @var $wgMWLoggerDefaultSpi string|callable
- * @see MwLogger
- */
-$wgMWLoggerDefaultSpi = 'MWLoggerNullSpi';
-
-/**
- * Configuration for MWLoggerMonologSpi logger factory.
+ * 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.
  *
- * Default configuration installs a null handler that will silently discard
- * all logging events.
+ * Alternately the MWLogger::registerProvider method can be called to inject
+ * an MWLoggerSpi instance into MWLogger and bypass the use of this
+ * configuration variable entirely.
  *
  * @since 1.25
- * @see MWLoggerMonologSpi
+ * @var array $wgMWLoggerDefaultSpi
+ * @see MwLogger
  */
-$wgMWLoggerMonologSpiConfig = array(
-       'loggers' => array(
-               '@default' => array(
-                       'handlers' => array( 'null' ),
-               ),
-       ),
-       'handlers' => array(
-               'null' => array(
-                       'class' => '\\Monolog\\Logger\\NullHandler',
-               ),
-       ),
+$wgMWLoggerDefaultSpi = array(
+       'class' => 'MWLoggerNullSpi',
 );
 
 /**
index 82a2c91..2bec759 100644 (file)
        "apihelp-query+allfileusages-param-to": "The title of the file to stop enumerating at.",
        "apihelp-query+allfileusages-param-prefix": "Search for all file titles that begin with this value.",
        "apihelp-query+allfileusages-param-unique": "Only show distinct file titles. Cannot be used with $1prop=ids.\nWhen used as a generator, yields target pages instead of source pages.",
-       "apihelp-query+allfileusages-param-prop": "Which pieces of information to include:\n;ids:Adds the pageid of the using page (cannot be used with $1unique).\n;title:Adds the title of the file.",
+       "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-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+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 pageid of the linking page (cannot be used with $1unique).\n;title:Adds the title of the link.",
+       "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-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-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+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 pageid 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 $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-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-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+alltransclusions-param-to": "The title of the transclusion to stop enumerating at.",
        "apihelp-query+alltransclusions-param-prefix": "Search for all transcluded titles that begin with this value.",
        "apihelp-query+alltransclusions-param-unique": "Only show distinct transcluded titles. Cannot be used with $1prop=ids.\nWhen used as a generator, yields target pages instead of source pages.",
-       "apihelp-query+alltransclusions-param-prop": "Which pieces of information to include:\n;ids:Adds the pageid of the transcluding page (cannot be used with $1unique).\n;title:Adds the title of the transclusion.",
+       "apihelp-query+alltransclusions-param-prop": "Which pieces of information to include:\n;ids:Adds the page ID of the transcluding page (cannot be used with $1unique).\n;title:Adds the title of the transclusion.",
        "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-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+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": "Pageid to search. Cannot be used together with $1title.",
+       "apihelp-query+backlinks-param-pageid": "Page ID to search. Cannot be used together with $1title.",
        "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+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-pageid": "Pageid to search. Cannot be used together with $1title.",
+       "apihelp-query+embeddedin-param-pageid": "Page ID to search. Cannot be used together with $1title.",
        "apihelp-query+embeddedin-param-namespace": "The namespace to enumerate.",
        "apihelp-query+embeddedin-param-dir": "The direction in which to list.",
        "apihelp-query+embeddedin-param-filterredir": "How to filter for redirects.",
        "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-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;!redirects:Only show non-redirects.",
 
        "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-pageid": "Pageid to search. Cannot be used together with $1title.",
+       "apihelp-query+imageusage-param-pageid": "Page ID to search. Cannot be used together with $1title.",
        "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+links-example-namespaces": "Get links from the [[Main Page]] in the User and 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-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;!redirects:Only show non-redirects.",
        "apihelp-query+protectedtitles-param-limit": "How many total pages to return.",
        "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-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+recentchanges-param-user": "Only list changes by this user.",
        "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 (logid, logtype, 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-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-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-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-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+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-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 revision creator.\n;size:Length (bytes) of the revision.\n;sha1:SHA-1 (base 16) of the revision.\n;contentmodel:Content model id.\n;comment:Comment by the user for 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-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 revision creator.\n;size:Length (bytes) of the revision.\n;sha1:SHA-1 (base 16) of the revision.\n;contentmodel:Content model ID.\n;comment:Comment by the user for 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-param-limit": "Limit how many revisions will be returned.",
-       "apihelp-query+revisions-param-startid": "From which revision id to start enumeration.",
-       "apihelp-query+revisions-param-endid": "Stop revision enumeration on this revid.",
+       "apihelp-query+revisions-param-startid": "From which revision ID to start enumeration.",
+       "apihelp-query+revisions-param-endid": "Stop revision enumeration on this revision ID.",
        "apihelp-query+revisions-param-start": "From which revision timestamp to start enumeration.",
        "apihelp-query+revisions-param-end": "Enumerate up to this timestamp.",
        "apihelp-query+revisions-param-user": "Only include revisions made by user.",
        "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-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;!redirects:Only show non-redirects.",
        "apihelp-query+watchlist-param-user": "Only list changes by this user.",
        "apihelp-query+watchlist-param-excludeuser": "Don't list changes by this user.",
        "apihelp-query+watchlist-param-limit": "How many total results to return per request.",
-       "apihelp-query+watchlist-param-prop": "Which additional items to get:\n;ids:Adds revision ids and page ids.\n;title:Adds title of the page.\n;flags:Adds flags for the edit.\n;user:Adds the user who made the edit.\n;userid:Adds user id of whom made the edit.\n;comment:Adds comment of the edit.\n;parsedcomment:Adds parsed comment of the edit.\n;timestamp:Adds timestamp of the edit.\n;patrol:Tags edits that are patrolled.\n;sizes:Adds the old and new lengths of the page.\n;notificationtimestamp:Adds timestamp of when the user was last notified about the edit.\n;loginfo:Adds log information where appropriate.",
+       "apihelp-query+watchlist-param-prop": "Which additional items to get:\n;ids:Adds revision IDs and page IDs.\n;title:Adds title of the page.\n;flags:Adds flags for the edit.\n;user:Adds the user who made the edit.\n;userid:Adds user ID of whom made the edit.\n;comment:Adds comment of the edit.\n;parsedcomment:Adds parsed comment of the edit.\n;timestamp:Adds timestamp of the edit.\n;patrol:Tags edits that are patrolled.\n;sizes:Adds the old and new lengths of the page.\n;notificationtimestamp:Adds timestamp of when the user was last notified about the edit.\n;loginfo:Adds log information where appropriate.",
        "apihelp-query+watchlist-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+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-unblock-example-id": "Unblock block ID #105",
        "apihelp-unblock-example-user": "Unblock user Bob with reason \"Sorry Bob\"",
 
-       "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-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-userrights-description": "Change a user's group membership.",
        "apihelp-userrights-param-user": "User name.",
-       "apihelp-userrights-param-userid": "User id.",
+       "apihelp-userrights-param-userid": "User ID.",
        "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-userid": "Add the user with ID 123 to group \"bot\", and remove from groups \"sysop\" and \"bureaucrat\"",
 
        "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.",
index f5dd1cf..7164bfa 100644 (file)
@@ -198,11 +198,9 @@ class MWLogger implements \Psr\Log\LoggerInterface {
        public static function getInstance( $channel ) {
                if ( self::$spi === null ) {
                        global $wgMWLoggerDefaultSpi;
-                       if ( is_callable( $wgMWLoggerDefaultSpi ) ) {
-                               $provider = $wgMWLoggerDefaultSpi();
-                       } else {
-                               $provider = new $wgMWLoggerDefaultSpi();
-                       }
+                       $provider = ObjectFactory::getObjectFromSpec(
+                               $wgMWLoggerDefaultSpi
+                       );
                        self::registerProvider( $provider );
                }
 
index 6c38c32..33304fc 100644 (file)
  * MWLogger service provider that creates \Psr\Log\NullLogger instances.
  * A NullLogger silently discards all log events sent to it.
  *
+ * Usage:
+ * @code
+ * $wgMWLoggerDefaultSpi = array(
+ *   'class' => 'MWLoggerNullSpi',
+ * );
+ * @endcode
+ *
  * @see MWLogger
  * @since 1.25
  * @author Bryan Davis <bd808@wikimedia.org>
index fc39b25..e514715 100644 (file)
  * for any channel that isn't explicitly named in the 'loggers' configuration
  * section.
  *
- * Configuration can be specified using the $wgMWLoggerMonologSpiConfig global
- * variable.
- *
- * Example:
+ * Configuration will most typically be provided in the $wgMWLoggerDefaultSpi
+ * global configuration variable used by MWLogger to construct its default SPI
+ * provider:
  * @code
- * $wgMWLoggerMonologSpiConfig = array(
- *     'loggers' => array(
- *         '@default' => array(
- *             'processors' => array( 'wiki', 'psr', 'pid', 'uid', 'web' ),
- *             'handlers'   => array( 'stream' ),
- *         ),
- *         'runJobs' => array(
- *             'processors' => array( 'wiki', 'psr', 'pid' ),
- *             'handlers'   => array( 'stream' ),
- *         )
- *     ),
- *     'processors' => array(
- *         'wiki' => array(
- *             'class' => 'MWLoggerMonologProcessor',
- *         ),
- *         'psr' => array(
- *             'class' => '\\Monolog\\Processor\\PsrLogMessageProcessor',
- *         ),
- *         'pid' => array(
- *             'class' => '\\Monolog\\Processor\\ProcessIdProcessor',
- *         ),
- *         'uid' => array(
- *             'class' => '\\Monolog\\Processor\\UidProcessor',
- *         ),
- *         'web' => array(
- *             'class' => '\\Monolog\\Processor\\WebProcessor',
- *         ),
- *     ),
- *     'handlers' => array(
- *         'stream' => array(
- *             'class'     => '\\Monolog\\Handler\\StreamHandler',
- *             'args'      => array( 'path/to/your.log' ),
- *             'formatter' => 'line',
- *         ),
- *         'redis' => array(
- *             'class'     => '\\Monolog\\Handler\\RedisHandler',
- *             'args'      => array( function() {
- *                     $redis = new Redis();
- *                     $redis->connect( '127.0.0.1', 6379 );
- *                     return $redis;
- *                 },
- *                 'logstash'
- *             ),
- *             'formatter' => 'logstash',
- *         ),
- *         'udp2log' => array(
- *             'class' => 'MWLoggerMonologHandler',
- *             'args' => array(
- *                 'udp://127.0.0.1:8420/mediawiki
- *             ),
- *             'formatter' => 'line',
- *         ),
- *     ),
- *     'formatters' => array(
- *         'line' => array(
- *             'class' => '\\Monolog\\Formatter\\LineFormatter',
- *          ),
- *          'logstash' => array(
- *              'class' => '\\Monolog\\Formatter\\LogstashFormatter',
- *              'args'  => array( 'mediawiki', php_uname( 'n' ), null, '', 1 ),
- *          ),
- *     ),
+ * $wgMWLoggerDefaultSpi = array(
+ *   'class' => 'MWLoggerMonologSpi',
+ *   'args' => array( array(
+ *       'loggers' => array(
+ *           '@default' => array(
+ *               'processors' => array( 'wiki', 'psr', 'pid', 'uid', 'web' ),
+ *               'handlers'   => array( 'stream' ),
+ *           ),
+ *           'runJobs' => array(
+ *               'processors' => array( 'wiki', 'psr', 'pid' ),
+ *               'handlers'   => array( 'stream' ),
+ *           )
+ *       ),
+ *       'processors' => array(
+ *           'wiki' => array(
+ *               'class' => 'MWLoggerMonologProcessor',
+ *           ),
+ *           'psr' => array(
+ *               'class' => '\\Monolog\\Processor\\PsrLogMessageProcessor',
+ *           ),
+ *           'pid' => array(
+ *               'class' => '\\Monolog\\Processor\\ProcessIdProcessor',
+ *           ),
+ *           'uid' => array(
+ *               'class' => '\\Monolog\\Processor\\UidProcessor',
+ *           ),
+ *           'web' => array(
+ *               'class' => '\\Monolog\\Processor\\WebProcessor',
+ *           ),
+ *       ),
+ *       'handlers' => array(
+ *           'stream' => array(
+ *               'class'     => '\\Monolog\\Handler\\StreamHandler',
+ *               'args'      => array( 'path/to/your.log' ),
+ *               'formatter' => 'line',
+ *           ),
+ *           'redis' => array(
+ *               'class'     => '\\Monolog\\Handler\\RedisHandler',
+ *               'args'      => array( function() {
+ *                       $redis = new Redis();
+ *                       $redis->connect( '127.0.0.1', 6379 );
+ *                       return $redis;
+ *                   },
+ *                   'logstash'
+ *               ),
+ *               'formatter' => 'logstash',
+ *           ),
+ *           'udp2log' => array(
+ *               'class' => 'MWLoggerMonologHandler',
+ *               'args' => array(
+ *                   'udp://127.0.0.1:8420/mediawiki
+ *               ),
+ *               'formatter' => 'line',
+ *           ),
+ *       ),
+ *       'formatters' => array(
+ *           'line' => array(
+ *               'class' => '\\Monolog\\Formatter\\LineFormatter',
+ *            ),
+ *            'logstash' => array(
+ *                'class' => '\\Monolog\\Formatter\\LogstashFormatter',
+ *                'args'  => array( 'mediawiki', php_uname( 'n' ), null, '', 1 ),
+ *            ),
+ *       ),
+ *   ) ),
  * );
  * @endcode
  *
@@ -119,14 +121,9 @@ class MWLoggerMonologSpi implements MWLoggerSpi {
 
 
        /**
-        * @param array $config Configuration data. Defaults to global
-        *     $wgMWLoggerMonologSpiConfig
+        * @param array $config Configuration data.
         */
-       public function __construct( $config = null ) {
-               if ( $config === null ) {
-                       global $wgMWLoggerMonologSpiConfig;
-                       $config = $wgMWLoggerMonologSpiConfig;
-               }
+       public function __construct( array $config ) {
                $this->config = $config;
                $this->reset();
        }
@@ -166,8 +163,8 @@ class MWLoggerMonologSpi implements MWLoggerSpi {
                                $this->config['loggers'][$channel] :
                                $this->config['loggers']['@default'];
 
-                               $monolog = $this->createLogger( $channel, $spec );
-                               $this->singletons['loggers'][$channel] = new MWLogger( $monolog );
+                       $monolog = $this->createLogger( $channel, $spec );
+                       $this->singletons['loggers'][$channel] = new MWLogger( $monolog );
                }
 
                return $this->singletons['loggers'][$channel];
@@ -206,7 +203,8 @@ class MWLoggerMonologSpi implements MWLoggerSpi {
        protected function getProcessor( $name ) {
                if ( !isset( $this->singletons['processors'][$name] ) ) {
                        $spec = $this->config['processors'][$name];
-                       $this->singletons['processors'][$name] = $this->instantiate( $spec );
+                       $processor = ObjectFactory::getObjectFromSpec( $spec );
+                       $this->singletons['processors'][$name] = $processor;
                }
                return $this->singletons['processors'][$name];
        }
@@ -220,7 +218,7 @@ class MWLoggerMonologSpi implements MWLoggerSpi {
        protected function getHandler( $name ) {
                if ( !isset( $this->singletons['handlers'][$name] ) ) {
                        $spec = $this->config['handlers'][$name];
-                       $handler = $this->instantiate( $spec );
+                       $handler = ObjectFactory::getObjectFromSpec( $spec );
                        $handler->setFormatter( $this->getFormatter( $spec['formatter'] ) );
                        $this->singletons['handlers'][$name] = $handler;
                }
@@ -236,44 +234,9 @@ class MWLoggerMonologSpi implements MWLoggerSpi {
        protected function getFormatter( $name ) {
                if ( !isset( $this->singletons['formatters'][$name] ) ) {
                        $spec = $this->config['formatters'][$name];
-                       $this->singletons['formatters'][$name] = $this->instantiate( $spec );
+                       $formatter = ObjectFactory::getObjectFromSpec( $spec );
+                       $this->singletons['formatters'][$name] = $formatter;
                }
                return $this->singletons['formatters'][$name];
        }
-
-
-       /**
-        * Instantiate the requested object.
-        *
-        * The specification array must contain a 'class' key with string value that
-        * specifies the class name to instantiate. It can optionally contain an
-        * 'args' key that provides constructor arguments.
-        *
-        * @param array $spec Object specification
-        * @return object
-        */
-       protected function instantiate( $spec ) {
-               $clazz = $spec['class'];
-               $args = isset( $spec['args'] ) ? $spec['args'] : array();
-               // If an argument is a callable, call it.
-               // This allows passing things such as a database connection to a logger.
-               $args = array_map( function ( $value ) {
-                               if ( is_callable( $value ) ) {
-                                       return $value();
-                               } else {
-                                       return $value;
-                               }
-                       }, $args );
-
-               if ( empty( $args ) ) {
-                       $obj = new $clazz();
-
-               } else {
-                       $ref = new ReflectionClass( $clazz );
-                       $obj = $ref->newInstanceArgs( $args );
-               }
-
-               return $obj;
-       }
-
 }
index df8d2d4..762bc66 100644 (file)
@@ -72,9 +72,9 @@ abstract class LockManager {
        public function __construct( array $config ) {
                $this->domain = isset( $config['domain'] ) ? $config['domain'] : wfWikiID();
                if ( isset( $config['lockTTL'] ) ) {
-                       $this->lockTTL = max( 1, $config['lockTTL'] );
+                       $this->lockTTL = max( 5, $config['lockTTL'] );
                } elseif ( PHP_SAPI === 'cli' ) {
-                       $this->lockTTL = 2 * 3600;
+                       $this->lockTTL = 3600;
                } else {
                        $met = ini_get( 'max_execution_time' ); // this is 0 in CLI mode
                        $this->lockTTL = max( 5 * 60, 2 * (int)$met );
index 190ee04..9135393 100644 (file)
@@ -5,6 +5,7 @@
                ]
        },
        "config-information": "文訊",
+       "config-page-language": "語",
        "mainpagetext": "'''共筆臺已立'''",
        "mainpagedocfooter": "欲識維基,見[//meta.wikimedia.org/wiki/Help:Contents User's Guide]\n\n== 始 ==\n\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Configuration settings list]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]"
 }
index b9ed0ea..f3a9fa6 100644 (file)
@@ -58,6 +58,7 @@
        "config-env-good": "De omgeving is gecontroleerd.\nU kunt MediaWiki installeren.",
        "config-env-bad": "De omgeving is gecontroleerd.\nU kunt MediaWiki niet installeren.",
        "config-env-php": "PHP $1 is op dit moment geïnstalleerd.",
+       "config-env-hhvm": "HHVM $1 is geïnstalleerd.",
        "config-unicode-using-utf8": "Voor Unicode-normalisatie wordt utf8_normalize.so van Brion Vibber gebruikt.",
        "config-unicode-using-intl": "Voor Unicode-normalisatie wordt de [http://pecl.php.net/intl PECL-extensie intl] gebruikt.",
        "config-unicode-pure-php-warning": "'''Waarschuwing''': de [http://pecl.php.net/intl PECL-extensie intl] is niet beschikbaar om de Unicodenormalisatie af te handelen en daarom wordt de langzame PHP-implementatie gebruikt.\nAls u MediaWiki voor een website met veel verkeer installeert, lees u dan in over [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations Unicodenormalisatie].",
@@ -65,6 +66,8 @@
        "config-no-db": "Het was niet mogelijk een geschikte databasedriver te vinden voor PHP. U moet een databasedriver installeren voor PHP.\nDe volgende databases worden ondersteund: $1.\n\nAls u een gedeelde omgeving gebruikt, vraag dan aan uw hostingprovider een geschikte databasedriver te installeren.\nAls u PHP zelf hebt gecompileerd, wijzig dan uw instellingen zodat een databasedriver wordt geactiveerd, bijvoorbeeld via <code>./configure --with-mysql</code>.\nAls u PHP hebt geïnstalleerd via een Debian- of Ubuntu-package, installeer dan ook de module php5-mysql.",
        "config-outdated-sqlite": "''' Waarschuwing:''' u gebruikt SQLite $1. SQLite is niet beschikbaar omdat de minimaal vereiste versie $2 is.",
        "config-no-fts3": "'''Waarschuwing''': SQLite is gecompileerd zonder de module [//sqlite.org/fts3.html FTS3]; zoekfuncties zijn niet beschikbaar.",
+       "config-register-globals-error": "<strong>Fout: de optie <code>[http://php.net/register_globals register_globals]</code> van PHP is ingeschakeld.\nDeze optie moet uitgeschakeld zijn om door te kunnen gaan met de installatie.</strong>\nOp de pagina [https://www.mediawiki.org/wiki/register_globals https://www.mediawiki.org/wiki/register_globals] staat beschreven hoe u dit kunt doen.",
+       "config-magic-quotes-gpc": "<strong>Onherstelbare fout: [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-gpc magic_quotes_gpc] is actief!<strong>\nDeze instelling zorgt voor onvoorspelbare gegevenscorruptie.\nU kunt MediaWiki niet installeren tenzij deze instelling is uitgeschakeld.",
        "config-magic-quotes-runtime": "'''Onherstelbare fout: [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-runtime magic_quotes_runtime] is actief!'''\nDeze instelling zorgt voor onvoorspelbare gegevenscorruptie.\nU kunt MediaWiki niet installeren tenzij deze instelling is uitgeschakeld.",
        "config-magic-quotes-sybase": "'''Onherstelbare fout: [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-runtime magic_quotes_sybase] is actief!'''\nDeze instelling zorgt voor onvoorspelbare gegevenscorruptie.\nU kunt MediaWiki niet installeren tenzij deze instelling is uitgeschakeld.",
        "config-mbstring": "'''Onherstelbare fout: [http://www.php.net/manual/en/ref.mbstring.php#mbstring.overload mbstring.func_overload] is actief!'''\nDeze instelling zorgt voor onvoorspelbare gegevenscorruptie.\nU kunt MediaWiki niet installeren tenzij deze instelling is uitgeschakeld.",
@@ -75,6 +78,7 @@
        "config-memory-raised": "PHP's <code>memory_limit</code> is $1 en is verhoogd tot $2.",
        "config-memory-bad": "'''Waarschuwing:''' PHP's <code>memory_limit</code> is $1.\nDit is waarschijnlijk te laag.\nDe installatie kan mislukken!",
        "config-ctype": "'''Fataal:''' PHP moet gecompileerd zijn met ondersteuning voor de [http://www.php.net/manual/en/ctype.installation.php extensie Ctype].",
+       "config-iconv": "<strong>Onherstelbare fout:</strong> PHP moet gecompileerd zijn met ondersteuning voor de [http://www.php.net/manual/en/iconv.installation.php uitbreiding iconv].",
        "config-json": "'''Fatale fout:''' PHP is gecompileerd zonder ondersteuning voor JSON.\nU moet de PHP-extensie JSON installeren of de extensie [http://pecl.php.net/package/jsonc PECL jsonc] voordat u MediaWiki installeert.\n* De PHP-extensie is beschikbaar in Red Hat Enterprise Linux (CentOS) 5 en 6, maar moet ingeschakeld worden <code>/etc/php.ini</code> or <code>/etc/php.d/json.ini</code>.\n* Sommige Linuxdistributies die zijn uitgebracht na mei 2013 hebben de PHP-extensie niet, maar hebben een package voor de PECL-extensie als <code>php5-json</code> of <code>php-pecl-jsonc</code>.",
        "config-xcache": "[http://xcache.lighttpd.net/ XCache] is op dit moment geïnstalleerd",
        "config-apc": "[http://www.php.net/apc APC] is op dit moment geïnstalleerd",
        "config-license-gfdl": "GNU Free Documentation License 1.3 of hoger",
        "config-license-pd": "Publiek domein",
        "config-license-cc-choose": "Een Creative Commons-licentie selecteren",
-       "config-license-help": "In veel openbare wiki's zijn alle bijdragen beschikbaar onder een [http://freedomdefined.org/Definition vrije licentie].\nDit helpt bij het creëren van een gevoel van gemeenschappelijk eigendom en stimuleert bijdragen op lange termijn.\nDit is over het algemeen niet nodig is voor een particuliere of zakelijke wiki.\n\nAls u teksten uit Wikipedia wilt kunnen gebruiken en u wilt het mogelijk maken teksten uit uw wiki naar Wikipedia te kopiëren, kies dan de licentie '''Creative Commons Naamsvermelding-Gelijk delen'''.\n\nDe GNU Free Documentation License is de oude licentie voor inhoud uit Wikipedia.\nDit is nog steeds een geldige licentie, maar deze licentie is lastig te begrijpen.\nHet is ook lastig inhoud te hergebruiken onder de GFDL.",
+       "config-license-help": "In veel openbare wiki's zijn alle bijdragen beschikbaar onder een [http://freedomdefined.org/Definition vrije licentie].\nDit helpt bij het creëren van een gevoel van gemeenschappelijk eigendom en stimuleert bijdragen op lange termijn.\nDit is over het algemeen niet nodig is voor een particuliere of zakelijke wiki.\n\nAls u teksten uit Wikipedia wilt kunnen gebruiken en u wilt het mogelijk maken teksten uit uw wiki naar Wikipedia te kopiëren, kies dan de licentie <strong>{{int:config-license-cc-by-sa}}</strong>.\n\nDe GNU Free Documentation License is de oude licentie voor inhoud uit Wikipedia.\nDit is nog steeds een geldige licentie, maar deze licentie is lastig te begrijpen.\nHet is ook lastig inhoud te hergebruiken onder de GFDL.",
        "config-email-settings": "E-mailinstellingen",
        "config-enable-email": "Uitgaande e-mail inschakelen",
        "config-enable-email-help": "Als u wilt dat e-mailen mogelijk is, dan moeten de [http://www.php.net/manual/en/mail.configuration.php e-mailinstellingen van PHP] correct zijn.\nAls u niet wilt dat e-mailen mogelijk is, dan kunt u de instellingen hier uitschakelen.",
        "config-extensions": "Uitbreidingen",
        "config-extensions-help": "De bovenstaande uitbreidingen zijn aangetroffen in de map <code>./extensions</code>.\n\nMogelijk moet u aanvullende instellingen maken, maar u kunt deze uitbreidingen nu inschakelen.",
        "config-skins": "Vormgevingen",
+       "config-skins-help": "De hierboven weergegeven uiterlijken zijn aangetroffen in de map <code>./skins</code>. U moet tenminste één uiterlijk inschakelen en het standaard uiterlijk kiezen.",
        "config-skins-use-as-default": "Als standaard vormgeving instellen",
+       "config-skins-missing": "Er zijn geen uiterlijken aangetroffen. MediaWiki gebruikt een basisuiterlijk totdat u een uiterlijk installeert.",
        "config-skins-must-enable-some": "U moet minstens één vormgeving kiezen om in te schakelen.",
        "config-skins-must-enable-default": "De vormgeving gekozen als standaard moet ingeschakeld zijn.",
        "config-install-alreadydone": "'''Waarschuwing:''' het lijkt alsof u MediaWiki al hebt geïnstalleerd en probeert het programma opnieuw te installeren.\nGa door naar de volgende pagina.",
        "config-install-stats": "Statistieken initialiseren",
        "config-install-keys": "Bezig met aanmaken van geheime sleutels",
        "config-insecure-keys": "'''Waarschuwing:''' De {{PLURAL:$2|sleutel die is aangemaakt|sleutels die zijn aangemaakt}} ($1) tijdens de installatie {{PLURAL:$2|is|zijn}} niet volledig veilig. Overweeg deze handmatig te wijzigen.",
+       "config-install-updates": "Voorkomen dat updates onnodig worden uitgevoerd",
+       "config-install-updates-failed": "<strong>Fout:</strong> het toevoegen van updatesleutels aan tabellen is mislukt met de volgende fout: $1",
        "config-install-sysop": "Gebruiker voor beheerder aanmaken",
        "config-install-subscribe-fail": "Het is niet mogelijk te abonneren op mediawiki-announce: $1",
        "config-install-subscribe-notpossible": "cURL is niet geïnstalleerd en <code>allow_url_fopen</code> is niet beschikbaar.",
index f3e5c76..74775b5 100644 (file)
@@ -70,6 +70,13 @@ class FormatJson {
         */
        const TRY_FIXING = 0x200;
 
+       /**
+        * If set, strip comments from input before parsing as JSON.
+        *
+        * @since 1.25
+        */
+       const STRIP_COMMENTS = 0x400;
+
        /**
         * Regex that matches whitespace inside empty arrays and objects.
         *
@@ -150,10 +157,14 @@ class FormatJson {
         * Unlike FormatJson::decode(), if $value represents null value, it will be properly decoded as valid.
         *
         * @param string $value The JSON string being decoded
-        * @param int $options A bit field that allows FORCE_ASSOC, TRY_FIXING
+        * @param int $options A bit field that allows FORCE_ASSOC, TRY_FIXING,
+        * STRIP_COMMENTS
         * @return Status If valid JSON, the value is available in $result->getValue()
         */
        public static function parse( $value, $options = 0 ) {
+               if ( $options & self::STRIP_COMMENTS ) {
+                       $value = self::stripComments( $value );
+               }
                $assoc = ( $options & self::FORCE_ASSOC ) !== 0;
                $result = json_decode( $value, $assoc );
                $code = json_last_error();
@@ -347,4 +358,79 @@ class FormatJson {
 
                return str_replace( "\x01", '\"', $buf );
        }
+
+       /**
+        * Remove multiline and single line comments from an otherwise valid JSON
+        * input string. This can be used as a preprocessor for to allow JSON
+        * formatted configuration files to contain comments.
+        *
+        * @param string $json
+        * @return string JSON with comments removed
+        */
+       public static function stripComments( $json ) {
+               // Ensure we have a string
+               $str = (string) $json;
+               $buffer = '';
+               $maxLen = strlen( $str );
+               $mark = 0;
+
+               $inString = false;
+               $inComment = false;
+               $multiline = false;
+
+               for ($idx = 0; $idx < $maxLen; $idx++) {
+                       switch ( $str[$idx] ) {
+                               case '"':
+                                       $lookBehind = ( $idx - 1 >= 0 ) ? $str[$idx - 1] : '';
+                                       if ( !$inComment && $lookBehind !== '\\' ) {
+                                               // Either started or ended a string
+                                               $inString = !$inString;
+                                       }
+                                       break;
+
+                               case '/':
+                                       $lookAhead = ( $idx + 1 < $maxLen ) ? $str[$idx + 1] : '';
+                                       $lookBehind = ( $idx - 1 >= 0 ) ? $str[$idx - 1] : '';
+                                       if ( $inString ) {
+                                               continue;
+
+                                       } elseif ( !$inComment &&
+                                               ( $lookAhead === '/' || $lookAhead === '*' )
+                                       ) {
+                                               // Transition into a comment
+                                               // Add characters seen to buffer
+                                               $buffer .= substr( $str, $mark, $idx - $mark );
+                                               // Consume the look ahead character
+                                               $idx++;
+                                               // Track state
+                                               $inComment = true;
+                                               $multiline = $lookAhead === '*';
+
+                                       } elseif ( $multiline && $lookBehind === '*' ) {
+                                               // Found the end of the current comment
+                                               $mark = $idx + 1;
+                                               $inComment = false;
+                                               $multiline = false;
+                                       }
+                                       break;
+
+                               case "\n":
+                                       if ( $inComment && !$multiline ) {
+                                               // Found the end of the current comment
+                                               $mark = $idx + 1;
+                                               $inComment = false;
+                                       }
+                                       break;
+                       }
+               }
+               if ( $inComment ) {
+                       // Comment ends with input
+                       // Technically we should check to ensure that we aren't in
+                       // a multiline comment that hasn't been properly ended, but this
+                       // is a strip filter, not a validating parser.
+                       $mark = $maxLen;
+               }
+               // Add final chunk to buffer before returning
+               return $buffer . substr( $str, $mark, $maxLen - $mark );
+       }
 }
diff --git a/includes/libs/ObjectFactory.php b/includes/libs/ObjectFactory.php
new file mode 100644 (file)
index 0000000..ee696c3
--- /dev/null
@@ -0,0 +1,89 @@
+<?php
+/**
+ * @section LICENSE
+ * 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
+ */
+
+/**
+ * Construct objects from configuration instructions.
+ *
+ * @author Bryan Davis <bd808@wikimedia.org>
+ * @copyright © 2014 Bryan Davis and Wikimedia Foundation.
+ */
+class ObjectFactory {
+
+       /**
+        * Instantiate an object based on a specification array.
+        *
+        * The specification array must contain a 'class' key with string value
+        * that specifies the class name to instantiate or a 'factory' key with
+        * a callable (is_callable() === true). It can optionally contain
+        * an 'args' key that provides arguments to pass to the
+        * constructor/callable.
+        *
+        * Object construction using a specification having both 'class' and
+        * 'args' members will call the constructor of the class using
+        * ReflectionClass::newInstanceArgs. The use of ReflectionClass carries
+        * a performance penalty and should not be used to create large numbers of
+        * objects. If this is needed, consider introducing a factory method that
+        * can be called via call_user_func_array() instead.
+        *
+        * Values in the arguments collection which are Closure instances will be
+        * expanded by invoking them with no arguments before passing the
+        * resulting value on to the constructor/callable. This can be used to
+        * pass DatabaseBase instances or other live objects to the
+        * constructor/callable.
+        *
+        * @param array $spec Object specification
+        * @return object
+        * @throws InvalidArgumentException when object specification does not
+        * contain 'class' or 'factory' keys
+        * @throws ReflectionException when 'args' are supplied and 'class'
+        * constructor is non-public or non-existant
+        */
+       public static function getObjectFromSpec( $spec ) {
+               $args = isset( $spec['args'] ) ? $spec['args'] : array();
+
+               $args = array_map( function ( $value ) {
+                       if ( is_object( $value ) && $value instanceof Closure ) {
+                               // If an argument is a Closure, call it.
+                               return $value();
+                       } else {
+                               return $value;
+                       }
+               }, $args );
+
+               if ( isset( $spec['class'] ) ) {
+                       $clazz = $spec['class'];
+                       if ( !$args ) {
+                               $obj = new $clazz();
+                       } else {
+                               $ref = new ReflectionClass( $clazz );
+                               $obj = $ref->newInstanceArgs( $args );
+                       }
+               } elseif ( isset( $spec['factory'] ) ) {
+                       $obj = call_user_func_array( $spec['factory'], $args );
+               } else {
+                       throw new InvalidArgumentException(
+                               'Provided specification lacks both factory and class parameters.'
+                       );
+               }
+
+               return $obj;
+       }
+}
index d8d86db..3585e57 100644 (file)
@@ -322,9 +322,7 @@ class SqlBagOStuff extends BagOStuff {
                        if ( $exptime == 0 ) {
                                $encExpiry = $this->getMaxDateTime( $db );
                        } else {
-                               if ( $exptime < 3.16e8 ) { # ~10 years
-                                       $exptime += time();
-                               }
+                               $exptime = $this->convertExpiry( $exptime );
                                $encExpiry = $db->timestamp( $exptime );
                        }
                        foreach ( $serverKeys as $tableName => $tableKeys ) {
@@ -377,10 +375,7 @@ class SqlBagOStuff extends BagOStuff {
                        if ( $exptime == 0 ) {
                                $encExpiry = $this->getMaxDateTime( $db );
                        } else {
-                               if ( $exptime < 3.16e8 ) { # ~10 years
-                                       $exptime += time();
-                               }
-
+                               $exptime = $this->convertExpiry( $exptime );
                                $encExpiry = $db->timestamp( $exptime );
                        }
                        // (bug 24425) use a replace if the db supports it instead of
@@ -421,9 +416,7 @@ class SqlBagOStuff extends BagOStuff {
                        if ( $exptime == 0 ) {
                                $encExpiry = $this->getMaxDateTime( $db );
                        } else {
-                               if ( $exptime < 3.16e8 ) { # ~10 years
-                                       $exptime += time();
-                               }
+                               $exptime = $this->convertExpiry( $exptime );
                                $encExpiry = $db->timestamp( $exptime );
                        }
                        // (bug 24425) use a replace if the db supports it instead of
index aeaba8d..2cdf9f4 100644 (file)
@@ -185,6 +185,13 @@ class SearchResult {
                return null;
        }
 
+       /**
+        * @return string Highlighted relevant category name or '' if none or not supported
+        */
+       public function getCategorySnippet() {
+               return '';
+       }
+
        /**
         * @return string Timestamp
         */
index c8c4ba4..384aeda 100644 (file)
@@ -655,12 +655,12 @@ abstract class Skin extends ContextSource {
        function getUndeleteLink() {
                $action = $this->getRequest()->getVal( 'action', 'view' );
 
-               if ( $this->getUser()->isAllowed( 'deletedhistory' ) &&
+               if ( $this->getTitle()->userCan( 'deletedhistory', $this->getUser() ) &&
                        ( $this->getTitle()->getArticleID() == 0 || $action == 'history' ) ) {
                        $n = $this->getTitle()->isDeleted();
 
                        if ( $n ) {
-                               if ( $this->getUser()->isAllowed( 'undelete' ) ) {
+                               if ( $this->getTitle()->userCan( 'undelete', $this->getUser() ) ) {
                                        $msg = 'thisisdeleted';
                                } else {
                                        $msg = 'viewdeleted';
index 5514ae0..0d4e623 100644 (file)
@@ -226,7 +226,8 @@ class SkinTemplate extends Skin {
 
                $oldContext = null;
                if ( $out !== null ) {
-                       // @todo Add wfDeprecated in 1.20
+                       // Deprecated since 1.20, note added in 1.25
+                       wfDeprecated( __METHOD__, '1.25' );
                        $oldContext = $this->getContext();
                        $this->setContext( $out->getContext() );
                }
index 3cb5444..895f1e8 100644 (file)
@@ -621,8 +621,9 @@ class SpecialSearch extends SpecialPage {
                $redirectText = $result->getRedirectSnippet();
                $sectionTitle = $result->getSectionTitle();
                $sectionText = $result->getSectionSnippet();
-               $redirect = '';
+               $categorySnippet = $result->getCategorySnippet();
 
+               $redirect = '';
                if ( !is_null( $redirectTitle ) ) {
                        if ( $redirectText == '' ) {
                                $redirectText = null;
@@ -635,7 +636,6 @@ class SpecialSearch extends SpecialPage {
                }
 
                $section = '';
-
                if ( !is_null( $sectionTitle ) ) {
                        if ( $sectionText == '' ) {
                                $sectionText = null;
@@ -647,6 +647,13 @@ class SpecialSearch extends SpecialPage {
                                "</span>";
                }
 
+               $category = '';
+               if ( $categorySnippet ) {
+                       $category = "<span class='searchalttitle'>" .
+                               $this->msg( 'search-category' )->rawParams( $categorySnippet )->text() .
+                               "</span>";
+               }
+
                // format text extract
                $extract = "<div class='searchresult'>" . $result->getTextSnippet( $terms ) . "</div>";
 
@@ -691,7 +698,7 @@ class SpecialSearch extends SpecialPage {
                                                $thumb->toHtml( array( 'desc-link' => true ) ) .
                                                '</td>' .
                                                '<td style="vertical-align: top;">' .
-                                               "{$link} {$redirect} {$section} {$fileMatch}" .
+                                               "{$link} {$redirect} {$category} {$section} {$fileMatch}" .
                                                $extract .
                                                "<div class='mw-search-result-data'>{$desc} - {$date}</div>" .
                                                '</td>' .
@@ -712,7 +719,7 @@ class SpecialSearch extends SpecialPage {
                        &$html
                ) ) ) {
                        $html = "<li><div class='mw-search-result-heading'>" .
-                               "{$link} {$redirect} {$section} {$fileMatch}</div> {$extract}\n" .
+                               "{$link} {$redirect} {$category} {$section} {$fileMatch}</div> {$extract}\n" .
                                "<div class='mw-search-result-data'>{$size} - {$date}</div>" .
                                "</li>\n";
                }
index cefdad0..6ca57aa 100644 (file)
@@ -415,6 +415,8 @@ class UserrightsPage extends SpecialPage {
         * Output a form to allow searching for a user
         */
        function switchForm() {
+               $this->getOutput()->addModules( 'mediawiki.userSuggest' );
+
                $this->getOutput()->addHTML(
                        Html::openElement(
                                'form',
@@ -433,7 +435,10 @@ class UserrightsPage extends SpecialPage {
                                'username',
                                30,
                                str_replace( '_', ' ', $this->mTarget ),
-                               array( 'autofocus' => true )
+                               array(
+                                       'autofocus' => true,
+                                       'class' => 'mw-autocomplete-user', // used by mediawiki.userSuggest
+                               )
                        ) . ' ' .
                        Xml::submitButton( $this->msg( 'editusergroup' )->text() ) .
                        Html::closeElement( 'fieldset' ) .
index a92960e..5074125 100644 (file)
        "search-result-category-size": "$1 {{PLURAL:$1|элемэнт|элемэнты|элемэнтаў}} ($2 {{PLURAL:$2|падкатэгорыя|падкатэгорыі|падкатэгорыяў}}, $3 {{PLURAL:|файл|файлы|файлаў}})",
        "search-redirect": "(перанакіраваньне $1)",
        "search-section": "(сэкцыя $1)",
+       "search-category": "(катэгорыя $1)",
        "search-file-match": "(супадае зь зьмесьцівам файла)",
        "search-suggest": "Магчыма, вы мелі на ўвазе: $1",
        "search-interwiki-caption": "Сумежныя праекты",
index 1463611..d7e2743 100644 (file)
        "nstab-user": "Старонка",
        "nstab-media": "Мультымедыя",
        "nstab-special": "Адмысловая старонка",
-       "nstab-project": "Старонка праекту",
+       "nstab-project": "Старонка праекта",
        "nstab-image": "Файл",
        "nstab-mediawiki": "Паведамленне",
        "nstab-template": "Шаблон",
        "passwordreset-email": "Адрас электроннай пошты:",
        "passwordreset-emailtitle": "Інфармацыя пра рахунак на сайце {{SITENAME}}",
        "passwordreset-emailtext-ip": "Нехта (магчыма вы, з IP-адрасу $1) запытаў скід  вашага пароля ў праекце {{SITENAME}} ($4).\n{{PLURAL:$3|Наступны ўліковы запіс звязаны|Наступныя ўліковыя запісы звязаны}} з гэтым адрасам электроннай пошты:\n\n$2\n\n{{PLURAL:$3|Гэты часовы пароль будзе|Гэтыя часовыя паролі будуць}} дзейнічаць {{PLURAL:$5|адзін дзень|$5 дні|$5 дзён}}.\nВы павінны зараз увайсці ў сістэму і абраць новы пароль. Калі вы не рабілі гэтага запыту, ці ўспомнілі свой зыходны пароль і не жадаеце яго мяняць, вы можаце праігнараваць гэтае паведамленне і працягнуць выкарыстоўваць свой стары пароль.",
-       "passwordreset-emailtext-user": "Удзельнік $1 з праекту {{SITENAME}} запытаў скід вашага пароля ў праекце {{SITENAME}}\n($4).\n{{PLURAL:$3|Наступны ўліковы запіс звязаны|Наступныя уліковыя запісы звязаны}} з гэтым адрасам электроннай пошты:\n\n$2\n\n{{PLURAL:$3|Гэты часовы пароль будзе|Гэтыя часовыя паролі будуць}} дзейнічаць {{PLURAL:$5|$5 дзень |$5 дні |$5 дзён}}.\nВы павінны зараз увайсці ў сістэму і абраць новы пароль. Калі вы не рабілі гэтага запыту, ці ўспомнілі свой зыходны пароль і не жадаеце яго мяняць, вы можаце праігнараваць гэтае паведамленне і працягваць выкарыстоўваць свой стары пароль.",
+       "passwordreset-emailtext-user": "Удзельнік $1 з праекта {{SITENAME}} запытаў скід вашага пароля ў праекце {{SITENAME}}\n($4).\n{{PLURAL:$3|Наступны ўліковы запіс звязаны|Наступныя уліковыя запісы звязаны}} з гэтым адрасам электроннай пошты:\n\n$2\n\n{{PLURAL:$3|Гэты часовы пароль будзе|Гэтыя часовыя паролі будуць}} дзейнічаць {{PLURAL:$5|$5 дзень |$5 дні |$5 дзён}}.\nВы павінны зараз увайсці ў сістэму і выбраць новы пароль. Калі вы не рабілі гэтага запыту, ці ўспомнілі свой зыходны пароль і не жадаеце яго мяняць, вы можаце праігнараваць гэтае паведамленне і працягваць выкарыстоўваць свой стары пароль.",
        "passwordreset-emailelement": "Імя ўдзельніка: $1\nЧасовы пароль: $2",
        "passwordreset-emailsent": "Па электроннай пошце быў адпраўлены ліст пра скід пароля.",
        "passwordreset-emailsent-capture": "Ніжэй прыведзены адпраўлены ліст пра скід пароля.",
        "contributions-userdoesnotexist": "Уліковы запіс удзельніка \"$1\" не зарэгістраваны.",
        "nocontribs": "Не знойдзена змен, адпаведных зададзеным параметрам.",
        "uctop": "(апошн.)",
-       "month": "Ад месяцу (і раней):",
-       "year": "Ад году (і раней):",
+       "month": "Ад месяца (і раней):",
+       "year": "Ад года (і раней):",
        "sp-contributions-newbies": "Паказваць толькі ўклады з новых рахункаў",
        "sp-contributions-newbies-sub": "З новых рахункаў",
        "sp-contributions-newbies-title": "Уклады ўдзельнікаў з новых рахункаў",
index 3b4f98b..4172144 100644 (file)
        "content-model-text": "সাধারণ লেখা",
        "content-model-javascript": "জাভাস্ক্রিপ্ট",
        "content-model-css": "সিএসএস",
+       "duplicate-args-category": "টেমপ্লেট আহ্বানে সদৃশ আর্গুমেন্ট ব্যবহার করা পাতা",
        "expensive-parserfunction-warning": "'''সতর্ক হোন:''' এই পাতাটি অনেক বেশি পরিমাণে এক্সপেনসিভ পার্সার ফাংশন কল রয়েছে।\n\nএটি $2-এর চেয়ে কম পরিমাণ {{PLURAL:$2|কল|কল}} থাকা উচিত, যেখানে মোট কলের সংখ্যা {{PLURAL:$1|বর্তমানে $1|বর্তমানে $1}}।",
        "expensive-parserfunction-category": "অনেক বেশি পরিমাণে এক্সপেনসিভ পার্সার ফাংশন কল থাকা পাতাসমূহ",
        "post-expand-template-inclusion-warning": "'''সতর্ক হোন:''' টেমপ্লেটের ইনক্লুড আকার অনেক বেশি।\nকিছু টেমপ্লেট সংযুক্ত করা নাও যেতে পারে।",
        "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": "সহপ্রকল্পসমূহ",
        "pager-older-n": "{{PLURAL:$1|আরও পুরনো ১টি|আরও পুরনো $1টি}}",
        "suppress": "ওভারসাইট",
        "querypage-disabled": "কারিগরি কারণে এই বিশেষ পাতাটি আপাতত বন্ধ রয়েছে।",
+       "apihelp-no-such-module": "মডিউল \"$1\" পাওয়া যায়নি।",
        "booksources": "বইয়ের উৎস",
        "booksources-search-legend": "বইয়ের উৎসের জন্য অনুসন্ধান করা হোক",
        "booksources-isbn": "আইএসবিএন:",
index dedce46..69b38ea 100644 (file)
        "content-model-text": "obični tekst",
        "content-model-javascript": "JavaScript",
        "content-model-css": "CSS",
+       "duplicate-args-category": "Stranice sa istim argumentima kod poziva šablona",
        "expensive-parserfunction-warning": "Upozorenje: Ova stranica sadrži previše poziva opterećujućih parserskih funkcija.\n\nTrebalo bi imati manje od $2 {{PLURAL:$2|poziv|poziva}}, a sad ima {{PLURAL:$1|$1 poziv|$1 poziva}}.",
        "expensive-parserfunction-category": "Stranice sa previše poziva parserskih funkcija",
        "post-expand-template-inclusion-warning": "Pažnja: Šablon koji je uključen je prevelik.\nNeki šabloni neće biti uključeni.",
index bf46a9a..5ce0443 100644 (file)
        "viewsourcetext": "Můžete si prohlédnout a zkopírovat zdrojový kód této stránky:",
        "viewyourtext": "Můžete si prohlédnout a zkopírovat zdrojový kód '''vašich změn''' této stránky:",
        "protectedinterface": "Tato stránka obsahuje text softwarového rozhraní a je zamčena kvůli prevenci zneužití.\nPro přidávání a změny překladů pro všechny wiki použijte [//translatewiki.net/ translatewiki.net], projekt pro lokalizaci MediaWiki.",
-       "editinginterface": "'''Upozornění:''' Editujete stránku, která definuje texty rozhraní.\nZměny této stránky ovlivní vzhled uživatelského rozhraní všem uživatelům této wiki.\nPro přidávání a změny překladů pro všechny wiki použijte [//translatewiki.net/ translatewiki.net], projekt pro lokalizaci MediaWiki.",
+       "editinginterface": "<strong>Upozornění:</strong> Editujete stránku, která definuje texty rozhraní.\nZměny této stránky ovlivní vzhled uživatelského rozhraní všem uživatelům této wiki.",
+       "translateinterface": "Pro přidávání a změny překladů pro všechny wiki použijte [//translatewiki.net/ translatewiki.net], projekt pro lokalizaci MediaWiki.",
        "cascadeprotected": "Tato stránka je zamčena, neboť je vložena do {{PLURAL:$1|následující stránky, zamčené|následujících stránek, zamčených|následujících stránek, zamčených}} kaskádovým zámkem:\n$2",
        "namespaceprotected": "Nemáte povoleno editovat stránky ve jmenném prostoru '''$1'''.",
        "customcssprotected": "Nemáte povoleno editovat tuto stránku s CSS, protože obsahuje osobní nastavení jiného uživatele.",
        "search-result-category-size": "{{PLURAL:$1|1 položka|$1 položky|$1 položek}} ({{PLURAL:$2|1 podkategorie|$2 podkategorie|$2 podkategorií}}, {{PLURAL:$3|1 soubor|$3 soubory|$3 souborů}})",
        "search-redirect": "(přesměrování $1)",
        "search-section": "(část $1)",
+       "search-category": "(kategorie $1)",
        "search-file-match": "(odpovídá obsahu souboru)",
        "search-suggest": "Mysleli jste: $1",
        "search-interwiki-caption": "Sesterské projekty",
        "unknown_extension_tag": "Neznámá značka rozšíření: „$1“",
        "duplicate-defaultsort": "Upozornění: Implicitní klíč řazení (DEFAULTSORTKEY) „$2“ přepisuje dříve nastavenou hodnotu „$1“.",
        "duplicate-displaytitle": "<strong>Upozornění:</strong> Předchozí zobrazovaný název „$1“ je nahrazen zobrazovaným názvem „$2“.",
+       "invalid-indicator-name": "<strong>Chyba:</strong> Atribut <code>name</code> indikátoru stavu stránky nesmí být prázdný.",
        "version": "Verze",
        "version-extensions": "Nainstalovaná rozšíření",
        "version-skins": "Nainstalované vzhledy",
        "revdelete-uname-unhid": "odkryto uživatelské jméno",
        "revdelete-restricted": "omezení správců použito",
        "revdelete-unrestricted": "omezení správců odstraněno",
+       "logentry-merge-merge": "$1 {{GENDER:$2|sloučil|sloučila}} stránku $3 do $4 (revize po $5)",
        "logentry-move-move": "$1 {{GENDER:$2|přesunul|přesunula}} stránku $3 na $4",
        "logentry-move-move-noredirect": "$1 {{GENDER:$2|přesunul|přesunula}} stránku $3 na $4 bez založení přesměrování",
        "logentry-move-move_redir": "$1 {{GENDER:$2|přesunul|přesunula}} stránku $3 na $4 s výměnou přesměrování",
index 51ba021..ec6594d 100644 (file)
        "emailuser": "E-mail til denne bruger",
        "emailuser-title-target": "Send e-mail til denne {{GENDER:$1|bruger}}",
        "emailuser-title-notarget": "Send e-mail til en bruger",
-       "emailpage": "E-mail bruger",
+       "emailpage": "E-mail til bruger",
        "emailpagetext": "Du kan bruge formularen nedenfor til at sende en e-mail til denne {{GENDER:$1|bruger}}.\nDen e-mailadresse, du har angivet i [[Special:Preferences|dine indstillinger]], vil dukke op i \"fra\"-feltet på e-mailen, så modtageren kan svare dig.",
        "defemailsubject": "{{SITENAME}}-e-mail fra brugeren \"$1\"",
        "usermaildisabled": "Bruger-e-mail deaktiveret",
        "emailmessage": "Besked:",
        "emailsend": "Send",
        "emailccme": "Send en kopi af denne e-mail til mig",
-       "emailccsubject": "Kopi sendes til $1: $2",
+       "emailccsubject": "Kopi af din besked til $1: $2",
        "emailsent": "E-mail sendt",
        "emailsenttext": "Din e-mail er blevet sendt.",
        "emailuserfooter": "Denne e-mail er sendt af $1 til $2 ved hjælp af funktionen \"E-mail til denne bruger\" på {{SITENAME}}.",
index 0f49dca..71c0722 100644 (file)
        "search-result-category-size": "{{PLURAL:$1|1 Seite|$1 Seiten}} ({{PLURAL:$2|1 Unterkategorie|$2 Unterkategorien}}, {{PLURAL:$3|1 Datei|$3 Dateien}})",
        "search-redirect": "(Weiterleitung von „$1“)",
        "search-section": "(Abschnitt $1)",
+       "search-category": "(Kategorie $1)",
        "search-file-match": "(treffende Dateiinhalte)",
        "search-suggest": "Meintest du „$1“?",
        "search-interwiki-caption": "Schwesterprojekte",
index 1d019f4..470b91c 100644 (file)
        "viewsourcetext": "L'é pusébil vèder e cupiêr al côdis surzéia ed cla pàgina ché.",
        "viewyourtext": "L'é pusébil vèder e cupiêr al côdis surzéia dal \"tō mudéfichi\" ed cla pàgina ché:",
        "protectedinterface": "Cla pàgina ché la gh'à 'n elemèint ch' al fa pêrt dal colegamèint tra utèint e al progrâma 'd cól sît ché e l'é prutèta per schivşêr pusébil abûş. Per zuntêr o mudufichêr tradusiòun per tót i sistēma wiki druvêr [//translatewiki.net/ translatewiki.net], al prugèt 'd adatamèint a ògni léngva 'd MediaWiki.",
-       "editinginterface": "'''Atèinti:''' Al tèst ed cla pàgina ché 'l fa pêrt dal colegamèint tra utèint e 'l progrâma dal sît.  Tót' al modéfichi fâti a cla pàgina ché a gnîran spustêdi insém a i mesâg vést da tót j utèint ed cól wiki ché. Per zuntêr o mudufichêr tradusiòun vâlidi per tót i wiki, cunsîdra la pusibilitê 'd druvêr [/ / translatewiki.net / translatewiki.net], al prugèt 'd adatamèint a ògni léngva 'd MediaWiki.",
+       "editinginterface": "<strong>Atèinti:</strong> Al tèst ed cla pàgina ché 'l fa pêrt dal colegamèint tra utèint e 'l prugrâma dal sît.  Tót' al modéfichi fâti a cla pàgina ché a se spècen in sém a i mesâg vést per tót j utèint ed cól wiki ché.",
+       "translateinterface": "Per zuntêr o mudifichêr al tradusiòun vâlidi in sém a tót i wiki, drōva [//translatewiki.net/ translatewiki.net], al prugèt Media Wiki p'r al léngui di divêrs pôst.",
        "cascadeprotected": "Insém a cla pàgina ché an n'é mìa pusébil fêr dal mudéfichi perchè l'é dèinter {{PLURAL:$1|int la pàgina sgnêda ché  'd sègvit, ch' l'é stêda prutèta|int al pàgini sgnêdi ché  'd sègvit, ch' în stêdi prutèti}} cun la prutesiòun ch' la 's arfà in cuntinvasiòun:\n$2",
        "namespaceprotected": "An 's gh'à mìa i permès necesâri per mudifichêr al pàgini dal spâsi di nòm <strong>$1</strong>.",
        "customcssprotected": "An 's gh'à mìa i permès necesâri per mudifichêr cla pàgina CSS ché, perchè la gh'à dèinter al j impustasiòun personêli 'd n' êter utèint.",
        "media_tip": "Colegamèint al 'file'",
        "sig_tip": "Fîrma cun la dâta e l'ōra",
        "hr_tip": "Rîga spiâna (drōva cun giudési)",
-       "summary": "Sûnt:",
+       "summary": "Ogèt:",
        "subject": "Argumèint (tétol):",
        "minoredit": "Còsta l'é 'na mudéfica céca",
        "watchthis": "Tîn adrē a cla pàgina ché",
        "content-model-text": "tèst normêl",
        "content-model-javascript": "linguâg JavaScript",
        "content-model-css": "fòj de stîl CSS",
+       "duplicate-args-category": "Pàgini che drōven argumèint dópiê in ciamêdi a i mudē",
+       "duplicate-args-category-desc": "La pàgina la gh'à dèinter ciamêdi a mudē che drōven argumèint dupiê,cme per eşèimpi <code><nowiki>{{foo|bar=1|bar=2}}</nowiki></code> o <code><nowiki>{{foo|bar|1=baz}}</nowiki></code>.",
        "expensive-parserfunction-warning": "'''Atensiòun:''' cla pàgina ché la gh'à trôpi ciamêdi ala funsiòun parse. A n' in duvré avèir mēno 'd $2, adèsa a {{PLURAL:$1|'gh n'é $1}}.",
        "expensive-parserfunction-category": "Pàgini cun trôpi ciamêdi a la funsiòun parser.",
        "post-expand-template-inclusion-warning": "'''Atensiòun:''' la grandèsa di mudē més dèinter l'é trôp grôsa. Soquânt mudē gnirâ mìa més dèinter.",
        "search-result-category-size": "{{PLURAL:$1|1 utèint|$1 utèint}} ({{PLURAL:$2|1 sotcategoréia|$2 sotcategoréi}},{{PLURAL:$3|1 file|$3 files}})",
        "search-redirect": "(redirect $1)",
        "search-section": "(sesiòun $1)",
+       "search-category": "(categoréia $1)",
        "search-file-match": "(relasiòun dèinter al file)",
        "search-suggest": "Fōrsi 't serchêv $1",
        "search-interwiki-caption": "Prugèt fradē",
        "right-blockemail": "L'impidés a 'n utèint de spidîr la pôsta eletrônica",
        "right-hideuser": "Blôca un nòm utèint, e 'l lōga al póblich",
        "right-ipblock-exempt": "Al vèd mìa i blôch 'd IP, i blôch avtomâtich e i blôch ed range IP",
+       "right-proxyunbannable": "An vèder mìa i blôch avtomâtich di proxi",
        "newuserlogpage": "Utèint nōv",
        "action-read": "lēzer cla pàgina ché",
        "action-edit": "Mudifichêr cla pàgina ché",
        "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'",
        "uploadlogpage": "Fil carghê",
-       "filedesc": "Sûnt.",
+       "filedesc": "Particulêr.",
        "license": "Licèinsa:",
        "license-header": "Licèinsa",
        "nolicense": "Nisóna licèinsa sgnêda",
index b6ee3c7..1c6890c 100644 (file)
        "search-result-category-size": "{{PLURAL:$1|1 member|$1 members}} ({{PLURAL:$2|1 subcategory|$2 subcategories}}, {{PLURAL:$3|1 file|$3 files}})",
        "search-redirect": "(redirect $1)",
        "search-section": "(section $1)",
+       "search-category": "(category $1)",
        "search-file-match": "(matches file content)",
        "search-suggest": "Did you mean: $1",
        "search-interwiki-caption": "Sister projects",
index 81f156b..9bbc6b4 100644 (file)
        "search-result-category-size": "{{PLURAL:$1|1 lehekülg|$1 lehekülge}} ({{PLURAL:$2|1 alamkategooria|$2 alamkategooriat}}, {{PLURAL:$3|1 fail|$3 faili}})",
        "search-redirect": "(ümbersuunamine $1)",
        "search-section": "(alaosa $1)",
+       "search-category": "(kategooria \"$1\")",
        "search-file-match": "(vastab faili sisule)",
        "search-suggest": "Kas mõtlesid: $1",
        "search-interwiki-caption": "Sõsarprojektid",
index 0902c41..49abd11 100644 (file)
        "viewsourcetext": "می‌توانید متن مبدأ این صفحه را مشاهده کنید یا از آن نسخه بردارید:",
        "viewyourtext": "می‌توانید کد مبدأ '''ویرایش‌هایتان''' در این صفحه را ببینید و کپی کنید:",
        "protectedinterface": "این صفحه ارائه‌دهندهٔ متنی برای واسط کاربر این نرم‌افزار در این ویکی است و به منظور پیشگیری از خرابکاری محافظت شده‌است.\nبرای افزودن یا تغییر دادن ترجمه برای همهٔ ویکی‌ها، لطفاً از [//translatewiki.net/ translatewiki.net]، پروژهٔ محلی‌سازی مدیاویکی، استفاده کنید.",
-       "editinginterface": "'''هشدار:''' صفحه‌ای که ویرایش می‌کنید شامل متنی است که در واسط کاربر این نرم‌افزار به کار رفته‌است.\nتغییر این صفحه منجر به تغییر ظاهر واسط کاربر این نرم‌افزار برای دیگر کاربران خواهد شد.\nبرای افزودن یا تغییر دادن ترجمه برای همهٔ ویکی‌ها، لطفاً از [//translatewiki.net/ translatewiki.net]، پروژهٔ محلی‌سازی مدیاویکی، استفاده کنید.",
+       "editinginterface": "<strong>هشدار:</strong> صفحه‌ای که ویرایش می‌کنید شامل متنی است که در واسط کاربر این نرم‌افزار به کار رفته‌است.\nتغییر این صفحه منجر به تغییر ظاهر واسط کاربر این نرم‌افزار برای دیگر کاربران خواهد شد.",
+       "translateinterface": "برای افزودن یا تغییر دادن ترجمه برای همهٔ ویکی‌ها، لطفاً از [//translatewiki.net/ translatewiki.net]، پروژهٔ محلی‌سازی مدیاویکی، استفاده کنید.",
        "cascadeprotected": "این صفحه در مقابل ویرایش محافظت شده‌است چون در {{PLURAL:$1|صفحهٔ|صفحه‌های}} محافظت‌شدهٔ زیر که گزینهٔ «آبشاری» در {{PLURAL:$1|آن|آن‌ها}} انتخاب شده قرار گرفته‌است:\n$2",
        "namespaceprotected": "شما اجازهٔ ویرایش صفحه‌های فضای نام '''$1''' را ندارید.",
        "customcssprotected": "شما اجازهٔ ویرایش این صفحهٔ سی‌اس‌اس را ندارید، زیرا حاوی تنظیم‌های شخصی یک کاربر دیگر است.",
        "content-model-text": "متنی ساده",
        "content-model-javascript": "جاوااسکریپت",
        "content-model-css": "سی‌اس‌اس",
+       "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": "'''هشدار:''' این صفحه حاوی تعدادی زیادی فراخوانی دستورهای تجزیه‌گر است.\n\nتعداد آن‌ها باید کمتر از $2 {{PLURAL:$2|فراخوانی|فراخوانی}} باشد، و اینک {{PLURAL:$1|$1 فراخوانی|$1 فراخوانی}} است.",
        "expensive-parserfunction-category": "صفحه‌هایی که حاوی تعداد زیادی فراخوانی سنگین دستورهای تجزیه‌گر هستند",
        "post-expand-template-inclusion-warning": "هشدار: الگو بیش از اندازه بزرگ است.\nبرخی الگوها ممکن است شامل نشوند.",
        "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": "پروژه‌های خواهر",
        "gender-female": "زن",
        "prefs-help-gender": "انجام این تنظیم اختیاری است.\nنرم‌افزار از این مقدار برای اشارهٔ صحیح به جنسیت و ذکر شما برای دیگران با استفاده از دستور زبان درست استفاده می‌کند.\nاین اطلاعات عمومی خواهند بود.",
        "email": "رایانامه",
-       "prefs-help-realname": "نام واقعی اختیاری است.\nاگر آن را وارد کنید هنگام ارجاع به آثارتان و انتساب آن‌ها به شما از نام واقعی‌تان استفاده خواهد شد.",
+       "prefs-help-realname": "نام واقعی اختیاری است.\nاگر وارد شده است هنگام ارجاع به آثارتان و انتساب آن‌ها به شما ممکن است از نام واقعی‌تان استفاده شود.",
        "prefs-help-email": "نشانی رایانامه اختیاری‌است، اما فرستادن گذرواژه‌ای جدید را اگر گذرواژهٔ خود را فراموش کنید ممکن می‌کند.",
        "prefs-help-email-others": "شما همچنین می‌توانید انتخاب کنید که کاربران بتوانند از طریق پیوندی در صفحهٔ کاربری یا صفحهٔ بحث کاربری‌تان به شما رایانامه بفرستند.\nنشانی رایانامه شما زمانی که دیگران با شما تماس بگیرند فاش نمی‌شود.",
        "prefs-help-email-required": "نشانی رایانامه الزامی‌است.",
        "pager-older-n": "{{PLURAL:$1|یک مورد قدیمی‌تر|$1 مورد قدیمی‌تر}}",
        "suppress": "نظارت",
        "querypage-disabled": "این صفحه ویژه به دلایل عملکردی غیرفعال شده‌است.",
+       "apihelp": "راهنمای API",
+       "apihelp-no-such-module": "پودمان \" $1 \" یافت نشد.",
        "booksources": "منابع کتاب",
        "booksources-search-legend": "جستجوی منابع کتاب",
        "booksources-isbn": "شابک:",
        "autoblockid": "شناسه قطع دسترسی خودکار #$1",
        "block": "بستن کاربر",
        "unblock": "بازکردن کاربر",
-       "blockip": "مسدودکردن {{GENDER:$1|کاربر}}",
+       "blockip": "بستن {{GENDER:$1|کاربر}}",
        "blockip-legend": "بستن کاربر",
        "blockiptext": "از فرم زیر برای بستن دسترسی ویرایش یک نشانی آی‌پی یا نام کاربری مشخص استفاده کنید.\nاین کار فقط فقط باید برای جلوگیری از خرابکاری و بر اساس [[{{MediaWiki:Policy-url}}|سیاست قطع دسترسی]] انجام شود.\nدلیل مشخص این کار را در زیر ذکر کنید (مثلاً با ذکر صفحه‌های به‌خصوصی که مورد خرابکاری واقع شده‌اند).",
        "ipaddressorusername": "نشانی آی‌پی یا نام کاربری:",
        "tooltip-pt-mycontris": "فهرست مشارکت‌های شما",
        "tooltip-pt-login": "توصیه می‌شود که به سامانه وارد شوید، گرچه اجباری نیست",
        "tooltip-pt-logout": "خروج از سامانه",
+       "tooltip-pt-createaccount": "از شما دعوت می‌شود که حساب کاربری بسازید و به سامانه وارد شوید؛ هرچند که ساخت حساب کاربری اختیاری است.",
        "tooltip-ca-talk": "گفتگو پیرامون محتوای صفحه",
        "tooltip-ca-edit": "شما می‌توانید این صفحه را ویرایش کنید. لطفاً پیش از ذخیره از دکمهٔ پیش‌نمایش استفاده کنید.",
        "tooltip-ca-addsection": "بخشی جدید ایجاد کنید",
        "tooltip-feed-atom": "خبرنامهٔ اتم برای این صفحه",
        "tooltip-t-contributions": "فهرست مشارکت‌های این کاربر",
        "tooltip-t-emailuser": "فرستادن رایانامه به این کاربر",
+       "tooltip-t-info": "اطلاعات بیشتر دربارهٔ این صفحه",
        "tooltip-t-upload": "بارگذاری تصاویر و پرونده‌های دیگر",
        "tooltip-t-specialpages": "فهرستی از همهٔ صفحه‌های ویژه",
        "tooltip-t-print": "نسخهٔ قابل چاپ این صفحه",
        "unknown_extension_tag": "برچسب ناشناختهٔ افزونه «$1»",
        "duplicate-defaultsort": "هشدار: ترتیب پیش‌فرض «$2» ترتیب پیش‌فرض قبلی «$1» را باطل می‌کند.",
        "duplicate-displaytitle": "<strong>هشدار:</strong> نمایش عنوان \" $2 \"باعث ابطال پیش نمایش عنوان\" $1 \" می‌شود.",
+       "invalid-indicator-name": "<strong>خطا:</strong>ویژگی های شاخص‌های وضعیت صفحهٔ <code>name</code> نباید خالی باشند.",
        "version": "نسخه",
        "version-extensions": "افزونه‌های نصب‌شده",
        "version-skins": "پوسته‌های نصب شده",
        "revdelete-uname-unhid": "نام کاربری را آشکار کرد",
        "revdelete-restricted": "مدیران را محدود کرد",
        "revdelete-unrestricted": "محدودیت مدیران را لغو کرد",
+       "logentry-merge-merge": "$1  $3  را به  $4 {{GENDER:$2| ادغام کرد}} (نسخه تا  $5)",
        "logentry-move-move": "$1 صفحهٔ $3 را به $4 {{GENDER:$2|منتقل کرد}}",
        "logentry-move-move-noredirect": "$1 صفحهٔ $3 را بدون برجای‌گذاشتن تغییرمسیر به $4 {{GENDER:$2|منتقل کرد}}",
        "logentry-move-move_redir": "$1 صفحهٔ $3 را به $4 که تغییرمسیر بود {{GENDER:$2|منتقل کرد}}",
index 537b775..5ff1b41 100644 (file)
        "otherlanguages": "Outras linguas",
        "redirectedfrom": "(Redirixido desde \"$1\")",
        "redirectpagesub": "Páxina de redirección",
+       "redirectto": "Redirixir cara a:",
        "lastmodifiedat": "A última modificación desta páxina foi o $1 ás $2.",
        "viewcount": "Esta páxina foi visitada {{PLURAL:$1|unha vez|$1 veces}}.",
        "protectedpage": "Páxina protexida",
        "viewsourcetext": "Pode ver e copiar o código fonte desta páxina:",
        "viewyourtext": "Pode ver e copiar o código fonte '''das súas edicións''' nesta páxina:",
        "protectedinterface": "Esta páxina fornece o texto da interface do software e está protexida para evitar o seu abuso.\nPara engadir ou modificar as traducións en todos os wikis utilice [//translatewiki.net/wiki/Main_Page?setlang=gl translatewiki.net], o proxecto de localización de MediaWiki.",
-       "editinginterface": "'''Aviso:''' Está editando unha páxina usada para fornecer o texto da interface do software.\nOs cambios nesta páxina afectarán á aparencia da interface dos outros usuarios do wiki.\nPara engadir ou modificar as traducións en todos os wikis utilice [//translatewiki.net/wiki/Main_Page?setlang=gl translatewiki.net], o proxecto de localización de MediaWiki.",
+       "editinginterface": "<strong>Aviso:</strong> Está editando unha páxina usada para fornecer o texto da interface do software.\nOs cambios feitos nesta páxina afectarán á aparencia da interface dos outros usuarios do wiki.",
+       "translateinterface": "Para engadir ou modificar as traducións en todos os wikis utilice [//translatewiki.net/wiki/Special:MainPage?setlang=gl translatewiki.net], o proxecto de localización de MediaWiki.",
        "cascadeprotected": "Esta páxina foi protexida fronte á edición debido a que está incluída {{PLURAL:$1|na seguinte páxina protexida, que ten|nas seguintes páxinas protexidas, que teñen}} a \"protección en serie\" activada:\n$2",
        "namespaceprotected": "Non ten os permisos necesarios para modificar páxinas no espazo de nomes '''$1'''.",
        "customcssprotected": "Non ten os permisos necesarios para modificar esta páxina de CSS, dado que contén a configuración persoal doutro usuario.",
        "content-model-text": "texto simple",
        "content-model-javascript": "JavaScript",
        "content-model-css": "CSS",
+       "duplicate-args-category": "Páxinas con argumentos duplicados nas chamadas aos modelos",
+       "duplicate-args-category-desc": "Esta páxina contén as chamadas aos modelos que utilizan argumentos duplicados, como <code><nowiki>{{exemplo|bar=1|bar=2}}</nowiki></code> ou <code><nowiki>{{exemplo|bar|1=baz}}</nowiki></code>.",
        "expensive-parserfunction-warning": "'''Aviso:''' Esta páxina contén demasiadas chamadas a funcións analíticas custosas.\n\nDebe ter menos {{PLURAL:$2|dunha chamada|de $2 chamadas}}, e agora hai $1.",
        "expensive-parserfunction-category": "Páxinas con moitas chamadas a funcións analíticas custosas",
        "post-expand-template-inclusion-warning": "'''Aviso:''' O tamaño do modelo é moi grande.\nAlgúns modelos non se incluirán.",
        "search-relatedarticle": "Relacionado",
        "searchrelated": "relacionado",
        "searchall": "todo",
-       "showingresults": "{{PLURAL:$1|Móstrase '''1''' resultado|Móstranse '''$1''' resultados}}, comezando polo número '''$2'''.",
+       "showingresults": "{{PLURAL:$1|Móstrase <strong>1</strong> resultado|Móstranse <strong>$1</strong> resultados}}, comezando polo número <strong>$2</strong>.",
        "showingresultsinrange": "{{PLURAL:$1|Móstrase <strong>1</strong> resultado|Móstranse <strong>$1</strong> resultados}}, comezando polo número <strong>$2</strong> e rematando polo número <strong>$3</strong>.",
+       "search-showingresults": "{{PLURAL:$5|Resultado <strong>$1</strong> de <strong>$3</strong>|Resultados do <strong>$1</strong> ao <strong>$2</strong>, dun total de <strong>$3</strong>}}",
        "search-nonefound": "Non se atopou ningún resultado que coincidise coa procura.",
        "powersearch-legend": "Busca avanzada",
        "powersearch-ns": "Procurar nos espazos de nomes:",
        "gender-female": "Ela edita as páxinas do wiki",
        "prefs-help-gender": "Definir esta preferencia é opcional.\nO software usa este valor para dirixirse á súa persoa e para facerlle mencións mediante o xénero gramatical axeitado.\nEsta información será pública.",
        "email": "Correo electrónico",
-       "prefs-help-realname": "O nome real é opcional.\nSe escolle dalo utilizarase para atribuírlle o seu traballo.",
+       "prefs-help-realname": "O nome real é opcional.\nEn caso de revelalo, utilizarase para atribuírlle o seu traballo.",
        "prefs-help-email": "O enderezo de correo electrónico é opcional, pero permite que se lle envíe un contrasinal novo se se esquece del.",
        "prefs-help-email-others": "Tamén pode optar por deixar aos outros que se poidan poñer en contacto con vostede a través da súa páxina de usuario sen necesidade de revelar a súa identidade.",
        "prefs-help-email-required": "Cómpre o enderezo de correo electrónico.",
        "prefs-tokenwatchlist": "Pase",
        "prefs-diffs": "Diferenzas",
        "prefs-help-prefershttps": "Esta preferencia ha aplicarse no seu vindeiro acceso ao sistema.",
+       "prefswarning-warning": "Fixo cambios nas súas preferencias que aínda non se gardaron.\nSe deixa esta páxina sen premer en \"Gardar\", non se actualizarán as súas preferencias.",
        "prefs-tabs-navigation-hint": "Consello: Pode empregar as frechas esquerda e dereita para navegar polas lapelas da lista.",
        "email-address-validity-valid": "O enderezo de correo electrónico semella válido",
        "email-address-validity-invalid": "Escriba un enderezo de correo electrónico válido",
        "pager-older-n": "{{PLURAL:$1|unha anterior|$1 anteriores}}",
        "suppress": "Supervisor",
        "querypage-disabled": "Esta páxina especial está desactivada por razóns de rendemento.",
+       "apihelp": "Axuda coa API",
+       "apihelp-no-such-module": "Non se atopou o módulo \"$1\".",
        "booksources": "Fontes bibliográficas",
        "booksources-search-legend": "Procurar fontes bibliográficas",
+       "booksources-search": "Procurar",
        "booksources-text": "A continuación aparece unha lista de ligazóns cara a outros sitios web que venden libros novos e usados, neles tamén pode obter máis información sobre as obras que está a buscar:",
        "booksources-invalid-isbn": "O ISBN inserido parece non ser válido; comprobe que non haxa erros ao copialo da fonte orixinal.",
        "specialloguserlabel": "Executante:",
        "protect-othertime": "Outra duración:",
        "protect-othertime-op": "outra duración",
        "protect-existing-expiry": "Período de caducidade actual: $2 ás $3",
+       "protect-existing-expiry-infinity": "Período de caducidade actual: infinito",
        "protect-otherreason": "Outro motivo:",
        "protect-otherreason-op": "Outro motivo",
        "protect-dropdown": "*Motivos frecuentes para a protección\n** Vandalismo excesivo\n** Publicidade excesiva\n** Guerra de edicións\n** Páxina moi visitada",
        "unblockip": "Desbloquear un usuario",
        "unblockiptext": "Use o seguinte formulario para dar de novo acceso de escritura a un enderezo IP ou usuario que estea bloqueado.",
        "ipusubmit": "Retirar o bloqueo",
-       "unblocked": "[[User:$1|$1]] foi {{GENDER:$1|desbloqueado|desbloqueada}}",
-       "unblocked-range": "$1 foi desbloqueado",
-       "unblocked-id": "O bloqueo $1 foi eliminado",
+       "unblocked": "[[User:$1|$1]] foi {{GENDER:$1|desbloqueado|desbloqueada}}.",
+       "unblocked-range": "$1 foi desbloqueado.",
+       "unblocked-id": "O bloqueo $1 foi eliminado.",
+       "unblocked-ip": "[[Special:Contributions/$1|$1]] foi desbloqueado.",
        "blocklist": "Usuarios bloqueados",
        "ipblocklist": "Usuarios bloqueados",
        "ipblocklist-legend": "Buscar un usuario bloqueado",
        "tooltip-pt-preferences": "As miñas preferencias",
        "tooltip-pt-watchlist": "A lista de páxinas cuxas modificacións está a seguir",
        "tooltip-pt-mycontris": "Lista das súas contribucións",
-       "tooltip-pt-login": "Recoméndaselle rexistrarse, se ben non é obrigatorio.",
+       "tooltip-pt-login": "Recoméndaselle rexistrarse, se ben non é obrigatorio",
        "tooltip-pt-logout": "Saír ao anonimato",
+       "tooltip-pt-createaccount": "Recoméndaselle crear unha conta e acceder ao sistema, se ben non é obrigatorio",
        "tooltip-ca-talk": "Conversa acerca do contido desta páxina",
        "tooltip-ca-edit": "Pode modificar esta páxina; antes de gardala, por favor, utilice o botón de vista previa",
        "tooltip-ca-addsection": "Comezar unha nova sección",
        "tooltip-feed-atom": "Fonte de novas Atom desta páxina",
        "tooltip-t-contributions": "Ver a lista de contribucións {{GENDER:{{BASEPAGENAME}}|deste usuario|desta usuaria}}",
        "tooltip-t-emailuser": "Enviarlle unha mensaxe a {{GENDER:{{BASEPAGENAME}}|este usuario|esta usuaria}} por correo electrónico",
+       "tooltip-t-info": "Máis información sobre esta páxina",
        "tooltip-t-upload": "Subir ficheiros",
        "tooltip-t-specialpages": "Lista de todas as páxinas especiais",
        "tooltip-t-print": "Versión para imprimir da páxina",
        "unknown_extension_tag": "Etiqueta de extensión descoñecida \"$1\"",
        "duplicate-defaultsort": "<strong>Aviso:</strong> A clave de ordenación por defecto \"$2\" anula a clave de ordenación anterior por defecto \"$1\".",
        "duplicate-displaytitle": "'''Aviso:''' O título mostrado \"$2\" anula o título anterior \"$1\".",
+       "invalid-indicator-name": "<strong>Erro:</strong> O atributo <code>name</code> dos indicadores do estado da páxina non pode estar baleiro.",
        "version": "Versión",
        "version-extensions": "Extensións instaladas",
        "version-skins": "Aparencias instaladas",
        "revdelete-uname-unhid": "descubriu o nome de usuario",
        "revdelete-restricted": "aplicou restricións aos administradores",
        "revdelete-unrestricted": "eliminou restricións aos administradores",
+       "logentry-merge-merge": "$1 {{GENDER:$2|fusionou}} \"$3\" con \"$4\" (revisións ata o $5)",
        "logentry-move-move": "$1 {{GENDER:$2|moveu}} a páxina \"$3\" a \"$4\"",
        "logentry-move-move-noredirect": "$1 {{GENDER:$2|moveu}} a páxina \"$3\" a \"$4\" sen deixar unha redirección",
        "logentry-move-move_redir": "$1 {{GENDER:$2|moveu}} a páxina \"$3\" a \"$4\" sobre unha redirección",
index e3af5e2..27ece9c 100644 (file)
        "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": "מיזמי אחות",
index 5d84b17..996ca6c 100644 (file)
        "content-model-text": "egyszerű szöveg",
        "content-model-javascript": "JavaScript",
        "content-model-css": "CSS",
+       "duplicate-args-category": "Dupla paramétermegadást tartalmazó lapok",
        "expensive-parserfunction-warning": "Figyelem: ezen a lapon túl sok erőforrásigényes elemzőfüggvény-hívás található.\n\nKevesebb, mint {{PLURAL:$2|egy|$2}} kellene, jelenleg {{PLURAL:$1|egy|$1}} van.",
        "expensive-parserfunction-category": "Túl sok költséges elemzőfüggvény-hívást tartalmazó lapok",
        "post-expand-template-inclusion-warning": "Figyelem: a beillesztett sablonok mérete túl nagy.\nNéhány sablon nem fog megjelenni.",
index ce3d64d..24aaeee 100644 (file)
        "viewsourcetext": "Tu pote vider e copiar le codice-fonte de iste pagina:",
        "viewyourtext": "Tu pote vider e copiar le fonte de '''tu modificationes''' de iste pagina:",
        "protectedinterface": "Iste pagina contine texto pro le interfacie del software de iste wiki, e es protegite pro impedir le abuso. Pro adder o modificar traductiones pro tote le wikis, per favor usa [//translatewiki.net/ translatewiki.net], le projecto de traduction de MediaWiki.",
-       "editinginterface": "'''Attention:''' Le texto de iste pagina face parte del interfacie pro le software.\nOmne modification a iste pagina cambiara le apparentia del interfacie pro altere usatores de iste wiki.\nPro adder o modificar traductiones pro tote le wikis, per favor usa [//translatewiki.net/ translatewiki.net], le projecto de traduction de MediaWiki.",
+       "editinginterface": "<strong>Attention:</strong> Le texto de iste pagina face parte del interfacie pro le software.\nOmne modification apportate a iste pagina cambiara le apparentia del interfacie pro altere usatores de iste wiki.",
+       "translateinterface": "Pro adder o modificar traductiones pro tote le wikis, per favor usa [//translatewiki.net/ translatewiki.net], le projecto de localisation de MediaWiki.",
        "cascadeprotected": "Iste pagina ha essite protegite contra modificationes, proque illo es includite in le sequente {{PLURAL:$1|pagina, le qual|paginas, le quales}} es protegite usante le option \"cascada\":\n$2",
        "namespaceprotected": "Tu non ha le permission de modificar paginas in le spatio de nomines '''$1'''.",
        "customcssprotected": "Tu non ha le permission de modificar iste pagina de CSS perque illo contine le configuration personal de un altere usator.",
        "content-model-text": "texto simple",
        "content-model-javascript": "JavaScript",
        "content-model-css": "CSS",
+       "duplicate-args-category": "Paginas que usa parametros duplicate in appellos de patrono",
+       "duplicate-args-category-desc": "Le pagina contine appellos de patrono que usa duplicatos de parametros, como per exemplo <code><nowiki>{{foo|bar=1|bar=2}}</nowiki></code> or <code><nowiki>{{foo|bar|1=baz}}</nowiki></code>.",
        "expensive-parserfunction-warning": "Attention: Iste pagina contine troppo de appellos costose al functiones del analysator syntactic.\n\nIllo debe haber minus de $2 {{PLURAL:$2|appello|appellos}}, sed al momento ha $1 {{PLURAL:$1|appello|appellos}}.",
        "expensive-parserfunction-category": "Paginas con troppo de appellos costose al functiones del analysator syntactic",
        "post-expand-template-inclusion-warning": "'''Attention:''' Le grandor del patronos includite ha excedite le maximo.\nAlcun patronos non essera includite.",
        "search-result-category-size": "{{PLURAL:$1|1 membro|$1 membros}} ({{PLURAL:$2|1 subcategoria|$2 subcategorias}}, {{PLURAL:$3|1 file|$3 files}})",
        "search-redirect": "(redirection ab $1)",
        "search-section": "(section $1)",
+       "search-category": "(categoria $1)",
        "search-file-match": "(corresponde al contento del file)",
        "search-suggest": "Esque tu vole dicer: $1",
        "search-interwiki-caption": "Projectos fratres",
        "gender-female": "Illa modifica paginas wiki",
        "prefs-help-gender": "Definir iste preferentia es optional.\nLe software lo usa pro adressar e mentionar te correctemente con le genere appropriate.\nIste information es public.",
        "email": "E-mail",
-       "prefs-help-realname": "Le nomine real es optional.\nSi tu opta pro dar lo, isto essera usate pro dar te attribution pro tu contributiones.",
+       "prefs-help-realname": "Le nomine real es optional.\nSi fornite, illo pote esser usate pro attribuer te tu travalio.",
        "prefs-help-email": "Le adresse de e-mail es optional, ma es necessari pro le reinitialisation de tu contrasigno, in caso que tu lo oblida.",
        "prefs-help-email-others": "Tu pote etiam optar pro permitter que altere personas te contacta via tu pagina de usator o de discussion, sin necessitate de revelar tu identitate.",
        "prefs-help-email-required": "Un adresse de e-mail es obligatori.",
        "pager-older-n": "{{PLURAL:$1|1 minus recente|$1 minus recente}}",
        "suppress": "Supervisor",
        "querypage-disabled": "Iste pagina special es disactivate pro evitar de supercargar le systema.",
+       "apihelp": "Adjuta con le API",
+       "apihelp-no-such-module": "Modulo \"$1\" non trovate.",
        "booksources": "Fontes de libros",
        "booksources-search-legend": "Cercar fontes de libros",
        "booksources-search": "Cercar",
        "tooltip-pt-mycontris": "Lista de tu contributiones",
        "tooltip-pt-login": "Nos recommenda que tu te authentica, ma non es obligatori.",
        "tooltip-pt-logout": "Clauder session",
+       "tooltip-pt-createaccount": "Tu es incoragiate a crear un conto e aperir session; totevia, non es obligatori",
        "tooltip-ca-talk": "Discussiones a proposito del pagina de contento",
        "tooltip-ca-edit": "Tu pote modificar iste pagina.\nPer favor usa le previsualisation ante de publicar.",
        "tooltip-ca-addsection": "Initiar un nove section",
        "tooltip-feed-atom": "Syndication Atom pro iste pagina",
        "tooltip-t-contributions": "Vider le lista de contributiones de iste usator",
        "tooltip-t-emailuser": "Inviar un e-mail a iste usator",
+       "tooltip-t-info": "Plus information super iste pagina",
        "tooltip-t-upload": "Incargar files",
        "tooltip-t-specialpages": "Lista de tote le paginas special",
        "tooltip-t-print": "Version imprimibile de iste pagina",
        "unknown_extension_tag": "Etiquetta de extension incognite \"$1\"",
        "duplicate-defaultsort": "Attention: Le clave de ordination predefinite \"$2\" supplanta le anterior clave de ordination predefinite \"$1\".",
        "duplicate-displaytitle": "<strong>Attention:</strong> Le titulo a monstrar \"$2\" supplanta le ancian titulo a monstrar \"$1\".",
+       "invalid-indicator-name": "<strong>Error:</strong> Le attributo <code>name</code> del indicatores del stato del pagina non pote esser vacue.",
        "version": "Version",
        "version-extensions": "Extensiones installate",
        "version-skins": "Apparentias installate",
        "revdelete-uname-unhid": "nomine de usator non plus celate",
        "revdelete-restricted": "restrictiones applicate al administratores",
        "revdelete-unrestricted": "restrictiones eliminate pro administratores",
+       "logentry-merge-merge": "$1 {{GENDER:$2|fusionava}} $3 in $4 (versiones usque a $5)",
        "logentry-move-move": "$1 {{GENDER:$2|renominava}} le pagina $3 a $4",
        "logentry-move-move-noredirect": "$1 {{GENDER:$2|renominava}} le pagina $3 a $4 sin lassar un redirection",
        "logentry-move-move_redir": "$1 {{GENDER:$2|renominava}} le pagina $3 a $4, superscribente un redirection",
index 9f260f9..ecacea8 100644 (file)
        "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": "姉妹プロジェクト",
index 330bd8c..0a50ac3 100644 (file)
        "viewsourcetext": "문서의 원본을 보거나 복사할 수 있습니다:",
        "viewyourtext": "이 문서에 남긴 '''내 편집''' 내용을 보거나 복사할 수 있습니다:",
        "protectedinterface": "이 문서는 이 위키의 소프트웨어 인터페이스에 쓰이는 문서로, 부정 행위를 막기 위해 보호되어 있습니다.\n모든 위키에 대한 번역을 추가하거나 바꾸려면 미디어위키 지역화 프로젝트인 [//translatewiki.net/wiki/Main_Page?setlang=ko translatewiki.net]에 참여하시기 바랍니다.",
-       "editinginterface": "'''경고''': 소프트웨어 인터페이스에 쓰이는 문서를 고치고 있습니다.\n이 문서에 있는 내용을 바꾸면 이 위키에 있는 모든 사용자에게 영향을 끼칩니다.\n모든 위키에 대한 번역을 추가하거나 바꾸려면 미디어위키 지역화 프로젝트인 [//translatewiki.net/wiki/Main_Page?setlang=ko translatewiki.net]에 참여하시기 바랍니다.",
+       "editinginterface": "<strong>경고</strong>: 소프트웨어 인터페이스에 쓰이는 문서를 고치고 있습니다.\n이 문서에 있는 내용을 바꾸면 이 위키에 있는 모든 사용자에게 영향을 끼칩니다.\n모든 위키에 대한 번역을 추가하거나 바꾸려면 미디어위키 지역화 프로젝트인 [//translatewiki.net/ translatewiki.net]에 참여하시기 바랍니다.",
        "cascadeprotected": "이 문서는 다음 \"연쇄적\" 보호가 걸린 {{PLURAL:$1|문서}}에 포함되어 있어 함께 보호됩니다:\n$2",
        "namespaceprotected": "'''$1''' 이름공간을 편집할 수 있는 권한이 없습니다.",
        "customcssprotected": "여기에는 다른 사용자의 개인 설정이 포함되어 있기 때문에 이 CSS 문서를 편집할 수 없습니다.",
        "mediastatistics-table-totalbytes": "압축된 크기",
        "mediastatistics-header-unknown": "알 수 없음",
        "mediastatistics-header-bitmap": "비트맵 그림",
-       "mediastatistics-header-drawing": "드로잉 (벡터 그램)",
+       "mediastatistics-header-drawing": "드로잉 (벡터 이미지)",
        "mediastatistics-header-audio": "소리",
        "mediastatistics-header-video": "동영상",
        "mediastatistics-header-multimedia": "리치 미디어",
index 2dcc17b..13a065e 100644 (file)
        "search-result-category-size": "{{PLURAL:$1|1 Säit|$1 Säiten}} ({{PLURAL:$2|1 Ënnerkategorie|$2 Ënnerkategorien}}, {{PLURAL:$3|1 Fichier|$3 Fichieren}})",
        "search-redirect": "(Viruleedung $1)",
        "search-section": "(Abschnitt $1)",
+       "search-category": "(Kategorie $1)",
        "search-file-match": "(Inhalt vum Fichier passt)",
        "search-suggest": "Mengt Dir: $1",
        "search-interwiki-caption": "Schwësterprojeten",
index fc46017..8a0f942 100644 (file)
        "recentchanges": "近易",
        "recentchanges-legend": "近易項",
        "recentchanges-summary": "共筆揮新,悉列於此。",
+       "recentchanges-noresult": "無易。",
        "recentchanges-feed-description": "跟wiki源之近易。",
        "recentchanges-label-newpage": "此纂開新頁",
        "recentchanges-label-minor": "此乃細纂",
        "allmessages-prefix": "以前綴濾:",
        "allmessages-language": "言:",
        "allmessages-filter-submit": "始",
+       "allmessages-filter-translate": "譯",
        "thumbnail-more": "展",
        "filemissing": "喪檔",
        "thumbnail_error": "縮圖$1有誤",
        "intentionallyblankpage": "此頁為白也,試速之用",
        "external_image_whitelist": " #同留<pre>\n#下(中之//)乃正表式\n#乃外(連)圖配之\n#配乃成像,非配則成連\n#有 # 之為注\n#無為大小之異也\n\n#入正表式。同留</pre>",
        "tag-filter": "[[Special:Tags|標]] 之濾:",
+       "tags-title": "標",
        "tags-tag": "標名",
+       "tags-active-yes": "是",
+       "tags-active-no": "否",
        "tags-edit": "纂",
        "comparepages": "較頁",
        "compare-page1": "頁一",
        "rightsnone": "(凡)",
        "revdelete-summary": "摘",
        "searchsuggest-search": "尋",
+       "pagelang-language": "語",
        "mediastatistics-header-unknown": "未知",
        "mediastatistics-header-video": "映像",
        "json-error-syntax": "語法有誤"
index 7173550..294d821 100644 (file)
        "search-result-category-size": "{{PLURAL:$1|1 член|$1 члена}} ({{PLURAL:$2|1 поткатегорија|$2 поткатегории}}, {{PLURAL:$3|1 податотека|$3 податотеки}})",
        "search-redirect": "(пренасочување $1)",
        "search-section": "(пасус $1)",
+       "search-category": "(категорија $1)",
        "search-file-match": "(се совпаѓа со содржината на податотеката)",
        "search-suggest": "Дали мислевте на: $1",
        "search-interwiki-caption": "Збратимени проекти",
index 0ce2f94..2bd618b 100644 (file)
        "viewsourcetext": "താങ്കൾക്ക് ഈ താളിന്റെ മൂലരൂപം കാണാനും പകർത്താനും സാധിക്കും:",
        "viewyourtext": "താങ്കൾക്ക് ഈ താളിലെ '''താങ്കളുടെ തിരുത്തുകളുടെ''' മൂലരൂപം കാണാനും പകർത്താനും സാധിക്കും:",
        "protectedinterface": "ഈ താൾ ഈ വിക്കിയുടെ സോഫ്റ്റ്‌വെയറിന്റെ സമ്പർക്കമുഖ എഴുത്തുകൾ നൽകുന്നു, അതുകൊണ്ട് ദുരുപയോഗം തടയാൻ ബന്ധിക്കപ്പെട്ടിരിക്കുന്നു. എല്ലാ വിക്കികൾക്കുമായി പരിഭാഷ കൂട്ടിച്ചേർക്കാനോ, പരിഭാഷയിൽ മാറ്റം വരുത്താനോ, ദയവായി മീഡിയവിക്കി പ്രാദേശീകരണ പദ്ധതിയായ [//translatewiki.net/ translatewiki.net] ഉപയോഗിക്കുക.",
-       "editinginterface": "'''മുന്നറിയിപ്പ്:''' സോഫ്റ്റ്‌വെയറിൽ സമ്പർക്കമുഖം നിലനിർത്തുന്ന താളാണു താങ്കൾ തിരുത്തുവാൻ പോകുന്നത്.\nഈ താളിൽ താങ്കൾ വരുത്തുന്ന മാറ്റങ്ങൾ ഉപയോക്താക്കൾ വിക്കി കാണുന്ന വിധത്തെ മാറ്റിമറിച്ചേക്കാം.\nമീഡിയവിക്കി സന്ദേശങ്ങളുടെ പരിഭാഷകൾ കൂട്ടിച്ചേർക്കാനും മാറ്റംവരുത്താനും മീഡിയവിക്കി സന്ദേശങ്ങളുടെ പ്രാദേശികവത്കരണ പദ്ധതിയായ [//translatewiki.net/ translatewiki.net] ഉപയോഗിക്കുവാൻ താല്പര്യപ്പെടുന്നു.",
+       "editinginterface": "<strong>മുന്നറിയിപ്പ്:<strong> സോഫ്റ്റ്‌വെയറിൽ സമ്പർക്കമുഖം നിലനിർത്തുന്ന താളാണു താങ്കൾ തിരുത്തുവാൻ പോകുന്നത്.\nഈ താളിൽ താങ്കൾ വരുത്തുന്ന മാറ്റങ്ങൾ ഉപയോക്താക്കൾ വിക്കി കാണുന്ന വിധത്തെ മാറ്റിമറിച്ചേക്കാം.",
+       "translateinterface": "എല്ലാ വിക്കികൾക്കും ഉപയോഗിക്കാനാവുംവിധം പരിഭാഷകൾ കൂട്ടിച്ചേർക്കാനും മാറ്റംവരുത്താനും മീഡിയവിക്കി സന്ദേശങ്ങളുടെ പ്രാദേശികവത്കരണ പദ്ധതിയായ [//translatewiki.net/ translatewiki.net] ഉപയോഗിക്കുവാൻ താല്പര്യപ്പെടുന്നു.",
        "cascadeprotected": "നിർഝരിത (cascading) സൗകര്യം ഉപയോഗിച്ച് തിരുത്തൽ നടത്തുന്നതിനു സം‌രക്ഷണം ഏർപ്പെടുത്തിയിട്ടുള്ള {{PLURAL:$1|താഴെ കൊടുത്തിട്ടുള്ള താളിന്റെ|താഴെ കൊടുത്തിട്ടുള്ള താളുകളുടെ}} ഭാഗമാണ്‌ ഈ താൾ. അതിനാൽ ഈ താൾ തിരുത്താൻ സാധിക്കില്ല:\n$2",
        "namespaceprotected": "'''$1''' നാമമേഖലയിലുള്ള താളുകൾ തിരുത്താൻ താങ്കൾക്ക് അനുവാദമില്ല.",
        "customcssprotected": "ഈ സി.എസ്.എസ്. താളിൽ മറ്റൊരു ഉപയോക്താവിന്റെ സ്വകാര്യസജ്ജീകരണങ്ങൾ ഉൾക്കൊള്ളുന്നു, അതിനാൽ താങ്കൾക്ക് ഈ താൾ തിരുത്താൻ അനുവാദമില്ല.",
index 9f06965..e21049b 100644 (file)
        "search-result-category-size": "$1 {{PLURAL:$1|ahli|ahli}} ($2 {{PLURAL:$2|subkategori|subkategori}}, $3 {{PLURAL:$3|fail|fail}})",
        "search-redirect": "(pelencongan $1)",
        "search-section": "(bahagian $1)",
+       "search-category": "(kategori $1)",
        "search-file-match": "(sepadan dengan kandungan fail)",
        "search-suggest": "Maksud anda, $1?",
        "search-interwiki-caption": "Projek-projek lain",
index 9f26158..0b7c627 100644 (file)
        "search-result-category-size": "{{PLURAL:$1|1 utente|$1 utente}} ({{PLURAL:$2|1 sottocategurìa|$2 sottocategurìe}}, {{PLURAL:$3|1 file|$3 files}})",
        "search-redirect": "(redirect $1)",
        "search-section": "(sezzione $1)",
+       "search-category": "(categurìa $1)",
        "search-file-match": "(currispunnenza dint' 'e cuntenute d' 'o file)",
        "search-suggest": "Prova chisto: $1",
        "search-interwiki-caption": "Prugiette frate",
        "rcshowhidepatr": "$1 cagnamiente cuntrullate",
        "rcshowhidepatr-show": "Faje vedé",
        "rcshowhidepatr-hide": "Annascunne",
-       "rcshowhidemine": "$1 'e ffatiche mmee",
+       "rcshowhidemine": "$1 'e ffatiche mieie",
        "rcshowhidemine-show": "Faje vedé",
        "rcshowhidemine-hide": "Annascunne",
        "rclinks": "Faje vedé ll'urdeme $1 cagnamiente dint' ll'urdeme $2 juorne<br />$3",
        "htmlform-yes": "Sì",
        "htmlform-chosen-placeholder": "Scigliete n'opzione",
        "htmlform-cloner-create": "Azzecca 'e cchiù",
-       "htmlform-cloner-delete": "Rimuove",
+       "htmlform-cloner-delete": "Lèva",
        "htmlform-cloner-required": "Servesse al minimo nu valore.",
        "sqlite-has-fts": "$1 cu supporto 'e ricerche full-text",
        "sqlite-no-fts": "$1 senza supporto 'e ricerche full-text",
        "logentry-newusers-autocreate": "'O cunto utente $1 fuje {{GENDER:$2|criato|criata}} automatecamente",
        "logentry-rights-rights": "$1 {{GENDER:$2|cagnaje}} 'e gruppo pe' $3 'a $4 a $5",
        "logentry-rights-rights-legacy": "$1 {{GENDER:$2|cagnaje}} 'e gruppo pe' $3",
+       "logentry-rights-autopromote": "$1 è {{GENDER:$2|stato promosso|stata promossa}} automatecamente 'a $4 a $5",
+       "logentry-upload-upload": "$1 {{GENDER:$2|ave carrecato}} $3",
+       "logentry-upload-overwrite": "$1 {{GENDER:$2|ave carrecato}} na verziona nnova 'e $3",
+       "logentry-upload-revert": "$1 {{GENDER:$2|ave carrecato}} $3",
        "rightsnone": "(nisciuno)",
        "revdelete-summary": "cagna 'o riepilego",
        "feedback-bugornote": "Si site pronto/a a descrivere nu probblema tecnico ch' 'e dettaglie, pe' piacere [$1 mannate nu bug].\nSi nun site pronto/a, allora putite ausà 'o modulo semprice ca vedite ccà abbascio. 'O commento vuosto sarrà mpezzato dint' 'a paggena [$3 $2]\", seguenno 'o nomme utente vuosto e 'o navigatóre web ca state ausanno.",
        "api-error-badaccess-groups": "Tun putite carrecà file ncopp' 'a sta wiki.",
        "api-error-badtoken": "Errore interno: 'O token nun è buono.",
        "api-error-copyuploaddisabled": "'A funzione carrcà 'e n'URL nun è appicciata dint'a stu server.",
+       "api-error-duplicate": "Nce {{PLURAL:$1|stà [$2 n'atu file]|stanno [$2 ati file]}} ncopp' 'o sito ch' 'e stisse cuntenute.",
+       "api-error-duplicate-archive": "Nce {{PLURAL:$1|steva [$2 n'atu file]|stevano [$2 ati file]}} già ncopp' 'o sito ch' 'e stisse cuntenute, però {{PLURAL:$1|è stato|so' state}} scancellate.",
+       "api-error-duplicate-archive-popup-title": "File duprecat{{PLURAL:$1|o che è già stato scancellato|e che songo già state scancellati}}",
+       "api-error-duplicate-popup-title": "Dupreche {{PLURAL:$1|file|file}}",
+       "api-error-empty-file": "'O file ch'avite mannato è abbacante.",
+       "api-error-emptypage": "'A criazione 'e paggene nuove abbacante nun è permessa.",
+       "api-error-fetchfileerror": "Errore interno: Coccosa ascette stuorta quanno se steva 'analizzà stu file.",
+       "api-error-fileexists-forbidden": "Nu file c' 'o nomme \"$1\" esiste già, e chisto nun pò essere sovrascritto.",
+       "api-error-fileexists-shared-forbidden": "Nu file c' 'o nomme \"$1\" esiste già dint' 'a l'archivio 'e file, e chisto nun pò essere sovrascritto.",
+       "api-error-file-too-large": "'O file ch'avite mannato è troppo gruosso.",
        "api-error-filename-tooshort": "'O nomme d' 'o file è troppo curto.",
        "api-error-filetype-banned": "Stu tipo 'e file nun è permesso.",
+       "api-error-filetype-banned-type": "$1 {{PLURAL:$4|nun è nu tipo 'e file permesso|nun songo tipe 'e file permesse}}. {{PLURAL:$3|'O tipo 'e file permesso è|'E tipe 'e file permesse songo}} $2.",
+       "api-error-filetype-missing": "Stu file nun tene estensione.",
+       "api-error-hookaborted": "'O cagnamiento c'avite pruvato 'e fà è stato spezzato 'a na stensione.",
+       "api-error-http": "Errore interno: Nun putimmo ngarrà a nce cullegà a 'o server.",
+       "api-error-illegal-filename": "'O nomme d' 'o file nun è permesso.",
+       "api-error-internal-error": "Errore interno: Coccosa ascette male pe' tramente ca se steva processanno 'a carreca dint'a stu wiki.",
+       "api-error-invalid-file-key": "Errore interno: 'O file nun se pò truvà dint' 'a memoria temporanea.",
+       "api-error-missingparam": "Errore interno: nun se trovano 'e parametre pe' ne putè fà 'a richiesta.",
+       "api-error-missingresult": "Errore interno: Nun se pò sapè si 'a copia ascette bbona.",
+       "api-error-mustbeloggedin": "Avite 'a trasì ô sito si vulite carrecà file.",
+       "api-error-mustbeposted": "Errore interno: 'A richiesta vole HTTP POST.",
+       "api-error-noimageinfo": "A carreca ngarraje, ma 'o server nun ce ha pututo dà nisciuna nformazione ncopp' 'o file.",
+       "api-error-nomodule": "Errore interno: Nisciuno modulo 'e carreca mpustato.",
+       "api-error-ok-but-empty": "Errore interno: Nisciuna resposta 'a 'o server.",
+       "api-error-overwrite": "Sovrascrivere nu file ch'esiste già nun è permesso.",
+       "api-error-stashfailed": "Errore interno: 'O server nun ngarraje a s'astipà 'o file temporaneo.",
+       "api-error-publishfailed": "Errore interno: 'O server nun ngarraje a pubbrecà 'o file temporaneo.",
+       "api-error-stasherror": "'A carreca d' 'o file 'n stash è asciuta male, ce sta n'errore.",
+       "api-error-timeout": "'O server nun rispunnette dint'a 'o tiempo stabbelito.",
+       "api-error-unclassified": "È capitato n'errore scanusciuto.",
+       "api-error-unknown-code": "Errore scanusciuto: \"$1\"",
+       "api-error-unknown-error": "Errore interno: Coccosa jette a fernì malalamente quano facisteve 'a carreca d' 'o file vuosto.",
+       "api-error-unknown-warning": "Avvertimento scanusciute: $1",
+       "api-error-unknownerror": "Errore scanusciuto: \"$1\"",
+       "api-error-uploaddisabled": "'E carreche so' stutate dint'a sta siki.",
+       "api-error-verification-error": "Stu file putesse stà nguacchiato, o tene n'estensione sbagliata.",
        "duration-seconds": "$1 {{PLURAL:$1|secondo|seconde}}",
        "duration-minutes": "$1 {{PLURAL:$1|minuto|minute}}",
        "duration-hours": "$1 {{PLURAL:$1|ora|ore}}",
        "duration-days": "$1 {{PLURAL:$1|juorno|juorne}}",
+       "duration-weeks": "$1 {{PLURAL:$1|semmana|semmane}}",
+       "duration-years": "$1 {{PLURAL:$1|anno|anne}}",
+       "duration-decades": "$1 {{PLURAL:$1|decade|decade}}",
+       "duration-centuries": "$1 {{PLURAL:$1|seculo|secule}}",
+       "duration-millennia": "$1 {{PLURAL:$1|millennio|millennia}}",
+       "rotate-comment": "Immaggine rotata $1 {{PLURAL:$1|grade}} 'n senzo orario",
+       "limitreport-title": "Analizzatore d' 'e date d' 'a profilazione:",
+       "limitreport-cputime": "Tiempo d'uso d' 'o CPU",
        "limitreport-cputime-value": "$1 {{PLURAL:$1|secondo|seconde}}",
+       "limitreport-walltime": "Tiempo riale d'uso",
        "limitreport-walltime-value": "$1 {{PLURAL:$1|secondo|seconde}}",
+       "limitreport-ppvisitednodes": "Nummero e nurece 'e preprucessore visetate",
+       "limitreport-ppgeneratednodes": "Nummero 'e nurece generate d' 'o preprocessore",
+       "limitreport-postexpandincludesize": "Diminziona d'inclusiune Post-Espanzione",
+       "limitreport-postexpandincludesize-value": "$1/$2 {{PLURAL:$2|byte|byte}}",
+       "limitreport-templateargumentsize": "Dimenzione d' 'o parametro d' 'o template",
        "limitreport-templateargumentsize-value": "$1/$2 {{PLURAL:$2|byte|byte}}",
+       "limitreport-expansiondepth": "Funno massimo 'e spanzione",
+       "limitreport-expensivefunctioncount": "Funzione analizzatore ca costasse assaje 'e prucessà",
+       "expandtemplates": "Template spannute",
+       "expand_templates_intro": "Sta pàggena speciale piglia cocche testo e spanne tutt' 'e template ca stann'a dinto recurzivamente.<br />\nChista spanne pure le funziune d'analise comme<br />\n<code><nowiki>{{</nowiki>#language:…}}</code>, e variabbele comme <br />\n<code><nowiki>{{</nowiki>CURRENTDAY}}</code>.<br />\nIn pratica tutte chille ca stessero dint'a le doppie parentesi graffe.<br />",
+       "expand_templates_title": "Titole contestuale pe' {{FULLPAGENAME}}, ecc.:",
+       "expand_templates_input": "Testo d'input:",
+       "expand_templates_output": "Risultato",
+       "expand_templates_xml_output": "Output XML",
+       "expand_templates_html_output": "Risultato HTML cruro",
        "expand_templates_ok": "OK",
+       "expand_templates_remove_comments": "Lèva 'e commente",
+       "expand_templates_remove_nowiki": "Lèva 'e tag <nowiki> 'a int' 'e resultate",
+       "expand_templates_generate_xml": "Fà vedè l'arvero 'e l'analisi XML",
+       "expand_templates_generate_rawhtml": "Fà verè 'o codece HTML 'n cruro",
        "expand_templates_preview": "Anteprimma",
+       "pagelanguage": "Scigliete 'a lengua d' 'a paggena pe' bbìa e stu strumiento",
        "pagelang-name": "Paggena",
        "pagelang-language": "Lengua",
+       "pagelang-use-default": "Aùsa 'a lengua predefinita",
        "pagelang-select-lang": "Selezziona lengua",
+       "right-pagelang": "Cagnate 'a lengua d' 'a paggena",
+       "action-pagelang": "càgna 'a lengua d' 'a paggena",
+       "log-name-pagelang": "Càgna 'o riggistro 'e llengue",
+       "log-description-pagelang": "Chest'è nu riggistro 'e cagnamiente 'e lengua d' 'e paggene.",
+       "logentry-pagelang-pagelang": "$1 {{GENDER:$2|ave cagnato}} 'a lengua d' 'a paggena $3 'a $4 a $5.",
+       "default-skin-not-found": "Oops! 'A skin predefinta ' 'o wii vuosto, definita 'n <code dir=\"ltr\">$wgDefaultSkin</code> comme <code>$1</code>, nun se tròva.\n\n'A installazione pare ca tenesse 'e skin ccà abbascio. Vedite [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manuale: configurazione skin] pe' n'avè cchiù nfurmaziune ncopp' 'a manera 'e ll'abbià o scegliere chilla predefinita.\n\n$2\n\n; Si avite installato MediaWiki mò mò:\n: Probabbilmente l'avite installato 'a git, o direttamente 'a 'o codece sorgente ausanno cocch'atu metodo. Chesto era permesso. Verite 'e installà cocche skin 'a [https://www.mediawiki.org/wiki/Category:All_skins directory ncoppa mediawiki.org], tramite:\n:* Scarrecanno 'o [https://www.mediawiki.org/wiki/Download programma 'e installazione tarball], ca venesse fornito ch' 'e diverze skin ed estenziune. Putite fare copia-azzecca d' 'a directory <code dir=\"ltr\">skins/</code>.\n:* Clonanno uno 'e chiste repository <code>mediawiki/skins/*</code> pe' bbìa d' 'o git dint' 'a directory <code>skins/</code> d' 'a installazione MediaWiki vosta.\n: Facenno accussì nun se mmescasse 'o repository git vuosto si site sviluppatore MediaWiki.\n\n; Si avite MediaWiki agghiurnato MediaWiki mò mò:\n: MediaWiki 1.24 e verziune appriesso nun abbìa automatecamente 'e skin installate (vedite [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery Manuale: rilevamento automateco skin]). Putite copiare 'e linee ccà abbascio dint' 'o <code>LocalSettings.php</code> pe' putè appiccià tutt' 'e skin installate mò mò:\n\n<pre dir=\"ltr\">$3</pre>\n\n; Si avite cagnato mò mò <code>LocalSettings.php</code>:\n: Cuntrullate 'e nomme d' 'e skin n'ata vota pe' ve sparagnà cocch'errore 'e battitura.",
+       "default-skin-not-found-no-skins": "Oops! 'A skin predefinita p' 'o wiki vuosto, definita 'n <code dir=\"ltr\">$wgDefaultSkin</code> comme <code>$1</code>, nun se tròva.\n\nNun avite installato nisciuno skin.\n\n; Si avite installato MediaWiki mò mò:\n: Probabbilmente l'avite installato 'a git, o direttamente 'a 'o codece sorgente ausanno cocch'atu metodo. Chesto era permesso. Verite 'e installà cocche skin 'a [https://www.mediawiki.org/wiki/Category:All_skins directory ncoppa mediawiki.org], tramite:\n:* Scarrecanno 'o [https://www.mediawiki.org/wiki/Download programma 'e installazione tarball], ca venesse fornito ch' 'e diverze skin ed estenziune. Putite fare copia-azzecca d' 'a directory <code dir=\"ltr\">skins/</code>.\n:* Clonanno uno 'e chiste repository <code>mediawiki/skins/*</code> pe' bbìa d' 'o git dint' 'a directory <code>skins/</code> d' 'a installazione MediaWiki vosta.\n: Facenno accussì nun se mmescasse 'o repository git vuosto si site sviluppatore MediaWiki. Vedite [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery Manuale: rilevamento automateco skin]) pe n'avè nfurmaziune ncopp' 'a maniera d'appiccià e scegliere chella predefinita.",
+       "default-skin-not-found-row-enabled": "* <code>$1</code> / $2 (funzione appicciata)",
+       "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 ('''funzione stutata''')",
+       "mediastatistics": "Statistiche d' 'e media",
+       "mediastatistics-summary": "Statistiche ncopp' 'e tipe d' 'e file carrecate. Ce truvate azzeccata sulamente 'a verziona cchiù recente d' 'o file. Verziune viecchie o scancellate se so' luvate.",
+       "mediastatistics-nbytes": "{{PLURAL:$1|$1 byte}} ($2; $3%)",
+       "mediastatistics-table-mimetype": "Tipo 'e MIME",
+       "mediastatistics-table-extensions": "Estenziune possibbele",
+       "mediastatistics-table-count": "Nummero 'e file",
+       "mediastatistics-table-totalbytes": "Dimenziona cumbinata",
        "mediastatistics-header-unknown": "Scanusciuto",
+       "mediastatistics-header-bitmap": "Immaggene bitmap",
+       "mediastatistics-header-drawing": "Disegne (immaggene vetturiale)",
        "mediastatistics-header-audio": "Audio",
        "mediastatistics-header-video": "Video",
+       "mediastatistics-header-multimedia": "Cuntenute ricche multimediale",
        "mediastatistics-header-office": "Ufficio",
        "mediastatistics-header-text": "Testuale",
+       "mediastatistics-header-executable": "File eseguetàbbele",
+       "mediastatistics-header-archive": "Furmate compresse",
+       "json-warn-trailing-comma": "$1 {{PLURAL:$1|virgola finale è stata luvata|virgule finale so' state luvate}} 'a 'o JSON",
        "json-error-unknown": "Ce sta nu probblema c' 'o JSON. Errore: $1",
+       "json-error-depth": "'O funno massimo 'e stack è stato appassàto",
        "json-error-state-mismatch": "Valore malamente furmato o nun buono p' 'o JSON",
+       "json-error-ctrl-char": "Errore dint' 'o carattere 'e cuntrollo, può darse ca s'avesse codefecato male",
        "json-error-syntax": "Errore 'e sintasse",
        "json-error-utf8": "'E carattere UTF-8 furmate malamente, probbabilmente nun se songhe ncodifecate bbuone",
+       "json-error-recursion": "Uno o cchiù riferimente recurzive dint' 'o valore a codefecare",
+       "json-error-inf-or-nan": "Uno o cchiù valure NAN o INF dint' 'o valore 'a codefecare",
        "json-error-unsupported-type": "S'è dato nu valore pe' nu tipo ca nun se può ncodifecà"
 }
index b769f16..5aa28e2 100644 (file)
        "viewsourcetext": "U kunt de brontekst van deze pagina bekijken en kopiëren:",
        "viewyourtext": "U kunt '''uw bewerkingen''' aan de brontekst van deze pagina bekijken en kopiëren:",
        "protectedinterface": "Deze pagina bevat tekst voor berichten van de software op deze wiki en is beveiligd om misbruik te voorkomen.\nGebruik [//translatewiki.net/ translatewiki.net], het vertaalproject voor MediaWiki, om vertalingen voor alle wiki's toe te voegen of te wijzigen.",
-       "editinginterface": "'''Waarschuwing:''' u bewerkt een pagina die interfacetekst voor de software bevat.\nBewerkingen op deze pagina beïnvloeden de gebruikersinterface van iedereen op deze wiki.\nGebruik [//translatewiki.net/ translatewiki.net], het vertaalproject voor MediaWiki, om vertalingen toe te voegen of te wijzigen voor alle wiki's.",
+       "editinginterface": "<strong>Waarschuwing:</strong> u bewerkt een pagina die interfacetekst voor de software bevat.\nBewerkingen op deze pagina beïnvloeden de gebruikersinterface van iedereen op deze wiki.\nGebruik [//translatewiki.net/ translatewiki.net], het vertaalproject voor MediaWiki, om vertalingen toe te voegen of te wijzigen voor alle wiki's.",
+       "translateinterface": "Om vertalingen voor alle wiki's toe te voegen of te wijzigen kunt u gebruik maken van [//translatewiki.net/ translatewiki.net], het vertaalproject voor MediaWiki.",
        "cascadeprotected": "Deze pagina kan niet bewerkt worden, omdat die is opgenomen in de volgende {{PLURAL:$1|pagina|pagina's}} die beveiligd {{PLURAL:$1|is|zijn}} met de cascade-optie:\n$2",
        "namespaceprotected": "U hebt geen rechten om pagina's in de naamruimte '''$1''' te bewerken.",
        "customcssprotected": "U kunt deze CSS-pagina niet bewerken, omdat die persoonlijke instellingen van een andere gebruiker bevat.",
        "content-model-javascript": "JavaScript",
        "content-model-css": "CSS",
        "duplicate-args-category": "Pagina's met dubbele sjabloonparameters",
+       "duplicate-args-category-desc": "De pagina bevat aanroepen van sjablonen waarin hetzelfde argument meerdere keren wordt gebruikt, bijvoorbeeld <code><nowiki>{{foo|bar=1|bar=2}}</nowiki></code> of <code><nowiki>{{foo|bar|1=baz}}</nowiki></code>.",
        "expensive-parserfunction-warning": "'''Waarschuwing:''' deze pagina gebruikt te veel kostbare parserfuncties.\n\nNu {{PLURAL:$1|is|zijn}} het er $1, terwijl het er minder dan $2 {{PLURAL:$2|moet|moeten}} zijn.",
        "expensive-parserfunction-category": "Pagina's die te veel kostbare parserfuncties gebruiken",
        "post-expand-template-inclusion-warning": "Waarschuwing: de maximale transclusiegrootte voor sjablonen is overschreden.\nSommige sjablonen worden niet getranscludeerd.",
        "search-result-category-size": "{{PLURAL:$1|1 categorielid|$1 categorieleden}} ({{PLURAL:$2|1 ondercategorie|$2 ondercategorieën}}, {{PLURAL:$3|1 bestand|$3 bestanden}})",
        "search-redirect": "(doorverwijzing $1)",
        "search-section": "(subkop $1)",
+       "search-category": "(categorie $1)",
        "search-file-match": "(komt overeen met de inhoud van het bestand)",
        "search-suggest": "Bedoelde u: $1",
        "search-interwiki-caption": "Zusterprojecten",
        "suppress": "Toezicht",
        "querypage-disabled": "Deze speciale pagina is uitgeschakeld om performanceredenen.",
        "apihelp": "API-hulp",
+       "apihelp-no-such-module": "Module \"$1\" niet gevonden.",
        "booksources": "Boekinformatie",
        "booksources-search-legend": "Bronnen en gegevens over een boek zoeken",
        "booksources-search": "Zoeken",
        "protect-othertime": "Andere duur:",
        "protect-othertime-op": "andere duur",
        "protect-existing-expiry": "Bestaande vervaldatum: $2 om $3",
+       "protect-existing-expiry-infinity": "Bestaande vervaldatum: oneindig",
        "protect-otherreason": "Overige/additionele reden:",
        "protect-otherreason-op": "andere reden",
        "protect-dropdown": "*Veel voorkomende redenen voor beveiliging\n** Vandalisme\n** Spam\n** Bewerkingsoorlog\n** Preventieve beveiliging veelbezochte pagina",
        "tooltip-pt-mycontris": "Overzicht van uw bijdragen",
        "tooltip-pt-login": "U wordt van harte uitgenodigd om u aan te melden als gebruiker, maar dit is niet verplicht",
        "tooltip-pt-logout": "Afmelden",
+       "tooltip-pt-createaccount": "Registreer u vooral en meld u aan. Dit is echter niet vereist.",
        "tooltip-ca-talk": "Overleg over deze pagina",
        "tooltip-ca-edit": "U kunt deze pagina bewerken. Gebruik de knop \"Bewerking ter controle bekijken\" voordat u de pagina opslaat",
        "tooltip-ca-addsection": "Nieuw kopje toevoegen",
        "unknown_extension_tag": "Onbekende tag \"$1\"",
        "duplicate-defaultsort": "'''Waarschuwing:''' de standaardsortering \"$2\" krijgt voorrang voor de sortering \"$1\".",
        "duplicate-displaytitle": "<strong>Waarschuwing:</strong>Titelweergave \"$2\" overschrijft eerdere titelweergave \"$1\".",
+       "invalid-indicator-name": "<strong>Fout:</strong> de eigenschap <code>name</code> van de paginastatusindicators mag niet leeg zijn.",
        "version": "Versie",
        "version-extensions": "Geïnstalleerde uitbreidingen",
        "version-skins": "Geïnstalleerde vormgevingen",
        "revdelete-uname-unhid": "gebruikersnaam zichtbaar gemaakt",
        "revdelete-restricted": "heeft beperkingen aan beheerders opgelegd",
        "revdelete-unrestricted": "heeft beperkingen voor beheerders opgeheven",
+       "logentry-merge-merge": "$1 {{GENDER:$2|heeft}} $3 samengevoegd naar $4 (versies tot en met $5)",
        "logentry-move-move": "$1 {{GENDER:$2|heeft}} pagina $3 hernoemd naar $4",
        "logentry-move-move-noredirect": "$1 {{GENDER:$2|heeft}} de pagina $3 hernoemd naar $4 zonder een doorverwijzing achter te laten",
        "logentry-move-move_redir": "$1 {{GENDER:$2|heeft}} pagina $3 hernoemd naar $4 over een doorverwijzing",
        "log-name-pagelang": "Logboek van taalwijzigingen",
        "log-description-pagelang": "Dit is een logboek van wijzigingen van de taal van pagina's.",
        "logentry-pagelang-pagelang": "$1 wijzigde de taal van de pagina '$3' van $4 naar $5.",
+       "default-skin-not-found": "Het standaard uiterlijk voor de wiki, dat is ingesteld in <code dir=\"ltr\">$wgDefaultSkin</code> as <code>$1</code>, is niet beschikbaar.\n\nUw installatie heeft de volgende uiterlijken. Zie See [https://www.mediawiki.org/wiki/Manual:Skin_configuration Handboek: uiterlijk instellen] voor meer informatie over hoe u het uiterlijk instelt en een standaard uiterlijk aangeeft.\n\n$2\n\n; Als u MediaWiki zojuist hebt geïnstalleerd:\n: U hebt waarschijnlijk geïnstalleerd via git, or direct vanuit de broncode via een andere methode. Deze melding is verwacht. Installeer één of meer van de [https://www.mediawiki.org/wiki/Category:All_skins beschikbare uiterlijken op mediawiki.org], door:\n:* De [https://www.mediawiki.org/wiki/Download tarball te downloaden], die meerdere uiterlijken en uitbreidingen bevat. U kunt de map <code>skins/</code> daar uit kopiëren;\n:* Een van de repositories <code>mediawiki/skins/*</code> te klonen via git in de map <code dir=\"ltr\">skins/</code> van uw installatie van MediaWiki.\n: Als u dit doet en u bent MediaWikiontwikkelaar, heeft dit geen invloed op uw gitrepository.\n\n; Als u MediaWiki net hebt bijgewerkt:\n: In MediaWiki 1.24 en nieuwere versies worden geïnstalleerde uiterlijken niet langer automatisch ingeschakeld (zie [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery Handboek: uiterlijken automatisch vinden]). U kunt de volgende regels kopieren naar <code>LocalSettings.php</code> om alle op dit moment geïnstalleerde uiterlijken in te schakelen:\n\n<pre dir=\"ltr\">$3</pre>\n\n; In het geval u zojuist <code>LocalSettings.php</code> hebt aangepast:\n: Controleer de namen van de uiterlijken op spelfouten.",
+       "default-skin-not-found-no-skins": "Het standaard uiterlijk voor uw wiki, als aangegeven in <code>$wgDefaultSkin</code> als <code>$1</code>, is niet beschikbaar.\n\nU hebt geen geïnstalleerde uiterlijken.\n\n; Als u MediaWiki zojuist hebt geïnstalleerd:\n: U hebt waarschijnlijk geïnstalleerd via git, or direct vanuit de broncode via een andere methode. Deze melding is verwacht. Installeer één of meer van de [https://www.mediawiki.org/wiki/Category:All_skins beschikbare uiterlijken op mediawiki.org], door:\n:* De [https://www.mediawiki.org/wiki/Download tarball te downloaden], die meerdere uiterlijken en uitbreidingen bevat. U kunt de map <code>skins/</code> daar uit kopiëren;\n:* Een van de repositories <code>mediawiki/skins/*</code> te klonen via git in de map <code dir=\"ltr\">skins/</code> van uw installatie van MediaWiki.\n: Als u dit doet en u bent MediaWikiontwikkelaar, heeft dit geen invloed op uw gitrepository.",
        "default-skin-not-found-row-enabled": "* <code>$1</code> / $2 (ingeschakeld)",
        "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 (<strong>uitgeschakeld</strong>)",
        "mediastatistics": "Mediastatistieken",
        "mediastatistics-header-drawing": "Tekeningen (vectorbestanden)",
        "mediastatistics-header-audio": "Audio",
        "mediastatistics-header-video": "Video's",
+       "mediastatistics-header-multimedia": "Interactieve media",
        "mediastatistics-header-office": "Kantoorbestanden",
        "mediastatistics-header-text": "Tekstbestanden",
        "mediastatistics-header-executable": "Uitvoerbare bestanden",
        "mediastatistics-header-archive": "Gecomprimeerde bestanden",
+       "json-warn-trailing-comma": "Er {{PLURAL:$1|is $1 komma|zijn $1 komma's}} aan het einde van de regel verwijderd uit de JSON",
        "json-error-unknown": "Er is een fout opgetreden met de JSON. Foutmelding: $1",
-       "json-error-syntax": "Syntaxfoutmelding"
+       "json-error-depth": "De maximale stackdiepte is overschreden",
+       "json-error-state-mismatch": "Ongeldige of onjuiste JSON",
+       "json-error-ctrl-char": "Fout in controlekarakter, mogelijk verkeerd gecodeerd",
+       "json-error-syntax": "Syntaxfoutmelding",
+       "json-error-utf8": "Ongeldige UTF-8-tekens, mogelijk verkeerd gecodeerd",
+       "json-error-recursion": "Een of meer recursieve verwijzingen in de waarde die moet worden gecodeerd",
+       "json-error-inf-or-nan": "Een of meer NAN- of INF-waarden in de waarde die moet worden gecodeerd",
+       "json-error-unsupported-type": "Er is een waarde opgegeven van een type dat niet kan worden gecodeerd"
 }
index 12c7c37..c96e2e7 100644 (file)
@@ -6,7 +6,8 @@
                        "Katimawan2005",
                        "Urhixidur",
                        "Val2397",
-                       "아라"
+                       "아라",
+                       "Leeheonjin"
                ]
        },
        "tog-underline": "Gulisan lang panglalam deng suglung:",
        "search-result-size": "$1 ({{PLURAL:$2|1 a kataya|$2 kataya}})",
        "search-redirect": "(pamanalis direksiun $1)",
        "search-section": "(seksion $1)",
+       "search-category": "(kategorya $1)",
        "search-suggest": "Ing buri mung sabian: $1",
        "search-interwiki-caption": "Kapatad a proyektu",
        "search-interwiki-default": "$1 linual/resulta:",
index 599baf3..b45a628 100644 (file)
        "no-null-revision": "Nie można utworzyć zerowej wersji strony \"$1\"",
        "badtitle": "Niepoprawny tytuł",
        "badtitletext": "Podano niepoprawny tytuł strony. Prawdopodobnie jest pusty lub zawiera znaki, których użycie jest zabronione.",
-       "perfcached": "Poniższe dane są kopią z pamięci podręcznej i mogą być nieaktualne. Maksymalnie {{PLURAL:$1|jeden wynik jest|$1 wyniki są|$1 wyników jest}} w pamięci podręcznej.",
-       "perfcachedts": "Poniższe dane są kopią z pamięci podręcznej. Ostatnia aktualizacja odbyła się $1. Maksymalnie {{PLURAL:$4|jeden wynik jest|$4 wyniki są|$4 wyników jest}} w pamięci podręcznej.",
+       "perfcached": "Poniższe dane są kopią z pamięci podręcznej i mogą być nieaktualne. W pamięci podręcznej {{PLURAL:$1|znajduje|znajdują|znajduje}} się maksymalnie {{PLURAL:$1|jeden wynik|$1 wyniki|$1 wyników}}.",
+       "perfcachedts": "Poniższe dane są kopią z pamięci podręcznej. Ostatnia aktualizacja odbyła się $1. W pamięci podręcznej {{PLURAL:$4|znajduje|znajdują|znajduje}} się maksymalnie {{PLURAL:$4|jeden wynik|$4 wyniki|$4 wyników}}.",
        "querypage-no-updates": "Uaktualnienia dla tej strony są obecnie wyłączone. Znajdujące się tutaj dane nie zostaną odświeżone.",
        "viewsource": "Tekst źródłowy",
        "viewsource-title": "Tekst źródłowy strony $1",
        "search-result-category-size": "{{PLURAL:$1|1 element|$1 elementy|$1 elementów}} ({{PLURAL:$2|1 kategoria|$2 kategorie|$2 kategorii}}, {{PLURAL:$3|1 plik|$3 pliki|$3 plików}})",
        "search-redirect": "(przekierowanie $1)",
        "search-section": "(sekcja $1)",
+       "search-category": "(kategoria $1)",
        "search-file-match": "(odpowiada zawartości pliku)",
        "search-suggest": "Czy chodziło Ci o: $1",
        "search-interwiki-caption": "Projekty siostrzane",
index 6c3b6e5..8742245 100644 (file)
        "search-result-category-size": "{{PLURAL:$1|1 mèmber|$1 mèmber}} ({{PLURAL:$2|1 sot-categorìa|$2 sot-categorìe}}, {{PLURAL:$3|1 archivi|$3 archivi}})",
        "search-redirect": "(ridiression $1)",
        "search-section": "(session $1)",
+       "search-category": "(categorìa $1)",
        "search-file-match": "(a corëspond al contnù d'archivi)",
        "search-suggest": "Vorìi-lo pa dì: $1",
        "search-interwiki-caption": "Proget frej",
        "log-name-pagelang": "Argistr dij cangiament ëd lenga",
        "log-description-pagelang": "Cost-sì a l'é n'argistr dij cangiament ant le lenghe dle pàgine.",
        "logentry-pagelang-pagelang": "$1 {{GENDER:$2|a l'ha cangià}} la lenga dla pàgina $3 da $4 a $5.",
-       "default-skin-not-found": "Tension! La pel predeterminà për soa wiki, definìa an <code dir=\"ltr\">$wgDefaultSkin</code> tanme <code>$1</code>, a l'é nen disponìbil.\n\nSoa anstalassion a smija anclude le pel sì-dapress. Ch'a vëdda [https://www.mediawiki.org/wiki/Manual:Skin_configuration ël manual ëd configurassion dle pel] për d'anformassion su coma abiliteje e serne col apredefinìa.\n\n$2\n\n; S'a l'ha pen-a anstalà MediaWiki:\n: A l'é probàbil che a l'abia anstalalo da git, o diretaman dal còdes sorgiss an n'àutra manera. A l'é normal. Ch'a preuva a anstalé dle pej da [https://www.mediawiki.org/wiki/Category:All_skins la lista dle pel Ëd mediawiki.org], parèj:\n:* Dëscariand l' [https://www.mediawiki.org/wiki/Download archivi tar ëd l'anstalador], ch'a comprend vàire pel e estension. A peul copié e ancolé la lista dle <code>pel/</code> d'ambelelà.\n:* Clonand un dij depòsit <code>mediawiki/skins/*</code> via git ant la lista <code dir=\"ltr\">skins/</code> ëd soa anstalassion ëd MediaWiki.\n: Sòn a dovrìa nen antërferì con sò depòsit git si chiel a l'é un dësvlupador ëd MediaWiki.\n\n; S'a l'ha pen-a agiornà MediaWiki:\n: MediaWiki 1.24 e pi neuv a përmet pi nen an automàtich le pel anstalà (ch'a vëdda [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery manual an sla dëscuverta automàtica dle pel). A peul copié le linie sì-dapress an <code>LocalSettings.php</code> për abilité tute le pel ch'a son anstalà al moment:\n\n<pre dir=\"ltr\">$3</pre>\n\n; S'a l'ha pen-a modifivà <code>LocalSettings.php</code>:\n: Ch'a verìfica torna ël nòm ëd dle pej për evité ij boro."
+       "default-skin-not-found": "Tension! La pel predeterminà për soa wiki, definìa an <code dir=\"ltr\">$wgDefaultSkin</code> tanme <code>$1</code>, a l'é nen disponìbil.\n\nSoa anstalassion a smija anclude le pel sì-dapress. Ch'a vëdda [https://www.mediawiki.org/wiki/Manual:Skin_configuration ël manual ëd configurassion dle pel] për d'anformassion su coma abiliteje e serne col apredefinìa.\n\n$2\n\n; S'a l'ha pen-a anstalà MediaWiki:\n: A l'é probàbil che a l'abia anstalalo da git, o diretaman dal còdes sorgiss an n'àutra manera. A l'é normal. Ch'a preuva a anstalé dle pej da [https://www.mediawiki.org/wiki/Category:All_skins la lista dle pel Ëd mediawiki.org], parèj:\n:* Dëscariand l' [https://www.mediawiki.org/wiki/Download archivi tar ëd l'anstalador], ch'a comprend vàire pel e estension. A peul copié e ancolé la lista dle <code>pel/</code> d'ambelelà.\n:* Clonand un dij depòsit <code>mediawiki/skins/*</code> via git ant la lista <code dir=\"ltr\">skins/</code> ëd soa anstalassion ëd MediaWiki.\n: Sòn a dovrìa nen antërferì con sò depòsit git si chiel a l'é un dësvlupador ëd MediaWiki.\n\n; S'a l'ha pen-a agiornà MediaWiki:\n: MediaWiki 1.24 e pi neuv a përmet pi nen an automàtich le pel anstalà (ch'a vëdda [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery manual an sla dëscuverta automàtica dle pel). A peul copié le linie sì-dapress an <code>LocalSettings.php</code> për abilité tute le pel ch'a son anstalà al moment:\n\n<pre dir=\"ltr\">$3</pre>\n\n; S'a l'ha pen-a modifivà <code>LocalSettings.php</code>:\n: Ch'a verìfica torna ël nòm ëd dle pej për evité ij boro.",
+       "default-skin-not-found-no-skins": "Darmagi! La pel dë stàndard për soa wiki, definìa da <code>$wgDefaultSkin</code> tanme <code>$1</code>, a l'é nen disponìbil.\n\nChiel a l'ha gnun-a pel anstalà.\n\n; S'a l'ha pen-a anstalà o agiornà MediaWiki:\n: A l'é probàbil ch'a l'abia falo da git, o diret dal còdes sorgiss an n'àutra manera. A l'é normal. MediaWiki 1.24 e pi recent doesn't a ancludo gnun-a pel ant ël depòsit prinsipal. Ch'a preuva a anstalé chèiche pel da [https://www.mediawiki.org/wiki/Category:All_skins la lista dle pel ëd mediawiki.org]:\n:* Dëscariand [https://www.mediawiki.org/wiki/Download l'archivi tar dl'anstalador], ch'a comprend vàire pel e estension. A peul copié e ancolé la lista <code>skins/</code> da là.\n:* Clonand un dij depòsit <code>mediawiki/skins/*</code> via git ant la lista <code dir=\"ltr\">skins/</code> ëd soa anstalassion ëd MediaWiki.\n: Fé sòn a dovrìa nen antërferì con sò depòsit git se chiel a l'é un dësvlupador ëd MediaWiki. Ch'a vëdda [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manual: ël manual dla configurassion dle pel] për d'anformassion su coma ativé le pel e serne cola predefinìa.",
+       "default-skin-not-found-row-enabled": "* <code>$1</code> / $2 (abilità)",
+       "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 ('''disabilità''')",
+       "mediastatistics": "Statìstiche an sij mojen",
+       "mediastatistics-summary": "Statìstiche an sle sòrt d'archivi carià. A ancludo mach la version pi recent ëd n'archivi. Le version veje o dëscancelà dj'archivi a son escludùe."
 }
index 992a712..88545d5 100644 (file)
        "content-model-text": "texto simples",
        "content-model-javascript": "Javascript",
        "content-model-css": "CSS",
+       "duplicate-args-category": "Páginas que utilizam argumentos duplicados ao chamar predefinições",
        "expensive-parserfunction-warning": "Aviso: Esta página contém muitas chamadas a funções do analisador \"parser\".\n\nDeveria ter menos de $2 {{PLURAL:$2|chamada|chamadas}}. Neste momento {{PLURAL:$1|há $1 chamada|existem $1 chamadas}}.",
        "expensive-parserfunction-category": "Páginas com muitas chamadas a funções do analisador \"parser\"",
        "post-expand-template-inclusion-warning": "'''Aviso''': a soma do tamanho de inclusão de predefinições é muito grande.\nAlgumas predefinições não serão processadas.",
index 74bb096..4747ded 100644 (file)
        "content-model-text": "texto simples",
        "content-model-javascript": "JavaScript",
        "content-model-css": "CSS",
+       "duplicate-args-category": "Páginas que utilizam argumentos duplicados ao chamar predefinições",
        "expensive-parserfunction-warning": "'''Aviso:''' Esta página contém demasiadas chamadas de funções exigentes do analisador sintático.\n\nDevia ter menos de $2 {{PLURAL:$2|chamada|chamadas}}. Neste momento tem $1 {{PLURAL:$1|chamada|chamadas}}.",
        "expensive-parserfunction-category": "Páginas com demasiadas chamadas a funções exigentes",
        "post-expand-template-inclusion-warning": "Aviso: O tamanho de inclusão de predefinições é demasiado grande, algumas predefinições não serão incluídas.",
        "search-result-category-size": "{{PLURAL:$1|1 membro|$1 membros}} ({{PLURAL:$2|1 subcategoria|$2 subcategorias}}, {{PLURAL:$3|1 ficheiro|$3 ficheiros}})",
        "search-redirect": "(redirecionamento de $1)",
        "search-section": "(seção $1)",
+       "search-category": "(categoria $1)",
        "search-file-match": "(coincide com o conteúdo do ficheiro)",
        "search-suggest": "Será que quis dizer: $1",
        "search-interwiki-caption": "Projetos irmãos",
        "sp-contributions-blocked-notice-anon": "Este endereço IP está bloqueado neste momento.\nPara referência é apresentado abaixo o último registo de bloqueio:",
        "sp-contributions-search": "Pesquisar contribuições",
        "sp-contributions-username": "Endereço de IP ou utilizador(a):",
-       "sp-contributions-toponly": "Mostrar somente as revisões mais recentes",
+       "sp-contributions-toponly": "Mostrar apenas as edições mais recentes",
        "sp-contributions-newonly": "Mostrar só edições que são criações de páginas",
        "sp-contributions-submit": "Pesquisar",
        "whatlinkshere": "Páginas afluentes",
index 5de997c..c432adf 100644 (file)
        "search-result-category-size": "Parameters:\n* $1 - number of members in this category. $1 is equal to $2+$3.\n* $2 - number of subcategories\n* $3 - number of files",
        "search-redirect": "\"Redirect\" is a noun here, not a verb.\n\nParameters:\n* $1 - a link to the redirect to the page (so, $1 is the page that the search result is redirected '''from''')",
        "search-section": "This text will be shown on the search result listing after the page title of a result if the search algorithm thinks that section is more relevant than the rest of the page. $1 is a section title.\n{{Identical|Section}}",
+       "search-category": "This text will be shown on the search result listing after the page title of a result if the search algorithm thinks that the page being in a particular category is relevant.\n\nParameters:\n* $1 - the category's name with any matching portion highlighted\n{{Identical|Category}}",
        "search-file-match": "This text will be shown on the search result listing after the page title of a result if the search engine got search results from the contents of files, rather than the pages.",
        "search-suggest": "Used for \"Did you mean\" suggestions:\n* $1 - suggested link",
        "search-interwiki-caption": "Used in [[Special:Search]], when showing search results from other wikis.",
index e1b43d1..b8e413b 100644 (file)
        "search-result-category-size": "$1 {{PLURAL:$1|element|elemente}} ($2 {{PLURAL:$2|categorie|categorii}}, $3 {{PLURAL:$3|fișier|fișiere}})",
        "search-redirect": "(redirecționare de la $1)",
        "search-section": "(secțiunea $1)",
+       "search-category": "(categoria $1)",
        "search-file-match": "(se regăsește în conținutul fișierului)",
        "search-suggest": "V-ați referit la: $1",
        "search-interwiki-caption": "Proiecte înrudite",
        "mywatchlist": "Pagini urmărite",
        "watchlistfor2": "Pentru $1 $2",
        "nowatchlist": "Lista dumneavoastră de pagini urmărite nu conține nici o pagină.",
-       "watchlistanontext": "Vă rugăm să vă autentificați pentru a vizualiza sau modifica elementele din lista dumneavoastră de pagini urmărite.",
+       "watchlistanontext": "Vă rugăm să vă autentificați pentru a consulta și modifica lista de pagini urmărite.",
        "watchnologin": "Nu sunteți autentificat",
        "addwatch": "Adăugă la lista de pagini urmărite",
        "addedwatchtext": "Pagina „[[:$1]]” a fost adăugată în lista dumneavoastră de [[Special:Watchlist|pagini urmărite]].\nModificările viitoare efectuate asupra acestei pagini dar și asupra paginii de discuție asociată vor fi listate acolo.",
index ea44230..36b8c35 100644 (file)
        "search-result-category-size": "$1 {{PLURAL:$1|вхождение|вхождений|вхождения}} ($2 {{PLURAL:$2|подкатегория|подкатегорий|подкатегории}}, $3 {{PLURAL:$3|файл|файлов|файла}})",
        "search-redirect": "(перенаправление с $1)",
        "search-section": "(раздел «$1»)",
+       "search-category": "(категория $1)",
        "search-file-match": "(совпадает с содержимым файла)",
        "search-suggest": "Возможно, вы имели в виду «$1».",
        "search-interwiki-caption": "Родственные проекты",
index cf0eeaa..cd7d6aa 100644 (file)
        "otherlanguages": "Атын омук тылынан",
        "redirectedfrom": "(Мантан: $1  көстө)",
        "redirectpagesub": "Утаарар сирэй",
+       "redirectto": "Манна утаарыы:",
        "lastmodifiedat": "Бу сирэй бүтэһигин $2, $1 уларыйбыта.",
        "viewcount": "Бу сирэй {{PLURAL:$1|биирдэ|$1 төгүл}} көрүллүбүт.",
        "protectedpage": "Уларытыллыбат сирэй",
        "viewsourcetext": "Эн бу сирэй төрдүн көрүөххүн уонна төгүллүөххүн сөп:",
        "viewyourtext": "'''Бэйэҥ көннөрүүлэриҥ''' исходнигын бу сирэйгэ көрүөххүн уонна хатылаан ылыаххын сөп:",
        "protectedinterface": "Бу сирэй бырагыраамма интерфейсын биллэриитин көрдөрөр, онон моһуогурууттан халытан хатанан турар.\nТылбааһын уларытыаххын баҕарар буоллаххына онно аналлаах тылбаас ситим-сирин туһан: MediaWiki [//translatewiki.net/ translatewiki.net]",
-       "editinginterface": "'''Болҕой:''' Быраҕыраамма тас көстүүтүн (интерфейсын) хааччыйар тиэкиһи уларытаары гынан эрэҕин.\nБу сирэйи уларыттаххына атын кыттааччылар көрөллөрүгэр бырагыраамма көстүүтэ уларыйыа. \nТылбааһын уларытыаххын эбэтэр эбиэххин баҕарар буоллаххына Медиавики бырайыактарын тылбаастыыр сиргэ киир [//translatewiki.net/ translatewiki.net].",
+       "editinginterface": "<strong>Болҕой:</strong> Быраҕыраамма тас көстүүтүн (интерфейсын) хааччыйар тиэкиһи уларытаары гынан эрэҕин.\nБу сирэйи уларыттаххына атын кыттааччылар көрөллөрүгэр быраҕыраамма көстүүтэ уларыйыа.",
+       "translateinterface": "Бу биллэриини тылбаастыырга эбэтэр уларытарга, бука диэн, MediaWiki диэн анал тылбаастыыр сиргэ киир [//translatewiki.net/ translatewiki.net].",
        "cascadeprotected": "Бу сирэй уларыйар кыаҕа суох, тоҕо диэтэххэ уларыйара бобуллубут (каскаднай көмүскэл холбоммут) {{PLURAL:$1|сирэй бөлөҕөр|сирэйдэр бөлөхтөрүгэр}} киирэр:\n$2",
        "namespaceprotected": "Эн '''$1''' аат эйгэтигэр киирэр сирэйдэри уларытар кыаҕыҥ суох.",
        "customcssprotected": "Эн бу CSS-сирэйи уларытар кыаҕыҥ суох, тоҕо диэтэххэ онтуҥ атын киһи тус бэйэтин туруорууларын таарыйар.",
        "createaccount-text": "Ким эрэ {{SITENAME}} бырайыакка ($4) саҥа $2 ааты бэлиэтээбит. \"$2\" киирии тыла \"$3\". Билигин киирэн киирии тылгын уларытыаххын наада.\n\nСаҥа аат сыыһа оҥоһуллубут буоллаҕына тугу да гыныа суоххун сөп.",
        "login-throttled": "Ааккын аһара элбэхтик билиһиннэрэ сатаатыҥ.\nБука диэн $1 буолан баран өссө киирэн көрөөр.",
        "login-abort-generic": "Бу аатынан сатаан киирбэтиҥ - быстан хаалла",
+       "login-migrated-generic": "Эн бэлиэ-аатыҥ көһөрүллүбүт, онон урукку аатыҥ бу биикигэ суох буолбут эбит.",
        "loginlanguagelabel": "Омугун тыла: $1",
        "suspicious-userlogout": "Сеансы түмүктүүр ыйытыгыҥ ылыныллыбата, тоҕо диэтэххэ браузер эбэтэр кээштыыр прокси алҕас ыыппыт ыйытыктарыгар майгынныыр.",
        "createacct-another-realname-tip": "Дьиҥнээх аатыҥ булгуччута суох.\nЫйдаххына уларыппыт сирэйиҥ устуоруйатыгар көстөр буолуоҕа.",
        "showpreview": "Уларытыах иннинэ көрүү",
        "showdiff": "Уларытыылар",
        "blankarticle": "<strong>Сэрэтии:</strong> Оҥорор сирэйиҥ кураанах.\nБу тимэҕи «{{int:savearticle}}» хос баттаатаххына кураанах сирэй оҥоһуллуо.",
-       "anoneditwarning": "'''Болҕой:''' Системаҕа киирбэтэххин. Онон аатыҥ оннугар IP аадаырыһыҥ бу сирэй историятыгар киириэ.",
+       "anoneditwarning": "<strong>Болҕой:</strong> Киирбэтэххин. Онон тугу эрэ уларытар түгэҥҥэр аатыҥ оннугар IP аадырыһыҥ барыларыгар көстүө. бу сирэй историятыгар киириэ. Өскөтө <strong>[$1 киирдэххинэ]</strong> эбэтэр <strong>[$2 бэлиэтэннэххинэ]</strong> уларытыыларыҥ Эн ааккын кытта ситимнэниэхтэрэ, ону таһынан ол атын да көдьүүстэрдээх буолуоҕа.",
        "anonpreviewwarning": "''Эн тиһиккэ ааккын эппэттэххин. Уларытыыгын бигэргэттэххинэ IP-аадырыһыҥ сирэй устуоруйатыгар суруллуо.''",
        "missingsummary": "'''Санатыы:''' Уларыппытыҥ кылгас быһаарыытын суруйбатаххын. Уларытыыны бигэргэттэххинэ улартытыыҥ хос быһаарыыта суох барыа.",
        "missingcommenttext": "Манна хос быһаарыыны суруй.",
        "content-model-text": "көннөрү тиэкис",
        "content-model-javascript": "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>.",
        "expensive-parserfunction-warning": "Болҕой. Бу сирэй наһаа элбэх көмпүүтэри ноҕуруускалыыр ресурсаларга сигэнэр.\n\n{{PLURAL:$2|Сигэнии ахсаана|Сигэниилэр ахсааннара}} мантан тахсыа суохтаах - $2, билигин {{PLURAL:$1|$1 сигэниилээх|$1 сигэниилэрдээх}}.",
        "expensive-parserfunction-category": "Көмпүүтэри ноҕуруускалыыр ресурсаларга наһаа элбэхтик сигэнэр сирэйдэр",
        "post-expand-template-inclusion-warning": "Болҕой: Киллэрэр халыыптарыҥ ыйааһыннара наһаа улахан.\nОнон сорох халыыптар киллэриллиэхтэрэ суоҕа.",
        "mergehistory-empty": "Биир да барыл силлиһэр кыаҕа суох.",
        "mergehistory-success": "$3 {{PLURAL:$3|барыл|барыллар}} [[:$1]] биир [[:$2]] барылга силлистилэр.",
        "mergehistory-fail": "Сирэй устуоруйалара кыайан холбоспотулар, өссө биирдэ торумнар бириэмэлэрин уонна сирэй параметрдарын бэрэбиэркэлээ.",
+       "mergehistory-fail-toobig": "Устуоруйаны холбуур табыллыбата, тоҕо диэтэххэ $1  барылга көҥүллэнэр лимииттэн элбэҕи көһөрөр наада эбит.",
        "mergehistory-no-source": "Бастакы $1 сирэй суох.",
        "mergehistory-no-destination": "Баар буолуохтаах $1 сирэй суох.",
        "mergehistory-invalid-source": "Источнигыҥ сөптөөх ааттаах буолуохтаах.",
        "search-result-category-size": "{{PLURAL:$1|$1 элэмиэн|$1 элэмиэннэр}} ({{PLURAL:$2|$2 субкатегория|$2 субкатегориялар}}, {{PLURAL:$3|$3 билэ|$3 билэлэр}})",
        "search-redirect": "(утаарыы $1)",
        "search-section": "($1 сиэксийэ)",
+       "search-category": "(категория $1)",
        "search-file-match": "(билэ иһинээҕитин кытта сөп түбэһэр)",
        "search-suggest": "Баҕар маннык диэри гыммытыҥ буолуо: $1",
        "search-interwiki-caption": "Уруулуу бырайыактар",
        "license": "Лицензиялааһын:",
        "license-header": "Лицензиялааһын",
        "nolicense": "Талыллыбатах",
+       "licenses-edit": "Лиссиэнсийэ ымпыгын-чымпыгын уларыт",
        "license-nopreview": "(Уларытыыны бигэргэтиэх иннинэ көрүү сатаммат)",
-       "upload_source_url": " (сөптөөх URL, ким баҕарбыт киирэр сирэ)",
-       "upload_source_file": " (билэ көмпүүтэргэр баар)",
+       "upload_source_url": "(сөптөөх URL, ким баҕарбыт киирэр сирин талбыккын)",
+       "upload_source_file": "(көмпүүтэргэр баар билэни талбыккын)",
+       "listfiles-delete": "сотуу",
        "listfiles-summary": "Бу анал сирэй киллэриллибит билэлэри барытын көрдөрөр.",
        "listfiles_search_for": "Миэдьийэни (ойууну) аатынан көрдөтүү:",
        "imgfile": "билэ",
        "randomincategory": "Категория түбэспиччэ ыстатыйата",
        "randomincategory-invalidcategory": "\"$1\" диэн категория суох эбит.",
        "randomincategory-nopages": "Бу категорияҕа [[:Category:$1]] киирэр ыстатыйалар суохтар.",
+       "randomincategory-category": "Категория:",
        "randomredirect": "Түбэспиччэ утаарыы",
        "randomredirect-nopages": "Бу аат далыгар($1) көһөрөр ыйынньыктар суохтар.",
        "statistics": "Статистика",
        "querypage-disabled": "Бу анал сирэй тиһилик үлэтин түргэтэтээри араарыллыбыт.",
        "booksources": "Кинигэлэр источниктара",
        "booksources-search-legend": "Кинигэ туһунан көрдөө",
+       "booksources-search": "Бул",
        "booksources-text": "Манна кинигэ туһунан атын саайтарга ыйынньыктар хомулуннулар, онно баҕар эбии информация көстүөҕэ.",
        "booksources-invalid-isbn": "ISBN, арааһа, сыыһалаах. Нүөмэр көһөрөргө алҕас тахсыбатаҕын хат көр эрэ.",
        "specialloguserlabel": "Толорооччу:",
        "expand_templates_remove_nowiki": "Түмүккэ <nowiki> бэлиэни аахсыма",
        "expand_templates_generate_xml": "XML-ы мас курдук көрдөр",
        "expand_templates_generate_rawhtml": "HTML-ы көрдөр",
-       "expand_templates_preview": "Холоон көрүү"
+       "expand_templates_preview": "Холоон көрүү",
+       "pagelang-name": "Сирэй",
+       "pagelang-language": "Омугун тыла",
+       "pagelang-use-default": "Сүрүн тылы тутун",
+       "pagelang-select-lang": "Тылы талыы",
+       "right-pagelang": "Сирэй тылын уларыт",
+       "action-pagelang": "сирэй тылын уларытар буол",
+       "log-name-pagelang": "Тылы уларытыы сурунаала",
+       "mediastatistics-nbytes": "$1 баайт ($2; $3%)",
+       "mediastatistics-table-mimetype": "MIME көрүҥэ",
+       "mediastatistics-table-count": "Билэ ахсаана",
+       "mediastatistics-table-totalbytes": "Барытын кээмэйэ",
+       "mediastatistics-header-unknown": "Биллибэт",
+       "mediastatistics-header-bitmap": "Растр ойуулар",
+       "mediastatistics-header-drawing": "Уруһуйдар (вектор ойуулар)",
+       "mediastatistics-header-audio": "Аудио",
+       "mediastatistics-header-video": "Видео",
+       "mediastatistics-header-office": "Офис",
+       "mediastatistics-header-text": "Тиэкис",
+       "mediastatistics-header-executable": "Толоруллар",
+       "mediastatistics-header-archive": "Ыгыллыбыт формааттар",
+       "json-warn-trailing-comma": "JSON иһиттэн $1 ордук соппутуой сотуллубут"
 }
index 6925a45..967b679 100644 (file)
                        "Wizzard",
                        "לערי ריינהארט",
                        "아라",
-                       "Matthew Greg"
+                       "Matthew Greg",
+                       "Ата"
                ]
        },
        "tog-underline": "Podčiarkovať odkazy:",
        "tog-hideminor": "V posledných úpravách nezobrazovať drobné úpravy",
        "tog-hidepatrolled": "Skryť strážené úpravy v Posledných úpravách",
        "tog-newpageshidepatrolled": "Skryť strážené stránky zo zoznamu nových stránok",
-       "tog-extendwatchlist": "Rozšíriť zoznam sledovaných stránok, aby zobrazoval všetky zmeny, nie len posledné",
+       "tog-extendwatchlist": "Rozšíriť zoznam sledovaných stránok, aby zobrazoval všetky úpravy, nie len posledné",
        "tog-usenewrc": "Zoskupiť zmeny v posledných úpravách a na zozname sledovaných stránok podľa stránky",
        "tog-numberheadings": "Automaticky číslovať nadpisy",
        "tog-showtoolbar": "Zobraziť panel nástrojov úprav",
        "actionthrottledtext": "Ako opatrenie proti spamu je počet vykonaní tejto činnosti za určitý čas obmedzený. Tento limit ste prekročili. Prosím, skúste to znova o niekoľko minút.",
        "protectedpagetext": "Táto stránka bola zamknutá aby sa zamedzilo úpravám.",
        "viewsourcetext": "Môžete si zobraziť a kopírovať zdroj tejto stránky:",
-       "viewyourtext": "Môžete si prehliadnuť a skopírovať zdrojový kód '''vašich zmien''' tejto stránky:",
+       "viewyourtext": "Môžete si prehliadnuť a skopírovať zdrojový kód <strong>vašich úprav</strong> tejto stránky:",
        "protectedinterface": "Táto stránka poskytuje text používateľského rozhrania tejto wiki a je zamknutá, aby sa predišlo jej zneužitiu.\nAk chcete pridať alebo zmeniť preklady pre všetky wiki, prosím, použite [//translatewiki.net/ translatewiki.net], projekt lokalizácie MediaWiki.",
        "editinginterface": "'''Upozornenie:''' Upravujete stránku, ktorá poskytuje text používateľského rozhrania.\nZmeny tejto stránky ovplyvnia vzhľad používateľského rozhrania ostatným používateľom.\nAk chcete pridať alebo zmeniť preklady pre všetky wiki, prosím, použite [//translatewiki.net/ translatewiki.net], projekt lokalizácie MediaWiki.",
        "cascadeprotected": "Táto stránka bola zamknutá proti úpravám, pretože je použitá na {{PLURAL:$1|nasledovnej stránke, ktorá je zamknutá|nasledovných stránkach, ktoré sú zamknuté}} voľbou „kaskádového zamknutia“:\n$2",
        "content-model-text": "čistý text",
        "content-model-javascript": "JavaScript",
        "content-model-css": "CSS",
+       "duplicate-args-category": "Stránky s duplicitnými parametrami pri volaniach šablón",
+       "duplicate-args-category-desc": "Stránka obsahuje volania šablóny používajúce duplicitné parametere, ako napríklad <code><nowiki>{{foo|bar=1|bar=2}}</nowiki></code> alebo <code><nowiki>{{foo|bar|1=baz}}</nowiki></code>.",
        "expensive-parserfunction-warning": "Upozornenie: Táto stránka obsahuje príliš mnoho volaní funkcií syntaktického analyzátora, ktoré nadmerne zaťažujú server.\n\nObsahuje $1 {{PLURAL:$1|volanie|volania|volaní}}. Mala by obsahovať menej ako $2 {{PLURAL:$1|volanie|volania|volaní}}.",
        "expensive-parserfunction-category": "Stránky s príliš veľkým počtom volaní funkcií syntaktického analyzátora",
        "post-expand-template-inclusion-warning": "Upozornenie: Vkladaná šablóna je príliš veľká.\nNiektoré zo šablón nebudú vložené.",
        "action-viewmywatchlist": "zobraziť zoznam sledovaných stránok",
        "action-viewmyprivateinfo": "zobraziť vaše súkromné údaje",
        "action-editmyprivateinfo": "upraviť vaše súkromné údaje",
-       "nchanges": "$1 {{PLURAL:$1|zmena|zmeny|zmien}}",
+       "nchanges": "$1 {{PLURAL:$1|úprava|úpravy|úprav}}",
        "enhancedrc-since-last-visit": "$1 {{PLURAL:$1|od poslednej návštevy}}",
        "enhancedrc-history": "história",
        "recentchanges": "Posledné úpravy",
-       "recentchanges-legend": "Možnosti posledných zmien",
+       "recentchanges-legend": "Možnosti posledných úprav",
        "recentchanges-summary": "Pomocou tejto stránky sledujete posledné úpravy wiki.",
        "recentchanges-noresult": "V danom období nie sú zmeny spĺňajúce tieto kritériá.",
        "recentchanges-feed-description": "Sledovať posledné úpravy tejto wiki týmto kanálom.",
        "watchlist-details": "{{PLURAL:$1|Jedna sledovaná stránka|$1 sledované stránky|$1 sledovaných stránok}}, nepočítajúc diskusné stránky.",
        "wlheader-enotif": "Upozorňovanie e-mailom je zapnuté.",
        "wlheader-showupdated": "Stránky, ktoré boli zmenené od vašej poslednej návštevy sú zobrazené '''tučne'''.",
-       "wlnote": "Nižšie {{PLURAL:$1|je posledná jedna zmena|sú posledné '''$1''' zmeny|je posledných '''$1''' zmien}} za {{PLURAL:$2|poslednú hodinu|posledné '''$2''' hodiny|posledných '''$2''' hodín}} do $4, $3.",
+       "wlnote": "Nižšie {{PLURAL:$1|je posledná úprava|sú posledné <strong>$1</strong> úpravy|je posledných <strong>$1</strong> úprav}} za {{PLURAL:$2|poslednú hodinu|posledné <strong>$2</strong> hodiny|posledných <strong>$2</strong> hodín}} do $4, $3.",
        "wlshowlast": "Zobraziť posledných $1 hodín $2 dní",
        "watchlist-options": "Nastavenia zoznamu sledovaných",
        "watching": "Pridávam do zoznamu sledovaných...",
        "markaspatrolledtext": "Označiť túto stránku ako stráženú",
        "markedaspatrolled": "Označené ako strážené",
        "markedaspatrolledtext": "Vybraná verzia [[:$1]] bola označená ako strážená.",
-       "rcpatroldisabled": "Stráženie posledných zmien bolo vypnuté",
-       "rcpatroldisabledtext": "Funkcia stráženia posledných zmien je momentálne vypnutá.",
+       "rcpatroldisabled": "Stráženie posledných úprav bolo vypnuté",
+       "rcpatroldisabledtext": "Funkcia stráženia posledných úprav je momentálne vypnutá.",
        "markedaspatrollederror": "Nie je možné označiť ako strážené",
        "markedaspatrollederrortext": "Pre označenie ako strážený je potrebné uviesť revíziu, ktorá sa má označiť ako strážená.",
-       "markedaspatrollederror-noautopatrol": "Nie je vám umožnené označiť vlastné zmeny za strážené.",
+       "markedaspatrollederror-noautopatrol": "Nie je vám umožnené označiť vlastné úpravy za strážené.",
        "markedaspatrollednotify": "Táto zmena stránky $1 bola označená ako strážená.",
        "markedaspatrollederrornotify": "Označenie ako strážená zlyhalo.",
        "patrol-log-page": "Záznam strážení",
        "specialpages-group-maintenance": "Údržbové správy",
        "specialpages-group-other": "Iné špeciálne stránky",
        "specialpages-group-login": "Prihlásenie / registrácia",
-       "specialpages-group-changes": "Posledné zmeny a záznamy",
+       "specialpages-group-changes": "Posledné úpravy a záznamy",
        "specialpages-group-media": "Správy o multimédiách a nahrávaniach",
        "specialpages-group-users": "Používatelia a skupiny",
        "specialpages-group-highuse": "Často používané stránky",
        "blankpage": "Prázdna stránka",
        "intentionallyblankpage": "Táto stránka je zámerne prázdna. Používa sa na meranie výkonnosti atď.",
        "external_image_whitelist": "  #Nechajte tento riadok presne tak, ako je<pre>\n#Časti regulárnych výrazov (tie, ktoré sa píšu medzi //) napíšte dolu\n#Budú porovnané s URL externých obrázkov\n#Tie, ktoré budú zodpovedať reg. výrazu sa zobrazia ako obrázky, inak sa zobrazí iba odkaz na obrázok\n#Riadky, ktoré začínajú znakom # sa považujú za komentáre\n#Na veľkosti písmen nezáleží\n\n#Napíšte všetky časti reg. výrazov nad tento riadok. Nechajte tento riadok presne tak, ako je</pre>",
-       "tags": "Platné označenia zmien",
+       "tags": "Platné značky úprav",
        "tag-filter": "Filter [[Special:Tags|značiek]]:",
        "tag-filter-submit": "Filter",
        "tag-list-wrapper": "([[Special:Tags|{{PLURAL:$1|Značka|Značky}}]]: $2)",
        "tags-title": "Značky",
-       "tags-intro": "Táto stránka obsahuje zoznam značiek, s ktorým softvér môže pracovať a upravovať ich a ich význam.",
+       "tags-intro": "Táto stránka obsahuje zoznam a význam značiek, ktorými môže softvér označovať jednotlivé úpravy.",
        "tags-tag": "Názov značky",
        "tags-display-header": "Vzhľad v zoznamoch úprav",
-       "tags-description-header": "Úplný popis významu",
-       "tags-active-header": "Aktívny?",
-       "tags-hitcount-header": "OznaÄ\8dené Ãºpravy",
+       "tags-description-header": "Popis významu",
+       "tags-active-header": "Aktívna?",
+       "tags-hitcount-header": "OznaÄ\8dených Ãºprav",
        "tags-active-yes": "Áno",
        "tags-active-no": "Nie",
        "tags-edit": "upraviť",
-       "tags-hitcount": "$1 {{PLURAL:$1|zmena|zmeny|zmien}}",
+       "tags-hitcount": "$1 {{PLURAL:$1|úprava|úpravy|úprav}}",
        "comparepages": "Porovnať stránky",
        "compare-page1": "Stránka 1",
        "compare-page2": "Stránka 2",
index 7ec317a..95dbe93 100644 (file)
        "search-result-category-size": "$1 {{PLURAL:$1|član|člana|člani|članov}} ($1 {{PLURAL:$2|podkategorija|podkategoriji|podkategorije|podkategorij}}, $1 {{PLURAL:$3|datoteka|datoteki|datoteke|datotek}})",
        "search-redirect": "(preusmeritev $1)",
        "search-section": "(razdelek $1)",
+       "search-category": "(kategorija $1)",
        "search-file-match": "(ujema se z vsebino datoteke)",
        "search-suggest": "Iščete morda: $1",
        "search-interwiki-caption": "Sorodni projekti",
index 3f6ce53..e215d1d 100644 (file)
        "emailsubject": "Наслов:",
        "emailmessage": "Порука:",
        "emailsend": "Пошаљи",
-       "emailccme": "Ð\9fоÑ\88аÑ\99и Ð¼Ð¸ Ð¿Ñ\80имеÑ\80ак Ð¿Ð¾Ñ\80Ñ\83ке Ðµ-поÑ\88Ñ\82ом",
-       "emailccsubject": "Ð\9fÑ\80имеÑ\80ак Ð²Ð°Ñ\88е Ð¿Ð¾Ñ\80Ñ\83ке Ð·Ð° $1: $2",
+       "emailccme": "Ð\9fоÑ\88аÑ\99и Ð¼Ð¸ ÐºÐ¾Ð¿Ð¸Ñ\98Ñ\83 Ð¿Ð¾Ñ\80Ñ\83ке Ð½Ð° Ð¼Ð¾Ñ\98Ñ\83 Ðµ-поÑ\88Ñ\82Ñ\83.",
+       "emailccsubject": "Ð\9aопиÑ\98а Ð²Ð°Ñ\88е Ð¿Ð¾Ñ\80Ñ\83ке ÐºÐ¾Ñ\80иÑ\81никÑ\83 $1: $2",
        "emailsent": "Порука је послата",
-       "emailsenttext": "Ð\92аÑ\88а Ð¿Ð¾Ñ\80Ñ\83ка Ñ\98е Ð¿Ð¾Ñ\81лаÑ\82а Ðµ-поÑ\88Ñ\82ом.",
+       "emailsenttext": "Ð\92аÑ\88а Ðµ-поÑ\80Ñ\83ка Ñ\98е Ð¿Ð¾Ñ\81лаÑ\82а.",
        "emailuserfooter": "Ову е-поруку је {{GENDER:|послао|послала|послао}} $1 кориснику $2 путем е-поште с викија {{SITENAME}}.",
        "usermessage-summary": "Слање системске поруке.",
        "usermessage-editor": "Уређивач системских порука",
        "logentry-delete-delete": "$1 је {{GENDER:$2|обрисао|обрисала}} страницу $3",
        "logentry-delete-restore": "$1 је {{GENDER:$2|вратио|вратила}} страницу $3",
        "logentry-delete-event": "$1 је {{GENDER:$2|променио|променила}} видљивост {{PLURAL:$5|1=догађаја|$5 догађаја|$5 догађаја}} у дневнику на $3: $4",
-       "logentry-delete-revision": "$1 је {{GENDER:$2|променио|променила}} видљивост {{PLURAL:$5|$5 измене|$5 измена|1=измене}} на страници $3: $4",
+       "logentry-delete-revision": "$1 је {{GENDER:$2|променио|променила}} видљивост {{PLURAL:$5|$5 измене|$5 измена|1=једне измене}} на страници $3: $4",
        "logentry-delete-event-legacy": "$1 је {{GENDER:$2|променио|променила}} видљивост догађаја у дневнику на $3",
        "logentry-delete-revision-legacy": "$1 је {{GENDER:$2|променио|променила}} видљивост измена на страници $3",
        "logentry-suppress-delete": "$1 је {{GENDER:$2|потиснуо|потиснула}} страницу $3",
index 71a4e84..bcbe108 100644 (file)
        "emailsubject": "Naslov:",
        "emailmessage": "Poruka:",
        "emailsend": "Pošalji",
-       "emailccme": "Pošalji mi primerak poruke e-poštom",
-       "emailccsubject": "Primerak vaše poruke za $1: $2",
+       "emailccme": "Pošalji mi kopiju poruke na moju e-poštu.",
+       "emailccsubject": "Kopija vaše poruke korisniku $1: $2",
        "emailsent": "Poruka je poslata",
-       "emailsenttext": "Vaša poruka je poslata e-poštom.",
+       "emailsenttext": "Vaša e-poruka je poslata.",
        "emailuserfooter": "Ovu e-poruku je {{GENDER:|poslao|poslala|poslao}} $1 korisniku $2 putem e-pošte s vikija {{SITENAME}}.",
        "usermessage-summary": "Slanje sistemske poruke.",
        "usermessage-editor": "Uređivač sistemskih poruka",
        "logentry-delete-delete": "$1 je {{GENDER:$2|obrisao|obrisala}} stranicu $3",
        "logentry-delete-restore": "$1 je {{GENDER:$2|vratio|vratila}} stranicu $3",
        "logentry-delete-event": "$1 je {{GENDER:$2|promenio|promenila}} vidljivost {{PLURAL:$5|1=događaja|$5 događaja|$5 događaja}} u dnevniku na $3: $4",
-       "logentry-delete-revision": "$1 je {{GENDER:$2|promenio|promenila}} vidljivost {{PLURAL:$5|$5 izmene|$5 izmena|1=izmene}} na stranici $3: $4",
+       "logentry-delete-revision": "$1 je {{GENDER:$2|promenio|promenila}} vidljivost {{PLURAL:$5|$5 izmene|$5 izmena|1=jedne izmene}} na stranici $3: $4",
        "logentry-delete-event-legacy": "$1 je {{GENDER:$2|promenio|promenila}} vidljivost događaja u dnevniku na $3",
        "logentry-delete-revision-legacy": "$1 je {{GENDER:$2|promenio|promenila}} vidljivost izmena na stranici $3",
        "logentry-suppress-delete": "$1 je {{GENDER:$2|potisnuo|potisnula}} stranicu $3",
index 007cc42..9c7d2b9 100644 (file)
        "logentry-newusers-newusers": "பயனர் கணக்கு $1 உருவாக்கப்பட்டது",
        "logentry-newusers-create": "$1 ஒரு புதிய பயனர் கணக்கை உருவாக்கியுள்ளார்.",
        "logentry-newusers-create2": "$3 பயனர் கணக்கினை $1 உருவாக்கினார்",
-       "logentry-newusers-autocreate": "பயணர் கணக்கு $1 தானாக உருவாக்கப்பட்டது",
+       "logentry-newusers-autocreate": "பயனர் கணக்கு $1 தானாக உருவாக்கப்பட்டது",
        "rightsnone": "(எதுவுமில்லை)",
        "revdelete-summary": "தொகுப்பு சுருக்கத்தை",
        "feedback-bugornote": "நீங்கள் ஒரு தொழில்நுட்பக் கோளாறு குறித்து விரிவாக விளக்க தாயாராக இருந்தால் தயவுசெய்து [ $1  ஒரு bug பற்றி கூறு].\nஇல்லையெனில், நீங்கள் கீழேயுள்ள எளிதான படிவத்தை பயன்படுத்தலாம்.உங்கள் கருத்துரை \"[$3 $2]\" பக்கத்தில் உங்கள் பயனர் பெயர் மற்றும் உங்கள் உலாவியின் பெயருடன் சேர்க்கப்படும்.",
index be4e971..57ce143 100644 (file)
        "tog-newpageshidepatrolled": "ซ่อนหน้าที่ตรวจสอบแล้วในรายการหน้าใหม่",
        "tog-extendwatchlist": "ขยายรายการเฝ้าดูให้แสดงการเปลี่ยนแปลงทั้งหมด ไม่เพียงการเปลี่ยนแปลงล่าสุด",
        "tog-usenewrc": "จัดกลุ่มการเปลี่ยนแปลงแบ่งตามหน้าในรายการปรับปรุงล่าสุดและรายการเฝ้าดู",
-       "tog-numberheadings": "à¹\83สà¹\88เลขหัวเรื่องอัตโนมัติ",
+       "tog-numberheadings": "à¸\81ำหà¸\99à¸\94เลขหัวเรื่องอัตโนมัติ",
        "tog-showtoolbar": "แสดงแถบเครื่องมือแก้ไข",
        "tog-editondblclick": "แก้ไขหน้าเมื่อดับเบิลคลิก",
-       "tog-editsectiononrightclick": "à¹\80à¸\9bิà¸\94à¹\83à¸\8aà¹\89à¸\87าà¸\99à¸\81ารà¹\81à¸\81à¹\89à¹\84à¸\82à¹\80à¸\89à¸\9eาะสà¹\88วà¸\99à¹\82à¸\94ยà¸\84ลิà¸\81à¸\82วาà¸\97ีà¹\88à¸\8aืà¹\88อà¹\80รืà¹\88อà¸\87à¸\82อà¸\87สà¹\88วà¸\99à¸\99ัà¹\89à¸\99",
+       "tog-editsectiononrightclick": "เปิดใช้งานการแก้ไขส่วนโดยคลิกขวาที่ชื่อเรื่องของส่วนนั้น",
        "tog-watchcreations": "เพิ่มหน้าที่ฉันสร้างและไฟล์ที่ฉันอัปโหลดเข้ารายการเฝ้าดู",
        "tog-watchdefault": "เพิ่มหน้าและไฟล์ที่ฉันแก้ไขเข้ารายการเฝ้าดู",
        "tog-watchmoves": "เพิ่มและไฟล์ที่ฉันย้ายเข้ารายการเฝ้าดู",
        "tog-watchdeletion": "เพิ่มหน้าและไฟล์ที่ฉันลบเข้ารายการเฝ้าดู",
        "tog-watchrollback": "เพิ่มหน้าที่ฉันย้อนกลับฉุกเฉินเข้ารายการเฝ้าดู",
        "tog-minordefault": "กำหนดการแก้ไขทุกครั้งเป็นการแก้ไขเล็กน้อยโดยปริยาย",
-       "tog-previewontop": "à¹\83หà¹\89à¸\95ัวอยà¹\88าà¸\87à¸\81ารà¹\81à¸\81à¹\89à¹\84à¸\82à¹\81สà¸\94งก่อนกล่องแก้ไข",
+       "tog-previewontop": "à¹\81สà¸\94à¸\87à¸\95ัวอยà¹\88างก่อนกล่องแก้ไข",
        "tog-previewonfirst": "แสดงตัวอย่างในการแก้ไขครั้งแรก",
        "tog-enotifwatchlistpages": "อีเมลหาเมื่อหน้าหรือไฟล์ในรายการเฝ้าดูเปลี่ยนแปลง",
        "tog-enotifusertalkpages": "อีเมลหาเมื่อมีการเปลี่ยนแปลงหน้าคุยกับผู้ใช้ของฉัน",
@@ -55,7 +55,7 @@
        "tog-watchlisthideminor": "ซ่อนการแก้ไขเล็กน้อยจากรายการเฝ้าดู",
        "tog-watchlisthideliu": "ซ่อนการแก้ไขโดยผู้ใช้ล็อกอินจากรายการเฝ้าดู",
        "tog-watchlisthideanons": "ซ่อนการแก้ไขโดยผู้ใช้นิรนามจากรายการเฝ้าดู",
-       "tog-watchlisthidepatrolled": "ซ่อนการแก้ไขที่ตรวจแล้วจากรายการเฝ้าดู",
+       "tog-watchlisthidepatrolled": "à¸\8bà¹\88อà¸\99à¸\81ารà¹\81à¸\81à¹\89à¹\84à¸\82à¸\97ีà¹\88à¸\95รวà¸\88สอà¸\9aà¹\81ลà¹\89วà¸\88าà¸\81รายà¸\81ารà¹\80à¸\9dà¹\89าà¸\94ู",
        "tog-ccmeonemails": "ส่งสำเนาอีเมลที่ฉันส่งหาผู้อื่นให้ฉัน",
        "tog-diffonly": "ไม่แสดงเนื้อหาหน้าใต้ผลต่าง",
        "tog-showhiddencats": "แสดงหมวดหมู่ที่ซ่อนอยู่",
        "editcomment": "คำอธิบายการแก้ไขคือ: \"''$1''\"",
        "revertpage": "ย้อนการแก้ไขโดย [[Special:Contributions/$2|$2]] ([[User talk:$2|Talk]]) ไปยังรุ่นแก้ไขล่าสุดโดย [[User:$1|$1]]",
        "revertpage-nouser": "ย้อนการแก้ไขโดยผู้ใช้ไม่ระบุชื่อไปยังรุ่นล่าสุดโดย {{GENDER:$1|[[User:$1|$1]]}}",
-       "rollback-success": "ย้อนการแก้ไขโดย $1; เปลี่ยนกลับไปไปยังรุ่นล่าสุดโดย $2",
+       "rollback-success": "ย้อนการแก้ไขโดย $1; \nเปลี่ยนกลับไปรุ่นล่าสุดโดย $2",
        "sessionfailure-title": "ช่วงเวลาสื่อสารล้มเหลว",
        "sessionfailure": "ดูเหมือนมีปัญหากับช่วงเวลาสื่อสารล็อกอินของคุณ\nการกระทำนี้ถูกยกเลิกเป็นการป้องกันการลักลอบช่วงเวลาสื่อสารไว้ก่อน \nกลับไปหน้าที่แล้ว โหลดหน้าใหม่ แล้วลองอีกครั้ง",
        "protectlogpage": "ปูมการล็อก",
        "tooltip-recreate": "สร้างหน้านี้อีกครั้งแม้เคยถูกลบ",
        "tooltip-upload": "เริ่มอัปโหลด",
        "tooltip-rollback": "\"ย้อนกลับฉุกเฉิน\" ใช้ย้อนการแก้ไขในหน้านี้ของผู้เขียนคนล่าสุดในคลิกเดียว",
-       "tooltip-undo": "\"ยà¹\89อà¸\99\" à¹\83à¸\8aà¹\89ยà¹\89อà¸\99à¸\81ารà¹\81à¸\81à¹\89à¹\84à¸\82à¸\84รัà¹\89à¸\87à¸\99ีà¹\89à¹\81ละà¹\80à¸\9bิà¸\94à¹\81à¸\9aà¸\9aà¹\81à¸\81à¹\89à¹\84à¸\82 à¸ªà¸²à¸¡à¸²à¸£à¸\96à¹\80à¸\9eิà¹\88มà¸\84ำอà¸\98ิà¸\9aายà¹\83à¸\99à¸\95อà¸\99à¸\97à¹\89าย",
+       "tooltip-undo": "\"ยà¹\89อà¸\99\" à¸¢à¹\89อà¸\99à¸\81ารà¹\81à¸\81à¹\89à¹\84à¸\82à¸\99ีà¹\89à¹\81ละà¹\80à¸\9bิà¸\94à¹\81à¸\9aà¸\9aà¹\81à¸\81à¹\89à¹\84à¸\82à¹\83à¸\99ภาวะà¸\95ัวอยà¹\88าà¸\87 à¹\80à¸\9bิà¸\94à¹\83หà¹\89à¹\80à¸\9eิà¹\88มà¹\80หà¸\95ุà¸\9cลà¹\83à¸\99à¸\84ำอà¸\98ิà¸\9aาย",
        "tooltip-preferences-save": "บันทึกการตั้งค่า",
        "tooltip-summary": "ใส่คำอธิบายอย่างย่อสั้น ๆ",
        "common.css": "/* สไตล์ชีตในหน้านี้จะส่งผลแก่ผู้ใช้ทุกสกิน */",
index 5e399fa..4c3c97e 100644 (file)
        "content-model-text": "düz metin",
        "content-model-javascript": "JavaScript",
        "content-model-css": "CSS",
+       "duplicate-args-category": "Yinelenen şablon değişkenleri kullanan sayfalar",
        "expensive-parserfunction-warning": "Uyarı: Bu sayfa çok fazla zengin derleyici fonksiyonu çağrısı içeriyor.\n\nBu $2 çağrıdan az olmalı, şu anda {{PLURAL:$1|1 çağrı var|$1 çağrı var}}.",
        "expensive-parserfunction-category": "Çok fazla zengin derleyici fonksiyonu çağrısına sahip sayfalar",
        "post-expand-template-inclusion-warning": "'''Uyarı''': Şablon içeriği çok büyük.\nBazı şablonlar eklenemeyecek.",
index 4690b77..36257a8 100644 (file)
        "search-result-category-size": "{{PLURAL:$1|$1 елемент|$1 елементи|$1 елементів}} ({{PLURAL:$2|$2 підкатегорія|$2 підкатегорії|$2 підкатегорій}}, {{PLURAL:$3|$3 файл|$3 файли|$3 файлів}})",
        "search-redirect": "(перенаправлення $1)",
        "search-section": "(розділ $1)",
+       "search-category": "(категорія $1)",
        "search-file-match": "(збігається із вмістом файлу)",
        "search-suggest": "Можливо, ви мали на увазі: $1",
        "search-interwiki-caption": "Братні проекти",
index ee52bbc..8ce4527 100644 (file)
        "otherlanguages": "Boshqa tillarda",
        "redirectedfrom": "($1dan yoʻnaltirildi)",
        "redirectpagesub": "Yoʻnaltiruvchi sahifa",
+       "redirectto": "Qayta yoʻnaltirish:",
        "lastmodifiedat": "Bu sahifa oxirgi marta $1 soat $2 da tahrirlangan.",
        "viewcount": "Bu sahifaga {{PLURAL:$1|bir marta|$1 marta}} murojaat qilingan.",
        "protectedpage": "Himoyalangan sahifa",
        "missingarticle-diff": "(Farq: $1, $2)",
        "internalerror": "Ichki xato",
        "internalerror_info": "Ichki xato: $1",
+       "filecopyerror": "\"$1\" fayl nusxasini \"$2\" fayliga koʻchirib boʻlmadi.",
+       "filedeleteerror": "\"$1\" faylini oʻchirib boʻlmadi.",
+       "filenotfound": "\"$1\" faylini topib boʻlmadi.",
+       "cannotdelete-title": "\"$1\" sahifasini oʻchirib boʻlmadi.",
        "badtitle": "Notoʻgʻri sarlavha",
        "viewsource": "Manbasini koʻrish",
        "viewsource-title": "$1 sahifasining manbasini koʻrish",
        "virus-scanfailed": "tekshirishda xatolik (kod $1)",
        "virus-unknownscanner": "noma'lum antivirus:",
        "logouttext": "<strong>Siz saytdan muvaffaqiyatli chiqdingiz.</strong>\n\nBrauzeringiz keshini tozalamaguningizgacha ayrim sahifalar tizimga kirganingizdek koʻrinishda davom etaverishi mumkin.",
+       "welcomeuser": "Xush kelibsiz, $1!",
        "yourname": "Foydalanuvchi nomi:",
        "userlogin-yourname": "Foydalanuvchi nomi",
        "userlogin-yourname-ph": "Foydalanuvchi nomingizni kiriting",
        "createacct-benefit-body3": "soʻnggi paytdagi ishtirokchilar soni",
        "badretype": "Siz tomondan kiritilgan maxfiy so'zlar mos kelmayapti.",
        "loginerror": "Foydalanuvchini aniqlashda xatolik",
+       "createacct-error": "Hisob yaratishda xatolik",
        "createaccounterror": "Hisob yozuvi yaratishning iloji yoʻq: $1",
        "loginsuccesstitle": "Kirish muvaffaqiyatli amalga oshdi",
        "loginsuccess": "'''{{SITENAME}}ga \"$1\" foydalanuvchi nomi bilan kirdingiz.'''",
        "wrongpasswordempty": "Maxfiy soʻz koʻrsatilmagan. Qaytadan urinib koʻring.",
        "mailmypassword": "Maxfiy soʻzni yangilash",
        "passwordremindertitle": "{{SITENAME}} uchun vaqtinchalik yangi maxfiy so'z",
+       "mailerror": "$1 manziliga xat yuborishda xatolik",
        "emailauthenticated": "Elektron pochta manzilingiz $2, $3 da tasdiqlangan.",
        "emailconfirmlink": "Elektron pochta manzilingizni tasdiqlash",
        "emaildisabled": "Bu sayt elektron pochta xatlarini yubora olmaydi.",
        "accountcreated": "Hisob yozuvi yaratildi",
+       "createaccount-title": "{{SITENAME}} da hisob yaratish",
        "login-abort-generic": "Tizimga kirishga mufavvaqiyatsiz urinish",
        "loginlanguagelabel": "Til: $1",
        "pt-login": "Kirish",
        "resetpass_forbidden": "Maxfiy so'z o'zgartirilishi mumkin emas",
        "resetpass-submit-loggedin": "Maxfiy soʻzni oʻzgartirish",
        "resetpass-submit-cancel": "Bekor",
+       "resetpass-temp-password": "Vaqtinchalik maxfiy soʻz",
        "passwordreset": "Maxfiy soʻzni yangilash",
        "passwordreset-text-one": "Mahfiy soʻzni tashlash uchun ushbu oynalarni toʻltiring.",
        "passwordreset-text-many": "{{PLURAL:$1|Quyidagi oynalardan birini toʻldirsangiz, elektron pochtangizga vaqtinchalik maxfiy soʻz joʻnatiladi.}}",
        "passwordreset-legend": "Maxfiy soʻzni yangilash",
        "passwordreset-username": "Foydalanuvchi nomi:",
        "passwordreset-domain": "Domen:",
+       "passwordreset-capture": "Xatni koʻrmoqchimisiz?",
        "passwordreset-email": "Elektron pochta manzilingiz:",
        "passwordreset-emailelement": "Foydalanuvchi ismi: $1\nVaqtinchalik maxfiy so'z: $2",
        "changeemail": "Elektron pochta manzilini oʻzgartirish",
        "newarticletext": "Bu sahifa hali mavjud emas.\nSahifani yaratish uchun quyida matn kiritishingiz mumkin (qoʻshimcha axborot uchun [$1 yordam sahifasini] koʻring).\nAgar bu sahifaga xatolik sabab kelib qolgan boʻlsangiz brauzeringizning '''orqaga''' tugmasini bosing.",
        "anontalkpagetext": "----''Ushbu munozara sahifasi hali hisob yozuvini yaratmagan, yoki undan foydalanmaydigan anonim ishtirokchiga tegishli.\nShu sababli tenglashtirish uchun raqamli IP-manzildan foydalaniladi.\nUshbu manzilning oʻzi bir nechta boshqa ishtirokchilarga ham mos kelishi mumkin.\nAgar siz anonim ishtirokchi boʻlsangiz va siz oʻzingizga yoʻnaltirilmagan xabar oldim deb taxmin qilsangiz, iltimos, boshqa anonim ishtirokchilar bilan mumkin boʻlgan chalkashliklarni chetlab oʻtish uchun [[Special:UserLogin/signup|hisob yozuvi yarating]] yoki [[Special:UserLogin|tizimga kiring]].''",
        "noarticletext": "Bu sahifada hozircha hech qanday matn yoʻq. Siz bu sarlavhani boshqa sahifalardan [[Special:Search/{{PAGENAME}}|qidirishingiz]], <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} tegishli qaydlarga qarashingiz] yoki bu sahifani [{{fullurl:{{FULLPAGENAME}}|action=edit}} tahrirlashingiz]</span> mumkin.",
+       "userpage-userdoesnotexist-view": "\"$1\" foydalanuvchi hisobi roʻyxatga olinmagan.",
        "clearyourcache": "'''Eslatma.''' Saqlaganingizdan so'ng o'zgarishlarni ko'rish uchun siz o'z brauzeringiz keshini tozalashingizga to'gri kelishi mumkin.\n* '''Firefox / Safari:''' ''Shift'' tugmasini bosgan holda, ''Yangilash'' unsurlar darchasini bosing, yoki ''Ctrl-F5'' yoki ''Ctrl-R'' (Macda ''⌘-R'') ni bosing\n* '''Google Chrome:''' ''Ctrl-Shift-R'' (Macda ''⌘-Shift-R'') ni bosing\n* '''Internet Explorer:''' ''Ctrl''ni bosgan holda, ''Yangilash''ni bosing, yoki ''Ctrl-F5''ni bosing\n* '''Opera:''' ''Asboblar → Moslamalar'' menyusidan keshni tozalashni tanlang",
        "updated": "(Yangilandi)",
        "note": "'''Izoh:'''",
        "editingsection": "$1 tahrirlanmoqda (boʻlim)",
        "editingcomment": "$1 tahrirlanmoqda (yangi mavzu)",
        "editconflict": "Tahrirlash toʻqnashuvi: $1",
+       "yourtext": "Sizning matningiz",
+       "yourdiff": "Farqlar",
        "copyrightwarning": "Iltimos, {{SITENAME}}ga yuklangan har qanday axborot $2 ostida tarqatilishiga diqqat qiling (batafsil ma'lumot uchun $1ni ko'ring).\nAgar yozganlaringiz keyinchalik tahrir qilinishi va qayta tarqatilishiga rozi bo'lmasangiz, u holda bu yerga yozmang.<br />\nSiz shuningdek bu yozganlaringiz sizniki yoki erkin litsenziya ostida ekanligini va'da qilmoqdasiz.\n'''MUALLIFLIK HUQUQLARI BILAN HIMOYALANGAN ISHLARNI ZINHOR BERUXSAT YUBORMANG!'''",
        "copyrightwarning2": "Iltimos, shuni esda tutingki, {{SITENAME}} sahifalaridagi barcha matnlar boshqa foydalanuvchilar tomonidan tahrirlanishi, almashtirilishi yoki o'chirilishi mumkin. Agar siz yozgan ma'lumotlaringizni bunday tartibda tahrirlanishiga rozi bo'lmasangiz, unda uni bu yerga joylashtirmang.<br />\nBundan tashqari, siz ushbu ma'lumotlarni o'zingiz yozgan bo'lishingiz yoki ruxsat berilgan internet manzilidan yoki shu kabi erkin resursdan nusxa olgan bo'lishingiz lozim (Qo'shimcha ma'lumotlar uchun $1 sahifasiga murojaat qiling).\n'''MUALLIFLIK HUQUQI QO'YILGAN ISHLARNI RUXSATSIZ BU YERGA JOYLASHTIRMANG!'''",
        "templatesused": "Ushbu sahifada foydalanilgan {{PLURAL:$1|andoza|andozalar}}:",
        "moveddeleted-notice": "Bu sahifa oʻchirilgan.\nMaʼlumot uchun quyida oʻchirish va qayta nomlash jurnallaridan mos yozuvlar keltirilgan.",
        "log-fulllog": "Qaydlarni toʻliq koʻrish",
        "edit-conflict": "Tahrirlash toʻqnashuvi.",
+       "postedit-confirmation-created": "Sahifa yaratildi.",
+       "postedit-confirmation-restored": "Sahifa qayta tiklandi.",
        "postedit-confirmation-saved": "Tahriringiz saqlandi.",
        "defaultmessagetext": "Boshlang'ich matn",
+       "content-model-text": "quruq matn",
+       "content-model-javascript": "JavaScript",
+       "content-model-css": "CSS",
        "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",
index 83c97e0..773786c 100644 (file)
        "content-model-text": "纯文本",
        "content-model-javascript": "JavaScript",
        "content-model-css": "CSS",
-       "duplicate-args-category": "页面的模板调用中使用重复参数",
+       "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": "页面中有太多耗费的语法功能呼叫",
        "search-result-category-size": "$1个成员($2个子分类,$3个文件)",
        "search-redirect": "(重定向自“$1”)",
        "search-section": "(“$1”段落)",
+       "search-category": "(分类$1)",
        "search-file-match": "(匹配文件内容)",
        "search-suggest": "您是不是要找:$1",
        "search-interwiki-caption": "姊妹项目",
index a79a972..1f06bba 100644 (file)
        "viewsourcetext": "您可以檢視並複製此頁面的原始碼。",
        "viewyourtext": "您可以檢視並複製此頁面中<strong>您編輯</strong>的原始碼:",
        "protectedinterface": "本頁用來提供此 Wiki 軟體介面上的文字,並且已被設為保護以防止惡意修改。\n如欲增加或修改 Wiki 的翻譯,請至 [//translatewiki.net/ translatewiki.net] 上的 MediaWiki 在地化專案。",
-       "editinginterface": "<strong>警告:</strong>您正在編輯的頁面是用來提供軟體介面上的文字。\n更改此頁將影響其他在此 Wiki 上的使用者介面外觀。\n如欲修改 Wiki 的翻譯,請至 [//translatewiki.net/ translatewiki.net]上的 MediaWiki 在地化專案。",
+       "editinginterface": "<strong>警告:</strong>您正在編輯的頁面是用來提供軟體介面上的文字。\n更改此頁將影響其他在此 Wiki 上的使用者介面外觀。",
+       "translateinterface": "如欲修改 Wiki 的翻譯,請至 [//translatewiki.net/ translatewiki.net]上的 MediaWiki 在地化專案。",
        "cascadeprotected": "此頁面被保護無法編輯,因為此頁面被以下開啟 \"連鎖保護\" 選項的{{PLURAL:$1|一頁|數頁}}保護頁面引用:\n$2",
        "namespaceprotected": "您沒有權限編輯 <strong>$1</strong> 命名空間的頁面。",
        "customcssprotected": "您並沒有權限編輯此 CSS 頁面,因為此頁面包含了其他使用者的個人設定。",
        "search-result-category-size": "$1 位成員 ($2 個子分類,$3 個檔案)",
        "search-redirect": "(重新導向 $1)",
        "search-section": "(章節 $1)",
+       "search-category": "(分類 $1)",
        "search-file-match": "(符合檔案內容)",
        "search-suggest": "您指的是不是:$1",
        "search-interwiki-caption": "姐妹專案",
index aa1d9d1..2f86c78 100644 (file)
 $namespaceNames = array(
        NS_SPECIAL          => 'Syndrig',
        NS_TALK             => 'Mōtung',
-       NS_FILE             => 'Biliþ',
-       NS_FILE_TALK        => 'Biliþmōtung',
+       NS_USER             => 'Brūcend',
+       NS_USER_TALK        => 'Brūcendmōtung',
+       NS_FILE             => 'Ymele',
+       NS_FILE_TALK        => 'Ymelmōtung',
+       NS_MEDIAWIKI_TALK   => 'MediaWikimōtung',
        NS_TEMPLATE         => 'Bysen',
        NS_TEMPLATE_TALK    => 'Bysenmōtung',
        NS_HELP             => 'Help',
@@ -26,8 +29,9 @@ $namespaceAliases = array(
        'Motung'        => NS_TALK,
        'Brucend'       => NS_USER,
        'Brucendmotung' => NS_USER_TALK,
-       'Biliþgesprec'  => NS_FILE_TALK,
+       'Biliþ'         => NS_FILE,
        'Biliþmotung'   => NS_FILE_TALK,
+       'Biliþmōtung'   => NS_FILE_TALK,
        'Bysengesprec'  => NS_TEMPLATE_TALK,
        'Bysenmotung'   => NS_TEMPLATE_TALK,
        'Helpgesprec'   => NS_HELP_TALK,
index 09ae5a6..abba540 100644 (file)
 
 $fallback = 'hi';
 
+$namespaceNames = array(
+       NS_MEDIA            => 'मेडिया',
+       NS_SPECIAL          => 'विशेष',
+       NS_TALK             => 'वार्ता',
+       NS_USER             => 'प्रयोगकर्ता',
+       NS_USER_TALK        => 'प्रयोगकर्ता_वार्ता',
+       NS_PROJECT_TALK     => '$1_वार्ता',
+       NS_FILE             => 'फाइल',
+       NS_FILE_TALK        => 'फाइल_वार्ता',
+       NS_MEDIAWIKI        => 'मेडियाविकि',
+       NS_MEDIAWIKI_TALK   => 'मेडियाविकि_वार्ता',
+       NS_TEMPLATE         => 'आकृति',
+       NS_TEMPLATE_TALK    => 'आकृति_वार्ता',
+       NS_HELP             => 'मद्दत',
+       NS_HELP_TALK        => 'मद्दत_वार्ता',
+       NS_CATEGORY         => 'श्रेणी',
+       NS_CATEGORY_TALK    => 'श्रेणी_वार्ता',
+);
diff --git a/maintenance/oracle/update-keys.sql b/maintenance/oracle/update-keys.sql
new file mode 100644 (file)
index 0000000..7761d0c
--- /dev/null
@@ -0,0 +1,29 @@
+-- SQL to insert update keys into the initial tables after a
+-- fresh installation of MediaWiki's database.
+-- This is read and executed by the install script; you should
+-- not have to run it by itself unless doing a manual install.
+-- Insert keys here if either the unnecessary would cause heavy
+-- processing or could potentially cause trouble by lowering field
+-- sizes, adding constraints, etc.
+-- When adjusting field sizes, it is recommended removing old
+-- patches but to play safe, update keys should also inserted here.
+
+-- The /*_*/ comments in this and other files are
+-- replaced with the defined table prefix by the installer
+-- and updater scripts. If you are installing or running
+-- updates manually, you will need to manually insert the
+-- table prefix if any when running these scripts.
+--
+
+INSERT INTO /*_*/updatelog (ul_key, ul_value)
+       VALUES( 'filearchive-fa_major_mime-patch-fa_major_mime-chemical.sql', null );
+INSERT INTO /*_*/updatelog (ul_key, ul_value)
+       VALUES( 'image-img_major_mime-patch-img_major_mime-chemical.sql', null );
+INSERT INTO /*_*/updatelog (ul_key, ul_value)
+       VALUES( 'oldimage-oi_major_mime-patch-oi_major_mime-chemical.sql', null );
+INSERT INTO /*_*/updatelog (ul_key, ul_value)
+       VALUES( 'user_groups-ug_group-patch-ug_group-length-increase-255.sql', null );
+INSERT INTO /*_*/updatelog (ul_key, ul_value)
+       VALUES( 'user_former_groups-ufg_group-patch-ufg_group-length-increase-255.sql', null );
+INSERT INTO /*_*/updatelog (ul_key, ul_value)
+       VALUES( 'user_properties-up_property-patch-up_property.sql', null );
index 685ca4d..c01dd36 100644 (file)
@@ -38,6 +38,7 @@
        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 69e4006..ea1a4f6 100644 (file)
@@ -247,8 +247,13 @@ class JobQueueTest extends MediaWikiTestCase {
                        $this->assertNull( $queue->push( $this->newJob( 0, $root1 ) ), "Push worked ($desc)" );
                }
                $queue->deduplicateRootJob( $this->newJob( 0, $root1 ) );
-               sleep( 1 ); // roo job timestamp will increase
-               $root2 = Job::newRootJobParams( "nulljobspam:$id" ); // task ID/timestamp
+
+               $root2 = $root1;
+               # Add a second to UNIX epoch and format back to TS_MW
+               $root2_ts = strtotime( $root2['rootJobTimestamp'] );
+               $root2_ts++;
+               $root2['rootJobTimestamp'] = wfTimestamp( TS_MW, $root2_ts );
+
                $this->assertNotEquals( $root1['rootJobTimestamp'], $root2['rootJobTimestamp'],
                        "Root job signatures have different timestamps." );
                for ( $i = 0; $i < 5; ++$i ) {
index af68ab0..456266f 100644 (file)
@@ -222,6 +222,64 @@ class FormatJsonTest extends MediaWikiTestCase {
                $this->assertFalse( $st->isOK() );
        }
 
+       public function provideStripComments() {
+               return array(
+                       array( '{"a":"b"}', '{"a":"b"}' ),
+                       array( "{\"a\":\"b\"}\n", "{\"a\":\"b\"}\n" ),
+                       array( '/*c*/{"c":"b"}', '{"c":"b"}' ),
+                       array( '{"a":"c"}/*c*/', '{"a":"c"}' ),
+                       array( '/*c//d*/{"c":"b"}', '{"c":"b"}' ),
+                       array( '{/*c*/"c":"b"}', '{"c":"b"}' ),
+                       array( "/*\nc\r\n*/{\"c\":\"b\"}", '{"c":"b"}' ),
+                       array( "//c\n{\"c\":\"b\"}", '{"c":"b"}' ),
+                       array( "//c\r\n{\"c\":\"b\"}", '{"c":"b"}' ),
+                       array( '{"a":"c"}//c', '{"a":"c"}' ),
+                       array( "{\"a-c\"://c\n\"b\"}", '{"a-c":"b"}' ),
+                       array( '{"/*a":"b"}', '{"/*a":"b"}' ),
+                       array( '{"a":"//b"}', '{"a":"//b"}' ),
+                       array( '{"a":"b/*c*/"}', '{"a":"b/*c*/"}' ),
+                       array( "{\"\\\"/*a\":\"b\"}", "{\"\\\"/*a\":\"b\"}" ),
+                       array( '', '' ),
+                       array( '/*c', '' ),
+                       array( '//c', '' ),
+                       array( '"http://example.com"', '"http://example.com"' ),
+                       array( "\0", "\0" ),
+                       array( '"Blåbærsyltetøy"', '"Blåbærsyltetøy"' ),
+               );
+       }
+
+       /**
+        * @covers FormatJson::stripComments
+        * @dataProvider provideStripComments
+        * @param string $json
+        * @param string $expect
+        */
+       public function testStripComments( $json, $expect ) {
+               $this->assertSame( $expect, FormatJson::stripComments( $json ) );
+       }
+
+       public function provideParseStripComments() {
+               return array(
+                       array( '/* blah */true', true ),
+                       array( "// blah \ntrue", true ),
+                       array( '[ "a" , /* blah */ "b" ]', array( 'a', 'b' ) ),
+               );
+       }
+
+       /**
+        * @covers FormatJson::parse
+        * @covers FormatJson::stripComments
+        * @dataProvider provideParseStripComments
+        * @param string $json
+        * @param mixed $expect
+        */
+       public function testParseStripComments( $json, $expect ) {
+               $st = FormatJson::parse( $json, FormatJson::STRIP_COMMENTS );
+               $this->assertType( 'Status', $st );
+               $this->assertTrue( $st->isGood() );
+               $this->assertEquals( $expect, $st->getValue() );
+       }
+
        /**
         * Generate a set of test cases for a particular combination of encoder options.
         *