=== PHP version requirement ===
As of 1.27, MediaWiki now requires PHP 5.5.9 or higher. This corresponds with
-HHVM 3.1.
+HHVM 3.1. Additionally, the following PHP extensions are required:
+* ctype
+* iconv
+* json
+* mbstring
+* xml
=== Configuration changes in 1.27 ===
* $wgAllowMicrodataAttributes and $wgAllowRdfaAttributes were removed,
'CheckSyntax' => __DIR__ . '/maintenance/checkSyntax.php',
'CheckUsernames' => __DIR__ . '/maintenance/checkUsernames.php',
'ChronologyProtector' => __DIR__ . '/includes/db/ChronologyProtector.php',
- 'ClassCollector' => __DIR__ . '/includes/utils/ClassCollector.php',
+ 'ClassCollector' => __DIR__ . '/includes/utils/AutoloadGenerator.php',
'CleanupAncientTables' => __DIR__ . '/maintenance/cleanupAncientTables.php',
'CleanupBlocks' => __DIR__ . '/maintenance/cleanupBlocks.php',
'CleanupPreferences' => __DIR__ . '/maintenance/cleanupPreferences.php',
'FakeConverter' => __DIR__ . '/languages/FakeConverter.php',
'FakeMaintenance' => __DIR__ . '/maintenance/Maintenance.php',
'FakeResultWrapper' => __DIR__ . '/includes/db/DatabaseUtility.php',
- 'Fallback' => __DIR__ . '/includes/Fallback.php',
'FatalError' => __DIR__ . '/includes/exception/FatalError.php',
'FauxRequest' => __DIR__ . '/includes/FauxRequest.php',
'FauxResponse' => __DIR__ . '/includes/WebResponse.php',
"require": {
"composer/semver": "1.4.0",
"cssjanus/cssjanus": "1.1.2",
+ "ext-ctype": "*",
"ext-iconv": "*",
+ "ext-json": "*",
+ "ext-mbstring": "*",
+ "ext-xml": "*",
"liuggio/statsd-php-client": "1.0.18",
"mediawiki/at-ease": "1.1.0",
- "oojs/oojs-ui": "0.16.4",
+ "oojs/oojs-ui": "0.16.5",
"oyejorge/less.php": "1.7.0.10",
"php": ">=5.5.9",
"psr/log": "1.0.0",
"ext-apc": "Local data and opcode cache",
"ext-fileinfo": "Improved mime magic detection",
"ext-intl": "ICU integration",
- "ext-mbstring": "Multibyte string support",
"ext-wikidiff2": "Diff accelerator",
"monolog/monolog": "Flexible debug logging system",
"nmred/kafka-php": "Send debug log events to kafka",
* Requires PHP's Exif extension: http://www.php.net/manual/en/ref.exif.php
*
* @note FOR WINDOWS USERS:
- * To enable Exif functions, add the following lines to the "Windows
+ * To enable Exif functions, add the following line to the "Windows
* extensions" section of php.ini:
* @code{.ini}
- * extension=extensions/php_mbstring.dll
* extension=extensions/php_exif.dll
* @endcode
*/
+++ /dev/null
-<?php
-/**
- * Fallback functions for PHP installed without mbstring support.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- * http://www.gnu.org/copyleft/gpl.html
- *
- * @file
- */
-
-/**
- * Fallback functions for PHP installed without mbstring support
- */
-class Fallback {
-
- /**
- * Fallback implementation for mb_substr, hardcoded to UTF-8.
- * Attempts to be at least _moderately_ efficient; best optimized
- * for relatively small offset and count values -- about 5x slower
- * than native mb_string in my testing.
- *
- * Larger offsets are still fairly efficient for Latin text, but
- * can be up to 100x slower than native if the text is heavily
- * multibyte and we have to slog through a few hundred kb.
- *
- * @param string $str
- * @param int $start
- * @param string $count
- *
- * @return string
- */
- public static function mb_substr( $str, $start, $count = 'end' ) {
- if ( $start != 0 ) {
- $split = self::mb_substr_split_unicode( $str, intval( $start ) );
- $str = substr( $str, $split );
- }
-
- if ( $count !== 'end' ) {
- $split = self::mb_substr_split_unicode( $str, intval( $count ) );
- $str = substr( $str, 0, $split );
- }
-
- return $str;
- }
-
- /**
- * @param string $str
- * @param int $splitPos
- * @return int
- */
- public static function mb_substr_split_unicode( $str, $splitPos ) {
- if ( $splitPos == 0 ) {
- return 0;
- }
-
- $byteLen = strlen( $str );
-
- if ( $splitPos > 0 ) {
- if ( $splitPos > 256 ) {
- // Optimize large string offsets by skipping ahead N bytes.
- // This will cut out most of our slow time on Latin-based text,
- // and 1/2 to 1/3 on East European and Asian scripts.
- $bytePos = $splitPos;
- while ( $bytePos < $byteLen && $str[$bytePos] >= "\x80" && $str[$bytePos] < "\xc0" ) {
- ++$bytePos;
- }
- $charPos = mb_strlen( substr( $str, 0, $bytePos ) );
- } else {
- $charPos = 0;
- $bytePos = 0;
- }
-
- while ( $charPos++ < $splitPos ) {
- ++$bytePos;
- // Move past any tail bytes
- while ( $bytePos < $byteLen && $str[$bytePos] >= "\x80" && $str[$bytePos] < "\xc0" ) {
- ++$bytePos;
- }
- }
- } else {
- $splitPosX = $splitPos + 1;
- $charPos = 0; // relative to end of string; we don't care about the actual char position here
- $bytePos = $byteLen;
- while ( $bytePos > 0 && $charPos-- >= $splitPosX ) {
- --$bytePos;
- // Move past any tail bytes
- while ( $bytePos > 0 && $str[$bytePos] >= "\x80" && $str[$bytePos] < "\xc0" ) {
- --$bytePos;
- }
- }
- }
-
- return $bytePos;
- }
-
- /**
- * Fallback implementation of mb_strlen, hardcoded to UTF-8.
- * @param string $str
- * @param string $enc Optional encoding; ignored
- * @return int
- */
- public static function mb_strlen( $str, $enc = '' ) {
- $counts = count_chars( $str );
- $total = 0;
-
- // Count ASCII bytes
- for ( $i = 0; $i < 0x80; $i++ ) {
- $total += $counts[$i];
- }
-
- // Count multibyte sequence heads
- for ( $i = 0xc0; $i < 0xff; $i++ ) {
- $total += $counts[$i];
- }
- return $total;
- }
-
- /**
- * Fallback implementation of mb_strpos, hardcoded to UTF-8.
- * @param string $haystack
- * @param string $needle
- * @param string $offset Optional start position
- * @param string $encoding Optional encoding; ignored
- * @return int
- */
- public static function mb_strpos( $haystack, $needle, $offset = 0, $encoding = '' ) {
- $needle = preg_quote( $needle, '/' );
-
- $ar = [];
- preg_match( '/' . $needle . '/u', $haystack, $ar, PREG_OFFSET_CAPTURE, $offset );
-
- if ( isset( $ar[0][1] ) ) {
- return $ar[0][1];
- } else {
- return false;
- }
- }
-
- /**
- * Fallback implementation of mb_strrpos, hardcoded to UTF-8.
- * @param string $haystack
- * @param string $needle
- * @param string $offset Optional start position
- * @param string $encoding Optional encoding; ignored
- * @return int
- */
- public static function mb_strrpos( $haystack, $needle, $offset = 0, $encoding = '' ) {
- $needle = preg_quote( $needle, '/' );
-
- $ar = [];
- preg_match_all( '/' . $needle . '/u', $haystack, $ar, PREG_OFFSET_CAPTURE, $offset );
-
- if ( isset( $ar[0] ) && count( $ar[0] ) > 0 &&
- isset( $ar[0][count( $ar[0] ) - 1][1] ) ) {
- return $ar[0][count( $ar[0] ) - 1][1];
- } else {
- return false;
- }
- }
-}
* PHP extensions may be included here.
*/
-if ( !function_exists( 'mb_substr' ) ) {
- /**
- * @codeCoverageIgnore
- * @see Fallback::mb_substr
- * @return string
- */
- function mb_substr( $str, $start, $count = 'end' ) {
- return Fallback::mb_substr( $str, $start, $count );
- }
-
- /**
- * @codeCoverageIgnore
- * @see Fallback::mb_substr_split_unicode
- * @return int
- */
- function mb_substr_split_unicode( $str, $splitPos ) {
- return Fallback::mb_substr_split_unicode( $str, $splitPos );
- }
-}
-
-if ( !function_exists( 'mb_strlen' ) ) {
- /**
- * @codeCoverageIgnore
- * @see Fallback::mb_strlen
- * @return int
- */
- function mb_strlen( $str, $enc = '' ) {
- return Fallback::mb_strlen( $str, $enc );
- }
-}
-
-if ( !function_exists( 'mb_strpos' ) ) {
- /**
- * @codeCoverageIgnore
- * @see Fallback::mb_strpos
- * @return int
- */
- function mb_strpos( $haystack, $needle, $offset = 0, $encoding = '' ) {
- return Fallback::mb_strpos( $haystack, $needle, $offset, $encoding );
- }
-}
-
-if ( !function_exists( 'mb_strrpos' ) ) {
- /**
- * @codeCoverageIgnore
- * @see Fallback::mb_strrpos
- * @return int
- */
- function mb_strrpos( $haystack, $needle, $offset = 0, $encoding = '' ) {
- return Fallback::mb_strrpos( $haystack, $needle, $offset, $encoding );
- }
-}
-
// hash_equals function only exists in PHP >= 5.6.0
// http://php.net/hash_equals
if ( !function_exists( 'hash_equals' ) ) {
*/
public function getDoc() {
if ( !$this->doc ) {
- // DOMDocument::loadHTML apparently isn't very good with encodings, so
+ // DOMDocument::loadHTML isn't very good with encodings, so
// convert input to ASCII by encoding everything above 128 as entities.
- if ( function_exists( 'mb_convert_encoding' ) ) {
- $html = mb_convert_encoding( $this->html, 'HTML-ENTITIES', 'UTF-8' );
- } else {
- $html = preg_replace_callback( '/[\x{80}-\x{10ffff}]/u', function ( $m ) {
- return '&#' . UtfNormal\Utils::utf8ToCodepoint( $m[0] ) . ';';
- }, $this->html );
- }
+ $html = mb_convert_encoding( $this->html, 'HTML-ENTITIES', 'UTF-8' );
// Workaround for bug that caused spaces before references
// to disappear during processing: https://phabricator.wikimedia.org/T55086
}
$html = $replacements->replace( $html );
- if ( function_exists( 'mb_convert_encoding' ) ) {
- // Just in case the conversion in getDoc() above used named
- // entities that aren't known to html_entity_decode().
- $html = mb_convert_encoding( $html, 'UTF-8', 'HTML-ENTITIES' );
- } else {
- $html = html_entity_decode( $html, ENT_COMPAT, 'utf-8' );
- }
+ // Just in case the conversion in getDoc() above used named
+ // entities that aren't known to html_entity_decode().
+ $html = mb_convert_encoding( $html, 'UTF-8', 'HTML-ENTITIES' );
+
return $html;
}
}
if ( $user->isAllowed( 'purge' ) ) {
+ // This will update the database immediately, even on HTTP GET.
+ // Lots of uses may exist for this feature, so just ignore warnings.
+ Profiler::instance()->getTransactionProfiler()->resetExpectations();
+
$this->redirectParams = wfArrayToCgi( array_diff_key(
$this->getRequest()->getQueryValues(),
[ 'title' => null, 'action' => null ]
"L",
"Umherirrender",
"Elfix",
- "Lbayle"
+ "Lbayle",
+ "Verdy p"
]
},
"apihelp-main-description": "<div class=\"hlist plainlinks api-main-links\">\n* [[mw:API:Main_page|Documentation]]\n* [[mw:API:FAQ|FAQ]]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api 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</div>\n<strong>État :</strong> Toutes les fonctionnalités affichées sur cette page devraient fonctionner, mais l’API est encore en cours de développement et peut changer à tout moment. Inscrivez-vous à [https://lists.wikimedia.org/pipermail/mediawiki-api-announce/ la liste de diffusion mediawiki-api-announce] pour être informé des mises à jour.\n\n<strong>Requêtes erronées :</strong> Si des requêtes erronées sont envoyées à l’API, un en-tête HTTP sera renvoyé avec la clé « MediaWiki-API-Error ». La valeur de cet en-tête et le code d’erreur renvoyé prendront la même valeur. Pour plus d’information, voyez [[mw:API:Errors_and_warnings|API: Errors and warnings]].\n\n<strong>Test :</strong> Pour faciliter le test des requêtes de l’API, voyez [[Special:ApiSandbox]].",
"apihelp-tokens-example-emailmove": "Récupérer un jeton de courriel et un jeton de déplacement.",
"apihelp-unblock-description": "Débloquer un utilisateur.",
"apihelp-unblock-param-id": "ID du blocage à lever (obtenu via <kbd>list=blocks</kbd>). Impossible à utiliser avec <var>$1user</var>.",
- "apihelp-unblock-param-user": "Nom d’utilisateur, adresse IP ou plage d’adresses IP à débloquer. Impossible à utiliser avec <var>$1id</var>.",
+ "apihelp-unblock-param-user": "Nom d’utilisateur, adresse IP ou plage d’adresses IP à débloquer. Impossible à utiliser en même temps que <var>$1id</var>.",
"apihelp-unblock-param-reason": "Motif de déblocage.",
"apihelp-unblock-param-tags": "Modifier les balises à appliquer à l’entrée dans le journal de blocage.",
"apihelp-unblock-example-id": "Lever le blocage d’ID #<kbd>105</kbd>.",
* @param int $newId
* @param string $actionCommentIRC
* @param int $revId Id of associated revision, if any
+ * @param bool $isPatrollable Whether this log entry is patrollable
* @return RecentChange
*/
public static function newLogEntry( $timestamp, &$title, &$user, $actionComment, $ip,
$type, $action, $target, $logComment, $params, $newId = 0, $actionCommentIRC = '',
- $revId = 0 ) {
+ $revId = 0, $isPatrollable = false ) {
global $wgRequest;
# # Get pageStatus for email notification
break;
}
- // Allow unpatrolled status when an associated rev id is passed
- // May be used in core by moves and uploads
- $markPatrolled = ( $revId > 0 ) ? $user->isAllowed( 'autopatrol' ) : true;
+ // Allow unpatrolled status for patrollable log entries
+ $markPatrolled = $isPatrollable ? $user->isAllowed( 'autopatrol' ) : true;
$rc = new RecentChange;
$rc->mTitle = $target;
}
public function doQuery( $sql ) {
- if ( function_exists( 'mb_convert_encoding' ) ) {
- $sql = mb_convert_encoding( $sql, 'UTF-8' );
- }
+ $sql = mb_convert_encoding( $sql, 'UTF-8' );
// Clear previously left over PQresult
while ( $res = pg_get_result( $this->mConn ) ) {
pg_free_result( $res );
}
protected function resolveContainerPath( $container, $relStoragePath ) {
- if ( !mb_check_encoding( $relStoragePath, 'UTF-8' ) ) { // mb_string required by CF
+ if ( !mb_check_encoding( $relStoragePath, 'UTF-8' ) ) {
return null; // not UTF-8, makes it hard to use CF and the swift HTTP API
} elseif ( strlen( urlencode( $relStoragePath ) ) > 1024 ) {
return null; // too long for Swift
$logEntry->setTags( $tags );
}
+ # Uploads can be patrolled
+ $logEntry->setIsPatrollable( true );
+
# Now that the log entry is up-to-date, make an RC entry.
$logEntry->publish( $logId );
return false;
}
+ if ( !function_exists( 'mb_substr' ) ) {
+ $this->showError( 'config-mbstring-absent' );
+
+ return false;
+ }
+
return true;
}
"config-ctype": "'''Фатальная памылка''': PHP мусіць быць скампіляваны з падтрымкай [http://www.php.net/manual/en/ctype.installation.php пашырэньня Ctype].",
"config-iconv": "<strong>Непапраўная памылка:</strong> PHP мусіць быць скампіляваны з падтрымкай [http://www.php.net/manual/en/iconv.installation.php пашырэньня iconv].",
"config-json": "<strong>Крытычная памылка:</strong> PHP быў скампіляваны без падтрымкі JSON.\nВы павінныя ўсталяваць або пашырэньне PHP JSON, або пашырэньне [http://pecl.php.net/package/jsonc PECL jsonc] перад усталёўкай MediaWiki.\n* Пашырэньне PHP уваходзіць у Red Hat Enterprise Linux (CentOS) 5 і 6, пры гэтым павінна быць падключана ў <code>/etc/php.ini</code> або <code>/etc/php.d/json.ini</code>.\n* Некаторыя дыстрыбутывы Linux, выдадзеныя пасьля траўня 2013 году, ня маюць пашырэньня PHP, замест яго пакуюць пашырэньне PECL як <code>php5-json</code> або <code>php-pecl-jsonc</code>.",
+ "config-mbstring-absent": "<strong>Непапраўная памылка:</strong> PHP мусіць быць скампіляваны з падтрымкай [http://www.php.net/manual/en/mbstring.setup.php пашырэньня mbstring].",
"config-xcache": "[http://xcache.lighttpd.net/ XCache] усталяваны",
"config-apc": "[http://www.php.net/apc APC] усталяваны",
"config-wincache": "[http://www.iis.net/download/WinCacheForPhp WinCache] усталяваны",
"config-env-php": "Je nainstalováno PHP $1.",
"config-env-hhvm": "Je nainstalováno HHVM $1.",
"config-unicode-using-intl": "Pro normalizaci Unicode se používá [http://pecl.php.net/intl PECL rozšíření intl].",
- "config-unicode-pure-php-warning": "'''Upozornění''': Není dostupné [http://pecl.php.net/intl PECL rozšíření intl] pro normalizaci Unicode, bude se využívat pomalá implementace v čistém PHP.\nPokud provozujete wiki s velkou návštěvností, měli byste si přečíst něco o [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations normalizaci Unicode].",
- "config-unicode-update-warning": "'''Upozornění''': Nainstalovaná verze vrstvy pro normalizaci Unicode používá starší verzi knihovny [http://site.icu-project.org/ projektu ICU].\nPokud vám aspoň trochu záleží na používání Unicode, měli byste [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations ji aktualizovat].",
+ "config-unicode-pure-php-warning": "<strong>Upozornění:</strong> Není dostupné [http://pecl.php.net/intl PECL rozšíření intl] pro normalizaci Unicode, bude se využívat pomalá implementace v čistém PHP.\nPokud provozujete wiki s velkou návštěvností, měli byste si přečíst něco o [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations normalizaci Unicode].",
+ "config-unicode-update-warning": "<strong>Upozornění:</strong> Nainstalovaná verze vrstvy pro normalizaci Unicode používá starší verzi knihovny [http://site.icu-project.org/ projektu ICU].\nPokud vám aspoň trochu záleží na používání Unicode, měli byste [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations ji aktualizovat].",
"config-no-db": "Nepodařilo se nalézt vhodný databázový ovladač! Musíte nainstalovat databázový ovladač pro PHP.\n{{PLURAL:$2|Je podporován následující typ databáze|Jsou podporovány následující typy databází}}: $1.\n\nPokud jste si PHP přeložili sami, překonfigurujte ho se zapnutým databázovým klientem, například pomocí <code>./configure --with-mysql</code>.\nPokud jste PHP nainstalovali z balíčku Debian či Ubuntu, potřebujete nainstalovat také modul <code>php5-mysql</code>.",
- "config-outdated-sqlite": "'''Upozornění''': Máte SQLite $1, které je starší než minimálně vyžadovaná verze $2. SQLite nebude dostupné.",
- "config-no-fts3": "'''Upozornění''': SQLite bylo přeloženo bez [//sqlite.org/fts3.html modulu FTS3], funkce pro vyhledávání zde nebudou dostupné.",
- "config-mbstring": "'''Kritická chyba: Je zapnuto [http://www.php.net/manual/en/ref.mbstring.php#mbstring.overload mbstring.func_overload]!'''\nToto nastavení způsobuje chyby a může nepředvídatelně poškozovat vstupní data.\nMediaWiki nelze nainstalovat ani používat, dokud není toto nastavení vypnuto.",
+ "config-outdated-sqlite": "<strong>Upozornění:</strong> Máte SQLite $1, které je starší než minimálně vyžadovaná verze $2. SQLite nebude dostupné.",
+ "config-no-fts3": "<strong>Upozornění:</strong> SQLite bylo přeloženo bez [//sqlite.org/fts3.html modulu FTS3], funkce pro vyhledávání zde nebudou dostupné.",
+ "config-mbstring": "<strong>Kritická chyba: Je zapnuto [http://www.php.net/manual/en/ref.mbstring.php#mbstring.overload mbstring.func_overload]!</strong>\nToto nastavení způsobuje chyby a může nepředvídatelně poškozovat vstupní data.\nMediaWiki nelze nainstalovat ani používat, dokud není toto nastavení vypnuto.",
"config-xml-bad": "Chybí XML modul pro PHP.\nMediaWiki potřebuje funkce v tomto modulu a v této konfiguraci nebude fungovat.\nMožná si budete muset nainstalovat RPM balíček php-xml.",
- "config-pcre-old": "'''Kritická chyba:''' Je vyžadováno PCRE verze $1 nebo novější.\nVaše binárka PHP obsahuje PCRE $2.\n[https://www.mediawiki.org/wiki/Manual:Errors_and_symptoms/PCRE Více informací.]",
- "config-pcre-no-utf8": "'''Kritická chyba''': PHP modul PCRE byl zřejmě přeložen bez podpory PCRE_UTF8.\nMediaWiki vyžaduje ke správné funkci podporu UTF-8.",
+ "config-pcre-old": "<strong>Kritická chyba:</strong> Je vyžadováno PCRE verze $1 nebo novější.\nVaše binárka PHP obsahuje PCRE $2.\n[https://www.mediawiki.org/wiki/Manual:Errors_and_symptoms/PCRE Více informací.]",
+ "config-pcre-no-utf8": "<strong>Kritická chyba:</strong> PHP modul PCRE byl zřejmě přeložen bez podpory PCRE_UTF8.\nMediaWiki vyžaduje ke správné funkci podporu UTF-8.",
"config-memory-raised": "<code>memory_limit</code> v PHP byl nastaven na $1, zvýšen na $2.",
- "config-memory-bad": "'''Upozornění:''' <code>memory_limit</code> je v PHP nastaven na $1.\nTo je pravděpodobně příliš málo.\nInstalace může selhat!",
- "config-ctype": "'''Kritická chyba''': PHP musí být přeloženo s podporou pro [http://www.php.net/manual/en/ctype.installation.php rozšíření Ctype].",
- "config-iconv": "'''Kritická chyba''': PHP musí být přeloženo s podporou pro [http://www.php.net/manual/en/iconv.installation.php rozšíření iconv].",
- "config-json": "'''Kritická chyba:''' PHP bylo přeloženo bez podpory JSON.\nPřed instalací MediaWiki musíte buď nainstalovat rozšíření PHP JSON nebo rozšíření [http://pecl.php.net/package/jsonc PECL jsonc].\n* Rozšíření PHP je součástí Red Hat Enterprise Linux (CentOS) 5 a 6, avšak musí se povolit v <code>/etc/php.ini</code> nebo <code>/etc/php.d/json.ini</code>.\n* V některých linuxových distribucích vydaných po květnu 2013 může toto rozšíření PHP chybět a místo toho mohou používat rozšíření PECL jako <code>php5-json</code> nebo <code>php-pecl-jsonc</code>.",
+ "config-memory-bad": "<strong>Upozornění:</strong> <code>memory_limit</code> je v PHP nastaven na $1.\nTo je pravděpodobně příliš málo.\nInstalace může selhat!",
+ "config-ctype": "<strong>Kritická chyba:</strong> PHP musí být přeloženo s podporou pro [http://www.php.net/manual/en/ctype.installation.php rozšíření Ctype].",
+ "config-iconv": "<strong>Kritická chyba:</strong> PHP musí být přeloženo s podporou pro [http://www.php.net/manual/en/iconv.installation.php rozšíření iconv].",
+ "config-json": "<strong>Kritická chyba:</strong> PHP bylo přeloženo bez podpory JSON.\nPřed instalací MediaWiki musíte buď nainstalovat rozšíření PHP JSON nebo rozšíření [http://pecl.php.net/package/jsonc PECL jsonc].\n* Rozšíření PHP je součástí Red Hat Enterprise Linux (CentOS) 5 a 6, avšak musí se povolit v <code>/etc/php.ini</code> nebo <code>/etc/php.d/json.ini</code>.\n* V některých linuxových distribucích vydaných po květnu 2013 může toto rozšíření PHP chybět a místo toho mohou používat rozšíření PECL jako <code>php5-json</code> nebo <code>php-pecl-jsonc</code>.",
+ "config-mbstring-absent": "<strong>Kritická chyba:</strong> PHP musí být přeloženo s podporou pro [http://www.php.net/manual/en/mbstring.setup.php rozšíření mbstring].",
"config-xcache": "Je nainstalována [http://xcache.lighttpd.net/ XCache]",
"config-apc": "Je nainstalováno [http://www.php.net/apc APC]",
"config-wincache": "Je nainstalována [http://www.iis.net/download/WinCacheForPhp WinCache]",
"config-no-cache-apcu": "<strong>Upozornění:</strong> Nebylo nalezeno [http://www.php.net/apcu APCu], [http://xcache.lighttpd.net/ XCache], ani [http://www.iis.net/download/WinCacheForPhp WinCache].\nKešování objektů bude vypnuto.",
- "config-mod-security": "'''Upozornění''': váš webový server má zapnuto [http://modsecurity.org/ mod_security]. Při chybné konfiguraci může způsobovat potíže MediaWiki či dalším programům, které umožňují ukládat libovolný obsah.\nPokud narazíte na náhodné chyby, podívejte se do [http://modsecurity.org/documentation/ dokumentace mod_security] nebo kontaktujte technickou podporu vašeho poskytovatele.",
+ "config-mod-security": "<strong>Upozornění:</strong> váš webový server má zapnuto [http://modsecurity.org/ mod_security]/mod_security2. Mnoho běžných konfigurací bude způsobovat potíže MediaWiki a dalším programům, které umožňují ukládat libovolný obsah.\nPokud je to možné, mělo by se to vypnout. Jinak se v případě, že narazíte na náhodné chyby, podívejte do [http://modsecurity.org/documentation/ dokumentace mod_security] nebo kontaktujte technickou podporu vašeho poskytovatele.",
"config-diff3-bad": "Nebyl nalezen GNU diff3.",
"config-git": "Nalezen software pro správu verzí Git: <code>$1</code>.",
"config-git-bad": "Software pro správu verzí Git nebyl nalezen.",
"config-imagemagick": "Nalezen ImageMagick: <code>$1</code>.\nPokud povolíte načítání souborů, bude zapnuto vytváření náhledů.",
"config-gd": "Nalezena vestavěná grafická knihovna GD.\nPokud povolíte načítání souborů, bude zapnuto vytváření náhledů.",
"config-no-scaling": "Nebyla nalezena knihovna GD ani ImageMagick.\nVytváření náhledů bude vypnuto.",
- "config-no-uri": "'''Chyba:''' Nepodařilo se určit aktuální URI.\nInstalace přerušena.",
- "config-no-cli-uri": "<strong>Upozornění</strong>: Nebylo uvedeno <code>--scriptpath</code>, používá se implicitní hodnota: <code>$1</code>.",
+ "config-no-uri": "<strong>Chyba:</strong> Nepodařilo se určit aktuální URI.\nInstalace přerušena.",
+ "config-no-cli-uri": "<strong>Upozornění:</strong> Nebylo uvedeno <code>--scriptpath</code>, používá se implicitní hodnota: <code>$1</code>.",
"config-using-server": "Použito jméno serveru „<nowiki>$1</nowiki>“.",
"config-using-uri": "Použito URL serveru „<nowiki>$1$2</nowiki>“.",
- "config-uploads-not-safe": "'''Upozornění:''' Váš výchozí adresář pro načítání souborů <code>$1</code> umožňuje spouštění libovolných skriptů.\nPřestože MediaWiki všechny načítané soubory kontroluje proti bezpečnostním hrozbám, je důrazně doporučeno [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security#Upload_security tuto bezpečnostní díru zacelit] před povolením načítání souborů.",
- "config-no-cli-uploads-check": "'''Upozornění:''' Váš výchozí adresář pro načítané soubory (<code>$1</code>) se při instalaci z příkazového řádku nekontroluje na bezpečnostní hrozbu provádění libovolných skriptů.",
+ "config-uploads-not-safe": "<strong>Upozornění:</strong> Váš výchozí adresář pro načítání souborů <code>$1</code> umožňuje spouštění libovolných skriptů.\nPřestože MediaWiki všechny načítané soubory kontroluje proti bezpečnostním hrozbám, je důrazně doporučeno [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security#Upload_security tuto bezpečnostní díru zacelit] před povolením načítání souborů.",
+ "config-no-cli-uploads-check": "<strong>Upozornění:</strong> Váš výchozí adresář pro načítané soubory (<code>$1</code>) se při instalaci z příkazového řádku nekontroluje na bezpečnostní hrozbu provádění libovolných skriptů.",
"config-brokenlibxml": "Váš systém obsahuje kombinaci verzí PHP a libxml2, která je chybná a může v MediaWiki a dalších webových aplikacích způsobovat skryté poškozování dat.\nAktualizujte na libxml2 2.7.3 nebo novější ([https://bugs.php.net/bug.php?id=45996 chyba evidovaná u PHP]).\nInstalace přerušena.",
"config-suhosin-max-value-length": "Je nainstalován Suhosin, který omezuje délku parametrů GET na $1 bajtů.\nKomponenta ResourceLoader z MediaWiki dokáže s tímto omezením pracovat, ale sníží to výkon.\nPokud to je alespoň trochu možné, měli byste v <code>php.ini</code> nastavit <code>suhosin.get.max_value_length</code> na 1024 nebo vyšší a na stejnou hodnotu nastavit v <code>LocalSettings.php</code> proměnnou <code>$wgResourceLoaderMaxQueryLength</code>.",
"config-db-type": "Typ databáze:",
"config-charset-mysql5-binary": "MySQL 4.1/5.0 binární",
"config-charset-mysql5": "MySQL 4.1/5.0 UTF-8",
"config-charset-mysql4": "MySQL 4.0 zpětně kompatibilní UTF-8",
- "config-charset-help": "'''Upozornění:''' Pokud použijete '''zpětně kompatibilní UTF-8''' na MySQL 4.1+ a následně zazálohujete databázi pomocí <code>mysqldump</code>, může to zničit všechny ne-ASCII znaky, což nevratně poškodí vaše zálohy!\n\nV '''binárním režimu''' ukládá MediaWiki text v UTF-8 do databáze v binárních sloupcích.\nTo je výkonnější než UTF-8 režim MySQL a umožňuje využít plný rozsah znaků Unicode.\nV '''režimu UTF-8''' bude MySQL znát znakovou sadu vašich dat a může je příslušně zobrazovat a převádět,\nale neumožní vám uložit znaky mimo [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes Basic Multilingual Plane].",
- "config-mysql-old": "Je vyžadováno MySQL $1 nebo novější, vy máte $2.",
+ "config-charset-help": "<strong>Upozornění:</strong> Pokud použijete <strong>zpětně kompatibilní UTF-8<strong> na MySQL 4.1+ a následně zazálohujete databázi pomocí <code>mysqldump</code>, může to zničit všechny ne-ASCII znaky, což nevratně poškodí vaše zálohy!\n\nV <strong>binárním režimu</strong> ukládá MediaWiki text v UTF-8 do databáze v binárních sloupcích.\nTo je výkonnější než UTF-8 režim MySQL a umožňuje využít plný rozsah znaků Unicode.\nV <strong>režimu UTF-8</strong> bude MySQL znát znakovou sadu vašich dat a může je příslušně zobrazovat a převádět,\nale neumožní vám uložit znaky mimo [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes Basic Multilingual Plane].",
+ "config-mysql-old": "Je vyžadováno MySQL $1 nebo novější. Vy máte $2.",
"config-db-port": "Databázový port:",
"config-db-schema": "Schéma pro MediaWiki:",
"config-db-schema-help": "Toto schéma zpravidla stačí.\nMěňte ho, jen pokud víte, že je to potřeba.",
"config-upgrade-done-no-regenerate": "Aktualizace byla dokončena.\n\nSvou wiki teď můžete [$1 začít používat].",
"config-regenerate": "Přegenerovat LocalSettings.php →",
"config-show-table-status": "Dotaz <code>SHOW TABLE STATUS</code> se nezdařil!",
- "config-unknown-collation": "'''Upozornění:''' Databáze používá nerozpoznané řazení.",
+ "config-unknown-collation": "<strong>Upozornění:</strong> Databáze používá nerozpoznané řazení.",
"config-db-web-account": "Databázový účet pro webový přístup",
"config-db-web-help": "Zvolte uživatelské jméno a heslo, které bude webový server používat pro připojení k databázovému serveru při běžném provozu wiki.",
"config-db-web-account-same": "Použít stejný účet jako pro instalaci",
"config-mysql-engine": "Typ úložiště:",
"config-mysql-innodb": "InnoDB",
"config-mysql-myisam": "MyISAM",
- "config-mysql-myisam-dep": "'''Upozornění''': Jako typ úložiště pro MySQL jste zvolili MyISAM, které není pro použití v MediaWiki doporučeno, neboť:\n* stěží podporuje současný přístup kvůli zamykání tabulek,\n* je náchylnější na poškození dat než jiná úložiště,\n* kód MediaWiki nepodporuje MyISAM vždy tak dobře, jak by měl.\n\nPokud vaše instalace MySQL podporuje InnoDB, důrazně doporučujeme použít spíše to.\nPokud vaše instalace MySQL InnoDB nepodporuje, možná je čas na aktualizaci.",
- "config-mysql-only-myisam-dep": "'''Upozornění:''' Jediným dostupným úložištěm dat pro MySQL je MyISAM, který se k užití s MediaWiki nedoporučuje, neboť:\n* téměř nepodporuje paralelní přístup kvůli zamykání tabulek,\n* oproti jiným formátům je náchylnější k poškození,\n* MediaWiki nepodporuje MyISAM tak dobře, jak by bylo třeba.\n\nVaše instalace MySQL nepodporuje InnoDB, možná je na čase upgradovat.",
+ "config-mysql-myisam-dep": "<strong>Upozornění:</strong> Jako typ úložiště pro MySQL jste zvolili MyISAM, které není pro použití v MediaWiki doporučeno, neboť:\n* stěží podporuje současný přístup kvůli zamykání tabulek,\n* je náchylnější na poškození dat než jiná úložiště,\n* kód MediaWiki nepodporuje MyISAM vždy tak dobře, jak by měl.\n\nPokud vaše instalace MySQL podporuje InnoDB, důrazně doporučujeme použít spíše to.\nPokud vaše instalace MySQL InnoDB nepodporuje, možná je čas na aktualizaci.",
+ "config-mysql-only-myisam-dep": "<strong>Upozornění:</strong> Jediným dostupným úložištěm dat pro MySQL je MyISAM, který se k užití s MediaWiki nedoporučuje, neboť:\n* téměř nepodporuje paralelní přístup kvůli zamykání tabulek,\n* oproti jiným formátům je náchylnější k poškození,\n* MediaWiki nepodporuje MyISAM tak dobře, jak by bylo třeba.\n\nVaše instalace MySQL nepodporuje InnoDB, možná je na čase upgradovat.",
"config-mysql-engine-help": "'''InnoDB''' je téměř vždy nejlepší volba, neboť má dobrou podporu současného přístupu.\n\n'''MyISAM''' může být rychlejší u instalací pro jednoho uživatele nebo jen pro čtení.\nDatabáze MyISAM bývají poškozeny častěji než databáze InnoDB.",
"config-mysql-charset": "Znaková sada databáze:",
"config-mysql-binary": "Binární",
"config-ctype": "'''Fataler Fehler:''' PHP muss mit Unterstützung für das [http://www.php.net/manual/de/ctype.installation.php Modul ctype] kompiliert werden.",
"config-iconv": "<strong>Fatal:</strong> PHP muss mit Support für die [http://www.php.net/manual/en/iconv.installation.php iconv-Erweiterung] kompiliert werden.",
"config-json": "<strong>Fataler Fehler:</strong> PHP wurde ohne Unterstützung für JSON kompiliert.\nVor der Installation von MediaWiki muss entweder die PHP-JSON- oder die [http://pecl.php.net/package/jsonc PECL-jsonc]-Erweiterung installieren werden.\n* Die PHP-Erweiterung ist in Red Hat Enterprise Linux (CentOS) 5 und 6 enthalten, muss jedoch in <code>/etc/php.ini</code> oder <code>/etc/php.d/json.ini</code> aktiviert werden.\n* Einige Linux-Distributionen, die nach Mai 2013 veröffentlicht wurden, nutzen nicht mehr die PHP-Erweiterung, sondern stattdessen die PECL-Erweiterung als <code>php5-json</code> oder <code>php-pecl-jsonc</code>.",
+ "config-mbstring-absent": "<strong>Fatal:</strong> PHP muss mit Unterstützung für die [http://www.php.net/manual/de/mbstring.setup.php mbstring-Erweiterung] kompiliert werden.",
"config-xcache": "[http://xcache.lighttpd.net/ XCache] ist installiert",
"config-apc": "[http://www.php.net/apc APC] ist installiert",
"config-wincache": "[http://www.iis.net/download/WinCacheForPhp WinCache] ist installiert",
"config-ctype": "<strong>Fatal:</strong> PHP must be compiled with support for the [http://www.php.net/manual/en/ctype.installation.php Ctype extension].",
"config-iconv": "<strong>Fatal:</strong> PHP must be compiled with support for the [http://www.php.net/manual/en/iconv.installation.php iconv extension].",
"config-json": "<strong>Fatal:</strong> PHP was compiled without JSON support.\nYou must install either the PHP JSON extension or the [http://pecl.php.net/package/jsonc PECL jsonc] extension before installing MediaWiki.\n* The PHP extension is included in Red Hat Enterprise Linux (CentOS) 5 and 6, though must be enabled in <code>/etc/php.ini</code> or <code>/etc/php.d/json.ini</code>.\n* Some Linux distributions released after May 2013 omit the PHP extension, instead packaging the PECL extension as <code>php5-json</code> or <code>php-pecl-jsonc</code>.",
+ "config-mbstring-absent": "<strong>Fatal:</strong> PHP must be compiled with support for the [http://www.php.net/manual/en/mbstring.setup.php mbstring extension].",
"config-xcache": "[http://xcache.lighttpd.net/ XCache] is installed",
"config-apc": "[http://www.php.net/apc APC] is installed",
"config-wincache": "[http://www.iis.net/download/WinCacheForPhp WinCache] is installed",
"Danialbehzadi",
"Leyth",
"Huji",
- "Macofe"
+ "Macofe",
+ "درفش کاویانی"
]
},
"config-desc": "نصب کنندهٔ ویکیمدیا",
"config-xcache": "[http://xcache.lighttpd.net/ XCache] نصب شدهاست.",
"config-apc": "[http://www.php.net/apc APC] نصب شدهاست.",
"config-wincache": "[http://www.iis.net/download/WinCacheForPhp WinCache] نصب شدهاست.",
- "config-no-cache": "'''هشدار:''' [http://www.php.net/apc APC],[http://xcache.lighttpd.net/ XCache] یا [http://www.iis.net/download/WinCacheForPhp WinCache] را نتوانست پیدا کند.\nذخیره شی فعال نیست.",
"config-no-cache-apcu": "<strong>هشدار:</strong> پیوند [http://www.php.net/apcu APCu]، [http://xcache.lighttpd.net/ XCache] یا [http://www.iis.net/download/WinCacheForPhp WinCache] یافت نشد. ذخیره شی فعال نیست.",
"config-mod-security": "'''هشدار:''' وب سرور شما [http://modsecurity.org/ mod_security] فعال است.اگر اشتباه پیکربندی شده باشد،می تواند باعث ایجاد مشکلاتی برای مدیاویکی یا دیگر نرمافزاری شود که به کاربران اجازه میدهد پیام دلخواه ارسال کنند.\nبه [http://modsecurity.org/documentation/ mod_security documentation] مراجعه کنید یا اگر با خطاهای اتفاقی مواجه شدید با پشتیبانی میزبان خود در تماس باشید.",
"config-diff3-bad": "جیانیو دیف۳ پیدا نشد.",
"config-help-tooltip": "برای گسترش کلیک کنید",
"config-nofile": "پروندهٔ «$1» یافت نشد. آیا حذف شدهاست؟",
"config-extension-link": "آیا میدانستید که ویکی شما [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Extensions extensions] را پشتیبانی میکند؟\nشما میتوانید [//www.mediawiki.org/wiki/Special:MyLanguage/Category:Extensions_by_category extensions by category]",
- "mainpagetext": "'''Ù\86رÙ\85â\80\8cاÙ\81زار ویکی با موفقیت نصب شد.'''",
+ "mainpagetext": "'''Ù\85دÛ\8cاویکی با موفقیت نصب شد.'''",
"mainpagedocfooter": "از [//meta.wikimedia.org/wiki/Help:Contents راهنمای کاربران]\nبرای استفاده از نرمافزار ویکی کمک بگیرید.\n\n== آغاز به کار ==\n\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings تنظیم پیکربندی]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki پرسشهای متداول]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce فهرست ارسال نسخههای مدیاویکی]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Localise مدیاویکی برای زبان شما]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam آموزش مقابله به هرزنگاری در ویکی شما]"
}
"config-ctype": "'''Fatal ''': PHP doit être compilé avec le support pour l'[http://www.php.net/manual/en/ctype.installation.php extension Ctype].",
"config-iconv": "<strong>Erreur critique :</strong> PHP doit être compilé avec le support de l’[http://www.php.net/manual/en/iconv.installation.php extension iconv].",
"config-json": "'''Erreur fatale :''' PHP a été compilé sans le support de JSON.\nVous devez soit installez l’extension JSON de PHP ou l’extension [http://pecl.php.net/package/jsonc PECL jsonc] avant d’installer MediaWiki.\n* L’extension PHP est comprise dans Red Hat Enterprise Linux (CentOS) 5 et 6, mais doit être activée dans <code>/etc/php.ini</code> ou <code>/etc/php.d/json.ini</code>.\n* Certaines distributions Linux après mai 2013 ne comprennent pas l’extension PHP, mais ont mis à la place l’extension PECL sous la forme <code>php5-json</code> ou <code>php-pecl-jsonc</code>.",
+ "config-mbstring-absent": "<strong>Fatal :</strong> PHP doit être compilé avec la prise en charge de [http://www.php.net/manual/en/mbstring.setup.php l’extension mbstring].",
"config-xcache": "[http://xcache.lighttpd.net/ XCache] est installé",
"config-apc": "[http://www.php.net/apc APC] est installé",
"config-wincache": "[http://www.iis.net/download/WinCacheForPhp WinCache] est installé",
"config-ctype": "<strong>Erro fatal:</strong> O PHP debe compilarse co soporte para a [http://www.php.net/manual/en/ctype.installation.php extensión Ctype].",
"config-iconv": "<strong>Erro fatal:</strong> O PHP debe compilarse co soporte para a [http://www.php.net/manual/en/iconv.installation.php extensión iconv].",
"config-json": "<strong>Erro fatal:</strong> O PHP compilouse sen o soporte de JSON.\nDebe instalar ben a extensión JSON do PHP ou a extensión [http://pecl.php.net/package/jsonc PECL jsonc] antes de instalar MediaWiki.\n* A extensión do PHP está incluída en Red Hat Enterprise Linux (CentOS) 5 e 6, mais debe activarse <code>/etc/php.ini</code> ou <code>/etc/php.d/json.ini</code>.\n* Algunhas distribucións do Linux lanzadas despois de maio de 2013 omiten a extensión do PHP, pero inclúen a extensión PECL como <code>php5-json</code> ou <code>php-pecl-jsonc</code>.",
+ "config-mbstring-absent": "<strong>Erro fatal:</strong> O PHP debe compilarse co soporte para a [http://www.php.net/manual/en/mbstring.setup.php extensión mbstring].",
"config-xcache": "[http://xcache.lighttpd.net/ XCache] está instalado",
"config-apc": "[http://www.php.net/apc APC] está instalado",
"config-wincache": "[http://www.iis.net/download/WinCacheForPhp WinCache] está instalado",
"config-pcre-no-utf8": "'''Errore''': Il modulo PCRE di PHP sembra essere stato compilato senza il supporto PCRE_UTF8, ma MediaWiki lo richiede per funzionare correttamente.",
"config-memory-raised": "Il valore <code>memory_limit</code> di PHP è $1, aumentato a $2.",
"config-memory-bad": "''Attenzione:''' Il valore di <code>memory_limit</code> di PHP è $1.\nProbabilmente è troppo basso.\nL'installazione potrebbe non riuscire!",
- "config-ctype": "'''Errore''': PHP deve essere compilato con il supporto per l'[http://www.php.net/manual/it/ctype.installation.php estensione Ctype].",
+ "config-ctype": "<strong>Fatale:</strong> PHP deve essere compilato con il supporto per l'[http://www.php.net/manual/it/ctype.installation.php estensione Ctype].",
"config-iconv": "<strong>Fatale:</strong> PHP deve essere compilato con il supporto per l'[http://www.php.net/manual/en/iconv.installation.php estensione iconv].",
"config-json": "'''Errore:''' PHP è stato compilato senza il supporto per JSON. E' necessario installare l'estensione PHP per JSON o l'estensione [http://pecl.php.net/package/jsonc PECL jsonc] prima di installare MediaWiki.\n* L'estensione PHP è inclusa in Red Hat Enterprise Linux (CentOS) 5 e 6, ma deve essere abilitata in <code>/etc/php.ini</code> o <code>/etc/php.d/json.ini</code>.\n* Alcune distribuzioni di Linux pubblicate dopo il maggio 2013 omettono l'estensione PHP, e al posto utilizzano l'estensione PECL come <code>php5-json</code> o <code>php-pecl-jsonc</code>",
+ "config-mbstring-absent": "<strong>Fatale:</strong> PHP deve essere compilato con il supporto per l'[http://www.php.net/manual/en/mbstring.setup.php estensione mbstring].",
"config-xcache": "[http://xcache.lighttpd.net/ XCache] è installato",
"config-apc": "[http://www.php.net/apc APC] è installato",
"config-wincache": "[http://www.iis.net/download/WinCacheForPhp WinCache] è installato",
"config-restart": "Jā, restartēt",
"config-env-php": "PHP $1 ir uzstādīts.",
"config-diff3-bad": "GNU diff3 nav atrasts.",
+ "config-db-name": "Datubāzes nosaukums:",
"config-db-username": "Datubāzes lietotājvārds:",
"config-db-password": "Datubāzes parole:",
"config-db-charset": "Datubāzes rakstzīmju kopa",
"config-header-mssql": "Microsoft SQL servera iestatījumi",
"config-mysql-innodb": "InnoDB",
"config-mysql-myisam": "MyISAM",
+ "config-mysql-utf8": "UTF-8",
+ "config-ns-generic": "Projekts",
+ "config-ns-site-name": "Tāds pats kā viki nosaukums: $1",
+ "config-ns-other": "Cits (jānorāda)",
+ "config-ns-other-default": "MansViki",
+ "config-admin-box": "Administratora konts",
"config-admin-name": "Tavs lietotājvārds:",
"config-admin-password": "Parole:",
"config-admin-password-confirm": "Parole vēlreiz:",
"config-admin-name-blank": "Ievadiet administratora lietotājvārdu.",
"config-admin-email": "E-pasta adrese:",
+ "config-logo": "Logo URL:",
"config-cc-again": "Izvēlies vēlreiz...",
+ "config-extensions": "Paplašinājumi",
"config-install-step-done": "Gatavs",
"config-help": "palīdzība",
"config-help-tooltip": "uzspiediet, lai izvērstu",
- "mainpagetext": "'''MediaWiki veiksmīgi ieinstalēts'''",
+ "mainpagetext": "<strong>MediaWiki veiksmīgi instalēts.</strong>",
"mainpagedocfooter": "Izlasi [//meta.wikimedia.org/wiki/Help:Contents Lietotāja pamācību], lai iegūtu vairāk informācijas par Wiki programmatūras lietošanu.\n\n== Pirmie soļi ==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Konfigurācijas iespēju saraksts]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki J&A]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Parakstīties uz paziņojumiem par jaunām MediaWiki versijām]"
}
"config-no-db": "Не можев да најдам соодветен двигател за базата на податоци! Ќе треба да воспоставите двигател за PHP-база.\n{{PLURAL:$2|Поддржан се следниов вид|Поддржани се следниве видови}} бази: $1.\n\nДоколку самите го срочивте овој PHP, овозможете го базниот клиент во поставките — на пр. со <code>./configure --with-mysqli</code>.\nАко овој PHP го воспоставите од пакет на Debian или Ubuntu, тогаш ќе треба исто така да го воспоставите, на пр., пакетот <code>php5-mysql</code>.",
"config-outdated-sqlite": "'''Предупредување''': имате SQLite $1. Најстарата допуштена верзија е $2. Затоа, SQLite ќе биде недостапен.",
"config-no-fts3": "'''Предупредување''': SQLite iе составен без модулот [//sqlite.org/fts3.html FTS3] - за оваа база нема да има можност за пребарување.",
- "config-register-globals-error": "<strong>Грешка: Вклучена е можноста <code>[http://php.net/register_globals register_globals]</code> за PHP.\nМора да се исклучи за да продолжите со воспоставката.</strong>\nКако да го направите тоа можете да прочитате на [https://www.mediawiki.org/wiki/register_globals https://www.mediawiki.org/wiki/register_globals].",
- "config-magic-quotes-gpc": "<strong>Кобно: [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-gpc magic_quotes_gpc] е ективно!</strong>\nОваа можност непредвидливо го расипува вносот на податоци.\nОваа можност мора да е исклучена. Во спротивно нема да можете да го воспоставите и користите МедијаВики.",
- "config-magic-quotes-runtime": "'''Кобно: [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-runtime magic_quotes_runtime] е активно!'''\nОваа можност непредвидливо го расипува вносот на податоци.\nОваа можност мора да е исклучена. Во спротивно нема да можете да го воспоставите и користите МедијаВики.",
- "config-magic-quotes-sybase": "'''Кобно: [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-sybase magic_quotes_sybase] е активно!'''\nОваа можност непредвидливо го расипува вносот на податоци.\nОваа можност мора да е исклучена. Во спротивно нема да можете да го воспоставите и користите МедијаВики.",
"config-mbstring": "'''Кобно: [http://www.php.net/manual/en/ref.mbstring.php#mbstring.overload mbstring.func_overload] е активно!'''\nОваа можност предизвикува грешки и може непредвидиво да го расипува вносот на податоци.\nОваа можност мора да е исклучена. Во спротивно нема да можете да го воспоставите и користите МедијаВики.",
- "config-safe-mode": "'''Предупредување:''' [http://www.php.net/features.safe-mode безбедниот режим] на PHP е активен.\nОва може да предизвика проблеми, особено ако користите подигања и поддршка за <code>math</code>.",
"config-xml-bad": "XML-модулот за PHP недостасува.\nМедијаВики има потреба од функции во овој модул и нема да работи со овие поставки.\nМоже да треба да го воспоставите RPM-пакетот „php-xml“.",
"config-pcre-old": "'''Кобно:''' Се бара PCRE $1 или понова верзија.\nВашиот PHP-бинарен е сврзан со PCRE $2.\n[https://www.mediawiki.org/wiki/Manual:Errors_and_symptoms/PCRE Повеќе информации].",
- "config-pcre-no-utf8": "'''Фатално''': PCRE-модулот на PHP е составен без поддршка за PCRE_UTF8.\nМедијаВики бара поддршка за UTF-8 за да може да работи правилно.",
+ "config-pcre-no-utf8": "<strong>Кобно</strong>: PCRE-модулот на PHP е срочен без поддршка за PCRE_UTF8.\nМедијаВики бара поддршка за UTF-8 за да може да работи правилно.",
"config-memory-raised": "<code>memory_limit</code> за PHP изнесува $1, зголемен на $2.",
"config-memory-bad": "'''Предупредување:''' <code>memory_limit</code> за PHP изнесува $1.\nОва е веројатно премалку.\nВоспоставката може да не успее!",
- "config-ctype": "'''Фатална грешка''': PHP мора да се состави со поддршка за [http://www.php.net/manual/en/ctype.installation.php додатокот Ctype].",
+ "config-ctype": "<strong>Кобно:</strong> PHP мора да се срочи со поддршка за додатокот [http://www.php.net/manual/en/ctype.installation.php Ctype].",
"config-iconv": "<strong>Кобно:</strong> PHP мора да се срочува со поддршка за [http://www.php.net/manual/en/iconv.installation.php додатокот iconv].",
"config-json": "'''Кобно:''' PHP беше срочен без поддршка од JSON.\nЌе мора да го воспоставите додатокот за JSON во PHP, или додатокот [http://pecl.php.net/package/jsonc PECL jsonc] пред да го воспоставите МедијаВики.\n* Додатокот за PHP е вклучен во верзиите 5 и 6 на Linux (од Red Hat Enterprise) (CentOS), но мора да се активира во <code>/etc/php.ini</code> или <code>/etc/php.d/json.ini</code>.\n* Некои варијанти на Linux излезени по мај 2013 г. не го содржат додатокот за PHP, туку го пакуваат додатокот PECL како <code>php5-json</code> или <code>php-pecl-jsonc</code>.",
+ "config-mbstring-absent": "<strong>Кобно:</strong> PHP мора да се срочува со поддршка за додатокот [http://www.php.net/manual/en/mbstring.setup.php mbstring].",
"config-xcache": "[http://xcache.lighttpd.net/ XCache] е воспоставен",
"config-apc": "[http://www.php.net/apc APC] е воспоставен",
"config-wincache": "[http://www.iis.net/download/WinCacheForPhp WinCache] е воспоставен",
- "config-no-cache": "<strong>Предупредување:</strong> Не можев да го најдам [http://www.php.net/apc APC], [http://xcache.lighttpd.net/ XCache] или [http://www.iis.net/download/WinCacheForPhp WinCache].\nМеѓускладирањето на објекти не е овозможено.",
"config-no-cache-apcu": "<strong>Предупредување:</strong> Не можев да го најдам [http://www.php.net/apcu APCu], [http://xcache.lighttpd.net/ XCache] или [http://www.iis.net/download/WinCacheForPhp WinCache].\nМеѓускладирањето на објекти не е овозможено",
"config-mod-security": "'''Предупредување''': на вашиот опслужувач има овозможено [http://modsecurity.org/ mod_security]. Ако не е поставено како што треба, ова може да предизвика проблеми кај МедијаВики и други програми што им овозможуваат на корисниците да објавуваат произволни содржини.\nПогледнете ја [http://modsecurity.org/documentation/ mod_security документацијата] или обратете се кај домаќинот ако наидете на случајни грешки.",
"config-diff3-bad": "GNU diff3 не е пронајден.",
"config-install-mainpage": "Создавам главна страница со стандардна содржина",
"config-install-extension-tables": "Изработка на табели за овозможени додатоци",
"config-install-mainpage-failed": "Не можев да вметнам главна страница: $1",
- "config-install-done": "'''Честитаме!'''\nУспешно го воспоставивте МедијаВики.\n\nВоспоставувачот создаде податотека <code>LocalSettings.php</code>.\nТаму се содржат сите ваши нагодувања.\n\nЌе треба да ја преземете и да ја ставите во основата на воспоставката (истата папка во која се наоѓа index.php). Преземањето треба да е започнато автоматски.\n\nАко не ви е понудено преземање, или пак ако сте го откажале, можете да го почнете одново стискајќи на следнава врска:\n\n$3\n\n'''Напомена''': Ако ова не го направите сега, податотеката со поставки повеќе нема да биде на достапна.\n\nОткога ќе завршите со тоа, можете да '''[$2 влезете на вашето вики]'''.",
+ "config-install-done": "<strong>Честитаме!</strong>\nУспешно го воспоставивте МедијаВики.\n\nВоспоставувачот создаде податотека <code>LocalSettings.php</code>.\nТаму се содржат сите ваши нагодувања.\n\nЌе треба да ја преземете и да ја ставите во основата на воспоставката (истата папка во која се наоѓа index.php). Преземањето треба да е започнато автоматски.\n\nАко не ви е понудено преземање, или пак ако сте го откажале, можете да го почнете одново стискајќи на следнава врска:\n\n$3\n\n<strong>Напомена</strong>: Ако ова не го направите сега, податотеката со поставки повеќе нема да биде на достапна.\n\nОткога ќе завршите со тоа, можете да <strong>[$2 влезете на вашето вики]</strong>.",
"config-download-localsettings": "Преземи го <code>LocalSettings.php</code>",
"config-help": "помош",
"config-help-tooltip": "стиснете да расклопите",
"config-nofile": "Податотеката „$1“ не е пронајдена. Да не е избришана?",
"config-extension-link": "Дали сте знаеле дека вашето вики поддржува [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Extensions додатоци]?\n\nМожете да ги прелистате [//www.mediawiki.org/wiki/Special:MyLanguage/Category:Extensions_by_category по категории]",
- "mainpagetext": "'''МедијаВики е успешно воспоставен.'''",
+ "mainpagetext": "<strong>МедијаВики е успешно воспоставен.</strong>",
"mainpagedocfooter": "Погледнете го [//meta.wikimedia.org/wiki/Help:Contents Упатството за корисници] за подетални иформации како се користи вики-програмот.\n\n==Од каде да почнете==\n* [//meta.wikimedia.org/wiki/Manual:Configuration_settings Список на нагодувања]\n* [//meta.wikimedia.org/wiki/Manual:FAQ ЧПП (често поставувани прашања) за МедијаВики].\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Поштенски список на МедијаВики за нови верзии]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Локализирајте го МедијаВики на вашиот јазик]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Дознајте како да се борите против спам на вашето вики]"
}
"config-ctype": "Message if support for [http://www.php.net/manual/en/ctype.installation.php Ctype] is missing from PHP.\n{{Related|Config-fatal}}",
"config-iconv": "Message if support for [http://www.php.net/manual/en/iconv.installation.php iconv] is missing from PHP.\n{{Related|Config-fatal}}",
"config-json": "Message if support for [[wikipedia:JSON|JSON]] is missing from PHP.\n* \"[[wikipedia:Red Hat Enterprise Linux|Red Hat Enterprise Linux]]\" (RHEL) and \"[[wikipedia:CentOS|CentOS]]\" refer to two almost-identical Linux distributions. \"5 and 6\" refers to version 5 or 6 of either distribution. Because RHEL 7 likely will not include the PHP extension, do not translate as \"5 or newer\".\n* \"The [http://www.php.net/json PHP extension]\" is the JSON extension included with PHP 5.2 and newer.\n* \"The [http://pecl.php.net/package/jsonc PECL extension]\" is based on the PHP extension, though excludes code some distributions have found unacceptable (see [[phab:T49431]]).\n{{Related|Config-fatal}}",
+ "config-mbstring-absent": "Message if support for [http://www.php.net/manual/en/mbstring.installation.php mbstring] is missing from PHP.\n{{Related|Config-fatal}}",
"config-xcache": "Message indicates if this program is available",
"config-apc": "Message indicates if this program is available",
"config-wincache": "Message indicates if this program is available",
"config-ctype": "'''Помилка''': PHP має бути зібраним з підтримкою [http://www.php.net/manual/en/ctype.installation.php розширення Ctype].",
"config-iconv": "'''Фатальна помилка''': PHP має бути зібраним з підтримкою [http://www.php.net/manual/en/iconv.installation.php розширення iconv].",
"config-json": "'''Fatal:''' PHP був скомпільований без підтримки JSON.\nВам потрібно встановити або розширення PHP JSON або розширення[http://pecl.php.net/package/jsonc PECL jsonc] перед встановлення Медіавікі.\n* Розширення PHP включено у Red Hat Enterprise Linux (CentOS) 5 та 6, хоча має бути доступним у <code>/etc/php.ini</code> або <code>/etc/php.d/json.ini</code>.\n* Деякі дистрибутиви Лінукса, випущені після травня 2013, пропустили розширення PHP, натомість упакували розширення PECL як <code>php5-json</code> або <code>php-pecl-jsonc</code>.",
+ "config-mbstring-absent": "<strong>Фатальна помилка:</strong> PHP має бути скомпільовано з підтримкою [http://www.php.net/manual/en/mbstring.setup.php розширення mbstring].",
"config-xcache": "[http://xcache.lighttpd.net/ XCache] встановлено",
"config-apc": "[http://www.php.net/apc APC] встановлено",
"config-wincache": "[http://www.iis.net/download/WinCacheForPhp WinCache] встановлено",
"config-ctype": "<strong>致命错误:</strong>PHP必须有[http://www.php.net/manual/en/ctype.installation.php Ctype 扩展]来支持编译。",
"config-iconv": "<strong>致命错误:</strong>PHP必须编译支持[http://www.php.net/manual/en/iconv.installation.php iconv拓展]。",
"config-json": "<strong>致命错误:</strong>PHP编译没有附带JSON支持。\n在安装MediaWiki前,你必须安装PHP JSON扩展或者[http://pecl.php.net/package/jsonc PECL jsonc]扩展。\n* PHP扩展已包含在Red Hat Enterprise Linux (CentOS) 5和6中,但必须在<code>/etc/php.ini</code>或<code>/etc/php.d/json.ini</code>中启用。\n* 部分在2013年5月后发行的Linux发行版省略了PHP扩展,而将PECL扩展打包成了<code>php5-json</code>或<code>php-pecl-jsonc</code>。",
+ "config-mbstring-absent": "<strong>致命错误:</strong>PHP必须有[http://www.php.net/manual/en/mbstring.setup.php mbstring扩展]来支持编译。",
"config-xcache": "[http://xcache.lighttpd.net/ XCache]已安装",
"config-apc": "[http://www.php.net/apc APC]已安装",
"config-wincache": "[http://www.iis.net/download/WinCacheForPhp WinCache]已安装",
* The function check for invalid byte sequences, overlong encoding but
* not for different normalisations.
*
- * This relies internally on the mbstring function mb_check_encoding()
- * hardcoded to check against UTF-8. Whenever the function is not available
- * we fallback to a pure PHP implementation. Setting $disableMbstring to
- * true will skip the use of mb_check_encoding, this is mostly intended for
- * unit testing our internal implementation.
- *
* @note In MediaWiki 1.21, this function did not provide proper UTF-8 validation.
* In particular, the pure PHP code path did not in fact check for overlong forms.
* Beware of this when backporting code to that version of MediaWiki.
*
* @since 1.21
* @param string $value String to check
- * @param bool $disableMbstring Whether to use the pure PHP
- * implementation instead of trying mb_check_encoding. Intended for unit
- * testing. Default: false
* @return bool Whether the given $value is a valid UTF-8 encoded string
*/
- static function isUtf8( $value, $disableMbstring = false ) {
+ static function isUtf8( $value ) {
$value = (string)$value;
- // If the mbstring extension is loaded, use it. However, before PHP 5.4, values above
- // U+10FFFF are incorrectly allowed, so we have to check for them separately.
- if ( !$disableMbstring && function_exists( 'mb_check_encoding' ) ) {
- static $newPHP;
- if ( $newPHP === null ) {
- $newPHP = !mb_check_encoding( "\xf4\x90\x80\x80", 'UTF-8' );
- }
-
- return mb_check_encoding( $value, 'UTF-8' ) &&
- ( $newPHP || preg_match( "/\xf4[\x90-\xbf]|[\xf5-\xff]/S", $value ) === 0 );
- }
-
- if ( preg_match( "/[\x80-\xff]/S", $value ) === 0 ) {
- // String contains only ASCII characters, has to be valid
- return true;
- }
-
- // PCRE implements repetition using recursion; to avoid a stack overflow (and segfault)
- // for large input, we check for invalid sequences (<= 5 bytes) rather than valid
- // sequences, which can be as long as the input string is. Multiple short regexes are
- // used rather than a single long regex for performance.
- static $regexes;
- if ( $regexes === null ) {
- $cont = "[\x80-\xbf]";
- $after = "(?!$cont)"; // "(?:[^\x80-\xbf]|$)" would work here
- $regexes = [
- // Continuation byte at the start
- "/^$cont/",
-
- // ASCII byte followed by a continuation byte
- "/[\\x00-\x7f]$cont/S",
-
- // Illegal byte
- "/[\xc0\xc1\xf5-\xff]/S",
-
- // Invalid 2-byte sequence, or valid one then an extra continuation byte
- "/[\xc2-\xdf](?!$cont$after)/S",
-
- // Invalid 3-byte sequence, or valid one then an extra continuation byte
- "/\xe0(?![\xa0-\xbf]$cont$after)/",
- "/[\xe1-\xec\xee\xef](?!$cont{2}$after)/S",
- "/\xed(?![\x80-\x9f]$cont$after)/",
-
- // Invalid 4-byte sequence, or valid one then an extra continuation byte
- "/\xf0(?![\x90-\xbf]$cont{2}$after)/",
- "/[\xf1-\xf3](?!$cont{3}$after)/S",
- "/\xf4(?![\x80-\x8f]$cont{2}$after)/",
- ];
- }
-
- foreach ( $regexes as $regex ) {
- if ( preg_match( $regex, $value ) !== 0 ) {
- return false;
- }
+ // Before PHP 5.4, values above U+10FFFF are incorrectly allowed, so we have to
+ // check for them separately.
+ static $newPHP;
+ if ( $newPHP === null ) {
+ $newPHP = !mb_check_encoding( "\xf4\x90\x80\x80", 'UTF-8' );
}
- return true;
+ return mb_check_encoding( $value, 'UTF-8' ) &&
+ ( $newPHP || preg_match( "/\xf4[\x90-\xbf]|[\xf5-\xff]/S", $value ) === 0 );
}
/**
/** @var int ID of the log entry */
protected $id;
+ /** @var Can this log entry be patrolled? */
+ protected $isPatrollable = false;
+
/** @var bool Whether this is a legacy log entry */
protected $legacy = false;
$this->tags = $tags;
}
+ /**
+ * Set whether this log entry should be made patrollable
+ * This shouldn't depend on config, only on whether there is full support
+ * in the software for patrolling this log entry.
+ * False by default
+ *
+ * @since 1.27
+ * @param bool $patrollable
+ */
+ public function setIsPatrollable( $patrollable ) {
+ $this->isPatrollable = (bool)$patrollable;
+ }
+
/**
* Set the 'legacy' flag
*
LogEntryBase::makeParamBlob( $this->getParameters() ),
$newId,
$formatter->getIRCActionComment(), // Used for IRC feeds
- $this->getAssociatedRevId() // Used for e.g. moves and uploads
+ $this->getAssociatedRevId(), // Used for e.g. moves and uploads
+ $this->getIsPatrollable()
);
}
$rc->notifyRCFeeds();
}
- // Log the autopatrol if an associated rev id was passed
- if ( $this->getAssociatedRevId() > 0 &&
+ // Log the autopatrol if the log entry is patrollable
+ if ( $this->getIsPatrollable() &&
$rc->getAttribute( 'rc_patrolled' ) === 1 ) {
PatrolLog::record( $rc, true, $this->getPerformer() );
}
return $this->tags;
}
+ /**
+ * Whether this log entry is patrollable
+ *
+ * @since 1.27
+ * @return bool
+ */
+ public function getIsPatrollable() {
+ return $this->isPatrollable;
+ }
+
/**
* @since 1.25
* @return bool
/** @var string */
private $typeCGI = '';
+ /** @var string */
+ private $action = '';
+
/** @var LogEventsList */
public $mLogEventsList;
* @param int|bool $year The year to start from. Default: false
* @param int|bool $month The month to start from. Default: false
* @param string $tagFilter Tag
+ * @param string $action Specific action (subtype) requested
*/
- public function __construct( $list, $types = [], $performer = '', $title = '', $pattern = '',
- $conds = [], $year = false, $month = false, $tagFilter = '' ) {
+ public function __construct( $list, $types = [], $performer = '', $title = '',
+ $pattern = '', $conds = [], $year = false, $month = false, $tagFilter = '',
+ $action = ''
+ ) {
parent::__construct( $list->getContext() );
$this->mConds = $conds;
$this->limitType( $types ); // also excludes hidden types
$this->limitPerformer( $performer );
$this->limitTitle( $title, $pattern );
+ $this->limitAction( $action );
$this->getDateCond( $year, $month );
$this->mTagFilter = $tagFilter;
}
}
+ /**
+ * Set the log_action field to a specified value (or values)
+ *
+ * @param string $action
+ */
+ private function limitAction( $action ) {
+ global $wgActionFilteredLogs;
+ // Allow to filter the log by actions
+ $type = $this->typeCGI;
+ if ( $type === '' ) {
+ // nothing to do
+ return;
+ }
+ $actions = $wgActionFilteredLogs;
+ if ( isset( $actions[$type] ) ) {
+ // log type can be filtered by actions
+ $this->mLogEventsList->setAllowedActions( array_keys( $actions[$type] ) );
+ if ( $action !== '' && isset( $actions[$type][$action] ) ) {
+ // add condition to query
+ $this->mConds['log_action'] = $actions[$type][$action];
+ $this->action = $action;
+ }
+ }
+ }
+
/**
* Constructs the most part of the query. Extra conditions are sprinkled in
* all over this class.
return $this->mTagFilter;
}
+ public function getAction() {
+ return $this->action;
+ }
+
public function doQuery() {
// Workaround MySQL optimizer bug
$this->mDb->setBigSelects();
foreach ( $info['defines'] as $name => $val ) {
define( $name, $val );
}
- foreach ( $info['callbacks'] as $cb ) {
- call_user_func( $cb );
- }
-
foreach ( $info['autoloaderPaths'] as $path ) {
require_once $path;
}
+ foreach ( $info['callbacks'] as $cb ) {
+ call_user_func( $cb );
+ }
$this->loaded += $info['credits'];
if ( $info['attributes'] ) {
* Wrap the body text with language information and identifiable element
*
* @param Title $title
+ * @param string $html body text
* @return string html
*/
protected function wrapHTML( $title, $html ) {
LogEventsList::USE_CHECKBOXES
);
- $action = '';
- // Allow to filter the log by actions
- $type = $opts->getValue( 'type' );
- if ( $type !== '' ) {
- $actions = $this->getConfig()->get( 'ActionFilteredLogs' );
- if ( isset( $actions[$type] ) ) {
- // log type can be filtered by actions
- $loglist->setAllowedActions( array_keys( $actions[$type] ) );
- $action = $opts->getValue( 'subtype' );
- if ( $action !== '' && isset( $actions[$type][$action] ) ) {
- // add condition to query
- $extraConds['log_action'] = $actions[$type][$action];
- } else {
- // no action or invalid action
- $action = '';
- }
- }
- }
-
$pager = new LogPager(
$loglist,
$opts->getValue( 'type' ),
$extraConds,
$opts->getValue( 'year' ),
$opts->getValue( 'month' ),
- $opts->getValue( 'tagfilter' )
+ $opts->getValue( 'tagfilter' ),
+ $opts->getValue( 'subtype' )
);
$this->addHeader( $opts->getValue( 'type' ) );
# Show form options
$loglist->showOptions(
$pager->getType(),
- $opts->getValue( 'user' ),
+ $pager->getPerformer(),
$pager->getPage(),
$pager->getPattern(),
$pager->getYear(),
$pager->getMonth(),
$pager->getFilterParams(),
- $opts->getValue( 'tagfilter' ),
- $action
+ $pager->getTagFilter(),
+ $pager->getAction()
);
# Insert list
return str_replace( '\\', '/', $path );
}
}
+
+/**
+ * Reads PHP code and returns the FQCN of every class defined within it.
+ */
+class ClassCollector {
+
+ /**
+ * @var string Current namespace
+ */
+ protected $namespace = '';
+
+ /**
+ * @var array List of FQCN detected in this pass
+ */
+ protected $classes;
+
+ /**
+ * @var array Token from token_get_all() that started an expect sequence
+ */
+ protected $startToken;
+
+ /**
+ * @var array List of tokens that are members of the current expect sequence
+ */
+ protected $tokens;
+
+ /**
+ * @var string $code PHP code (including <?php) to detect class names from
+ * @return array List of FQCN detected within the tokens
+ */
+ public function getClasses( $code ) {
+ $this->namespace = '';
+ $this->classes = [];
+ $this->startToken = null;
+ $this->tokens = [];
+
+ foreach ( token_get_all( $code ) as $token ) {
+ if ( $this->startToken === null ) {
+ $this->tryBeginExpect( $token );
+ } else {
+ $this->tryEndExpect( $token );
+ }
+ }
+
+ return $this->classes;
+ }
+
+ /**
+ * Determine if $token begins the next expect sequence.
+ *
+ * @param array $token
+ */
+ protected function tryBeginExpect( $token ) {
+ if ( is_string( $token ) ) {
+ return;
+ }
+ switch ( $token[0] ) {
+ case T_NAMESPACE:
+ case T_CLASS:
+ case T_INTERFACE:
+ case T_TRAIT:
+ case T_DOUBLE_COLON:
+ $this->startToken = $token;
+ }
+ }
+
+ /**
+ * Accepts the next token in an expect sequence
+ *
+ * @param array
+ */
+ protected function tryEndExpect( $token ) {
+ switch ( $this->startToken[0] ) {
+ case T_DOUBLE_COLON:
+ // Skip over T_CLASS after T_DOUBLE_COLON because this is something like
+ // "self::static" which accesses the class name. It doens't define a new class.
+ $this->startToken = null;
+ break;
+ case T_NAMESPACE:
+ if ( $token === ';' || $token === '{' ) {
+ $this->namespace = $this->implodeTokens() . '\\';
+ } else {
+ $this->tokens[] = $token;
+ }
+ break;
+
+ case T_CLASS:
+ case T_INTERFACE:
+ case T_TRAIT:
+ $this->tokens[] = $token;
+ if ( is_array( $token ) && $token[0] === T_STRING ) {
+ $this->classes[] = $this->namespace . $this->implodeTokens();
+ }
+ }
+ }
+
+ /**
+ * Returns the string representation of the tokens within the
+ * current expect sequence and resets the sequence.
+ *
+ * @return string
+ */
+ protected function implodeTokens() {
+ $content = [];
+ foreach ( $this->tokens as $token ) {
+ $content[] = is_string( $token ) ? $token : $token[1];
+ }
+
+ $this->tokens = [];
+ $this->startToken = null;
+
+ return trim( implode( '', $content ), " \n\t" );
+ }
+}
+++ /dev/null
-<?php
-
-/**
- * Reads PHP code and returns the FQCN of every class defined within it.
- */
-class ClassCollector {
-
- /**
- * @var string Current namespace
- */
- protected $namespace = '';
-
- /**
- * @var array List of FQCN detected in this pass
- */
- protected $classes;
-
- /**
- * @var array Token from token_get_all() that started an expect sequence
- */
- protected $startToken;
-
- /**
- * @var array List of tokens that are members of the current expect sequence
- */
- protected $tokens;
-
- /**
- * @var string $code PHP code (including <?php) to detect class names from
- * @return array List of FQCN detected within the tokens
- */
- public function getClasses( $code ) {
- $this->namespace = '';
- $this->classes = [];
- $this->startToken = null;
- $this->tokens = [];
-
- foreach ( token_get_all( $code ) as $token ) {
- if ( $this->startToken === null ) {
- $this->tryBeginExpect( $token );
- } else {
- $this->tryEndExpect( $token );
- }
- }
-
- return $this->classes;
- }
-
- /**
- * Determine if $token begins the next expect sequence.
- *
- * @param array $token
- */
- protected function tryBeginExpect( $token ) {
- if ( is_string( $token ) ) {
- return;
- }
- switch ( $token[0] ) {
- case T_NAMESPACE:
- case T_CLASS:
- case T_INTERFACE:
- case T_TRAIT:
- case T_DOUBLE_COLON:
- $this->startToken = $token;
- }
- }
-
- /**
- * Accepts the next token in an expect sequence
- *
- * @param array
- */
- protected function tryEndExpect( $token ) {
- switch ( $this->startToken[0] ) {
- case T_DOUBLE_COLON:
- // Skip over T_CLASS after T_DOUBLE_COLON because this is something like
- // "self::static" which accesses the class name. It doens't define a new class.
- $this->startToken = null;
- break;
- case T_NAMESPACE:
- if ( $token === ';' || $token === '{' ) {
- $this->namespace = $this->implodeTokens() . '\\';
- } else {
- $this->tokens[] = $token;
- }
- break;
-
- case T_CLASS:
- case T_INTERFACE:
- case T_TRAIT:
- $this->tokens[] = $token;
- if ( is_array( $token ) && $token[0] === T_STRING ) {
- $this->classes[] = $this->namespace . $this->implodeTokens();
- }
- }
- }
-
- /**
- * Returns the string representation of the tokens within the
- * current expect sequence and resets the sequence.
- *
- * @return string
- */
- protected function implodeTokens() {
- $content = [];
- foreach ( $this->tokens as $token ) {
- $content[] = is_string( $token ) ? $token : $token[1];
- }
-
- $this->tokens = [];
- $this->startToken = null;
-
- return trim( implode( '', $content ), " \n\t" );
- }
-}
"apisandbox-reset": "Ачысьціць",
"apisandbox-retry": "Паўтарыць",
"apisandbox-loading": "Загрузка інфармацыі для API-модуля «$1»…",
+ "apisandbox-load-error": "Пры загрузцы інфармацыі для API-модуля «$1» адбылася памылка: $2",
"apisandbox-examples": "Прыклады",
"apisandbox-results": "Вынікі",
"apisandbox-request-url-label": "URL-адрас запыту:",
"upload-form-label-infoform-name": "Назва",
"upload-form-label-infoform-name-tooltip": "Унікальны апісальны загаловак для файла, які будзе служыць яго назвай. Можаце выкарыстоўваць звычайную мову з прабеламі. Не дадавайце канчатак назвы файла.",
"upload-form-label-infoform-description": "Апісанне",
+ "upload-form-label-infoform-description-tooltip": "Коратка апішыце ўсё значнае пра гэту працу.\nДля фатаграфіі ўкажыце галоўныя аб'екты, нагоду або месца.",
"upload-form-label-usage-title": "Выкарыстанне",
"upload-form-label-usage-filename": "Назва файла",
"foreign-structured-upload-form-label-own-work": "Гэта мая ўласная праца",
"foreign-structured-upload-form-label-infoform-categories": "Катэгорыі",
"foreign-structured-upload-form-label-infoform-date": "Дата",
"foreign-structured-upload-form-label-own-work-message-local": "Я пацвярджаю, што ўкладваю гэты файл згодна з правіламі і ліцэнзійнай палітыкай {{GRAMMAR:родны|{{SITENAME}}}}.",
+ "foreign-structured-upload-form-label-not-own-work-message-local": "Калі вы не можаце ўкладваць гэты файл згодна з правіламі пляцоўкі {{SITENAME}}, калі ласка, закрыйце гэта акно і паспрабуйце іншы метад.",
+ "foreign-structured-upload-form-label-not-own-work-local-local": "Вы таксама можаце паспрабаваць [[Special:Upload|прадвызначаную старонку ўкладвання]].",
+ "foreign-structured-upload-form-label-own-work-message-default": "Я разумею, што ўкладваю гэты файл у агульнае сховішча. Я пацвярджаю, што раблю гэта ў адпаведнасці з умовамі выкарыстання і ліцэнзійнай палітыкай.",
+ "foreign-structured-upload-form-label-not-own-work-message-default": "Калі вы не можаце ўкладваць гэты файл згодна з правіламі агульнага сховішча, калі ласка, закрыйце гэта акно і паспрабуйце іншы метад.",
+ "foreign-structured-upload-form-label-not-own-work-local-default": "Вы таксама можаце паспрабаваць скарыстацца [[Special:Upload|старонкай укладанняў пляцоўкі {{SITENAME}}]], калі гэты файл можна укладваць туды згодна з іх палітыкай.",
"backend-fail-stream": "Не атрымалася трансляваць файл $1.",
"backend-fail-backup": "Немагчыма зрабіць рэзервную копію $1.",
"backend-fail-notexists": "Файл $1 не існуе.",
"watchlistanontext": "За преглеждане и редактиране на списъка за наблюдение се изисква влизане в системата.",
"watchnologin": "Не сте влезли",
"addwatch": "Добавяне към списъка за наблюдение",
- "addedwatchtext": "Страницата „'''[[:$1]]'''“ и беседата й бяха добавени към [[Special:Watchlist|списъка ви за наблюдение]].",
+ "addedwatchtext": "Страницата „'''[[:$1]]'''“ и беседата ѝ бяха добавени към [[Special:Watchlist|списъка ви за наблюдение]].",
"addedwatchtext-short": "Страницата „$1“ беше добавена към списъка Ви за наблюдение.",
"removewatch": "Премахване от списъка за наблюдение",
- "removedwatchtext": "Страницата „[[:$1]]“ и беседата й бяха премахнати от [[Special:Watchlist|списъка ви за наблюдение]].",
+ "removedwatchtext": "Страницата „[[:$1]]“ и беседата ѝ бяха премахнати от [[Special:Watchlist|списъка ви за наблюдение]].",
"removedwatchtext-short": "Страницата „$1“ беше премахната от списъка Ви за наблюдение.",
"watch": "Наблюдение",
"watchthispage": "Наблюдаване на страницата",
"import-logentry-upload-detail": "$1 {{PLURAL:$1|версия беше внесена|версии бяха внесени}}",
"import-logentry-interwiki-detail": "{{PLURAL:$1|една версия беше внесена|$1 версии бяха внесени}} от $2",
"javascripttest": "Тестване на JavaScript",
- "javascripttest-pagetext-noframework": "Тази страница е запазена за изпълнение на Джаваскрипт тестове.",
"javascripttest-pagetext-unknownaction": "Неизвестно действие \"$1\".",
- "javascripttest-pagetext-frameworks": "Моля, изберете една от предложените тестови структури: $1",
- "javascripttest-pagetext-skins": "Избор на облик за тестванията:",
"javascripttest-qunit-intro": "Вижте [$1 тестовата документация] на mediawiki.org.",
"tooltip-pt-userpage": "Вашата потребителска страница",
"tooltip-pt-anonuserpage": "Потребителската страница за адреса, от който редактирате",
"logentry-protect-modify-cascade": "$1 $3-এর জন্য সুরক্ষা স্তর {{GENDER:$2|পরিবর্তন করেছেন}} $4 [প্রপাতাকার]",
"logentry-rights-rights": "$1 ব্যবহারকারী, $3 এর দলগত সদস্যপদ $4 থেকে $5 এ {{GENDER:$2|পরিবর্তন}} করেছেন",
"logentry-rights-rights-legacy": "$1 দলের সদস্যপদ পরিবর্তন করেছেন {{GENDER:$2|changed}} এর জন্য $3",
- "logentry-rights-autopromote": "$1 সয়à¦\82à¦\95à§\8dরিয়à¦à¦¾à¦¬à§\87 $4 থà§\87à¦\95à§\87 $5 à¦\8f {{GENDER:$2|à¦\89নà§\8dনà§\80ত}} হয়à§\87à¦\9bà§\87",
+ "logentry-rights-autopromote": "$1 সà§\8dবয়à¦\82à¦\95à§\8dরিয়à¦à¦¾à¦¬à§\87 $4 থà§\87à¦\95à§\87 $5-à¦\8f {{GENDER:$2|à¦\89নà§\8dনà§\80ত}} হয়à§\87à¦\9bà§\87ন",
"logentry-upload-upload": "$1 $3 {{GENDER:$2|আপলোড করেছেন}}",
"logentry-upload-overwrite": "$1 $3-এর একটি নতুন সংস্করণ {{GENDER:$2|আপলোড করেছেন}}",
"logentry-upload-revert": "$1 $3 {{GENDER:$2|আপলোড করেছেন}}",
"morenotlisted": "ئەم لیستەیە تەواو نییە",
"mypage": "پەڕە",
"mytalk": "لێدوان",
- "anontalk": "لێدوان بۆ ئەم ئایپییە",
+ "anontalk": "لێدوان",
"navigation": "ڕێدۆزی",
"and": " و",
"qbfind": "بدۆزەرەوە",
"rcshowhidemine": "دەستکارییەکانم $1",
"rcshowhidemine-show": "نیشان بدە",
"rcshowhidemine-hide": "بشارەوە",
+ "rcshowhidecategorization": "$1 پۆلێنکردنی پەڕە",
"rcshowhidecategorization-show": "نیشانی بدە",
"rclinks": "دوایین $1 گۆڕانکاریی $2 ڕۆژی ڕابردوو نیشان بدە<br />$3",
"diff": "جیاوازی",
"pageinfo-contentpage-yes": "بەڵێ",
"pageinfo-protect-cascading-yes": "بەڵێ",
"pageinfo-category-info": "زانیاریی پۆل",
+ "pageinfo-category-total": "ژمارەی سەرجەمی ئەندامان",
"pageinfo-category-pages": "ژمارەی پەڕەکان",
"pageinfo-category-subcats": "ژمارەی ژێرپەڕەکان",
"pageinfo-category-files": "ژمارەی پەڕگەکان",
"api-error-unknownerror": "Neznámá chyba: „$1“.",
"api-error-uploaddisabled": "Načítání souborů je na této wiki vypnuto.",
"api-error-verification-error": "Soubor je možná poškozen nebo má špatnou příponu.",
+ "api-error-was-deleted": "Soubor s tímto názvem byl již dříve načten a později smazán.",
"duration-seconds": "$1 {{PLURAL:$1|sekunda|sekundy|sekund}}",
"duration-minutes": "$1 {{PLURAL:$1|minuta|minuty|minut}}",
"duration-hours": "$1 {{PLURAL:$1|hodina|hodiny|hodin}}",
"noemail": "Aucune adresse de courriel n'a été enregistrée pour l'utilisateur « $1 ».",
"noemailcreate": "Vous devez fournir une adresse de courriel valide",
"passwordsent": "Un nouveau mot de passe a été envoyé à l'adresse de courriel de l'utilisateur « $1 ». Veuillez vous reconnecter après l'avoir reçu.",
- "blocked-mailpassword": "Votre adresse IP est bloquée pour l'édition. Pour éviter les abus, il n'est pas autorisé d'utiliser de récupération de mot de passe à partir de cette adresse IP.",
+ "blocked-mailpassword": "Votre adresse IP est bloquée pour la modification. Pour éviter les abus, il n’est pas autorisé d’utiliser la récupération de mot de passe à partir de cette adresse IP.",
"eauthentsent": "Un courriel de confirmation a été envoyé à l’adresse indiquée.\nAvant qu’un autre courriel ne soit envoyé à ce compte, vous devrez suivre les instructions du courriel et confirmer que le compte est bien le vôtre.",
"throttled-mailpassword": "Un courriel de réinitialisation de votre mot de passe a déjà été envoyé durant {{PLURAL:$1|la dernière heure|les $1 dernières heures}}. Afin d'éviter les abus, un seul courriel de réinitialisation de votre mot de passe sera envoyé par {{PLURAL:$1|heure|intervalle de $1 heures}}.",
"mailerror": "Erreur lors de l'envoi du courriel : $1",
"rev-deleted-no-diff": "Vous ne pouvez pas voir ce diff parce qu'une des versions a été <strong>supprimée</strong>.\nDes détails sont disponibles dans le [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} journal des suppressions].",
"rev-suppressed-no-diff": "Vous ne pouvez pas voir cette différence car une des révisions a été <strong>masquée</strong>.",
"rev-deleted-unhide-diff": "Une des révisions de cette différence a été <strong>supprimée</strong>.\nDes détails sont disponibles dans le [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} journal des suppressions].\nVous pouvez toujours [$1 voir cette différence] si vous le voulez.",
- "rev-suppressed-unhide-diff": "L'une des révisions de ce diff a été <strong>masquée</strong>.\nDes détails sont disponibles dans le [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} journal des masquages].\nVous pouvez toujours [$1 voir ce diff] si vous souhaitez poursuivre.",
+ "rev-suppressed-unhide-diff": "L’une des révisions de ce diff a été <strong>masquée</strong>.\nDes détails sont disponibles dans le [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} journal des masquages].\nVous pouvez toujours [$1 voir ce diff] si vous souhaitez poursuivre.",
"rev-deleted-diff-view": "Une des révisions de ce diff a été <strong>supprimée</strong>.\nVous pouvez voir ce diff ; des détails sont disponibles dans le [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} journal des suppressions].",
"rev-suppressed-diff-view": "Une des révisions de ce diff a été <strong>masquée</strong>.\nVous pouvez voir ce diff ; des détails sont disponibles dans le [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} journal des masquages].",
"rev-delundel": "afficher/masquer",
"logentry-protect-protect-cascade": "$1 {{GENDER:$2|a protégé}} $3 $4 [protection en cascade]",
"logentry-protect-modify": "$1 {{GENDER:$2|a modifié}} le niveau de protection de $3 $4",
"logentry-protect-modify-cascade": "$1 {{GENDER:$2|a modifié}} le niveau de protection de $3 $4 [protection en cascade]",
- "logentry-rights-rights": "$1 {{GENDER:$2|a modifié}} l’appartenance au groupe pour {{GENDER:$3|$3}} de $4 à $5",
+ "logentry-rights-rights": "$1 a modifié l’appartenance au groupe pour $3 de $4 à $5",
"logentry-rights-rights-legacy": "$1 {{GENDER:$2|a modifié}} l'appartenance au groupe pour $3",
"logentry-rights-autopromote": "$1 {{GENDER:$2|a été promu}} automatiquement de $4 à $5",
"logentry-upload-upload": "$1 {{GENDER:$2|a téléchargé}} $3",
"nstab-template": "Berjocht",
"nstab-help": "Helpside",
"nstab-category": "Kategory",
+ "mainpage-nstab": "Haadside",
"nosuchaction": "Unbekende aksje.",
"nosuchactiontext": "De opdracht yn de URL is ûnjildich.\nMooglik hasto in typefout makke yn de URL of in ferkearde keppeling folge.\nIt soe likegoed in programmatuerflater fan {{SITENAME}} wêze kinne.",
"nosuchspecialpage": "Unbekende side",
"contributions": "{{GENDER:$1|Meidogger}}-bydragen",
"contributions-title": "Bydragen fan $1",
"mycontris": "Bydragen",
+ "anoncontribs": "Bydragen",
"contribsub2": "Foar {{GENDER:$3|$1}} ($2)",
"nocontribs": "Der binne gjin feroarings fûn dyt't hjirmei oerienkomme.",
"uctop": "(lêste feroaring)",
"comparepages": "Siden ferlykje",
"compare-page1": "Side 1",
"compare-page2": "Side 2",
- "compare-rev1": "Revyzje 1",
- "compare-rev2": "Revyzje 2",
+ "compare-rev1": "Refyzje 1",
+ "compare-rev2": "Refyzje 2",
"compare-submit": "Ferlykje",
"compare-invalid-title": "Unjildige titel.",
"htmlform-submit": "Ferstjoere",
"duration-weeks": "$1 {{PLURAL:$1|wike|wiken}}",
"duration-years": "$1 {{PLURAL:$1|jier|jierren}}",
"duration-decades": "$1 {{PLURAL:$1|desennium|desennia}}",
- "duration-centuries": "$1 {{PLURAL:$1|ieu|ieuwen}}",
+ "duration-centuries": "$1 {{PLURAL:$1|iuw|iuwen}}",
"limitreport-cputime-value": "$1 {{PLURAL:$1|sekonde|sekonden}}",
"limitreport-walltime-value": "$1 {{PLURAL:$1|sekonde|sekonden}}",
"limitreport-ppvisitednodes-value": "$1/$2",
"special-characters-group-arabic": "Arabysk",
"special-characters-group-arabicextended": "Arabysk útwreide",
"special-characters-group-persian": "Perzysk",
- "special-characters-group-hebrew": "Hebrieusk",
+ "special-characters-group-hebrew": "Hebriuwsk",
"special-characters-group-bangla": "Bengaalsk",
"special-characters-group-tamil": "Tamyl",
"special-characters-group-telugu": "Telugu",
"api-error-unknownerror": "Erro descoñecido: \"$1\".",
"api-error-uploaddisabled": "As cargas están desactivadas neste wiki.",
"api-error-verification-error": "Este ficheiro podería estar corrupto ou ter unha extensión incorrecta.",
+ "api-error-was-deleted": "Un ficheiro con este mesmo nome xa foi cargado con anterioridade e posteriormente eliminado.",
"duration-seconds": "$1 {{PLURAL:$1|segundo|segundos}}",
"duration-minutes": "$1 {{PLURAL:$1|minuto|minutos}}",
"duration-hours": "$1 {{PLURAL:$1|hora|horas}}",
"ipb-unblock": "सदस्य अथवा आईपी एड्रेस को अनब्लॉक करें",
"ipb-blocklist": "सद्य ब्लॉक देखें",
"ipb-blocklist-contribs": "{{GENDER:$1|$1}} के लिए योगदान",
+ "ipb-blocklist-duration-left": "$1 बाकी",
"unblockip": "सदस्य को अनब्लॉक करें",
"unblockiptext": "पहले ब्लॉक किये हुए आईपी एड्रेस या सदस्यनाम को अनब्लॉक करने के लिये नीचे दिया गया फार्म भरें।",
"ipusubmit": "यह अवरोध हटाएँ",
"api-error-unknownerror": "अज्ञात त्रुटि: \" $1 \"",
"api-error-uploaddisabled": "इस विकि पर अपलोड अक्षम है.",
"api-error-verification-error": "यह फ़ाइल दूषित हो सकती है, या गलत एक्सटेंशन है।",
+ "api-error-was-deleted": "इस नाम का फ़ाइल पहले अपलोड हुआ था और हट भी गया था।",
"duration-seconds": "$1 {{PLURAL:$1|सॅकेंड}}",
"duration-minutes": "$1 {{PLURAL:$1|मिनट}}",
"duration-hours": "$1 {{PLURAL:$1|घंटा|घंटे}}",
"march": "Мутт-хьал бутт",
"april": "Тушоли бутт",
"may_long": "Села бутт",
- "june": "Ð\9cангал/ÐÑ\82инга бÑ\83Ñ\82Ñ\82",
+ "june": "Этинга бутт",
"july": "Баьцамеа\\Меа бутт",
"august": "Мяцхали бутт",
"september": "Тов/Михий бутт",
"march-gen": "Муттхьол бетт",
"april-gen": "Тушоли бетт",
"may-gen": "Бекарг бетт",
- "june-gen": "Ð\90Ñ\8cÑ\82инг бетт",
- "july-gen": "Ð\9a|имаÑ\80Ñ\81 бетт",
+ "june-gen": "ÐÑ\82инга бетт",
+ "july-gen": "Ð\91аÑ\8cÑ\86амеа\\Ð\9cеа бетт",
"august-gen": "Мангал бетт",
"september-gen": "Моажол бетт",
"october-gen": "Тов бетт",
"december-date": "Чантар $1",
"period-am": "ДЦ",
"period-pm": "ДТ",
- "pagecategories": "{{PLURAL:$1|1=Ð\9aаÑ\82аг|Ð\9aаÑ\82агаш}}",
+ "pagecategories": "{{PLURAL:$1|1=Ð\9aаÑ\82егоÑ\80и|Ð\9aаÑ\82егоÑ\80еш}}",
"category_header": "\"$1\" Катага чура оаг|онаш",
"subcategories": "Чуракатагаш",
"category-media-header": "\"$1\" Категори чура файлаш",
"mypage": "Oаг|ув",
"mytalk": "Дувцам",
"anontalk": "Дувцар",
- "navigation": "Наькъатохкарг",
- "and": " кÑ\85Ñ\8b",
+ "navigation": "Навигаци",
+ "and": " а",
"qbfind": "Лахар",
"qbbrowse": "Б|аргтасса",
"qbedit": "Хувца",
"faq": "КТХ",
"faqpage": "Project:КТХ",
"actions": "Х|амдараш",
- "namespaces": "Ц|ерий аренаш",
- "variants": "Ð\94еÑ\88кепаш",
- "navigation-heading": "Наькъагойтар",
+ "namespaces": "ЦIерий мотташ",
+ "variants": "Ð\9aеÌ\81паш",
+ "navigation-heading": "Навигацен меню",
"errorpagetitle": "Г|алат",
"returnto": "цу $1 оаг|он т|а юхаг|о",
- "tagline": "Кечал укхазара я {{SITENAME}}",
+ "tagline": "Кечал укхазара: {{grammar:genitive|{{SITENAME}}}}",
"help": "ГӀо",
"search": "Лахаp",
"searchbutton": "Хьалáха",
"lastmodifiedat": "Укх оагIoн тIехьара хувцам: $2, $1.",
"viewcount": "Укх оаг|oн т|а б|аргтассаб {{PLURAL:$1|цхьааца\n|$1 times}}. {{PLURAL:$1|1=цхьазза|$1за}}.",
"protectedpage": "Лорама оаг|ув",
- "jumpto": "УкÑ\85аза деÑ\85Ñ\8cаг|о:",
+ "jumpto": "Ð\94еÑ\85Ñ\8cавала Ñ\83кÑ\85аза:",
"jumptonavigation": "навигаци",
"jumptosearch": "лахар",
"pool-timeout": "ЧIегатохара сабаран ха чакхаяьннай",
"hiddencategories": "Ер оагӀув укх {{PLURAL:$1|1=къайла цатегаца|къайла цатегашца}} дакъа лоаца:",
"permissionserrorstext-withaction": "$2 де бокъо яц {{PLURAL:$1|1=из бахьан долаш|из бахьанаш долаш}}:",
"recreate-moveddeleted-warn": "'''Зем бе! Шо хьалххе дIайоаккхаш хинна оагӀув хьае гӀерта.'''\n\nХьажа, бокъонцахь езаш йолга.\nКӀалхагIа укх оагӀуви дӀадаккхами цӀи хувцами тептараш хьекха да.",
- "moveddeleted-notice": "Ер оагӀув дӀаяьккха хиннай.\nНовкъостала, кӀалха дӀадаккхама а хувцама а тептарашкера нийсама йоазувнаш хьахьекха я.",
+ "moveddeleted-notice": "Ер оагӀув дӀаяккха хиннай.\nНовкъостала, кӀалха хьахьекха да дӀадаккхама а хувцама а тептарашкара яздараш.",
"log-fulllog": "Деррига таптара бӀаргтасса",
"edit-conflict": "Хувцамий къовсам.",
"post-expand-template-inclusion-warning": "Зембаккхам: жамIан чIабалаш чулоаца дустам геттара доккха да.\nЦхьадола чIабалаш чулоацалургдац.",
"listfiles_size": "Дустам",
"listfiles_description": "Лоацам",
"listfiles_count": "Доржамаш",
- "file-anchor-link": "Ð\9fаÑ\8cл",
+ "file-anchor-link": "Файл",
"filehist": "Паьла истори",
"filehist-help": "Хьалхе паьла мишта хиннай хьожаpгволаш/йолаш, дентаьрах/сахьата тIа пIелга тIообе.",
"filehist-revert": "юхаяьккха",
"undelete-search-submit": "Хьалáха",
"namespace": "ЦIерий аренаш",
"invert": "Хьаржар юхадаккха",
- "blanknamespace": "(Ð\9aоÑ\80Ñ\82а)",
+ "blanknamespace": "(Ð\9aеÑ\80Ñ\82еÑ\80а)",
"contributions": "{{GENDER:$1|Доакъашхочунна}} къахьегам",
"contributions-title": "$1 дакъалаьцархочунна къахьегам",
"mycontris": "Са къахьегам",
"sp-contributions-username": "IP-моттиг е цIи:",
"sp-contributions-toponly": "ТIехьара доржамаш лоархаш дола хувцамаш мара ма хьокха",
"sp-contributions-submit": "Хьалáха",
- "whatlinkshere": "Iинкаш укхаза",
+ "whatlinkshere": "Хьожаяргаш укхаза",
"whatlinkshere-title": "\"$1\" тIа Iинкаш еш йола оагIувнаш",
"whatlinkshere-page": "ОагIув",
"linkshere": "ТIехьара оагIувнаш '''[[:$1]]''' тIа Iинкаш ю:",
"tooltip-pt-preferences": "Шун оттамаш",
"tooltip-pt-watchlist": "ОоагIувна дагарле, шо бIаргалокхаш йола",
"tooltip-pt-mycontris": "Шун хувцамаш",
- "tooltip-pt-login": "Укхаза хьай цIи аьле чувала/яла йиша я, амма чуцаваьлача/ялача хIама а дац",
+ "tooltip-pt-login": "Укхаза хьай цIи аьле чувала/яла йиша я, амма из параз дац",
"tooltip-pt-logout": "Аравала/яла",
- "tooltip-pt-createaccount": "Ð¥Ñ\8cа бокÑ\8aо Ñ\8f Ñ\83Ñ\87Ñ\91Ñ\82а Ñ\8fздаÑ\80 кÑ\85елла Ñ\81иÑ\81Ñ\82ема Ñ\87Ñ\83 вала, амма декÑ\85аÑ\80 долаш дац из.",
- "tooltip-ca-talk": "ОагIувна чулоацаме дувцам",
+ "tooltip-pt-createaccount": "Ð¥Ñ\8cа бокÑ\8aо Ñ\8f Ñ\83Ñ\87Ñ\91Ñ\82а Ñ\8fздаÑ\80 кÑ\85елла Ñ\81иÑ\81Ñ\82ема Ñ\87Ñ\83 вала, амма паÑ\80аз долаш дац из.",
+ "tooltip-ca-talk": "ОагIувна чулоацам дувца оттадар",
"tooltip-ca-edit": "Нийсъе ер оагIув",
"tooltip-ca-addsection": "Керда декъам хьаде",
"tooltip-ca-viewsource": "Ер оагIув хувцамах лораяь я, амма шун цунна гIувамага хьажа бокъо я.",
"tooltip-p-logo": "Кертера оагIув тIа дехьавала",
"tooltip-n-mainpage": "Кертера оагIув тIа дехьавала",
"tooltip-n-mainpage-description": "Кертера оагIув тIа дехьавала",
- "tooltip-n-portal": "Ð¥Ñ\8cаÑ\85Ñ\8cоадайÑ\82амаÑ\85Ñ\8c лаÑ\8cÑ\86а, Ñ\85Ñ\8cа де йиÑ\88даÑ\80, Ñ\84Ñ\83 а миÑ\87Ñ\87а а йоала",
+ "tooltip-n-portal": "Ð\93IалгIай Ð\92икипедиеÑ\85 лаÑ\8cÑ\86а даÑ\80 а, Ñ\83кÑ\85аза де мегаÑ\88 даÑ\80 а, малагIа Ñ\84Ñ\83д а, миÑ\87а да а",
"tooltip-n-currentevents": "ХIанзара хоаман дагарле",
- "tooltip-n-recentchanges": "ТÓ\80еÑ\85Ñ\8cаÑ\80а Ñ\85Ñ\83вÑ\86амий дагаÑ\80Ñ\87е",
- "tooltip-n-randompage": "Ð\91е йоаÑ\86а оагÓ\80Ñ\83в ела",
+ "tooltip-n-recentchanges": "ТÓ\80еÑ\85Ñ\85Ñ\8cаÑ\80а Ñ\85Ñ\83вÑ\86амай Ñ\81пиÑ\81ок",
+ "tooltip-n-randompage": "Ð\91аÑ\88Ñ\85ало йоаÑ\86а Ñ\86а Ñ\85овÑ\88 нийÑ\81Ñ\8aенна оагÓ\80Ñ\83в Ñ\85Ñ\8cаела",
"tooltip-n-help": "Новкъостал лаха мегаш йола моттиг",
- "tooltip-t-whatlinkshere": "Укхаз тIа хьожавеш йола оагIувий список",
+ "tooltip-t-whatlinkshere": "Укхаза тIахьожавеш йола оагIувай список",
"tooltip-t-recentchangeslinked": "ОагIувнаш тIа тIехьара хувцамаш, укх оагIувнера Iинк яь йола",
"tooltip-feed-rss": "Укх оагIувна RSSчу гойтар",
"tooltip-feed-atom": "Укх оаг|увна Atomчу гойтар",
"tooltip-t-emailuser": "Укх дакъалаьцархочоа зIы яхьийта",
"tooltip-t-upload": "Файлаш чудаккха",
"tooltip-t-specialpages": "ГIулакха оагIувнаш",
- "tooltip-t-print": "УкÑ\85 оаÑ\83гIÑ\83вна каÑ\8cÑ\85аÑ\82заÑ\80бане доÑ\80жам",
+ "tooltip-t-print": "УкÑ\85 оаÑ\83гIÑ\83вна заÑ\80ба Ñ\82оÑ\85аÑ\80а веÑ\80Ñ\81и",
"tooltip-t-permalink": "Укх оагIув доржама даим латта Iинк",
"tooltip-ca-nstab-main": "Йоазува чулоацам",
"tooltip-ca-nstab-user": "Дакъалаьцархочунна ший оагIув",
"tooltip-summary": "Лоаца чулоацам Iочуязаде",
"pageinfo-toolboxlink": "ОагIонах бола хоам",
"previousdiff": "← Хьалхара хувцам",
- "nextdiff": "ТIайоагIа хувцам",
+ "nextdiff": "ТIайоагIа нийсъар",
"file-info-size": "$1 × $2 фихсам, паьла дустам: $3, MIME-тайп: $4",
"file-nohires": "Укхал доккхагIа доржам дац",
"svg-long-desc": "SVG-паьл, $1 × $2 фихелашца, паьла дустам: $3",
"ipb-unblock": "En IP-Addräß ov ene Metmaacher widder zohlohße",
"ipb-blocklist": "All de Sperre för Metmaacher un <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"„de eläktrohnesche Poß“\">e-mail</i>-Adräße aanzeije, di jrad beschtonn",
"ipb-blocklist-contribs": "{{GENDER:$1|Däm|Däm|Däm Metmaacher|Dä|Däm}} $1 {{GENDER:$1|sing|singe|sing|iere|sing}} Bäjdrähsch",
+ "ipb-blocklist-duration-left": "noch $1",
"unblockip": "Dä Medmacher widder maache looße",
"unblockiptext": "Heh kanns De vörher jesperrte IP_Adresse oder Metmaacher widder freijevve, un dänne esu dat Rääch för ze Schrieve heh em Wiki widder jevve.",
"ipusubmit": "Sperr ophevve!",
"tog-hideminor": "Paslēpt maznozīmīgus labojumus pēdējo izmaiņu lapā",
"tog-hidepatrolled": "Slēpt apstiprinātās izmaņas pēdējo izmaiņu sarakstā",
"tog-newpageshidepatrolled": "Paslēpt pārbaudītās lapas jauno lapu sarakstā",
+ "tog-hidecategorization": "Paslēpt lapu kategorizēšanu",
"tog-extendwatchlist": "Izvērst uzraugāmo lapu sarakstu, lai parādītu visas veiktās izmaiņas (ne tikai pašas svaigākās)",
"tog-usenewrc": "Grupēt izmaiņas pēc lapas pēdējās izmaiņās un uzraugāmo lapu sarakstā",
"tog-numberheadings": "Automātiski numurēt virsrakstus",
"tog-watchlisthideliu": "Paslēpt reģistrēto dalībnieku labojumus uzraugāmo lapu sarakstā",
"tog-watchlisthideanons": "Paslēpt anonīmo dalībnieku labojumus uzraugāmo lapu sarakstā",
"tog-watchlisthidepatrolled": "Paslēpt pārbaudītās lapas uzraugāmo lapu sarakstā",
+ "tog-watchlisthidecategorization": "Paslēpt lapu kategorizēšanu",
"tog-ccmeonemails": "Sūtīt sev citiem dalībniekiem nosūtīto epastu kopijas",
"tog-diffonly": "Nerādīt lapu saturu zem izmaiņām",
"tog-showhiddencats": "Rādīt slēptās kategorijas",
"moredotdotdot": "Vairāk...",
"morenotlisted": "Šis saraksts nav pilnīgs.",
"mypage": "Lapa",
- "anonuserpage": "Nezināms lietotājs",
"mytalk": "Diskusijas",
"anontalk": "Diskusijas",
"navigation": "Navigācija",
"logout": "Iziet",
"userlogout": "Iziet",
"notloggedin": "Neesi iegājis",
+ "userlogin-noaccount": "Nav dalībnieka konta?",
"userlogin-joinproject": "Pievienojieties {{SITENAME}}",
"nologin": "Nav lietotājvārda? $1.",
"nologinlink": "Reģistrējies",
"returnto": "$1 သို့ ပြန်သွားရန်။",
"tagline": "{{SITENAME}} မှ",
"help": "အကူအညီ",
- "search": "ရှာဖွေရန်",
- "searchbutton": "ရှာဖွေရန်",
+ "search": "ရှာဖွေရန်",
+ "searchbutton": "ရှာဖွေရန်",
"go": "သွားပါ",
"searcharticle": "သွားပါ",
"history": "စာမျက်နှာ ရာဇဝင်",
"protectedpage": "ကာကွယ်ထားသည့် စာမျက်နှာ",
"jumpto": "ဤနေရာသို့သွားရန် -",
"jumptonavigation": "အညွှန်း",
- "jumptosearch": "ရှာဖွေရန်",
+ "jumptosearch": "ရှာဖွေရန်",
"view-pool-error": "ဆာဗာသည် ယခုအချိန်တွင် မမျှသောဝန်ကို ထမ်းနေရသည်။\nအသုံးပြုသူ အမြောက်အများက ဤစာမျက်နှာကို ကြည့်ရှုရန် ကြိုးပမ်းနေကြသည်။\nဤစာမျက်နှာကို နောက်တစ်ကြိမ် ပြန်မကြည့်မီ ခဏတာမျှ စောင့်ပါ။\n\n$1",
"generic-pool-error": "ဝမ်းနည်းပါသည်၊ ဆာဗာများသည် ယခုအချိန်တွင် မမျှသောဝန်ကို ထမ်းနေရသည်။\nအသုံးပြုသူ အမြောက်အများက ဤစာမျက်နှာကို ကြည့်ရှုရန် ကြိုးပမ်းနေကြသည်။\nဤစာမျက်နှာကို နောက်တစ်ကြိမ် ပြန်မကြည့်မီ ခဏတာမျှ စောင့်ပါ။",
"pool-errorunknown": "အမည်မသိအမှား",
"prefs-editing": "တည်းဖြတ်ခြင်း",
"rows": "အလျားလိုက်တန်း -",
"columns": "ဒေါင်လိုက်တန်း -",
- "searchresultshead": "ရှာဖွေရန်",
+ "searchresultshead": "ရှာဖွေရန်",
"stub-threshold-disabled": "ပိတ်ထားသည်",
"recentchangesdays": "လတ်တလောအပြောင်းအလဲများကို ပြရန်နေ့များ -",
"recentchangesdays-max": "အများဆုံး $1 {{PLURAL:$1|ရက်|ရက်}}",
"timezoneregion-indian": "အိန္ဒိယသမုဒ္ဒရာ",
"timezoneregion-pacific": "ပစိဖိတ်သမုဒ္ဒရာ",
"allowemail": "အခြားအသုံးပြုသူများထံမှ အီးမေးများကို လက်ခံရန်",
- "prefs-searchoptions": "ရှာဖွေရန်",
+ "prefs-searchoptions": "ရှာဖွေရန်",
"prefs-namespaces": "အမည်ညွှန်း",
"default": "ပုံမှန်အားဖြင့်",
"prefs-files": "ဖိုင်",
"linksearch": "ပြင်ပလင့်ခ်များ ရှာဖွေ",
"linksearch-pat": "ရှာသည့်ပုံစံ -",
"linksearch-ns": "အမည်ညွှန်း -",
- "linksearch-ok": "ရှာဖွေရန်",
+ "linksearch-ok": "ရှာဖွေရန်",
"linksearch-line": "$1 သည် $2 မှ လင့်ချိတ်ထားသည်",
"listusersfrom": "ဤမှစသော အသုံးပြုသူများကို ပြရန် -",
"listusers-submit": "ပြ",
"undeletecomment": "အကြောင်းပြချက် -",
"undeletedrevisions": "{{PLURAL:$1|မူတစ်ခု|မူ $1 ခု}} ကိုပြန်လည် ထိန်းသိမ်းပြီး",
"undelete-search-box": "ဖျက်ပစ်သည့် စာမျက်နှာများမှ ရှာရန်",
- "undelete-search-submit": "ရှာဖွေရန်",
+ "undelete-search-submit": "ရှာဖွေရန်",
"undelete-show-file-submit": "မှန်",
"namespace": "အမည်ညွှန်း -",
"invert": "ရွေးချယ်ထားခြင်းကို ပြောင်းပြန်လှန်ရန်",
"sp-contributions-search": "ပံ့ပိုးမှုများကို ရှာရန်",
"sp-contributions-username": "အိုင်ပီလိပ်စာ သို့ အသုံးပြုသူအမည် :",
"sp-contributions-toponly": "နောက်ဆုံးတည်းဖြတ်မူများသာပြရန်",
- "sp-contributions-submit": "ရှာဖွေရန်",
+ "sp-contributions-submit": "ရှာဖွေရန်",
"whatlinkshere": "ဘယ်ကလင့်ခ်ထားလဲ",
"whatlinkshere-title": "\"$1\" ကို လင့်ထားသော စာမျက်နှာများ",
"whatlinkshere-page": "စာမျက်နှာ -",
"blocklist": "ပိတ်ပင်ထားသော အသုံးပြုသူများ",
"ipblocklist": "ပိတ်ပင်ထားသော အသုံးပြုသူများ",
"ipblocklist-legend": "ပိတ်ပင်ထားသော အသုံးပြုသူတစ်ဦးကို ရှာရန်",
- "ipblocklist-submit": "ရှာဖွေရန်",
+ "ipblocklist-submit": "ရှာဖွေရန်",
"ipblocklist-otherblocks": "အခြား ပိတ်ပင်ထားမှု{{PLURAL:$1|ခု|ခု}}",
"infiniteblock": "အကန့်အသတ်မရှိ",
"expiringblock": "$1 ရက် $2 အချိန်တွင် သက်တမ်းကုန်မည်",
"tooltip-ca-move": "ဤစာမျက်နှာကို ရွှေ့ပြောင်းရန်",
"tooltip-ca-watch": "ဤစာမျက်နှာကို စောင့်ကြည့်စာရင်းသို့ ထည့်ရန်",
"tooltip-ca-unwatch": "ဤစာမျက်နှာကို စောင့်ကြည့်စာရင်းမှ ဖြုတ်ရန်",
- "tooltip-search": "{{SITENAME}}á\80\80á\80á\80¯ á\80\9bá\80¾á\80¬ရန်",
+ "tooltip-search": "{{SITENAME}}á\80\90á\80½á\80\84á\80º á\80\9bá\80¾á\80¬á\80\96á\80½á\80±ရန်",
"tooltip-search-go": "ဤအမည်နှင့် ထပ်တူညီသော စာမျက်နှာရှိပါက ယင်းသို့ သွားရန်",
"tooltip-search-fulltext": "ဤစာပါသော စာမျက်နှာများကို ရှာရန်",
"tooltip-p-logo": "ဗဟိုစာမျက်နှာသို့ သွားရန်",
"newimages-legend": "စိစစ်မှု",
"newimages-label": "ဖိုင်အမည် (သို့ ယင်း၏အစိတ်အပိုင်း) -",
"noimages": "ကြည့်စရာဘာမှ မရှိပါ။",
- "ilsubmit": "ရှာဖွေရန်",
+ "ilsubmit": "ရှာဖွေရန်",
"bydate": "ရက်စွဲဖြိင့်",
"sp-newimages-showfrom": "$1 နေ့ $2 အချိန်ကစသော ဖိုင်အသစ်များကို ပြရန်",
"bad_image_list": "ဖောမတ်ပုံစံမှာ အောက်ပါအတိုင်းဖြစ်သည်။\n\nစာရင်းတွင်ထည့်သွင်းထားသော အရာများကိုသာ ထည့်သွင်းစဉ်းစားမည်။ (ခရေပွင့် * ဖြင့်စသော စာကြောင်းများ)\nစာကြောင်း၏ ပထမဆုံး လင့်သည် ဖိုင်ညံ့ ဖြစ်ရမည်။\nယင်းစာကြောင်းတွင်ပင် နောက်ထပ်လာသောလင့်များကို ချွင်းချက်အဖြစ် စဉ်းစားမည်။ ဆိုလိုသည်မှာ ၎င်းလင့်များတွင်လည်း အဆိုပါ ဖိုင်ညံ့ ပါကောင်း ပါဝင်နေမည်။",
"fileduplicatesearch": "နှစ်ခုထပ်နေသောဖိုင်များကို ရှာရန်",
"fileduplicatesearch-legend": "နှစ်ခုထပ်နေသည်ကို ရှာရန်",
"fileduplicatesearch-filename": "ဖိုင်အမည် -",
- "fileduplicatesearch-submit": "ရှာဖွေရန်",
+ "fileduplicatesearch-submit": "ရှာဖွေရန်",
"specialpages": "အထူး စာမျက်နှာများ",
"specialpages-group-maintenance": "ထိန်းသိမ်းမှု အစီရင်ခံချက်များ",
"specialpages-group-other": "အခြားအထူးစာမျက်နှာများ",
"api-error-unknownerror": "Errore scanusciuto: \"$1\"",
"api-error-uploaddisabled": "'E carreche so' stutate dint'a sta siki.",
"api-error-verification-error": "Stu file putesse stà nguacchiato, o tene n'estensione sbagliata.",
+ "api-error-was-deleted": "Nu file cu stu nomme s'è carrecato primma e po' s'è scancellaje.",
"duration-seconds": "$1 {{PLURAL:$1|secondo|seconde}}",
"duration-minutes": "$1 {{PLURAL:$1|minuto|minute}}",
"duration-hours": "$1 {{PLURAL:$1|ora|ore}}",
"special-characters-group-ipa": "IPA",
"special-characters-group-symbols": "Simmule",
"special-characters-group-greek": "Grieco",
+ "special-characters-group-greekextended": "Grieco spannuto",
"special-characters-group-cyrillic": "Cirillico",
"special-characters-group-arabic": "Arabo",
"special-characters-group-arabicextended": "Arabo spannuto",
"sessionprovider-generic": "$1 sessiune",
"sessionprovider-mediawiki-session-cookiesessionprovider": "sessiune basate ncopp' 'e cookie",
"sessionprovider-nocookies": "'E cookie ponno stà stutate. Vedite si 'e cookie stann'appicciate e accumminciate n'ata vota.",
- "randomrootpage": "Paggena 'e rareca a ccaso"
+ "randomrootpage": "Paggena 'e rareca a ccaso",
+ "log-action-filter-block": "Tipo 'e blocco:",
+ "log-action-filter-delete": "Tipo 'e scancellazione:",
+ "log-action-filter-patrol": "Tipo 'e verifica:",
+ "log-action-filter-protect": "Tipo 'e protezione:",
+ "log-action-filter-upload": "Tipo 'e carreca:",
+ "log-action-filter-all": "Tutte",
+ "log-action-filter-block-block": "Blocco",
+ "log-action-filter-block-reblock": "Modifica blocco",
+ "log-action-filter-block-unblock": "Sblocca",
+ "log-action-filter-delete-delete": "Scancellazione 'e paggena",
+ "log-action-filter-delete-restore": "Arrepigliament' 'e paggena",
+ "log-action-filter-delete-event": "Scancellazione d' 'o reggistro",
+ "log-action-filter-delete-revision": "Scancellazione d' 'a verziona",
+ "log-action-filter-patrol-patrol": "Verifica manuale",
+ "log-action-filter-patrol-autopatrol": "Verifica automatica",
+ "log-action-filter-protect-protect": "Prutezione",
+ "log-action-filter-protect-modify": "Cagna prutezione",
+ "log-action-filter-protect-unprotect": "Sprutezione",
+ "log-action-filter-upload-upload": "Carreca nova",
+ "log-action-filter-upload-overwrite": "Recarreca"
}
"nstab-template": "Mal",
"nstab-help": "Hulpe",
"nstab-category": "Kategorie",
+ "mainpage-nstab": "Veurblad",
"nosuchaction": "De op-egeven haandeling besteet niet",
"nosuchactiontext": "De opdrachte in t webadres in ongeldig.\nJe hebben t webadres misschien verkeerd in-etikt of de verkeerde verwiezing evolgd.\nDit kan oek dujen op n fout in de programmatuur van {{SITENAME}}.",
"nosuchspecialpage": "Der besteet gien spesiale zied mit disse naam",
"newarticle": "(Niej)",
"newarticletext": "Disse zied besteet nog niet.\nIn t veld hieronder ku'j wat schrieven um disse zied an te maken (meer informasie vie'j op de [$1 hulpzied]).\nA'j hier per ongelok terechtekeumen bin gebruuk dan de knoppe '''veurige''' um weerumme te gaon.",
"anontalkpagetext": "---- ''Disse overlegzied heurt bie n anonieme gebruker die nog gien gebrukersnaam hef, of t niet gebruukt. We gebruken daorumme t IP-adres um hum of heur te herkennen, mer t kan oek ween dat meerdere personen t zelfde IP-adres gebruken, en da'j hiermee berichten ontvangen die niet veur joe bedoeld bin. A'j dit veurkoemen willen, dan ku'j t best [[Special:UserLogin/signup|n gebrukersnaam anmaken]] of [[Special:UserLogin|anmelden]].''",
- "noarticletext": "Der steet noen gien tekste op disse zied.\nJe kunnen [[Special:Search/{{PAGENAME}}|de titel opzeuken]] in aandere ziejen,\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} zeuken in de logboeken],\nof [{{fullurl:{{FULLPAGENAME}}|action=edit}} disse zied bewarken]</span>.",
+ "noarticletext": "Der steet noen gien tekste op disse zied.\nJe kunnen [[Special:Search/{{PAGENAME}}|de titel opzeuken]] in aandere ziejen,\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} zeuken in de logboeken],\nof [{{fullurl:{{FULLPAGENAME}}|action=edit}} disse zied anmaken]</span>.",
"noarticletext-nopermission": "Op disse zied steet gien tekste.\nJe kunnen [[Special:Search/{{PAGENAME}}|zeuken naor disse term]] in aandere ziejen of\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} de logboeken deurzeuken]</span>, mer je hebben gien rechten um disse zied an te maken.",
"missing-revision": "De versie #$1 van de zied \"{{FULLPAGENAME}} besteet niet.\n\nDit kömp meestentieds deur t volgen van n verouwerde verwiezing naor n zied die vortedaon is.\nWaorschienlik ku'j der meer gegevens over vienen in t [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} vortdologboek].",
"userpage-userdoesnotexist": "Je bewarken n gebrukerszied van n gebruker die niet besteet (gebruker \"<nowiki>$1</nowiki>\"). Kiek effen nao o'j disse zied wel anmaken/bewarken willen.",
"contributions": "{{GENDER:$1|Biedragen van disse gebruker}}",
"contributions-title": "Biedragen van $1",
"mycontris": "Mien biedragen",
+ "anoncontribs": "Biedragen",
"contribsub2": "Veur {{GENDER:$3|$1}} ($2)",
"nocontribs": "Gien wiezigingen evunnen die an de estelde criteria voldoon.",
"uctop": "(leste wieziging)",
"import-logentry-upload-detail": "$1 {{PLURAL:$1|versie|versies}}",
"import-logentry-interwiki-detail": "$1 {{PLURAL:$1|versie|versies}} van $2",
"javascripttest": "JavaScript testen",
- "javascripttest-pagetext-noframework": "Disse zied is ereserveerd veur t uutvoeren van JavaScript-testen.",
- "javascripttest-pagetext-unknownframework": "Onbekend testraamwark \"$1\".",
- "javascripttest-pagetext-frameworks": "Kies een van de volgende testraamwarken: $1",
- "javascripttest-pagetext-skins": "Kies n vormgeving um de tests mee uut te voeren:",
"javascripttest-qunit-intro": "Zie de [$1 testdokumentasie] op mediawiki.org.",
- "tooltip-pt-userpage": "Oew gebroekersziede",
+ "tooltip-pt-userpage": "{{GENDER:|Oew}} gebroekersziede",
"tooltip-pt-anonuserpage": "Gebroekersbladziede vuur t IP-adres da'j broekt",
- "tooltip-pt-mytalk": "Oew oaverlegbladziede",
+ "tooltip-pt-mytalk": "{{GENDER:|Oew}} oaverlegziede",
"tooltip-pt-anontalk": "Oaverlegbladziede van n naamlozen gebroeker van dit IP-adres",
- "tooltip-pt-preferences": "Miene vuurkeuren",
+ "tooltip-pt-preferences": "{{GENDER:|Miene}} vuurkeuren",
"tooltip-pt-watchlist": "Lieste van zieden die op miene volglieste stoan",
- "tooltip-pt-mycontris": "Liest van oew biejdraegen",
+ "tooltip-pt-mycontris": "Oaverzicht van {{GENDER:|oew}} biejdreagen",
"tooltip-pt-login": "Iej wördt van harte oetneugd um oe an te melden as gebroeker, mer t is nich verplicht",
"tooltip-pt-logout": "Ofmaelden",
"tooltip-pt-createaccount": "Schrief je eigen veural in en meld je an, mer t is niet verplicht.",
"tooltip-ca-talk": "Loat n oaverlegtekst oaver disse ziede zeen",
- "tooltip-ca-edit": "Bewaerk disse ziede",
+ "tooltip-ca-edit": "Beweark disse ziede",
"tooltip-ca-addsection": "Niej oonderwaerp tovogen",
"tooltip-ca-viewsource": "Disse ziede is beveiligd taegen veraanderen. Iej könt wal kieken noar de ziede",
"tooltip-ca-history": "Oaldere versies van disse ziede",
"tooltip-t-recentchangeslinked": "Pas verrichte veraanderingen die noar disse ziede verwiezen",
"tooltip-feed-rss": "RSS-voer vuur disse ziede",
"tooltip-feed-atom": "Atom-voer vuur disse ziede",
- "tooltip-t-contributions": "Lieste met biejdraegen van disse gebroeker",
+ "tooltip-t-contributions": "Lieste met biejdreagen van {{GENDER:$1|disse gebroeker}}",
"tooltip-t-emailuser": "Stuur disse gebroeker n netpostbericht",
"tooltip-t-info": "Meer informasie over disse zied",
"tooltip-t-upload": "Laad ofbeeldingen en/of geluudsmateriaal",
"spam_reverting": "Bezig mit t weerummezetten naor de leste versie die gien verwiezing hef naor $1",
"spam_blanking": "Alle wiezigingen mit n verwiezing naor $1 wörden vortehaold",
"spam_deleting": "In alle versies staon verwiezingen naor $1. Zied vortedaon",
- "simpleantispam-label": "Antispamkontraole.\nHier '''NIKS''' invullen!",
+ "simpleantispam-label": "Antispamkontraole.\nHier <strong>niks</strong> invullen!",
"pageinfo-title": "Informasie over \"$1\"",
"pageinfo-not-current": "Disse gegevens bin allinnig beschikbaor veur disse versie.",
"pageinfo-header-basic": "Baosisinformasie",
"version-entrypoints-header-entrypoint": "Ingang",
"version-entrypoints-header-url": "Webadres",
"redirect": "Deurverwiezen op bestaandsnaam, gebrukersnummer, ziednummer of versienummer",
- "redirect-legend": "Deurverwiezen naor n bestaand of zied",
"redirect-summary": "Disse spesiale zied verwis deur naor n bestaand (as de bestaandsnaam op-egeven wördt), n zied (as n zied- of versienummer op-egeven wördt) of n gebrukerszied (as t gebrukersnummer op-egeven wördt). Gebruuk: [[{{#Special:Redirect}}/file/Example.jpg]], [[{{#Special:Redirect}}/page/64308]], [[{{#Special:Redirect}}/revision/328429]], of [[{{#Special:Redirect}}/user/101]].",
"redirect-submit": "Zeuk",
"redirect-lookup": "Opzeuken:",
"upload-description": "Opis pliku",
"upload-options": "Opcje przesyłania",
"watchthisupload": "Obserwuj ten plik",
- "filewasdeleted": "Plik o tej nazwie istniał, ale został usunięty.\nZanim załadujesz go ponownie, sprawdź $1.",
+ "filewasdeleted": "Plik o tej nazwie już istniał, ale został usunięty.\nZanim załadujesz go ponownie, sprawdź $1.",
"filename-thumb-name": "Nazwa pliku wskazuje na to, że próbujesz przesłać miniaturkę obrazka. Prosimy nie przesyłać miniaturek w ramach tej samej wiki. Jeśli jest to konieczne, to zmień nazwę na bardziej opisową (w szczególności taką, w której nie ma prefiksu typowego dla miniaturek).",
"filename-bad-prefix": "Nazwa pliku, który przesyłasz, zaczyna się od '''„$1”'''. Jest to nazwa zazwyczaj przypisywana automatycznie przez cyfrowe aparaty fotograficzne, która nie informuje o zawartości pliku.\nZmień nazwę pliku na bardziej opisową.",
"filename-prefix-blacklist": " #<!-- nie modyfikuj tej linii --> <pre>\n# Składnia jest następująca:\n# * Wszystko od znaku \"#\" do końca linii uznawane jest za komentarz\n# * Każda niepusta linia zawiera początek nazwy pliku domyślnie wykorzystywany przez aparaty cyfrowe\nCIMG # Casio\nDSC_ # Nikon\nDSCF # Fuji\nDSCN # Nikon\nDUW # niektóre telefony komórkowe\nIMG # ogólny\nJD # Jenoptik\nMGP # Pentax\nPICT # wiele różnych\n #</pre> <!-- nie modyfikuj tej linii -->",
"redirect-page": "Identyfikator strony",
"redirect-revision": "Wersja strony",
"redirect-file": "Nazwa pliku",
+ "redirect-logid": "ID rejestru",
"redirect-not-exists": "Nie znaleziono wartości",
"fileduplicatesearch": "Wyszukiwanie duplikatów pliku",
"fileduplicatesearch-summary": "Wyszukiwanie duplikatów pliku na podstawie wartości funkcji skrótu.",
"api-error-unknownerror": "Nieznany błąd: „$1”",
"api-error-uploaddisabled": "Na tej wiki przesyłanie zostało wyłączone.",
"api-error-verification-error": "Plik może być uszkodzony lub nazwa pliku ma nieprawidłowe rozszerzenie.",
+ "api-error-was-deleted": "Plik o tej nazwie już istniał, ale został usunięty.",
"duration-seconds": "$1 {{PLURAL:$1|sekunda|sekundy|sekund}}",
"duration-minutes": "$1 {{PLURAL:$1|minuta|minuty|minut}}",
"duration-hours": "$1 {{PLURAL:$1|godzina|godziny|godzin}}",
"special-characters-group-ipa": "IPA",
"special-characters-group-symbols": "Symbole",
"special-characters-group-greek": "Greckie",
+ "special-characters-group-greekextended": "Greckie (rozszerzony)",
"special-characters-group-cyrillic": "Cyrylica",
"special-characters-group-arabic": "Arabskie",
"special-characters-group-arabicextended": "Arabskie (rozszerzony)",
"category-empty": "''Ця категорія зараз порожня.''",
"hidden-categories": "{{PLURAL:$1|1=Прихована категорія|Приховані категорії}}",
"hidden-category-category": "Приховані категорії",
- "category-subcat-count": "{{PLURAL:$2|ЦÑ\8f каÑ\82егоÑ\80Ñ\96Ñ\8f маÑ\94 Ñ\82Ñ\96лÑ\8cки Ñ\82акÑ\83 пÑ\96дкаÑ\82егоÑ\80Ñ\96Ñ\8e.|Ð\9fоказано $1 {{PLURAL:$1|пÑ\96дкаÑ\82егоÑ\80Ñ\96Ñ\8e з|пÑ\96дкаÑ\82егоÑ\80Ñ\96Ñ\97 з|пÑ\96дкаÑ\82егоÑ\80Ñ\96й Ñ\96з}} $2.}}",
+ "category-subcat-count": "{{PLURAL:$2|Ð\9fоказано $1 {{PLURAL:$1|пÑ\96дкаÑ\82егоÑ\80Ñ\96Ñ\8e з|пÑ\96дкаÑ\82егоÑ\80Ñ\96Ñ\97 з|пÑ\96дкаÑ\82егоÑ\80Ñ\96й Ñ\96з}} $2.|1=ЦÑ\8f каÑ\82егоÑ\80Ñ\96Ñ\8f маÑ\94 Ñ\82Ñ\96лÑ\8cки Ñ\82акÑ\83 пÑ\96дкаÑ\82егоÑ\80Ñ\96Ñ\8e.}}",
"category-subcat-count-limited": "У цій категорії {{PLURAL:$1|$1 підкатегорія|$1 підкатегорії|$1 підкатегорій}}.",
"category-article-count": "Показано $1 {{PLURAL:$1|сторінку|сторінки|сторінок}} цієї категорії (із $2).",
"category-article-count-limited": "У цій категорії {{PLURAL:$1|$1 сторінка|$1 сторінки|$1 сторінок}}.",
"api-error-unknownerror": "未知错误:$1。",
"api-error-uploaddisabled": "该wiki停用上传。",
"api-error-verification-error": "该文件可能损坏或扩展名错误。",
+ "api-error-was-deleted": "此名称的文件曾被上传,随后被删除。",
"duration-seconds": "$1秒",
"duration-minutes": "$1分",
"duration-hours": "$1小时",
"ABORTING (see https://bugs.php.net/bug.php?id=45996).\n",
true );
}
+
+ if ( !function_exists( 'mb_strlen' ) ) {
+ $this->error(
+ "MediaWiki now requires the mbstring PHP extension, your system doesn't have it.\n"
+ . "ABORTING.\n",
+ true );
+ }
}
function execute() {
--- /dev/null
+{
+ "@metadata": {
+ "authors": [
+ "Sadiqr"
+ ]
+ },
+ "ooui-dialog-message-reject": "وازگئچ",
+ "ooui-dialog-process-continue": "داوام ائت",
+ "ooui-selectfile-button-select": "بیر فایل سئچ",
+ "ooui-selectfile-placeholder": "هئچ فایل سئچیلمهییب"
+}
"ooui-toolbar-more": "მეტი",
"ooui-toolgroup-expand": "მეტი",
"ooui-toolgroup-collapse": "რამდენიმე",
- "ooui-dialog-message-accept": "á\83\99á\83\90á\83 á\83\92á\83\98",
+ "ooui-dialog-message-accept": "á\83\93á\83\98á\83\90á\83®",
"ooui-dialog-message-reject": "გაუქმება",
"ooui-dialog-process-error": "მოხდა რაღაც შეცდომა",
"ooui-dialog-process-dismiss": "დამალვა",
--- /dev/null
+{
+ "@metadata": {
+ "authors": [
+ "Rachitrali"
+ ]
+ },
+ "ooui-toolbar-more": "مزید",
+ "ooui-toolgroup-expand": "مزید",
+ "ooui-toolgroup-collapse": "ای کما",
+ "ooui-dialog-message-accept": "ٹھیک شیر",
+ "ooui-dialog-message-reject": "کھینسل"
+}
"Luuva"
]
},
+ "ooui-outline-control-move-down": "Hāng-bo̍k sóa ē-té",
+ "ooui-outline-control-move-up": "Hāng-bo̍k sóa téng-bīn",
+ "ooui-outline-control-remove": "Sóa cháu hāng-bo̍k",
+ "ooui-toolbar-more": "Khah chē",
+ "ooui-toolgroup-expand": "Khah chē",
+ "ooui-toolgroup-collapse": "Khah kiám",
"ooui-dialog-message-accept": "Liáu-kái",
"ooui-dialog-message-reject": "Chhú-siau",
"ooui-dialog-process-error": "Ū mi̍h bô hó-sè",
"ooui-dialog-process-continue": "繼續",
"ooui-selectfile-button-select": "選擇一個檔案",
"ooui-selectfile-not-supported": "無法支援所選擇的檔案",
- "ooui-selectfile-placeholder": "未選擇檔案",
+ "ooui-selectfile-placeholder": "尚未選擇檔案",
"ooui-selectfile-dragdrop-placeholder": "拖曳檔案到此處"
}
/*!
- * OOjs UI v0.16.4
+ * OOjs UI v0.16.5
* https://www.mediawiki.org/wiki/OOjs_UI
*
* Copyright 2011–2016 OOjs UI Team and other contributors.
* Released under the MIT license
* http://oojs.mit-license.org
*
- * Date: 2016-03-22T22:48:21Z
+ * Date: 2016-04-07T15:12:41Z
*/
( function ( OO ) {
/*!
- * OOjs UI v0.16.4
+ * OOjs UI v0.16.5
* https://www.mediawiki.org/wiki/OOjs_UI
*
* Copyright 2011–2016 OOjs UI Team and other contributors.
* Released under the MIT license
* http://oojs.mit-license.org
*
- * Date: 2016-03-22T22:48:25Z
+ * Date: 2016-04-07T15:12:44Z
*/
.oo-ui-element-hidden {
display: none !important;
.oo-ui-decoratedOptionWidget.oo-ui-widget-disabled .oo-ui-indicatorElement-indicator {
opacity: 0.2;
}
-.oo-ui-radioSelectWidget {
- padding: 0.75em 0 0.5em 0;
-}
.oo-ui-radioOptionWidget {
cursor: default;
padding: 0;
}
.oo-ui-dropdownInputWidget select {
width: 100%;
- resize: none;
+ cursor: pointer;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
.oo-ui-textInputWidget textarea {
overflow: auto;
}
-.oo-ui-textInputWidget input[type="search"] {
+.oo-ui-textInputWidget [type="search"] {
-webkit-appearance: texfield;
}
-.oo-ui-textInputWidget input[type="search"]::-ms-clear {
+.oo-ui-textInputWidget [type="search"]::-ms-clear {
display: none;
}
-.oo-ui-textInputWidget input[type="search"]::-webkit-search-decoration,
-.oo-ui-textInputWidget input[type="search"]::-webkit-search-cancel-button,
-.oo-ui-textInputWidget input[type="search"]::-webkit-search-results-button,
-.oo-ui-textInputWidget input[type="search"]::-webkit-search-results-decoration {
+.oo-ui-textInputWidget [type="search"]::-webkit-search-decoration,
+.oo-ui-textInputWidget [type="search"]::-webkit-search-cancel-button,
+.oo-ui-textInputWidget [type="search"]::-webkit-search-results-button,
+.oo-ui-textInputWidget [type="search"]::-webkit-search-results-decoration {
display: none;
}
.oo-ui-textInputWidget > .oo-ui-iconElement-icon,
/*!
- * OOjs UI v0.16.4
+ * OOjs UI v0.16.5
* https://www.mediawiki.org/wiki/OOjs_UI
*
* Copyright 2011–2016 OOjs UI Team and other contributors.
* Released under the MIT license
* http://oojs.mit-license.org
*
- * Date: 2016-03-22T22:48:25Z
+ * Date: 2016-04-07T15:12:44Z
*/
.oo-ui-element-hidden {
display: none !important;
}
.oo-ui-buttonElement-frameless > .oo-ui-buttonElement-button:focus {
box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.2), 0 0 0 1px rgba(0, 0, 0, 0.2);
- outline: none;
+ outline: 0;
}
.oo-ui-buttonElement-frameless > .oo-ui-buttonElement-button .oo-ui-indicatorElement-indicator {
margin-right: 0;
}
.oo-ui-buttonElement-framed > .oo-ui-buttonElement-button:hover,
.oo-ui-buttonElement-framed > .oo-ui-buttonElement-button:focus {
- outline: none;
+ outline: 0;
}
.oo-ui-buttonElement-framed > input.oo-ui-buttonElement-button,
.oo-ui-buttonElement-framed.oo-ui-labelElement > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
color: #347bff;
}
.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button:hover {
- background-color: rgba(52, 123, 255, 0.1);
- border-color: rgba(31, 73, 153, 0.5);
+ background-color: #ebf2ff;
+ border-color: #859dcc;
}
.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button:focus {
box-shadow: inset 0 0 0 1px #1f4999;
color: #347bff;
}
.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-constructive > .oo-ui-buttonElement-button:hover {
- background-color: rgba(52, 123, 255, 0.1);
- border-color: rgba(31, 73, 153, 0.5);
+ background-color: #ebf2ff;
+ border-color: #859dcc;
}
.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-constructive > .oo-ui-buttonElement-button:focus {
box-shadow: inset 0 0 0 1px #1f4999;
color: #d11d13;
}
.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button:hover {
- background-color: rgba(209, 29, 19, 0.1);
- border-color: rgba(115, 16, 10, 0.5);
+ background-color: #fbe8e7;
+ border-color: #b77c79;
}
.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button:focus {
box-shadow: inset 0 0 0 1px #73100a;
font: inherit;
vertical-align: middle;
}
-.oo-ui-checkboxInputWidget input[type="checkbox"] {
+.oo-ui-checkboxInputWidget [type="checkbox"] {
opacity: 0;
z-index: 1;
position: relative;
height: 1.6em;
max-width: none;
}
-.oo-ui-checkboxInputWidget input[type="checkbox"] + span {
+.oo-ui-checkboxInputWidget [type="checkbox"] + span {
-webkit-transition: background-size 200ms cubic-bezier(0.175, 0.885, 0.32, 1.275);
-moz-transition: background-size 200ms cubic-bezier(0.175, 0.885, 0.32, 1.275);
transition: background-size 200ms cubic-bezier(0.175, 0.885, 0.32, 1.275);
box-sizing: border-box;
position: absolute;
left: 0;
- border-radius: 2px;
width: 1.6em;
height: 1.6em;
- background-color: white;
- border: 1px solid #777777;
+ background-color: #ffffff;
background-image: url("themes/mediawiki/images/icons/check-constructive-deprecated.png");
background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/check-constructive-deprecated.svg");
background-image: linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/check-constructive-deprecated.svg");
background-position: center center;
background-origin: border-box;
background-size: 0 0;
+ border: 1px solid #777777;
+ border-radius: 2px;
}
-.oo-ui-checkboxInputWidget input[type="checkbox"]:checked + span {
+.oo-ui-checkboxInputWidget [type="checkbox"]:checked + span {
background-size: 100% 100%;
}
-.oo-ui-checkboxInputWidget input[type="checkbox"]:active + span {
+.oo-ui-checkboxInputWidget [type="checkbox"]:active + span {
background-color: #cccccc;
border-color: #cccccc;
}
-.oo-ui-checkboxInputWidget input[type="checkbox"]:focus + span {
+.oo-ui-checkboxInputWidget [type="checkbox"]:focus + span {
border-width: 2px;
}
-.oo-ui-checkboxInputWidget input[type="checkbox"]:focus:hover + span,
-.oo-ui-checkboxInputWidget input[type="checkbox"]:hover + span {
+.oo-ui-checkboxInputWidget [type="checkbox"]:focus:hover + span,
+.oo-ui-checkboxInputWidget [type="checkbox"]:hover + span {
border-bottom-width: 3px;
}
-.oo-ui-checkboxInputWidget input[type="checkbox"]:disabled {
+.oo-ui-checkboxInputWidget [type="checkbox"]:disabled {
cursor: default;
}
-.oo-ui-checkboxInputWidget input[type="checkbox"]:disabled + span {
+.oo-ui-checkboxInputWidget [type="checkbox"]:disabled + span {
background-color: #dddddd;
border-color: #dddddd;
}
-.oo-ui-checkboxInputWidget input[type="checkbox"]:disabled:checked + span {
+.oo-ui-checkboxInputWidget [type="checkbox"]:disabled:checked + span {
background-image: url("themes/mediawiki/images/icons/check-invert.png");
background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/check-invert.svg");
background-image: linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/check-invert.svg");
}
.oo-ui-dropdownInputWidget select {
width: 100%;
- resize: none;
+ cursor: pointer;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
.oo-ui-dropdownInputWidget.oo-ui-widget-enabled select:hover,
.oo-ui-dropdownInputWidget.oo-ui-widget-enabled select:focus {
border-color: #aaaaaa;
- outline: none;
+ outline: 0;
}
.oo-ui-dropdownInputWidget.oo-ui-widget-disabled select {
color: #cccccc;
font: inherit;
vertical-align: middle;
}
-.oo-ui-radioInputWidget input[type="radio"] {
+.oo-ui-radioInputWidget [type="radio"] {
opacity: 0;
z-index: 1;
position: relative;
height: 1.6em;
max-width: none;
}
-.oo-ui-radioInputWidget input[type="radio"] + span {
+.oo-ui-radioInputWidget [type="radio"] + span {
-webkit-transition: background-size 200ms cubic-bezier(0.175, 0.885, 0.32, 1.275);
-moz-transition: background-size 200ms cubic-bezier(0.175, 0.885, 0.32, 1.275);
transition: background-size 200ms cubic-bezier(0.175, 0.885, 0.32, 1.275);
box-sizing: border-box;
position: absolute;
left: 0;
- border-radius: 100%;
width: 1.6em;
height: 1.6em;
- background: white;
- border: 1px solid #777777;
+ background-color: #ffffff;
background-image: url("themes/mediawiki/images/icons/circle-constructive-deprecated.png");
background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/circle-constructive-deprecated.svg");
background-image: linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/circle-constructive-deprecated.svg");
background-position: center center;
background-origin: border-box;
background-size: 0 0;
+ border: 1px solid #777777;
+ border-radius: 100%;
}
-.oo-ui-radioInputWidget input[type="radio"]:checked + span {
+.oo-ui-radioInputWidget [type="radio"]:checked + span {
background-size: 100% 100%;
}
-.oo-ui-radioInputWidget input[type="radio"]:active + span {
+.oo-ui-radioInputWidget [type="radio"]:active + span {
background-color: #cccccc;
border-color: #cccccc;
}
-.oo-ui-radioInputWidget input[type="radio"]:focus + span {
+.oo-ui-radioInputWidget [type="radio"]:focus + span {
border-width: 2px;
}
-.oo-ui-radioInputWidget input[type="radio"]:focus:hover + span,
-.oo-ui-radioInputWidget input[type="radio"]:hover + span {
+.oo-ui-radioInputWidget [type="radio"]:focus:hover + span,
+.oo-ui-radioInputWidget [type="radio"]:hover + span {
border-bottom-width: 3px;
}
-.oo-ui-radioInputWidget input[type="radio"]:disabled {
+.oo-ui-radioInputWidget [type="radio"]:disabled {
cursor: default;
}
-.oo-ui-radioInputWidget input[type="radio"]:disabled + span {
+.oo-ui-radioInputWidget [type="radio"]:disabled + span {
background-color: #dddddd;
border-color: #dddddd;
}
-.oo-ui-radioInputWidget input[type="radio"]:disabled:checked + span {
+.oo-ui-radioInputWidget [type="radio"]:disabled:checked + span {
background-image: url("themes/mediawiki/images/icons/circle-invert.png");
background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/circle-invert.svg");
background-image: linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/circle-invert.svg");
.oo-ui-radioSelectInputWidget .oo-ui-fieldLayout {
margin-bottom: 0;
}
+.oo-ui-radioSelectInputWidget .oo-ui-fieldLayout .oo-ui-fieldLayout-body {
+ padding: 0.25em 0;
+}
+.oo-ui-radioSelectInputWidget .oo-ui-fieldLayout .oo-ui-fieldLayout-body .oo-ui-labelElement-label {
+ line-height: 1.5em;
+}
.oo-ui-textInputWidget {
position: relative;
vertical-align: middle;
.oo-ui-textInputWidget textarea {
overflow: auto;
}
-.oo-ui-textInputWidget input[type="search"] {
+.oo-ui-textInputWidget [type="search"] {
-webkit-appearance: texfield;
}
-.oo-ui-textInputWidget input[type="search"]::-ms-clear {
+.oo-ui-textInputWidget [type="search"]::-ms-clear {
display: none;
}
-.oo-ui-textInputWidget input[type="search"]::-webkit-search-decoration,
-.oo-ui-textInputWidget input[type="search"]::-webkit-search-cancel-button,
-.oo-ui-textInputWidget input[type="search"]::-webkit-search-results-button,
-.oo-ui-textInputWidget input[type="search"]::-webkit-search-results-decoration {
+.oo-ui-textInputWidget [type="search"]::-webkit-search-decoration,
+.oo-ui-textInputWidget [type="search"]::-webkit-search-cancel-button,
+.oo-ui-textInputWidget [type="search"]::-webkit-search-results-button,
+.oo-ui-textInputWidget [type="search"]::-webkit-search-results-decoration {
display: none;
}
.oo-ui-textInputWidget > .oo-ui-iconElement-icon,
}
.oo-ui-textInputWidget.oo-ui-widget-enabled input:focus,
.oo-ui-textInputWidget.oo-ui-widget-enabled textarea:focus {
- outline: none;
+ outline: 0;
border-color: #347bff;
box-shadow: inset 0 0 0 0.1em #347bff;
}
/*!
- * OOjs UI v0.16.4
+ * OOjs UI v0.16.5
* https://www.mediawiki.org/wiki/OOjs_UI
*
* Copyright 2011–2016 OOjs UI Team and other contributors.
* Released under the MIT license
* http://oojs.mit-license.org
*
- * Date: 2016-03-22T22:48:21Z
+ * Date: 2016-04-07T15:12:41Z
*/
( function ( OO ) {
this.setGroupElement( config.$group || $( '<div>' ) );
};
+/* Events */
+
+/**
+ * @event change
+ *
+ * A change event is emitted when the set of selected items changes.
+ *
+ * @param {OO.ui.Element[]} items Items currently in the group
+ */
+
/* Methods */
/**
this.items.splice.apply( this.items, [ index, 0 ].concat( items ) );
}
+ this.emit( 'change', this.getItems() );
return this;
};
}
}
+ this.emit( 'change', this.getItems() );
return this;
};
item.$element.detach();
}
+ this.emit( 'change', this.getItems() );
this.items = [];
return this;
};
*/
OO.ui.InputWidget.static.gatherPreInfuseState = function ( node, config ) {
var state = OO.ui.InputWidget.parent.static.gatherPreInfuseState( node, config );
- state.value = config.$input.val();
- // Might be better in TabIndexedElement, but it's awkward to do there because mixins are awkward
- state.focus = config.$input.is( ':focus' );
+ if ( config.$input && config.$input.length ) {
+ state.value = config.$input.val();
+ // Might be better in TabIndexedElement, but it's awkward to do there because mixins are awkward
+ state.focus = config.$input.is( ':focus' );
+ }
return state;
};
return state;
};
+/**
+ * @inheritdoc
+ */
+OO.ui.RadioSelectInputWidget.static.reusePreInfuseDOM = function ( node, config ) {
+ config = OO.ui.RadioSelectInputWidget.parent.static.reusePreInfuseDOM( node, config );
+ // Cannot reuse the `<input type=radio>` set
+ delete config.$input;
+ return config;
+};
+
/* Methods */
/**
OO.ui.ComboBoxInputWidget = function OoUiComboBoxInputWidget( config ) {
// Configuration initialization
config = $.extend( {
- indicator: 'down'
+ indicator: 'down',
+ autocomplete: false
}, config );
// For backwards-compatibility with ComboBoxWidget config
$.extend( config, config.input );
/*!
- * OOjs UI v0.16.4
+ * OOjs UI v0.16.5
* https://www.mediawiki.org/wiki/OOjs_UI
*
* Copyright 2011–2016 OOjs UI Team and other contributors.
* Released under the MIT license
* http://oojs.mit-license.org
*
- * Date: 2016-03-22T22:48:21Z
+ * Date: 2016-04-07T15:12:41Z
*/
( function ( OO ) {
/*!
- * OOjs UI v0.16.4
+ * OOjs UI v0.16.5
* https://www.mediawiki.org/wiki/OOjs_UI
*
* Copyright 2011–2016 OOjs UI Team and other contributors.
* Released under the MIT license
* http://oojs.mit-license.org
*
- * Date: 2016-03-22T22:48:25Z
+ * Date: 2016-04-07T15:12:44Z
*/
.oo-ui-popupTool .oo-ui-popupWidget-popup,
.oo-ui-popupTool .oo-ui-popupWidget-anchor {
/*!
- * OOjs UI v0.16.4
+ * OOjs UI v0.16.5
* https://www.mediawiki.org/wiki/OOjs_UI
*
* Copyright 2011–2016 OOjs UI Team and other contributors.
* Released under the MIT license
* http://oojs.mit-license.org
*
- * Date: 2016-03-22T22:48:25Z
+ * Date: 2016-04-07T15:12:44Z
*/
.oo-ui-popupTool .oo-ui-popupWidget-popup,
.oo-ui-popupTool .oo-ui-popupWidget-anchor {
/*!
- * OOjs UI v0.16.4
+ * OOjs UI v0.16.5
* https://www.mediawiki.org/wiki/OOjs_UI
*
* Copyright 2011–2016 OOjs UI Team and other contributors.
* Released under the MIT license
* http://oojs.mit-license.org
*
- * Date: 2016-03-22T22:48:21Z
+ * Date: 2016-04-07T15:12:41Z
*/
( function ( OO ) {
/*!
- * OOjs UI v0.16.4
+ * OOjs UI v0.16.5
* https://www.mediawiki.org/wiki/OOjs_UI
*
* Copyright 2011–2016 OOjs UI Team and other contributors.
* Released under the MIT license
* http://oojs.mit-license.org
*
- * Date: 2016-03-22T22:48:25Z
+ * Date: 2016-04-07T15:12:44Z
*/
.oo-ui-draggableElement-handle,
.oo-ui-draggableElement-handle.oo-ui-widget {
position: relative;
overflow: hidden;
}
-.oo-ui-selectFileWidget-selectButton > .oo-ui-buttonElement-button > input[type="file"] {
+.oo-ui-selectFileWidget-selectButton > .oo-ui-buttonElement-button > [type="file"] {
position: absolute;
margin: 0;
top: 0;
cursor: pointer;
padding-top: 100px;
}
-.oo-ui-selectFileWidget-selectButton.oo-ui-widget-disabled > .oo-ui-buttonElement-button > input[type="file"] {
+.oo-ui-selectFileWidget-selectButton.oo-ui-widget-disabled > .oo-ui-buttonElement-button > [type="file"] {
display: none;
}
.oo-ui-selectFileWidget-info {
width: 5.5em;
}
.oo-ui-selectFileWidget-dropTarget .oo-ui-selectFileWidget-info {
- border: none;
+ border: 0;
background: none;
display: block;
height: 100%;
/*!
- * OOjs UI v0.16.4
+ * OOjs UI v0.16.5
* https://www.mediawiki.org/wiki/OOjs_UI
*
* Copyright 2011–2016 OOjs UI Team and other contributors.
* Released under the MIT license
* http://oojs.mit-license.org
*
- * Date: 2016-03-22T22:48:25Z
+ * Date: 2016-04-07T15:12:44Z
*/
.oo-ui-draggableElement-handle,
.oo-ui-draggableElement-handle.oo-ui-widget {
}
.oo-ui-toggleSwitchWidget.oo-ui-widget-enabled:focus {
border-color: #347bff;
- outline: none;
+ outline: 0;
}
.oo-ui-toggleSwitchWidget.oo-ui-widget-enabled:focus.oo-ui-toggleWidget-on {
border-color: #347bff;
box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.1);
}
.oo-ui-toggleSwitchWidget.oo-ui-widget-disabled {
- background: #dddddd;
+ background-color: #dddddd;
border-color: #dddddd;
outline: 0;
}
.oo-ui-toggleSwitchWidget.oo-ui-widget-disabled .oo-ui-toggleSwitchWidget-grip {
- background: #ffffff;
+ background-color: #ffffff;
}
.oo-ui-progressBarWidget {
max-width: 50em;
overflow: hidden;
}
.oo-ui-progressBarWidget-bar {
+ background-color: #dddddd;
height: 1em;
- background: #dddddd;
-webkit-transition: width 200ms, margin-left 200ms;
-moz-transition: width 200ms, margin-left 200ms;
transition: width 200ms, margin-left 200ms;
position: relative;
overflow: hidden;
}
-.oo-ui-selectFileWidget-selectButton > .oo-ui-buttonElement-button > input[type="file"] {
+.oo-ui-selectFileWidget-selectButton > .oo-ui-buttonElement-button > [type="file"] {
position: absolute;
margin: 0;
top: 0;
cursor: pointer;
padding-top: 100px;
}
-.oo-ui-selectFileWidget-selectButton.oo-ui-widget-disabled > .oo-ui-buttonElement-button > input[type="file"] {
+.oo-ui-selectFileWidget-selectButton.oo-ui-widget-disabled > .oo-ui-buttonElement-button > [type="file"] {
display: none;
}
.oo-ui-selectFileWidget-info {
width: 5.5em;
}
.oo-ui-selectFileWidget-dropTarget .oo-ui-selectFileWidget-info {
- border: none;
+ border: 0;
background: none;
display: block;
height: 100%;
right: 2em;
}
.oo-ui-selectFileWidget-supported.oo-ui-widget-enabled.oo-ui-selectFileWidget-canDrop .oo-ui-selectFileWidget-dropTarget {
- background-color: rgba(52, 123, 255, 0.1);
+ background-color: #ebf2ff;
}
.oo-ui-selectFileWidget-empty.oo-ui-widget-disabled .oo-ui-selectFileWidget-dropTarget,
.oo-ui-selectFileWidget-notsupported .oo-ui-selectFileWidget-dropTarget {
vertical-align: middle;
}
.oo-ui-capsuleMultiSelectWidget-handle > .oo-ui-capsuleMultiSelectWidget-content > input:focus {
- outline: none;
+ outline: 0;
}
.oo-ui-capsuleMultiSelectWidget.oo-ui-indicatorElement .oo-ui-capsuleMultiSelectWidget-handle {
padding-right: 2.4875em;
overflow: hidden;
}
.oo-ui-capsuleItemWidget:focus {
- outline: none;
+ outline: 0;
border-color: #347bff;
}
.oo-ui-capsuleItemWidget.oo-ui-widget-disabled {
/*!
- * OOjs UI v0.16.4
+ * OOjs UI v0.16.5
* https://www.mediawiki.org/wiki/OOjs_UI
*
* Copyright 2011–2016 OOjs UI Team and other contributors.
* Released under the MIT license
* http://oojs.mit-license.org
*
- * Date: 2016-03-22T22:48:21Z
+ * Date: 2016-04-07T15:12:41Z
*/
( function ( OO ) {
/*!
- * OOjs UI v0.16.4
+ * OOjs UI v0.16.5
* https://www.mediawiki.org/wiki/OOjs_UI
*
* Copyright 2011–2016 OOjs UI Team and other contributors.
* Released under the MIT license
* http://oojs.mit-license.org
*
- * Date: 2016-03-22T22:48:25Z
+ * Date: 2016-04-07T15:12:44Z
*/
.oo-ui-actionWidget.oo-ui-pendingElement-pending {
background-image: /* @embed */ url(themes/apex/images/textures/pending.gif);
box-sizing: border-box;
}
.oo-ui-window-content:focus {
- outline: none;
+ outline: 0;
}
.oo-ui-window-head,
.oo-ui-window-foot {
.oo-ui-windowManager-modal.oo-ui-windowManager-floating > .oo-ui-dialog > .oo-ui-window-frame {
top: 1em;
bottom: 1em;
+ max-height: 100%;
+ max-height: calc(100% - 2em);
border: 1px solid #cccccc;
border-radius: 0.5em;
box-shadow: 0 0.2em 1em rgba(0, 0, 0, 0.3);
/*!
- * OOjs UI v0.16.4
+ * OOjs UI v0.16.5
* https://www.mediawiki.org/wiki/OOjs_UI
*
* Copyright 2011–2016 OOjs UI Team and other contributors.
* Released under the MIT license
* http://oojs.mit-license.org
*
- * Date: 2016-03-22T22:48:25Z
+ * Date: 2016-04-07T15:12:44Z
*/
.oo-ui-window {
background: transparent;
box-sizing: border-box;
}
.oo-ui-window-content:focus {
- outline: none;
+ outline: 0;
}
.oo-ui-window-head,
.oo-ui-window-foot {
.oo-ui-windowManager-modal.oo-ui-windowManager-floating > .oo-ui-dialog > .oo-ui-window-frame {
top: 1em;
bottom: 1em;
+ max-height: 100%;
+ max-height: calc(100% - 2em);
border: 1px solid #aaaaaa;
border-radius: 2px;
box-shadow: 0 0.15em 0 0 rgba(0, 0, 0, 0.15);
/*!
- * OOjs UI v0.16.4
+ * OOjs UI v0.16.5
* https://www.mediawiki.org/wiki/OOjs_UI
*
* Copyright 2011–2016 OOjs UI Team and other contributors.
* Released under the MIT license
* http://oojs.mit-license.org
*
- * Date: 2016-03-22T22:48:21Z
+ * Date: 2016-04-07T15:12:41Z
*/
( function ( OO ) {
* @param {string|number} [dim.width] Width
* @param {string|number} [dim.minWidth] Minimum width
* @param {string|number} [dim.maxWidth] Maximum width
- * @param {string|number} [dim.width] Height, omit to set based on height of contents
- * @param {string|number} [dim.minWidth] Minimum height
- * @param {string|number} [dim.maxWidth] Maximum height
+ * @param {string|number} [dim.height] Height, omit to set based on height of contents
+ * @param {string|number} [dim.minHeight] Minimum height
+ * @param {string|number} [dim.maxHeight] Maximum height
* @chainable
*/
OO.ui.Window.prototype.setDimensions = function ( dim ) {
"prefix": "oo-ui-icon",
"intro": "@import '../../../../src/styles/common';",
"images": {
+ "articles": { "file": {
+ "ltr": "images/icons/articles-ltr.svg",
+ "rtl": "images/icons/articles-rtl.svg"
+ } },
"articleRedirect": { "file": {
"ltr": "images/icons/articleRedirect-ltr.svg",
"rtl": "images/icons/articleRedirect-rtl.svg"
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+ <path d="M11 12h4V7h-4v5zm-5 2h9v-1H6v1zm0 2h9v-1H6v1zm0 2h9v-1H6v1zm4-9H6v1h4V9zm0 2H6v1h4v-1zm0-4H6v1h4V7zM4 5h13v16H7c-1.7 0-3-1.3-3-3V5z"/>
+ <path d="M18 4v14h2V2H7v2" fill-rule="evenodd"/>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+ <path d="M13 12H9V7h4v5zm5 2H9v-1h9v1zm0 2H9v-1h9v1zm0 2H9v-1h9v1zm-4-9h4v1h-4V9zm0 2h4v1h-4v-1zm0-4h4v1h-4V7zm6-2H7v16h10c1.7 0 3-1.3 3-3V5z"/>
+ <path d="M6 4v14H4V2h13v2" fill-rule="evenodd"/>
+</svg>
"ltr": "images/icons/article-ltr.svg",
"rtl": "images/icons/article-rtl.svg"
} },
+ "articles": { "file": {
+ "ltr": "images/icons/articles-ltr.svg",
+ "rtl": "images/icons/articles-rtl.svg"
+ } },
"articleCheck": { "file": {
"ltr": "images/icons/articleCheck-ltr.svg",
"rtl": "images/icons/articleCheck-rtl.svg"
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><style>* { fill: #ffffff }</style>
+ <path d="M11 12h4V7h-4v5zm-5 2h9v-1H6v1zm0 2h9v-1H6v1zm0 2h9v-1H6v1zm4-9H6v1h4V9zm0 2H6v1h4v-1zm0-4H6v1h4V7zM4 5h13v16H7c-1.7 0-3-1.3-3-3V5z"/>
+ <path d="M18 4v14h2V2H7v2" fill-rule="evenodd"/>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+ <path d="M11 12h4V7h-4v5zm-5 2h9v-1H6v1zm0 2h9v-1H6v1zm0 2h9v-1H6v1zm4-9H6v1h4V9zm0 2H6v1h4v-1zm0-4H6v1h4V7zM4 5h13v16H7c-1.7 0-3-1.3-3-3V5z"/>
+ <path d="M18 4v14h2V2H7v2" fill-rule="evenodd"/>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><style>* { fill: #ffffff }</style>
+ <path d="M13 12H9V7h4v5zm5 2H9v-1h9v1zm0 2H9v-1h9v1zm0 2H9v-1h9v1zm-4-9h4v1h-4V9zm0 2h4v1h-4v-1zm0-4h4v1h-4V7zm6-2H7v16h10c1.7 0 3-1.3 3-3V5z"/>
+ <path d="M6 4v14H4V2h13v2" fill-rule="evenodd"/>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+ <path d="M13 12H9V7h4v5zm5 2H9v-1h9v1zm0 2H9v-1h9v1zm0 2H9v-1h9v1zm-4-9h4v1h-4V9zm0 2h4v1h-4v-1zm0-4h4v1h-4V7zm6-2H7v16h10c1.7 0 3-1.3 3-3V5z"/>
+ <path d="M6 4v14H4V2h13v2" fill-rule="evenodd"/>
+</svg>
var pluralRules,
pluralFormIndex = 0;
- if ( explicitPluralForms && explicitPluralForms[ count ] ) {
+ if ( explicitPluralForms && ( explicitPluralForms[ count ] !== undefined ) ) {
return explicitPluralForms[ count ];
}
+++ /dev/null
-<?php
-
-/**
- * @covers Fallback
- */
-class FallbackTest extends MediaWikiTestCase {
- public function testFallbackMbstringFunctions() {
- if ( !extension_loaded( 'mbstring' ) ) {
- $this->markTestSkipped(
- "The mb_string functions must be installed to test the fallback functions"
- );
- }
-
- $sampleUTF = "Östergötland_coat_of_arms.png";
-
- // mb_substr
- $substr_params = [
- [ 0, 0 ],
- [ 5, -4 ],
- [ 33 ],
- [ 100, -5 ],
- [ -8, 10 ],
- [ 1, 1 ],
- [ 2, -1 ]
- ];
-
- foreach ( $substr_params as $param_set ) {
- $old_param_set = $param_set;
- array_unshift( $param_set, $sampleUTF );
-
- $this->assertEquals(
- call_user_func_array( 'mb_substr', $param_set ),
- call_user_func_array( 'Fallback::mb_substr', $param_set ),
- 'Fallback mb_substr with params ' . implode( ', ', $old_param_set )
- );
- }
-
- // mb_strlen
- $this->assertEquals(
- mb_strlen( $sampleUTF ),
- Fallback::mb_strlen( $sampleUTF ),
- 'Fallback mb_strlen'
- );
-
- // mb_str(r?)pos
- $strpos_params = [
- // array( 'ter' ),
- // array( 'Ö' ),
- // array( 'Ö', 3 ),
- // array( 'oat_', 100 ),
- // array( 'c', -10 ),
- // Broken for now
- ];
-
- foreach ( $strpos_params as $param_set ) {
- $old_param_set = $param_set;
- array_unshift( $param_set, $sampleUTF );
-
- $this->assertEquals(
- call_user_func_array( 'mb_strpos', $param_set ),
- call_user_func_array( 'Fallback::mb_strpos', $param_set ),
- 'Fallback mb_strpos with params ' . implode( ', ', $old_param_set )
- );
-
- $this->assertEquals(
- call_user_func_array( 'mb_strrpos', $param_set ),
- call_user_func_array( 'Fallback::mb_strrpos', $param_set ),
- 'Fallback mb_strrpos with params ' . implode( ', ', $old_param_set )
- );
- }
- }
-}
'jquerymsg-test-version-entrypoints-index-php': '[https://www.mediawiki.org/wiki/Manual:index.php index.php]',
'external-link-replace': 'Foo [$1 bar]',
- 'external-link-plural': 'Foo {{PLURAL:$1|is [$2 one]|are [$2 some]|2=[$2 two]|3=three|4=a=b|5=}} things.',
- 'plural-only-explicit-forms': 'It is a {{PLURAL:$1|1=single|2=double}} room.'
+ 'external-link-plural': 'Foo {{PLURAL:$1|is [$2 one]|are [$2 some]|2=[$2 two]|3=three|4=a=b}} things.',
+ 'plural-only-explicit-forms': 'It is a {{PLURAL:$1|1=single|2=double}} room.',
+ 'plural-empty-explicit-form': 'There is me{{PLURAL:$1|0=| and other people}}.'
}
} ) );
next();
}
- QUnit.test( 'Replace', 16, function ( assert ) {
+ QUnit.test( 'Replace', 15, function ( assert ) {
mw.messages.set( 'simple', 'Foo $1 baz $2' );
assert.equal( formatParse( 'simple' ), 'Foo $1 baz $2', 'Replacements with no substitutes' );
'Foo a=b things.',
'Only first equal sign is used as delimiter for explicit plural form. Repeated equal signs does not create issue'
);
- assert.equal(
- formatParse( 'external-link-plural', 5, 'http://example.org' ),
- 'Foo are <a href="http://example.org">some</a> things.',
- 'Invalid explicit plural form. Plural fallback to the "other" plural form'
- );
assert.equal(
formatParse( 'external-link-plural', 6, 'http://example.org' ),
'Foo are <a href="http://example.org">some</a> things.',
);
} );
- QUnit.test( 'Plural', 6, function ( assert ) {
+ QUnit.test( 'Plural', 9, function ( assert ) {
assert.equal( formatParse( 'plural-msg', 0 ), 'Found 0 items', 'Plural test for english with zero as count' );
assert.equal( formatParse( 'plural-msg', 1 ), 'Found 1 item', 'Singular test for english' );
assert.equal( formatParse( 'plural-msg', 2 ), 'Found 2 items', 'Plural test for english' );
assert.equal( formatParse( 'plural-msg-explicit-forms-nested', 6 ), 'Found 6 results', 'Plural message with explicit plural forms' );
assert.equal( formatParse( 'plural-msg-explicit-forms-nested', 0 ), 'Found no results in Wiki', 'Plural message with explicit plural forms, with nested {{SITENAME}}' );
assert.equal( formatParse( 'plural-msg-explicit-forms-nested', 1 ), 'Found 1 result', 'Plural message with explicit plural forms with placeholder nested' );
+ assert.equal( formatParse( 'plural-empty-explicit-form', 0 ), 'There is me.' );
+ assert.equal( formatParse( 'plural-empty-explicit-form', 1 ), 'There is me and other people.' );
+ assert.equal( formatParse( 'plural-empty-explicit-form', 2 ), 'There is me and other people.' );
} );
QUnit.test( 'Gender', 15, function ( assert ) {