From: jenkins-bot Date: Thu, 23 May 2019 20:25:01 +0000 (+0000) Subject: Merge "Introduce MovePage::moveSubpages(IfAllowed)" X-Git-Tag: 1.34.0-rc.0~1606 X-Git-Url: http://git.cyclocoop.org/%28%28?a=commitdiff_plain;h=de0e4b557bd1dc2694ab3d809428f7f35e9685ea;hp=9510dbc4cee09ec0cec97325d99e44a5fc32b8f8;p=lhc%2Fweb%2Fwiklou.git Merge "Introduce MovePage::moveSubpages(IfAllowed)" --- diff --git a/RELEASE-NOTES-1.34 b/RELEASE-NOTES-1.34 index a62c548349..197d9830fc 100644 --- a/RELEASE-NOTES-1.34 +++ b/RELEASE-NOTES-1.34 @@ -38,7 +38,9 @@ For notes on 1.33.x and older releases, see HISTORY. * … ==== Removed configuration ==== -* … +* $wgWikiDiff2MovedParagraphDetectionCutoff — If you still want a custom change + size threshold, please specify in php.ini, using the configuration variable + wikidiff2.moved_paragraph_detection_cutoff. === New user-facing features in 1.34 === * … @@ -214,6 +216,7 @@ because of Phabricator reports. and SystemBlock (for temporary blocks created by the system). SystemBlock should be used when creating any temporary blocks. * Parser::$mConf is deprecated. It will be removed entirely in a later version. + Some context can be found at T224165. * Constructing Parser directly is deprecated. Obtain one from ParserFactory. * Title::moveSubpages is deprecated. Use MovePage::moveSubpages or MovePage::moveSubpagesIfAllowed. diff --git a/docs/extension.schema.v1.json b/docs/extension.schema.v1.json index 32946d38f6..cf02f2be2c 100644 --- a/docs/extension.schema.v1.json +++ b/docs/extension.schema.v1.json @@ -95,6 +95,48 @@ } } }, + "dev-requires": { + "type": "object", + "description": "Indicates what dependencies are required for development purposes such as running tests. This syntax may be extended in the future.", + "additionalProperties": false, + "properties": { + "MediaWiki": { + "type": "string", + "description": "Version constraint string against MediaWiki core." + }, + "platform": { + "type": "object", + "description": "Indicates version constraints against platform services.", + "additionalProperties": false, + "properties": { + "php": { + "type": "string", + "description": "Version constraint string against PHP." + }, + "ability-shell": { + "type": "boolean", + "default": false, + "description": "Whether this extension requires shell access." + } + }, + "patternProperties": { + "^ext-": { + "type": "string", + "description": "Required PHP extension.", + "enum": ["*"] + } + } + }, + "extensions": { + "type": "object", + "description": "Set of version constraint strings against specific extensions." + }, + "skins": { + "type": "object", + "description": "Set of version constraint strings against specific skins." + } + } + }, "ResourceFileModulePaths": { "type": "object", "description": "Default paths to use for all ResourceLoader file modules", diff --git a/docs/extension.schema.v2.json b/docs/extension.schema.v2.json index 42b34b7d2a..f29f8501b0 100644 --- a/docs/extension.schema.v2.json +++ b/docs/extension.schema.v2.json @@ -102,6 +102,48 @@ } } }, + "dev-requires": { + "type": "object", + "description": "Indicates what dependencies are required for development purposes such as running tests. This syntax may be extended in the future.", + "additionalProperties": false, + "properties": { + "MediaWiki": { + "type": "string", + "description": "Version constraint string against MediaWiki core." + }, + "platform": { + "type": "object", + "description": "Indicates version constraints against platform services.", + "additionalProperties": false, + "properties": { + "php": { + "type": "string", + "description": "Version constraint string against PHP." + }, + "ability-shell": { + "type": "boolean", + "default": false, + "description": "Whether this extension requires shell access." + } + }, + "patternProperties": { + "^ext-": { + "type": "string", + "description": "Required PHP extension.", + "enum": ["*"] + } + } + }, + "extensions": { + "type": "object", + "description": "Set of version constraint strings against specific extensions." + }, + "skins": { + "type": "object", + "description": "Set of version constraint strings against specific skins." + } + } + }, "ResourceFileModulePaths": { "type": "object", "description": "Default paths to use for all ResourceLoader file modules", diff --git a/includes/Block.php b/includes/Block.php index 5b0d25611e..9f7f77d439 100644 --- a/includes/Block.php +++ b/includes/Block.php @@ -972,7 +972,7 @@ class Block extends AbstractBlock { * Set the block ID * * @param int $blockId - * @return int + * @return self */ private function setId( $blockId ) { $this->mId = (int)$blockId; diff --git a/includes/DefaultSettings.php b/includes/DefaultSettings.php index 69da9c71d9..de94f77cbb 100644 --- a/includes/DefaultSettings.php +++ b/includes/DefaultSettings.php @@ -8497,6 +8497,7 @@ $wgExternalDiffEngine = false; * See $wgExternalDiffEngine. * * @since 1.30 + * @deprecated since 1.34 */ $wgWikiDiff2MovedParagraphDetectionCutoff = 0; @@ -9082,6 +9083,17 @@ $wgReportToEndpoints = []; */ $wgFeaturePolicyReportOnly = []; +/** + * Options for Special:Search completion widget form created by SearchFormWidget class. + * Settings that can be used: + * - showDescriptions: true/false - whether to show opensearch description results + * - performSearchOnClick: true/false - whether to perform search on click + * See also TitleWidget.js UI widget. + * @since 1.34 + * @var array + */ +$wgSpecialSearchFormOptions = []; + /** * For really cool vim folding this needs to be at the end: * vim: foldmarker=@{,@} foldmethod=marker diff --git a/includes/LinkFilter.php b/includes/LinkFilter.php index a4e94da7cf..6ad9b31ab9 100644 --- a/includes/LinkFilter.php +++ b/includes/LinkFilter.php @@ -91,7 +91,7 @@ class LinkFilter { /** * Canonicalize a hostname for el_index - * @param string $hose + * @param string $host * @return string */ private static function indexifyHost( $host ) { diff --git a/includes/Setup.php b/includes/Setup.php index 071b7c6feb..a51cb83c19 100644 --- a/includes/Setup.php +++ b/includes/Setup.php @@ -605,20 +605,6 @@ if ( $wgDebugToolbar && !$wgCommandLineMode ) { // re-created while taking into account any custom settings and extensions. MediaWikiServices::resetGlobalInstance( new GlobalVarConfig(), 'quick' ); -if ( $wgSharedDB && $wgSharedTables ) { - // Apply $wgSharedDB table aliases for the local LB (all non-foreign DB connections) - MediaWikiServices::getInstance()->getDBLoadBalancer()->setTableAliases( - array_fill_keys( - $wgSharedTables, - [ - 'dbname' => $wgSharedDB, - 'schema' => $wgSharedSchema, - 'prefix' => $wgSharedPrefix - ] - ) - ); -} - // Define a constant that indicates that the bootstrapping of the service locator // is complete. define( 'MW_SERVICE_BOOTSTRAP_COMPLETE', 1 ); @@ -694,6 +680,20 @@ if ( $wgMainWANCache === false ) { ]; } +if ( $wgSharedDB && $wgSharedTables ) { + // Apply $wgSharedDB table aliases for the local LB (all non-foreign DB connections) + MediaWikiServices::getInstance()->getDBLoadBalancer()->setTableAliases( + array_fill_keys( + $wgSharedTables, + [ + 'dbname' => $wgSharedDB, + 'schema' => $wgSharedSchema, + 'prefix' => $wgSharedPrefix + ] + ) + ); +} + Profiler::instance()->scopedProfileOut( $ps_default2 ); $ps_misc = Profiler::instance()->scopedProfileIn( $fname . '-misc' ); diff --git a/includes/api/ApiQueryProtectedTitles.php b/includes/api/ApiQueryProtectedTitles.php index f5266850bd..8edf00cf57 100644 --- a/includes/api/ApiQueryProtectedTitles.php +++ b/includes/api/ApiQueryProtectedTitles.php @@ -135,7 +135,7 @@ class ApiQueryProtectedTitles extends ApiQueryGeneratorBase { if ( isset( $prop['parsedcomment'] ) ) { $vals['parsedcomment'] = Linker::formatComment( - $commentStore->getComment( 'pt_reason', $row )->text, $titles + $commentStore->getComment( 'pt_reason', $row )->text ); } diff --git a/includes/api/ApiQueryRevisions.php b/includes/api/ApiQueryRevisions.php index fc5028959f..e60835bb02 100644 --- a/includes/api/ApiQueryRevisions.php +++ b/includes/api/ApiQueryRevisions.php @@ -114,7 +114,7 @@ class ApiQueryRevisions extends ApiQueryRevisionsBase { if ( $revCount > 0 && $enumRevMode ) { $this->dieWithError( - [ 'apierror-revisions-nolist', $this->getModulePrefix() ], 'invalidparammix' + [ 'apierror-revisions-norevids', $this->getModulePrefix() ], 'invalidparammix' ); } diff --git a/includes/api/i18n/fr.json b/includes/api/i18n/fr.json index 51e17fff8c..6a410573d2 100644 --- a/includes/api/i18n/fr.json +++ b/includes/api/i18n/fr.json @@ -35,7 +35,7 @@ "Epok" ] }, - "apihelp-main-extended-description": "
\n* [[mw:Special:MyLanguage/API:Main_page|Documentation]]\n* [[mw:Special:MyLanguage/API:FAQ|FAQ]]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api Liste de diffusion]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api-announce Annonces de l’API]\n* [https://phabricator.wikimedia.org/maniphest/query/GebfyV4uCaLd/#R Bogues et demandes]\n
\nÉtat : L’API MediaWiki est une interface stable et mature qui est supportée et améliorée de façon active. Bien que nous essayions de l’éviter, nous pouvons avoir parfois besoin de faire des modifications impactantes ; inscrivez-vous à [https://lists.wikimedia.org/pipermail/mediawiki-api-announce/ la liste de diffusion mediawiki-api-announce] pour être informé des mises à jour.\n\nRequêtes erronées : Si des requêtes erronées sont envoyées à l’API, un entête HTTP sera renvoyé avec la clé « MediaWiki-API-Error ». La valeur de cet entête et le code d’erreur renvoyé prendront la même valeur. Pour plus d’information, voyez [[mw:Special:MyLanguage/API:Errors_and_warnings|API: Errors and warnings]].\n\n

Test : Pour faciliter le test des requêtes à l’API, voyez [[Special:ApiSandbox]].

", + "apihelp-main-extended-description": "
\n* [[mw:Special:MyLanguage/API:Main_page|Documentation]]\n* [[mw:Special:MyLanguage/API:FAQ|FAQ]]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api Liste de diffusion]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api-announce Annonces de l’API]\n* [https://phabricator.wikimedia.org/maniphest/query/GebfyV4uCaLd/#R Bogues et demandes]\n
\nÉtat : L’API MediaWiki est une interface stable et mature qui est supportée et améliorée de façon active. Bien que nous essayions de l’éviter, nous pouvons avoir parfois besoin de faire des modifications impactantes ; inscrivez-vous à [https://lists.wikimedia.org/pipermail/mediawiki-api-announce/ la liste de diffusion mediawiki-api-announce] pour être informé des mises à jour.\n\nRequêtes erronées : Si des requêtes erronées sont envoyées à l’API, un entête HTTP sera renvoyé avec la clé « MediaWiki-API-Error ». La valeur de cet entête et le code d’erreur renvoyé prendront la même valeur. Pour plus d’information, voyez [[mw:Special:MyLanguage/API:Errors_and_warnings|API:Errors and warnings]].\n\n

Test : Pour faciliter le test des requêtes à l’API, voyez [[Special:ApiSandbox]].

", "apihelp-main-param-action": "Quelle action effectuer.", "apihelp-main-param-format": "Le format de sortie.", "apihelp-main-param-maxlag": "La latence maximale peut être utilisée quand MédiaWiki est installé sur un cluster de base de données répliqué. Pour éviter des actions provoquant un supplément de latence de réplication de site, ce paramètre peut faire attendre le client jusqu’à ce que la latence de réplication soit inférieure à une valeur spécifiée. En cas de latence excessive, le code d’erreur maxlag est renvoyé avec un message tel que Attente de $host : $lag secondes de délai.
Voyez [[mw:Special:MyLanguage/Manual:Maxlag_parameter|Manuel: paramètre Maxlag]] pour plus d’information.", diff --git a/includes/api/i18n/mk.json b/includes/api/i18n/mk.json index 912f026c44..fa4110e0f4 100644 --- a/includes/api/i18n/mk.json +++ b/includes/api/i18n/mk.json @@ -68,7 +68,7 @@ "apihelp-edit-param-text": "Содржина на страницата.", "apihelp-edit-param-summary": "Опис на уредувањето. Ова е и назив на поднасловот кога не се зададени $1section=new и $1sectiontitle.", "apihelp-edit-param-tags": "Ознаки за измена што се однесуваат на преработката.", - "apihelp-edit-param-minor": "Ситно уредување.", + "apihelp-edit-param-minor": "Означи го уредувањево како ситно.", "apihelp-edit-param-notminor": "Неситно уредување.", "apihelp-edit-param-bot": "Означи го уредувањето како ботовско.", "apihelp-edit-param-basetimestamp": "Датум и време на преработката на базата, кои се користат за утврдување на спротиставености во уредувањето. Може да се добие преку [[Special:ApiHelp/query+revisions|action=query&prop=revisions&rvprop=timestamp]].", diff --git a/includes/content/ContentHandler.php b/includes/content/ContentHandler.php index b62737d5bb..65a7b7daac 100644 --- a/includes/content/ContentHandler.php +++ b/includes/content/ContentHandler.php @@ -646,9 +646,6 @@ abstract class ContentHandler { $slotDiffRenderer->setStatsdDataFactory( $statsdDataFactory ); // XXX using the page language would be better, but it's unclear how that should be injected $slotDiffRenderer->setLanguage( $contentLanguage ); - $slotDiffRenderer->setWikiDiff2MovedParagraphDetectionCutoff( - $context->getConfig()->get( 'WikiDiff2MovedParagraphDetectionCutoff' ) - ); $engine = DifferenceEngine::getEngine(); if ( $engine === false ) { diff --git a/includes/db/MWLBFactory.php b/includes/db/MWLBFactory.php index 5b629844b4..27695cc984 100644 --- a/includes/db/MWLBFactory.php +++ b/includes/db/MWLBFactory.php @@ -247,8 +247,8 @@ abstract class MWLBFactory { /** * @param array $servers - * @param string $lbDB Local domain database name - * @param string $lbTP Local domain prefix + * @param string $ldDB Local domain database name + * @param string $ldTP Local domain prefix */ private static function assertValidServerConfigs( array $servers, $ldDB, $ldTP ) { foreach ( $servers as $server ) { diff --git a/includes/debug/logger/LegacyLogger.php b/includes/debug/logger/LegacyLogger.php index bbcd33ac75..72c7643418 100644 --- a/includes/debug/logger/LegacyLogger.php +++ b/includes/debug/logger/LegacyLogger.php @@ -21,12 +21,14 @@ namespace MediaWiki\Logger; use DateTimeZone; +use Error; use Exception; use WikiMap; use MWDebug; use MWExceptionHandler; use Psr\Log\AbstractLogger; use Psr\Log\LogLevel; +use Throwable; use UDPTransport; /** @@ -269,7 +271,7 @@ class LegacyLogger extends AbstractLogger { $e = $context['exception']; $backtrace = false; - if ( $e instanceof Exception ) { + if ( $e instanceof Throwable || $e instanceof Exception ) { $backtrace = MWExceptionHandler::getRedactedTrace( $e ); } elseif ( is_array( $e ) && isset( $e['trace'] ) ) { @@ -405,8 +407,9 @@ class LegacyLogger extends AbstractLogger { return $item->format( 'c' ); } - if ( $item instanceof Exception ) { - return '[Exception ' . get_class( $item ) . '( ' . + if ( $item instanceof Throwable || $item instanceof Exception ) { + $which = $item instanceof Error ? 'Error' : 'Exception'; + return '[' . $which . ' ' . get_class( $item ) . '( ' . $item->getFile() . ':' . $item->getLine() . ') ' . $item->getMessage() . ']'; } diff --git a/includes/debug/logger/monolog/LineFormatter.php b/includes/debug/logger/monolog/LineFormatter.php index 8537d71f99..d0748bc5a9 100644 --- a/includes/debug/logger/monolog/LineFormatter.php +++ b/includes/debug/logger/monolog/LineFormatter.php @@ -20,9 +20,11 @@ namespace MediaWiki\Logger\Monolog; +use Error; use Exception; use Monolog\Formatter\LineFormatter as MonologLineFormatter; use MWExceptionHandler; +use Throwable; /** * Formats incoming records into a one-line string. @@ -32,7 +34,7 @@ use MWExceptionHandler; * excluded from '%context%' output if the '%exception%' placeholder is * present. * - * Exceptions that are logged with this formatter will optional have their + * Throwables that are logged with this formatter will optional have their * stack traces appended. If that is done, MWExceptionHandler::redactedTrace() * will be used to redact the trace information. * @@ -75,7 +77,7 @@ class LineFormatter extends MonologLineFormatter { $e = $record['context']['exception']; unset( $record['context']['exception'] ); - if ( $e instanceof Exception ) { + if ( $e instanceof Throwable || $e instanceof Exception ) { $prettyException = $this->normalizeException( $e ); } elseif ( is_array( $e ) ) { $prettyException = $this->normalizeExceptionArray( $e ); @@ -93,9 +95,9 @@ class LineFormatter extends MonologLineFormatter { } /** - * Convert an Exception to a string. + * Convert a Throwable to a string. * - * @param Exception $e + * @param Exception|Throwable $e * @return string */ protected function normalizeException( $e ) { @@ -103,12 +105,12 @@ class LineFormatter extends MonologLineFormatter { } /** - * Convert an exception to an array of structured data. + * Convert a throwable to an array of structured data. * - * @param Exception $e + * @param Exception|Throwable $e * @return array */ - protected function exceptionAsArray( Exception $e ) { + protected function exceptionAsArray( $e ) { $out = [ 'class' => get_class( $e ), 'message' => $e->getMessage(), @@ -127,7 +129,7 @@ class LineFormatter extends MonologLineFormatter { } /** - * Convert an array of Exception data to a string. + * Convert an array of Throwable data to a string. * * @param array $e * @return string @@ -142,7 +144,8 @@ class LineFormatter extends MonologLineFormatter { ]; $e = array_merge( $defaults, $e ); - $str = "\n[Exception {$e['class']}] (" . + $which = is_a( $e['class'], Error::class, true ) ? 'Error' : 'Exception'; + $str = "\n[$which {$e['class']}] (" . "{$e['file']}:{$e['line']}) {$e['message']}"; if ( $this->includeStacktraces && $e['trace'] ) { @@ -154,7 +157,8 @@ class LineFormatter extends MonologLineFormatter { $prev = $e['previous']; while ( $prev ) { $prev = array_merge( $defaults, $prev ); - $str .= "\nCaused by: [Exception {$prev['class']}] (" . + $which = is_a( $prev['class'], Error::class, true ) ? 'Error' : 'Exception'; + $str .= "\nCaused by: [$which {$prev['class']}] (" . "{$prev['file']}:{$prev['line']}) {$prev['message']}"; if ( $this->includeStacktraces && $prev['trace'] ) { diff --git a/includes/diff/DifferenceEngine.php b/includes/diff/DifferenceEngine.php index 1ab1246ba0..f7658fc54d 100644 --- a/includes/diff/DifferenceEngine.php +++ b/includes/diff/DifferenceEngine.php @@ -1172,7 +1172,6 @@ class DifferenceEngine extends ContextSource { if ( $engine === 'wikidiff2' ) { $params[] = phpversion( 'wikidiff2' ); - $params[] = $this->getConfig()->get( 'WikiDiff2MovedParagraphDetectionCutoff' ); } if ( !$this->isSlotDiffRenderer ) { diff --git a/includes/diff/TextSlotDiffRenderer.php b/includes/diff/TextSlotDiffRenderer.php index bb965e1781..510465bd96 100644 --- a/includes/diff/TextSlotDiffRenderer.php +++ b/includes/diff/TextSlotDiffRenderer.php @@ -51,14 +51,6 @@ class TextSlotDiffRenderer extends SlotDiffRenderer { /** @var Language|null The language this content is in. */ private $language; - /** - * Number of paragraph moves the algorithm should attempt to detect. - * Only used with the wikidiff2 engine. - * @var int - * @see $wgWikiDiff2MovedParagraphDetectionCutoff - */ - private $wikiDiff2MovedParagraphDetectionCutoff = 0; - /** @var string One of the ENGINE_* constants. */ private $engine = self::ENGINE_PHP; @@ -86,15 +78,6 @@ class TextSlotDiffRenderer extends SlotDiffRenderer { $this->language = $language; } - /** - * @param int $cutoff - * @see $wgWikiDiff2MovedParagraphDetectionCutoff - */ - public function setWikiDiff2MovedParagraphDetectionCutoff( $cutoff ) { - Assert::parameterType( 'integer', $cutoff, '$cutoff' ); - $this->wikiDiff2MovedParagraphDetectionCutoff = $cutoff; - } - /** * Set which diff engine to use. * @param string $type One of the ENGINE_* constants. @@ -205,7 +188,7 @@ class TextSlotDiffRenderer extends SlotDiffRenderer { $oldText, $newText, 2, - $this->wikiDiff2MovedParagraphDetectionCutoff + 0 ); } else { // Don't pass the 4th parameter introduced in version 1.5.0 and removed in version 1.8.0 diff --git a/includes/externalstore/ExternalStoreDB.php b/includes/externalstore/ExternalStoreDB.php index 4164505822..cac16b6a90 100644 --- a/includes/externalstore/ExternalStoreDB.php +++ b/includes/externalstore/ExternalStoreDB.php @@ -106,7 +106,9 @@ class ExternalStoreDB extends ExternalStoreMedium { } public function isReadOnly( $location ) { - return ( $this->getLoadBalancer( $location )->getReadOnlyReason() !== false ); + $lb = $this->getLoadBalancer( $location ); + $domainId = $this->getDomainId( $lb->getServerInfo( $lb->getWriterIndex() ) ); + return ( $lb->getReadOnlyReason( $domainId ) !== false ); } /** diff --git a/includes/htmlform/HTMLForm.php b/includes/htmlform/HTMLForm.php index f5be83fc1a..504202845a 100644 --- a/includes/htmlform/HTMLForm.php +++ b/includes/htmlform/HTMLForm.php @@ -1062,10 +1062,10 @@ class HTMLForm extends ContextSource { } /** - * Set whether the HTML form can be collapsed. + * Enable collapsible mode, and set whether the form is collapsed by default. * * @since 1.34 - * @param bool $collapsedByDefault (optional) whether the form is collapsed by default + * @param bool $collapsedByDefault Whether the form is collapsed by default (optional). * @return HTMLForm $this for chaining calls */ public function setCollapsibleOptions( $collapsedByDefault = false ) { diff --git a/includes/installer/i18n/nb.json b/includes/installer/i18n/nb.json index 8dec5665cf..fc299fb91c 100644 --- a/includes/installer/i18n/nb.json +++ b/includes/installer/i18n/nb.json @@ -70,9 +70,9 @@ "config-wincache": "[https://www.iis.net/downloads/microsoft/wincache-extension WinCache] er installert", "config-no-cache-apcu": "Advarsel: Kunne ikke finne [https://www.php.net/apcu APCu] eller [https://www.iis.net/downloads/microsoft/wincache-extension WinCache].\nObjekthurtiglagring er ikke aktivert.", "config-mod-security": "'''Advarsel''': Din web-tjener har [https://modsecurity.org/ mod_security] påslått. Hvis denne er feilinnstilt, kan det gi problemer for MediaWiki eller annen programvare som tillater brukere å poste vilkårlig innhold.\nSjekk [https://modsecurity.org/documentation/ mod_security-dokumentasjonen] eller ta kontakt med din nettleverandør hvis du opplever tilfeldige feil.", - "config-diff3-bad": "GNU diff3 ikke funnet.", + "config-diff3-bad": "GNU diff3 ikke funnet. Du kan ignorere dette for øyeblikket, men du kan støte på redigeringskonflikter oftere.", "config-git": "Har funnet Git version control software: $1.", - "config-git-bad": "Git version control software ble ikke funnet.", + "config-git-bad": "Git version control software ble ikke funnet. Du kan ignorere dette for øyeblikket. Merk at Special:Version ikke vil vise hashverdien for commits.", "config-imagemagick": "Fant ImageMagick: $1.\nBildeminiatyrisering vil aktiveres om du aktiverer opplastinger.", "config-gd": "Fant innebygd GD-grafikkbibliotek.\nBildeminiatyrisering vil aktiveres om du aktiverer opplastinger.", "config-no-scaling": "Kunne ikke finne GD-bibliotek eller ImageMagick.\nBildeminiatyrisering vil være deaktivert.", @@ -87,11 +87,11 @@ "config-using-32bit": "Adversel: Systemet ditt ser ut til å være 32-bit-basert, mens dette er [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:32-bit not advised].", "config-db-type": "Databasetype:", "config-db-host": "Databasevert:", - "config-db-host-help": "Hvis databasen kjører på en annen tjenermaskin, skriv inn vertsnavnet eller IP-adressen her.\n\nHvis du bruker et webhotell, vil du kunne be om aktuelt vertsnavn fra din leverandør.\n\nHvis du installerer på en Windowstjener og bruker MySQL, kan det hende at «localhost» ikke brukes som tjenernavn. Hvis så er tilfelle, prøv «127.0.0.1» som lokal IP-adresse.\n\nHvis du bruker PostgreSQL, la dette feltet være blankt slik at koplingen gjøres via en \"Unix socket\".", + "config-db-host-help": "Hvis databasen kjører på en annen tjenermaskin, skriv inn vertsnavnet eller IP-adressen her.\n\nHvis du bruker et webhotell, vil du kunne be om aktuelt vertsnavn fra din leverandør.\n\nHvis du bruker MySQL, kan det hende at «localhost» ikke brukes som tjenernavn. Hvis så er tilfelle, prøv «127.0.0.1» som lokal IP-adresse.\n\nHvis du bruker PostgreSQL, la dette feltet være blankt slik at koplingen gjøres via en \"Unix socket\".", "config-db-host-oracle": "Database TNS:", "config-db-host-oracle-help": "Skriv inn et gyldig [http://download.oracle.com/docs/cd/B28359_01/network.111/b28317/tnsnames.htm Local Connect Name]; en tnsnames.ora-fil må være synlig for installasjonsprosessen.
Hvis du bruker klientbibliotek 10g eller nyere kan du også bruke navngivingsmetoden [http://download.oracle.com/docs/cd/E11882_01/network.112/e10836/naming.htm Easy Connect].", "config-db-wiki-settings": "Identifiser denne wikien", - "config-db-name": "Databasenavn:", + "config-db-name": "Databasenavn (ingen bindestreker):", "config-db-name-help": "Velg et navn som identifiserer wikien din.\nDet bør ikke inneholde mellomrom.\n\nHvis du bruker en delt nettvert vil verten din enten gi deg et spesifikt databasenavn å bruke, eller la deg opprette databaser via kontrollpanelet.", "config-db-name-oracle": "Databaseskjema:", "config-db-account-oracle-warn": "Det finnes tre mulig fremgangsmåter for å installere Oracle som database:\n\nHvis du ønsker å opprette en databasekonto som del av installasjonsprosessen, oppgi da en konto med SYSDBA-rolle som databasekonto for installasjonen og angi påkrevd autentiseringsinformasjon for web-aksesskontoen. Ellers kan du enten opprette web-aksesskontoen manuelt eller kun oppgi den kontoen (hvis den har påkrevede tillatelser for å opprette skjemeobjektene) , alternativt oppgi to ulike kontoer, en med opprettelsesprivilegier (create) og en begrenset konto for web-aksess.\n\nSkript for å opprette en konto med påkrevde privilegier finnes i \"maintenance/oracle/\"-folderen av denne installasjonen. Husk at det å bruke en begrenset konto vil blokkere all vedlikeholdsfunksjonalitet med standard konto.", @@ -104,11 +104,11 @@ "config-db-account-lock": "Bruk det samme brukernavnet og passordet under normal drift", "config-db-wiki-account": "Brukerkonto for normal drift", "config-db-wiki-help": "Skriv inn brukernavnet og passordet som vil bli brukt til å koble til databasen under normal wikidrift.\nHvis kontoen ikke finnes, og installasjonskontoen har tilstrekkelige privilegier, vil denne brukerkontoen bli opprettet med et minimum av privilegier, tilstrekkelig for å operere wikien.", - "config-db-prefix": "Databasetabellprefiks:", + "config-db-prefix": "Databasetabellprefiks (ingen bindestreker):", "config-db-prefix-help": "Hvis du trenger å dele en database mellom flere wikier, eller mellom MediaWiki og andre nettapplikasjoner, kan du velge å legge til et prefiks til alle tabellnavnene for å unngå konflikter.\nIkke bruk mellomrom.\n\nDette feltet er vanligvis tomt.", "config-mysql-old": "MySQL $1 eller senere kreves, du har $2.", "config-db-port": "Databaseport:", - "config-db-schema": "Skjema for MediaWiki", + "config-db-schema": "Skjema for MediaWiki (ingen bindestreker):", "config-db-schema-help": "Dette skjemaet er som regel riktig.\nBare endre det hvis du vet at du trenger det.", "config-pg-test-error": "Får ikke kontakt med database '''$1''': $2", "config-sqlite-dir": "SQLite datamappe:", @@ -138,7 +138,7 @@ "config-invalid-db-server-oracle": "Ugyldig database-TNS «$1».\nBruk enten \"TNS Name\" eller en \"Easy Connect\"-streng ([http://docs.oracle.com/cd/E11882_01/network.112/e10836/naming.htm Oracle Naming Methods])", "config-invalid-db-name": "Ugyldig databasenavn «$1».\nBruk bare ASCII-bokstaver (a-z, A-Z), tall (0-9), undestreker (_) og bindestreker (-).", "config-invalid-db-prefix": "Ugyldig databaseprefiks «$1».\nBruk bare ASCII-bokstaver (a-z, A-Z), tall (0-9), undestreker (_) og bindestreker (-).", - "config-connection-error": "$1.\n\nSjekk verten, brukernavnet og passordet nedenfor og prøv igjen.", + "config-connection-error": "$1.\n\nSjekk verten, brukernavnet og passordet nedenfor og prøv igjen. Hvis du brukte «localhost» som databasevert, prøv å bruke «127.0.0.1» i stedet (eller motsatt).", "config-invalid-schema": "Ugyldig skjema for MediaWiki «$1».\nBruk bare ASCII-bokstaver (a-z, A-Z), tall (0-9) og undestreker (_).", "config-db-sys-create-oracle": "Installasjonsprogrammet støtter kun bruk av en SYSDBA-konto for opprettelse av en ny konto.", "config-db-sys-user-exists-oracle": "Brukerkontoen «$1» finnes allerede. SYSDBA kan kun brukes for oppretting av nye kontoer!", @@ -154,6 +154,7 @@ "config-sqlite-cant-create-db": "Kunne ikke opprette databasefilen $1.", "config-sqlite-fts3-downgrade": "PHP mangler FTS3-støtte, nedgraderer tabeller", "config-can-upgrade": "Det er MediaWiki-tabeller i denne databasen.\nFor å oppgradere dem til MediaWiki $1, klikk '''Fortsett'''.", + "config-upgrade-error": "En feil oppsto under oppgradering av MediaWiki-tabeller i databasen din.\n\nFor mer informasjon, se på loggen ovenfor; klikk Fortsett for å prøve igjen.", "config-upgrade-done": "Oppgradering fullført.\n\nDu kan nå [$1 begynne å bruke wikien din].\n\nHvis du ønsker å regenerere LocalSettings.php-filen din, klikk på knappen nedenfor.\nDette er '''ikke anbefalt''' med mindre du har problemer med wikien din.", "config-upgrade-done-no-regenerate": "Oppgradering fullført.\n\nDu kan nå [$1 begynne å bruke wikien din].", "config-regenerate": "Regenerer LocalSettings.php →", @@ -309,6 +310,7 @@ "config-install-done": "Gratulrerer!\nDu har lykkes i å installere MediaWiki.\n\nInstallasjonsprogrammet har generert en LocalSettings.php-fil.\nDen inneholder alle dine konfigureringer.\n\nDu må laste den ned og legge den på hovedfolderen for din wiki-installasjon (der index.php ligger). Nedlastingen skulle ha startet automatisk.\n\nHvis ingen nedlasting ble tilbudt, eller du avbrøt den, kan du få den i gang ved å klikke på lenken under:\n\n$3\n\nOBS: Hvis du ikke gjør dette nå, vil den genererte konfigurasjonsfilen ikke være tilgjengelig for deg senere.\n\nNår dette er gjort, kan du [$2 gå inn i wikien].", "config-install-done-path": "Gratulerer!\nDu har installert MediaWiki.\n\nInstallereren har generert en LocalSettings.php-fil.\nDen inneholder all konfigurasjonen for wikien.\n\nDu må laste den ned og legge den i $4. Nedlastingen skal ha startet automatisk.\n\nOm nedlastingen ikke ble startet, eller om du avbrøt den, kan du starte på nytt ved å klikke lenken nedenfor:\n\n$3\n\nMerk: Om du ikke gjør dette nå vil den genererte konfigurasjonen ikke være tilgjengelig senere.\n\nNår dette er gjort kan du [$2 gå til wikien din].", "config-install-success": "MediaWiki har blitt installert. Du kan nå\nbesøke <$1$2> for å se wikien din.\nOm du har spørsmål, sjekk de ofte stilte spørsmålene:\n eller bruk et av\nsupportforumene som lenkes til fra den siden.", + "config-install-db-success": "Databasen ble satt opp", "config-download-localsettings": "Last ned LocalSettings.php", "config-help": "hjelp", "config-help-tooltip": "klikk for å utvide", diff --git a/includes/installer/i18n/vi.json b/includes/installer/i18n/vi.json index 890f9966a6..cedcee1489 100644 --- a/includes/installer/i18n/vi.json +++ b/includes/installer/i18n/vi.json @@ -69,9 +69,9 @@ "config-wincache": "[https://www.iis.net/downloads/microsoft/wincache-extension WinCache] đã được cài đặt", "config-no-cache-apcu": "Cảnh báo: Không tìm thấy [https://www.php.net/apcu APCu] hoặc [https://www.iis.net/downloads/microsoft/wincache-extension WinCache].\nVùng nhớ đệm đối tượng không được kích hoạt.", "config-mod-security": "Cảnh báo: [https://modsecurity.org/ mod_security]/mod_security2 đã được kích hoạt trên máy chủ Web của bạn. Nhiều cấu hình phổ biến của phần mềm này sẽ gây vấn đề cho MediaWiki và những phần mềm khác cho phép người dùng đăng các nội dung tùy tiện.\nNếu có thể, bạn nên vô hiệu nó. Còn không, tra cứu [https://modsecurity.org/documentation/ tài liệu mod_security] hoặc liên hệ với nhà cung cấp hỗ trợ cho máy chủ nếu bạn gặp những lỗi ngẫu nhiên nào đó.", - "config-diff3-bad": "Không tìm thấy GNU diff3.", + "config-diff3-bad": "Không tìm thấy tiện ích so sánh văn bản GNU diff3. Bạn có thể bỏ qua vấn đề này bây giờ, nhưng các mâu thuẫn sửa đổi có thể xảy ra thường xuyên hơn.", "config-git": "Đã tìm thấy phần mềm điều khiển phiên bản Git: $1.", - "config-git-bad": "Không tìm thấy phần mềm điều khiển phiên bản Git.", + "config-git-bad": "Không tìm thấy phần mềm điều khiển phiên bản Git. Bạn có thể bỏ qua vấn đề này bây giờ. Lưu ý rằng Đặc biệt:Phiên bản sẽ không hiển thị các số băm chuyển giao.", "config-imagemagick": "Đã tìm thấy ImageMagick: $1.\nChức năng thu nhỏ hình ảnh sẽ được kích hoạt nếu bạn cho phép tải lên.", "config-gd": "Đã tìm thấy thư viện đồ họa GD đi kèm.\nChức năng thu nhỏ hình ảnh sẽ được kích hoạt nếu bạn cho phép tải lên.", "config-no-scaling": "Không thể tìm thấy thư viện GD hoặc ImageMagic. Chức năng thu nhỏ hình ảnh sẽ bị vô hiệu.", @@ -86,11 +86,11 @@ "config-using-32bit": "Cảnh báo: Máy của bạn hình như sử dụng các số nguyên 32 bit. Chế độ này [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:32-bit không được khuyên khích].", "config-db-type": "Kiểu cơ sở dữ liệu:", "config-db-host": "Máy chủ của cơ sở dữ liệu:", - "config-db-host-help": "Nếu máy chủ cơ sở dữ liệu của bạn nằm trên máy chủ khác, hãy điền tên hoặc địa chỉ IP của máy chủ vào đây.\n\nNếu bạn đang dùng Web hosting chia sẻ, tài liệu của nhà cung cấp hosting của bạn sẽ có tên chính xác của máy chủ.\n\nNếu bạn đang cài đặt trên một máy chủ Windows và sử dụng MySQL, việc dùng “localhost” có thể không hợp với tên máy chủ. Nếu bị như vậy, hãy thử “127.0.0.1” tức địa chỉ IP địa phương.\n\nNếu bạn đang dùng PostgreSQL, hãy để trống mục này để kết nối với một ổ cắm Unix.", + "config-db-host-help": "Nếu máy chủ cơ sở dữ liệu của bạn nằm trên máy chủ khác, hãy điền tên hoặc địa chỉ IP của máy chủ vào đây.\n\nNếu bạn đang dùng Web hosting chia sẻ, tài liệu của nhà cung cấp hosting của bạn sẽ có tên chính xác của máy chủ.\n\nNếu bạn đang sử dụng MySQL, việc dùng “localhost” có thể không hợp với tên máy chủ. Nếu bị như vậy, hãy thử “127.0.0.1” tức địa chỉ IP địa phương.\n\nNếu bạn đang dùng PostgreSQL, hãy để trống mục này để kết nối với một ổ cắm Unix.", "config-db-host-oracle": "TNS cơ sở dữ liệu:", "config-db-host-oracle-help": "Nhập một [http://download.oracle.com/docs/cd/B28359_01/network.111/b28317/tnsnames.htm Tên Kết nối Địa phương] hợp lệ; một tập tin tnsnames.ora phải được hiển thị đối với cài đặt này.
Nếu bạn đang sử dụng các thư viện trình khách 10g trở lên, bạn cũng có thể sử dụng phương pháp đặt tên [http://download.oracle.com/docs/cd/E11882_01/network.112/e10836/naming.htm Easy Connect].", "config-db-wiki-settings": "Dữ liệu để nhận ra wiki này", - "config-db-name": "Tên cơ sở dữ liệu:", + "config-db-name": "Tên cơ sở dữ liệu (không có dấu gạch ngang):", "config-db-name-help": "Chọn một tên để chỉ thị wiki của bạn.\nKhông nên đưa dấu cách vào tên này.\n\nNếu bạn đang sử dụng Web hosting chia sẻ, nhà cung cấp hosting của bạn hoặc là sẽ cung cấp cho bạn một tên cơ sở dữ liệu cụ thể để sử dụng hoặc là sẽ cho phép bạn tạo ra các cơ sở dữ liệu thông qua một bảng điều khiển.", "config-db-name-oracle": "Giản đồ cơ sở dữ liệu:", "config-db-account-oracle-warn": "Có ba trường hợp được hỗ trợ để cài đặt Oracle làm cơ sở dữ liệu phía sau:\n\nNếu bạn muốn tạo tài khoản cơ sở dữ liệu trong quá trình cài đặt, xin vui lòng cung cấp một tài khoản với vai trò SYSDBA là tài khoản cơ sở dữ liệu để cài đặt và xác định định danh mong muốn cho tài khoản truy cập Web, nếu không bạn có thể tạo tài khoản truy cập Web thủ công và chỉ cung cấp tài khoản đó (nếu nó có các quyền yêu cầu để tạo ra các đối tượng giản đồ) hoặc cung cấp hai tài khoản riêng, một có quyền tạo ra và một bị hạn chế có quyền truy cập Web.\n\nMột kịch bản để tạo một tài khoản với quyền yêu cầu có sẵn trong thư mục cài đặt “maintenance/oracle/”. Hãy nhớ rằng việc sử dụng một tài khoản bị hạn chế sẽ vô hiệu hóa tất cả các khả năng bảo trì với tài khoản mặc định.", @@ -103,11 +103,11 @@ "config-db-account-lock": "Sử dụng cùng tên người dùng và mật khẩu trong quá trình hoạt động bình thường", "config-db-wiki-account": "Tài khoản người dùng để hoạt động bình thường", "config-db-wiki-help": "Nhập tên người dùng và mật khẩu sẽ được sử dụng để kết nối với cơ sở dữ liệu trong quá trình hoạt động bình thường của wiki.\nNếu tài khoản không tồn tại và tài khoản cài đặt có đủ quyền hạn, tài khoản người dùng này sẽ được tạo ra với những đặc quyền tối thiểu cần thiết để vận hành wiki.", - "config-db-prefix": "Tiền tố bảng cơ sở dữ liệu:", + "config-db-prefix": "Tiền tố bảng cơ sở dữ liệu (không có dấu gạch ngang):", "config-db-prefix-help": "Nếu bạn cần phải chia sẻ một cơ sở dữ liệu chung với nhiều wiki, hay giữa MediaWiki và một ứng dụng Web, bạn có thể quyết định thêm một tiền tố cho tất cả các tên bảng để tránh xung đột.\nKhông sử dụng dấu cách.\n\nTrường này thường được bỏ trống.", "config-mysql-old": "Cần MySQL $1 trở lên; bạn có $2.", "config-db-port": "Cổng cơ sở dữ liệu:", - "config-db-schema": "Giản đồ cho MediaWiki:", + "config-db-schema": "Giản đồ cho MediaWiki (không có dấu gạch ngang):", "config-db-schema-help": "Giản đồ này thường làm việc tốt.\nChỉ thay đổi nó nếu bạn biết cần phải làm như vậy.", "config-pg-test-error": "Không thể kết nối với cơ sở dữ liệu '''$1''': $2", "config-sqlite-dir": "Thư mục dữ liệu SQLite:", @@ -134,7 +134,7 @@ "config-invalid-db-server-oracle": "Cơ sở dữ liệu TNS không hợp lệ “$1”.\nHoặc sử dụng “TNS Name” hoặc một chuỗi “Easy Connect” ([http://docs.oracle.com/cd/E11882_01/network.112/e10836/naming.htm Phương pháp đặt tên Oracle]).", "config-invalid-db-name": "Tên cơ sở dữ liệu không hợp lệ “$1”.\nChỉ sử dụng các chữ cái ASCII (a–z, A–Z), số (0–9), dấu gạch dưới (_) và dấu gạch ngang (-).", "config-invalid-db-prefix": "Tiền tố cơ sở dữ liệu không hợp lệ “$1”.\nChỉ sử dụng các chữ cái ASCII (a–z, A–Z), số (0–9), dấu gạch dưới (_) và dấu gạch ngang (-).", - "config-connection-error": "$1.\n\nKiểm tra máy chủ, tên người dùng, và mật khẩu và thử lại lần nữa.", + "config-connection-error": "$1.\n\nKiểm tra máy chủ, tên người dùng, và mật khẩu và thử lại lần nữa. Nếu sử dụng “localhost” làm máy chủ cơ sở dữ liệu, hãy thử sử dụng “127.0.0.1” thay thế (hoặc ngược lại).", "config-invalid-schema": "Giản đồ “$1” không hợp lệ cho MediaWiki.\nHãy chỉ sử dụng các chữ cái ASCII (a–z, A–Z), chữ số (0–9), và dấu gạch dưới (_).", "config-db-sys-create-oracle": "Trình cài đặt chỉ hỗ trợ sử dụng một tài khoản SYSDBA để tạo một tài khoản mới.", "config-db-sys-user-exists-oracle": "Tài khoản người dùng “$1” đã tồn tại. SYSDBA chỉ có thể được sử dụng để tạo một tài khoản mới!", @@ -150,6 +150,7 @@ "config-sqlite-cant-create-db": "Không thể tạo ra tập tin cơ sở dữ liệu $1.", "config-sqlite-fts3-downgrade": "PHP thiếu sự hỗ trợ cho FTS3; đang giáng cấp các bảng", "config-can-upgrade": "Cơ sở dữ liệu này có bảng MediaWiki.\nĐể nâng cấp các bảng đến MediaWiki $1, bấm Tiếp tục.", + "config-upgrade-error": "Xuất hiện lỗi khi nâng cấp các bảng MediaWiki trong cơ sở dữ liệu của bạn.\n\nĐể tìm hiểu thêm, xem lại nhật trình bên trên. Để thử lại, bấm Tiếp tục.", "config-upgrade-done": "Nâng cấp đã hoàn thành.\n\nBạn có thể [$1 bắt đầu sử dụng wiki của bạn] ngay bây giờ.\n\nNếu bạn muốn tạo lại tập tin LocalSettings.php của bạn, bấm nút bên dưới.\nĐiều này không được khuyến khích, trừ khi bạn đang gặp vấn đề với wiki của bạn.", "config-upgrade-done-no-regenerate": "Nâng cấp đã hoàn thành.\n\nBạn có thể [$1 bắt đầu sử dụng wiki của bạn] ngay bây giờ.", "config-regenerate": "Tạo lại LocalSettings.php →", @@ -274,7 +275,7 @@ "config-install-schema": "Đang tạo giản đồ", "config-install-pg-schema-not-exist": "Lược đồ PostgreSQL không tồn tại.", "config-install-pg-schema-failed": "Thất bại khi tạo các bảng.\nHãy chắc chắn rằng người dùng “$1” có thể ghi vào giản đồ “$2”.", - "config-install-pg-commit": "Đang gửi các thay đổi", + "config-install-pg-commit": "Đang chuyển giao các thay đổi", "config-install-pg-plpgsql": "Tìm ngôn ngữ PL/pgSQL", "config-pg-no-plpgsql": "Bạn cần phải cài đặt ngôn ngữ PL/pgSQL vào cơ sở dữ liệu $1", "config-pg-no-create-privs": "Tài khoản bạn xác định để cài đặt không đủ quyền hạn để tạo một tài khoản.", @@ -305,6 +306,7 @@ "config-install-done": "Xin chúc mừng!\nBạn đã cài đặt MediaWiki.\n\nBộ cài đặt đã tạo ra một tập tin LocalSettings.php.\nTập tin này chứa tất cả các cấu hình của bạn.\n\nBạn sẽ cần phải tải nó về và đặt nó trong thư mục cài đặt wiki của bạn (cùng thư mục với index.php). Việc tải về có lẽ sẽ được khởi động tự động.\n\nNếu bản tải về không được cung cấp, hoặc nếu bạn hủy bỏ nó, bạn có thể khởi động lại tải về bằng cách nhấn vào liên kết dưới đây:\n\n$3\n\nLưu ý: Nếu bạn không làm điều này ngay bây giờ, điều này sẽ tạo ra tập tin cấu hình sẽ không có giá trị cho bạn sau này nếu bạn thoát khỏi trình cài đặt mà không tải nó về.\n\nKhi đã việc tải về đã hoàn thành, bạn có thể [$2 truy cập trang wiki của bạn].", "config-install-done-path": "Xin chúc mừng!\nBạn đã cài đặt MediaWiki.\n\nBộ cài đặt đã tạo ra một tập tin LocalSettings.php.\nTập tin này chứa tất cả các cấu hình của bạn.\n\nBạn sẽ cần phải tải nó về và đặt nó tại $4. Việc tải về có lẽ sẽ được khởi động tự động.\n\nNếu bản tải về không được cung cấp, hoặc nếu bạn hủy bỏ nó, bạn có thể khởi động lại tải về bằng cách nhấn vào liên kết dưới đây:\n\n$3\n\nLưu ý: Nếu bạn không làm điều này ngay bây giờ, điều này sẽ tạo ra tập tin cấu hình sẽ không có giá trị cho bạn sau này nếu bạn thoát khỏi trình cài đặt mà không tải nó về.\n\nKhi đã việc tải về đã hoàn thành, bạn có thể [$2 truy cập trang wiki của bạn].", "config-install-success": "MediaWiki đã được cài đặt thành công. Bây giờ bạn có thể mở <$1$2> để xem wiki của bạn.\nNếu bạn có thắc mắc, hãy đọc các câu thường hỏi:\n hoặc ghé vào một diễn đàn hỗ trợ được liệt kê tại trang đó.", + "config-install-db-success": "Cơ sở dữ liệu được thiết lập thành công", "config-download-localsettings": "Tải về LocalSettings.php", "config-help": "Trợ giúp", "config-help-tooltip": "nhấn chuột để mở rộng", diff --git a/includes/libs/objectcache/APCBagOStuff.php b/includes/libs/objectcache/APCBagOStuff.php index 9a5a433c66..5a36c651e7 100644 --- a/includes/libs/objectcache/APCBagOStuff.php +++ b/includes/libs/objectcache/APCBagOStuff.php @@ -34,18 +34,27 @@ * @ingroup Cache */ class APCBagOStuff extends BagOStuff { + /** @var bool Whether to trust the APC implementation to serialization */ + private $nativeSerialize; + /** * @var string String to append to each APC key. This may be changed * whenever the handling of values is changed, to prevent existing code * from encountering older values which it cannot handle. */ - const KEY_SUFFIX = ':3'; + const KEY_SUFFIX = ':4'; + + public function __construct( array $params = [] ) { + parent::__construct( $params ); + // The extension serializer is still buggy, unlike "php" and "igbinary" + $this->nativeSerialize = ( ini_get( 'apc.serializer' ) !== 'default' ); + } protected function doGet( $key, $flags = 0, &$casToken = null ) { $casToken = null; $blob = apc_fetch( $key . self::KEY_SUFFIX ); - $value = $this->unserialize( $blob ); + $value = $this->nativeSerialize ? $blob : $this->unserialize( $blob ); if ( $value !== false ) { $casToken = $blob; // don't bother hashing this } @@ -56,7 +65,7 @@ class APCBagOStuff extends BagOStuff { public function set( $key, $value, $exptime = 0, $flags = 0 ) { apc_store( $key . self::KEY_SUFFIX, - $this->serialize( $value ), + $this->nativeSerialize ? $value : $this->serialize( $value ), $exptime ); @@ -66,7 +75,7 @@ class APCBagOStuff extends BagOStuff { public function add( $key, $value, $exptime = 0, $flags = 0 ) { return apc_add( $key . self::KEY_SUFFIX, - $this->serialize( $value ), + $this->nativeSerialize ? $value : $this->serialize( $value ), $exptime ); } diff --git a/includes/libs/objectcache/APCUBagOStuff.php b/includes/libs/objectcache/APCUBagOStuff.php index eba0af50f8..0d9822a147 100644 --- a/includes/libs/objectcache/APCUBagOStuff.php +++ b/includes/libs/objectcache/APCUBagOStuff.php @@ -46,7 +46,7 @@ class APCUBagOStuff extends BagOStuff { public function __construct( array $params = [] ) { parent::__construct( $params ); - // The extension serialize is still buggy, unlike "php" and "igbinary" + // The extension serializer is still buggy, unlike "php" and "igbinary" $this->nativeSerialize = ( ini_get( 'apc.serializer' ) !== 'default' ); } diff --git a/includes/objectcache/ObjectCache.php b/includes/objectcache/ObjectCache.php index bc87c70b0f..c0adb51860 100644 --- a/includes/objectcache/ObjectCache.php +++ b/includes/objectcache/ObjectCache.php @@ -400,10 +400,10 @@ class ObjectCache { * @return int|string Index to cache in $wgObjectCaches */ public static function detectLocalServerCache() { - if ( function_exists( 'apc_fetch' ) ) { - return 'apc'; - } elseif ( function_exists( 'apcu_fetch' ) ) { + if ( function_exists( 'apcu_fetch' ) ) { return 'apcu'; + } elseif ( function_exists( 'apc_fetch' ) ) { + return 'apc'; } elseif ( function_exists( 'wincache_ucache_get' ) ) { return 'wincache'; } diff --git a/includes/registration/ExtensionProcessor.php b/includes/registration/ExtensionProcessor.php index b474ddc766..faaaece456 100644 --- a/includes/registration/ExtensionProcessor.php +++ b/includes/registration/ExtensionProcessor.php @@ -304,8 +304,76 @@ class ExtensionProcessor implements Processor { ]; } - public function getRequirements( array $info ) { - return $info['requires'] ?? []; + public function getRequirements( array $info, $includeDev ) { + // Quick shortcuts + if ( !$includeDev || !isset( $info['dev-requires'] ) ) { + return $info['requires'] ?? []; + } + + if ( !isset( $info['requires'] ) ) { + return $info['dev-requires'] ?? []; + } + + // OK, we actually have to merge everything + $merged = []; + + // Helper that combines version requirements by + // picking the non-null if one is, or combines + // the two. Note that it is not possible for + // both inputs to be null. + $pick = function ( $a, $b ) { + if ( $a === null ) { + return $b; + } elseif ( $b === null ) { + return $a; + } else { + return "$a $b"; + } + }; + + $req = $info['requires']; + $dev = $info['dev-requires']; + if ( isset( $req['MediaWiki'] ) || isset( $dev['MediaWiki'] ) ) { + $merged['MediaWiki'] = $pick( + $req['MediaWiki'] ?? null, + $dev['MediaWiki'] ?? null + ); + } + + $platform = array_merge( + array_keys( $req['platform'] ?? [] ), + array_keys( $dev['platform'] ?? [] ) + ); + if ( $platform ) { + foreach ( $platform as $pkey ) { + if ( $pkey === 'php' ) { + $value = $pick( + $req['platform']['php'] ?? null, + $dev['platform']['php'] ?? null + ); + } else { + // Prefer dev value, but these should be constant + // anyways (ext-* and ability-*) + $value = $dev['platform'][$pkey] ?? $req['platform'][$pkey]; + } + $merged['platform'][$pkey] = $value; + } + } + + foreach ( [ 'extensions', 'skins' ] as $thing ) { + $things = array_merge( + array_keys( $req[$thing] ?? [] ), + array_keys( $dev[$thing] ?? [] ) + ); + foreach ( $things as $name ) { + $merged[$thing][$name] = $pick( + $req[$thing][$name] ?? null, + $dev[$thing][$name] ?? null + ); + } + } + + return $merged; } protected function extractHooks( array $info ) { diff --git a/includes/registration/ExtensionRegistry.php b/includes/registration/ExtensionRegistry.php index fb897314f3..768b488323 100644 --- a/includes/registration/ExtensionRegistry.php +++ b/includes/registration/ExtensionRegistry.php @@ -86,6 +86,13 @@ class ExtensionRegistry { */ protected $testAttributes = []; + /** + * Whether to check dev-requires + * + * @var bool + */ + protected $checkDev = false; + /** * @var ExtensionRegistry */ @@ -103,6 +110,14 @@ class ExtensionRegistry { return self::$instance; } + /** + * @since 1.34 + * @param bool $check + */ + public function setCheckDevRequires( $check ) { + $this->checkDev = $check; + } + /** * @param string $path Absolute path to the JSON file */ @@ -148,6 +163,7 @@ class ExtensionRegistry { 'registration' => self::CACHE_VERSION, 'mediawiki' => $wgVersion, 'abilities' => $this->getAbilities(), + 'checkDev' => $this->checkDev, ]; // We use a try/catch because we don't want to fail here @@ -295,7 +311,7 @@ class ExtensionRegistry { } // get all requirements/dependencies for this extension - $requires = $processor->getRequirements( $info ); + $requires = $processor->getRequirements( $info, $this->checkDev ); // validate the information needed and add the requirements if ( is_array( $requires ) && $requires && isset( $info['name'] ) ) { diff --git a/includes/registration/Processor.php b/includes/registration/Processor.php index 68ba4130a0..51cca365c8 100644 --- a/includes/registration/Processor.php +++ b/includes/registration/Processor.php @@ -36,10 +36,11 @@ interface Processor { * * @since 1.26 * @param array $info + * @param bool $includeDev * @return array Where keys are the name to have a constraint on, * like 'MediaWiki'. Values are a constraint string like "1.26.1". */ - public function getRequirements( array $info ); + public function getRequirements( array $info, $includeDev ); /** * Get the path for additional autoloaders, e.g. the one of Composer. diff --git a/includes/resourceloader/MessageBlobStore.php b/includes/resourceloader/MessageBlobStore.php index 635e4337d8..74d0616d1d 100644 --- a/includes/resourceloader/MessageBlobStore.php +++ b/includes/resourceloader/MessageBlobStore.php @@ -96,7 +96,7 @@ class MessageBlobStore implements LoggerAwareInterface { $cache = $this->wanCache; $checkKeys = [ // Global check key, see clear() - $cache->makeKey( __CLASS__ ) + $cache->makeGlobalKey( __CLASS__ ) ]; $cacheKeys = []; foreach ( $modules as $name => $module ) { @@ -173,9 +173,14 @@ class MessageBlobStore implements LoggerAwareInterface { */ public function clear() { $cache = $this->wanCache; - // Disable holdoff because this invalidates all modules and also not needed since - // LocalisationCache is stored outside the database and doesn't have lag. - $cache->touchCheckKey( $cache->makeKey( __CLASS__ ), $cache::HOLDOFF_NONE ); + // Disable hold-off because: + // - LocalisationCache is populated by messages on-disk and don't have DB lag, + // thus there is no need for hold off. We only clear it after new localisation + // updates are known to be deployed to all servers. + // - This global check key invalidates message blobs for all modules for all wikis + // in cache contexts (e.g. languages, skins). Setting a hold-off on this key could + // cause a cache stampede since no values would be stored for several seconds. + $cache->touchCheckKey( $cache->makeGlobalKey( __CLASS__ ), $cache::HOLDOFF_NONE ); } /** diff --git a/includes/skins/Skin.php b/includes/skins/Skin.php index d355db6672..f45596f3fd 100644 --- a/includes/skins/Skin.php +++ b/includes/skins/Skin.php @@ -216,6 +216,7 @@ abstract class Skin extends ContextSource { // Preload jquery.tablesorter for mediawiki.page.ready if ( strpos( $out->getHTML(), 'sortable' ) !== false ) { $modules['content'][] = 'jquery.tablesorter'; + $modules['styles']['content'][] = 'jquery.tablesorter.styles'; } // Preload jquery.makeCollapsible for mediawiki.page.ready diff --git a/includes/specials/SpecialSearch.php b/includes/specials/SpecialSearch.php index 4adc2475e1..ed83aafd53 100644 --- a/includes/specials/SpecialSearch.php +++ b/includes/specials/SpecialSearch.php @@ -290,6 +290,7 @@ class SpecialSearch extends SpecialPage { } $out = $this->getOutput(); + $widgetOptions = $this->getConfig()->get( 'SpecialSearchFormOptions' ); $formWidget = new MediaWiki\Widget\Search\SearchFormWidget( $this, $this->searchConfig, @@ -308,7 +309,7 @@ class SpecialSearch extends SpecialPage { // only do the form render here for the empty $term case. Rendering // the form when a search is provided is repeated below. $out->addHTML( $formWidget->render( - $this->profile, $term, 0, 0, $this->offset, $this->isPowerSearch() + $this->profile, $term, 0, 0, $this->offset, $this->isPowerSearch(), $widgetOptions ) ); return; } @@ -365,7 +366,7 @@ class SpecialSearch extends SpecialPage { // start rendering the page $out->enableOOUI(); $out->addHTML( $formWidget->render( - $this->profile, $term, $num, $totalRes, $this->offset, $this->isPowerSearch() + $this->profile, $term, $num, $totalRes, $this->offset, $this->isPowerSearch(), $widgetOptions ) ); // did you mean... suggestions diff --git a/includes/specials/pagers/ImageListPager.php b/includes/specials/pagers/ImageListPager.php index ea55568fd2..8f31f3e630 100644 --- a/includes/specials/pagers/ImageListPager.php +++ b/includes/specials/pagers/ImageListPager.php @@ -513,7 +513,7 @@ class ImageListPager extends TablePager { return $this->getLanguage()->formatNum( intval( $value ) + 1 ); case 'top': // Messages: listfiles-latestversion-yes, listfiles-latestversion-no - return $this->msg( 'listfiles-latestversion-' . $value ); + return $this->msg( 'listfiles-latestversion-' . $value )->escaped(); default: throw new MWException( "Unknown field '$field'" ); } diff --git a/includes/widget/SearchInputWidget.php b/includes/widget/SearchInputWidget.php index d4ffed2c8c..2f0c23deeb 100644 --- a/includes/widget/SearchInputWidget.php +++ b/includes/widget/SearchInputWidget.php @@ -14,6 +14,7 @@ class SearchInputWidget extends TitleInputWidget { protected $validateTitle = false; protected $highlightFirst = false; protected $dataLocation = 'header'; + protected $showDescriptions = false; /** * @param array $config Configuration options @@ -41,6 +42,10 @@ class SearchInputWidget extends TitleInputWidget { $this->dataLocation = $config['dataLocation']; } + if ( !empty( $config['showDescriptions'] ) ) { + $this->showDescriptions = true; + } + // Initialization $this->addClasses( [ 'mw-widget-searchInputWidget' ] ); } @@ -58,6 +63,9 @@ class SearchInputWidget extends TitleInputWidget { if ( $this->dataLocation ) { $config['dataLocation'] = $this->dataLocation; } + if ( $this->showDescriptions ) { + $config['showDescriptions'] = true; + } $config['$overlay'] = true; return parent::getConfig( $config ); } diff --git a/includes/widget/search/SearchFormWidget.php b/includes/widget/search/SearchFormWidget.php index 7c28b5efe7..62ee9cb6f1 100644 --- a/includes/widget/search/SearchFormWidget.php +++ b/includes/widget/search/SearchFormWidget.php @@ -40,6 +40,7 @@ class SearchFormWidget { * @param int $totalResults The total estimated results found * @param int $offset Current offset in search results * @param bool $isPowerSearch Is the 'advanced' section open? + * @param array $options Widget options * @return string HTML */ public function render( @@ -48,7 +49,8 @@ class SearchFormWidget { $numResults, $totalResults, $offset, - $isPowerSearch + $isPowerSearch, + array $options = [] ) { $user = $this->specialSearch->getUser(); @@ -63,7 +65,7 @@ class SearchFormWidget { ] ) . '
' . - $this->shortDialogHtml( $profile, $term, $numResults, $totalResults, $offset ) . + $this->shortDialogHtml( $profile, $term, $numResults, $totalResults, $offset, $options ) . '
' . "
" . "
" . @@ -81,12 +83,20 @@ class SearchFormWidget { * @param int $numResults The number of results shown * @param int $totalResults The total estimated results found * @param int $offset Current offset in search results + * @param array $options Widget options * @return string HTML */ - protected function shortDialogHtml( $profile, $term, $numResults, $totalResults, $offset ) { + protected function shortDialogHtml( + $profile, + $term, + $numResults, + $totalResults, + $offset, + array $options = [] + ) { $html = ''; - $searchWidget = new SearchInputWidget( [ + $searchWidget = new SearchInputWidget( $options + [ 'id' => 'searchText', 'name' => 'search', 'autofocus' => trim( $term ) === '', diff --git a/languages/i18n/ban.json b/languages/i18n/ban.json index 9679cb20e7..a8cf5bd48b 100644 --- a/languages/i18n/ban.json +++ b/languages/i18n/ban.json @@ -218,7 +218,7 @@ "confirmable-no": "Nénten", "site-atom-feed": "$1 \"atom feed\"", "page-atom-feed": "$1 \"atom feed\"", - "red-link-title": "$1 (laman tan wénten)", + "red-link-title": "$1 (laman ten wénten)", "nstab-main": "Kaca", "nstab-user": "sane nganggo", "nstab-special": "lembar sane kautamayang", diff --git a/languages/i18n/be-tarask.json b/languages/i18n/be-tarask.json index e634a37976..8bcf065d1c 100644 --- a/languages/i18n/be-tarask.json +++ b/languages/i18n/be-tarask.json @@ -2180,7 +2180,7 @@ "noemailtitle": "Адрас электроннай пошты адсутнічае", "noemailtext": "Гэты ўдзельнік не пазначыў слушны адрас электроннай пошты.", "nowikiemailtext": "Гэты ўдзельнік не дазволіў атрымліваць лісты па электроннай пошце ад іншых удзельнікаў.", - "emailnotarget": "Неіснуючае ці няслушнае імя атрымальніка.", + "emailnotarget": "Няіснае ці няслушнае імя атрымальніка.", "emailtarget": "Увядзіце імя атрымальніка", "emailusername": "Імя ўдзельніка:", "emailusernamesubmit": "Даслаць", diff --git a/languages/i18n/bjn.json b/languages/i18n/bjn.json index 7fd8b98ff4..52d5c0645a 100644 --- a/languages/i18n/bjn.json +++ b/languages/i18n/bjn.json @@ -17,29 +17,29 @@ "tog-hideminor": "Sungkupakan babakan sapalih dalam paubahan pahanyarnya", "tog-hidepatrolled": "Sungkupakan babakan taawasi dalam paubahan pahanyarnya", "tog-newpageshidepatrolled": "Sungkupakan tungkaran nang diitihi matan daptar tungkaran hanyar", - "tog-hidecategorization": "Patak tumbungnya tungkaran", + "tog-hidecategorization": "Tukupakan pamilahan halaman", "tog-extendwatchlist": "Singkaiakan daptar itihan hagan manampaiakan samunyaan paubahan, kada nang hanyar haja.", - "tog-usenewrc": "Garumbungakan babakan di tampilan paubahan pahanyarnya wan daptar itihan badasar tungkaran", + "tog-usenewrc": "Galambangakan babakan di tampilan paubahan pahanyarnya wan daptar itihan badasar halaman", "tog-numberheadings": "Bari numur judul utumatis", - "tog-editondblclick": "Babak tungkaran wan dua kali klik", + "tog-editondblclick": "Babak halaman wan dua kali kalik", "tog-editsectiononrightclick": "Kawa'akan mambabak sub-hagian lawan mang-klik kanan pada judul hagian", - "tog-watchcreations": "Tambahi tungkaran nang ulun ulah ka daptar itihan", - "tog-watchdefault": "Tambahi tungkaran nang ulun babak ka daptar itihan ulun", - "tog-watchmoves": "Tambahi tungkaran nang ulun pindah ka daptar itihan ulun", - "tog-watchdeletion": "Tambahi tungkaran nang ulun hapus ka daptar itihan ulun", + "tog-watchcreations": "Tambahi halaman nang ulun ulah ka daptar itihan", + "tog-watchdefault": "Tambahi halaman nang ulun babak ka daptar itihan ulun", + "tog-watchmoves": "Tambahi halaman nang ulun pindah ka daptar itihan ulun", + "tog-watchdeletion": "Tambahi halaman nang ulun hapus ka daptar itihan ulun", "tog-watchuploads": "Tambahi barakas hanyar nang ulun unggah ka daptar itihan ulun", - "tog-watchrollback": "Tambahi tungkaran nang suah ulun bulikakan ka dalam daptar itihan ulun", + "tog-watchrollback": "Tambahi halaman nang suah ulun bulikakan ka dalam daptar itihan ulun", "tog-minordefault": "Tandai samunyaan babakan sawagai babakan sapalih sacara baku", "tog-previewontop": "Tampaiakan titilikan sabalum kutak babak", "tog-previewonfirst": "Tampaiakan titilikan pada babakan panambaian", - "tog-enotifwatchlistpages": "Kirimi ulun sur-él amun sabuting tungkaran dalam daptar itihan ulun baubah", + "tog-enotifwatchlistpages": "Kirimi ulun sur-él amun sabuting halaman dalam daptar itihan ulun baubah", "tog-enotifusertalkpages": "Surili ulun amun tungkaran pamandiran ulun baubah", "tog-enotifminoredits": "Kirimi ulun sur-él jua amun ada babakan sapalih", "tog-enotifrevealaddr": "Tampaiakan alamat sur-él ulun pada sur-él pamadahan", "tog-shownumberswatching": "Tampaiakan barapa pamakai nang maitihi", "tog-oldsig": "Tandateken nang sudah ada:", "tog-fancysig": "Tapsirakan tandatangan sawagai naskah wiki (kada batautan utumatis)", - "tog-uselivepreview": "Tampaiakan pratayang tanpa mamuat baasa tungkaran", + "tog-uselivepreview": "Tampaiakan titilikan tanpa mamuat baasa halaman", "tog-forceeditsummary": "Ingatakan ulun wayah babuat sabuting kasimpulan babakan puang", "tog-watchlisthideown": "Sungkupakan babakan ulun di daptar itihan", "tog-watchlisthidebots": "Sungkupakan babakan bot di daptar itihan", @@ -110,7 +110,7 @@ "nov": "Nup", "dec": "Dis", "pagecategories": "{{PLURAL:$1|Tumbung}}", - "category_header": "Tungkaran dalam tumbung \"$1\"", + "category_header": "Halaman dalam pilah \"$1\"", "subcategories": "Sub-tumbung", "category-media-header": "Média dalam pilah \"$1\"", "category-empty": "\"Kada tahaga tulisan maupun média dalam pilah ngini.\"", @@ -118,13 +118,13 @@ "hidden-category-category": "Tumbung tasungkup", "category-subcat-count": "{{PLURAL:$2|Tumbung ngini baisi asa sub-tumbung nangkaya ngini.|Pilih ngini baisi {{PLURAL:$1|sub-tumbung|$1 sub-tumbung}}, matan sabarataan $2.}}", "category-subcat-count-limited": "Tumbung ini baisi {{PLURAL:$1|sub-tumbung|$1 sub-tutumbung}} barikut.", - "category-article-count": "{{PLURAL:$2|Tumbung ngini baisi {{PLURAL:$1|$1 tungkaran}}, tumatan jumlah $2.}}", + "category-article-count": "{{PLURAL:$2|Pilah ngini baisi {{PLURAL:$1|$1 halaman}}, tumatan jumlah $2.}}", "category-article-count-limited": "Tumbung ini baisi {{PLURAL:$1|asa tungkaran|$1 tutungkaran}} barikut.", "category-file-count": "{{PLURAL:$2|Pilah ngini baisi {{PLURAL:$1|$1 barakas}}, matan jumlah $2.}}", "category-file-count-limited": "Tumbung ngini baisi {{PLURAL:$1|barakas|$1 barakas}} barikut.", "listingcontinuesabbrev": "samb.", "index-category": "Tungkaran tasusun bapadalakan kata", - "noindex-category": "Tungkaran nang diindéks", + "noindex-category": "Halaman nang diindéks", "broken-file-category": "Tutungkaran lawan tatautan barakas pagat", "about": "Pasal", "article": "Tungkaran isi", @@ -132,7 +132,7 @@ "cancel": "Walangi", "moredotdotdot": "Lainnya...", "morenotlisted": "Daptar ngini mungkin kada langkap", - "mypage": "Tungkaran", + "mypage": "Halaman", "mytalk": "Pamandiran", "anontalk": "Pamandiran", "navigation": "Napigasi", @@ -150,7 +150,7 @@ "searchbutton": "Kikih", "go": "Tulak", "searcharticle": "Tulak", - "history": "Sajarah tungkaran", + "history": "Riwayat halaman", "history_short": "Sajarah", "history_small": "riwayat", "updatedmarker": "Dihanyari tumatan ilangan pauncitan ulun", @@ -169,7 +169,7 @@ "protect": "Lindungi", "protect_change": "ubah", "unprotect": "Palindungan", - "newpage": "Tungkaran hanyar", + "newpage": "Halaman hanyar", "talkpagelinktext": "pandir", "specialpage": "Tungkaran istimiwa", "personaltools": "Pakakas saurang", @@ -207,7 +207,7 @@ "edithelp": "Patulung mambabak", "helppage-top-gethelp": "Patulung", "mainpage": "Tungkaran Tatambaian", - "mainpage-description": "Tungkaran tatambaian", + "mainpage-description": "Halaman tatambaian", "policy-url": "Project:Kaaripan", "portal": "Lawang bubuhan", "portal-url": "Project:Lawang bubuhan", @@ -250,21 +250,21 @@ "red-link-title": "$1 (halaman baluman ada)", "sort-descending": "Surtir baturun", "sort-ascending": "Surtir banaik", - "nstab-main": "Tungkaran", + "nstab-main": "Halaman", "nstab-user": "Pamakai", "nstab-media": "Média", - "nstab-special": "Tungkaran istimiwa", - "nstab-project": "Tungkaran rangka gawian", + "nstab-special": "Halaman istimiwa", + "nstab-project": "Halaman rangka gawian", "nstab-image": "Barakas", "nstab-mediawiki": "Pasan", "nstab-template": "Citakan", "nstab-help": "Patulung", "nstab-category": "Tumbung", - "mainpage-nstab": "Tungkaran tatambaian", + "mainpage-nstab": "Halaman tatambaian", "nosuchaction": "Kadada palakuan nangkaitu", "nosuchactiontext": "Tindakan nang diminta URL kada sah.\nPian tagasnya salah katik URL, atawa maumpati sabuting tautan nang kada bujur.\nNgini jua bisa ai ada bug di parangkat lunak nang dipuruk {{SITENAME}}.", - "nosuchspecialpage": "Kadada tungkaran istimiwa nangitu", - "nospecialpagetext": "Pian maminta tungkaran istimiwa nang kada sah.\nDaptar tungkaran istimiwa sah kawa diugai pada [[Special:SpecialPages|{{int:specialpages}}]].", + "nosuchspecialpage": "Kadada halaman istimiwa nangitu", + "nospecialpagetext": "Pian maminta halaman istimiwa nang kada sah.\nDaptar halaman istimiwa sah kawa diugai pada [[Special:SpecialPages|{{int:specialpages}}]].", "error": "Kasalahan", "databaseerror": "Kasalahan Basisdata", "laggedslavemode": "'''Paringatan:''' Tungkaran ngini tagasnya kada baisi paubahan pahanyarnya.", @@ -289,7 +289,7 @@ "cannotdelete-title": "Kada kawa mahapus tungkaran \"$1\"", "delete-hook-aborted": "Pahapusan diwalangakan ulih kait parser.\nKadada katarangan.", "badtitle": "Judul buruk", - "badtitletext": "Judul tungkaran nang diminta kada sah, kada baisi, atawa kada pasnya tautan judul antar-basa atawa antar-wiki.\nNangini kawa baisi sabuting atawa labih hurup nang saharusnya kadada di judul.", + "badtitletext": "Judul halaman nang diminta kada sah, puang, atawa judul antarbasa atawa antarwiki nang salah sambung.", "perfcached": "Data barikut adalah timbuluk wan pina kada mutakhir. A maximum of {{PLURAL:$1|one result is|$1 results are}} available in the cache.", "perfcachedts": "Data nang dudi ni adalah timbuluk, wan tauncit dihahanyari pada $1. A maximum of {{PLURAL:$4|one result is|$4 results are}} available in the cache.", "querypage-no-updates": "Pamugaan matan tungkaran ngini rahat dipajahkan. Data nang ada di sia wayahini kada akan dimuat ulang.", @@ -297,12 +297,12 @@ "viewsource-title": "Tiringi asalmula matan $1", "actionthrottled": "Kalakuan dikiripi", "actionthrottledtext": "Pian dibatasi gasan manggawi tindakan ngini talalu banyak dalam waktu handap, wan Pian sudah limpua batas nang dibarii. Silahkan cuba baasa imbah babarapa manit.", - "protectedpagetext": "Tungkaran ngini sudah disunduk gasan mancagah babakan.", - "viewsourcetext": "Pian kawa maniringi wan manyalin asal-mula tungkaran ngini.", - "viewyourtext": "Pian kawa maniringi wan manyalin asalmula matan '''babakan pian''' ka tungkaran ngini:", - "protectedinterface": "Tungkaran ngini manyadiakan naskah antarmuha gasan parangkat lunak, wan dilindungi tahadap panyalahpakaian. Gasan manambah atawa mambabak tarjamahan pada sabarataan wiki, muhun pakai [https://translatewiki.net translatewiki.net], pruyik palukalan MediaWiki.", + "protectedpagetext": "Halaman ngini sudah disunduk gasan mancagah babakan.", + "viewsourcetext": "Pian kawa manjanaki wan manyalin asal-mula halaman ngini.", + "viewyourtext": "Pian kawa manjanaki wan manyalin asalmula matan '''babakan pian''' ka halaman ngini:", + "protectedinterface": "Halaman ngini manyadiakan naskah antarmuha gasan parangkat lunak, wan dilindungi tahadap panyalahgunaan. Gasan manambah atawa mambabak tarjamahan pada sabarataan wiki, muhun pakai [https://translatewiki.net translatewiki.net], rangka-gawi palokalan MediaWiki.", "editinginterface": "'''Paringatan:''' Pian mambabak sabuting tungkaran nang dipuruk hagan manyadiakan naskah antarmuha gasan parangkat lunak.\nPaubahan ka tungkaran ngini akan bapangaruh matan tampaian antarmuha gasan pamakai lain.\nGasan tarjamahan, muhun pakai [https://translatewiki.net/wiki/Main_Page?setlang=bjn translatewiki.net], rangka gawian palokalan MediaWiki.", - "cascadeprotected": "Tungkaran ini sudah dilindungi matan pambabakan, maraga nangini tamasuk dalam {{PLURAL:$1|tungkaran|tutungkaran}} dudi nang dilindungi \"barénténg\": $2", + "cascadeprotected": "Halaman ini sudah dilindungi matan pambabakan, maraga nangini tamasuk dalam {{PLURAL:$1|halaman}} dudi nang dilindungi \"barénténg\": $2", "namespaceprotected": "Pian kada baisi ijin hagan mambabak tutungkaran dalam ngaran kamar '''$1'''.", "customcssprotected": "Pian kada baisi ijin mambabak tungkaran CSS ngini, karana ngini baisi setelan paribadi pamakai lain.", "customjsprotected": "Pian kada baisi ijin mambabak tungkaran JavaScript ngini, karana ngini baisi setelan paribadi pamakai lain.", @@ -312,11 +312,11 @@ "invalidtitle-knownnamespace": "Judul nang kada sah lawan ruang-ngaran \"$2\" wan teks \"$3\"", "invalidtitle-unknownnamespace": "Judul nang kada sah lawan numur ruang ngaran kada dikatahui $1 wan teks \"$2\"", "exception-nologin": "Balum babuat log", - "exception-nologin-text": "Silahkan babuat log gasan kawa maaksis tungkaran atau gawian ngini", + "exception-nologin-text": "Silahkan babuat log gasan kawa masuk ka halaman atau gawian ngini", "virus-badscanner": "Konpigurasi buruk: pamindai virus kada dipinandui: ''$1''", "virus-scanfailed": "Pamindaian gagal (kudi $1)", "virus-unknownscanner": "Antivirus kada dipinandui:", - "logouttext": "Pian wayahini kaluar log.\n\n\nIngatakan bahwa babarapa tungkaran mungkin masih manampaiakan pian kaya masih babuat log, sampai pian mambarasihi singgahan panjalajah pian.", + "logouttext": "Pian wayahini kaluar log.\n\nIngatakan bahwa babarapa halaman mungkin masih manampaiakan pian kaya masih babuat log, sampai Pian mambarasihi singgahan panjalajah pian.", "welcomeuser": "Salamat datang, $1 !", "welcomecreation-msg": "Akun pian sudah diulah.\nPian kawa maubah [[Special:Preferences|preperensi]] {{SITENAME}} amun pian handak.", "yourname": "Ngaran pamakai:", @@ -349,7 +349,7 @@ "createacct-submit": "Ulah akun Pian", "createacct-benefit-heading": "{{SITENAME}} diulah ulih urang-urang nangkaya Pian.", "createacct-benefit-body1": "{{PLURAL:$1|babakan}}", - "createacct-benefit-body2": "{{PLURAL:$1|tungkaran}}", + "createacct-benefit-body2": "{{PLURAL:$1|halaman}}", "createacct-benefit-body3": "{{PLURAL:$1|sumbangan}} pahabisnya", "badretype": "Katasunduk nang Pian buati kada pas.", "userexists": "Ngaran pamakai nang dibuati hudah dipuruk urang lain.\nMuhun pilih sabuting ngaran lain.", @@ -454,8 +454,8 @@ "summary": "Kasimpulan:", "subject": "Parihal:", "minoredit": "Ngini adalah babakan sapalih", - "watchthis": "Itihi tungkaran ngini", - "savearticle": "Simpan tungkaran", + "watchthis": "Itihi halaman ngini", + "savearticle": "Simpan halaman", "preview": "Tilik", "showpreview": "Tampaiakan titilikan", "showdiff": "Tampaiakan paubahan", @@ -478,12 +478,12 @@ "loginreqlink": "Babuat log", "loginreqpagetext": "Pian musti $1 hagan maniringi rungkaran-tungkaran lain.", "accmailtitle": "Katasunduk takirim.", - "accmailtext": "Sabuting katasunduk babarang gasan [[User talk:$1|$1]] sudah dikirim ka $2.\n\nKatasunduk gasan pamakai hanyar nangini kawa diubah di tungkaran ''[[Special:ChangePassword|ubah katasunduk]]'' imbah babuat log.", + "accmailtext": "Sabuting katasunduk babarang gasan [[User talk:$1|$1]] sudah dikirim ka $2.\n\nKatasunduk gasan pamakai hanyar nangini kawa diubah di halaman ''[[Special:ChangePassword|ubah katasunduk]]'' limbah babuat log.", "newarticle": "(Hanyar)", - "newarticletext": "Pian maumpati tautan ka tungkaran nang balum tasadia.Amun handak maulah tungkaran itu, katiklah isi tungkaran di kutak di bawah ngini (janaki [$1 tungkaran patulung] gasan maklumat labih lanjut). Amun pian kada bakurinah sampai ka tungkaran ngini, kalik picikan back di panjalajah wéb Pian.", - "anontalkpagetext": "----''Ngini adalah tungkaran pamandiran gasan pamakai kada bangaran nang baluman ma-ulah akun pulang, atawa kada mamakainya. Kami tapaksa mamakai numurik alamat IP hagan maminanduinya.\nAlamat IP nangkaini kawaai dipuruk ulih babarapa pamakai.\nAmun Pian adalah pamakai kada bangaran wan marasa kumin nang kada pas ta ka Pian, muhun [[Special:CreateAccount|ulah sabuah akun]] atawa [[Special:UserLogin|babuat log]] gasan mahindari kabingungan awan pamakai kada bangaran lain kaina.", - "noarticletext": "Damini kadada naskah di tungkaran ngini.\nPian kawa [[Special:Search/{{PAGENAME}}|manggagai gasan judul tungkaran ngini]] di tutungkaran lain, [{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} mancari log tarait], atawa [{{fullurl:{{FULLPAGENAME}}|action=edit}} maulah tungkaran ngini].", - "noarticletext-nopermission": "Wayahini kadada naskah di tungkaran ngini.\nPian kawa [[Special:Search/{{PAGENAME}}|manggagai gasan judul tungkaran ngini]] di tutungkaran lain, atawa [{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} manggagai log tarait], tagal Pian kada baisi ijin gasan maulah tungkaran ngini", + "newarticletext": "Pian maumpati tautan ka halaman nang balum tasadia. Amun handak maulah halaman itu, katiklah isi halaman di kutak di bawah ngini (janaki [$1 halaman patulung] gasan maklumat labih lanjut). Amun pian kada bakurinah sampai ka halaman ngini, kalik picikan back di panjalajah wéb Pian.", + "anontalkpagetext": "----''Ngini adalah halaman pamandiran gasan pamakai kada bangaran nang baluman ma-ulah akun pulang, atawa kada mamakainya. Kami tapaksa mamakai numurik alamat IP hagan maminanduinya.\nAlamat IP nangkaini kawaai dipuruk ulih babarapa pamakai.\nAmun Pian adalah pamakai kada bangaran wan marasa kumin nang kada pas ta ka Pian, muhun [[Special:CreateAccount|ulah sabuah akun]] atawa [[Special:UserLogin|babuat log]] gasan mahindari kabingungan awan pamakai kada bangaran lain kaina.", + "noarticletext": "Damini kadada naskah di halaman ngini.\nPian kawa [[Special:Search/{{PAGENAME}}|mangikihi gasan judul halaman ngini]] di halaman lain, [{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} mancari log tarait], atawa [{{fullurl:{{FULLPAGENAME}}|action=edit}} maulah halaman ngini].", + "noarticletext-nopermission": "Wayahini kadada naskah di halaman ngini.\nPian kawa [[Special:Search/{{PAGENAME}}|manggagai gasan judul halaman ngini]] di halaman lain, atawa [{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} manggagai log tarait], tagal Pian kada baisi ijin gasan maulah halaman ngini.", "userpage-userdoesnotexist": "Akun pamakai \"$1\" kada tadaptar.\nMuhun pariksa/ditukui amun Pian handak maulah/mambabak tungkaran ngini.", "userpage-userdoesnotexist-view": "Akun pamakai \"$1\" kada tadaptar.", "blocked-notice-logextract": "Pamakai nangini parhatan diblukir.\nLog blukir pahabisannya tasadia di bawah ngini gasan rujukan:", @@ -494,7 +494,7 @@ "userjspreview": "'''Ingatakan bahwasa Pian tis/manilik pamakai JavaScript Pian.'''\n'''Nangini baluman tasimpan pulang!'''", "sitecsspreview": "'''Ingatakan bahwasa Pian manilik CSS ini haja.'''\n'''Nangini lagi baluman tasimpan!'''", "sitejspreview": "'''Ingatakan bahwasa Pian manilik JavaScript code ini haja.'''\n'''Nangini lagi baluman tasimpan!'''", - "userinvalidconfigtitle": "'''Paringatan:''' Kadada kulimbit \"$1\".\nTungkaran-tungkaran .css, .json wan .js ulahan mamuruk aksara halus, cuntuh {{ns:user}}:Foo/vector.css sawagai tandingan {{ns:user}}:Foo/Vector.css.", + "userinvalidconfigtitle": "'''Paringatan:''' Kadada kulimbit \"$1\".\nhalaman .css, .json wan .js ulahan mamakai aksara halus, cuntuh {{ns:user}}:Foo/vector.css sabagai tandingan {{ns:user}}:Foo/Vector.css.", "updated": "(Dihanyarakan)", "note": "'''Catatan:'''", "previewnote": "'''Ingatakanlah bahwasa ngini titilikan haja''' Paubahan Pian baluman disimpan!", @@ -520,9 +520,9 @@ "readonlywarning": "'''Paringatan: Basis data disunduk gasan diharagu, jadinya Pian kada kawa manyimpan babakan Pian wayahini.'''\nPian mungkin bagusnya manyalin wan malikap naskah ka sabuah barakas naskah wan simpan ngini gasan kainah.\n\nPambakal nang manyunduk manjalasakan kaini: $1", "protectedpagewarning": "'''Paringatan: Tungkaran ngini sudah dilindungi nang akibatnya pamakai awan hak istimiwa pambakal nang kawa mambabak ini.'''\nLog masuk pauncitnya disadiakan di bawah gasan rujukan:", "semiprotectedpagewarning": "'''Catatan:''' Tungkaran ngini sudah dilindungi nang akibatnya pamakai tadaptar haja nang kawa mambabak.\nLog masuk pauncitnya disadiakan di bawah gasan rujukan:", - "cascadeprotectedwarning": "Paringatan: Tungkaran ngini dilindungi jadinya pamakai lawan [[Special:ListGroupRights|hak aksis batantu] wara nang kawa mambabaknya maraga ditransklusiakan dalam {{PLURAL:$1|tungkaran|tungkaran-tungkaran}} nang dilindungi barinting.", + "cascadeprotectedwarning": "Paringatan: Halaman ngini dilindungi jadinya pamakai lawan [[Special:ListGroupRights|hak aksis batantu]] wara nang kawa mambabaknya maraga ditransklusiakan dalam {{PLURAL:$1|halaman}} nang dilindungi barinting.", "titleprotectedwarning": "'''Paringatan: Tungkaran ngini sudah dilindungi nang akibatnya [[Special:ListGroupRights|hak khas]] diparluakan hagan maulah ngini.'''\nLog masuk pauncitnya disadiakan di bawah gasan rujukan:", - "templatesused": "{{PLURAL:$1|Citakan|Cicitakan}} nang dipakai di tungkaran ngini:", + "templatesused": "{{PLURAL:$1|Citakan|Citakan}} nang dipakai di halaman ngini:", "templatesusedpreview": "{{PLURAL:$1|Citakan|Cicitakan}} nang dipakai di titilikan ngini:", "templatesusedsection": "{{PLURAL:$1|Citakan|Cicitakan}} nang diguna'akan di hagian ini:", "template-protected": "(dilindungi)", @@ -536,7 +536,7 @@ "permissionserrorstext": "Pian kada baisi ijin gasan malakuakan itu, karana {{PLURAL:$1|alasan|alasan}} ini:", "permissionserrorstext-withaction": "Pian kada baisi ijin gasan $2, karana {{PLURAL:$1|alasan|alasan}} ini:", "recreate-moveddeleted-warn": "'''Paringatan: Pian maulah pulang sabuah tungkaran nang sabalumnya dihapus.'''\n\nPian partimbangakan dahulu sasuaikah hagan manarusakan pambabakan tungkaran ini.\nLog pahapusan wan paugahan gasan tungkaran ini disadiakan di sia:", - "moveddeleted-notice": "Tungkaran ini sudah dihapus.\nLog pahapusan, palindungan, wan pamindahan matan tungkaran itu tasadia di bawah ini sabagai rujukan.", + "moveddeleted-notice": "Halaman ini sudah dihapus.\nLog pahapusan, palindungan, wan pamindahan matan halaman itu tasadia di bawah ini sabagai rujukan.", "log-fulllog": "Tiringi samunyaan log", "edit-hook-aborted": "Babakan ditinggalakan ulih kakait parser.\nIni kadada panjalasan.", "edit-gone-missing": "Kada kawa mamutakhirakan tungkaran ini.\nIni cungul pinanya sudah tahapus.", @@ -546,7 +546,7 @@ "defaultmessagetext": "Naskah baku pasan", "content-failed-to-parse": "Gagal manjabarakan isi $2 gasan model $1: $3", "invalid-content-data": "Data isi kada sah", - "content-not-allowed-here": "Isi \"$1\" kada diijinakan di tungkaran [[:$2]] di bagian \"$3\"", + "content-not-allowed-here": "Isi \"$1\" kada diijinakan di halaman [[:$2]] di palih \"$3\"", "content-model-wikitext": "teks wiki", "content-model-text": "teks polos", "content-model-javascript": "JavaScript", @@ -561,7 +561,7 @@ "parser-template-recursion-depth-warning": "Citakan batas kadalaman recursi limpuar ($1)", "language-converter-depth-warning": "Batas kadalaman pangonversi basa limpuar ($1)", "node-count-exceeded-category": "Tungkaran di mana node-count tarlalui", - "node-count-exceeded-warning": "Tungkaran malabihi jumlah node", + "node-count-exceeded-warning": "Halaman malabihi jumlah node", "expansion-depth-exceeded-category": "Tungkaran dimana kadalaman ikspansi talalui", "expansion-depth-exceeded-warning": "Tungkaran malabihi kadalaman ikspansi", "parser-unstrip-loop-warning": "Lingkaran unstrip taditiksi", @@ -570,7 +570,7 @@ "undo-norev": "Babakan kada kawa diwalangi karana ini kadada atawa tahapus.", "undo-summary": "←Mawalangakan ralatan $1 ulih [[Special:Contributions/$2|$2]] ([[User talk:$2|Pandir]])", "cantcreateaccount-text": "Paulahan akun matan alamat IP ('''$1''') sudah diblukir ulih [[User:$3|$3]].\n\nAlasan nang dibari ulih $3 adalah ''$2''", - "viewpagelogs": "Janaki log tungkaran ini", + "viewpagelogs": "Janaki log halaman ngini", "nohistory": "Kadada halam babakan gasan tungkaran ini.", "currentrev": "Ralatan pahabisannya", "currentrev-asof": "Ralatan pahanyarnya pada $1", @@ -592,7 +592,7 @@ "historysize": "($1 {{PLURAL:$1|bita|bibita}})", "historyempty": "kusung", "history-feed-title": "Riwayat ralatan", - "history-feed-description": "Riwayat ralatan gasan tungkaran ngini pada wiki", + "history-feed-description": "Riwayat ralatan gasan halaman ngini pada wiki", "history-feed-item-nocomment": "$1 wayah $2", "history-feed-empty": "Tungkaran nang diminta kadada.\nIni pinanya sudah dihapus matan wiki ini, atawa dingarani lain.\nCubai [[Special:Search|gagai di wiki ini]] gasan tungkaran hanyar bakarabat.", "rev-deleted-comment": "(kasimpulan babakan dibuang)", @@ -699,11 +699,11 @@ "nextn": "{{PLURAL:$1|$1}} imbahnya", "prevn-title": "Tadahulu $1 {{PLURAL:$1|kulihan|kulihan-kulihan}}", "nextn-title": "$1 {{PLURAL:$1|kulihan|kulihan-kulihan}} imbahnya", - "shown-title": "Tampaiakan $1 {{PLURAL:$1|kulihan|kukulihan}} par tungkaran", + "shown-title": "Tampaiakan $1 {{PLURAL:$1|kulihan}} par halaman", "viewprevnext": "Tiringi ($1 {{int:pipe-separator}} $2) ($3)", "searchmenu-exists": "'''Ada tungkaran bangaran \"[[:$1]]\" dalam wiki ini.'''", - "searchmenu-new": "Ulah tungkaran \"[[:$1]]\" di wiki ngini! {{PLURAL:$2|0=|Itihi jua tungkaran nang didapatakan matan panggagaian Pian.|Itihi jua hasil panggagaian nang didapatakan.}}", - "searchprofile-articles": "Tungkaran isi", + "searchmenu-new": "Ulah halaman \"[[:$1]]\" di wiki ngini! {{PLURAL:$2|0=|Itihi jua halaman nang dihagaakan matan pangikihan Pian.|Itihi jua kulihan pangikihan nang dihagaakan.}}", + "searchprofile-articles": "Halaman isi", "searchprofile-images": "Multimadia", "searchprofile-everything": "Samunyaan", "searchprofile-advanced": "Haratan", @@ -762,7 +762,7 @@ "stub-threshold-disabled": "Kada kawa-akan", "recentchangesdays": "Jumlah hari nang manampaiakan paubahan pahanyarnya:", "recentchangesdays-max": "Paling lawas $1 {{PLURAL:$1|hari|hahari}}", - "recentchangescount": "Rikinan babakan default gasan ditampaiakan di paubahan pahanyarnya, riwayat tungkaran, wan di tungkaran log:", + "recentchangescount": "Rikinan babakan standar gasan ditampaiakan di paubahan pahanyarnya, riwayat halaman, wan di halaman log:", "prefs-help-recentchangescount": "Rikinan paningginya: 1000", "savedprefs": "Kakatujuan Pian sudah ham disimpan.", "timezonelegend": "Waktu banua:", @@ -805,8 +805,8 @@ "badsiglength": "Tapak tangan Sampian talalu panjang. Jangan malabihi pada $1 {{PLURAL:$1|karakter|karakter}}.", "yourgender": "Kaya apa pian handak dijalasakan?", "gender-unknown": "Wayah manyambat pian, parangkat lunak pacangan mamakai kata netral wayah parlu", - "gender-male": "Inya (lakian) mambabak tungkaran wiki", - "gender-female": "Inya (binian) mambabak tungkaran wiki", + "gender-male": "Inya (lakian) mambabak halaman wiki", + "gender-female": "Inya (binian) mambabak halaman wiki", "prefs-help-gender": "Paraturan katujuan ngini opsional.\nParangkat lambik mamakai nilainya gasan maarahakan pian wan manyambat pian ka sabarataan pamakaian mamakai hiauan janis kalamin.\nInformasi nginji pacangan publik.", "email": "Suril", "prefs-help-realname": "Ngaran bujur adalah pilihan haja.\nAmun Pian mamilih manyadiakan ini, ini akan dipuruk gasan paminanduan kulihan gawian Pian.", @@ -869,7 +869,7 @@ "right-minoredit": "Tandai bababakan sawagai sapalih", "right-move": "Mamindahakan tungkaran", "right-move-subpages": "Ugahakan tutungkaran awan subtumgkaran-nya", - "right-move-rootuserpages": "Mamindahakan tungkaran utama pamakai", + "right-move-rootuserpages": "Mamindahakan halaman utama pamakai", "right-movefile": "Mamindahakan barakas", "right-suppressredirect": "Kada maulah paugahan matan tutungkaran asal mula parhatan tutungkan pindahan", "right-upload": "Unggahakan barakas", @@ -904,7 +904,7 @@ "right-editusercss": "Babak pamruk lain babarakas CSS", "right-edituserjson": "Mambabak barakas JSON pamakai lain", "right-edituserjs": "Mambabak barakas JS pamakai lain", - "right-rollback": "Mambulikakan hancap babakan pamakai pauncitnya nang mambabak tungkaran tartantu", + "right-rollback": "Mambulikakan hancap babakan pamakai pauncitnya nang mambabak halaman tartantu", "right-markbotedits": "Tandai bababakan dibulikakan sawagai bababakan bot", "right-noratelimit": "Kada pangaruh awan watas rating", "right-import": "Impur tutungkaran matan wiwiki lain", @@ -924,7 +924,7 @@ "rightslog": "Log paubahan hak masuk", "rightslogtext": "Nangini sabuting log paubahan ka hak pamakai.", "action-read": "baca tungkaran ini", - "action-edit": "babak tungkaran ini", + "action-edit": "babak halaman ini", "action-createpage": "ulah tutungkaran", "action-createtalk": "ulah tutungkaran pamandiran", "action-createaccount": "ulah akun pamakai ini", @@ -947,7 +947,7 @@ "action-suppressionlog": "tiringi log paribadi ini", "action-block": "Blukir pamakai ngini matan mambabak", "action-protect": "Ubah tingkat parlindungan tungkaran ngini", - "action-rollback": "Mambulikakan hancap babakan matan pamakai pauncitnya nang mambabak tungkaran tartantu.", + "action-rollback": "Mambulikakan hancap babakan matan pamakai pauncitnya nang mambabak halaman tartantu.", "action-import": "Impur tungkaran ngini matan wiki lain", "action-importupload": "Impur tungkaran ngini matan sabuah barakas hunggahan", "action-patrol": "tandai babakan nang lain sawagai ta'awasi", @@ -962,16 +962,16 @@ "enhancedrc-history": "sajarah", "recentchanges": "Paubahan pahanyarnya", "recentchanges-legend": "Pilihan paubahan pahanyarnya", - "recentchanges-summary": "Jajak paubahan wiki pahanyarnya pada tungkaran ngini", + "recentchanges-summary": "Jajak paubahan wiki pahanyarnya pada halaman ngini", "recentchanges-noresult": "Kadada paubahan dalam rantang waktu ngini nang rasuk lawan syarat.", "recentchanges-feed-description": "Susuri paubahan pahanyarnya dalam wiki di kitihan ini", - "recentchanges-label-newpage": "Babakan ngini maulah sabuting tungkaran hanyar", + "recentchanges-label-newpage": "Babakan ngini maulah sabuting halaman hanyar", "recentchanges-label-minor": "Ngini babakan sapalih", "recentchanges-label-bot": "Babakan ngini digawi ulih bot", "recentchanges-label-unpatrolled": "Babakan ngini baluman ta'awasi", - "recentchanges-label-plusminus": "Paubahan ukuran tungkaran dalam bita", + "recentchanges-label-plusminus": "Paubahan ukuran halaman dalam bita", "recentchanges-legend-heading": "Katarangan:", - "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (tiringi jua [[Special:NewPages|daptar tungkaran hanyar]])", + "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (janaki jua [[Special:NewPages|daptar halaman hanyar]])", "rcnotefrom": "Di bawah ngini adalah {{PLURAL:$5|paubahan}} tumatan $3, $4 (ditampaiakan sampai $1 paubahan).", "rclistfrom": "Tampaiakan paubahan pahanyarnya matan $3 $2", "rcshowhideminor": "$1 pambabakan sapalih", @@ -1007,9 +1007,9 @@ "recentchangeslinked-feed": "Paubahan tarait", "recentchangeslinked-toolbox": "Paubahan tarait", "recentchangeslinked-title": "Paubahan nang tarait lawan \"$1\"", - "recentchangeslinked-summary": "Masukakan ngaran halaman gasan malihat paubahan pada tungkaran tarait matan atawa ka tungkaran ngintu (amun handak malihat angguta sabuting tumbung, masukakan {{ns:category}}). Paubahan pada [[Special:Watchlist|daptar itihan Pian]] talihat dicitak kandal.", - "recentchangeslinked-page": "Ngaran tungkaran:", - "recentchangeslinked-to": "Tampaiakan paubahan matan tutungkaran nang barait lawan tungkaran nang disurungakan", + "recentchangeslinked-summary": "Masukakan ngaran halaman gasan malihat paubahan pada halaman tarait matan atawa ka halaman ngintu (amun handak malihat angguta sabuting pilah, masukakan {{ns:category}}). Paubahan pada [[Special:Watchlist|daptar itihan Pian]] talihat dicitak kandal.", + "recentchangeslinked-page": "Ngaran halaman:", + "recentchangeslinked-to": "Tampaiakan paubahan matan halaman nang barait lawan halaman nang disurungakan", "upload": "Unggah barakas", "uploadbtn": "Hunggahakan barakas", "reuploaddesc": "Babulik ka furmulir paunggahan", @@ -1128,7 +1128,7 @@ "zip-bad": "Barakas ngini korup atawa pinanya barakas ZIP nang kada kawa dibaca.\nBarakas ngini kada kawa dipariksa gasan kaamanan.", "zip-unsupported": "Barakas ngini adalah sabuah barakas ZIP nang dipuruk pitur ZIP nang kada disukung ulih MediaWiki.\nNgini kada kawa dipariksa gasan kaamanan.", "uploadstash": "Simpanan hunggahan", - "uploadstash-summary": "Tungkaran ngini manyadiaakan ungkaian ka barakas nang taunggah (atawa dalam prosés unggahan) tapi baluman ditarbitakan ka wiki.\nBarakas ngini kada kawa dijanaki ka siapa pun kacuali pamakai nang maunggahnya.", + "uploadstash-summary": "Halaman ngini manyadiaakan ungkaian ka barakas nang taunggah (atawa dalam prosés unggahan) tapi baluman dicungulakan ka wiki.\nBarakas ngini kada kawa dijanaki ka siapa pun kacuali pamakai nang maunggahnya.", "uploadstash-clear": "Kalarakan babarakas simpanan.", "uploadstash-nofiles": "Pian kada baisi babarakas simpanan.", "uploadstash-badtoken": "Aksi kada ruhui dilaksanaakan, pinanya karana babakan Pian sudah kadaluarsa. Cubai pulang.", @@ -1188,15 +1188,15 @@ "filehist-filesize": "Ukuran barakas", "filehist-comment": "Ulasan", "imagelinks": "Tautan barakas", - "linkstoimage": "{{PLURAL:$1|Tungkaran|$1 tungkaran}} nangini mamakai barakas ngini:", - "linkstoimage-more": "Labih daripada $1 {{PLURAL:$1|pamakaian tungkaran|pamakaian tutungkaran}} ka barakas ngini.\nDaptar barikut manampaiakan {{PLURAL:$1|tungkaran panambaian|$1 tungkaran panambaiam}} nang mamakai barakas ngini haja.\nSabuah [[Special:WhatLinksHere/$2|daptar hibak]] tasadia.", + "linkstoimage": "{{PLURAL:$1|Halaman|$1 halaman}} nangini mamakai barakas ngini:", + "linkstoimage-more": "Labih daripada $1 {{PLURAL:$1|pamakaian halaman|pamakaian halaman}} ka barakas ngini.\nDaptar barikut manampaiakan {{PLURAL:$1|halaman panambaian|$1 halaman panambaian}} nang mamakai barakas ngini haja.\nSabuting [[Special:WhatLinksHere/$2|daptar hibak]] tasadia.", "nolinkstoimage": "Kadada tutungkaran nang mamakai barakas ngini.", "morelinkstoimage": "Tiringi [[Special:WhatLinksHere/$1|tautan lagi]] ka barakas ngini.", "linkstoimage-redirect": "$1 (barakas paugahan) $2", "duplicatesoffile": "Barikut {{PLURAL:$1|barakas panggandaan|$1 babarakas panggandaan}} matan barakas ngini ([[Special:FileDuplicateSearch/$2|rarincian labih]]):", "sharedupload": "Barakas ini matan $1 wan mungkin dipuruk rangka-rangka gawian lain.", "sharedupload-desc-there": "Barakas ngini matan $1 wan pina dipuruk ulih rarangka-gawi lain.\nMuhun janaki [$2 tungkaran diskripsi barakas] gasan panjalasan labih.", - "sharedupload-desc-here": "Barakas ngini matan $1 wan pina dipakai ulih rarangka-gawi lain.\nDiskripsi ngini [$2 tungkaran diskripsi barakas] ditampaiakan di bawah.", + "sharedupload-desc-here": "Barakas ngini matan $1 wan pinanya dipakai ulih rangka-gawi lain.\nPamaparan ngini [$2 halaman diskripsi barakas] ditampaiakan di bawah.", "filepage-nofile": "Kadada barakas bangaran ngini.", "filepage-nofile-link": "Kadada barakas bangaran ngini tasadia, tagal Pian kawa [$1 mahunggah ngini].", "uploadnewversion-linktext": "Buatakan bantuk nang labih hanyar matan barakas ini", @@ -1236,7 +1236,7 @@ "unusedtemplates": "Citakan nang kada dipuruk", "unusedtemplatestext": "Daptar barikut adalah samua tungkaran pada ngaran kamar {{ns:template}} nang kada dipuruk di tungkaran manapun.\nPariksa 'hulu tautan lain ka citakan itu sabalum mahapusnya.", "unusedtemplateswlh": "tautan lain", - "randompage": "Tungkaran babarang", + "randompage": "Halaman babarang", "randompage-nopages": "Kadada tungkaran pada {{PLURAL:$2||}}kamar ngaran ini: $1.", "randomredirect": "Paugahan babarang", "randomredirect-nopages": "Kada tadapat paugahan pada ngaran kamar \"$1\".", @@ -1315,7 +1315,7 @@ "listusers-creationsort": "Susun ulih tanggal paulahan", "usereditcount": "$1 {{PLURAL:$1|babakan|bababakan}}", "usercreated": "{{GENDER:$3|Diulah}} pada $1 pukul $2", - "newpages": "Tungkaran hanyar", + "newpages": "Halaman hanyar", "newpages-username": "Ngaran pamakai:", "ancientpages": "Tutungkaran panuhanya", "move": "Pindahakan", @@ -1323,7 +1323,7 @@ "unusedimagestext": "Babarakas barikut ada tagal kada diumpatakan di tungkaran mamana.\nMuhun catat bahwasa situs web lain pina-ai bataut ka sabuah barakas awan sabuah URL langsung, wan karana ngini masih-ha didaptar di sia biar gin aktip dipuruk.", "unusedcategoriestext": "Tumbung tutungkaran barikut ada, walaupun kadada tungkaran lain atawa tumbung mamuruknya.", "notargettitle": "Kadada tujuan", - "notargettext": "Pian kada manantuakan tungkaran atawa pamakai tujuan tugas ngini.", + "notargettext": "Pian kada manantuakan halaman atawa pamakai tujuan tugas ngini.", "nopagetitle": "Kadada tungkaran sasaran", "nopagetext": "Tungkaran sasaran nang Pian ajuakan kadada.", "pager-newer-n": "{{PLURAL:$1|labih hanyar 1|labih hanyar $1}}", @@ -1339,7 +1339,7 @@ "speciallogtitlelabel": "Tujuan (judul atawa {{ns:user}}:ngaran pamakai gasan pamakai)", "log": "Log", "all-logs-page": "Samunyaan log umum", - "alllogstext": "Tampaian baimbai matan sabataan log nang ada matan {{SITENAME}}.\nPian kada mawatasi tiringan lawan mamilih sabuah macam log, ngaran-pamakai (sansitip kapital), atawa tungkaran tapangaruh (sansitip kapital jua).", + "alllogstext": "Tampaian baimbai matan sabataan log nang ada matan {{SITENAME}}.\nPian kada mawatasi tiringan lawan mamilih sabuting macam log, ngaran-pamakai (sansitip kapital), atawa halaman tapangaruh (sansitip kapital jua).", "logempty": "Kadada barang nang parsis pintang log.", "log-title-wildcard": "Gagai judul ba-awalan awan naskah ngini", "showhideselectedlogentries": "Tampaiakan/sungkupakan masukan log tapilih", @@ -1348,7 +1348,7 @@ "prevpage": "Tungkaran sabalumnya ($1)", "allpagesfrom": "Manampaiakan tungkaran mulai matan:", "allpagesto": "Manampaiakan ujung pahabisan tungkaran:", - "allarticles": "Samunyaan tungkaran", + "allarticles": "Samunyaan halaman", "allinnamespace": "Sabarataan tutungkaran (ngaran-kamar $1)", "allpagessubmit": "Tulak", "allpagesprefix": "Tampilakan tutungkaran bamula lawan:", @@ -1379,7 +1379,7 @@ "activeusers-from": "Manampaiakan papamuruk mulai matan:", "activeusers-noresult": "Kadada papamuruk tatamu.", "listgrouprights": "Daptar hak galambang", - "listgrouprights-summary": "Nangini daptar galambang pamakai nang tahaga di wiki ini, lawan daptar hak maungkai bubuhannya. Maklumat salanjutnya sual hak masing-masing kawa ditamuakan di [[{{MediaWiki:Listgrouprights-helppage}}|tungkaran patulung hak pamakai]].", + "listgrouprights-summary": "Nangini daptar galambang pamakai nang tahaga di wiki ini, lawan daptar hak maungkai bubuhannya. Maklumat salanjutnya sual hak masing-masing kawa ditamuakan di [[{{MediaWiki:Listgrouprights-helppage}}|halaman patulung hak pamakai]].", "listgrouprights-key": "* Hak nang balaku\n* Hak nang dicukut", "listgrouprights-group": "Galambang", "listgrouprights-rights": "Hak", @@ -1436,7 +1436,7 @@ "unwatchthispage": "Mandak maitihi", "notanarticle": "Lainan sabuting tungkaran isi", "notvisiblerev": "Ralatan sudah dihapus", - "watchlist-details": "Tahaga {{PLURAL:$1|$1 tungkaran|$1 tungkaran}} di daptar itihan Pian, (tamasuk tungkaran pamandiran).", + "watchlist-details": "Tahaga {{PLURAL:$1|halaman}} di daptar itihan Pian, (tamasuk halaman pamandiran).", "wlheader-enotif": "Suril pamadahan dipajahi.", "wlheader-showupdated": "Tutungkaran nang ba-ubah tumatan ilangan tauncit Pian ditampaiakan dalam hurup kandal.", "wlnote": "Dibawah ngini adalah {{PLURAL:$1|paubahan pahabisan|$1 paubahan pahabisan}} dalam {{PLURAL:$2|sajam|$2 jam}} par $3, $4.", @@ -1491,7 +1491,7 @@ "rollbacklinkcount": "bulikakan $1 {{PLURAL:$1|babakan}}", "rollbackfailed": "Guling-bulik luput", "cantrollback": "Kada kawa mambalikakan babakan;\npanyumbang tauncit adalah asa-asanya panulis tungkaran ngini.", - "alreadyrolled": "Kada kawa malakukan pambulikan ka ralatan pauncitnya [[:$1]] ulih [[User:$2|$2]] ([[User talk:$2|pandir]]{{int:pipe-separator}}[[Special:Contributions/$2|{{int:contribslink}}]]);\npamakai lain sudah mambabak atawa malakukan pambulikan lawan tungkaran ngini.\n\nBabakan pauncitnya dilakukan ulih [[User:$3|$3]] ([[User talk:$3|pandir]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]).", + "alreadyrolled": "Kada kawa malakukan pambulikan ka ralatan pauncitnya [[:$1]] ulih [[User:$2|$2]] ([[User talk:$2|pandir]]{{int:pipe-separator}}[[Special:Contributions/$2|{{int:contribslink}}]]);\npamakai lain sudah mambabak atawa malakukan pambulikan lawan halaman ngini.\n\nBabakan pauncitnya dilakukan ulih [[User:$3|$3]] ([[User talk:$3|pandir]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]).", "editcomment": "Kumintar pambabakan adalah: $1.", "revertpage": "←Babakan [[Special:Contributions/$2|$2]] ([[User talk:$2|pandir]]) dibulikakan ka ralatan tauncit ulih [[User:$1|$1]]", "revertpage-nouser": "Pambulikan babakan ulih (pamuruk dihapus) ka babakan tauncit ulih [[User:$1|$1]]", @@ -1617,15 +1617,15 @@ "sp-contributions-search": "Kikihi sumbangan", "sp-contributions-username": "Alamat IP atawa ngaran-pamakai:", "sp-contributions-toponly": "Tampaiakan wastu ralatan nang paling atas (pauncitnya)", - "sp-contributions-newonly": "Hanya tampaiakan babakan nang barupa paulahan tungkaran", + "sp-contributions-newonly": "Hanya tampaiakan babakan nang barupa paulahan halaman", "sp-contributions-submit": "Kikih", "whatlinkshere": "Tautan balik", - "whatlinkshere-title": "Tungkaran-tungkaran nang batautan ka ''$1''", - "whatlinkshere-page": "Tungkaran:", - "linkshere": "Tungkaran-tungkaran barikut batautan ka $2:", + "whatlinkshere-title": "Halaman nang batautan ka ''$1''", + "whatlinkshere-page": "Halaman:", + "linkshere": "Halaman nangini batautan ka $2:", "nolinkshere": "Kadada tutungkaran tataut ka '''$2'''.", "nolinkshere-ns": "Kadada tutungkaran tataut ka '''$2''' dalam ruang-ngaran nang dipilih.", - "isredirect": "tungkaran paugahan", + "isredirect": "halaman paugahan", "istemplate": "transklusi", "isimage": "tautan barakas", "whatlinkshere-prev": "$1 {{PLURAL:$1|sabalumnya|sabalumnya}}", @@ -1643,7 +1643,7 @@ "blockiptext": "Puruk purmulir di bawah hagan mamblukir hak ungkai manulis matan sabuah alamat IP atawa ngaran-pamuruk.\nNgini dipuruk hagan mancagah vandalisma haja, wan sasuai awan [[{{MediaWiki:Policy-url}}|kabijakan]].\nIsi sabuah alasan khas di bawah (gasan cuntuh, manulisakan tutungkaran nang suah divandal)", "ipaddressorusername": "Alamat IP atawa ngaran pamakai:", "ipbreason": "Alasan:", - "ipbreason-dropdown": "*Alasan umum\n** Vandalisma\n** Mambariakan katarangan kada bujur alias palsu\n** Mahilangakan isi tungkaran\n** Spam tautan ka situs luar\n** Mangaradau ka tungkaran\n** Parilaku intimidasi/mancapa\n** Manyalahgunaakan babarapa akun\n** Ngaran pamakai kada layak", + "ipbreason-dropdown": "*Alasan umum\n** Vandalisma\n** Mambariakan katarangan kada bujur alias palsu\n** Mahilangakan isi halaman\n** Spam tautan ka situs luar\n** Mangaradau ka halaman\n** Parilaku intimidasi/mancapa\n** Manyalahgunaakan babarapa akun\n** Ngaran pamakai kada layak", "ipb-hardblock": "Tangati pamakai tadaptar gasan mambabak matan alamat IP ngini", "ipbcreateaccount": "Tangkal paulahan akun", "ipbemailban": "Tangkal pamuruk mangirimi suril", @@ -1652,7 +1652,7 @@ "ipbother": "Wayah lain:", "ipboptions": "2 jam:2 hours,1 hari:1 day,3 hari:3 days,1 minggu:1 week,2 minggu:2 weeks,1 bulan:1 month,3 bulan:3 months,6 bulan:6 months,1 tahun:1 year,salawasan:infinite", "ipbhidename": "Sungkupakan ngaranpamuruk matan babakan wan dadaptar", - "ipbwatchuser": "Itihi tungkaran pamakai wan pamandiran pamakai ngini", + "ipbwatchuser": "Itihi halaman pamakai wan pamandiran pamakai ngini", "ipb-disableusertalk": "Tangkal pamuruk ngini mambabak tungkaran pamandirannya wayah diblukir", "ipb-change-block": "Blukir pulang pamakai lawan setélan ngini", "ipb-confirm": "Yakinakan blukir", @@ -1739,8 +1739,8 @@ "ipbnounblockself": "Pian kada dibulihakan malapas blukir Pian surang", "lockdb": "Sunduk basisdata", "unlockdb": "Lapas sunduk basisdata", - "lockdbtext": "Manyunduk basis data akan maampihakan kamampuan samunyaan pamakai mambabak tungkaran, maubah kakatujuan sidin, mambabak paitihin sidin, wan nang lainnya nang parlu diubah dalam basis data.\nMuhun yakinakan nangini bujur nang handak Pian gawi, wan Pian akan malapas-sunduk basis data amun paharaguan tuntung.", - "unlockdbtext": "Malapas sunduk basis data akan manyimpan-pulang kamampuan samunyaan pamakai gasan mambabak tungkaran, maubah kakatujuan sidin, mambabak paitihan sidin, wan nang lainnya nang parlu diubah dalam basis data.\nMuhun yakinakan nang ngini nang Pian handak gawi.", + "lockdbtext": "Manyunduk basis data akan maampihakan kamampuan samunyaan pamakai mambabak halaman, maubah kakatujuan sidin, mambabak paitihin sidin, wan nang lainnya nang parlu diubah dalam basis data.\nMuhun yakinakan nangini bujur nang handak Pian gawi, wan Pian akan malapas-sunduk basis data amun paharaguan tuntung.", + "unlockdbtext": "Malapas sunduk basis data akan manyimpan-pulang kamampuan samunyaan pamakai gasan mambabak halaman, maubah kakatujuan sidin, mambabak paitihan sidin, wan nang lainnya nang parlu diubah dalam basis data.\nMuhun yakinakan nang ngini nang Pian handak gawi.", "lockconfirm": "I'ih, ulun bujuran handak manyunduk basisdata.", "unlockconfirm": "I'ih, ulun bujuran handak malapas sunduk basisdata.", "lockbtn": "Sunduk basisdata", @@ -1758,12 +1758,12 @@ "movepagetext": "Mamakai purmulir di bawah akan mangganti ngaran sabuting tungkaran, mamindahakan samunyaan halam ka ngaran nang hanyar. Judul lawas akan jadi sabuting tungkaran paugahan ka judul hanyar. Pian kawa mahanyari bahwasanya paugahan-paugahan manuju ka judul nang samustinya langsung. Amun kada, pastiakan pariksa gasan [[Special:DoubleRedirects|ganda]] atawa [[Special:BrokenRedirects|paugahan pagat]]. Pian batanggung jawab gasan mamastiakan tautan-tautan tatarusan manuju ka mana nang samustinya.\n\nCatatan bahwasanya tungkaran '''kada''' akan tapindah amun sudah ada tungkaran nang bangaran hanyar ngitu, kacuali amun tungkaran itu puang atawa sabuting paugahan wan kadada halam babakan.\n\n'''Paringatan!'''\nIni kawa maakibatakan paubahan kada taduga wan drastis gasan sabuting tungkaran rami; muhun mamastiakan Pian paham akibatnya sabalum manarusakan.", "movepagetext-noredirectfixer": "Mamakai purmulir di bawah akan mangganti ngaran sabuting tungkaran, mamindahakan samunyaan halam ka ngaran nang hanyar.\nJudul lawas akan jadi sabuting tungkaran paugahan ka judul hanyar.\nPastiakan pariksa gasan [[Special:DoubleRedirects|ganda]] atawa [[Special:BrokenRedirects|paugahan pagat]].\nPian batanggung jawab gasan mamastiakan tautan-tautan tatarusan manuju ka mana nang samustinya.\n\nCatatan bahwasanya tungkaran '''kada''' akan tapindah amun sudah ada tungkaran nang bangaran hanyar ngitu, kacuali amun tungkaran itu puang atawa sabuah paugahan wan kadada halam babakan.\n\n'''Paringatan!'''\nIni kawa maakibatakan paubahan kada taduga wan drastis gasan sabuah tungkaran rami; \nmuhun mamastiakan Pian paham akibatnya sabalum manarusakan.", "movepagetalktext": "Tungkaran pamandiran tarait akan langsung dipindahakan baimbai wan ini '''kacuali amun:'''\n*Sabuah tungkaran pamandiran nang kada puang sudah baisi awan judul hanyar, atawa\n*Pian kada manyuntring kutak di bawah.", - "moveuserpage-warning": "'''Paringatan:''' Pian parhatan mamindahakan tungkaran pamakai. Parlu Pian tahu lamun cuma tungkaran nang akan dipindahakan tapi pamakai ''kada'' baganti ngaran.", - "movenologintext": "Pian musti manjadi pamakai tadaptar wan [[Special:UserLogin|babuat log]] gasan mamindahakan suatu tungkaran.", + "moveuserpage-warning": "'''Paringatan:''' Pian parhatan mamindahakan halaman pamakai. Parlu Pian tahu lamun cuma halaman nang akan dipindahakan tapi pamakai ''kada'' baganti ngaran.", + "movenologintext": "Pian musti manjadi pamakai tadaptar wan [[Special:UserLogin|babuat log]] gasan mamindahakan suatu halaman.", "movenotallowed": "Pian kada baisi ijin hagan mamindahakan tutungkaran.", "movenotallowedfile": "Pian kada baisi ijin hagan mamindahakan babarakas.", - "cant-move-user-page": "Pian kada baisi ijin gasan mamindahakan tungkaran pamakai (tapisah matan sub-tutungkaran).", - "cant-move-to-user-page": "Pian kada baisi ijin gasan mamindahakan tungkaran ka suatu tungkaran pamakai (kacuali ka sub-tutungkaran pamakai).", + "cant-move-user-page": "Pian kada baisi ijin gasan mamindahakan halaman pamakai (tapisah matan sub-halaman).", + "cant-move-to-user-page": "Pian kada baisi ijin gasan mamindahakan halaman ka suatu halaman pamakai (kacuali ka sub-halaman pamakai).", "newtitle": "Ka judul hanyar:", "move-watch": "Itihi tungkaran asal mula wan tungkaran tujuan", "movepagebtn": "Pindahakan tungkaran", @@ -1803,11 +1803,11 @@ "imageinvalidfilename": "Ngaran barakas tujuan kada sah", "fix-double-redirects": "Mutakhirakan babarapa paugahan nang manitik ka judul asli", "move-leave-redirect": "Ulah paugahan ka judul hanyar", - "protectedpagemovewarning": "'''Paringatan''': Tungkaran ngini sudah dikunci wan cuma pamakai nang baisi hak pambakal haja nang kawa mamindahakannya.\nMasukan catatan pauncitnya disadiaakan di bawah gasan rujukan:", + "protectedpagemovewarning": "'''Paringatan''': Halaman ngini sudah disunduk wan cuma pamakai nang baisi hak pambakal haja nang kawa mamindahakannya.\nMasukan catatan pauncitnya disadiaakan di bawah gasan rujukan:", "semiprotectedpagemovewarning": "'''Catatan:''' Tungkaran ngini sudah dilindungi laluai pamuruk tadaptar haja nang kawa mamindahakan ngini.\nLog masuk pauncitan disadiakan di bawah gasan rujukan:", "move-over-sharedrepo": "==Barakas ada==\n[[:$1]] ada pintangan panyimpanan babagi. Mamindahakan sabuah barakas ka judul ngini akan manulis-tindih barakas babagi.", "file-exists-sharedrepo": "Ngaran barakas nang dipilih sudah dipuruk pintangan panyimpanan babagi.\nMuhun pilih ngaran lain.", - "export": "Kirimi tungkaran ka luar", + "export": "Kirimi halaman ka luar", "exporttext": "Pian kawa ma-ikspur naskah wan halam babakan matan sabuah tungkaran tartantu atawa sarangkai tutungkaran tabungkus dalam bantuk XML.\nNgini kawa di-impur dalam wiki lain mamuruk MediaWiki lung [[Special:Import|tungkaran impur]].\n\nHagan ma-ikspur tutungkaran, buati judul dalam kutak naskah di bawah, asa judul par garis, wan pilihi nang mana Pian handak ralatan tadamini nangkaitu jua samunyaan raralatan lawas, awan garis tungkaran halam, atawa ralatan tadamini awan panjalasan pasal babakan ta-uncit.\n\nDalam kasus pahanyarnya Pian kawa jua mamuruk sabuah tautanm gasan cuntuh [[{{#Special:Export}}/{{MediaWiki:Mainpage}}]] gasan tungkaran \"[[{{MediaWiki:Mainpage}}]]\".", "exportall": "Ekspor samunyaan tungkaran.", "exportcuronly": "Tamasuk ralatan tadamini haja, kada sahibakan halam", @@ -1884,59 +1884,59 @@ "import-logentry-upload-detail": "$1 {{PLURAL:$1|ralatan|raralatan}}", "import-logentry-interwiki-detail": "$1 {{PLURAL:$1|ralatan|raralatan}} matan $2", "javascripttest": "Mantis JavaScript", - "tooltip-pt-userpage": "Tungkaran {{GENDER:|pamakai Pian}}", - "tooltip-pt-anonuserpage": "Tungkaran pamakai IP Pian", - "tooltip-pt-mytalk": "Tungkaran {{GENDER:|pamandiran Pian}}", + "tooltip-pt-userpage": "Halaman {{GENDER:|pamakai Pian}}", + "tooltip-pt-anonuserpage": "Halaman pamakai IP Pian", + "tooltip-pt-mytalk": "Halaman {{GENDER:|pamandiran Pian}}", "tooltip-pt-anontalk": "Pamandiran pasal bababakan matan alamat IP ngini", "tooltip-pt-preferences": "Kakatujuan {{GENDER:|Pian}}", - "tooltip-pt-watchlist": "Daptar tungkaran-tungkaran nang Pian itihi paubahannya", + "tooltip-pt-watchlist": "Daptar halaman nang Pian itihi paubahannya", "tooltip-pt-mycontris": "Daptar sumbangan {{GENDER:|Pian}}", "tooltip-pt-login": "Pian sabaiknya babuat ka dalam log; tagal ngini kada kawajiban pang", "tooltip-pt-logout": "Kaluar log", "tooltip-pt-createaccount": "Pian dianjurakan gasan maulah akun wan babuat log; tagal, hal ngintu kada wajib", - "tooltip-ca-talk": "Pamandiran pasal isi tungkaran", - "tooltip-ca-edit": "Babak tungkaran ngini", + "tooltip-ca-talk": "Pamandiran pasal isi halaman", + "tooltip-ca-edit": "Babak halaman ngini", "tooltip-ca-addsection": "Mulai hagian hanyar", - "tooltip-ca-viewsource": "Tungkaran ngini dilindungi. Pian kawa maniring asal mulanya.", - "tooltip-ca-history": "Ralatan bahari tungkaran ngini", + "tooltip-ca-viewsource": "Halaman ngini dilindungi. Pian kawa manjanaki asal mulanya.", + "tooltip-ca-history": "Ralatan bahari halaman ngini", "tooltip-ca-protect": "Lindungi tungkaran ini", "tooltip-ca-unprotect": "Ganti parlindungan tungkaran ngini", "tooltip-ca-delete": "Hapus tungkaran ini", "tooltip-ca-undelete": "Bulikakan babakan ka tungkaran ini sabalum tungkaran ini dihapus", - "tooltip-ca-move": "Pindahakan tungkaran ngini", - "tooltip-ca-watch": "Tambahi tungkaran ngini ka daptar itihan Pian", + "tooltip-ca-move": "Pindahakan halaman ngini", + "tooltip-ca-watch": "Tambahi halaman ngini ka daptar itihan Pian", "tooltip-ca-unwatch": "Buang tungkaran ngini matan daptar itihan Pian", "tooltip-search": "Gagai di {{SITENAME}}", "tooltip-search-go": "Tulak ka sabuting halaman bangaran sama amun sudah ada", - "tooltip-search-fulltext": "Gagai tungkaran nang baisi naskah nang kaya ngini", - "tooltip-p-logo": "Ilangi tungkaran tatambaian", - "tooltip-n-mainpage": "Ilangi tungkaran tatambaian", - "tooltip-n-mainpage-description": "Ilangi tungkaran tatambaian", + "tooltip-search-fulltext": "Gagai halaman nang baisi naskah nang kaya ngini", + "tooltip-p-logo": "Ilangi halaman tatambaian", + "tooltip-n-mainpage": "Ilangi halaman tatambaian", + "tooltip-n-mainpage-description": "Ilangi halaman tatambaian", "tooltip-n-portal": "Pasal rangka-gawian, apa nang kawa pian gawi, di mana gasan manggagai sasuatu", "tooltip-n-currentevents": "Gagai panjalasan pasal garamaan", "tooltip-n-recentchanges": "Daptar paubahan pahanyarnya dalam wiki", - "tooltip-n-randompage": "Tampaiakan babarang tungkaran", + "tooltip-n-randompage": "Tampaiakan babarang halaman", "tooltip-n-help": "Wadah manggagai patulung", - "tooltip-t-whatlinkshere": "Daptar samunyaan tungkaran wiki nang ada tautan ka sini", - "tooltip-t-recentchangeslinked": "Paubahan pahanyarnya dalam tungkaran nang baisi tautan tumatan tungkaran ngini", + "tooltip-t-whatlinkshere": "Daptar samunyaan halaman wiki nang ada tautan ka sini", + "tooltip-t-recentchangeslinked": "Paubahan pahanyarnya dalam halaman nang baisi tautan tumatan halaman ngini", "tooltip-feed-rss": "Kitihan RSS gasan tungkaran ini", "tooltip-feed-atom": "Kitihan Atum gasan tungkaran ngini", "tooltip-t-contributions": "Daptar sumbangan {{GENDER:$1|pamakai ngini}}", "tooltip-t-emailuser": "Kirimi suril ka {{GENDER:$1|pamakai ngini}}", "tooltip-t-upload": "Unggah barakas", - "tooltip-t-specialpages": "Daptar samunyaan tungkaran istimiwa", - "tooltip-t-print": "Vérsi citak tungkaran ngini", - "tooltip-t-permalink": "Tautan tatap ka ralatan tungkaran ngini", - "tooltip-ca-nstab-main": "Tiring tungkaran isi", - "tooltip-ca-nstab-user": "Tiring tungkaran pamakai", + "tooltip-t-specialpages": "Daptar samunyaan halaman istimiwa", + "tooltip-t-print": "Vérsi citak halaman ngini", + "tooltip-t-permalink": "Tautan tatap ka ralatan halaman ngini", + "tooltip-ca-nstab-main": "Janaki halaman isi", + "tooltip-ca-nstab-user": "Janaki halaman pamakai", "tooltip-ca-nstab-media": "Tiringi tungkaran media", - "tooltip-ca-nstab-special": "Ngini tungkaran istimiwa, kada kawa dibabak.", - "tooltip-ca-nstab-project": "Janaki tungkaran rangka gawian", - "tooltip-ca-nstab-image": "Tiringi tungkaran barakas", + "tooltip-ca-nstab-special": "Ngini halaman istimiwa, kada kawa dibabak.", + "tooltip-ca-nstab-project": "Janaki halaman rangka gawian", + "tooltip-ca-nstab-image": "Janaki halaman barakas", "tooltip-ca-nstab-mediawiki": "Janaki pasan sistem", "tooltip-ca-nstab-template": "Janaki citakan", "tooltip-ca-nstab-help": "Tiringi tungkaran patulung", - "tooltip-ca-nstab-category": "Tiring tungkaran tumbung", + "tooltip-ca-nstab-category": "Janaki halaman pilah", "tooltip-minoredit": "Tandai ngini sabagai sabutik pambabakan sapalih", "tooltip-save": "Simpan paubahan Pian", "tooltip-preview": "Tilik paubahan Pian. Muhun pakai ngini sabalum manyimpan.", @@ -1947,7 +1947,7 @@ "tooltip-watchlistedit-raw-submit": "Hanyari daptar itihan", "tooltip-recreate": "Ulah pulang tungkaran biar gin suah dihapus", "tooltip-upload": "Mulai pangunggahan", - "tooltip-rollback": "\"Pambulik\" mawalang babakan-babakan di tungkaran ngini ka panyumbang pahabisan dalam satu kali kalik.", + "tooltip-rollback": "\"Pambulik\" mamasahakan babakan-babakan di halaman ngini ka panyumbang pahabisan dalam satu kali kalik.", "tooltip-undo": "\"Bulikakan\" mawalangi ralatan ngini wan mambuka kutak pambabakan lawan mode tilik. Alasan kawa ditambahakan di kutak kasimpulan.", "tooltip-preferences-save": "Simpan kakatujuan", "tooltip-summary": "Buati sabuting kasimpulan handap", @@ -1979,14 +1979,14 @@ "pageinfo-default-sort": "Kunci urut baku", "pageinfo-length": "Panjang tungkaran (dalam bita)", "pageinfo-article-id": "ID Tungkaran", - "pageinfo-language": "Basa isi tungkaran", - "pageinfo-content-model": "Mudil isi tungkaran", + "pageinfo-language": "Basa isi halaman", + "pageinfo-content-model": "Mudil isi halaman", "pageinfo-robot-policy": "Pangindéksan ulih robot", "pageinfo-robot-index": "Dibulihakan", "pageinfo-robot-noindex": "Kada dibulihakan", "pageinfo-watchers": "Jumlah pa-itih tungkaran", "pageinfo-few-watchers": "Kurang matan $1 {{PLURAL:$1|pa-ilang}}", - "pageinfo-redirects-name": "Jumlah paugahan ka tungkaran ngini", + "pageinfo-redirects-name": "Jumlah paugahan ka halaman ngini", "pageinfo-subpages-name": "Subtungkaran tungkaran ngini", "pageinfo-subpages-value": "$1 ($2 {{PLURAL:$2|paugahan|paugahan}}; $3 {{PLURAL:$3|non-paugahan|non-paugahan}})", "pageinfo-firstuser": "Pa-ulah tungkaran", @@ -2001,7 +2001,7 @@ "pageinfo-hidden-categories": "{{PLURAL:$1|Pilah|Pilah}} tatukup ($1)", "pageinfo-templates": "{{PLURAL:$1|Citakan|Cicitakan}} nang ditransklusi ($1)", "pageinfo-transclusions": "{{PLURAL:$1|Tungkaran|Tutungkaran}} ditransklusikan pada ( $1 )", - "pageinfo-toolboxlink": "Panjalasan tungkaran", + "pageinfo-toolboxlink": "Panjalasan halaman", "pageinfo-redirectsto": "Ba-ugah ka", "pageinfo-redirectsto-info": "Maklumat", "pageinfo-contentpage": "Dirikin sabagai tungkaran isi", @@ -2072,7 +2072,7 @@ "metadata-help": "Barakas ngini mangandung panjalasan tambahan, mungkin ditambahakan ulih kudakan atawa paundai nang dipakai gasan maulah atawa digitalisasi barakas. Amun barakas ngini sudah diubah, parincian nang ada mungkin kada sapanuhnya sasuai lawan barakas nang diubah.", "metadata-expand": "Tampaiakan tambahan rincian", "metadata-collapse": "Sungkupakan tambahan rincian", - "metadata-fields": "Pancitraan metadata tadaptar dalam pasan ngini akan masuk dalam tungkaran pancitraan wayah tabel metadata tasungkup. Nang lainnya cagaran babaku tasungkup.\n* make\n* model\n* datetimeoriginal\n* exposuretime\n* fnumber\n* isospeedratings\n* focallength\n* artist\n* copyright\n* imagedescription\n* gpslatitude\n* gpslongitude\n* gpsaltitude", + "metadata-fields": "Pancitraan metadata tadaptar dalam pasan ngini akan masuk dalam halaman pancitraan wayah tabel metadata tatukup. Nang lainnya cagaran babaku tatukup.\n* make\n* model\n* datetimeoriginal\n* exposuretime\n* fnumber\n* isospeedratings\n* focallength\n* artist\n* copyright\n* imagedescription\n* gpslatitude\n* gpslongitude\n* gpsaltitude", "namespacesall": "samunyaan", "monthsall": "samunyaan", "confirmemail": "Yakinakan alamat suril", @@ -2108,7 +2108,7 @@ "confirm-unwatch-button": "OK", "confirm-unwatch-top": "Buang tungkaran ini matan paitihan Pian?", "imgmultipageprev": "← tungkaran sabalumnya", - "imgmultipagenext": "tungkaran salanjutnya →", + "imgmultipagenext": "halaman salanjutnya →", "imgmultigo": "Tulak!", "imgmultigoto": "Tulak ka tungkaran $1", "ascending_abbrev": "naik", @@ -2170,8 +2170,8 @@ "version-software-product": "Produk", "version-software-version": "Virsi", "version-entrypoints-header-url": "URL", - "redirect": "Paugahan badasarakan ID barakas, pamakai, tungkaran, ralatan, atawa log", - "redirect-summary": "Tungkaran istimiwa ngini baugah ka barakas (sasuai ngarannya), halaman (sasuai ID ralatan atawa ID tungkaran), tungkaran pamakai (sasuai ID pamakai), atawa buatan log (ID lognya). Pamakaian: [[{{#Special:Redirect}}/file/Cuntuh.jpg]], [[{{#Special:Redirect}}/page/64308]], [[{{#Special:Redirect}}/revision/328429]], [[{{#Special:Redirect}}/user/101]], or [[{{#Special:Redirect}}/logid/186]].", + "redirect": "Paugahan badasarakan ID barakas, pamakai, halaman, ralatan, atawa log", + "redirect-summary": "Halaman istimiwa ngini baugah ka barakas (sasuai ngarannya), halaman (sasuai ID ralatan atawa ID halaman), halaman pamakai (sasuai ID pamakai), atawa buatan log (ID lognya). Pamakaian: [[{{#Special:Redirect}}/file/Cuntuh.jpg]], [[{{#Special:Redirect}}/page/64308]], [[{{#Special:Redirect}}/revision/328429]], [[{{#Special:Redirect}}/user/101]], atawa [[{{#Special:Redirect}}/logid/186]].", "redirect-submit": "Lanjut", "redirect-lookup": "Panggagaian:", "redirect-value": "Nilai:", @@ -2187,7 +2187,7 @@ "fileduplicatesearch-result-1": "Barakas ''$1'' kada baisi panggandaan parsis.", "fileduplicatesearch-result-n": "Barakas ''$1'' baisi {{PLURAL:$2|1 panggandaan parsis|$2 papanggandaan parsis}}.", "fileduplicatesearch-noresults": "Kadada barakas bangaran ''$1'' taugai.", - "specialpages": "Tungkaran istimiwa", + "specialpages": "Halaman istimiwa", "specialpages-note-restricted": "* Tutungkaran istimiwa normal\n* Tutungkaran istimiwa tabatas.\n* Tutungkaran istimiwa timbuluk (pinanya bakulat).", "specialpages-group-maintenance": "Lapuran pamaliharaan", "specialpages-group-other": "Tungkaran istimiwa lainnya", @@ -2240,10 +2240,10 @@ "htmlform-submit": "Kirim", "htmlform-reset": "Bulikakan paubahan", "htmlform-selectorother-other": "Lain-lain", - "logentry-delete-delete": "$1 {{GENDER:$2|mahapus}} tungkaran $3", - "logentry-delete-restore": "$1 {{GENDER:$2|mambulikakan}}tungkaran $3 ($4)", + "logentry-delete-delete": "$1 {{GENDER:$2|mahapus}} halaman $3", + "logentry-delete-restore": "$1 {{GENDER:$2|mambulikakan}} halaman $3 ($4)", "logentry-delete-event": "$1 mangganti kakawaan dijanaki {{PLURAL:$5|sabuah log kajadian|$5 log kajadian}} pintangan $3: $4", - "logentry-delete-revision": "$1 {{GENDER:$2|maubah}} tampaian {{PLURAL:$5|$5 ralatan}} di tungkaran $3: $4", + "logentry-delete-revision": "$1 {{GENDER:$2|maubah}} tampaian {{PLURAL:$5|$5 ralatan}} di halaman $3: $4", "logentry-delete-event-legacy": "$1 mangganti kakawaan dijanaki log kajadian pintangan $3", "logentry-delete-revision-legacy": "$1 mangganti kakawaan dijanaki ralatan pintangan tungkaran $3", "logentry-suppress-delete": "$1 ditikin tungkaran $3", @@ -2259,12 +2259,12 @@ "revdelete-uname-unhid": "ngaran pamakai kada disungkupakan", "revdelete-restricted": "Talamar pambatasan hagan pambakal-pambakal", "revdelete-unrestricted": "Buang pambatasan gasan pambakal-pambakal", - "logentry-move-move": "$1 {{GENDER:$2|mamindahakan}} tungkaran $3 ka $4", - "logentry-move-move-noredirect": "$1 {{GENDER:$2|mamindahakan}} tungkaran $3 ka $4 kada pakai maulah paugahan", - "logentry-move-move_redir": "$1 {{GENDER:$2|mamindahakan}} tungkaran $3 ka $4 manimpa paugahan lawas", + "logentry-move-move": "$1 {{GENDER:$2|mamindahakan}} halaman $3 ka $4", + "logentry-move-move-noredirect": "$1 {{GENDER:$2|mamindahakan}} halaman $3 ka $4 kada pakai maulah paugahan", + "logentry-move-move_redir": "$1 {{GENDER:$2|mamindahakan}} halaman $3 ka $4 manimpa paugahan lawas", "logentry-move-move_redir-noredirect": "$1 diugah tungkaran $3 ka $4 lung sabuah paugahan awan-kada maninggalakan sabuah paugahan", "logentry-patrol-patrol": "$1 diciri'i ralatan $4 matan tungkaran $3 taawasi", - "logentry-patrol-patrol-auto": "$1 utumatis {{GENDER:$2|manandai}} ralatan $4 matan tungkaran $3 taitihi", + "logentry-patrol-patrol-auto": "$1 utumatis {{GENDER:$2|manandai}} ralatan $4 matan halaman $3 taitihi", "logentry-newusers-newusers": "$1 ma-ulah sabuting akun pamakai", "logentry-newusers-create": "$1 {{GENDER:$2|maulah}} akun pamakai", "logentry-newusers-create2": "$1 ma-ulah sabuting akun pamakai $3", @@ -2275,7 +2275,7 @@ "feedback-adding": "Manambahi kitihanbalik ka tungkaran...", "feedback-bugcheck": "Harat! hanyar dipariksa bahwasa ngini lainan salah asa [$1 bug nang dipinandui].", "feedback-bugnew": "Ulun mamariksa. Malapurakan sabuah bug hanyar", - "feedback-bugornote": "Lamun Pian sudah siap gasan mamaparakan masalah téknis sacara rinci silakan [$1 malapurakan bug].\nLamun kada, Pian kawa mamakai purmulir mudah di bawah ngini. Kumintar Pian akan ditambahakan ka tungkaran \"[$3 $2]\", baimbai lawan ngaran pamakai Pian wan apa paramban nang Pian pakai.", + "feedback-bugornote": "Lamun Pian sudah siap gasan mamaparakan masalah téknis sacara rinci silakan [$1 malapurakan bug].\nLamun kada, Pian kawa mamakai purmulir mudah di bawah ngini. Kumintar Pian akan ditambahakan ka halaman \"[$3 $2]\", baimbai lawan ngaran pamakai Pian wan apa paramban nang Pian pakai.", "feedback-cancel": "Pasah", "feedback-close": "Sudah", "feedback-error1": "Kasalahan: kulihan matan API kada-dipinandui", @@ -2306,5 +2306,5 @@ "special-characters-group-thai": "Thai", "special-characters-group-lao": "Lao", "special-characters-group-khmer": "Khmer", - "randomrootpage": "Tungkaran dasar sambarang" + "randomrootpage": "Halaman dasar sambarang" } diff --git a/languages/i18n/bn.json b/languages/i18n/bn.json index c5f501e718..2fc856d676 100644 --- a/languages/i18n/bn.json +++ b/languages/i18n/bn.json @@ -2516,6 +2516,8 @@ "ipb-confirm": "বাধা নিশ্চিতকরণ", "ipb-sitewide": "সাইটব্যাপী", "ipb-partial": "আংশিক", + "ipb-sitewide-help": "উইকির সব পাতায় ও অন্যান্য সব অবদানে বাধা।", + "ipb-partial-help": "নির্দিষ্ট পাতা ও নামস্থানসমূহ।", "ipb-pages-label": "পাতা", "ipb-namespaces-label": "নামস্থানসমূহ", "badipaddress": "আইপি (IP) ঠিকানাটি অগ্রহনযোগ্য", diff --git a/languages/i18n/ee.json b/languages/i18n/ee.json index 74b255a4a9..9a10b4f0f5 100644 --- a/languages/i18n/ee.json +++ b/languages/i18n/ee.json @@ -6,7 +6,8 @@ "아라", "Aguve", "Latercio2000", - "Hello903hello" + "Hello903hello", + "Enock4seth" ] }, "tog-underline": "Flitete ɖe kadodo te:", @@ -114,7 +115,7 @@ "period-pm": "ŊDƆ", "pagecategories": "{{PLURAL:$1|Hatsotso|Hatsotsowo}}", "category_header": "Axa siwo le hatsotso \"$1\"", - "hidden-categories": "{{PLURAL:$1||Hatsotso ɣaɣla|Hatsotso ɣaɣla}}", + "hidden-categories": "{{PLURAL:$1|Hatsotso ɣaɣla|Hatsotso ɣaɣlawo}}", "listingcontinuesabbrev": "yi edzi", "about": "Eŋunya", "newwindow": "(eʋua fesre yeye)", diff --git a/languages/i18n/en.json b/languages/i18n/en.json index 71f56332d2..0dd9fe0e77 100644 --- a/languages/i18n/en.json +++ b/languages/i18n/en.json @@ -4044,6 +4044,9 @@ "mw-widgets-abandonedit-discard": "Discard edits", "mw-widgets-abandonedit-keep": "Continue editing", "mw-widgets-abandonedit-title": "Are you sure?", + "mw-widgets-copytextlayout-copy": "Copy", + "mw-widgets-copytextlayout-copy-fail": "Failed to copy to clipboard.", + "mw-widgets-copytextlayout-copy-success": "Copied to clipboard.", "mw-widgets-dateinput-no-date": "No date selected", "mw-widgets-dateinput-placeholder-day": "YYYY-MM-DD", "mw-widgets-dateinput-placeholder-month": "YYYY-MM", diff --git a/languages/i18n/eo.json b/languages/i18n/eo.json index d350c34367..2acc89c887 100644 --- a/languages/i18n/eo.json +++ b/languages/i18n/eo.json @@ -426,6 +426,8 @@ "virus-scanfailed": "skanado malsukcesis (kun kodo $1)", "virus-unknownscanner": "nekonata kontraŭvirusilo:", "logouttext": "Vi nun estas elsalutinta.\n\nNotu ke por iuj paĝoj eble ŝajnos kvazaŭ vi ankoraŭ estus ensalutinta, ĝis kiam vi vakigos la kaŝmemoron de via retumilo.", + "logging-out-notify": "Vi estas elsalutanta; bonvolu atendi.", + "logout-failed": "Vi ne povas elsaluti nun: $1", "cannotlogoutnow-title": "Nuntempe ne eblas elsaluti", "cannotlogoutnow-text": "Ne eblas elsaluti dum uzado de $1.", "welcomeuser": "Bonvenon, $1!", @@ -601,6 +603,7 @@ "resetpass-abort-generic": "La ŝanĝo de pasvorto estas nuligita de kromprogramo.", "resetpass-expired": "Via pasvorto eksvalidiĝis. Bonvolu starigi novan pasvorton por ensaluti.", "resetpass-expired-soft": "Via pasvorto eksvalidiĝis kaj devas esti ŝanĝata. Bonvolu nun elekti novan pasvorton, aŭ alklaki \"{{int:authprovider-resetpass-skip-label}}\" por ŝanĝi ĝin poste.", + "resetpass-validity": "Via pasvorto ne estas valida: $1\n\nBonvolu fari novan pasvorton por ensaluti.", "resetpass-validity-soft": "Via pasvorto ne estas valida: $1\n\nBonvolu elekti novan pasvorton nun, aŭ alklaku \"{{int:authprovider-resetpass-skip-label}}\" por ŝanĝi ĝin poste.", "passwordreset": "Restarigo de la pasvorto", "passwordreset-text-one": "Plenigu ĉi tiun formularon por ricevi provizoran pasvorton per retpoŝto.", @@ -1070,6 +1073,7 @@ "localtime": "Loka tempo:", "timezoneuseserverdefault": "Uzi implicitaĵon de servilo ($1)", "timezoneuseoffset": "Alia (Enigu diferencon)", + "timezone-useoffset-placeholder": "Ekzemplaj valoroj: \"-07:00\" aŭ \"01:00\"", "servertime": "Servila tempo:", "guesstimezone": "Plenigita el la foliumilo", "timezoneregion-africa": "Afriko", @@ -1285,6 +1289,7 @@ "grant-editmycssjs": "Redakti viajn personajn CSS-kodon / JSON / Ĝavoskripton", "grant-editmyoptions": "Redakti viajn personajn agordojn", "grant-editmywatchlist": "Redakti vian atentaron", + "grant-editsiteconfig": "Redakti CSS- aŭ JavaScript-dosierojn de kaj retejo kaj uzantoj", "grant-editpage": "Redakti ekzistantajn paĝojn", "grant-editprotected": "Redakti protektitajn paĝojn", "grant-highvolume": "Ampleksega redaktado", @@ -1407,6 +1412,8 @@ "rcfilters-quickfilters-placeholder-title": "Ankoraŭ neniuj filtriloj estas konservitaj", "rcfilters-savedqueries-defaultlabel": "Konservitaj filtriloj", "rcfilters-savedqueries-rename": "Alinomi", + "rcfilters-savedqueries-setdefault": "Farigi implicito", + "rcfilters-savedqueries-unsetdefault": "Forigi implicitan valoron", "rcfilters-savedqueries-remove": "Forigi", "rcfilters-savedqueries-new-name-label": "Nomo", "rcfilters-savedqueries-new-name-placeholder": "Priskribas la celon de la filtrilo", @@ -1416,7 +1423,7 @@ "rcfilters-savedqueries-add-new-title": "Konservi la nunajn filtrilajn agordojn", "rcfilters-restore-default-filters": "Restarigi defaŭltajn filtrilojn", "rcfilters-clear-all-filters": "Nuligi ĉiujn filtrilojn", - "rcfilters-show-new-changes": "Vidi la plej novajn ŝanĝojn", + "rcfilters-show-new-changes": "Vidi la novajn ŝanĝojn ekde $1", "rcfilters-search-placeholder": "Filtri lastajn ŝanĝojn (vi povas elekti aŭ ekskribi)", "rcfilters-invalid-filter": "Nevalida filtrilo", "rcfilters-empty-filter": "Ekzistas neniuj aktivaj filtriloj. Ĉiuj kontribuaĵoj estas montritaj.", @@ -1447,6 +1454,7 @@ "rcfilters-filter-bots-description": "Redaktoj farita de aŭtomatigitaj iloj.", "rcfilters-filter-humans-label": "Homa (ne robota)", "rcfilters-filter-humans-description": "Redaktoj farita de homaj redaktantoj.", + "rcfilters-filtergroup-reviewstatus": "Reviziiteco", "rcfilters-filter-reviewstatus-unpatrolled-label": "Ne patrolita", "rcfilters-filter-reviewstatus-manual-description": "Redaktoj mane markita kiel patrolita.", "rcfilters-filter-reviewstatus-manual-label": "Mane patrolita", @@ -1484,6 +1492,7 @@ "rcfilters-filter-previousrevision-label": "Ne la lasta revizio", "rcfilters-filter-previousrevision-description": "Ĉiuj ŝanĝoj kiu ne estas la \"lasta revizio\".", "rcfilters-filter-excluded": "Ekskludita", + "rcfilters-tag-prefix-namespace-inverted": ":ne $1", "rcfilters-exclude-button-off": "Ekskludi la elektitajn", "rcfilters-exclude-button-on": "Ekskludante la elektitajn", "rcfilters-view-tags": "Redaktoj kun etikedoj", @@ -1733,6 +1742,7 @@ "uploadstash-bad-path-invalid": "Vojo ne estas valida.", "uploadstash-bad-path-unknown-type": "Nekonata tipo \"$1\".", "uploadstash-bad-path-unrecognized-thumb-name": "Nerekonita miniatura nomo.", + "uploadstash-bad-path-bad-format": "Ŝlosilo \"$1\" ne estas valide aranĝita", "uploadstash-no-extension": "Dosiersufikso estas nula.", "uploadstash-zero-length": "Longo de dosiero estas nul.", "invalid-chunk-offset": "Malvalida deŝovo de dosierpeco", @@ -2011,6 +2021,7 @@ "apisandbox-loading-results": "Ricevas APIajn rezultojn…", "apisandbox-results-error": "Eraro okazis dum ŝutis la APIan petan respondon: $1.", "apisandbox-request-url-label": "Mendi URL-on.", + "apisandbox-request-json-label": "Peti JSON-objekton:", "apisandbox-request-time": "Tempo de peto:{{PLURAL:$1|$1 ms}}", "apisandbox-results-fixtoken": "Korekti ĵetonon kaj resendi", "apisandbox-results-fixtoken-fail": "Malsukcese venigis ĵetonon je \"$1\".", @@ -2037,6 +2048,7 @@ "speciallogtitlelabel": "Celo (titolo aŭ {{ns:user}}:salutnomo por uzanto):", "log": "Protokoloj", "logeventslist-submit": "Montri", + "logeventslist-more-filters": "Montri pliajn protokolojn:", "logeventslist-patrol-log": "Patrolprotokolo", "logeventslist-tag-log": "Protokolo de etikedoj", "all-logs-page": "Ĉiuj publikaj protokoloj", @@ -2386,6 +2398,7 @@ "mycontris": "Kontribuoj", "anoncontribs": "Kontribuoj", "contribsub2": "De {{GENDER:$3|$1}} ($2)", + "contributions-subtitle": "Por {{GENDER:$3|$1}}", "contributions-userdoesnotexist": "Uzanto-konto \"$1\" ne estas registrita.", "nocontribs": "Trovis neniajn redaktojn laŭ tiu kriterio.", "uctop": "nuna", @@ -2671,6 +2684,7 @@ "thumbnail_dest_directory": "Ne povas krei destinan dosierujon", "thumbnail_image-type": "Tia bildo ne subtenata", "thumbnail_gd-library": "Nekompleta GD-biblioteka konfiguro: mankas funkcio $1", + "thumbnail_image-size-zero": "Grando de bilda dosiero estas ŝajne nul.", "thumbnail_image-missing": "Dosiero verŝajne estas foriga: $1", "thumbnail_image-failure-limit": "Lastatempe estis tro multaj malsukcesaj provoj ($1 aŭ pli) por bildigi tiun ĉi miniaturon. Bonvolu reprovi poste.", "import": "Enporti paĝojn", @@ -2878,6 +2892,8 @@ "pageinfo-category-subcats": "Nombro de subkategorioj", "pageinfo-category-files": "Nombro de dosieroj", "pageinfo-user-id": "Identigilo de uzanto", + "pageinfo-file-hash": "Haketa valoro", + "pageinfo-view-protect-log": "Vidi la protekdadan protkolon por ĉi tiu paĝo.", "markaspatrolleddiff": "Marki kiel patrolitan", "markaspatrolledtext": "Marki ĉi tiun paĝon patrolita", "markaspatrolledtext-file": "Marki ĉi tiu versio de dosiero kiel patrolita", @@ -2932,6 +2948,7 @@ "newimages-legend": "Dosiernomo", "newimages-label": "Dosiernomo (aŭ parto de ĝi):", "newimages-user": "IP-adreso aŭ uzantnomo", + "newimages-newbies": "Montri nur kotribuojn de novaj kontoj", "newimages-showbots": "Montri alŝutojn per robotoj", "newimages-hidepatrolled": "Malvidigi la patrolitajn alŝutitojn", "noimages": "Nenio videbla.", @@ -3352,6 +3369,9 @@ "logentry-delete-delete": "$1 forigis paĝon $3", "logentry-delete-delete_redir": "$1 {{GENDER:$2|forigis}} alidirektitan $3 per anstataŭigado", "logentry-delete-restore": "$1 {{GENDER:$2|restarigis}} paĝon $3 ($4)", + "logentry-delete-restore-nocount": "$1 {{GENDER:$2|restarigis}} paĝon $3", + "restore-count-revisions": "{{PLURAL:$1|1 revizio|$1 revizioj}}", + "restore-count-files": "{{PLURAL:$1|1 dosiero|$1 dosieroj}}", "logentry-delete-event": "$1 ŝanĝis videblecon de {{PLURAL:$5|protokola evento|$5 protokolaj eventoj}} je $3: $4", "logentry-delete-revision": "$1 {{GENDER:$2|ŝanĝis}} videblecon de {{PLURAL:$5|revizio|$5 reviziojn}} je paĝo $3: $4", "logentry-delete-event-legacy": "$1 {{GENDER:$2|ŝanĝis}} videblecon de protokolaj eventoj en $3", @@ -3372,6 +3392,8 @@ "logentry-block-block": "$1 {{GENDER:$2|forbaris}} la {{GENDER:$4|uzanton $3}} por daŭro de $5 $6", "logentry-block-unblock": "$1 {{GENDER:$2|malforbaris}} la {{GENDER:$4|uzanton $3}}", "logentry-block-reblock": "$1 {{GENDER:$2|ŝanĝis}} agordojn de forbaro por la {{GENDER:$4|uzanto $3}} por daŭro de $5 $6", + "logentry-partialblock-block-page": "la {{PLURAL:$1|paĝo|paĝoj}} $2", + "logentry-partialblock-block-ns": "la {{PLURAL:$1|nomspaco|nomspacoj}} $2", "logentry-suppress-block": "$1 {{GENDER:$2|forbaris}} la {{GENDER:$4|uzanton $3}} por daŭro de $5 $6", "logentry-suppress-reblock": "$1 {{GENDER:$2|ŝanĝis}} agordojn de forbaro por la {{GENDER:$4|uzanto $3}} por daŭro de $5 $6", "logentry-import-upload": "$1 {{GENDER:$2|importis}} $3 per dosiera alŝuto", @@ -3710,12 +3732,18 @@ "edit-error-long": "Eraroj:\n\n$1", "revid": "revizio $1", "pageid": "Identigilo de paĝo $1", + "rawhtml-notallowed": "etikedo <html> ne povas esti uzata ekster ordinaraj paĝoj.", "gotointerwiki": "Elirante retejon {{SITENAME}}", + "gotointerwiki-invalid": "La specifita titolo ne estas valida.", "pagedata-title": "Paĝaj datumoj", "pagedata-bad-title": "Nevalida titolo: \"$1\".", "passwordpolicies": "Reguloj pri pasvortoj", "passwordpolicies-group": "Grupo", "passwordpolicies-policies": "Politiko", "passwordpolicies-policy-minimalpasswordlength": "Pasvortoj devas esti longaj almenaŭ $1 {{PLURAL:$1|1 signon|$1 signojn}}.", - "passwordpolicies-policy-passwordcannotmatchusername": "La pasvorto ne povas esti la sama kiel la uzantnomo" + "passwordpolicies-policy-passwordcannotmatchusername": "La pasvorto ne povas esti la sama kiel la uzantnomo", + "passwordpolicies-policyflag-forcechange": "devas ŝanĝi dum ensaluto", + "passwordpolicies-policyflag-suggestchangeonlogin": "sugesti ŝanĝadon dum ensaluto", + "userlogout-continue": "Se vi vola elsaluti, bonvolu [$1 iri al la elsaluta paĝo].", + "userlogout-sessionerror": "Elsalutado malsukcesis pro sesia eraro. Bonvolu [$1 reprovi]." } diff --git a/languages/i18n/eu.json b/languages/i18n/eu.json index b5924e2d1a..c6ca43ec10 100644 --- a/languages/i18n/eu.json +++ b/languages/i18n/eu.json @@ -2915,7 +2915,7 @@ "pageinfo-file-hash": "Hash balioa", "pageinfo-view-protect-log": "Erregistro babesak ikusi orrialde honetarako", "markaspatrolleddiff": "Patruilatutzat markatu", - "markaspatrolledtext": "Artikulu hau patruilatutzat markatu", + "markaspatrolledtext": "Markatu orri hau patruilatutzat", "markaspatrolledtext-file": "Fitxategi honen bertsioa patruilatutzat markatu", "markedaspatrolled": "Patruilatutzat markatu da", "markedaspatrolledtext": "[[:$1]]-(r)en bertsio hautatua patruilatutzat markatu da.", diff --git a/languages/i18n/exif/vi.json b/languages/i18n/exif/vi.json index 411ed3ed7b..941d15fa73 100644 --- a/languages/i18n/exif/vi.json +++ b/languages/i18n/exif/vi.json @@ -199,6 +199,7 @@ "exif-photometricinterpretation-3": "Bảng màu", "exif-photometricinterpretation-4": "Mặt nạ trong suốt", "exif-photometricinterpretation-5": "Riêng rẽ (có lẽ CMYK)", + "exif-photometricinterpretation-8": "CIE L*a*b*", "exif-photometricinterpretation-9": "CIE L*a*b* (mã hóa Hiệp hội Màu sắc Quốc tế)", "exif-photometricinterpretation-10": "CIE L*a*b* (mã hóa Liên minh Viễn thông Quốc tế)", "exif-photometricinterpretation-32803": "Dãy bộ lọc màu sắc", diff --git a/languages/i18n/fr.json b/languages/i18n/fr.json index 9c48490d49..eda37f9a1f 100644 --- a/languages/i18n/fr.json +++ b/languages/i18n/fr.json @@ -428,8 +428,8 @@ "toc": "Sommaire", "showtoc": "afficher", "hidetoc": "masquer", - "collapsible-collapse": "Réduire", - "collapsible-expand": "Développer", + "collapsible-collapse": "masquer", + "collapsible-expand": "afficher", "confirmable-confirm": "Êtes-vous sûr{{GENDER:$1||e}} ?", "confirmable-yes": "Oui", "confirmable-no": "Non", diff --git a/languages/i18n/fy.json b/languages/i18n/fy.json index 736df630a9..9b14ac1b22 100644 --- a/languages/i18n/fy.json +++ b/languages/i18n/fy.json @@ -68,7 +68,7 @@ "tog-showrollbackconfirmation": "Befêstigingsdialooch sjen litte by it klikken op 'weromdraaie'", "underline-always": "Altyd", "underline-never": "Nea", - "underline-default": "Webblêder-standert", + "underline-default": "Foarmjouwing- as webblêderstandert", "editfont-style": "Lettertypestyl bewurkingsfjild", "editfont-monospace": "Net-proporsjoneel lettertype", "editfont-sansserif": "Skreefleas lettertype", @@ -735,7 +735,7 @@ "mypreferences": "Foarkarren", "prefs-edits": "Tal bewurkings:", "prefsnologintext2": "Jo moatte jo oanmelde om jo ynstellings wizigje te kinnen.", - "prefs-skin": "Side-oansjen", + "prefs-skin": "Foarmjouwing", "skin-preview": "Proefbyld", "datedefault": "Gjin foarkar", "prefs-user-pages": "Meidoggersiden", @@ -775,13 +775,14 @@ "timezonelegend": "Tiidsône:", "localtime": "Pleatslike tiid:", "timezoneuseserverdefault": "Wikistandert brûke ($1)", - "timezoneuseoffset": "Oars (tiidferskil oanjaan)", + "timezoneuseoffset": "Oars (ferskil hjirûnder oanjaan)", + "timezone-useoffset-placeholder": "Foarbyldwearden: \"-07:00\" as \"01:00\"", "servertime": "Servertiid:", - "guesstimezone": "Freegje de blêder", + "guesstimezone": "Webblêder ynfolje litte", "timezoneregion-africa": "Afrika", "timezoneregion-america": "Amearika", "timezoneregion-antarctica": "Antarktika", - "timezoneregion-arctic": "Arktysk", + "timezoneregion-arctic": "Noardpoalgebiet", "timezoneregion-asia": "Aazje", "timezoneregion-atlantic": "Atlantyske Oseaan", "timezoneregion-australia": "Austraalje", @@ -793,7 +794,9 @@ "prefs-namespaces": "Nammeromten", "default": "standert", "prefs-files": "Bestannen", - "prefs-custom-js": "Persoanlik JS", + "prefs-custom-css": "Oanpast CSS", + "prefs-custom-js": "Oanpast JavaScript", + "prefs-common-config": "Dield CSS/JSON/JavaScript foar alle foarmjouwings:", "prefs-reset-intro": "Jo kinne dizze side brûke, en set jo ynstellings werom nei de websteestandert.\nDat kin net ûngedien makke wurde.", "prefs-emailconfirm-label": "E-mailbefêstiging:", "youremail": "E-mail:", diff --git a/languages/i18n/hr.json b/languages/i18n/hr.json index c5718b9a1c..5c71b0516e 100644 --- a/languages/i18n/hr.json +++ b/languages/i18n/hr.json @@ -410,6 +410,7 @@ "virus-scanfailed": "skeniranje neuspješno (kod $1)", "virus-unknownscanner": "nepoznati antivirus:", "logouttext": "'''Odjavili ste se.'''\n\nNeke se stranice mogu prikazivati kao da ste još uvijek prijavljeni, sve dok ne očistite međuspremnik svog preglednika.", + "logging-out-notify": "Odjavljujemo Vas, molimo pričekajte.", "cannotlogoutnow-title": "Odjava trenutno nije moguća", "cannotlogoutnow-text": "Odjava nije moguća tijekom uporabe $1.", "welcomeuser": "Dobrodošli, $1!", @@ -2380,6 +2381,7 @@ "blocklink": "blokiraj", "unblocklink": "deblokiraj", "change-blocklink": "promijeni blokiranje", + "empty-username": "(suradničko ime nije dostupno)", "contribslink": "doprinosi", "emaillink": "pošalji e-poruku", "autoblocker": "Automatski ste blokirani jer je Vašu IP adresu nedavno koristio \"[[User:$1|$1]]\".\nRazlog koji je dan za blokiranje $1 bio je \"$2\".", @@ -2652,11 +2654,11 @@ "tooltip-summary": "Unesite kratki sažetak", "common.css": "/** Uređivanje ove CSS datoteke će se odraziti na sve skinove */", "common.js": "/* JavaScript kod na ovoj stranici će biti izvršen kod svakog suradnika pri svakom učitavanju svake stranice wikija. */", - "anonymous": "Neprijavljeni {{PLURAL:$1|suradnik|suradnici}} projekta {{SITENAME}}", + "anonymous": "{{PLURAL:$1|anonimnoga suradnika/suradnice|$1 anonimna suradnika|$1 anonimnih suradnika}} projekta {{SITENAME}}", "siteuser": "Suradnik $1 na projektu {{SITENAME}}", "anonuser": "{{SITENAME}} anonimni suradnik $1", "lastmodifiedatby": "Ova stranica posljednji je put uređena u $2, dana $1 a uređivao/la je $3.", - "othercontribs": "Temelji se na doprinosu suradnika $1.", + "othercontribs": "Temelji se na radu $1.", "others": "drugih", "siteusers": "{{SITENAME}} {{PLURAL:$2|{{GENDER:$1|suradnik|suradnica}}|suradnici}} $1", "anonusers": "{{SITENAME}} {{PLURAL:$2|anonimni suradnik|anonimni suradnici}} $1", diff --git a/languages/i18n/ia.json b/languages/i18n/ia.json index 1b95b4e154..cce94a997a 100644 --- a/languages/i18n/ia.json +++ b/languages/i18n/ia.json @@ -387,6 +387,8 @@ "virus-scanfailed": "scannamento fallite (codice $1)", "virus-unknownscanner": "antivirus non cognoscite:", "logouttext": "'''Tu ha claudite le session.'''\n\nNota que alcun paginas pote continuar a apparer como si tu esserea ancora authenticate. Pro remediar isto, tu pote vacuar le cache de tu navigator.", + "logging-out-notify": "Le session se claude, un momento…", + "logout-failed": "Impossibile clauder session ora: $1", "cannotlogoutnow-title": "Impossibile clauder session ora", "cannotlogoutnow-text": "Non es possibile clauder le session usante $1.", "welcomeuser": "Benvenite, $1!", diff --git a/languages/i18n/ja.json b/languages/i18n/ja.json index 65ff3d0f10..82a4ccc99b 100644 --- a/languages/i18n/ja.json +++ b/languages/i18n/ja.json @@ -472,6 +472,8 @@ "virus-scanfailed": "スキャンに失敗しました (コード $1)", "virus-unknownscanner": "不明なウイルス対策ソフトウェア:", "logouttext": "ログアウトしました。\n\nページによっては、ブラウザーのキャッシュをクリアするまで、ログインしているかのように表示され続ける場合があるためご注意ください。", + "logging-out-notify": "ログアウト中です。お待ちください。", + "logout-failed": "今はログアウトできません: $1", "cannotlogoutnow-title": "今はログアウトできません", "cannotlogoutnow-text": "$1 使用中には、ログアウトは不可能です。", "welcomeuser": "ようこそ、$1さん!", @@ -820,6 +822,9 @@ "edit-gone-missing": "ページを更新できませんでした。\n既に削除されているようです。", "edit-conflict": "編集が競合。", "edit-no-change": "文章が変更されていないため、編集は無視されました。", + "edit-slots-cannot-add": "次の{{PLURAL:$1|スロット}}は、ここではサポートされません: $2。", + "edit-slots-cannot-remove": "次の{{PLURAL:$1|スロット}}は必須のため取り除くことができません: $2。", + "edit-slots-missing": "次の{{PLURAL:$1|スロット}}がありません。: $2。", "postedit-confirmation-created": "ページを作成しました。", "postedit-confirmation-restored": "ページを復元しました。", "postedit-confirmation-saved": "編集を保存しました。", @@ -1437,6 +1442,7 @@ "action-ipblock-exempt": "IPブロック、自動ブロック、広域ブロックの回避", "action-unblockself": "自分に対するブロックの解除", "action-reupload-own": "自分がアップロードした既存のファイルへの上書き", + "action-markbotedits": "巻き戻しをボットの編集として扱う", "action-patrolmarks": "最近の更新での巡回済み印の閲覧", "action-override-export-depth": "リンク先ページの5階層まで含めた書き出し", "action-suppressredirect": "転送ページの作成を伴わないページの移動", @@ -2379,6 +2385,7 @@ "deleting-backlinks-warning": "警告: 削除しようとしているページは、[[Special:WhatLinksHere/{{FULLPAGENAME}}|他のページ]]からリンクまたは参照読み込みされています。", "deleting-subpages-warning": "警告: 削除しようとしているページには、[[Special:PrefixIndex/{{FULLPAGENAME}}/|{{PLURAL:$1|下位ページ|$1 件の下位ページ|51=50 件以上の下位ページ}}]]があります。", "rollback": "編集を巻き戻し", + "rollback-confirmation-confirm": "ご確認ください:", "rollback-confirmation-yes": "巻き戻し", "rollback-confirmation-no": "キャンセル", "rollbacklink": "巻き戻し", @@ -2662,6 +2669,7 @@ "blocklink": "ブロック", "unblocklink": "ブロック解除", "change-blocklink": "設定を変更", + "empty-username": "(使用可能な利用者名がありません)", "contribslink": "投稿記録", "emaillink": "メールを送信", "autoblocker": "この IP アドレスを「[[User:$1|$1]]」が最近使用したため、自動ブロックされています。\n$1 のブロックの理由は「$2」です。", diff --git a/languages/i18n/ko.json b/languages/i18n/ko.json index 8fdb8edcf4..3e40e6f189 100644 --- a/languages/i18n/ko.json +++ b/languages/i18n/ko.json @@ -445,6 +445,8 @@ "virus-scanfailed": "검사 실패 (코드 $1)", "virus-unknownscanner": "알 수 없는 안티 바이러스:", "logouttext": "이제 로그아웃했습니다.\n\n브라우저 캐시를 지울 때까지 일부 문서에서 아직 로그인이 되어 있는 것처럼 보일 수 있음에 유의하세요.", + "logging-out-notify": "로그아웃 중이니 기다려 주십시오.", + "logout-failed": "지금 로그아웃할 수 없습니다: $1", "cannotlogoutnow-title": "지금 로그아웃할 수 없습니다", "cannotlogoutnow-text": "$1 사용 중에는 로그아웃이 불가능합니다.", "welcomeuser": "$1님, 환영합니다!", diff --git a/languages/i18n/lb.json b/languages/i18n/lb.json index e8b26fcaf6..58e076a916 100644 --- a/languages/i18n/lb.json +++ b/languages/i18n/lb.json @@ -1386,7 +1386,7 @@ "rcfilters-view-tags-help-icon-tooltip": "Méi iwwer Ännerunge mat Markéierunge gewuer ginn", "rcfilters-liveupdates-button": "Live-Aktualiséierungen", "rcfilters-liveupdates-button-title-on": "Live-Aktualiséierungen ausschalten", - "rcfilters-liveupdates-button-title-off": "Nei Ännerunge weisen esoubal wéi se gemaach ginn", + "rcfilters-liveupdates-button-title-off": "Nei Ännerunge weise soubal wéi se gemaach ginn", "rcfilters-watchlist-markseen-button": "All Ännerungen als gesi markéieren", "rcfilters-watchlist-edit-watchlist-button": "Ännert Är Lëscht vun iwwerwaachte Säiten", "rcfilters-watchlist-showupdated": "Ännerungen op Säiten déi Dir net besicht hutt zanter d'Ännerunge gemaach goufen si fett geschriwwen.", @@ -2297,7 +2297,7 @@ "ipb-hardblock": "Verhënneren datt ageloggt Benotzer vun dëser IP-Adress aus Ännerunge maache kënnen", "ipbcreateaccount": "Benotzerkont opmaachen", "ipbemailban": "E-Maile verschécken", - "ipbenableautoblock": "Automatesch déi lescht IP-Adress spären déi vun dësem Benotzer benotzt gouf, an all IP-Adresse vun denen dëse Benotzer versicht Ännerunge virzehuelen", + "ipbenableautoblock": "Automatesch déi lescht IP-Adress spären déi vun dësem Benotzer benotzt gouf, an all IP-Adresse vun denen dëse Benotzer versicht Ännerungen ze maachen", "ipbsubmit": "Dës IP-Adress resp dëse Benotzer spären", "ipbother": "Aner Dauer:", "ipboptions": "2 Stonnen:2 hours,1 Dag:1 day,3 Deeg:3 days,1 Woch:1 week,2 Wochen:2 weeks,1 Mount:1 month,3 Méint:3 months,6 Méint:6 months,1 Joer:1 year,onbegrenzt:infinite", diff --git a/languages/i18n/lrc.json b/languages/i18n/lrc.json index e5f17c013c..41f87a8e7e 100644 --- a/languages/i18n/lrc.json +++ b/languages/i18n/lrc.json @@ -80,7 +80,7 @@ "february": "فڤریٱ", "march": "مارس", "april": "آڤریلٛ", - "may_long": "ماٛ", + "may_long": "ماٛی", "june": "ژوئٱن", "july": "جۊلای", "august": "آگوست", @@ -104,7 +104,7 @@ "feb": "فڤریٱ", "mar": "مارس", "apr": "آڤریلٛ", - "may": "ماٛ", + "may": "ماٛی", "jun": "ژوئٱن", "jul": "جۊلای", "aug": "آگوست", @@ -116,7 +116,7 @@ "february-date": "فڤریٱ $1", "march-date": "مارس $1", "april-date": "آڤریلٛ $", - "may-date": "ماٛ $1", + "may-date": "ماٛی $1", "june-date": "ژوئٱن $1", "july-date": "جۊلای $1", "august-date": "آگوست $1", @@ -375,15 +375,15 @@ "createacct-another-username-ph": "نوم کاریاری تو ناْ بٱزنؽت", "yourpassword": "پٱسڤورد:", "userlogin-yourpassword": "پٱسڤورد", - "userlogin-yourpassword-ph": "رازینٱ گوئارسناْ بٱزاْ", - "createacct-yourpassword-ph": "رازینٱ گوئاردن ناْ بٱزاْ", - "yourpasswordagain": "یاٛ هنی رازینٱ گوئاردن ناْ بٱزاْ", + "userlogin-yourpassword-ph": "رازینٱ گوئارسن ناْ بٱزاْ", + "createacct-yourpassword-ph": "رازینٱ گوئارسن ناْ بٱزاْ", + "yourpasswordagain": "یاٛ هنی رازینٱ گوئارسن ناْ بٱزاْ", "createacct-yourpasswordagain": "پٱسڤورد تازٱ ناْ تٱیید كو", - "createacct-yourpasswordagain-ph": "یاٛ گلٛ هنی رازینٱ گوئاردن بٱزٱ", + "createacct-yourpasswordagain-ph": "یاٛ گلٛ هنی رازینٱ گوئارسن بٱزٱ", "userlogin-remembermypassword": "مناْ د سامونٱ ڤادار", "userlogin-signwithsecure": "ڤٱسل بیئن ٱمن ناْ ڤ کار باٛیر", "yourdomainname": "پوشگر شما:", - "password-change-forbidden": "شوما نئمی توٙنیت رازینە گوڤاردئن خوتوٙنە د ئی ڤیکی آلئشت بأکیت.", + "password-change-forbidden": "شما نمؽ تونؽت رازینٱ گوئارسن خوتوناْ د ئاؽ ڤیکی آلشت بٱکؽت.", "externaldberror": "اْشتبایؽ د اْرتبات ڤا رسینٱگا پیش اومایٱ یا شما سلا یٱ ناْ کاْ یاٛ هساو خارجی خوتو ناْ ڤ هنگوم سازی بٱکؽت نارؽت.", "login": "ڤامؽن اوماین", "nav-login-createaccount": " ڤامؽن اوماین/دۏرس کردن هساو", @@ -478,35 +478,35 @@ "retypenew": "رازینٱ گوئارسن تازٱ ناْ د نۊ ٱنجومیارنیسی بٱکؽت:", "resetpass_submit": "رازینٱ گوئارسن ناْ بٱزنؽت ۉ بؽایؽت ڤامؽن", "changepassword-success": "رازینە گوڤاردئن شوما ڤا خوٙیی آلئشت کاری بی!", - "changepassword-throttled": "شوما تا ایساْ سی ڤامؽن اوماین فرٱ تٱفرٱ کردؽتٱ.\n$1 لوتف بٱکؽت سی تٱفراٛ هنی گرؽ باٛسؽت.", - "resetpass_forbidden": "نأبوٙە رازینە گوڤاردنیانە آلئشتکاری بأکیت", - "resetpass-no-info": "شوما سی یە کئ د ئی بألگە دأسرئسی داشتوٙییت باس بیاییت ڤامین.", - "resetpass-submit-loggedin": "رارینە گوڤاردئن نە آلئشت بأکیت", - "resetpass-submit-cancel": "أنجوم شیڤئستئن", + "changepassword-throttled": "شما تا ایساْ سی ڤامؽن اوماین فرٱ تٱفرٱ کردؽتٱ.\n$1 لوتف بٱکؽت سی تٱفراٛ هنی گرؽ باٛسؽت.", + "resetpass_forbidden": "نمۊئٱ رازینٱ گوئارسنؽا ناْ آشتکاری بٱکؽت", + "resetpass-no-info": "شما سی یٱ کاْ د اؽ بٱلگٱ دٱسرسی داشتۊیؽت بایٱد بؽایؽت ڤامؽن.", + "resetpass-submit-loggedin": "رارینٱ گوئارسن ناْ آلشت بٱکؽت", + "resetpass-submit-cancel": "ٱنجوم شؽڤسن", "resetpass-wrong-oldpass": "رازینە گوڤاردئن تازە یا موڤأقأتی نادیارە.\nگاسی شوما ئیسئنی یا یا رازینە گوڤاردئن خوتوٙنە د خوٙیی آلئشت دأئیتە یا یئ گئل رازینە گوڤاردئن موڤأقأت هأنی حاستیتە.", "resetpass-recycled": "لوطف بأکیت رازینە گوڤاردئن خوتوٙنە سی چیا هأنی د رازینە گوڤاردئن ئیسئنی د نۊ زئنە بأکیت.", - "resetpass-temp-emailed": "شوما ڤا یئ گئل رازینە گوڤاردئن موڤأقأتی ئوٙمایتە ڤامین.\nسی ئوٙمائن ڤئ دأر، یئ گئل رازینە گوڤاردئن هأنی نە ئیچئ جاگئر(میزوٙنکاری) بأکیت.", - "resetpass-temp-password": "رازینە گوڤاردئن موڤأقأت:", - "resetpass-abort-generic": "آلئشت دأئن رازینە گوڤاردئن ڤا یئ گئل دئمادیس خئراڤ بییە.", - "resetpass-expired": "گات دیاری رازینە گوڤاردئن شوما تأموم بییە. لوطف بأکیت یئ گئل رازینە گوڤاردئن هأنی نە سی ڤامین ئوٙمائن میزوٙنکاری بأکیت.", + "resetpass-temp-emailed": "شما ڤا یاٛ رازینٱ گوئارسن موڤٱقٱتی اومایؽتٱ ڤامؽن.\nسی اوماین ڤ دٱر، یاٛ رازینٱ گوئارسن هنی ناْ ایچاْ جاگیر(میزونکاری) بٱکؽت.", + "resetpass-temp-password": "رازینٱ گوئارسن موڤٱقٱتت:", + "resetpass-abort-generic": "آلشت داٛئن رازینٱ گوئارسن ڤا یاٛ دمادیس خراو بیٱ.", + "resetpass-expired": "گات دؽاری رازینٱ گوئاردسن شما تموم بیٱ. لوتف بٱکؽت یاٛ رازینٱ گوئاردسن هنی ناْ سی ڤامؽن اوماین میزونکاری بٱکؽت.", "resetpass-expired-soft": "گات دیاری رازینە گوڤاردئن شوما تأموم بییە و باس د نۊ زئنە با. لوطف بأکیت یئ گئل رازینە گوڤاردئن هأنی نە ئنتئخاڤ بأکیت، یا سی د نۊ زئنە کئردئن د نئهاتئر د ئیچئ \"{{int:authprovider-resetpass-skip-label}}\" بأپوٙرنیت.", "resetpass-validity-soft": "رازینە گوڤاردئن توٙ نادیاره:$1\n\n لوطف بأکیت یئ گئل رازینە گوڤاردئن هأنی نە ئنتئخاڤ بأکیت، یا سی د نۊ زئنە کئردئن د نئهاتئر د ئیچئ \"{{int:authprovider-resetpass-skip-label}}\" بأپوٙرنیت.", - "passwordreset": "د نۊ داٛئن رازیٱ گوئاردن", - "passwordreset-text-one": "ئی نوم بألگە نە سی گئرئتئن یئ گئل رازینە گوڤاردئن موڤأقأت ڤا أنجومانامە توٙ پور بأکیت.", - "passwordreset-text-many": "{{PLURAL:$1|یئ گئل د جاگە یا نە سی گئرئتئن رازینە گوڤاردئن موڤأقأتی نە ڤا أنجومانامە گئرئتە بوٙأ پور بأکیت.}}", - "passwordreset-disabled": "نۊ کئردئن رازینە گوڤاردئن د ئی ڤیکی ناکونئشگأر بییە.", - "passwordreset-emaildisabled": "چیا هأنی کئ هان د أنجومانامە د ئی ڤیکی ناکونئشتگأر بینە.", + "passwordreset": "د نۊ داٛئن رازیٱ گوئارسن", + "passwordreset-text-one": "اؽ نوم بٱلگٱ ناْ سی گرتن یاٛ رازینٱ گوئارسن موڤٱقٱت ڤا ٱنجومانامٱ تو پور بٱکؽت.", + "passwordreset-text-many": "{{PLURAL:$1|یاٛ د جاگٱیا ناْ سی گرتن رازینٱ گوئارسن موڤٱقٱتی ناْ ڤا ٱنجومانامٱ گرتٱ بۊئٱ پور بٱکؽت.}}", + "passwordreset-disabled": "نۊ کردن رازینٱ گوئارسن د اؽ ڤیکی ناکونشگٱر بیٱ.", + "passwordreset-emaildisabled": "چیا هنی کاْ هان د ٱنجومانامٱ د اؽ ڤیکی ناکونشگٱر بیٱ.", "passwordreset-username": "نوم کاریاری:", - "passwordreset-domain": "پوشگئر", - "passwordreset-email": "تیرنئشوٙن أنجومانامە", - "passwordreset-emailtitle": "جوزئیات حئساڤ ها د {{نوم مالگە}}", + "passwordreset-domain": "پۊشگر", + "passwordreset-email": "تیرنشوݩ ٱنجومانامٱ", + "passwordreset-emailtitle": "جۏزیات هساو ها د {{نوم مالگٱ}}", "passwordreset-emailtext-ip": "یە کئسی(گاسی خوتوٙ، ڤا تیرنئشوٙن آی پی $1) د نۊ زئنە کئردئن رازینە گوڤاردئنئتوٙ د {{SITENAME}} حاستیتە($4).\nسی کاریار «$2» یئ گئل رازینە گوڤاردئن موڤأقتی رأڤأندیاری بییە و هومبأراڤأر «$3» ە.\nأر دالئتوٙ یە بییە ئیسئ ڤاس بیائیت ڤامین ساموٙنە و یئ گئل رازینە گوڤاردئن هأنی بئهایت.\n رازینە گوڤاردئن {{PLURAL:$3|ئی رازینە یا گوڤاردئن موڤأقأتی|ئی رازینە یا گوڤاردئن موڤأقأتی}} شوما د گات {{PLURAL:$5|یئ روٙ|$5 روٙ}} باطئل بوٙە.\n\nأر کأسی هأنی چئن حاستی داشتە یا یە کئ رازینە گوڤاردئن دئمایی شوما د ڤیرئتوٙ ئوٙما و دە نئمیهایت ڤئنە آلئشت کاری بأکیت، می توٙنیت د ئی پئیغوم تیە پوٙشی بأکیت و هأموٙ رازینە گوڤاردئن دئمایی نە بونیت د کار.", "passwordreset-emailtext-user": "کاریار $1 د {{SITENAME}} د نۊ زئنە کئردئن رازینە گوڤاردئن شومانە د{{SITENAME}} ($4) حاستە. {{PLURAL:$3|حئساڤ|حئساڤیا}} کاریاری کئ هان د هار و ڤا ئی تیرنئشوٙن أنجومانامە هان د ئرتئڤاط:\n\n$2\n\n رازینە گوڤاردئن {{PLURAL:$3|ئی رازینە یا گوڤاردئن موڤأقأتی|ئی رازینە یا گوڤاردئن موڤأقأتی}} شوما د گات {{PLURAL:$5|یئ روٙ|$5 روٙ}} باطئل بوٙە.\nأر کأسی هأنی چئن حاستی داشتە یا یە کئ رازینە گوڤاردئن دئمایی شوما د ڤیرئتوٙ ئوٙما و دە نئمیهایت ڤئنە آلئشت کاری بأکیت، می توٙنیت د ئی پئیغوم تیە پوٙشی بأکیت و هأموٙ رازینە گوڤاردئن دئمایی نە بونیت د کار.", - "passwordreset-emailelement": "نوم کاریاری: \n$1\n\nرازینە گوڤاردئن موڤأقتی: \n$2", + "passwordreset-emailelement": "نوم کاریاری: \n$1\n\nرازینٱ گوئارسن موڤٱقتی: \n$2", "passwordreset-emailsentemail": "یئ گئل رازینە گوڤاردئن هأنی سی أنجومانامە کئل بییە.", "changeemail": "أنجومانامە توٙنە آلئشت کاری بأکیت", - "changeemail-header": "ئی فورمئ نە سی آلئشتکاری أنجومانامە توٙ پور بأکیت. أر میھایت ھأر جوٙر أنجومانامە یی نە د مینجا حئساڤئتوٙ پاکسا بأکیت، جاگە دأئن أنجومانامە نئ د چئنی فورمی حالی بأنیت.", - "changeemail-no-info": "شوما سی یە کئ د ئی بألگە دأسرئسی داشتوٙییت باس بیاییت ڤامین.", + "changeemail-header": "اؽ فورم ناْ سی آلشتکاری ٱنجومانامٱ تو پور بٱکؽت. ٱر مؽهایت ھٱر جۊر ٱنجومانامٱ ناْ د مؽنجا هساو تو پاکسا بٱکؽت، جاگٱ داٛئن ٱنجومانامٱ ناْ د چنی فورمؽ هالٛی بٱنؽت.", + "changeemail-no-info": "شما سی یٱ کاْ ڤ اؽ بٱلگٱ دٱسرسی داشتۊیؽت بایٱد بؽایؽت ڤامؽن.", "changeemail-oldemail": "تیرنئشوٙن أنجومانامە ئیسئنی:", "changeemail-newemail": "تیرنئشوٙن أنجومانامە تازە:", "changeemail-newemail-help": "أر شوما میھایت تیرنئشوٙن أنجفونامە توٙنە ڤئرداریت چئنی جاگە یی نە بایأد حالی بأنیت. شوما. ئوٙسئ أر رازینە گورادئنئتوٙ د ڤیرتوٙ رأتە با نئمی توٙنیت د نۊ زئنەش بأکیت و ھأنی ھیچ جوٙر أنجومانامە یی د ئی ڤیکی ڤئ دأس شوما نئمی رئسە.-", diff --git a/languages/i18n/mk.json b/languages/i18n/mk.json index c2a267dfea..82bc6cb28e 100644 --- a/languages/i18n/mk.json +++ b/languages/i18n/mk.json @@ -3680,7 +3680,7 @@ "expand_templates_generate_rawhtml": "Прикажувај сиров HTML", "expand_templates_preview": "Преглед", "expand_templates_preview_fail_html": "Бидејќи {{SITENAME}} има овозможено сиров HTML и се јави губиток на седнички податоци, прегледот е скриен како мерка на претпазливост против напади со JavaScript.\n\nАко ова е е легитимен обид за преглед, тогаш обидете се повторно.\nАко не работи и тогаш, [[Special:UserLogout|одјавете се]] и повторно најавете се и проверете дали прелистувачот дозволува колачиња од ова мрежно место.", - "expand_templates_preview_fail_html_anon": "Бидејќи {{SITENAME}} има овозможено сиров HTML, а вие не сте најавени, прегледот е скриен како мерка на претпазливост против напади со JavaScript.\n\nАко ова е е легитимен обид за преглед, тогаш обидете се повторно.\nАко не работи и тогаш, [[Special:UserLogout|одјавете се]] и повторно најавете се.", + "expand_templates_preview_fail_html_anon": "Бидејќи {{SITENAME}} има овозможено сиров HTML, а вие не сте најавени, прегледот е скриен како мерка на претпазливост против напади со JavaScript.\n\nАко ова е легитимен обид за преглед, [[Special:UserLogin|најавете се]] и обидете се повторно.", "expand_templates_input_missing": "Треба да внесете некаков викитекст.", "pagelanguage": "Менување јазик на страница", "pagelang-name": "Страница", diff --git a/languages/i18n/nb.json b/languages/i18n/nb.json index 026a5b8156..c97fb36e74 100644 --- a/languages/i18n/nb.json +++ b/languages/i18n/nb.json @@ -424,6 +424,8 @@ "virus-scanfailed": "skanning mislyktes (kode $1)", "virus-unknownscanner": "ukjent antivirusprogram:", "logouttext": "'''Du er nå logget ut.'''\n\nVær oppmerksom på at noen sider kan fortsette å dukke opp som om du fortsatt var innlogget, helt til du nullstiller nettleserens mellomlager (cache).", + "logging-out-notify": "Du blir logget ut, vennligst vent.", + "logout-failed": "Kan ikke logge ut nå: $1", "cannotlogoutnow-title": "Kan ikke logge ut nå", "cannotlogoutnow-text": "Å logge ut er ikke mulig ved bruk av $1.", "welcomeuser": "Velkommen $1!", diff --git a/languages/i18n/nds-nl.json b/languages/i18n/nds-nl.json index 01d9425e05..ae2478690d 100644 --- a/languages/i18n/nds-nl.json +++ b/languages/i18n/nds-nl.json @@ -174,7 +174,7 @@ "history": "Geschiedenisse", "history_short": "Geschiedenisse", "updatedmarker": "bie-ewörken sinds mien leste bezeuk", - "printableversion": "Ofdrukbåre versy", + "printableversion": "Afdrukbåre versy", "permalink": "Vaste verwysing", "print": "Aofdrokken", "view": "Leasen", @@ -666,7 +666,7 @@ "page_first": "eerste", "page_last": "leste", "histlegend": "Verklaoring aofkortingen: (noen) = verschil mit de op-esleugen versie, (veurige) = verschil mit de veurige versie, K = kleine wieziging", - "history-fieldset-title": "Deur de geschiedenisse blaojen", + "history-fieldset-title": "Versys filteren", "history-show-deleted": "Allinnig vortedaon", "histfirst": "Eerste", "histlast": "Leste", @@ -1076,11 +1076,11 @@ "recentchanges-summary": "Up disse syde kün jy de lätste wysigingen van disse wiki bekyken.", "recentchanges-noresult": "Der waren in disse periode gien wiezigingen die an de kriteria voldoon.", "recentchanges-feed-description": "Zeuk naor de alderleste wiezingen op disse wiki in disse voer.", - "recentchanges-label-newpage": "Mid disse bewarking is een nye syde anemaked", + "recentchanges-label-newpage": "Mid disse bewarking is een nye syde emaked", "recentchanges-label-minor": "Dit is een kleine wysiging", "recentchanges-label-bot": "Disse bewarking is uutevoord döär een bot", "recentchanges-label-unpatrolled": "Disse bewarking is noch neet nå-ekeaken", - "recentchanges-label-plusminus": "Disse sydegroutte is mid dit antal bytes ewysigd", + "recentchanges-label-plusminus": "Disse sydgroutte is mid dit antal bytes ewysigd", "recentchanges-legend-heading": "Legenda:", "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}}
(see ouk de [[Special:NewPages|lyste mid nye syden]])", "recentchanges-submit": "Bekiek", @@ -1096,7 +1096,7 @@ "rcfilters-hours-title": "De leste uren", "rcfilters-days-show-days": "$1 {{PLURAL:$1|dag|dagen}}", "rcfilters-days-show-hours": "$1 {{PLURAL:$1|uur|uren}}", - "rcfilters-quickfilters": "Up-eslöägen filters", + "rcfilters-quickfilters": "Upeslöägen filters", "rcfilters-quickfilters-placeholder-title": "Noch geen filters up-eslöägen", "rcfilters-quickfilters-placeholder-description": "Üm juuw filterinstellingen up te slån en et låter te gebruken, klik up et bladwyserikoon underan by \"Aktive filters\".", "rcfilters-savedqueries-apply-label": "Instellingen opslaon", @@ -1137,14 +1137,14 @@ "rcfilters-filter-watchlist-notwatched-label": "Niet op de volglieste", "rcfilters-filter-watchlist-notwatched-description": "Alles behalve wiezigingen an ziejen die op joew volglieste staon.", "rcfilters-filtergroup-changetype": "Soort wysiging", - "rcfilters-filter-pageedits-label": "Sydebewarkingen", + "rcfilters-filter-pageedits-label": "Sydbewarkingen", "rcfilters-filter-pageedits-description": "Wysigingen an de wiki-inhold, diskussys, kategorybeskryvingen…", "rcfilters-filter-newpages-label": "Nye syden", "rcfilters-filter-newpages-description": "Bewarkingen wårmead jy een nye syde anmaken.", "rcfilters-filter-categorization-label": "Kategorywysigingen", "rcfilters-filter-categorization-description": "Upgave van syden dee to-evoogd of vordedån wörden uut kategoryen.", "rcfilters-filter-logactions-label": "Eregistreerde aktys", - "rcfilters-filter-logactions-description": "Administrative handelingen, nye kontos, et vortdoon van syden, upstüren van bestanden…", + "rcfilters-filter-logactions-description": "Administrative handelingen, nye kontos, vordedåne syden, upladingen…", "rcfilters-filtergroup-lastrevision": "Lätste versys", "rcfilters-filter-lastrevision-label": "Lätste versy", "rcfilters-filter-lastrevision-description": "Allinnig de lätste wysiging an een syde.", @@ -1154,7 +1154,7 @@ "rcfilters-view-tags-tooltip": "Filter resultåten döär gebruuk te maken van bewarkingsetiketten", "rcfilters-liveupdates-button": "Rechtstreakse aktualisering", "rcfilters-liveupdates-button-title-off": "Nye wysigingen voorddalik låten seen", - "rcnotefrom": "Dit bin de wiezigingen sinds $2 (maximum van $1 wiezigingen).", + "rcnotefrom": "Wysigingen sinds $3, $4 (maximaal $1 {{PLURAL:$1|wysiging|wysigingen}}).", "rclistfrom": "Bekiek wiezigingen vanaof $3 $2", "rcshowhideminor": "$1 kleine wiezigingen", "rcshowhideminor-show": "Bekiek", @@ -1203,8 +1203,8 @@ "recentchanges-page-removed-from-category": "[[:$1]] is vortedaon uut kategorie", "recentchanges-page-removed-from-category-bundled": "[[:$1]] vortedaon uut kategorie, [[Special:WhatLinksHere/$1|disse zied zit in aandere ziejen in-esleuten]]", "autochange-username": "Automatiese wieziging van MediaWiki", - "upload": "Bestand upstüren", - "uploadbtn": "Bestand upstüren", + "upload": "Holder upladen", + "uploadbtn": "Holder upladen", "reuploaddesc": "Weerumme naor de opstuurzied", "upload-tryagain": "Bestaandsbeschrieving biewarken", "uploadnologin": "Neet an-emelded", @@ -1410,7 +1410,7 @@ "imagelinks": "Bestaandsgebruuk", "linkstoimage": "Dit bestaand wörden gebruukt op de volgende {{PLURAL:$1|zied|$1 ziejen}}:", "linkstoimage-more": "Der {{PLURAL:$2|is|bin}} meer as $1 {{PLURAL:$1|verwiezing|verwiezingen}} naor dit bestaand.\nDe volgende lieste gif allinnig de eerste {{PLURAL:$1|verwiezing|$1 verwiezingen}} naor dit bestaand weer.\nDe [[Special:WhatLinksHere/$2|hele lieste]] is oek beschikbaor.", - "nolinkstoimage": "Bestaand is niet in gebruuk.", + "nolinkstoimage": "Geen enkelde syde gebrüükt disse holder.", "morelinkstoimage": "[[Special:WhatLinksHere/$1|Meer verwiezingen]] naor dit bestaand bekieken.", "linkstoimage-redirect": "$1 (bestaandsdeurverwiezing) $2", "duplicatesoffile": "{{PLURAL:$1|t Volgende bestaand is|De volgende $1 bestaanden bin}} gelieke an dit bestaand ([[Special:FileDuplicateSearch/$2|meer informasie]]):", @@ -2266,7 +2266,7 @@ "pageinfo-hidden-categories": "Verbörgen {{PLURAL:$1|kategorie|kategorieën}} ($1)", "pageinfo-templates": "{{PLURAL:$1|Gebruukten mal|Gebruukten mallen}} ($1)", "pageinfo-transclusions": "{{PLURAL:$1|Zied|Ziejen}} in-evoegd op ($1)", - "pageinfo-toolboxlink": "Sydegegeavens", + "pageinfo-toolboxlink": "Sydgegeavens", "pageinfo-redirectsto": "Verwis deur naor", "pageinfo-redirectsto-info": "informasie", "pageinfo-contentpage": "Eteld as zied mit inhoud", diff --git a/languages/i18n/nqo.json b/languages/i18n/nqo.json index 79a83975b5..4ba091c935 100644 --- a/languages/i18n/nqo.json +++ b/languages/i18n/nqo.json @@ -10,6 +10,13 @@ "Babamamadidiane" ] }, + "tog-underline": "ߛߘߌ߬ߜߋ߲߬ ߞߘߐߞߍ߬ߙߍ߲߬ߘߍ߬ߣߍ߲", + "tog-hideminor": "ߡߊ߬ߦߟߍ߬ߡߊ߲߬ߠߌ߲߬ ߘߋ߬ߣߍ߲ ߠߎ߬ ߢߡߊߘߏ߲߰ ߡߊ߬ߦߟߍ߬ߡߊ߲߬ߠߌ߲߬ ߞߐ߯ߟߕߊ ߟߎ߬ ߘߐ߫", + "tog-hidepatrolled": "ߡߊ߬ߦߟߍ߬ߡߊ߲߬ߠߌ߲ ߓߍ߬ߙߍ߲߬ߓߍ߬ߙߍ߲߬ߣߍ߲ ߠߎ߬ ߢߡߊߘߏ߲߰ ߡߊ߬ߦߟߍ߬ߡߊ߲߬ߠߌ߲߬ ߞߐ߯ߟߕߊ ߟߎ߬ ߘߐ߫.", + "tog-newpageshidepatrolled": "ߞߐߜߍ߫ ߓߍ߬ߙߍ߲߬ߓߍ߬ߙߍ߲߬ߣߍ߲ ߠߎ߬ ߢߡߊߘߏ߲߰ ߞߐߜߍ߫ ߞߎߘߊ ߟߎ߬ ߘߐ߫.", + "tog-hidecategorization": "ߞߐߜߍ ߟߎ߬ ߦߌߟߡߊߦߊߟߌ ߢߡߊߘߏ߲߰", + "tog-numberheadings": "ߕߍ߰ߟߌ ߡߐ߬ߟߐ߲ ߠߎ߬ ߝߙߍߕߍ߫ ߞߍ߲ߖߘߍߡߊߓߟߏߡߊ߬", + "tog-editondblclick": "ߞߏߜߍ ߟߎ߬ ߡߊߦߟߍ߬ߡߊ߲߫ ߛߐ߲߬ߞߌ߲߬ߠߌ߲߬ߞߏ ߝߌ߬ߟߊ߬ ߟߊ߫", "underline-always": "ߕߎ߬ߡߊ߬ ߓߍ߯", "underline-never": "ߡߎ߰ߡߍ߫", "sunday": "ߞߊ߯ߙߌߟߏ߲", @@ -53,13 +60,13 @@ "jan": "ߓߌ߲ߠߊߥߎߟߋ߲", "feb": "ߞߏ߲ߞߏߜߍ", "mar": "ߕߙߊߓߊ", - "apr": "ߞߏ߲ߞߏߘߓߌ", + "apr": "ߞߏ߲ߞߏߘߌ߬ߓߌ", "may": "ߘߓߊ߬ߕߊ", "jun": "ߥߊ߬ߛߌ߬ߥߙߊ", "jul": "ߞߊ߬ߙߌ߬ߝߐ", "aug": "ߘߓߊ߬ߓߌߟߊ", "sep": "ߕߎߟߊߝߌ߲", - "oct": "ߞߏ߲ߓߌߕߌ߱", + "oct": "ߞߏ߲ߓߌߕߌ߮", "nov": "ߣߍߣߍߓߊ", "dec": "ߞߏߟߌ߲ߞߏߟߌ߲", "january-date": "ߓߌ߲ߠߊߥߎߟߋ߲$1", @@ -79,7 +86,8 @@ "subcategories": "ߝߊ߬ߓߏ߲߬ ߘߋ߬ߣߍ߲ ߠߎ߬", "category-media-header": "ߟߊߛߋߢߊ ߦߌߟߡߊ ߣߌ߲߬ ߘߐ߫ \"$1\"", "category-empty": "ߞߐߜߍ߫ ߥߟߊ߫ ߟߊߛߋߢߊ߫ ߝߏߌ߫ ߕߍ߫ ߦߌߟߡߊ ߣߌ߲߬ ߞߣߐ߫ ߕߋ߲߬ߕߋ߲߬.", - "hidden-categories": "{{PLURAL:$1|ߦߌߟߡߊ߫ ߘߏ߲߰ߣߍ߲|ߦߌߟߡߊ߫ ߘߏ߲߰ߣߍ߲ ߠߎ߬}}", + "hidden-categories": "{{PLURAL:$1|ߦߌߟߡߊ߫ ߢߡߘߏ߲߰ߣߍ߲|ߦߌߟߡߊ߫ ߢߡߊߘߏ߲߰ߣߍ߲ ߠߎ߬}}", + "hidden-category-category": "ߦߌߟߡߊ߫ ߢߡߊߘߏ߲߰ߣߍ߲ ߠߎ߬", "category-subcat-count": "{{PLURAL:$2|ߦߟߊߡߊߙߋ߲ ߣߌ߲߬ ߠߎ߫ ߜߊ߲߰ߛߊ߲ ߠߋ߫ ߦߋ߫ ߦߌߟߡߊ ߣߌ߲߬ ߘߐ߫.|ߦߌߟߡߊ ߣߊ߬ߕߐ ߟߎ߬ ߘߐ߫߸ {{PLURAL:$1|ߦߌߟߡߊߙߋ߲|$1 ߦߌߟߡߊߙߋ߲ ߠߎ߬}} ߟߋ߬ ߦߴߊ߬ ߘߐ߫߸ ߞߙߎߞߙߍ ߟߎ߬ ߞߐߞߊ߲߬ $2}}", "category-article-count": "{{PLURAL:$2|ߞߐߜߍ ߣߌ߲߬ ߘߐߙߐ߲߫ ߠߋ߬ ߦߋ߫ ߦߌߟߡߊ ߣߌ߲߬ ߘߐ߫.|ߖߡߊ߬ߦߊ߫ ߕߐ߮ ߣߊ߬ߕߊ {{PLURAL:$1|ߞߐߜߍ ߦߋ߫|$1 ߞߐߜߍ ߦߋ߫}} ߟߋ߬ ߦߋ߫ ߦߌߟߡߊ߫ ߘߌ߫߸ ߞߙߎߞߙߍ $2 ߞߐߞߊ߲߬}}", "category-file-count": "{{PLURAL:$2||ߞߐߕߐ߮ ߣߌ߲߬ ߜߊ߲߰ߛߊ߲ ߠߋ߫ ߦߋ߫ ߦߌߟߡߊ ߣߌ߲߬ ߘߐ߫.ߡߍ߲ ߠߎ߬ ߦߋ߫ ߣߌ߲߬ |{{PLURAL:$1||ߞߐߕߐ߮ ߦߋ߫|$1 ߞߐߕߐ߮ ߟߎ߬ ߦߋ߫}} ߦߌߟߡߊ ߣߌ߲߬ ߘߐ߫߸ ߞߙߎߞߙߍ ߣߌ߲߬ ߕߴߊ߬ ߘߐ߫2$.}}", @@ -97,28 +105,29 @@ "anontalk": "ߢߊߝߐߞߣߍ", "navigation": "ߛߏ߲߯ߓߊߟߌ", "and": " ߊ߬ ߣߌ߫", + "faq": "ߢ.ߡ", "actions": "ߞߍߟߌ ߟߎ߬", - "namespaces": "ߕߐ߮ ߞߣߍ", - "variants": "ߞߊ߲ߓߏߟߏ߲ ߠߎ߬", - "navigation-heading": "ߛߏ߲߯ߓߊߟߌ߫ ߓߏߟߏ߲ߘߊ", + "namespaces": "ߕߐ߯ ߛߓߍ ߞߣߍ", + "variants": "ߦߟߍ߬ߡߊ߲߬ߦߟߍ߬ߡߊ߲߬ߠߊ ߟߎ߬", + "navigation-heading": "ߛߏ߲߯ߓߊߟߌ߫ ߟߐ߬ߥߟߊ", "errorpagetitle": "ߝߎ߬ߕߎ߲߬ߕߌ", "returnto": "ߌ ߞߐߛߊ߬ߦߌ߲߬ ߦߊ߲߬ ߡߊ߬ $1.", "tagline": "ߞߊ߬ ߝߘߊ߫ {{SITENAMEP}}", - "help": "ߘߍ߬ߡߍ߲߬ߠߌ", + "help": "ߡߊ߬ߘߍ߬ߡߍ߲߬ߠߌ", "help-mediawiki": "ߘߍ߬ߡߍ߲߬ߠߌ߲ ߞߊ߬ ߓߍ߲߬ ߥߞߌ-ߟߊߛߋߢߊߥߙߍ ߡߊ߬", - "search": "ߢߌߣߌ߲ߠߌ", - "searchbutton": "ߢߌߣߌ߲ߠߌ", + "search": "ߢߌߣߌ߲ߠߌ߲", + "searchbutton": "ߢߌߣߌ߲ߠߌ߲", "go": "ߊ߬ ߢߌߣߌ߲߫", "searcharticle": "ߥߊ߫/ߕߊ߯", "history": "ߘߐߜߍ ߘߐ߬ߝߐ", - "history_short": "ߘߐ߬ߝߐ", + "history_short": "ߕߎ߬ߡߊ߬ߘߊ", "history_small": "ߕߊ߬ߡߌ߲߬ߣߍ߲", - "printableversion": "ߛߌ߰ߘߊ߫ ߜߌ߬ߙߌ߲߬ߘߌ߬ߕߊ", + "printableversion": "ߓߐߞߏߣߊ߲߫ ߜߌ߬ߙߌ߲߬ߘߌ߬ߕߊ", "permalink": "ߛߘߌ߬ߜߋ߲߬ ߓߟߏߕߍ߰ߓߊߟߌ", "print": "ߜߌ߬ߙߌ߲߬ߘߌ߬ߟߌ", - "view": "ߊ߬ ߘߐߜߍ߫", + "view": "ߊ߬ ߘߐߞߊ߬ߙߊ߲߬", "view-foreign": "ߊ߬ ߦߋ߫ ߦߊ߲߬ $1", - "edit": "ߊ߬ ߡߊߦߟߍ߬ߡߊ߲߬", + "edit": "ߊ߬ ߢߟߊߞߎߘߦߊ߫", "create": "ߟߊ߬ߘߊ߲߬ߠߌ", "create-local": "ߕߌ߲߬ߞߎߘߎ߲ ߞߊ߲߬ߛߓߍ߬ߟߌ ߟߊߘߏ߲߬", "delete": "ߊ߬ ߖߐ߬ߛߌ߬", @@ -127,9 +136,9 @@ "protect_change": "ߊ߬ ߡߊߦߟߍ߬ߡߊ߲߫", "unprotect": "ߟߊ߬ߞߊ߲߬ߘߊ߬ߟߌ ߡߊߝߊ߬ߟߋ߲߬ߠߌ", "newpage": "ߘߐߜߍ߫ ߞߎߘߊ", - "talkpagelinktext": "ߓߊ߬ߘߏ", + "talkpagelinktext": "ߞߎߡߊ߫", "specialpage": "ߞߐߜߍ߫ ߞߙߍߞߙߍߣߍ߲", - "personaltools": "ߘߎ߲߬ߘߎ߬ߡߊ߬ ߖߐ߯ߙߊ ߠߎ߬", + "personaltools": "ߘߎ߲߬ߘߎ߬ߡߊ߬ ߖߐ߯ߙߊ߲ ߠߎ߬", "talk": "ߓߊ߬ߘߏ߬ߓߊ߬ߘߌߦߊ", "views": "ߦߌ߬ߘߊ߬ߟߌ", "toolbox": "ߖߐ߯ߙߊ߲ ߠߎ߬", @@ -144,43 +153,44 @@ "redirectedfrom": "(ߌ ߟߊߞߎ߲߬ߛߌ߲߬ߣߍ߲߫ ߞߊ߬ ߓߐ߫ $1)", "redirectpagesub": "ߞߐߜߍ߫ ߟߊߞߎ߲߬ߛߌ߲߬ߣߍ߲", "redirectto": "ߌ ߓߘߊ߫ ߟߊߞߎ߲߬ߛߌ߲߫ ߦߊ߲߬ ߠߊ߫:", - "lastmodifiedat": "ߞߐߜߍ ߣߌ߲߬ ߡߊߦߟߍ߬ߡߊ߲߬ ߟߊߓߊ߲ ߞߍ߫ ߘߊ߫ $1߸ $2", + "lastmodifiedat": "ߞߐߜߍ ߣߌ߲߬ ߡߊߦߟߍ߬ߡߊ߲߬ ߟߊߓߊ߲ ߞߍ߫ ߘߊ߫ $1߸ ߟߋ߬ ߟߊ߫ $2", "protectedpage": "ߞߐߜߍ߫ ߡߊߞߊ߲ߞߊ߲ߣߍ߲", - "jumpto": "ߌ ߜߊ߲߫ ߞߊ߬ ߕߊ߯:", + "jumpto": "ߕߊ߯ ߞߊߕߙߍ߬:", "jumptonavigation": "ߛߏ߲߯ߓߊߟߌ", - "jumptosearch": "ߊ߬ ߕߌߙߌ߲߫", + "jumptosearch": "ߊ߬ ߢߌߣߌ߲߫", "pool-timeout": "ߘߊߕߎ߲߯ߠߌ߲ ߡߊ߬ߞߐ߬ߣߐ߲߬ߠߌ߲߬ ߕߎߡߊ ߓߘߊ߫ ߕߊ߬ߡߌ߲߬", "pool-errorunknown": "ߝߌ߬ߟߌ߬ ߛߎ߲߫ ߟߐ߲ߓߊߟߌ", "poolcounter-usage-error": "ߟߊߓߊ߯ߙߊߟߌ߫ ߝߟߌ $1", - "aboutsite": "ߞߊ߬ ߓߍ߲߬ {{SITENAME}}", - "aboutpage": "Project:ߞߊ߬ ߓߍ߲߬", + "aboutsite": "ߞߊ߬ ߓߍ߲߬ {{SITENAME}} ߞߏ ߡߊ߬", + "aboutpage": "Project:ߟߊ߫ ߞߏ ߡߊ߬", + "copyright": "ߞߣߐߘߐ ߦߋ߫ ߓߟߏߞߘߐ߫ ߟߊ߬ߘߌ߬ߢߍ߬ߟߌ ߣߌ߲߬ ߕߐ߮ ߞߘߐ߫ $1 ߣߌ߫ ߏ߬ ߡߊߝߘߏ߬ ߡߊ߫ ߟߊߞߏߟߐ߲߫.", "copyrightpage": "{{ns:project}}:ߛߓߍߦߟߊ ߤߊߞߍ", - "currentevents": "ߞߍߞߎߘߊ ߡߍ߲ ߠߎ߫ ߛߋ߲߬ߠߊ߫", - "currentevents-url": "Project:ߞߍߞߎߘߊ ߡߍ߲ ߠߎ߫ ߛߋ߲߬ߠߊ߫", - "disclaimers": "ߖߊ߲߬ߘߐ߬ߓߌ߬ߟߊ߬ߟߌ ߟߎ߬", - "disclaimerpage": "Project:ߖߊ߲߬ߘߐ߬ߓߌ߬ߟߊ߬ߟߌ ߡߎ߰ߡߍ", + "currentevents": "ߛߋ߲߬ߠߊ߬ ߞߍߞߎߘߊ ߟߎ߬", + "currentevents-url": "Project:ߛߋ߲߬ߠߊ߬ ߞߍߞߎߘߊ ߟߎ߬", + "disclaimers": "ߖߊ߬ߛߙߋ߬ߡߊ߬ߟߊ", + "disclaimerpage": "Project:ߖߊ߬ߛߙߋ߬ߡߊ߬ߟߊ߫ ߝߘߏ߬ߓߊ߬ߡߊ", "edithelp": "ߡߊ߬ߦߟߍ߬ߢߊ߲߬ߠߌ߲ ߘߍ߬ߡߍ߲߬ߠߌ߲", "helppage-top-gethelp": "ߘߍ߬ߡߍ߲߬ߠߌ", "mainpage": "ߓߏ߬ߟߏ߲߬ߘߊ", "mainpage-description": "ߓߏ߬ߟߏ߲߬ߘߊ", - "policy-url": "Projet:ߓߘߍ߬ߓߘߍ߬ߟߌ", - "portal": "ߟߊ߬ߛߣߍ߬ߟߌ ߓߏ߬ߟߏ߲߬ߘߊ", - "portal-url": "Project:ߟߊ߬ߛߣߍ߬ߟߌ ߓߏ߬ߟߏ߲߬ߘߊ", - "privacy": "ߘߎ߲߬ߘߎ߬ߡߊ߬ ߤߊߞߍ", - "privacypage": "Project:ߞߊ߬ ߓߍ߲߬ ߘߎ߲߬ߘߎ߬ߡߊ߬ ߤߊߞߍ ߡߊ߬", + "policy-url": "Projet:ߞߎ߬ߙߎ߲߬ߘߎ", + "portal": "ߘߍ߬ߘߊ ߘߏ߲߬ߘߊ߬ߓߊ", + "portal-url": "Project:ߘߍ߬ߘߊ ߟߎ߬ ߘߏ߲߬ߘߊ", + "privacy": "ߘߎ߲߬ߘߎ߬ߡߊ߬ ߓߘߍߓߘߍߟߌ", + "privacypage": "Project:ߘߎ߲߬ߘߎ߬ߡߊ߬ ߓߘߍ߬ߓߘߍ߬ߟߌ", "ok": "ߏ߬ߞߍ߫", - "retrievedfrom": "ߊ߬ ߟߊߛߐ߬ߘߐ߲߬ ߦߊ߲߬ \"$1\"", + "retrievedfrom": "ߊ߬ ߟߊߛߐ߬ߘߐ߲߫ ߦߊ߲߬ \"$1\"", "youhavenewmessages": "{{PLURAL:$3|ߌ ߓߘߊ߫ ߗߋߛߓߍ߫ ߞߎߘߊ ߛߐ߬ߘߐ߲߬$1 $2 }}", "youhavenewmessagesfromusers": "{{PLURAL:$4|ߟߋ߬ ߦߴߌ ߓߟߏ߫}} $1 ߞߊ߬ ߓߐ߫ {{PLURAL:$3|ߟߊ߬ߓߊ߰ߙߊ߬ߟߊ߬ ߜߘߍ߫|$3ߟߊ߬ߓߊ߰ߙߊ߬ߟߊ ߟߎ߬}} ($2)", "newmessageslinkplural": "{{PLURAL:$1|ߗߋߛߓߍ߫ ߞߎߘߊ߫|999=ߗߋߛߓߍ߫ ߞߎߘߊ߫ ߟߎ߫}}", "newmessagesdifflinkplural": "{{PLURAL:$1|ߡߝߊ߬ߟߋ߲߬ߠߌ߲|999=ߡߝߊ߬ߟߋ߲߬ߠߌ߲ ߠߎ߬}} ߞߐ߯ߟߕߊ.", "youhavenewmessagesmulti": "ߌ ߓߘߊ߫ ߗߋߛߓߍ߫ ߞߎߘߊ ߛߐ߬ߘߐ߲߬ $1 ߞߣߐ߫", - "editsection": "ߊ߬ ߡߊߦߟߍ߬ߡߊ߲߫", + "editsection": "ߊ߬ ߢߟߊߞߎߘߦߊ߫", "editold": "ߡߊߦߟߍ߬ߡߊ߲߬", "viewsourceold": "ߊ߬ ߛߎ߲ ߘߐߜߍ߫", "editlink": "ߊ߬ ߡߊߦߟߍ߬ߡߊ߲߬", - "viewsourcelink": "ߊ߬ ߛߎ߲ ߠߊߓߊ߯ߙߊ߫", - "editsectionhint": "ߦߌߟߡߊ ߡߊߝߊ߬ߟߋ߲߬ߠߌ:$1", + "viewsourcelink": "ߊ߬ ߓߐߛߎ߲ ߡߊߝߟߍ߫", + "editsectionhint": "ߛߌ߰ߘߊ ߡߊߝߊ߬ߟߋ߲߬ߠߌ:$1", "toc": "ߞߣߐߘߐ", "showtoc": "ߦߌ߬ߘߊ߬ߟߌ", "hidetoc": "ߢߡߊߘߏ߲߯ߠߌ", @@ -192,13 +202,13 @@ "viewdeleted": "ߦߌ߬ߘߊ߬ߟߌ ߓߊ߬ $1؟", "site-atom-feed": "$1 ߝߕߌ ߓߊߟߏ", "page-atom-feed": "$1 ߝߕߌ ߓߊߟߏ", - "red-link-title": "ߞߐߜߍ߫ ߕߍ߫ ߦߋ߲߬ $1", + "red-link-title": "ߞߐߜߍ߫ ߕߴߦߋ߲߬ $1", "sort-descending": "ߛߙߊߛߌ߰ߟߌ ߖߌ߰ߟߌ߬ ߓߟߏߡߊ߬", "sort-ascending": "ߛߙߊߛߌ߰ߟߌ ߦߟߍ߬ ߓߟߏߡߊ߬", "nstab-main": "ߞߐߜߍ", "nstab-user": "ߞߐߜߍ߫ ߟߊߓߊ߯ߙߕߊ", "nstab-media": "ߟߊߛߋߢߊ߫ ߞߐߜߍ", - "nstab-special": "ߘߐߜߍ߫ ߓߟߏߡߊߞߊ߬ߣߍ߲", + "nstab-special": "ߘߐߜߍ߫ ߞߙߍߞߙߍߣߍ߲", "nstab-project": "ߖߊ߬ߕߋ߬ߘߐ߬ߛߌ߰ ߞߐߜߍ", "nstab-image": "ߞߐߕߐ߮", "nstab-mediawiki": "ߗߋߛߓߍ", @@ -210,11 +220,18 @@ "nosuchspecialpage": "ߘߐߜߍ߫ ߓߟߏߡߊߞߊ߬ߣߍ߲߬ ߛߎ߮ ߏ߬ ߝߋ߲߫ ߕߍ߫ ߦߊ߲߬", "nospecialpagetext": "ߊߟߎ߫ ߓߘߊ߫ ߞߐߜߍ߫ ߓߟߏߡߊߞߊ߬ߣߍ߲ ߘߏ߫ ߢߌߣߌ߲߫ ߡߍ߲ ߕߺߴߦߋ߲߬.\nߞߐߜߍ߫ ߓߟߏߡߊߞߊ߬ߣߍ߲߫ ߓߘߍ߬ߡߊ ߟߎ߬ ߛߙߍߘߍ ߦߋ߫ ߢߌ߲߬ ߠߋ߫ ߞߊ߲߬ [[Special:SpecialPages|{{int:specialpages}}]].", "error": "ߝߎ߬ߕߎ߲߬ߕߌ", + "databaseerror-error": "ߝߎ߬ߕߎ߲߬ߕߌ: $1", + "internalerror": "ߞߣߐߟߊߘߐ߫ ߝߎߕߎ߲ߕߌ", + "internalerror_info": "ߞߣߐߟߊߘߐ߫ ߝߎ߬ߕߎ߲߬ߕߌ: $1", + "filecopyerror": "ߊ߬ ߕߍ߫ ߣߊ߬ ߛߐ߲߬ ߠߊ߫ ߞߐߕߐ߮ $1 ߓߊߦߟߍ߬ߡߊ߲߬ ߠ ߦߊ߲߬ߊ߫ $2", + "filerenameerror": "ߞߐߕߐ߮ \"$1\" ߕߍ߫ ߛߐ߲߬ ߓߊߦߟߍ߬ߡߊ߲߬ ߠߊ߫ ߦߊ߲߬ \"$2\".", "badtitle": "ߞߎ߲߬ߕߐ߰ ߖߎ߮", "badtitletext": "ߞߐߜߍ߫ ߡߊߢߌ߬ߣߌ߲߬ߞߊ߬ߣߍ߲ ߞߎ߲߬ߕߐ߮ ߓߍ߲߬ߣߍ߲߬ ߕߍ߫߸ ߊ߬ ߘߐߞߏߟߏ߲ ߦߋ߫߸ ߥߟߊ߫ ߞߊ߲ ߠߎ߬ ߣߌ߫ ߢߐ߲߯ߕߍ߫ ߛߘߌ߬ߜߋ߲ ߓߍ߲߬ߓߊߟߌ ߤߊߡߊ߲߫ ߥߞߌ ߟߎ߬ ߕߍ߫ ߛߘߌ߬ߜߋ߲.\nߛߓߍߘߋ߲߫ ߞߋߟߋ߲߫ ߥߟߊ߫ ߛߌߦߊߡߊ߲ ߠߎ߬ ߟߋ߬ ߦߋ߫ ߞߍ߫ ߟߴߊ߬ ߘߐ߫߸ ߡߍ߲ ߠߎ߬ ߕߴߛߋ߫ ߞߍ߫ ߟߊ߫ ߞߎ߲߬ߕߐ߯ ߘߌ߫.", "viewsource": "ߊ߬ ߛߎ߲ ߘߐߜߍ߫", "viewsource-title": "ߣߌ߲߬ $1 ߛߎ߲ ߘߐߜߍ߫", "viewsourcetext": "ߌ ߘߌ߫ ߛߋ߫ ߞߐߜߍ ߣߌ߲߬ ߛߎ߲ ߦߋ߫ ߟߊ߫߸ ߞߵߊ߬ ߓߊߓߌ߬ߟߊ߬", + "invalidtitle": "ߞߎ߲߬ߕߐ߮ ߓߍ߲߬ߓߊߟߌ", + "exception-nologin": "ߌ ߜߊ߲߬ߞߎ߲߬ߣߍ߲߬ ߕߍ߫", "yourname": "ߟߊߓߊ߯ߙߊߟߊߕߐ߮:", "userlogin-yourname": "ߟߊ߬ߓߊ߰ߙߊ߬ߟߌ߬ ߕߐ߮", "userlogin-yourname-ph": "ߌ ߟߊ߫ ߟߊ߬ߓߊ߰ߙߊ߬ߟߌ߬ ߕߐ߮ ߟߊߘߏ߲߬", @@ -228,14 +245,20 @@ "createacct-yourpasswordagain-ph": "ߌ ߟߊ߫ ߕߊ߬ߡߌ߲߬ߞߊ߲ ߠߊߘߏ߲߬ ߕߎ߲߯", "userlogin-remembermypassword": "ߒ ߜߊ߲߬ߞߎ߲߬ߣߍ߲ ߕߏ߫ ߞߘߊߎ߫", "login": "ߌ ߜߊ߲߬ߞߎ߲߬", + "nav-login-createaccount": "ߌ ߜߊ߲߬ߞߎ߲߬/ߖߊ߬ߕߋ߬ߘߊ ߘߏ߫ ߟߊߞߊ߬", + "logout": "ߌ ߜߊ߲߬ߞߎ߲߬ ߓߐ߫", + "userlogout": "ߌ ߜߊ߲߬ߞߎ߲߬ߣߍ߲ ߓߐ߫", "userlogin-noaccount": "ߖߊ߬ߕߋ߬ߘߊ߬ ߕߴߌ ߓߟߏ߫ ߓߊ߬؟", "userlogin-joinproject": "ߘߏ߫ ߟߊߞߊ߬ {{SITENAME}}", "createaccount": "ߖߊ߬ߕߋ߬ߘߊ ߘߏ߫ ߟߊߞߊ߬", "userlogin-resetpassword-link": "ߌ ߟߊ߫ ߕߊ߬ߡߌ߲߬ߞߊ߲ ߓߘߊ߫ ߓߐ߫ ߌ ߞߣߐ߫؟", "userlogin-helplink2": "ߜߊ߲߬ߞߎ߲߬ߠߌ߲ ߘߍ߬ߡߍ߲߬ߠߌ߲", + "userlogin-createanother": "ߖߊ߬ߕߋ߬ߘߊ߬ ߞߎߘߊ߫ ߛߌ߲ߘߌ߫", "createacct-emailoptional": "ߢߎߡߍߙߋ߲߫ ߞߏ߲ߘߏ", "createacct-email-ph": "ߌ ߟߊ߫ ߢߎߡߍߙߋ߲߫ ߞߏ߲ߘߏ ߟߊߘߏ߲߬", + "createacct-reason-ph": "ߡߎ߲߬ߠߊ߫ ߌ ߦߋ߫ ߖߊ߬ߕߋ߬ߘߊ߰ ߜߘߍ߫ ߛߌ߲ߘߌ߫ ߟߊ߫", "createacct-submit": "ߖߊ߬ߕߋ߬ߘߊ ߘߏ߫ ߘߊߦߟߍ߬", + "createacct-another-submit": "ߖߊ߬ߕߋߘߊ ߛߌ߲ߘߌ߫", "createacct-benefit-heading": "{{SITENAME}} ߛߌ߲ߘߌߣߍ߲߫ ߦߴߌ ߢߐ߲߭ ߡߐ߱ ߟߎ߬ ߟߋ߬ ߓߟߏ߫", "createacct-benefit-body1": "{{PLURAL:$1|ߊ߬ ߡߊߦߟߍ߬ߡߊ߲߬|ߊ߬ߟߎ߬ ߡߊߦߟߍ߬ߡߊ߲߬}}", "createacct-benefit-body2": "$1 {{PLURAL:$1|ߘߐߜߍ|ߞߐߜߍ ߟߎ߬}}", @@ -245,6 +268,13 @@ "pt-login-button": "ߌ ߜߊ߲߬ߞߎ߲߬", "pt-createaccount": "ߖߊ߬ߕߋ߬ߘߊ ߘߏ߫ ߛߌ߲ߘߌ߫", "pt-userlogout": "ߌ ߜߊ߲߬ߞߎ߲߬ߣߍ߲ ߓߐ߫", + "changepassword": "ߕߊ߬ߡߌ߲߬ߞߊ߲ ߡߊߝߊ߬ߟߋ߲߬", + "resetpass_announce": "ߣߴߌ ߦߴߊ߬ ߝߍ߬ ߞߵߌ ߟߊ߫ ߜߊ߲߬ߞߎ߲߬ߠߌ߲ ߠߊߓߊ߲߫߸ ߌ ߦߋ߫ ߖߊ߬ߕߋ߬ߘߊ߰ ߞߎߘߊ߫ ߟߊߘߊ߲߫.", + "resetpass_header": "ߖߊ߬ߕߋ߬ߘߊ ߕߊ߬ߡߌ߲߬ߞߊ߲ ߡߊߝߊ߬ߟߋ߲߬", + "oldpassword": "ߕߊ߬ߡߌ߲߬ߞߊ߲߬ ߞߘߐ", + "newpassword": "ߕߊ߬ߡߌ߲߬ߞߊ߲߬ ߞߎߘߊ", + "retypenew": "ߕߊ߬ߡߌ߲߬ߞߊ߲߬ ߞߎߘߊ ߡߊߛߊ߬ߦߌ߬", + "resetpass_submit": "ߕߊ߬ߡߌ߲߬ߞߊ߲ ߠߊߘߏ߲߬ ߞߵߌ ߜߊ߲߬ߞߎ߲߬", "passwordreset": "ߕߊ߬ߡߌ߲߬ߞߊ߲ ߡߊߦߟߍ߬ߡߊ߲߬", "bold_sample": "ߛߓߍߘߋ߲߫ ߞߎ߲ߓߊ", "bold_tip": "ߛߓߍߘߋ߲߫ ߞߎ߲ߓߊ", @@ -266,16 +296,21 @@ "minoredit": "ߣߌ߲߬ ߦߋ߫ ߡߊ߬ߦߟߍ߬ߡߊ߲߬ߠߌ߲߬ ߘߋ߬ߣߍ߲ ߘߏ߫ ߟߋ߬ ߘߌ߫", "watchthis": "ߘߐߜߍ ߣߌ߲߬ ߘߐߜߍ߫", "savearticle": "ߊ߬ ߟߊߞߎ߲߬ߘߎ߬", + "savearticle-start": "ߞߐߜߍ ߟߊߞߎ߲߬ߘߎ߬", + "savechanges-start": "ߡߊ߬ߦߟߍ߬ߡߊ߲߬ߠߌ߲ ߠߊߞߎ߲߬ߘߎ߬", "preview": "ߊ߬ ߘߐߜߍ߫ ߡߎߣߎ߲߬", "showpreview": "ߢߍߦߋߟߌ ߘߐߜߍ߫", "showdiff": "ߡߊ߬ߦߟߍ߬ߡߊ߲߬ߠߌ ߠߎ߫ ߦߌ߬ߘߊ߬", "anoneditwarning": "Warning: ߌ ߜߊ߲߬ߞߎ߲߬ߣߍ߲߬ ߕߍ߫.ߌ ߓߊ߯ ߡߊ߬ߦߟߍ߬ߡߊ߲߬ߠߌ߲ ߛߎ߯-ߎ߯-ߛߎ߫ ߞߍ߫߸ ߌ ߟߊ߫ IP ߛߊ߲߬ߓߊ߬ߕߐ߮ ߘߌ߫ ߞߍ߫ ߦߋߕߊ ߘߌ߫.ߣߴߌ ߞߊ߬ ߜߊ߲߬ߞߎ߲߬ߠߌ߲߬ ߖߐ߲ߖߐ߲ ߞߍ߫ ߕߎ߬ߡߊ ߡߍ߲ [$1 log in] or [$2 create an account] ߌ ߟߊ߫ ߡߊ߬ߦߟߍ߬ߡߊ߲߬ߣߍ߲ ߠߎ߬ ߘߌ߫ ߓߌ߬ߟߊ߬ ߌ ߜߊ߲߬ߞߎ߲߬ ߕߐ߮ ߟߊ߫߸ ߊ߬ ߣߌ߫ ߣߝߊ߬ ߜߘߍ߫ ߟߎ߫.", + "anonpreviewwarning": "ߌ ߜߊ߲߬ߞߎ߲߬ߣߍ߲߬ ߕߍ߫. ߟߊ߬ߞߎ߲߬ߘߎ߬ߟߌ ߘߴߌ ߟߊ߫ IP ߛߊ߲߬ߓߊ߬ߕߐ߮ ߟߊߡߙߊ߬ ߞߐߜߍ ߣߌ߲߬ ߡߊ߬ߦߟߍ߬ߡߊ߲߬ߠߌ߲ ߘߐ߬ߝߐ ߘߐ߫", "blockedtext": "ߌ ߟߊ߫ ߟߊ߬ߓߊ߰ߙߊ߬ ߕߐ߮ ߥߟߊ߫ IP ߛߊ߲߬ߓߊ߬ߕߐ߮ ߓߘߊ߫ ߓߊ߬ߟߊ߲߬߸\n\nߌ ߓߊ߬ߟߊ߲߬ߣߍ߲߬ ߦߋ߫ $1 ߟߋ߬ ߓߟߏ߫.\nߞߎ߲߭ ߡߍ߲ ߦߴߊ߬ ߟ߫ߊ߫ $2.\n\n•ߓߊ߬ߟߊ߲߬ߠߌ߲ ߘߊߡߌ߬ߣߊ: $8\n•ߓߊ߬ߟߊ߲߬ߠߌ߲ ߛߕߊ ߝߊ: $6\n•ߓߊ߬ߟߊ߲߬ߠߌ߲ ߘߊ߬ߟߎ: $7 \n\nߌ ߘߌ߫ ߛߋ߫ ߗߋߛߓߍ ߗߋ߫ ߟߊ߫ $1 ߡߊ߬ ߥߟߊ߫ ߡߐ߰ ߜߘߍ߫ \n[[{{MediaWiki:Grouppage-sysop}}|administrator]] ߞߊ߬ ߘߊߘߐߖߊߥߏ ߞߍ߫ ߓߊ߬ߟߊ߲߬ߠߌ߲ ߞߊ߲߬.\nߌ ߕߍ߫ ߣߊ߬ ߛߋ߫ ߟߊ߫ \"{{int:emailuser}}\" ߟߊߓߊ߯ߙߊ߫ ߟߊ߫߸ ߟߊ߬ߓߊ߰ߙߊ߬ߢߊ߬ ߖߐ߲ߖߐ߲ ߡߍ߲ ߦߋ߫ ߦߋ߲߬߸ ߢߎߡߍߙߋ߲߫ ߞߏ߲ߘߏ߫ ߖߐ߲ߖߐ߲߫ ߓߟߏߡߊߞߊ߬ߣߍ߲ ߘߏ߫ ߦߴߌ ߟߊ߫ [[Special:Preferences|account preferences]] ߘߐ߫߸ ߊ߬ ߣߴߌ ߡߊ߫ ߓߊ߬ߟߊ߲߬ ߊ߬ ߟߊߓߊ߯ߙߊ ߞߏߛߐ߲߬ ߘߋ߫. ߌ ߟߊ߫ IP ߛߊ߲߬ߓߊ߬ߕߐ߮ ߦߋ߫ $3 ߟߋ߬ ߘߌ߫ ߕߊ߲߬߸ ߊ߬ ߣߴߌ ߟߊ߫ ߛߊ߲߬ߓߊ߬ߕߐ߮ ߓߊ߬ߟߊ߲߬ߣߍ߲ ߦߋ߫ #$5 ߟߋ߬ ߘߌ߫.\nߖߊ߰ߣߌ߲߬ ߌ ߦߋ߫ ߛߊ߲ߝߍ߫ ߝߊߙߊ߲ߝߊ߯ߛߌ ߣߌ߲߬ ߓߍ߯ ߟߊߘߏ߲߬ ߌ ߟߊ߫ ߢߌ߬ߣߌ߲߬ߞߊ߬ߟߌ ߘߐ߫.", "loginreqlink": "ߌ ߜߊ߲߬ߞߎ߲߬", "newarticletext": "ߌ ߓߘߊ߫ ߛߘߌ߬ߜߋ߲ ߘߏ߫ ߟߊߓߊ߬ߕߏ߬ ߞߐߜߍ ߘߏ߫ ߘߐ߫߸ ߡߍ߲ ߕߴߦߋ߲߬ ߡߎߣߎ߲߬.\nߣߵߌ ߦߴߊ߬ ߝߍ߫ ߞߊ߬ ߞߐߜߍ ߘߏ߫ ߟߊߘߊ߲߫߸ ߛߓߍߟߌ ߘߊߡߌ߬ߣߊ߬ ߘߎ߰ߟߊ߬ߘߐ߫ ߞߏ߲ߘߏ ߘߐ߫ (ߞߊ߬ [$1 ߘߍ߬ߡߍ߲߬ߠߌ߲ ߞߐߜߍ] ߦߋ߫߸ ߖߐ߲߬ߛߊ߬ ߌ ߘߌ߫ ߞߌ߬ߓߊ߬ߙߏ߬ ߖߐ߲ߖߐ߲ ߛߐ߬ߘߐ߲߬). ߣߵߌ ߘߏ߲߬ ߞߍ߫ ߘߊ߫ ߦߊ߲߬ ߝߎ߬ߕߎ߲߬ߕߌ߬ ߓߟߏߡߊ߬߸ ߌ ߟߊ߫ ߛߏ߲߯ߓߊߟߊ߲ back ߛߐ߲߬ߞߌ߲߫.", + "anontalkpagetext": "----\nߓߊ߬ߘߏ߬ ߞߐߜߍ ߣߌ߲߬ ߦߋ߫ ߟߊߓߊ߯ߙߟߊ߫ ߟߐ߲ߓߊߟߌ ߟߋ߬ ߓߟߏ߫ ߡߍ߲ ߡߊ߫ ߖߊ߬ߕߋ߬ߘߊ߬ ߛߌ߲ߘߌ߫ ߡߎߣߎ߲߬ ߥߟߴߊ߬ ߕߍ߫ ߖߊ߬ߕߋ߬ߘߊ ߏ߬ ߟߊߓߊ߯ߙߊ߫ ߟߊ߫;\nߏ߬ ߞߏߛߐ߲߬ ߊ߲ ߞߊ߫ ߞߊ߲߫ ߞߵߊ߬ ߟߊ߫ ߓߡ (ߓߟߐߟߐ ߡߛߍ߬ߞߍ߬ߡߛߍߞߍ) ߛߊ߲߬ߓߊ߬ߕߐ߮ ߟߊߓߊ߯ߙߴߊ߬ ߡߊߟߐ߲߫ ߞߊߡߊ߬߸ ߟߊߓߊ߯ߙߟߊ߫ ߛߌߦߊߡߊ߲߫ ߓߴߛߋ߫ ߞߊ߬ ߘߍ߬ ߓߡ ߛߊ߲߬ߓߊ߬ߕߐ߮ ߣߌ߲߬ ߢߐ߲߰ ߠߊ߫.\nߣߴߌ ߞߍ߫ ߘߊ߫ ߟߊߓߊ߯ߙߟߊ߫ ߡߊߝߟߌ߬ߣߍ߲߫ ߘߌ߫ ߞߵߊ߬ ߛߏ߬ߓߌ߬ ߞߏ߫ ߌ ߟߊ߫ ߞߊ߲߬ߞߎߡߊ ߟߎ߬ ߕߴߌ ߕߊ߫ ߘߌ߫ ߊ߬ ߘߌ߫ ߟߐ߬ ߌ ߡߊ߬ ߌߞߘߐ߫߸ ߌ ߖߏ߫ ߞߊ߬ [[Special:CreateAccount|ߖߊ߬ߕߋ߬ߘߊ ߘߏ߫ ߘߊߦߟߍ߬]] ߥߟߊ߫ [[Special:UserLogin|ߞߊ߬ ߘߏ߲߬ߕߐ߰ߟߊ߬ߘߏ߲ ߞߍ߫]] ߖߐ߲߬ߛߊ߫ ߟߏ߲ߘߐ߬ ߓߊߛߌ߯ߓߊߟߌߦߊ ߘߌ߫ ߡߟߊ߫ ߟߊߓߊ߯ߙߟߊ߫ ߡߊߟߐ߲ߓߊߟߌ߫ ߜߘߍ ߟߎ߬ ߓߟߏ߫.", "noarticletext": "ߛߓߍߟߌ߫ ߛߌ߫ ߕߍ߫ ߞߐߜߍ ߣߌ߲߭ ߞߊ߲߬ ߕߋ߲߫. ߌ ߘߌ߫ ߛߋ߫ ߞߐߜߍ ߣߌ߲߬ \n [[Special:Search/{{PAGENAME}}|search for this page title]] ߕߐ߮ ߢߌߣߌ߲߫ ߠߊ߫ ߞߐߜߍ ߕߐ߭ ߟߎ߬ ߘߐ߫߸ \n[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} search the related logs],\nor [{{fullurl:{{FULLPAGENAME}}|action=edit}} create this page].", "noarticletext-nopermission": "ߛߓߍߟߌ߫ ߛߌ߫ ߕߍ߫ ߞߐߜߍ ߣߌ߲߭ ߞߊ߲߬ ߕߋ߲߫.\nߌ ߘߌ߫ ߛߋ߫ [[Special:Search/{{PAGENAME}}|search for this page title]] ߢߌߣߌ߲߫ ߠߊ߫ ߞߐߜߍ ߕߐ߭ ߟߎ߬ ߘߐ߫߸ ߥߟߊ߫ [{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} search the related logs] ߞߏ߬ߣߌ߲߬ ߘߌ߬ߢߍ߬ ߞߍߣߍ߲߫ ߕߴߌ ߡߊ߬ ߞߐߜߍ߫ ߣߌ߲߬ ߠߊߞߊ߭ ߘߐ߫.", "userpage-userdoesnotexist-view": "ߟߊ߬ߓߊ߰ߙߊ߬ ߖߊߕߋߘߊ \"$1\" ߟߊߞߎ߲߬ߘߎ߬ߣߍ߲߫ ߕߍ߫.", + "clearyourcache": "ߖߊ߲߬ߕߏ߬ߒߘߐ: ߞߎ߲߬ߘߎ߬ߟߌ ߞߐ߫، ߌ ߓߍߣߊ߬ ߢߌߣߌ߲߫ ߌ ߟߊ߫ ߓߟߐߟߐߞߐߜߍ ߞߙߏ ߘߐߞߊ߭ ߡߊ߬ ߞߊ߬ ߡߝߊ߬ߟߋ߲߬ߠߌ߲ ߠߎ߬ ߦߋ߫. * ߝߦߊߝߐߞߛ / ߛߝߊߙߌ: ߊ߬ ߡߌ߬ߣߊ߬ Shift ߘߌ߯ߟߌ߫ ߕߎߡߊ Reload، ߥߟߊ߫ ߞߵߊ߬ ߛߐ߲߬ߞߌ߲߫ ߥߟߊ߫ Ctrl-F5 ߤߊߡߊ߲߫ Ctrl-R (⌘-R ߡߊߞߌ ߞߊ߲߬) * ߜ߭ߎߜ߭ߐߟ ߞߊ߲߬: ߊ߬ ߛߐ߲߬ߞߌ߲߫ Ctrl-Shift-R (⌘-Shift-R ߡߊߞߌ ߞߊ߲߬) * ߍ߲ߕߍߙߑߣߍߕ ߍߞߛߌߔߟߏߙߊ ߞߊ߲߬: ߊ߬ ߡߌ߬ߣߊ߬ Ctrl ߊ߬ ߛߐ߲߬ߞߌ߲߬ ߕߎߡߊ Refresh، ߥߟߊ߫ ߞߵߊ߬ ߛߐ߲߬ߞߌ߲߫ Ctrl-F5 * ߏߔߋߙߊ: ߕߊ߯ ߞߊߕߙߍ߬ Menu → ߟߊ߬ߓߍ߲߬ߢߐ߲߰ߡߦߊ߬ߘߊ (Opera → ߞߐߡߊߛߙߋ ߡߊߞߌ ߟߊ߫) ߞߊ߬ ߕߊ߯ ߏ߬ ߞߐ߫ ߘߎ߲߬ߘߎ߬ߡߊ߬ & ߞߎ߲߬ߠߊ߬ߝߎߟߋ߲ → ߓߟߐߟߞߐߜߍߦߊ ߟߐ߲ߕߊ ߟߎ߫ ߖߏ߬ߛߌ߫ → ߖߌ߬ߦߊ߬ߓߍ ߟߎ߬ ߣߌ߫ ߞߐߕߐ߯ ߢߡߊߘߏ߲߰ߣߍ߲ ߠߎ߬.", "previewnote": "ߌ ߖߊ߲߬ߓߌ߬ߟߊ߬ ߞߏ߫ ߣߌ߲߬ ߦߋ߫ ߢߍߝߟߍߟߌ ߘߐߙߐ߲߫ ߠߋ߬ ߘߌ߫.\nߌ ߟߊ߫ ߡߝߊ߬ߟߋ߲߬ߠߌ ߟߎ߫ ߡߊ߫ ߟߊߞߎ߲߬ߘߎ߬ ߝߟߐ߫ ߘߋ߬߹", "continue-editing": "ߥߊ߫ ߡߊ߬ߦߟߍ߬ߡߊ߲߬ߠߌ߬ ߞߣߍ ߞߊ߲߬", "editing": "ߡߊ߬ߦߟߍ߬ߡߊ߲߬ߠߌ߲ ߦߋ߫ ߛߋ߲߬ߠߊ߫ $1", @@ -283,7 +318,7 @@ "editingsection": "(ߛߌ߰ߘߊ߬) $1 ߡߊߦߟߍ߬ߡߊ߲ ߦߋ߫ ߛߋ߲߬ߠߊ߫", "templatesused": "{{PLURAL:$1|ߞߙߊߞߏ|ߞߙߊߞߏ ߟߎ߫}} ߟߎ߫ ߟߊߓߊ߯ߙߊ߫ ߘߊ߫ ߞߐߜߍ ߣߌ߲߬ ߘߐ߫", "templatesusedpreview": "{{PLURAL:$1|ߞߙߊߞߏ|ߞߙߊߞߏ ߟߎ߬}} ߟߋ߬ ߟߊߓߊ߯ߙߊ߫ ߣߍ߲߫ ߢߍߦߋߟߌ ߣߌ߲߬ ߘߐ߫", - "template-protected": "(ߊ߬ ߟߊߞߊ߲ߘߊߣߍ߲ ߠߋ߬)", + "template-protected": "(ߊ߬ ߡߊߞߊ߲ߞߊ߲ߣߍ߲߫ ߠߋ߬)", "template-semiprotected": "(ߟߊ߬ߞߊ߲߬ߘߊ߬ߟߌ-ߝߊ߲߬ߞߋ߬ߟߋ߲߬ߡߊ)", "hiddencategories": "ߞߐߜߍ ߣߌ߲߬ ߦߋ߫ ߢߌ߲߬ ߠߎ߫ ߛߌ߲߬ߝߏ߲ ߠߋ߬ ߘߌ߫{{PLURAL:$1|}}", "permissionserrors": "ߝߌ߬ߟߌ߫ ߘߌ߬ߢߍ߬ߒߧߋ", @@ -296,33 +331,36 @@ "currentrev-asof": "$1 ߟߊ߫ ߡߊ߬ߦߟߍ߬ߡߊ߲߬ߠߌ߲ ߕߊ߬ߡߌ߲߬ߣߍ߲", "revisionasof": "ߊ߬ ߡߊߛߊ߬ߦߌ߲ ߦߊ߲߬ ߓߊ߫ 1$", "revision-info": "ߡߊ߬ߦߟߍ߬ߡߊ߲߬ߣߍ߲߫ $1 ߟߋ߬ ߓߟߏ߫ {{GENDER:$6|$2}}$7", - "previousrevision": "→ ߡߊ߬ߛߊ߬ߦߌ߲߬ߠߌ߲ ߞߘߐ߬ߡߊ߲", + "previousrevision": "→ ߡߊ߬ߛߊ߬ߦߌ߲߬ߠߌ߲߬ ߞߘߐߞߘߐ", "nextrevision": "ߡߊ߬ߛߋ߬ߦߌ߲߬ߣߍ߲߬ ߞߎߘߊ ←", "currentrevisionlink": "ߡߊ߬ߛߊ߬ߦߌ߲߬ߠߌ߲ ߕߊ߬ߡߌ߲߬ߣߍ߲", "cur": "ߞߍߞߎߘߊ", + "next": "ߢߍߕߊ", "last": "ߢߍߕߊ", + "histlegend": "ߝߘߏ߬ߢߐ߲߰ߡߊ ߡߊߡߌ߬ߘߊ: ߓߊߓߌߟߊߟߌ߫ ߞߏ߲ߘߏ ߡߊߡߌ߬ߘߊ߬ ߟߊߢߐ߲߯ߡߊ߫ ߞߊߡߊ߬߸ ߊ߬ ߣߌ߫ ߞߊ߬ ߟߊߢߐ߲߯ߡߊ߫ ߞߘߎ ߛߐ߲߬ߞߌ߲߫ ߊ߬ ߣߌ߫ ߓߊ߫ ߡߊߡߌ߬ߣߊ߬ߣߍ߲ ߕߍ߫ ߥߟߊ߫ ߞߎ߬ߘߎ ߡߍ߲ ߦߋ߫ ߘߎ߰ߟߊ߫. < br/> Legend: ({{int: cur}}) = ߓߐߢߐ߲߯ߡߊ ߡߍ߲ ߦߋ߫ ߕߋ߲߬ߕߋ߲߬ ߓߊ ߟߊ߫߸ ({{int: ߟߊߓߊ߲}}) = ߓߐߢߐ߲߯ߡߊ ߡߍ߲ ߦߋ߫ ߓߊ߫ ߕߊ߬ߡߌ߲߬ߣߍ߲ ߝߍ߬߸ {{int: ߢߟߊߞߎߘߦߊ߫ ߞߏߘߋߞߏߘߋ}} = ߛߊߞߍߟߌ߫ ߝߕߌߣߍ߲߫.", "history-fieldset-title": "ߣߐ߬ߡߊ߬ߛߊߦߌ߲ ߠߎ߬ ߛߍ߲ߛߍ߲߫", "histfirst": "ߞߘߐ߬ߡߊ߲ ߠߎ߬", "histlast": "ߞߎߘߊ ߟߎ߬", "history-feed-title": "ߡߊ߬ߛߊ߬ߦߌ߲߬ߠߌ߲ ߘߐ߬ߝߐ", "history-feed-description": "ߞߐߜߍ ߣߌ߲߬ ߡߊ߬ߦߟߍ߬ߡߊ߲߬ߠߌ߲ ߘߐ߬ߝߐ߸ ߥߞߌ ߘߐ߫", "rev-delundel": "ߊ߬ ߦߋߢߊ ߡߊߦߟߍ߬ߡߊ߲߫", + "revdelete-show-file-submit": "ߐ߲߬ߐ߲߬ߐ߲߫", "mergelog": "ߥߴߌ ߜߊ߲߬ߞߎ߲߬", "history-title": "$1 ߡߛߊ߬ߦߌ߲߬ߠߌ߲ ߘߐ߬ߝߐ", "difference-title": "ߘߊ߲߬ߝߘߊ߬ߓߐ ߡߍ߲ ߦߋ߫ ߡߛߊ߬ߦߌ߲߬ߠߌ߲ $1 ߕߍ߫", "lineno": "$1 ߛߌ߬ߕߊߙߌ:", "compareselectedversions": "ߘߟߊߡߌߘߊ߫ ߛߎߥߊ߲ߘߌߣߍ߲ ߠߎ߬ ߟߊߢߐ߲߯ߡߊ߫", - "editundo": "ߊ߬ ߘߐߛߊ߬߸ ߊ߬ ߓߟߏߞߊ߬߸ ߊ߬ ߓߙߐߕߐ߫", + "editundo": "ߊ߬ ߘߐߛߊ߬", "diff-empty": "(ߝߊߙߊ߲ߝߊ߯ߛߌ߫ ߕߴߊ߬ߟߎ߬ ߕߍ߫)", "diff-multi-sameuser": "({{PLURAL:$1|One intermediate revision|$1 intermediate revisions}} ߟߊ߬ߓߊ߰ߙߊ߬ ߞߋߟߋ߲ ߓߟߏ߫߸ ߏ߬ ߡߊ߫ ߦߌ߬ߘߊ߬)", - "diff-multi-otherusers": "({{PLURAL:$1|ߕߍ߯ߟߊߘߐ߫ ߡߛߊߦߌ߲ߠߌ߲߫ ߞߋߟߋ߲߫|ߕߍ߯ߟߊߘߐ߫ ߡߛߊߦߌ߲ߠߌ߲}} {{PLURAL:$2|ߟߊ߬ߓߊ߰ߙߊ߬ߟߊ߫ ߘߏ߫ ߜߘߍ߫|ߟߊ߬ߓߊ߰ߙߊ߬ߟߊ ߟߎ߬}} ߓߟߏ߫߸ ߏ߬ ߡߊ߫ ߦߌ߬ߘߊ߬)", + "diff-multi-otherusers": "({{PLURAL:$1|ߕߍߟߐ ߡߊߛߊߦߌ߲߬ߞߏ߬ ߞߋߟߋ߲߫|ߕߍߟߐ ߡߊߛߊ߬ߦߌ߲}} {{PLURAL:$2|ߟߊߓߊ߯ߙߟߊ߫ ߘߏ߫ ߜߘߍ߫|ߟߊߓߊ߯ߙߟߊ ߟߎ߬}} ߏ߬ ߡߊ߫ ߟߊ߲ߞߣߍߡߊ߫)", "searchresults": "ߢߌߣߌ߲ߠߌ߲ ߞߐߝߟߌ ߟߎ߬", - "searchresults-title": "ߢߌߣߌ߲ߠߌ߲ ߞߐߖߋߓߌ \"$1\"", + "searchresults-title": "ߣߌ߲߬ \"$1\" ߢߌߣߌ߲ߠߌ߲ ߞߐߝߟߌ", "prevn": "ߕߊ߬ߡߌ߲߬ߣߍ߲ ߠߎ߬ {{PLURAL:$1|$1}}", "nextn": "$1{{PLURAL:$1|ߟߊߕߎ߲߰ߠߊ}}", "prevn-title": "ߢߝߍߕߊ $1 {{PLURAL:$1|result|results}}", "nextn-title": "ߢߍߕߊ $1 {{PLURAL:$1|ߞߐߖߋߓߌ}}", - "shown-title": "ߦߌߘߊߞߊ߬ $1{{PLURAL:$1|ߞߐߝߟߌ |ߞߐߝߟߌ ߟߎ߬ }} ߞߐߜߍ߫ ߞߋ߬ߟߋ߲߬ߞߋ߬ߟߋ߲߬ߠߊ", + "shown-title": "ߞߐߜߍ߫ ߞߋ߬ߟߋ߲߬ߞߋ߬ߟߋ߲߬ߠߊ $1{{PLURAL:$1|ߞߐߝߟߌ |ߞߐߝߟߌ ߟߎ߬ }} ߦߌߘߊߞߊ߬", "viewprevnext": "($1 {{int:pipe-separator}} $2) ($3) ߦߋ߫", "searchmenu-exists": " ߞߐߜߍ ߘߏ߫ ߕߐ߯ ߦߋ߫ ߞߏ߫ \"[[:$1]]\" ߥߞߌ ߣߌ߲߬ ߘߐ߫. {{PLURAL:$2|0=|See also the other search results found.}}", "searchmenu-new": "ߞߐߜߍ ߘߏ߫ ߟߊߘߊ߲߫ \"[[:$1]]\" ߥߞߌ ߣߌ߲߬ ߘߐ߫߹ {{PLURAL:$2|0=|ߣߌ߲߬ ߝߣߊ߫ ߘߐߜߍ߫ the page found with your search.|ߣߌ߲߬ ߝߣߊ߫ ߘߐߜߍ߫ the search results found.}}", @@ -344,6 +382,7 @@ "search-showingresults": "{{PLURAL:$4|Result $1 of $3|Results $1 – $2 of $3}}", "search-nonefound": "ߖߋ߬ߓߟߌ߬ ߛߌ߫ ߕߍ߫ ߢߌ߬ߣߌ߲߬ߞߊ߬ߟߌ ߣߌ߲߫ ߞߊ߲߬.", "mypreferences": "ߟߊ߬ߝߌ߬ߛߦߊ߬ߟߌ", + "timezoneregion-africa": "ߊߝߙߌߞߌ߬", "group-bot": "ߓߏߕ", "group-sysop": "ߞߎ߲߬ߠߊ߬ߛߌ߰ߟߊ", "grouppage-bot": "{{ns:project}}:ߓߏߕ", @@ -359,7 +398,7 @@ "recentchanges-summary": "ߥߞߌ ߡߊ߬ߦߟߍ߬ߡߊ߲߬ߠߌ߲߬ ߞߎ߲ߓߊ ߡߍ߲ ߠߎ߬ ߞߍߣߍ߲߫ ߞߐߜߍ ߣߌ߲߬ ߞߊ߲߬߸ ߏ߬ ߟߎ߫ ߣߐ߬ߣߐ߬.", "recentchanges-noresult": "ߡߊ߬ߦߟߍ߬ߡߊ߲߬ߠߌ߬ ߛߌ߫ ߓߍ߲߬ߢߐ߲߰ߦߊ߬ߣߍ߲߬ ߕߍ߫ ߛߎߡߊ߲ߡߕߊ ߢߌ߲߬ ߠߎ߫ ߡߊ߬ ߕߎ߬ߡߊ߬ ߟߊߕߍ߰ߣߍ߲ ߦߌ߬ߘߊ ߘߐ߫.", "recentchanges-label-newpage": "ߡߊ߬ߦߟߍ߬ߡߊ߲߬ߠߌ߲ ߣߌ߲߬ ߓߘߊ߫ ߘߐߜߍ߫ ߞߎߘߊ ߟߊߘߊ߲߫", - "recentchanges-label-minor": "ߡߊ߬ߦߟߍ߬ߡߊ߲߬ߠߌ߲߬ ߘߋ߬ߣߍ߲ ߠߋ߫ ߦߋ߫", + "recentchanges-label-minor": "ߢߟߊߞߎߘߦߊ߫ ߝߕߌߣߍ߲ ߠߋ߬", "recentchanges-label-bot": "ߡߐ߰ߡߐ߮ ߟߋ߫ ߣߐ߬ ߡߊ߬ߦߟߍ߬ߡߊ߲߬ߠߌ ߣߌ߲߬ ߞߍ߫ ߟߊ߫", "recentchanges-label-unpatrolled": "ߡߊ߬ߦߟߍ߬ߡߊ߲߬ߠߌ߲ ߣߌ߲߬ ߡߊ߫ ߓߍ߬ߙߍ߲߬ߓߍ߬ߙߍ߲߬ ߡߎߣߎ߲߬", "recentchanges-label-plusminus": "ߞߐߜߍ ߢߊ߲ߞߊ߲ ߓߘߊ߫ ߡߊߦߟߍ߬ߡߊ߲߫ ߞߵߊ߬ ߝߌ߬ߘߊ߲ ߦߙߌߞߊ ߣߌ߲߬ ߘߌ߫", @@ -384,22 +423,22 @@ "rcshowhidemine-show": "ߊ߬ ߦߌ߬ߘߊ߬", "rcshowhidemine-hide": "ߊ߬ ߦߡߊߘߏ߲߰", "rclinks": "ߕߋ߬ߟߋ $2 ߕߊ߬ߡߌ߲߬ߣߍ߲ ߣߌ߲߬ ߡߝߊ߬ߟߋ߲߬ߠߌ߲߬ ߟߊ߬ߓߊ߲ $1 ߦߌ߬ߘߊ߬", - "diff": "ߘߊ߲߬ߝߘߊ߬ߓߐ", - "hist": "ߕߊ߬ߡߌ߲߬ߣߍ߲", + "diff": "ߝߘߏ߬ߢߐ߲߰ߡߊ", + "hist": "ߞߊ߬ߞߘߐ", "hide": "ߊ߬ ߢߡߊߘߏ߲߰", "show": "ߊ߬ ߦߌ߬ߘߊ߬", "minoreditletter": "ߡ", "newpageletter": "ߞ", "boteditletter": "ߓ", - "rc-change-size-new": "$1 {{PLURAL:$1|byte|bytes}} ߡߊ߬ߝߊ߬ߟߋ߲߬ߠߌ߲ ߞߐ߫", + "rc-change-size-new": "$1 {{PLURAL:$1|ߝߌ߬ߘߊ߲|ߝߌ߬ߘߊ߲ ߠߎ߬}} ߢߟߊߞߎߘߦߊ ߞߐ߫", "rc-old-title": "ߊ߬ ߓߊߞߘߐ ߟߊߘߊ߲߫ ߣߍ߲߫ ߦߋ߫ ߕߊ߲߬ ߠߋ߫ \"$1\"", "recentchangeslinked": "ߡߊ߬ߦߟߍ߬ߡߊ߲߬ߠߌ߲ ߜߋ߲߬ߞߘߎ߬ߢߐ߲߰ߡߊ ߟߎ߬", - "recentchangeslinked-toolbox": "ߡߊ߬ߦߟߍ߬ߡߊ߲߬ߠߌ߫ ߓߌ߬ߟߊ߬ߢߐ߲߰ߡߊ", + "recentchangeslinked-toolbox": "ߢߟߊߞߎߘߦߊߟߌ߫ ߜߋ߲߬ߞߘߎ߬ߡߊ ߟߎ߬", "recentchangeslinked-title": "ߊ߬ ߟߌ߬ߤߟߊ ߡߊߦߟߍ߬ߡߊ߲߫ ߦߊ߲߬ \"$1\"", "recentchangeslinked-summary": "ߞߐߜߍ ߕߐ߮ ߟߊߘߏ߲߬߸ ߞߊ߬ ߞߐߜߍ ߛߘߌ߬ߜߋ߲ ߡߊ߬ߦߟߍ߬ߡߊ߲߬ߠߌ߲ ߦߋ߫߸ ߥߟߊ߫ \nߞߊ߬ ߝߘߊ߫ ߞߐߜߍ ߣߌ߲߬ ߠߊ߫. (ߖߐ߲߬ߛߊ߬ ߌ ߘߌ߫ ߦߌߟߡߊ ߛߌ߲߬ߝߏ߲ ߠߎ߬ ߦߋ߫߸ ߣߌ߲߬ ߠߊߘߏ߲߬ {{ns:category}}: ߦߌߟߡߊ ߕߐ߮). ߦߟߍ߬ߡߊ߲߬ ߡߍ߲ ߦߋ߫ ߞߐߜߍ ߣߌ߲߬ [[Special:Watchlist|your Watchlist]] ߘߐ߫߸ ߏ߬ ߦߋ߫ ߛߓߍߘߋ߲߫ ߞߎ߲ߓߊ ߟߋ߬ ߘߐ߫.", "recentchangeslinked-page": "ߘߐߜߍ ߕߐ߮:", "recentchangeslinked-to": "ߞߐߜߍ ߛߘߌ߬ߜߋ߲ ߠߎ߬ ߦߌ߬ߘߊ߬߸ ߞߊ߬ ߞߐߜߍ ߣߌ߬ ߞߋߟߋ߲ߘߌ߫", - "upload": "ߞߐߕߐ߮ ߟߊߦߟߍ߬", + "upload": "ߞߐߕߐ߮ ߟߊߦߟߍ", "uploadlogpage": "ߜߊ߲߬ߞߎ߲߬ߠߌ߲ ߘߏ߫ ߟߊߦߟߍ߬", "filedesc": "ߟߊߘߛߏߣߍ߲", "license": "ߟߊ߬ߘߌ߬ߢߍ߬ߟߌ ߦߴߌ ߘߐ߫:", @@ -407,13 +446,13 @@ "imgfile": "ߞߐߕߐ߮", "listfiles": "ߞߐߕߐ߮ ߛߙߍߘߍ", "file-anchor-link": "ߞߐߕߐ߮", - "filehist": "ߞߐߕߐ߮ ߟߊ߫ ߘߐ߬ߝߐ", + "filehist": "ߞߐߕߐ߮ ߕߎ߬ߡߊ߬ߘߊ", "filehist-help": "ߕߎ߬ߡߊ߬ߘߊ/ߕߎ߬ߡߊ ߛߐ߲߬ߞߌ߲߬ ߓߊ߫߸ ߞߊ߬ ߕߎ߬ߡߊ߬ߘߊ ߞߐߕߐ߮ ߟߎ߬ ߦߋ߫.", "filehist-revert": "ߊ߬ ߟߊߢߊ߬", "filehist-current": "ߞߍߛߊ߲ߞߏ", "filehist-datetime": "ߕߎ߬ߡߊ߬ߘߊ/ߕߎ߬ߡߊ߬ߟߊ߲", "filehist-thumb": "ߞߝߊ߬ߟߋ߲ߛߋ߲", - "filehist-thumbtext": "ߡߊ߬ߦߟߍ߬ߡߊ߲߬ߠߌ߲ ߠߊߘߐ߯ߦߊߣߍ߲ ߡߍ߲ ߦߋ߫ $1", + "filehist-thumbtext": "ߡߊ߬ߦߟߍ߬ߡߊ߲߬ߠߌ߲ ߠߊߘߐ߯ߦߊߣߍ߲ ߕߎ߬ߡߊ߬ߘߊ ߣߌ߲߬ $1 ߠߊ߫", "filehist-nothumb": "ߖߌ߬ߦߊ߬ ߘߐ߯ߡߊ߲߫ ߕߴߦߋ߲߬", "filehist-user": "ߟߊ߬ߓߊ߰ߙߊ߬ߟߊ", "filehist-dimensions": "ߛߎߡߊ߲ߘߐ", @@ -426,14 +465,14 @@ "sharedupload-desc-here": "ߘߐ߬ߛߙߋ ߣߌ߲߬ ߦߋ߫ ߦߊ߲߬ ߠߋ߫ $1 ߖߊ߬ߕߋ߬ߘߐ߬ߛߌ߮ ߕߐ߭ ߟߎ߬ ߞߏ߬ߣߌ߲ ߘߌ߫ ߛߴߊ߬ ߟߊߓߊ߯ߙߊ߫ ߟߊ߫. ߊ߬ ߕߐ߯ ߛߓߍߟߌ ߦߙߐ [$2 ߞߐߕߐ߮ ߞߊ߲߬ߛߓߍߟߌ ߞߐߜߍ] ߟߋ߬ ߦߋ߫ ߘߎ߰ߟߊ ߘߐ߫ ߣߌ߲߬.", "filepage-nofile": "ߕߐ߮ ߣߌ߲߬ ߞߐߕߐ߯ ߛߎ߯ ߕߍ߫ ߦߋ߲߬", "upload-disallowed-here": "ߌ ߕߍߣߊ߬ ߞߐߜߍ ߣߌ߲߬ ߞߊ߲߬ߛߓߍ߫ ߟߊ߫.", - "randompage": "ߓߍ߲߬ߛߋ߲߬ߡߊ߬ ߞߐߜߍ", + "randompage": "ߞߎ߲߬ߝߍ߬ ߞߐߜߍ", "statistics": "ߖߊ߬ߕߋ߬ߛߎ߬ߓߐ ߟߎ߬", "double-redirect-fixer": "ߟߊ߬ߞߎ߲߬ߛߌ߲߬ߠߌ߲ ߘߐߓߍ߲߬ߟߊ߲", - "nbytes": "$1 {{PLURAL:$1|byte|bytes}}", + "nbytes": "$1 {{PLURAL:$1|ߝߌ߬ߘߊ|ߝߌ߬ߘߊ߲ ߠߎ߬}}", "nmembers": "$1 {{PLURAL:$1|ߛߌ߲߬ߝߏ߲ |ߛߌ߲߬ߝߏ߲ ߠߎ߬}}", "prefixindex": "ߞߐߜߍ ߡߍ߲ ߠߎ߬ ߓߍ߯ ߟߊߝߟߐߣߍ߲߫", "listusers": "ߟߊ߬ߓߊ߰ߙߊ߬ߟߊ ߛߙߍߘߍ", - "newpages": "ߘߐߜߍ߫ ߞߎߘߊ", + "newpages": "ߞߐߜߍ߫ ߞߎߘߊ ߟߎ߬", "move": "ߊ߬ ߛߋ߲߬ߓߐ߫", "pager-newer-n": "{{PLURAL:$1|ߞߎߘߡߊ1|ߞߎߘߡߊ$1}}", "pager-older-n": "{{PLURAL:$1|ߞߘߐ߬ߡߊ߲ ߁|ߞߘߐ߬ߡߊ߲ ߠߎ߬ $1}}", @@ -444,7 +483,8 @@ "speciallogtitlelabel": "ߞߏ߲߭ (ߞߎ߲߬ߕߐ߮ ߥߟߊ߫ {{ns:user}}: ߟߊ߬ߓߊ߰ߙߊ߬ߟߊ ߟߊ߫ ߟߊ߬ߓߊ߰ߙߊ߬ ߕߐ߮):", "log": "ߘߏ߲߬", "all-logs-page": "ߝߘߏ߬ߓߊ߬ ߜߊ߲ߞߎ߲ߠߌ߲ ߠߎ߬ ߓߍ߯", - "logempty": "ߦߙߍߞߍߟߌ߫ ߛߌ߫ ߓߍ߲߬ߢߐ߲߰ߦߊ߬ߣߍ߲߬ ߕߍ߫ ߝߐ߰ߓߍ ߟߎ߬ ߘߐ߫.", + "alllogstext": "ߓߟߏߞߘߐ߫ ߘߐߛߙߋ ߡߎ߰ߡߍ ߦߌ߬ߘߊ߬ߟߌ ߣߌ߲߬ ߞߣߐ߫ {{SITENAME}}.\nߌ ߘߌ߫ ߛߋ߫ ߛߙߍߘߍ ߘߊ߲߬ߠߊߕߍ߰ ߟߊ߫ ߓߘߍߞߍ߭ ߞߊ߬ ߢߊ߬߸ ߏ߬ ߛߋ߲߬ߝߍ߬ ߞߊ߬ ߘߐ߬ߛߙߋ ߛߎ߯ߦߊ ߡߊߡߌ߬ߘߊ߬߸ ߊ߬ ߣߌ߫ ߟߊߓߊ߯ߙߟߊ ߕߐ߮ (ߛߏ߬ߓߌ߬ߟߊ߲߬ߘߌ ߟߋ߬ ߛߓߍߘߋ߲ ߗߏ߯ߦߊ ߝߍ߬)߸ ߥߟߴߊ߬ ߥߟߏߣߍ߲߫ ߞߐߜߍ ߡߍ߲ ߞߊ߲߬ (ߛߏ߬ߓߌ߬ߟߊ߲߬ߘߌ ߟߋ߬ ߝߣߊ߫ ߛߓߍߘߋ߲ ߠߎ߬ ߗߏ߯ߦߊ ߝߍ߬).", + "logempty": "ߞߍߞߏ ߛߌ߫ ߣߌ߫ ߘߐ߬ߛߙߋ ߡߊ ߓߍ߲߬ ߢߐ߲߮ ߡߊ߬.", "allpages": "ߞߐߜߍ ߟߎ߬ ߓߍ߯", "allarticles": "ߞߐߜߍ ߟߎ߬ ߓߍ߯", "allpagessubmit": "ߥߊ߫", @@ -465,7 +505,7 @@ "watchlist-options": "ߞߣߐ߬ߜߍ߲߬ ߛߙߍߘߍ ߢߣߊߕߐߡߐ߲ ߠߎ߬", "enotif_reset": "ߞߐߜߍ߫ ߞߎ߲ߝߊ߲ߓߐߣߍ߲ ߠߎ߬ ߓߍ߯ ߕߐ߰ߡߊ߬ߛߙߋ߫", "dellogpage": "ߜߊ߲߬ߞߎ߲߬ߠߌ߲ ߖߏ߬ߛߌ߬ߣߍ߲", - "rollbacklink": "ߌ ߞߐߛߊ߬ߦߌ߲߬ ߌ ߣߐ߭ߡߊ߬", + "rollbacklink": "ߟߊߞߐߛߊ߬ߦߌ߬", "rollbacklinkcount": "ߛߋ߬ߦߌ߲߬ ߌ ߣߐ߭ߡߊ߬ $1 {{PLURAL:$1|ߡߊߦߟߍ߬ߡߊ߲߫|ߟߎ߬ ߡߊߦߟߍ߬ߡߊ߲߫}}", "protectlogpage": "ߜߊ߲߬ߞߎ߲߬ߠߌ߲߬ ߠߊߞߊ߲ߘߊߣߍ߲", "protectedarticle": "ߟߊ߬ߞߊ߲߬ߘߊ߬ߣߍ߲ \"[[$1]]\"", @@ -478,7 +518,7 @@ "tooltip-invert": "ߞߏ߲߬ߘߏ ߣߌ߲߬ ߘߐߜߍ߫߸ ߞߊ߬ ߡߊ߬ߦߟߍ߬ߡߊ߲߬ߠߌ߲ ߠߎ߬ ߢߡߊߘߏ߲߰ ߞߐߜߍ ߟߎ߬ ߕߐ߯ ߞߣߍ߫ ߓߊߓߌ߬ߟߊ߬ߣߍ߲ ߘߐ߫ (ߊ߬ ߣߌ߫ ߕߐ߯ ߞߣߍ߫ ߓߟߏߘߏ߲߬ߣߍ߲ ߘߐߜߍߣߍ߲ ߠߎ߬)", "namespace_association": "ߕߐ߯ ߓߟߏߘߏ߲߬ߣߍ߲߫ ߢߐ߲߰ߓߟߏ", "tooltip-namespace_association": "ߞߏ߲߬ߘߏ ߣߌ߲߬ ߡߊߝߍߣߍ߲߫ ߓߊ߫ ߞߊ߬ ߓߊ߬ߘߏ߬ߓߊ߬ߘߌߦߊ ߥߟߊ߫ ߝߐߡߊ ߕߐ߮ ߞߣߍ ߡߍ߲ ߓߟߏߘߏ߲߬ߣߍ߲߫ ߦߋ߫ ߞߐߜߍ߫ ߓߊߕߐ߬ߡߐ߲߬ߣߍ߲ ߣߌ߲߬ ߘߐ߫߸ ߞߵߏ߬ ߟߊߘߏ߲߬.", - "blanknamespace": "(ߓߊߖߎ)", + "blanknamespace": "(ߓߊߖߎߡߊ)", "contributions": "ߓߟߏߡߊߜߍ߲ ߠߎ߬ {{GENDER:$1|ߟߊߓߊ߯ߙߟߊ}}", "contributions-title": "ߟߊ߬ߓߊ߰ߙߊ߬ߟߊ ߟߊ߫ ߓߟߏߓߌߟߊߢߐ߲߯ߞߊ߲ ߡߍ߲ ߦߋ߫$1", "mycontris": "ߓߟߏߓߌߟߊߢߐ߲߯ߞߊ߲", @@ -517,7 +557,7 @@ "ipboptions": "ߕߎ߬ߡߊ߬ߙߋ߲ ߂:2 hours, ߕߟߋ߬ ߁:1 day, ߕߋ߬ߟߋ ߃:3 days,ߞߎ߲߬ߢߐ߰ ߁:1 week, ߞߎ߲߬ߢߐ߮ ߂:2 weeks, ߞߊߙߏ߫ ߁:1 month, ߞߊߙߏ߫ ߃:3 months, ߞߊߙߏ߫ ߆:6 months,ߛߊ߲߬ ߁:1 year,ߤߊ߲߯ ߤߌ߲߯:infinite", "infiniteblock": "ߘߊ߲߬ߓߊߟߌ", "blocklink": "ߟߊ߬ߢߊ߬ߙߊ߲߬ߠߌ", - "contribslink": "ߡߊߛߐ߯ߟߌ", + "contribslink": "ߓߟߏߡߊߜߍ߲", "blocklogpage": "ߜߊ߲߬ߞߎ߲߬ߠߌ߲ ߓߊ߬ߟߊ߲߬ߠߌ", "blocklogentry": "ߊ߬ ߓߊ߬ߟߊ߲߬ߣߍ߲߬ ߦߋ߫ [[$1]] ߊ߬ ߕߎ߬ߡߊ ߕߊ߬ߡߌ߲ ߠߋ߬ ߞߏߛߐ߲߬ $2 $3", "reblock-logentry": "ߣߌ߲߬ ߓߊ߬ߟߊ߲߬ߠߌ߲ ߟߊ߬ߓߍ߲߬ߢߐ߲߰ߡߊ ߡߊߦߟߍ߬ߡߊ߲߬ [[$1]] ߊ߬ ߕߎ߬ߡߊ ߛߕߊ ߝߊ ߕߎߡߊ ߟߊ߫ $2 $3", @@ -525,49 +565,49 @@ "proxyblocker": "ߟߐ߲߬ߞߋ߬ߟߊ ߓߊ߬ߟߊ߲߬ߟߊ߲", "movelogpage": "ߜߊ߲߬ߞߎ߲ ߓߐ߫ ߊ߬ ߡߊ߬", "export": "ߞߐߜߍ ߟߎ߬ ߟߊߝߏ߬ߦߌ߬", - "thumbnail-more": "ߊ߬ ߟߊߞߎ߲߬ߓߦߊ߬", + "thumbnail-more": "ߊ߬ ߟߊߞߎ߲߬ߓߊ߬ߦߊ߫", "importlogpage": "ߟߊ߬ߛߣߍ߬ߟߌ ߞߣߍ", "tooltip-pt-userpage": "{{GENDER:|ߌ ߟߊ߫ ߟߊ߬ߓߊ߰ߙߊ߬ߟߌ߬}} ߞߐߜߍ", "tooltip-pt-mytalk": "{{GENDER:|ߌ ߟߊ߫}} ߞߎߡߊ߫ ߞߐߜߍ߫", "tooltip-pt-preferences": "{{GENDER:|ߌ ߟߊ߫}} ߤߣߍߕߊ ߟߎ߬", "tooltip-pt-watchlist": "ߌ ߟߊ߫ ߞߐߜߍ߫ ߡߊߦߟߍ߬ߡߊ߲߬ߕߊ ߜߋ߬ߟߎ߲߬ߣߍ߲ ߠߎ߬ ߛߙߍߘߍ", "tooltip-pt-mycontris": "{{GENDER:|ߌ ߟߊ߫}} ߓߟߏߡߊߜߍ߲߫ ߛߙߍߘߍ ߟߎ߬", - "tooltip-pt-login": "ߌ ߡߊߘߌߦߊߣߍ߲߫ ߦߴߌ ߜߊ߲߬ߞߎ߲߫ ߸ ߘߌߦߊߜߏߦߊ߫ ߞߏ߬ߣߌ߲߬ ߕߍ߫", + "tooltip-pt-login": "ߌ ߘߐߛߎߣߍ߲߫ ߜߊ߲߬ߞߎ߲߬ߠߌ߲ ߡߊ߬߸ ߞߏ߬ߣߌ߲߬ ߘߌߦߊߜߏߦߊ߫ ߕߍ߫", "tooltip-pt-logout": "ߌ ߜߊ߲߬ߞߎ߲߬ ߓߐ߫", - "tooltip-pt-createaccount": "ߌ ߡߊߘߌߦߊߣߍ߲߫ ߦߋ߫ ߖߊ߬ߕߋ߬ߘߊ߫ ߟߊߞߊ߬ ߞߵߌ ߜߊ߲߬ߞߎ߲߫ ߸ ߓߊ߬ߙߌ߬ ߌ ߘߌߦߊߜߏߦߊߣߍ߲߫ ߕߍ߫", - "tooltip-ca-talk": "ߘߐ߬ߞߕߌ߬ߟߌ ߞߊ߬ ߓߍ߲߬ ߞߐߜߍ ߞߣߐߘߐ ߡߊ߬", + "tooltip-pt-createaccount": "ߊ߲ ߧߴߌ ߘߐߛߎ߫ ߟߊ߫ ߖߊ߬ߕߋ߬ߘߊ߬ߞߏ ߡߊ߬ ߊ߬ ߣߌ߫ ߘߏ߲߬ߕߐ߰ߟߊ߬ߘߏ߲߸ ߞߏ߬ߣߌ߲߬ ߢߊ߬ߒ߬ߞߐ߬ߓߊߟߌ߫ ߕߍ߫ ߢߊ߫ ߛߌ߫ ߞߊ߲߬", + "tooltip-ca-talk": "ߞߣߐߘߐ ߞߐߜߍ ߞߏߢߊ ߘߐߢߌߡߌ߲ߠߌ߲", "tooltip-ca-edit": "ߞߐߜߍ ߣߌ߲߬ ߡߊߦߟߍ߬ߡߊ߲߬", "tooltip-ca-addsection": "ߛߌ߰ߘߊ߬ ߞߎߘߊ߫ ߘߊߡߌ߬ߣߊ߬", "tooltip-ca-viewsource": "ߞߐߜߍ ߣߌ߲߬ ߠߊߞߊ߲ߘߊߣߍ߲߫ ߠߋ߬.\nߌ ߘߌ߫ ߛߴߊ߬ ߛߎ߲ ߘߐߜߍ߫ ߟߊ߫", - "tooltip-ca-history": "ߞߐߜߍ ߣߌ߲߬ ߛߊߞߍߟߌ߫ ߕߊ߬ߡߌ߲߬ߣߍ߲ ߠߎ߫ ߘߐߜߍ߫", + "tooltip-ca-history": "ߞߐߜߍ ߣߌ߲߬ ߛߊߞߍߟߌ߫ ߞߘߐ ߟߎ߬", "tooltip-ca-protect": "ߞߐߜߍ ߣߌ߲߬ ߠߊߞߊ߲ߘߊ߫", "tooltip-ca-delete": "ߞߐߜߍ ߣߌ߲߬ ߖߏ߰ߛߌ߫", "tooltip-ca-move": "ߘߐߜߍ ߣߌ߲߬ ߛߋ߲߬ߓߐ߫", - "tooltip-ca-watch": "ߞߐߜߍ ߣߌ߲߬ ߝߙߊ߬ ߌ ߟߊ߫ ߟߊߞߙߐ߬ߛߌ߬ߕߊ߬ ߛߙߍߘߍ ߟߎ߫ ߞߊ߲߬", + "tooltip-ca-watch": "ߞߐߜߍ ߣߌ߲߬ ߝߙߊ߬ ߌ ߟߊ߫ ߞߙߐ߬ߛߌ߬ߕߊ ߟߎ߬ ߛߙߍߘߍ ߞߊ߲߬", "tooltip-ca-unwatch": "ߞߐߜߍ ߣߌ߲߬ ߛߋ߲߬ߓߐ߫ ߌ ߟߊ߫ ߟߊߞߙߐ߬ߛߌ߬ߕߊ߬ ߛߙߍߘߍ ߘߐ߫", - "tooltip-search": "ߊ߬ ߢߌߣߌ߲߫ {{SITENAME}} ߘߐ߫", - "tooltip-search-go": "ߕߐ߮ ߣߌ߲߬ ߢߌߣߌ߲߫ ߞߐߜߍ߫ ߞߣߐ߫ ߣߴߊ߬ ߞߍ߫ ߘߊ߫ ߦߋ߲߬", - "tooltip-search-fulltext": "ߞߎߡߊߘߋ߲߫ ߣߌ߲߬ ߞߐߜߍ߫ ߟߎ߫ ߢߌߣߌ߲߫", - "tooltip-p-logo": "ߞߐߜߍ߫ ߓߏߟߏ߲ߘߊ ߡߊߝߍߣߍ߲߫", - "tooltip-n-mainpage": "ߞߐߜߍ߫ ߓߏߟߏ߲ߘߊ ߡߊߝߍߣߍ߲߫", - "tooltip-n-mainpage-description": "ߞߐߜߍ߫ ߓߏߟߏ߲ߘߊ ߡߊߝߍߣߍ߲߫", - "tooltip-n-portal": "ߞߊ߬ ߓߍ߲߬ ߣߕߊ߬ߘߐ߬ߛߌ ߡߊ߬ ߸ ߌ ߘߴߛߋ߫ ߡߎ߲߬ ߞߍ߫ ߟߊ߫ ߸ ߝߋ߲ ߠߎ߫ ߦߋ߫ ߛߐ߬ߘߐ߲߬ ߠߊ߫ ߡߌ߲߫", - "tooltip-n-currentevents": "ߌ ߟߊ߫ ߞߎ߲߬ߠߊ߬ߝߎߟߋ߲ ߡߊߞߊ߬ߝߏ߬ ߞߊ߬ ߓߍ߲߬ ߞߍߕߊ ߡߍ߲ ߠߎ߫ ߦߋ߫ ߛߋ߲߬ߠߊ߫", - "tooltip-n-recentchanges": "ߘߐ߬ߝߊ߬ߟߋ߲߬ߠߌ߬ ߞߎߘߊ ߟߎ߬ ߛߙߍߘߍ ߥߞߌ߫ ߞߣߐ߫", - "tooltip-n-randompage": "ߓߍ߲߬ߛߋ߲߬ߡߊ߬ ߞߐߜߍ ߘߏ߫ ߦߌ߬ߘߊ߬", - "tooltip-n-help": "ߊ߬ ߢߌߣߌ߲߫ ߦߙߐ", - "tooltip-t-whatlinkshere": "ߥߞߌ߫ ߞߐߜߍ ߓߍ߯ ߛߘߌ߬ߜߋ߲ ߠߋ߬ ߦߋ߫ ߦߊ߲߬", - "tooltip-t-recentchangeslinked": "ߡߊ߬ߦߟߍ߬ߡߊ߲߬ߠߌ߬ ߞߎߘߊ ߟߎ߬ ߞߐߜߍ߫ ߘߐ߫ ߡߍ߲ ߣߌ߫ ߞߐߜߍ ߣߌ߲߬ ߕߎ߲߰ߣߍ߲߫", + "tooltip-search": "ߊ߬ ߢߌߣߌ߲߫ {{SITENAME}} ߞߣߐ߫", + "tooltip-search-go": "ߥߊ߫ ߞߐߜߍ ߣߌ߲߬ ߞߊ߬ ߊ߬ߟߋ߬ ߕߐ߯ ߞߋߟߋ߲ ߘߌ߫ ߣߴߊ߬ ߞߍ߫ ߘߊ߫ ߦߋ߲߬", + "tooltip-search-fulltext": "ߞߎߡߊߘߋ߲ ߣߌ߲߬ ߢߌߣߌ߲߫ ߞߐߜߍ ߟߎ߬ ߞߣߐ߫", + "tooltip-p-logo": "ߕߊ߯ ߓߐ߫ ߓߏ߬ߟߏ߲߬ߘߊ߬ ߞߐߜߍ ߡߊ߬", + "tooltip-n-mainpage": "ߕߊ߯ ߓߐ߫ ߓߏ߬ߟߏ߲߬ߘߊ߬ ߞߐߜߍ ߡߊ߬", + "tooltip-n-mainpage-description": "ߕߊ߯ ߓߐ߫ ߓߏ߬ߟߏ߲߬ߘߊ ߞߐߜߍ ߡߊ߬", + "tooltip-n-portal": "ߞߊ߬ ߓߍ߲߬ ߖߊ߬ߕߋ߬ߘߐ߬ߛߌ߮ ߡߊ߬߸ ߡߎ߲߬ ߘߌ߫ ߛߋ߫ ߞߍ߫ ߟߊ߫߸ ߞߎ߲߬ߠߊ߬ߝߎߟߋ߲ ߠߎ߬ ߦߋ߫ ߛߐ߬ߘߐ߲߬ ߠߊ߫ ߡߌ߲߫", + "tooltip-n-currentevents": "ߞߎ߲߬ߠߊ߬ߝߎ߬ߟߋ߲߬ ߡߊ߬ߞߊߝߏ ߟߎ߬ ߡߊߝߟߍ߫ ߞߍߞߎߘߊ߫ ߛߋ߲߬ߠߊ߬ߕߊ ߟߎ߫ ߝߍ߬", + "tooltip-n-recentchanges": "ߥߞߌ ߡߊ߬ߦߟߍ߬ߡߊ߲߬ߠߌ߲߬ ߞߎߘߊ ߟߎ߬ ߛߙߍߘߍ", + "tooltip-n-randompage": "ߞߐߜߍ ߘߏ߫ ߡߊߦߟߍ߬ߡߊ߲߬ ߞߎ߲߬ߝߍ߬ߞߏ ߘߐ߫", + "tooltip-n-help": "ߘߍ߬ߡߍ߲߬ ߦߙߐ", + "tooltip-t-whatlinkshere": "ߞߐߜߍ ߟߎ߫ ߛߘߌ߬ߜߋ߲ ߛߙߍߘߍ߸ ߡߍ߲ ߠߎ߫ ߓߌ߬ߟߊ߬ߣߍ߲߫ ߦߊ߲߬ ߡߊ߬", + "tooltip-t-recentchangeslinked": "ߡߊ߬ߦߟߍ߬ߡߊ߲߬ߠߌ߲߬ ߠߊ߬ߓߊ߲ ߡߍ߲ ߠߎ߬ ߦߋ߫ ߞߐߜߍ ߣߌ߲߬ ߛߘߌ߬ߜߋ߲ ߠߎ߬ ߘߐ߫", "tooltip-feed-atom": "ߞߐߜߍ ߣߌ߲߬ ߝߕߌ߫ ߓߊߟߏ", "tooltip-t-contributions": "{{GENDER:$1|ߟߊ߬ߓߊ߰ߙߊ߬ߟߊ}} ߟߊ߫ ߓߟߏߓߌߟߊߢߐ߲߮ߞߊ߲ ߛߙߍߘߍ", "tooltip-t-emailuser": "ߢߎߡߍߙߋ߲ߞߏ߲ߘߏ ߟߊߕߊ߯ ߟߊߓߊ߯ߙߟߊ ߣߌ߲߬ ߡߊ߬{{GENDER:$1|ߟߊߓߊ߯ߙߟߊ}}", - "tooltip-t-upload": "ߞߐߕߐ߮ ߟߎ߫ ߟߊߦߟߍ߬", - "tooltip-t-specialpages": "ߘߎ߲߬ߘߎ߬ߡߊ߬ ߞߐߜߍ߫ ߟߎ߫ ߛߙߍߘߍ", - "tooltip-t-print": " ߞߐߜߍ ߣߌ߲߬ ߜߌ߬ߙߌ߲߬ߘߌ߬ߕߊ߬ߡߊ ߛߎ߮", - "tooltip-t-permalink": "ߞߐߜߍ ߣߌ߲߬ ߡߛߊ߬ߦߌ߲߬ߠߌ߲߬ ߛߘߌ߬ߜߋ߲߬ ߓߟߏߕߍ߰ߓߊߟߌ", + "tooltip-t-upload": "ߞߐߕߐ߮ ߟߎ߬ ߟߊߦߟߍ߬", + "tooltip-t-specialpages": "ߘߎ߲߬ߘߎ߬ߡߊ߬ ߞߐߜߍ ߞߋ߬ߟߋ߲߬ߞߋ߬ߟߋ߲߬ߠߊ ߟߎ߬ ߛߙߍߘߍ", + "tooltip-t-print": "\nߞߐߜߍ ߣߌ߲߬ ߓߐߞߏߣߊ߲߫ ߜߌߙߌ߲ߘߌߕߊ", + "tooltip-t-permalink": "ߞߐߜߍ ߣߌ߲߬ ߡߛߊ߬ߦߌ߲߬ߠߌ߲߬ ߛߘߌ߬ߜߋ߲߬ ߞߎߘߊߦߌ", "tooltip-ca-nstab-main": "ߞߐߜߍ ߞߣߐߘߐ ߘߐߜߍ߫", "tooltip-ca-nstab-user": "ߞߐߜߍ߫ ߟߊߓߊ߯ߙߕߊ ߘߐߜߍ߫", - "tooltip-ca-nstab-special": "ߣߌ߲߬ ߦߋ߫ ߘߐߜߍ߫ ߓߟߏߡߊߞߊ߬ߣߍ߲ ߠߋ߬ ߘߌ߫߸ ߊ߬ ߕߍ߫ ߛߋ߫ ߡߊߦߟߍ߬ߡߊ߲߬ ߠߊ߫", + "tooltip-ca-nstab-special": "ߣߌ߲߬ ߦߋ߫ ߘߐߜߍ߫ ߓߟߏߡߊߞߊ߬ߣߍ߲ ߠߋ߬ ߘߌ߫߸ ߊ߬ ߕߍ߫ ߛߋ߫ ߢߟߊߞߎߘߦߊ߫ ߟߊ߫", "tooltip-ca-nstab-project": "ߖߊ߬ߕߋ߬ߘߐ߬ߛߌ߰ ߞߐߜߍ ߘߐߜߍ߫", "tooltip-ca-nstab-image": "ߞߐߕߐ߮ ߞߐߜߍ ߟߎ߫ ߘߐߜߍ߫", "tooltip-ca-nstab-mediawiki": "ߞߊ߲ߞߋ ߗߋߛߓߍ ߘߐߜߍ߫", @@ -579,7 +619,7 @@ "tooltip-diff": "ߌ ߟߊ߫ ߛߓߍߟߌ߫ ߡߊߦߟߍ߬ߣߍ߲ ߦߌ߬ߘߊ߬", "tooltip-compareselectedversions": "ߘߊ߲߬ߝߘߊ߬ߓߐ ߡߍ߲ ߦߋ߫ ߡߊ߬ߛߊ߬ߦߌ߲߬ߠߌ߲ ߓߊߕߐ߬ߡߐ߲߬ߣߍ߲ ߝߌ߬ߟߊ ߟߎ߬ ߕߍ߫ ߞߐߜߍ ߣߌ߲߬ ߘߐ߫߸ ߏ߬ ߦߋ߫", "tooltip-watch": "ߞߐߜߍ ߣߌ߲߬ ߓߌ߬ߟߊ߬ ߌ ߟߊ߫ ߜߋ߬ߟߎ߬ߠߌ߲߬ ߛߙߍߘߍ ߘߐ߫", - "tooltip-rollback": "\"ߘߐߛߵߊ߬ ߡߊ߬\" ߓߟߏߓߌߟߊߢߐ߲߯ߞߊ߲ߠߊ ߟߊߓߊ߲ ߠߊ߫ ߡߊ߬ߦߟߍ߬ߡߊ߲߬ߠߌ߲ ߡߊߛߊ߬ߦߌ߬ ߞߐߜߍ ߣߌ߲߬ ߘߐ߫ ߛߐ߲߬ߞߌ߲߬ߠߌ߲߬ ߞߋߟߋ߲߫ ߘߐ߫", + "tooltip-rollback": "\"ߟߊ߬ߞߐ߬ߛߊ߬ߦߌ߬ߟߌ\" ߓߟߏߡߊߜߍ߲ߠߊ ߟߊ߫ ߢߟߊߞߎߘߦߊ߫ ߟߊߓߊ߲ (ߠߎ߬) ߦߋ߫ ߟߊߞߐߛߊ߬ߦߌ߬ ߟߊ߫ ߞߐߜߍ ߣߌ߲߬ ߞߣߐ߫ ߛߐ߲߬ߞߌ߲߬ߞߏ߬ ߞߋߟߋ߲߫ ߔߋ߫ ߟߋ߬ ߟߊ߫", "tooltip-undo": "\"ߊ߬ ߘߐߛߊ߬\" ߡߊ߬ߦߟߍ߬ߡߊ߲߬ߠߌ߲ ߣߌ߲߬ ߞߐߛߊ߬ߦߌ߬ ߞߊ߬ ߡߊ߬ߦߟߍ߬ߡߊ߲߬ߠߌ߲ ߝߊ߬ߘߌ ߟߊߞߊ߬ ߢߍߦߋߟߌ ߝߊ߬ߘߌ ߘߐ߫. ߊ߬ ߘߌ߫ ߖߡߊ߬ߙߌ߬ߦߊ ߘߌ߫ ߟߊ߬ߘߛߏ߬ߟߌ ߡߊ߬ߦߟߍ߬ߡߊ߲߬ߠߌ߲ ߡߊ߬.", "tooltip-summary": "ߟߊ߬ߘߛߏ߬ߣߍ߲߬ ߛߎ߬ߘߎ߲߬ߣߍ߲ ߘߏ߫ ߟߊߘߏ߲߬", "simpleantispam-label": "ߛߑߔߊߡ ߛߌ߬ߣߊ ߡߊ߬ߝߍ߬ߣߍ߲߬ߠߌ߲.\nߊ߬ ߞߍ߫ not ߣߌ߲߬ ߠߝߊ߫߹", @@ -612,8 +652,8 @@ "pageinfo-recent-authors": "ߞߐߛߊ߲߫ ߛߓߍߦߟߊ߫ ߓߐߣߍ߲ߢߐ߲߰ߡߊ ߟߎ߫ ߖߊ߬ߕߋ", "pageinfo-magic-words": "ߛߎߓߊ߯ߦߊ߫ {{PLURAL:$1|ߞߎߡߊߘߋ߲|ߞߎߡߊߘߋ߲ ߠߎ߬ }}($1)", "pageinfo-hidden-categories": "ߢߡߊߘߏ߲߰ߠߌ߲ {{PLURAL:$1|ߦߌߟߡߊ|ߦߌߟߡߊ ߟߎ߬(1$)}}", - "pageinfo-templates": "ߕߍߘߐߘߛߏߣߍ߲ {{PLURAL:$1|ߞߙߊ߬ߞߏ|ߞߙߊ߬ߞߏ ߟߎ߬}} $1", - "pageinfo-toolboxlink": "ߞߐߜߍ ߞߌ߬ߓߊ߬ߙߏ߬ߦߊ", + "pageinfo-templates": "ߞߐ߬ߣߐߡߊ߬-ߕߍߟߐ {{PLURAL:$1|ߞߙߊ߬ߞߏ|ߞߙߊ߬ߞߏ ߟߎ߬}} $1", + "pageinfo-toolboxlink": "ߞߐߜߍ ߣߌ߲߬ ߞߎ߲߬ߠߊ߬ߝߎߟߋ߲", "pageinfo-contentpage": "ߊ߬ ߖߊ߬ߕߋ߬ ߞߣߐߘߐ߫ ߞߐߜߍ ߘߏ߫ ߘߌ߫", "pageinfo-contentpage-yes": "ߐ߲߬ߤߐ߲߫", "patrol-log-page": "ߜߊ߲߬ߞߎ߲߬ߠߌ߲ ߓߍ߬ߙߍ߲߬ߓߍ߬ߙߍ߲߬", @@ -627,10 +667,10 @@ "show-big-image": "ߞߐߕߐ߮ ߓߊߛߎ߲", "show-big-image-preview": "ߊ߬ ߢߍߦߋߟߌ ߢߊ߲ߞߊ߲: $1.", "show-big-image-other": "{{PLURAL:$2|ߢߊߓߐߟߌ|ߢߊߓߐߟߌ ߟߎ߬}} ߕߐ߬ߡߊ $1.", - "show-big-image-size": "$1 × $2 ߖߌ߬ߦߊ߬ߘߊ߲ߕߊ", - "metadata": "ߡߋߕߊߘߊ߯ߕߊ߫", + "show-big-image-size": "ߖߌ߬ߦߊ߬ߙߋ߲ $1 × $2", + "metadata": "ߟߐ߲ߕߊߞߐ ߟߎ߬", "metadata-help": "ߞߌ߬ߓߊ߬ߙߏ߬ߦߊ߬ߟߌ߬ ߜߘߍ߫ ߟߎ߫ ߦߋ߫ ߞߐߕߐ߮ ߣߌ߲߬ ߘߐ߫߸ ߊ߬ ߟߊߘߏ߲߬ߣߍ߲߬ ߦߋ߫ ߞߍ߫ ߟߊ߫ ߞߍߟߊ߲߫ ߡߍ߲ߛߍ߲ߡߊ ߟߋ߫ ߟߊ߫ ߥߟߊ߫ ߖߌ߬ߦߊ߬ߕߍ߬ߟߊ߲߸ ߞߵߊ߬ ߟߊߓߊ߯ߙߊ߫ ߥߟߊ߫ ߞߵߊ߬ ߡߍ߲ߛߍ߲ߡߊ.\nߣߴߊ߬ ߡߊߦߟߍ߬ߡߊ߲߬ ߣߍ߲߬ ߞߍ߫ ߘߊ߫ ߞߊ߬ ߓߴߊ߬ ߛߎ߲ߞߎ߲ ߡߊ߬߸ ߞߌ߬ߓߊ߬ߙߏ߬ߦߊ ߘߏ߫ ߟߎ߫ ߕߍ߫ ߣߊ߬ ߟߊߞߊ߲߬ߘߏ߬ ߟߊ߫ ߞߐߕߐ߯ ߡߊߦߟߍ߬ߡߊ߲߬ߣߍ߲ ߘߐ߫.", - "metadata-fields": "ߡߋߕߊߘߕߊ ߖߌ߬ߦߊ߬ߓߍ ߞߣߍ ߡߍ߲ ߦߋ߫ ߗߋߛߓߍ ߣߌ߲߬ ߘߐ߫߸ ߏ߬ ߘߌ߫ ߣߵߊ߬ ߞߎ߲߬ߓߐ߫ ߖߌ߬ߦߊ߬ߓߍ ߞߐߜߍ ߘߐ߫ ߣߌ߫ ߡߋߕߊߘߕߊ ߥߟߊ߬ߟߋ߲ ߠߊߘߐ߯ߦߊ߫ ߘߊ߫.ߊ߬ ߕߐ߭ ߟߎ߬ ߢߡߊߘߏ߲߰ߣߍ߲ ߘߌ߫ ߕߏ߫ ߝߍ߭ ߞߏߛߐ߲߬.\n•ߊ߬ ߞߍ߫ \n•ߛߎ߯ߦߊ \n•ߕߎ߬ߡߊ߬ߘߊ ߣߌ߫ ߕߎ߬ߡߊ߬ߙߋ߲ ߓߐߛߎ߲ߡߊ \n•ߟߊ߬ߝߏߦߌ ߕߎ߬ߡߊ߬ߘߊ߬ ߖߐ߲ߖߐ߲ \n•ߞ ߝߙߍߕߍ \n•ߡ.ߛ.ߛ ߞߊߟߌߦߊ ߡߐ߬ߟߐ߲߬ߦߊ߬ߟߌ \n•ߕߊߞߎ߲ߡߊ ߥߊ߲߬ߥߊ߲ \n•ߞߎ߬ߛߊ߲ \n•ߓߊߦߟߍߡߊ߲ ߤߊߞߍ \n•ߖߌ߬ߦߊ߬ߓߍ ߞߊ߲߬ߛߓߍߟߌ \nGPS ߘߟߊߕߍ߮ \nGPS ߘߎ߰ߕߍߟߍ߲ \nGPS ߞߐߓߋ", + "metadata-fields": "ߟߐ߲ߕߊߞߐ߫ ߖߌ߬ߦߊ߬ߓߍ ߞߣߍ ߡߍ߲ ߦߋ߫ ߗߋߛߓߍ ߣߌ߲߬ ߘߐ߫߸ ߏ߬ ߘߌ߫ ߣߊ߬ ߥߟߏ߫ ߖߌ߬ߦߊ߬ߓߍ ߞߐߜߍ ߘߐ߫ ߣߌ߫ ߟߐ߲ߕߊߞߐ߫ ߥߟߊ߬ߟߋ߲ ߠߊߘߐ߯ߦߊ߫ ߘߊ߫. ߊ߬ ߕߐ߭ ߟߎ߬ ߢߡߊߘߏ߲߰ߣߍ߲ ߘߌ߫ ߕߏ߫ ߝߍ߭ ߞߏߛߐ߲߬.\n•ߊ߬ ߞߍ߫ \n•ߛߎ߯ߦߊ \n•ߕߎ߬ߡߊ߬ߘߊ ߣߌ߫ ߕߎ߬ߡߊ߬ߙߋ߲߫ ߓߐߛߎ߲ߡߊ \n•ߟߊ߬ߝߏߦߌ ߕߎ߬ߡߊ߬ߘߊ߬ ߖߐ߲ߖߐ߲ \n•ߞ ߝߙߍߕߍ \n•ߡ.ߛ.ߛ ߞߊߟߌߦߊ ߡߐ߬ߟߐ߲߬ߦߊ߬ߟߌ \n•ߕߊߞߎ߲ߡߊ ߥߊ߲߬ߥߊ߲ \n•ߞߎ߬ߛߊ߲ \n•ߓߊߦߟߍߡߊ߲ ߤߊߞߍ ߘߞߖ \n•ߖߌ߬ߦߊ߬ߓߍ ߞߊ߲߬ߛߓߍ\n•ߘߟߊߕߍ߮ ߘߞߖ (ߘߊ߲߬ߠߊ߬ߕߍ߰ ߞߊ߲ߞߋ߫ ߖߊ߯ߓߡߊ)\n•ߘߎ߰ߕߍߟߍ߲ ߘߞߖ (ߘߊ߲߬ߠߊ߬ߕߍ߰ ߞߊ߲ߞߋ߫ ߖߊ߯ߓߡߊ)\n•ߞߐߓߋ ߘߞߖ (ߘߊ߲߬ߠߊ߬ߕߍ߰ ߞߊ߲ߞߋ߫ ߖߊ߯ߓߡߊ)", "namespacesall": "ߊ߬ ߓߍ߯", "monthsall": "ߡߎ߰ߡߍ", "imgmultipagenext": "ߞߐߜߍ ߣߊ߬ߕߐ ←", @@ -652,7 +692,7 @@ "redirect-file": "ߞߐߕߐ߯ ߕߐ߮", "specialpages": "ߘߎ߲߬ߘߎ߬ߡߊ߬ ߞߐߜߍ ߟߎ߬", "tag-filter": "[[Special:Tags|ߞߊ߲ߠߊߛߓߍ]] ߢߡߊߘߏ߲߰ߣߍ߲", - "tag-list-wrapper": "[[Special:Tags|{{PLURAL:$1|Tag|Tags}}]]: $2", + "tag-list-wrapper": "[[Special:Tags|{{PLURAL:$1|ߡߊ߬ߛߙߋ |ߡߊ߬ߛߙߋ ߟߎ߬ }}]]: $2", "tags-active-yes": "ߐ߲߬ߐ߲߬ߐ߲߫", "tags-active-no": "ߍ߲߬ߍ߲ߍ߲߬", "tags-hitcount": "{{PLURAL:$1|ߦߟߍ߬ߡߊ߲߬ߠߌ|$1 ߦߟߍ߬ߡߊ߲߬ߠߌ ߠߎ߬}}", @@ -668,7 +708,7 @@ "logentry-newusers-autocreate": "ߟߊߓߊ߯ߙߊߟߊ ߟߊ߫ ߖߊ߬ߕߋ߬ߘߊ $1{{GENDER:$2|ߟߊߘߊ߲߫ ߘߊ߫ }} ߞߍߒߖߘߍߦߋ߫ ߓߟߏߡߊ߬", "logentry-upload-upload": "$1 {{GENDER:$2|ߟߊ߬ߦߟߍ߬ߟߌ߬ߣߐ ߟߋ߬}} $3", "logentry-upload-overwrite": "$1 {{GENDER:$2|ߓߘߊ߫ ߟߊ߬ߦߟߍ߬ߟߌ ߞߍ߫}} ߞߊ߲ߦߟߍߡߊ߲߫ ߞߎߘߊ߫ ߣߌ߲߬ ߠߊ߫ $3", - "searchsuggest-search": "{{SITENAME}} ߊ߬ ߢߌߣߌ߲߫", + "searchsuggest-search": "ߊ߬ ߢߌߣߌ߲߫ ߣߌ߲߬{{SITENAME}} ߞߣߐ߫", "duration-days": "$1 {{PLURAL:$1|ߟߏ߲|ߟߏ߲ ߠߎ߬}}", "randomrootpage": "ߓߍ߲߬ߛߋ߲߬ߡߊ߬ ߞߐߜߍ ߓߏ߬ߞߊߘߌ" } diff --git a/languages/i18n/pt-br.json b/languages/i18n/pt-br.json index 0bf3cbe85e..e911b3c58a 100644 --- a/languages/i18n/pt-br.json +++ b/languages/i18n/pt-br.json @@ -118,7 +118,8 @@ "Matěj Suchánek", "Didifelisberto", "Tks4Fish", - "Luig" + "Luig", + "Piotrex43" ] }, "tog-underline": "Ligação sublinhada:", @@ -496,7 +497,7 @@ "virus-unknownscanner": "antivírus desconhecido:", "logouttext": "'''Agora você encontra-se desautenticado.'''\n\nNote que algumas páginas podem continuar sendo exibidas como se você ainda estivesse autenticado até que você limpe a ''cache'' do seu navegador.", "logging-out-notify": "Você está sendo desconectado, por favor aguarde.", - "logout-failed": "Não é possível encerrar a sessão agora", + "logout-failed": "Não é possível sair agora: $1", "cannotlogoutnow-title": "Não é possível encerrar a sessão agora", "cannotlogoutnow-text": "Não é possível sair usando $1.", "welcomeuser": "Bem-vindo, $1!", @@ -1676,7 +1677,7 @@ "recentchangeslinked-summary": "Introduza o nome de uma página para ver as mudanças a todas as páginas que contêm hiperligações para ela ou para as quais a página fornecida contém hiperligações (para ver as que pertencem a uma categoria, introduza {{ns:category}}:Nome da categoria). As mudanças às suas [[Special:Watchlist|páginas vigiadas]] aparecem a negrito.", "recentchangeslinked-page": "Nome da página:", "recentchangeslinked-to": "Inversamente, mostrar mudanças nas páginas que contêm ligações para esta", - "recentchanges-page-added-to-category": "[[:$1]]adicionada à categoria", + "recentchanges-page-added-to-category": "[[:$1]] adicionada à categoria", "recentchanges-page-added-to-category-bundled": "[[:$1]] adicionado à categoria, [[Special:WhatLinksHere/$1|esta página é incluída em outras páginas]]", "recentchanges-page-removed-from-category": "[[:$1]] removida da categoria", "recentchanges-page-removed-from-category-bundled": "[[:$1]] removido da categoria, [[Special:WhatLinksHere/$1|esta página é incluída em outras páginas]]", diff --git a/languages/i18n/pt.json b/languages/i18n/pt.json index b550dd1691..ab6e3509c0 100644 --- a/languages/i18n/pt.json +++ b/languages/i18n/pt.json @@ -456,6 +456,8 @@ "virus-scanfailed": "a verificação falhou (código $1)", "virus-unknownscanner": "antivírus desconhecido:", "logouttext": "Já não está autenticado.\n\nTenha em atenção que algumas páginas poderão continuar a ser apresentadas como se ainda estivesse autenticado até limpar a ''cache'' do seu navegador.", + "logging-out-notify": "A sua sessão está a ser terminada; aguarde, por favor.", + "logout-failed": "Não é possível terminar a sessão agora: $1", "cannotlogoutnow-title": "Não é possível encerrar a sessão agora", "cannotlogoutnow-text": "Não pode encerrar a sessão quando utilizar $1.", "welcomeuser": "Bem-vindo, $1!", diff --git a/languages/i18n/qqq.json b/languages/i18n/qqq.json index 10fdb84333..683e975bd4 100644 --- a/languages/i18n/qqq.json +++ b/languages/i18n/qqq.json @@ -4252,6 +4252,9 @@ "mw-widgets-abandonedit-discard": "Text shown on the button which closes an editor and discards changes when the user confirms that they want to leave the editor.\n\nPreceded by the prompt {{msg-mw|mw-widgets-abandonedit}}.\n\nFollowed by the button {{msg-mw|mw-widgets-abandonedit-keep}}.", "mw-widgets-abandonedit-keep": "Text shown on the button which does not do anything when the user decides that they do not want to leave the editor.\n\nPreceded by the button {{msg-mw|mw-widgets-abandonedit-discard}}.", "mw-widgets-abandonedit-title": "Title of the dialog shown when the user tries to leave the editor without saving their changes.\n\nFollowed by the following buttons:\n* {{msg-mw|mw-widgets-abandonedit-discard}}\n* {{msg-mw|mw-widgets-abandonedit-keep}}\n{{Identical|Are you sure?}}", + "mw-widgets-copytextlayout-copy": "Label of button to copy text to clipboard.", + "mw-widgets-copytextlayout-copy-fail": "Message shown when copying to clipboard failed.", + "mw-widgets-copytextlayout-copy-success": "Message shown when copying to clipboard failed.", "mw-widgets-dateinput-no-date": "Label of a date input field when no date has been selected.", "mw-widgets-dateinput-placeholder-day": "[[File:DateInputWidget active, empty.png|frame|Screenshot]]\nPlaceholder displayed in a date input field when it's empty, representing a date format with 4 digits for year, 2 digits for month, and 2 digits for day, separated with hyphens. This should be uppercase, if possible, and must not include any additional explanations. If there is no good way to translate it, make this message blank.", "mw-widgets-dateinput-placeholder-month": "Placeholder displayed in a date input field when it's empty, representing a date format with 4 digits for year and 2 digits for month, separated with hyphens (without a day). This should be uppercase, if possible, and must not include any additional explanations. If there is no good way to translate it, make this message blank.", diff --git a/languages/i18n/ro.json b/languages/i18n/ro.json index 40900a3f74..edb642aac5 100644 --- a/languages/i18n/ro.json +++ b/languages/i18n/ro.json @@ -409,6 +409,8 @@ "virus-scanfailed": "scanare eșuată (cod $1)", "virus-unknownscanner": "antivirus necunoscut:", "logouttext": "'''Acum sunteți deconectat.'''\n\nȚineți minte că anumite pagini pot fi în continuare afișate ca și când ați fi autentificat până când curățați memoria cache a navigatorului.", + "logging-out-notify": "Sunteți în curs de dezautentificare, așteptați.", + "logout-failed": "Nu se poate face dezautentificarea acum: $1", "cannotlogoutnow-title": "Nu se poate deconecta acum", "cannotlogoutnow-text": "Deconectarea nu este posibilă când se utilizează $1.", "welcomeuser": "Bun venit, $1!", diff --git a/languages/i18n/ru.json b/languages/i18n/ru.json index 9e617e95de..e5c8899d18 100644 --- a/languages/i18n/ru.json +++ b/languages/i18n/ru.json @@ -515,6 +515,8 @@ "virus-scanfailed": "ошибка сканирования (код $1)", "virus-unknownscanner": "неизвестный антивирус:", "logouttext": "Вы завершили сеанс работы.\n\nНекоторые страницы могут продолжить отображаться так, как будто вы все ещё не завершили сеанс, пока вы не обновите кэш браузера.", + "logging-out-notify": "Вы выходите из системы, пожалуйста, подождите.", + "logout-failed": "Невозможно выйти прямо сейчас: $1", "cannotlogoutnow-title": "Невозможно выйти прямо сейчас", "cannotlogoutnow-text": "Нельзя выйти во время использования $1.", "welcomeuser": "Добро пожаловать, $1!", diff --git a/languages/i18n/sh.json b/languages/i18n/sh.json index 826c1641e7..879cc2ec2c 100644 --- a/languages/i18n/sh.json +++ b/languages/i18n/sh.json @@ -393,6 +393,8 @@ "virus-scanfailed": "skeniranje nije uspjelo (code $1)", "virus-unknownscanner": "nepoznati anti-virus program:", "logouttext": "'''Sad ste odjavljeni.'''\n\nObratite pažnju da neke stranice mogu nastaviti da se prikazuju kao da ste još uvijek prijavljeni, dok ne očistite keš svog preglednika.", + "logging-out-notify": "Odjavljujem Vas. Sačekajte.", + "logout-failed": "Trenutno Vas ne mogu odjaviti: $1", "cannotlogoutnow-title": "Odjava trenutno nije moguća", "cannotlogoutnow-text": "Odjava nije moguća tijekom uporabe $1.", "welcomeuser": "Dobro došli, $1!", @@ -1469,6 +1471,9 @@ "rcfilters-filter-categorization-description": "Zapisi iz stavljanja stranica u kategorije ili njihovo uklanjanje iz njih.", "rcfilters-filter-logactions-label": "Zapisane radnje", "rcfilters-filter-logactions-description": "Administrativni postupci, pravljenje računa, brisanje stranica, otpremanje...", + "rcfilters-hideminor-conflicts-typeofchange-global": "Filter „Manje izmjene” je u sukobu sa jednim ili više filtera vrste izmjena, zato što određene vrste ne mogu da se označe kao manje. Sukobljeni filteri su označeni u području Aktivni filteri iznad.", + "rcfilters-hideminor-conflicts-typeofchange": "Određene vrste promjena ne mogu da se označe kao „manje”, tako da je ovaj filter u sukobu sa sljedećim filterima vrste promjena: $1", + "rcfilters-typeofchange-conflicts-hideminor": "Ovaj filter vrste promjene je u sukobu sa filterom „Manje izmjene”. Određeni vrste promjena ne mogu da se označe kao „manje”.", "rcfilters-filtergroup-lastrevision": "Posljednje revizije", "rcfilters-filter-lastrevision-label": "Posljednja revizija", "rcfilters-filter-lastrevision-description": "Samo najnovije revizije u stranici.", @@ -1667,7 +1672,9 @@ "upload-dialog-button-upload": "Postavi", "upload-form-label-infoform-title": "Detalji", "upload-form-label-infoform-name": "Ime", + "upload-form-label-infoform-name-tooltip": "Kratki i jedinstveni naslov datoteke, koji će poslužiti kao njen naziv. Možete koristiti čist jezik s međuprostorom, ali nemojte pisati proširenje datoteke.", "upload-form-label-infoform-description": "Opis", + "upload-form-label-infoform-description-tooltip": "Ukratko opišite sve što je važno za posao. Ako je fotografija, navedite glavne stvari koje su prikazane na njemu, događaju ili mjestu.", "upload-form-label-usage-title": "Korištenje", "upload-form-label-usage-filename": "Ime datoteke", "upload-form-label-own-work": "Ovo je moje djelo", @@ -2550,6 +2557,7 @@ "blocklink": "blokiraj", "unblocklink": "Odblokiraj / Одблокирај", "change-blocklink": "promijeni blokadu", + "empty-username": "(nedostupno korisničko ime)", "contribslink": "doprinosi", "emaillink": "pošalji e-mail", "autoblocker": "Automatski ste blokirani jer je vašu IP adresu nedavno koristio \"[[User:$1|$1]]\". Razlog za blokiranje $1 je: \"'''$2'''\"", @@ -3491,6 +3499,7 @@ "limitreport-unstrip-size": "Unstrip veličina nakon proširenja", "limitreport-unstrip-size-value": "$1/$2 {{PLURAL:$2|bajt|bajta|bajtova}}", "expandtemplates": "Proširi šablone", + "expand_templates_intro": "Ova posebna stranica uzima jedan wikitekst i rekurzivno proširuje sve šablone u njemu.\nTakođer proširuje parserske funkcije poput\n{{#language:…}} i varijable poput\n{{CURRENTDAY}}.\nU principu, proširuje gotovo sve između dvostrukih vitičastih zagrada.", "expand_templates_title": "Naslov konteksta, za {{FULLPAGENAME}} itd.:", "expand_templates_input": "Ulazni wikitekst:", "expand_templates_output": "Izvod", @@ -3502,6 +3511,8 @@ "expand_templates_generate_xml": "Prikaži XML stablo za raščlanjivanje", "expand_templates_generate_rawhtml": "Prikazivaj neobrađeni HTML", "expand_templates_preview": "Pregled", + "expand_templates_preview_fail_html": "Budući da {{SITENAME}} ima uključen sirov HTML, te je bilo gubitka sesijskih podataka, pregled je sakriven kao mjera predostrožnosti protiv napada preko JavaScripta.\n\nAko je je ovo legitiman pokušaj pretpregleda, tada pokušajte ponovo.\nAko i dalje ne bude radilo, [[Special:UserLogout|odjavite se]], i ponovo prijavite se i provjerite dozvoljava li Vaš preglednik kolačiće s ovog sajta.", + "expand_templates_preview_fail_html_anon": "Budući da {{SITENAME}} ima uključen sirov HTML, te je bilo gubitka sesijskih podataka, pregled je sakriven kao mjera predostrožnosti protiv napada preko JavaScripta.\n\nAko je ovo legitiman pokušaj pretpregleda, [[Special:UserLogin|odjavite se]] i pokušajte ponovo.", "expand_templates_input_missing": "Morate unjeti neki wikitekst.", "pagelanguage": "Promena jezika stranice", "pagelang-name": "Stranica", @@ -3520,6 +3531,7 @@ "log-description-pagelang": "Ovo je evidencija promjena jezika stranica.", "logentry-pagelang-pagelang": "$1 {{GENDER:$2|smijenio je|smijenila je}} jezik stranice $3 iz $4 u $5.", "default-skin-not-found": "Nažalost, predodređena tema vašeg wikija ddefinirana u $wgDefaultSkin kao $1 nije dostupna.\n\nVaša uspostava sadrži {{PLURAL:$4|sljedeću temu|sljedeće teme}}. Pogledajte [https://www.mediawiki.org/wiki/Manual:Skin_configuration Priručnik: Podešavanje tema] da biste saznali kako ih uključiti i kako odabrati osnovnu.\n\n$2\n\n; Ako ste upravo uspostavili MediaWiki:\n: Vjerovatno ste je uspostavili sa gita, ili pak neposredno sa izvornog koda koristeći se nekom drugom metodom. Ovo je za očekivati. Pokušajte uspostaviti neku temu sa [https://www.mediawiki.org/wiki/Category:All_skins kataloga tema] tako što ćete:\n:* Sa preuzimanjem [https://www.mediawiki.org/wiki/Download tarball-uspostavljača], koji sami sadrži nekoliko tema i proširenja. Možete prekopirati folder skins/ iz njega.\n:* Preuzimanje tarball-i za teme sa [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org]. \n:* [https://www.mediawiki.org/wiki/Download_from_Git#Using_Git_to_download_MediaWiki_skins Koristeći Git kako biste preuzeli teme].\n: Ovo ne bi trebalo utjecati na vaše git skladište ako ste MediaWiki razvijatelj.\n\n; Ako ste upravo nadogradili MediaWiki:\n: MediaWiki 1.24 i više verzije više ne automatski uključuju uspostavljene teme (pogl. [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery Priručni: Samoistraživanje tema]). Možete prekopirati {{PLURAL:$5|sljedeći red kǒda|sljedeće redove kǒda}} u LocalSettings.php kako biste uključili {{PLURAL:$5|uspostavljenu temu|sve uspostavljene teme}}:\n\n
$3
\n\n; Ako ste upravo izmijenili datoteku LocalSettings.php:\n: Provjerite je li ispravno napisani nazivi tema.", + "default-skin-not-found-no-skins": "Nažalost, predodređena tema vašeg wikija, definirana u $wgDefaultSkin kao $1, nije dostupna.\n\nNemate uspostavljenih tema.\n\n; Ako ste upravo uspostavili ili nadogradili MediaWiki:\n: Vjerovatno ste je uspostavili sa git-a, ili sa izvornog koda nekim drugim načinom. Ovo je za očekivati. MediaWiki 1.24 i novije vrezije ne sadržavaju teme u glavnom skladištu. Pokušajte uspostaviti neku temu sa [https://www.mediawiki.org/wiki/Category:All_skins kataloga tema] tako što ćete:\n:* Preuzimanjem [https://www.mediawiki.org/wiki/Download tarball uspostavljačku datoteku] koji sadrži nekoliko tema i proširenja. Možete prekopirati folder skins/ iz nje.\n:* Preuzeti zasebne uspostavljačke tarball datoteke sa stranice [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org]. \n:* [https://www.mediawiki.org/wiki/Download_from_Git#Using_Git_to_download_MediaWiki_skins Koristiti Git kako biste preuzeli teme].\n: To ne bi trebalo ometati vaše git-skladište ako ste programer MediaWiki-ja. Pogledajte [https://www.mediawiki.org/wiki/Manual:Skin_configuration \nPriručnik: Postavljanje tema] kako biste saznali kako ih uključiti i kako odabrati osnovnu.", "default-skin-not-found-row-enabled": "* $1 / $2 (uključena)", "default-skin-not-found-row-disabled": "* $1 / $2 (isključena)", "mediastatistics": "Statistike za slike i snimke", @@ -3674,6 +3686,7 @@ "authmanager-provider-password": "Verifikacija lozinkom", "authmanager-provider-password-domain": "Verifikacija lozinkom i domenom", "authmanager-provider-temporarypassword": "Privremena lozinka", + "authprovider-confirmlink-message": "Na temelju nedavnih pokušaja prijave, s vašim računom mogu se povezati sljedeći računi. Povezivanje će vam omogućiti da se prijavite s tim računima. Odaberite one s kojima se želite povezati.", "authprovider-confirmlink-request-label": "Računi koji se trebaju povezati", "authprovider-confirmlink-success-line": "$1: Uspješno povezano.", "authprovider-confirmlink-failed": "Povezivanje računa nije uspjelo u potpunosti: $1", @@ -3695,6 +3708,23 @@ "authpage-cannot-link-continue": "Ne mogu nastaviti sa spajanjem računa. Najvjerovatnije vaša sesija je istekla.", "cannotauth-not-allowed-title": "Pristup je odbijen", "cannotauth-not-allowed": "Nije vam dozvoljeno da koristite ovu stranicu", + "changecredentials": "Promjena akreditiva", + "changecredentials-submit": "Promijeni akreditive", + "changecredentials-invalidsubpage": "$1 ne predstavlja ispravni tip akreditiva.", + "changecredentials-success": "Vaši akreditivi su smijenjeni.", + "removecredentials": "Uklanjanje akreditiva", + "removecredentials-submit": "Ukloni akreditive", + "removecredentials-invalidsubpage": "$1 ne predstavlja ispravni tip akreditiva.", + "removecredentials-success": "Vaši akreditivi su uklonjeni.", + "credentialsform-provider": "Tip akreditiva:", + "credentialsform-account": "Ime računa:", + "cannotlink-no-provider-title": "Nema spojivih računa", + "cannotlink-no-provider": "Nema spojivih računa.", + "linkaccounts": "Spajanje računa", + "linkaccounts-success-text": "Račun je spojen.", + "linkaccounts-submit": "Spoji račune", + "unlinkaccounts": "Razdvajanje računa", + "unlinkaccounts-success": "Račun je razdvojen.", "userjsispublic": "Napomena: podstranice s JavaScriptom ne bi trebale sadržavati povjerljive podatke budući da ih drugi korisnici mogu vidjeti.", "userjsonispublic": "Imajte na umu: Podstranice s JSONom ne bi trebale sadržavati povjerljive podatke budući da su vidljive drugim korisnicima.", "usercssispublic": "Napomena: podstranice s CSS-om ne bi trebale sadržavati povjerljive podatke budući da ih drugi korisnici mogu vidjeti.", diff --git a/languages/i18n/sr-ec.json b/languages/i18n/sr-ec.json index 3cd2e59036..3da455d9a3 100644 --- a/languages/i18n/sr-ec.json +++ b/languages/i18n/sr-ec.json @@ -40,7 +40,8 @@ "BadDog", "Fitoschido", "Stalker", - "Vlad5250" + "Vlad5250", + "Петар Петковић" ] }, "tog-underline": "Подвлачење веза:", @@ -817,7 +818,7 @@ "nohistory": "Не постоји историја измена ове странице.", "currentrev": "Најновија измена", "currentrev-asof": "Најновија измена на датум $2 у $3", - "revisionasof": "Измена на датум $2 у $3", + "revisionasof": "Измена на датум $1", "revision-info": "Измена од $1 од стране {{GENDER:$6|корисника $2|кориснице $2}}$7", "previousrevision": "← Старија измена", "nextrevision": "Новија измена →", @@ -2475,6 +2476,8 @@ "ipb-confirm": "Потврди блокирање", "ipb-sitewide": "На целом сајту", "ipb-partial": "Делимично", + "ipb-sitewide-help": "Свака страница на викију и све остале уређивачке радње.", + "ipb-partial-help": "Одређене стране или простори имена.", "ipb-pages-label": "Странице", "ipb-namespaces-label": "Именски простори", "badipaddress": "Неважећа IP адреса", @@ -2549,8 +2552,8 @@ "emaillink": "пошаљи е-поруку", "autoblocker": "Аутоматски сте блокирани јер делите IP адресу с корисником/цом [[User:$1|$1]].\nРазлог блокирања корисника/це $1 је „$2“", "blocklogpage": "Дневник блокирања", - "blocklog-showlog": "{{GENDER:$1|Овај корисник је раније блокиран|Ова корисница је раније блокирана}}.\nДневник блокирања је наведен испод као референца:", - "blocklog-showsuppresslog": "{{GENDER:$1|Овај корисник је раније блокиран и сакривен|Ова корисница је раније блокирана и сакривена}}.\nДневник сакривања је наведен испод као референца:", + "blocklog-showlog": "{{GENDER:$1|Овај корисник је раније блокиран|Ова корисница је раније блокирана}}.\nДневник блокирања је наведен испод:", + "blocklog-showsuppresslog": "{{GENDER:$1|Овај корисник је раније блокиран и сакривен|Ова корисница је раније блокирана и сакривена}}.\nДневник сакривања је наведен испод:", "blocklogentry": "је блокирао [[$1]] са временом истицања од $2 $3", "reblock-logentry": "је {{GENDER:|променио|променила}} подешавања блокирања за {{GENDER:$1|корисника|корисницу}} [[$1]] са временом истека од $2 ($3)", "blocklogtext": "Ово је евиденција радњи блокирања и деблокирања корисника.\nАутоматски блокиране IP адресе нису наведене.\nПогледајте [[Special:BlockList|листу блокирања]] за тренутно оперативне забране и блокирања.", @@ -2570,7 +2573,7 @@ "ipb_hide_partial": "Блокирања сакривених корисничких имена морају бити на нивоу сајта.", "ipb_already_blocked": "„$1“ је већ блокиран.", "ipb-needreblock": "$1 је већ блокиран. Желите ли да промените подешавања?", - "ipb-otherblocks-header": "{{PLURAL:$1|Друга блокада|Друге блокаде}}", + "ipb-otherblocks-header": "{{PLURAL:$1|1=Друга блокада|Друге блокаде}}", "unblock-hideuser": "Не можете деблокирати овог корисника јер је његово корисничко име сакривено.", "ipb_cant_unblock": "Грешка: блокада $1 не постоји. Можда је корисник деблокиран.", "ipb_blocked_as_range": "Грешка: IP адреса $1 није директно блокирана и не може да се деблокира.\nОна је блокирана као део блокаде $2, која може да се деблокира.", diff --git a/languages/i18n/sr-el.json b/languages/i18n/sr-el.json index ac8efbbc8c..0a2da29bab 100644 --- a/languages/i18n/sr-el.json +++ b/languages/i18n/sr-el.json @@ -809,7 +809,7 @@ "nohistory": "Ne postoji istorija izmena ove stranice.", "currentrev": "Najnovija izmena", "currentrev-asof": "Najnovija izmena na datum $2 u $3", - "revisionasof": "Izmena na datum $2 u $3", + "revisionasof": "Izmena na datum $1", "revision-info": "Izmena od $1 od strane {{GENDER:$6|korisnika $2|korisnice $2}}$7", "previousrevision": "← Starija izmena", "nextrevision": "Novija izmena →", @@ -2828,7 +2828,7 @@ "lastmodifiedatby": "Ovu stranicu je poslednji put {{GENDER:$4|uredio|uredila|uredio}} $3, na datum $1 u $2 č.", "othercontribs": "Zasnovano na radu korisnika $1.", "others": "drugi", - "siteusers": "{{PLURAL:$2|1={{GENDER:$1|korisnik|korisnica}}|korisnici}} na projektu {{SITENAME}} $1", + "siteusers": "{{PLURAL:$2|1={{GENDER:$1|suradnika|suradnice}}|suradnica i suradnika}} na projektu {{SITENAME}} $1", "anonusers": "{{PLURAL:$2|anoniman korisnik|anonimni korisnici}} na projektu {{SITENAME}} $1", "creditspage": "Autori stranice", "nocredits": "Ne postoje podaci o autoru ove stranice.", diff --git a/languages/i18n/sv.json b/languages/i18n/sv.json index 5cd8455485..52f2e9f3a8 100644 --- a/languages/i18n/sv.json +++ b/languages/i18n/sv.json @@ -451,6 +451,8 @@ "virus-scanfailed": "skanning misslyckades (kod $1)", "virus-unknownscanner": "okänt antivirusprogram:", "logouttext": "Du är nu utloggad.\n\nObservera att det, tills du tömmer din webbläsares cache, på vissa sidor kan det se ut som att du fortfarande är inloggad.", + "logging-out-notify": "Du loggas ut, var god vänta.", + "logout-failed": "Kan inte logga ut nu: $1", "cannotlogoutnow-title": "Kan inte logga ut nu", "cannotlogoutnow-text": "Det går inte att logga ut med $1.", "welcomeuser": "Välkommen, $1!", diff --git a/languages/i18n/th.json b/languages/i18n/th.json index a13fe2449f..2b2d98bb11 100644 --- a/languages/i18n/th.json +++ b/languages/i18n/th.json @@ -408,6 +408,8 @@ "virus-scanfailed": "การสแกนล้มเหลว (รหัส $1)", "virus-unknownscanner": "โปรแกรมป้องกันไวรัสที่ไม่รู้จัก:", "logouttext": "คุณออกจากระบบแล้ว\n\nสังเกตว่าบางหน้าอาจยังแสดงผลเสมือนว่าคุณยังเข้าสู่ระบบอยู่ จนกว่าคุณจะล้างแคชเบราว์เซอร์ของคุณ", + "logging-out-notify": "คุณกำลังออกจากระบบ โปรดรอสักครู่", + "logout-failed": "ไม่สามารถออกจากระบบได้ในขณะนี้: $1", "cannotlogoutnow-title": "ไม่สามารถออกจากระบบได้ตอนนี้", "cannotlogoutnow-text": "ไม่สามารถออกจากระบบได้เมื่อกำลังใช้ $1", "welcomeuser": "ยินดีต้อนรับ $1!", diff --git a/languages/i18n/uk.json b/languages/i18n/uk.json index 66236b4a71..b3f6ced56d 100644 --- a/languages/i18n/uk.json +++ b/languages/i18n/uk.json @@ -454,6 +454,8 @@ "virus-scanfailed": "помилка сканування (код $1)", "virus-unknownscanner": "невідомий антивірус:", "logouttext": "'''Ви вийшли з системи.'''\n\nДеякі сторінки можуть відображатися, ніби Ви ще в системі, аж поки Ви не оновите кеш браузера.", + "logging-out-notify": "Ви виходите із системи, будь ласка, зачекайте.", + "logout-failed": "Неможливо вийти прямо зараз: $1", "cannotlogoutnow-title": "Неможливо вийти прямо зараз", "cannotlogoutnow-text": "Неможливо вийти із системи під час використання $1.", "welcomeuser": "Вітаємо, $1!", diff --git a/languages/i18n/vi.json b/languages/i18n/vi.json index 9d2fabdbc5..d799a1705a 100644 --- a/languages/i18n/vi.json +++ b/languages/i18n/vi.json @@ -91,6 +91,7 @@ "tog-norollbackdiff": "Bỏ qua bản so sánh sau khi lùi sửa", "tog-useeditwarning": "Cảnh báo khi tôi thoát trang sửa đổi mà chưa lưu trang", "tog-prefershttps": "Luôn sử dụng kết nối an toàn khi đã đăng nhập", + "tog-showrollbackconfirmation": "Yêu cầu xác nhận khi bấm nút lùi hàng loạt sửa đổi", "underline-always": "Luôn luôn", "underline-never": "Không bao giờ", "underline-default": "Mặc định của giao diện hoặc trình duyệt", @@ -415,6 +416,8 @@ "virus-scanfailed": "quét thất bại (mã $1)", "virus-unknownscanner": "không nhận ra phần mềm diệt virus:", "logouttext": "'''Bạn đã đăng xuất.'''\n\nXin lưu ý rằng một vài trang có thể vẫn hiển thị như khi bạn còn đăng nhập, cho đến khi bạn xóa vùng nhớ đệm (''cache'') của trình duyệt.", + "logging-out-notify": "Đang đăng xuất, xin chờ đợi.", + "logout-failed": "Không thể đăng xuất lúc này: $1", "cannotlogoutnow-title": "Không thể đăng xuất lúc này", "cannotlogoutnow-text": "Không thể đăng xuất khi đang dùng $1.", "welcomeuser": "Hoan nghênh, $1!", @@ -838,12 +841,12 @@ "page_first": "đầu", "page_last": "cuối", "histlegend": "Chọn so sánh: Đánh dấu để chọn các phiên bản để so sánh rồi nhấn Enter hoặc nút ở dưới.
\nChú giải: '''({{int:cur}})''' = khác với phiên bản hiện hành, '''({{int:last}})''' = khác với phiên bản trước, '''{{int:minoreditletter}}''' = sửa đổi nhỏ.", - "history-fieldset-title": "Tìm trong lịch sử trang", + "history-fieldset-title": "Lọc phiên bản", "history-show-deleted": "Chỉ những sửa đổi bị xóa", "histfirst": "cũ nhất", "histlast": "mới nhất", "historysize": "({{PLURAL:$1|1 byte|$1 byte}})", - "historyempty": "(trống)", + "historyempty": "trống", "history-feed-title": "Lịch sử thay đổi", "history-feed-description": "Lịch sử thay đổi của trang này ở wiki", "history-feed-item-nocomment": "$1 vào lúc $2", @@ -1206,7 +1209,7 @@ "right-reupload-own": "Tải đè tập tin cũ do chính mình tải lên", "right-reupload-shared": "Ghi đè lên kho hình ảnh dùng chung", "right-upload_by_url": "Tải tập tin từ địa chỉ URL", - "right-purge": "Tẩy bộ đệm của trang mà không có trang xác nhận", + "right-purge": "Tẩy sạch vùng nhớ đệm của trang", "right-autoconfirmed": "Không bị ảnh hưởng bởi mức giới hạn tần suất sử dụng theo địa chỉ IP", "right-bot": "Được đối xử như tác vụ tự động", "right-nominornewtalk": "Không báo về tin nhắn mới khi trang thảo luận chỉ được sửa đổi nhỏ", @@ -1355,6 +1358,34 @@ "action-changetags": "thêm và loại bỏ các thẻ tùy ý trên các phiên bản riêng và các mục nhật trình", "action-deletechangetags": "Xóa thẻ khỏi cơ sở dữ liệu", "action-purge": "làm mới trang này", + "action-apihighlimits": "có giới hạn truy cập API cao hơn", + "action-autoconfirmed": "không bị ảnh hưởng bởi mức giới hạn tần suất sử dụng theo địa chỉ IP", + "action-bigdelete": "xóa trang có lịch sử lớn", + "action-blockemail": "cấm người dùng gửi thư điện tử", + "action-bot": "được đối xử như tác vụ tự động", + "action-editprotected": "sửa trang khóa ở mức “{{int:protect-level-sysop}}”", + "action-editsemiprotected": "sửa trang khóa ở mức “{{int:protect-level-autoconfirmed}}”", + "action-editinterface": "sửa giao diện người dùng", + "action-editusercss": "sửa tập tin CSS của người dùng khác", + "action-edituserjson": "sửa tập tin JSON của người dùng khác", + "action-edituserjs": "sửa đổi tập tin JavaScript của người dùng khác", + "action-editsitecss": "sửa đổi CSS toàn trang", + "action-editsitejson": "sửa đổi JSON toàn trang", + "action-editsitejs": "sửa đổi JavaScript toàn trang", + "action-editmyusercss": "sửa đổi tập tin CSS cá nhân của mình", + "action-editmyuserjson": "sửa đổi tập tin JSON cá nhân của mình", + "action-editmyuserjs": "sửa đổi tập tin JavaScript cá nhân của mình", + "action-viewsuppressed": "xem các phiên bản được ẩn mà mọi người khác không thấy được", + "action-hideuser": "cấm thành viên, rồi ẩn nó đi", + "action-ipblock-exempt": "bỏ qua tác vụ cấm, tự động cấm, và cấm dải địa chỉ IP", + "action-unblockself": "tự bỏ cấm", + "action-noratelimit": "không bị ảnh hưởng bởi mức giới hạn tần suất sử dụng", + "action-reupload-own": "tải đè tập tin cũ do chính mình tải lên", + "action-nominornewtalk": "không báo về tin nhắn mới khi trang thảo luận chỉ được sửa đổi nhỏ", + "action-markbotedits": "đánh dấu lùi sửa là sửa đổi bot", + "action-patrolmarks": "xem dấu tuần tra thay đổi gần đây", + "action-override-export-depth": "xuất trang kèm theo các trang được liên kết đến với độ sâu tối đa là 5", + "action-suppressredirect": "không tạo đổi hướng từ tên cũ khi di chuyển trang", "nchanges": "$1 thay đổi", "enhancedrc-since-last-visit": "$1 {{PLURAL:$1|sau lần truy cập vừa rồi}}", "enhancedrc-history": "lịch sử", @@ -1410,7 +1441,7 @@ "rcfilters-savedqueries-already-saved": "Đã lưu các bộ lọc này rồi. Thay đổi tùy chọn để tạo một Bộ lọc đã lưu mới.", "rcfilters-restore-default-filters": "Mặc định lại các bộ lọc", "rcfilters-clear-all-filters": "Xóa sạch các bộ lọc", - "rcfilters-show-new-changes": "Xem các thay đổi mới nhất", + "rcfilters-show-new-changes": "Xem các thay đổi mới từ $1 trở về sau", "rcfilters-search-placeholder": "Lọc các thay đổi gần đây (sử dụng trình đơn hoặc tìm tên bộ lọc)", "rcfilters-invalid-filter": "Bộ lọc không hợp lệ", "rcfilters-empty-filter": "Không có bộ lọc hiện hành. Tất cả các đóng góp được hiển thị.", @@ -2261,7 +2292,7 @@ "delete-confirm": "Xóa “$1”", "delete-legend": "Xóa", "historywarning": "Cảnh báo: Trang bạn sắp xóa đã có lịch sử $1 phiên bản:", - "historyaction-submit": "Xem", + "historyaction-submit": "Xem các phiên bản", "confirmdeletetext": "Bạn đang chuẩn bị xóa một trang cùng với tất cả lịch sử của nó.\nXin xác nhận việc bạn định làm, và hiểu rõ những hệ lụy của nó, và bạn thực hiện nó theo đúng đúng [[{{MediaWiki:Policy-url}}|quy định]].", "actioncomplete": "Đã thực hiện xong", "actionfailed": "Tác động bị thất bại", @@ -2284,6 +2315,9 @@ "deleting-backlinks-warning": "Cảnh báo: Có [[Special:WhatLinksHere/{{FULLPAGENAME}}|trang khác]] liên kết đến hoặc nhúng trang mà bạn sắp xóa.", "deleting-subpages-warning": "Cảnh báo: Bạn sắp sửa xóa trang có [[Special:PrefixIndex/{{FULLPAGENAME}}/|{{PLURAL:$1|trang con|$1 trang con|51=hơn 50 trang con}}]].", "rollback": "Lùi tất cả sửa đổi", + "rollback-confirmation-confirm": "Xin hãy xác nhận:", + "rollback-confirmation-yes": "Lùi hàng loạt", + "rollback-confirmation-no": "Hủy bỏ", "rollbacklink": "lùi tất cả", "rollbacklinkcount": "lùi tất cả $1 sửa đổi", "rollbacklinkcount-morethan": "lùi tất cả hơn $1 sửa đổi", @@ -2424,6 +2458,7 @@ "mycontris": "Đóng góp", "anoncontribs": "Đóng góp", "contribsub2": "Của {{GENDER:$3}}$1 ($2)", + "contributions-subtitle": "Của {{GENDER:$3}}$1", "contributions-userdoesnotexist": "Chưa có tài khoản với tên “$1”.", "negative-namespace-not-supported": "Không gian tên với giá trị âm không được hỗ trợ.", "nocontribs": "Không tìm thấy thay đổi nào khớp với yêu cầu.", @@ -2490,6 +2525,8 @@ "ipb-confirm": "Xác nhận cấm", "ipb-sitewide": "Toàn website", "ipb-partial": "Một phần", + "ipb-sitewide-help": "Tất cả các trang tại wiki và tất cả các tác vụ đóng góp khác.", + "ipb-partial-help": "Các trang hoặc không gian tên cụ thể.", "ipb-pages-label": "Các trang", "ipb-namespaces-label": "Không gian tên", "badipaddress": "Địa chỉ IP không hợp lệ", @@ -2530,6 +2567,10 @@ "blocklist-userblocks": "Ẩn tác vụ cấm tài khoản", "blocklist-tempblocks": "Ẩn tác vụ cấm có thời hạn", "blocklist-addressblocks": "Ẩn tác vụ cấm địa chỉ IP dứt khoát", + "blocklist-type": "Kiểu:", + "blocklist-type-opt-all": "Tất cả", + "blocklist-type-opt-sitewide": "Toàn trang", + "blocklist-type-opt-partial": "Một phần", "blocklist-rangeblocks": "Ẩn tác vụ cấm hàng loạt", "blocklist-timestamp": "Thời gian", "blocklist-target": "Người dùng", @@ -2552,10 +2593,11 @@ "blocklist-editing-page": "trang", "blocklist-editing-ns": "không gian tên", "ipblocklist-empty": "Danh sách cấm hiện đang trống.", - "ipblocklist-no-results": "Địa chỉ IP hoặc tên thành viên này hiện không bị cấm.", + "ipblocklist-no-results": "Không tìm thấy tác vụ cấm trùng khớp với địa chỉ IP hoặc tên thành viên được yêu cầu.", "blocklink": "cấm", "unblocklink": "bỏ cấm", "change-blocklink": "đổi mức cấm", + "empty-username": "(tên người dùng không có sẵn)", "contribslink": "đóng góp", "emaillink": "gửi thư điện tử", "autoblocker": "Bạn bị tự động cấm vì địa chỉ IP của bạn vừa rồi đã được “[[User:$1|$1]]” sử dụng. Lý do đưa ra cho việc cấm $1 là ”$2”", @@ -3098,6 +3140,7 @@ "confirm-unwatch-top": "Bạn có muốn gỡ trang này khỏi danh sách theo dõi của bạn?", "confirm-rollback-button": "OK", "confirm-rollback-top": "Có muốn lùi lại các sửa đổi trong trang này?", + "confirm-rollback-bottom": "Điều này sẽ lùi lại các sửa đổi được chọn tại trang này ngay lập tức.", "confirm-mcrrestore-title": "Phục hồi phiên bản", "confirm-mcrundo-title": "Lùi thay đổi", "mcrundofailed": "Lùi sửa bị thất bại", @@ -3524,7 +3567,7 @@ "logentry-rights-autopromote": "$1 {{GENDER:$2}}đã được tự động phong cấp từ $4 đến $5", "logentry-upload-upload": "$1 {{GENDER:$2}}đã tải lên $3", "logentry-upload-overwrite": "$1 {{GENDER:$2}}đã tải lên một phiên bản mới của $3", - "logentry-upload-revert": "$1 {{GENDER:$2}}đã tải lên $3", + "logentry-upload-revert": "$1 {{GENDER:$2}}đã phục hồi một phiên bản cũ của $3", "log-name-managetags": "Danh sách quản lý thẻ", "log-description-managetags": "Trang này có các công việc quản lý [[Special:Tags|thẻ]]. Nhật trình chỉ bao gồm các tác vụ do bảo quản viên thực hiện thủ công; phần mềm wiki có thể tạo hoặc xóa thẻ mà không ghi tác vụ vào nhật trình này.", "logentry-managetags-create": "$1 {{GENDER:$2}}đã tạo thẻ “$4”", @@ -3860,6 +3903,10 @@ "passwordpolicies-policy-maximalpasswordlength": "Mật khẩu không thể vượt quá $1 ký tự", "passwordpolicies-policy-passwordcannotbepopular": "Mật khẩu không thể {{PLURAL:$1|là mật khẩu phổ biến nhất|xuất hiện trong danh sách $1 mật khẩu phổ biến nhất}}", "passwordpolicies-policy-passwordnotinlargeblacklist": "Mật khẩu không được nằm tròn danh sách 100.000 mật khẩu phổ biến nhất.", + "passwordpolicies-policyflag-forcechange": "phải thay khi đăng nhập", + "passwordpolicies-policyflag-suggestchangeonlogin": "khuyên thay khi đăng nhập", "easydeflate-invaliddeflate": "Nội dung được cung cấp không được giải nén đúng cách", - "unprotected-js": "Vì lý do an toàn JavaScript sẽ không được tải tại các trang không được khóa. Xin vui lòng chỉ tạo javascript tại không gian tên MediaWiki: hoặc tại trang con của trang Thành viên" + "unprotected-js": "Vì lý do an toàn JavaScript sẽ không được tải tại các trang không được khóa. Xin vui lòng chỉ tạo javascript tại không gian tên MediaWiki: hoặc tại trang con của trang Thành viên", + "userlogout-continue": "Nếu bạn muốn đăng xuất, xin hãy [$1 mở trang đăng xuất].", + "userlogout-sessionerror": "Thất bại khi đăng xuất vì lỗi phiên làm việc. Xin hãy [$1 thử lại]." } diff --git a/maintenance/findHooks.php b/maintenance/findHooks.php index b57db8f18c..a902397391 100644 --- a/maintenance/findHooks.php +++ b/maintenance/findHooks.php @@ -306,7 +306,7 @@ class FindHooks extends Maintenance { /** * Get hooks from a directory of PHP files. * @param string $dir Directory path to start at - * @param int $recursive Pass self::FIND_RECURSIVE + * @param int $recurse Pass self::FIND_RECURSIVE * @return array Array: key => hook name; value => array of arguments or string 'unknown' */ private function getHooksFromDir( $dir, $recurse = 0 ) { diff --git a/package.json b/package.json index 2556d5fe6f..3fdd057595 100644 --- a/package.json +++ b/package.json @@ -17,7 +17,7 @@ "grunt-contrib-copy": "1.0.0", "grunt-contrib-watch": "1.1.0", "grunt-eslint": "21.0.0", - "grunt-karma": "3.0.0", + "grunt-karma": "3.0.2", "grunt-stylelint": "0.10.1", "grunt-svgmin": "5.0.0", "jpeg-js": "0.3.5", diff --git a/resources/Resources.php b/resources/Resources.php index 4c359ee727..1b8cffb28d 100644 --- a/resources/Resources.php +++ b/resources/Resources.php @@ -2043,6 +2043,7 @@ return [ 'oojs-ui.styles.icons-editing-advanced', 'oojs-ui.styles.icons-interactions', 'oojs-ui.styles.icons-moderation', + 'mediawiki.widgets', 'mediawiki.widgets.datetime', 'jquery.makeCollapsible', ], @@ -2503,12 +2504,16 @@ return [ 'scripts' => [ 'resources/src/mediawiki.widgets/mw.widgets.NamespaceInputWidget.js', 'resources/src/mediawiki.widgets/mw.widgets.ComplexNamespaceInputWidget.js', + 'resources/src/mediawiki.widgets/mw.widgets.CopyTextLayout.js', 'resources/src/mediawiki.widgets/mw.widgets.TitleWidget.js', 'resources/src/mediawiki.widgets/mw.widgets.TitleInputWidget.js', 'resources/src/mediawiki.widgets/mw.widgets.TitleSearchWidget.js', 'resources/src/mediawiki.widgets/mw.widgets.ComplexTitleInputWidget.js', 'resources/src/mediawiki.widgets/mw.widgets.TitleOptionWidget.js', ], + 'styles' => [ + 'resources/src/mediawiki.widgets/mw.widgets.CopyTextLayout.css', + ], 'skinStyles' => [ 'default' => [ 'resources/src/mediawiki.widgets/mw.widgets.TitleWidget.less', @@ -2522,11 +2527,17 @@ return [ 'mediawiki.Title', 'mediawiki.api', 'mediawiki.String', + // CopyTextLayout + 'mediawiki.notify', ], 'messages' => [ // NamespaceInputWidget 'blanknamespace', 'namespacesall', + // CopyTextLayout + 'mw-widgets-copytextlayout-copy', + 'mw-widgets-copytextlayout-copy-fail', + 'mw-widgets-copytextlayout-copy-success', // TitleInputWidget 'mw-widgets-titleinput-description-new-page', 'mw-widgets-titleinput-description-redirect', diff --git a/resources/src/jquery.tablesorter.styles/jquery.tablesorter.styles.less b/resources/src/jquery.tablesorter.styles/jquery.tablesorter.styles.less index 7ff7c11a9c..b926454a61 100644 --- a/resources/src/jquery.tablesorter.styles/jquery.tablesorter.styles.less +++ b/resources/src/jquery.tablesorter.styles/jquery.tablesorter.styles.less @@ -4,7 +4,13 @@ /* Table Sorting */ -.client-js .sortable:not( .jquery-tablesorter ) > thead > :last-of-type > th:not( .unsortable ), +// Reserve space for table sortable controls +// This selector is not perfect as it will not correctly handle cases with +// merged header cells, so ensure it is removed after the JS has run by using +// the :not( .jquery-tablesorter ) selector. +// It will still prevent a visible jump in the majority of simpler cases. +// The second selector in this rule is for after the JS has run. +.client-js .sortable:not( .jquery-tablesorter ) > * > tr:first-child > th:not( .unsortable ), .jquery-tablesorter th.headerSort { .background-image-svg( 'images/sort_both.svg', 'images/sort_both.png' ); cursor: pointer; diff --git a/resources/src/mediawiki.special.apisandbox/apisandbox.js b/resources/src/mediawiki.special.apisandbox/apisandbox.js index e063a394c0..631a5c6ac8 100644 --- a/resources/src/mediawiki.special.apisandbox/apisandbox.js +++ b/resources/src/mediawiki.special.apisandbox/apisandbox.js @@ -724,37 +724,32 @@ * @return {OO.ui.MenuOptionWidget[]} Each item's data should be an OO.ui.FieldLayout */ formatRequest: function ( displayParams, rawParams ) { - var jsonInput, + var jsonLayout, items = [ new OO.ui.MenuOptionWidget( { label: Util.parseMsg( 'apisandbox-request-format-url-label' ), - data: new OO.ui.FieldLayout( - new OO.ui.TextInputWidget( { - readOnly: true, - value: mw.util.wikiScript( 'api' ) + '?' + $.param( displayParams ) - } ), { - label: Util.parseMsg( 'apisandbox-request-url-label' ) - } - ) + data: new mw.widgets.CopyTextLayout( { + label: Util.parseMsg( 'apisandbox-request-url-label' ), + copyText: mw.util.wikiScript( 'api' ) + '?' + $.param( displayParams ) + } ) } ), new OO.ui.MenuOptionWidget( { label: Util.parseMsg( 'apisandbox-request-format-json-label' ), - data: new OO.ui.FieldLayout( - jsonInput = new OO.ui.MultilineTextInputWidget( { + data: jsonLayout = new mw.widgets.CopyTextLayout( { + label: Util.parseMsg( 'apisandbox-request-json-label' ), + copyText: JSON.stringify( displayParams, null, '\t' ), + multiline: true, + textInput: { classes: [ 'mw-apisandbox-textInputCode' ], - readOnly: true, autosize: true, - maxRows: 6, - value: JSON.stringify( displayParams, null, '\t' ) - } ), { - label: Util.parseMsg( 'apisandbox-request-json-label' ) + maxRows: 6 } - ).on( 'toggle', function ( visible ) { + } ).on( 'toggle', function ( visible ) { if ( visible ) { // Call updatePosition instead of adjustSize // because the latter has weird caching // behavior and the former bypasses it. - jsonInput.updatePosition(); + jsonLayout.textInput.updatePosition(); } } ) } ) @@ -1083,12 +1078,11 @@ progressLoading = false; $progressText = $( '' ).text( mw.message( 'apisandbox-sending-request' ).text() ); progress = new OO.ui.ProgressBarWidget( { - progress: false, - $content: $progressText + progress: false } ); $result = $( '
' ) - .append( progress.$element ); + .append( $progressText, progress.$element ); resultPage = page = new OO.ui.PageLayout( '|results|', { expanded: false } ); page.setupOutlineItem = function () { @@ -1781,10 +1775,12 @@ }; this.$element.empty() - .append( new OO.ui.ProgressBarWidget( { - progress: false, - text: mw.message( 'apisandbox-loading', this.displayText ).text() - } ).$element ); + .append( + document.createTextNode( + mw.message( 'apisandbox-loading', this.displayText ).text() + ), + new OO.ui.ProgressBarWidget( { progress: false } ).$element + ); Util.fetchModuleInfo( this.apiModule ) .done( function ( pi ) { diff --git a/resources/src/mediawiki.special.preferences.styles.ooui.less b/resources/src/mediawiki.special.preferences.styles.ooui.less index 532b9ca5a8..02a0d22b9c 100644 --- a/resources/src/mediawiki.special.preferences.styles.ooui.less +++ b/resources/src/mediawiki.special.preferences.styles.ooui.less @@ -27,6 +27,12 @@ padding: 1em 0; } +// Support Edge: The `position: sticky` rule above causes the buttons to +// disappear in RTL languages on Microsoft Edge. This magically fixes the issue. See T220706. +#preferences { + filter: brightness( 1 ); +} + /* This is needed because add extra buttons in a weird way */ .mw-prefs-buttons .mw-htmlform-submit-buttons { display: inline; diff --git a/resources/src/mediawiki.widgets/mw.widgets.CopyTextLayout.css b/resources/src/mediawiki.widgets/mw.widgets.CopyTextLayout.css new file mode 100644 index 0000000000..f09128a0f0 --- /dev/null +++ b/resources/src/mediawiki.widgets/mw.widgets.CopyTextLayout.css @@ -0,0 +1,19 @@ +/*! + * MediaWiki Widgets – CopyTextLayout styles. + * + * @copyright 2011-2015 MediaWiki Widgets Team and others; see AUTHORS.txt + * @license The MIT License (MIT); see LICENSE.txt + */ + +.mw-widget-copyTextLayout > .oo-ui-fieldLayout-body > .oo-ui-fieldLayout-field { + /* TODO: This should be upstreamed to OOUI */ + max-width: 50em; +} + +.mw-widget-copyTextLayout-multiline-button { + display: block; + max-width: 50em; + margin-top: 0.5em; + /* Float to right of inline help */ + float: right; +} diff --git a/resources/src/mediawiki.widgets/mw.widgets.CopyTextLayout.js b/resources/src/mediawiki.widgets/mw.widgets.CopyTextLayout.js new file mode 100644 index 0000000000..65e7eb782a --- /dev/null +++ b/resources/src/mediawiki.widgets/mw.widgets.CopyTextLayout.js @@ -0,0 +1,114 @@ +/*! + * MediaWiki Widgets - CopyTextLayout class. + * + * @copyright 2011-2015 MediaWiki Widgets Team and others; see AUTHORS.txt + * @license The MIT License (MIT); see LICENSE.txt + */ +( function () { + + /** + * An action field layout containing some readonly text and a button to copy + * it to the clipboard. + * + * @class + * @extends OO.ui.ActionFieldLayout + * + * @constructor + * @param {Object} [config] Configuration options + * @cfg {string} copyText Text to copy, can also be provided as textInput.value + * @cfg {Object} textInput Config for text input + * @cfg {Object} button Config for button + * @cfg {string} successMessage Success message, + * defaults to 'mw-widgets-copytextlayout-copy-success'. + * @cfg {string} failMessage Failure message, + * defaults to 'mw-widgets-copytextlayout-copy-fail'. + */ + mw.widgets.CopyTextLayout = function MwWidgetsCopyTextLayout( config ) { + var TextClass; + config = config || {}; + + // Properties + TextClass = config.multiline ? OO.ui.MultilineTextInputWidget : OO.ui.TextInputWidget; + this.textInput = new TextClass( $.extend( { + value: config.copyText, + readOnly: true + }, config.textInput ) ); + this.button = new OO.ui.ButtonWidget( $.extend( { + label: mw.msg( 'mw-widgets-copytextlayout-copy' ), + icon: 'articles' + }, config.button ) ); + this.successMessage = config.successMessage || mw.msg( 'mw-widgets-copytextlayout-copy-success' ); + this.failMessage = config.failMessage || mw.msg( 'mw-widgets-copytextlayout-copy-fail' ); + + // Parent constructor + mw.widgets.CopyTextLayout.super.call( this, this.textInput, this.button, config ); + + // HACK: Remove classes which connect widgets when using + // a multiline text input. TODO: This should be handled in OOUI. + if ( config.multiline ) { + this.$input.removeClass( 'oo-ui-actionFieldLayout-input' ); + this.$button + .removeClass( 'oo-ui-actionFieldLayout-button' ) + .addClass( 'mw-widget-copyTextLayout-multiline-button' ); + } + + // Events + this.button.connect( this, { click: 'onButtonClick' } ); + this.textInput.$input.on( 'click', this.onInputClick.bind( this ) ); + + this.$element.addClass( 'mw-widget-copyTextLayout' ); + }; + + /* Inheritence */ + + OO.inheritClass( mw.widgets.CopyTextLayout, OO.ui.ActionFieldLayout ); + + /* Methods */ + + /** + * Handle button click events + * + * @fires copy + */ + mw.widgets.CopyTextLayout.prototype.onButtonClick = function () { + var copied; + + this.selectText(); + + try { + copied = document.execCommand( 'copy' ); + } catch ( e ) { + copied = false; + } + if ( copied ) { + mw.notify( this.successMessage ); + } else { + mw.notify( this.failMessage, { type: 'error' } ); + } + + this.emit( 'copy', copied ); + }; + + /** + * Handle button click events + */ + mw.widgets.CopyTextLayout.prototype.onInputClick = function () { + this.selectText(); + }; + + /** + * Select the text to copy + */ + mw.widgets.CopyTextLayout.prototype.selectText = function () { + var input = this.textInput.$input[ 0 ], + scrollTop = input.scrollTop, + scrollLeft = input.scrollLeft; + + this.textInput.select(); + + // Restore scroll position + input.scrollTop = scrollTop; + input.scrollLeft = scrollLeft; + }; + +}() ); diff --git a/tests/phpunit/includes/debug/logger/LegacyLoggerTest.php b/tests/phpunit/includes/debug/logger/LegacyLoggerTest.php index 37a28c36ca..6c2fddaebf 100644 --- a/tests/phpunit/includes/debug/logger/LegacyLoggerTest.php +++ b/tests/phpunit/includes/debug/logger/LegacyLoggerTest.php @@ -124,6 +124,26 @@ class LegacyLoggerTest extends MediaWikiTestCase { ]; } + /** + * @covers MediaWiki\Logger\LegacyLogger::interpolate + */ + public function testInterpolate_Error() { + // @todo Merge this into provideInterpolate once we drop HHVM support + if ( !class_exists( \Error::class ) ) { + $this->markTestSkipped( 'Error class does not exist' ); + } + + $err = new \Error( 'Test error' ); + $message = '{exception}'; + $context = [ 'exception' => $err ]; + $expect = '[Error ' . get_class( $err ) . '( ' . + $err->getFile() . ':' . $err->getLine() . ') ' . + $err->getMessage() . ']'; + + $this->assertEquals( + $expect, LegacyLogger::interpolate( $message, $context ) ); + } + /** * @covers MediaWiki\Logger\LegacyLogger::shouldEmit * @dataProvider provideShouldEmit diff --git a/tests/phpunit/includes/debug/logger/monolog/LineFormatterTest.php b/tests/phpunit/includes/debug/logger/monolog/LineFormatterTest.php index 2768d32939..bdd5c81118 100644 --- a/tests/phpunit/includes/debug/logger/monolog/LineFormatterTest.php +++ b/tests/phpunit/includes/debug/logger/monolog/LineFormatterTest.php @@ -20,6 +20,7 @@ namespace MediaWiki\Logger\Monolog; +use AssertionError; use InvalidArgumentException; use LengthException; use LogicException; @@ -72,4 +73,50 @@ class LineFormatterTest extends MediaWikiTestCase { $this->assertContains( "\nCaused by: [Exception LogicException]", $out ); $this->assertContains( "\n #0", $out ); } + + /** + * @covers MediaWiki\Logger\Monolog\LineFormatter::normalizeException + */ + public function testNormalizeExceptionErrorNoTrace() { + if ( !class_exists( AssertionError::class ) ) { + $this->markTestSkipped( 'AssertionError class does not exist' ); + } + + $fixture = new LineFormatter(); + $fixture->includeStacktraces( false ); + $fixture = TestingAccessWrapper::newFromObject( $fixture ); + $boom = new InvalidArgumentException( 'boom', 0, + new LengthException( 'too long', 0, + new AssertionError( 'Spock wuz here' ) + ) + ); + $out = $fixture->normalizeException( $boom ); + $this->assertContains( "\n[Exception InvalidArgumentException]", $out ); + $this->assertContains( "\nCaused by: [Exception LengthException]", $out ); + $this->assertContains( "\nCaused by: [Error AssertionError]", $out ); + $this->assertNotContains( "\n #0", $out ); + } + + /** + * @covers MediaWiki\Logger\Monolog\LineFormatter::normalizeException + */ + public function testNormalizeExceptionErrorTrace() { + if ( !class_exists( AssertionError::class ) ) { + $this->markTestSkipped( 'AssertionError class does not exist' ); + } + + $fixture = new LineFormatter(); + $fixture->includeStacktraces( true ); + $fixture = TestingAccessWrapper::newFromObject( $fixture ); + $boom = new InvalidArgumentException( 'boom', 0, + new LengthException( 'too long', 0, + new AssertionError( 'Spock wuz here' ) + ) + ); + $out = $fixture->normalizeException( $boom ); + $this->assertContains( "\n[Exception InvalidArgumentException]", $out ); + $this->assertContains( "\nCaused by: [Exception LengthException]", $out ); + $this->assertContains( "\nCaused by: [Error AssertionError]", $out ); + $this->assertContains( "\n #0", $out ); + } } diff --git a/tests/phpunit/includes/diff/TextSlotDiffRendererTest.php b/tests/phpunit/includes/diff/TextSlotDiffRendererTest.php index e08efacd26..c523561827 100644 --- a/tests/phpunit/includes/diff/TextSlotDiffRendererTest.php +++ b/tests/phpunit/includes/diff/TextSlotDiffRendererTest.php @@ -84,7 +84,6 @@ class TextSlotDiffRendererTest extends MediaWikiTestCase { $slotDiffRenderer = new TextSlotDiffRenderer(); $slotDiffRenderer->setStatsdDataFactory( new NullStatsdDataFactory() ); $slotDiffRenderer->setLanguage( Language::factory( 'en' ) ); - $slotDiffRenderer->setWikiDiff2MovedParagraphDetectionCutoff( 0 ); $slotDiffRenderer->setEngine( TextSlotDiffRenderer::ENGINE_PHP ); return $slotDiffRenderer; } diff --git a/tests/phpunit/includes/registration/ExtensionProcessorTest.php b/tests/phpunit/includes/registration/ExtensionProcessorTest.php index d5a2b3a5a7..cdd5c63eff 100644 --- a/tests/phpunit/includes/registration/ExtensionProcessorTest.php +++ b/tests/phpunit/includes/registration/ExtensionProcessorTest.php @@ -717,11 +717,67 @@ class ExtensionProcessorTest extends MediaWikiTestCase { $processor = new ExtensionProcessor(); $this->assertSame( $info['requires'], - $processor->getRequirements( $info ) + $processor->getRequirements( $info, false ) ); $this->assertSame( [], - $processor->getRequirements( [] ) + $processor->getRequirements( [], false ) + ); + } + + public function testGetDevRequirements() { + $info = self::$default + [ + 'dev-requires' => [ + 'MediaWiki' => '>= 1.31.0', + 'platform' => [ + 'ext-foo' => '*', + ], + 'skins' => [ + 'Baz' => '*', + ], + 'extensions' => [ + 'Biz' => '*', + ], + ], + ]; + $processor = new ExtensionProcessor(); + $this->assertSame( + $info['dev-requires'], + $processor->getRequirements( $info, true ) + ); + // Set some standard requirements, so we can test merging + $info['requires'] = [ + 'MediaWiki' => '>= 1.25.0', + 'platform' => [ + 'php' => '>= 5.5.9' + ], + 'extensions' => [ + 'Bar' => '*' + ] + ]; + $this->assertSame( + [ + 'MediaWiki' => '>= 1.25.0 >= 1.31.0', + 'platform' => [ + 'php' => '>= 5.5.9', + 'ext-foo' => '*', + ], + 'extensions' => [ + 'Bar' => '*', + 'Biz' => '*', + ], + 'skins' => [ + 'Baz' => '*', + ], + ], + $processor->getRequirements( $info, true ) + ); + + // If there's no dev-requires, it just returns requires + unset( $info['dev-requires'] ); + $this->assertSame( + $info['requires'], + $processor->getRequirements( $info, true ) ); } diff --git a/tests/phpunit/includes/resourceloader/ResourceLoaderStartUpModuleTest.php b/tests/phpunit/includes/resourceloader/ResourceLoaderStartUpModuleTest.php index d4b5ed6c91..b5dd008b3f 100644 --- a/tests/phpunit/includes/resourceloader/ResourceLoaderStartUpModuleTest.php +++ b/tests/phpunit/includes/resourceloader/ResourceLoaderStartUpModuleTest.php @@ -33,6 +33,78 @@ mw.loader.register( [ "test.blank", "{blankVer}" ] +] );', + ] ], + [ [ + 'msg' => 'Optimise the dependency tree (basic case)', + 'modules' => [ + 'a' => new ResourceLoaderTestModule( [ 'dependencies' => [ 'b', 'c', 'd' ] ] ), + 'b' => new ResourceLoaderTestModule( [ 'dependencies' => [ 'c' ] ] ), + 'c' => new ResourceLoaderTestModule( [ 'dependencies' => [] ] ), + 'd' => new ResourceLoaderTestModule( [ 'dependencies' => [] ] ), + ], + 'out' => ' +mw.loader.addSource( { + "local": "/w/load.php" +} ); +mw.loader.register( [ + [ + "a", + "{blankVer}", + [ + 1, + 3 + ] + ], + [ + "b", + "{blankVer}", + [ + 2 + ] + ], + [ + "c", + "{blankVer}" + ], + [ + "d", + "{blankVer}" + ] +] );', + ] ], + [ [ + 'msg' => 'Optimise the dependency tree (tolerate unknown deps)', + 'modules' => [ + 'a' => new ResourceLoaderTestModule( [ 'dependencies' => [ 'b', 'c', 'x' ] ] ), + 'b' => new ResourceLoaderTestModule( [ 'dependencies' => [ 'c', 'x' ] ] ), + 'c' => new ResourceLoaderTestModule( [ 'dependencies' => [] ] ), + ], + 'out' => ' +mw.loader.addSource( { + "local": "/w/load.php" +} ); +mw.loader.register( [ + [ + "a", + "{blankVer}", + [ + 1, + "x" + ] + ], + [ + "b", + "{blankVer}", + [ + 2, + "x" + ] + ], + [ + "c", + "{blankVer}" + ] ] );', ] ], [ [ @@ -454,8 +526,7 @@ mw.loader.register( [ /** * @dataProvider provideGetModuleRegistrations - * @covers ResourceLoaderStartUpModule::getModuleRegistrations - * @covers ResourceLoaderStartUpModule::compileUnresolvedDependencies + * @covers ResourceLoaderStartUpModule * @covers ResourceLoader::makeLoaderRegisterScript */ public function testGetModuleRegistrations( $case ) {