r50601 MediaWiki - Code Review archive

Repository:MediaWiki
Revision:r50600‎ | r50601 | r50602 >
Date:20:32, 14 May 2009
Author:soxred93
Status:deferred
Tags:
Comment:
Branching CheckUser extension.
Modified paths:
  • /branches/new-checkuser (added) (history)
  • /branches/new-checkuser/CheckUser.alias.php (added) (history)
  • /branches/new-checkuser/CheckUser.i18n.php (added) (history)
  • /branches/new-checkuser/CheckUser.php (added) (history)
  • /branches/new-checkuser/CheckUser_body.php (added) (history)
  • /branches/new-checkuser/archives (added) (history)
  • /branches/new-checkuser/archives/patch-cu_changes_indexes.sql (added) (history)
  • /branches/new-checkuser/archives/patch-cu_changes_indexes2.sql (added) (history)
  • /branches/new-checkuser/checkuser.js (added) (history)
  • /branches/new-checkuser/cu_changes.pg.sql (added) (history)
  • /branches/new-checkuser/cu_changes.sql (added) (history)
  • /branches/new-checkuser/cu_log.pg.sql (added) (history)
  • /branches/new-checkuser/cu_log.sql (added) (history)
  • /branches/new-checkuser/cu_log_import.inc (added) (history)
  • /branches/new-checkuser/importLog.php (added) (history)
  • /branches/new-checkuser/install.inc (added) (history)
  • /branches/new-checkuser/install.php (added) (history)

Diff [purge]

Index: branches/new-checkuser/CheckUser_body.php
@@ -0,0 +1,1376 @@
 2+<?php
 3+
 4+if ( !defined( 'MEDIAWIKI' ) ) {
 5+ echo "CheckUser extension\n";
 6+ exit( 1 );
 7+}
 8+
 9+
 10+class CheckUser extends SpecialPage
 11+{
 12+ function CheckUser() {
 13+ global $wgUser;
 14+ if ( $wgUser->isAllowed( 'checkuser' ) || !$wgUser->isAllowed( 'checkuser-log' ) ) {
 15+ SpecialPage::SpecialPage('CheckUser', 'checkuser');
 16+ } else {
 17+ SpecialPage::SpecialPage('CheckUser', 'checkuser-log');
 18+ }
 19+ wfLoadExtensionMessages('CheckUser');
 20+ }
 21+
 22+ function execute( $subpage ) {
 23+ global $wgRequest, $wgOut, $wgUser, $wgContLang;
 24+
 25+ $this->setHeaders();
 26+ $this->sk = $wgUser->getSkin();
 27+
 28+ // This is horribly shitty.
 29+ // Lacking formal aliases, it's tough to ensure we have compatibility.
 30+ // Links may break, which sucks.
 31+ // Language fallbacks will not always be properly utilized.
 32+ $logMatches = array(
 33+ wfMsgForContent( 'checkuser-log-subpage' ),
 34+ 'Log'
 35+ );
 36+
 37+ foreach( $logMatches as $log ) {
 38+ if ( str_replace( '_', ' ', $wgContLang->lc( $subpage ) )
 39+ == str_replace( '_ ', ' ', $wgContLang->lc( $log ) ) ) {
 40+ if( !$wgUser->isAllowed( 'checkuser-log' ) ) {
 41+ $wgOut->permissionRequired( 'checkuser-log' );
 42+ return;
 43+ }
 44+
 45+ $this->showLog();
 46+ return;
 47+ }
 48+ }
 49+
 50+ if( !$wgUser->isAllowed( 'checkuser' ) ) {
 51+ if ( $wgUser->isAllowed( 'checkuser-log' ) ) {
 52+ $wgOut->addWikiText( wfMsg( 'checkuser-summary' ) .
 53+ "\n\n[[" . $this->getLogSubpageTitle()->getPrefixedText() .
 54+ '|' . wfMsg( 'checkuser-showlog' ) . ']]'
 55+ );
 56+ return;
 57+ }
 58+
 59+ $wgOut->permissionRequired( 'checkuser' );
 60+ return;
 61+ }
 62+
 63+ $user = $wgRequest->getText( 'user' ) ?
 64+ $wgRequest->getText( 'user' ) : $wgRequest->getText( 'ip' );
 65+ $user = trim($user);
 66+ $reason = $wgRequest->getText( 'reason' );
 67+ $blockreason = $wgRequest->getText( 'blockreason' );
 68+ $checktype = $wgRequest->getVal( 'checktype' );
 69+ $period = $wgRequest->getInt( 'period' );
 70+ $users = $wgRequest->getArray( 'users' );
 71+ $tag = $wgRequest->getBool('usetag') ? trim( $wgRequest->getVal( 'tag' ) ) : "";
 72+ $talkTag = $wgRequest->getBool('usettag') ? trim( $wgRequest->getVal( 'talktag' ) ) : "";
 73+
 74+ # An IPv4? An IPv6? CIDR included?
 75+ if( IP::isIPAddress($user) ) {
 76+ $ip = IP::sanitizeIP($user);
 77+ $name = '';
 78+ $xff = '';
 79+ # An IPv4/IPv6 XFF string? CIDR included?
 80+ } else if( preg_match('/^(.+)\/xff$/',$user,$m) && IP::isIPAddress($m[1]) ) {
 81+ $ip = '';
 82+ $name = '';
 83+ $xff = IP::sanitizeIP($m[1]);
 84+ # A user?
 85+ } else {
 86+ $ip = '';
 87+ $name = $user;
 88+ $xff = '';
 89+ }
 90+
 91+ $this->doForm( $user, $reason, $checktype, $ip, $xff, $name, $period );
 92+ # Perform one of the various submit operations...
 93+ if( $wgRequest->wasPosted() ) {
 94+ if( $wgRequest->getVal('action') === 'block' ) {
 95+ $this->doMassUserBlock( $users, $blockreason, $tag, $talkTag );
 96+ } else if( $checktype=='subuserips' ) {
 97+ $this->doUserIPsRequest( $name, $reason, $period );
 98+ } else if( $xff && $checktype=='subipedits' ) {
 99+ $this->doIPEditsRequest( $xff, true, $reason, $period );
 100+ } else if( $checktype=='subipedits' ) {
 101+ $this->doIPEditsRequest( $ip, false, $reason, $period );
 102+ } else if( $xff && $checktype=='subipusers' ) {
 103+ $this->doIPUsersRequest( $xff, true, $reason, $period, $tag, $talkTag );
 104+ } else if( $checktype=='subipusers' ) {
 105+ $this->doIPUsersRequest( $ip, false, $reason, $period, $tag, $talkTag );
 106+ } else if( $checktype=='subuseredits' ) {
 107+ $this->doUserEditsRequest( $user, $reason, $period );
 108+ }
 109+ }
 110+ # Add CIDR calculation convenience form
 111+ $this->addJsCIDRForm();
 112+ $this->addStyles();
 113+ }
 114+
 115+ /**
 116+ * As we use the same small set of messages in various methods and that
 117+ * they are called often, we call them once and save them in $this->message
 118+ */
 119+ protected function preCacheMessages() {
 120+ // Precache various messages
 121+ if( !isset( $this->message ) ) {
 122+ foreach( explode(' ', 'diff hist minoreditletter newpageletter blocklink log' ) as $msg ) {
 123+ $this->message[$msg] = wfMsgExt( $msg, array( 'escape') );
 124+ }
 125+ }
 126+ }
 127+
 128+ public function getLogSubpageTitle() {
 129+ if ( !isset( $this->logSubpageTitle ) ) {
 130+ $this->logSubpageTitle = $this->getTitle( wfMsgForContent( 'checkuser-log-subpage' ) );
 131+ }
 132+ return $this->logSubpageTitle;
 133+ }
 134+
 135+ protected function doForm( $user, $reason, $checktype, $ip, $xff, $name, $period ) {
 136+ global $wgOut, $wgUser;
 137+ $action = $this->getTitle()->escapeLocalUrl();
 138+ # Fill in requested type if it makes sense
 139+ $encipusers = $encipedits = $encuserips = $encuseredits = 0;
 140+ if( $checktype=='subipusers' && ( $ip || $xff ) )
 141+ $encipusers = 1;
 142+ else if( $checktype=='subipedits' && ( $ip || $xff ) )
 143+ $encipedits = 1;
 144+ else if( $checktype=='subuserips' && $name )
 145+ $encuserips = 1;
 146+ else if( $checktype=='subuseredits' && $name )
 147+ $encuseredits = 1;
 148+ # Defaults otherwise
 149+ else if( $ip || $xff )
 150+ $encipedits = 1;
 151+ else
 152+ $encuserips = 1;
 153+ # Compile our nice form
 154+ # User box length should fit things like "2001:0db8:85a3:08d3:1319:8a2e:0370:7344/100/xff"
 155+ if( $wgUser->isAllowed( 'checkuser-log' ) ) {
 156+ $wgOut->addWikiText( wfMsg( 'checkuser-summary' ) .
 157+ "\n\n[[" . $this->getLogSubpageTitle()->getPrefixedText() .
 158+ '|' . wfMsg( 'checkuser-showlog' ) . ']]'
 159+ );
 160+ }
 161+ $form = "<form name='checkuserform' id='checkuserform' action=\"$action\" method='post'>";
 162+ $form .= "<fieldset><legend>".wfMsgHtml( "checkuser-query" )."</legend>";
 163+ $form .= "<table border='0' cellpadding='2'><tr>";
 164+ $form .= "<td>".wfMsgHtml( "checkuser-target" ).":</td>";
 165+ $form .= "<td>".Xml::input( 'user', 46, $user, array( 'id' => 'checktarget' ) );
 166+ $form .= "&nbsp;".$this->getPeriodMenu( $period ) . "</td>";
 167+ $form .= "</tr><tr>";
 168+ $form .= "<td></td><td class='checkuserradios'><table border='0' cellpadding='3'><tr>";
 169+ $form .= "<td>".Xml::radio( 'checktype', 'subuserips', $encuserips, array('id' => 'subuserips') );
 170+ $form .= " ".Xml::label( wfMsgHtml("checkuser-ips"), 'subuserips' )."</td>";
 171+ $form .= "<td>".Xml::radio( 'checktype', 'subipedits', $encipedits, array('id' => 'subipedits') );
 172+ $form .= " ".Xml::label( wfMsgHtml("checkuser-edits"), 'subipedits' )."</td>";
 173+ $form .= "<td>".Xml::radio( 'checktype', 'subipusers', $encipusers, array('id' => 'subipusers') );
 174+ $form .= " ".Xml::label( wfMsgHtml("checkuser-users"), 'subipusers' )."</td>";
 175+ $form .= "<td>".Xml::radio( 'checktype', 'subuseredits', $encuseredits, array('id' => 'subuseredits') );
 176+ $form .= " ".Xml::label( wfMsgHtml("checkuser-account"), 'subuseredits' )."</td>";
 177+ $form .= "</tr></table></td>";
 178+ $form .= "</tr><tr>";
 179+ $form .= "<td>".wfMsgHtml( "checkuser-reason" )."</td>";
 180+ $form .= "<td>".Xml::input( 'reason', 46, $reason, array( 'maxlength' => '150', 'id' => 'checkreason' ) );
 181+ $form .= "&nbsp; &nbsp;".Xml::submitButton( wfMsgHtml('checkuser-check'),
 182+ array('id' => 'checkusersubmit','name' => 'checkusersubmit') )."</td>";
 183+ $form .= "</tr></table></fieldset></form>";
 184+ # Output form
 185+ $wgOut->addHTML( $form );
 186+ }
 187+
 188+ /**
 189+ * Add CSS/JS
 190+ */
 191+ protected function addStyles() {
 192+ global $wgScriptPath, $wgCheckUserStyleVersion, $wgOut;
 193+ $encJSFile = htmlspecialchars( "$wgScriptPath/extensions/CheckUser/checkuser.js?$wgCheckUserStyleVersion" );
 194+ $wgOut->addScript( "<script type=\"text/javascript\" src=\"$encJSFile\"></script>" );
 195+ }
 196+
 197+ /**
 198+ * Get a selector of time period options
 199+ * @param int $selected, selected level
 200+ */
 201+ protected function getPeriodMenu( $selected=null ) {
 202+ $s = "<label for='period'>" . wfMsgHtml('checkuser-period') . "</label>&nbsp;";
 203+ $s .= Xml::openElement( 'select', array('name' => 'period','id' => 'period','style' => 'margin-top:.2em;') );
 204+ $s .= Xml::option( wfMsg( "checkuser-week-1" ), 7, $selected===7 );
 205+ $s .= Xml::option( wfMsg( "checkuser-week-2" ), 14, $selected===14 );
 206+ $s .= Xml::option( wfMsg( "checkuser-month" ), 31, $selected===31 );
 207+ $s .= Xml::option( wfMsg( "checkuser-all" ), 0, $selected===0 );
 208+ $s .= Xml::closeElement('select')."\n";
 209+ return $s;
 210+ }
 211+
 212+ /**
 213+ * Make a quick JS form for admins to calculate block ranges
 214+ */
 215+ protected function addJsCIDRForm() {
 216+ global $wgOut;
 217+ $s = '<fieldset id="mw-checkuser-cidrform" style="display:none; clear:both;">'.
 218+ '<legend>'.wfMsgHtml('checkuser-cidr-label').'</legend>';
 219+ $s .= '<textarea id="mw-checkuser-iplist" rows="5" cols="50" onkeyup="updateCIDRresult()" onclick="updateCIDRresult()"></textarea><br/>';
 220+ $s .= wfMsgHtml('checkuser-cidr-res') . '&nbsp;' .
 221+ Xml::input( 'mw-checkuser-cidr-res',35,'',array('id'=>'mw-checkuser-cidr-res') ) .
 222+ '&nbsp;<strong id="mw-checkuser-ipnote"></strong>';
 223+ $s .= '</fieldset>';
 224+ $wgOut->addHTML( $s );
 225+ }
 226+
 227+ /**
 228+ * Block a list of selected users
 229+ * @param array $users
 230+ * @param string $reason
 231+ * @param string $tag
 232+ */
 233+ protected function doMassUserBlock( $users, $reason = '', $tag = '', $talkTag = '' ) {
 234+ global $wgOut, $wgUser, $wgCheckUserMaxBlocks, $wgLang;
 235+ if( empty($users) || $wgUser->isBlocked(false) ) {
 236+ $wgOut->addWikiText( wfMsgExt('checkuser-block-failure',array('parsemag')) );
 237+ return;
 238+ } else if( count($users) > $wgCheckUserMaxBlocks ) {
 239+ $wgOut->addWikiText( wfMsgExt('checkuser-block-limit',array('parsemag')) );
 240+ return;
 241+ } else if( !$reason ) {
 242+ $wgOut->addWikiText( wfMsgExt('checkuser-block-noreason',array('parsemag')) );
 243+ return;
 244+ }
 245+ $safeUsers = IPBlockForm::doMassUserBlock( $users, $reason, $tag, $talkTag );
 246+ if( !empty( $safeUsers ) ) {
 247+ $n = count( $safeUsers );
 248+ $ulist = $wgLang->listToText( $safeUsers );
 249+ $wgOut->addWikiText( wfMsgExt( 'checkuser-block-success', 'parsemag', $ulist, $wgLang->formatNum( $n ) ) );
 250+ } else {
 251+ $wgOut->addWikiText( wfMsgExt( 'checkuser-block-failure', 'parsemag' ) );
 252+ }
 253+ }
 254+
 255+ protected function noMatchesMessage( $userName ) {
 256+ global $wgLang;
 257+ $dbr = wfGetDB( DB_SLAVE );
 258+ $user_id = User::idFromName($userName);
 259+ if( $user_id ) {
 260+ $revEdit = $dbr->selectField( 'revision',
 261+ 'rev_timestamp',
 262+ array( 'rev_user' => $user_id ),
 263+ __METHOD__,
 264+ array( 'ORDER BY' => 'rev_timestamp DESC')
 265+ );
 266+ } else {
 267+ $revEdit = $dbr->selectField( 'revision',
 268+ 'rev_timestamp',
 269+ array( 'rev_user_text' => $userName ),
 270+ __METHOD__,
 271+ array( 'ORDER BY' => 'rev_timestamp DESC')
 272+ );
 273+ }
 274+ $logEdit = 0;
 275+ if( $user_id ) {
 276+ $logEdit = $dbr->selectField( 'logging',
 277+ 'log_timestamp',
 278+ array( 'log_user' => $user_id ),
 279+ __METHOD__,
 280+ array( 'ORDER BY' => 'log_timestamp DESC')
 281+ );
 282+ }
 283+ $lastEdit = max( $revEdit, $logEdit );
 284+ if( $lastEdit ) {
 285+ $lastEditDate = $wgLang->date( wfTimestamp(TS_MW,$lastEdit), true );
 286+ $lastEditTime = $wgLang->time( wfTimestamp(TS_MW,$lastEdit), true );
 287+ return wfMsgHtml( 'checkuser-nomatch-edits', $lastEditDate, $lastEditTime );
 288+ }
 289+ return wfMsgExt('checkuser-nomatch','parse');
 290+ }
 291+
 292+ /**
 293+ * @param string $ip
 294+ * @param bool $xfor
 295+ * @param string $reason
 296+ * Get all IPs used by a user
 297+ * Shows first and last date and number of edits
 298+ */
 299+ protected function doUserIPsRequest( $user , $reason = '', $period = 0 ) {
 300+ global $wgOut, $wgLang, $wgUser;
 301+
 302+ $userTitle = Title::newFromText( $user, NS_USER );
 303+ if( !is_null( $userTitle ) ) {
 304+ // normalize the username
 305+ $user = $userTitle->getText();
 306+ }
 307+ # IPs are passed in as a blank string
 308+ if( !$user ) {
 309+ $wgOut->addWikiMsg( 'nouserspecified' );
 310+ return;
 311+ }
 312+ # Get ID, works better than text as user may have been renamed
 313+ $user_id = User::idFromName($user);
 314+
 315+ # If user is not IP or nonexistent
 316+ if( !$user_id ) {
 317+ $s = wfMsgExt('nosuchusershort',array('parse'),$user);
 318+ $wgOut->addHTML( $s );
 319+ return;
 320+ }
 321+
 322+ if( !$this->addLogEntry( 'userips', 'user', $user, $reason, $user_id ) ) {
 323+ $wgOut->addHTML( '<p>'.wfMsgHtml('checkuser-log-fail').'</p>' );
 324+ }
 325+ $dbr = wfGetDB( DB_SLAVE );
 326+ $time_conds = $this->getTimeConds( $period );
 327+ # Ordering by the latest timestamp makes a small filesort on the IP list
 328+ $cu_changes = $dbr->tableName( 'cu_changes' );
 329+ $use_index = $dbr->useIndexClause( 'cuc_user_ip_time' );
 330+ $sql = "SELECT cuc_ip,cuc_ip_hex, COUNT(*) AS count,
 331+ MIN(cuc_timestamp) AS first, MAX(cuc_timestamp) AS last
 332+ FROM $cu_changes $use_index WHERE cuc_user = $user_id AND $time_conds
 333+ GROUP BY cuc_ip,cuc_ip_hex ORDER BY last DESC LIMIT 5001";
 334+
 335+ $ret = $dbr->query( $sql, __METHOD__ );
 336+ if( !$dbr->numRows( $ret ) ) {
 337+ $s = $this->noMatchesMessage($user)."\n";
 338+ } else {
 339+ $blockip = SpecialPage::getTitleFor( 'blockip' );
 340+ $ips_edits = array();
 341+ $counter = 0;
 342+ while( $row = $dbr->fetchObject($ret) ) {
 343+ if( $counter >= 5000 ) {
 344+ $wgOut->addHTML( wfMsgExt('checkuser-limited',array('parse')) );
 345+ break;
 346+ }
 347+ $ips_edits[$row->cuc_ip] = $row->count;
 348+ $ips_first[$row->cuc_ip] = $row->first;
 349+ $ips_last[$row->cuc_ip] = $row->last;
 350+ $ips_hex[$row->cuc_ip] = $row->cuc_ip_hex;
 351+ ++$counter;
 352+ }
 353+ // Count pinging might take some time...make sure it is there
 354+ wfSuppressWarnings();
 355+ set_time_limit(60);
 356+ wfRestoreWarnings();
 357+
 358+ $logs = SpecialPage::getTitleFor( 'Log' );
 359+ $blocklist = SpecialPage::getTitleFor( 'Ipblocklist' );
 360+ $s = '<div id="checkuserresults"><ul>';
 361+ foreach( $ips_edits as $ip => $edits ) {
 362+ $s .= '<li>';
 363+ $s .= '<a href="' .
 364+ $this->getTitle()->escapeLocalURL( 'user='.urlencode($ip) . '&reason='.urlencode($reason) ) . '">' .
 365+ htmlspecialchars($ip) . '</a>';
 366+ $s .= ' (<a href="' . $blockip->escapeLocalURL( 'ip='.urlencode($ip) ).'">' .
 367+ wfMsgHtml('blocklink') . '</a>)';
 368+ if( $ips_first[$ip] == $ips_last[$ip] ) {
 369+ $s .= ' (' . $wgLang->timeanddate( wfTimestamp(TS_MW,$ips_first[$ip]), true ) . ') ';
 370+ } else {
 371+ $s .= ' (' . $wgLang->timeanddate( wfTimestamp(TS_MW,$ips_first[$ip]), true ) .
 372+ ' -- ' . $wgLang->timeanddate( wfTimestamp(TS_MW,$ips_last[$ip]), true ) . ') ';
 373+ }
 374+ $s .= ' <strong>[' . $edits . ']</strong>';
 375+
 376+ # If we get some results, it helps to know if the IP in general
 377+ # has a lot more edits, e.g. "tip of the iceberg"...
 378+ $ipedits = $dbr->estimateRowCount( 'cu_changes', '*',
 379+ array( 'cuc_ip_hex' => $ips_hex[$ip] ),
 380+ __METHOD__ );
 381+ # If small enough, get a more accurate count
 382+ if( $ipedits <= 1000 ) {
 383+ $ipedits = $dbr->selectField( 'cu_changes', 'COUNT(*)',
 384+ array( 'cuc_ip_hex' => $ips_hex[$ip] ),
 385+ __METHOD__ );
 386+ }
 387+ if( $ipedits > $ips_edits[$ip] ) {
 388+ $s .= ' <i>(' . wfMsgHtml('checkuser-ipeditcount',$ipedits) . ')</i>';
 389+ }
 390+
 391+ # If this IP is blocked, give a link to the block log
 392+ $block = new Block();
 393+ $block->fromMaster( false ); // use slaves
 394+ if( $block->load( $ip, 0 ) ) {
 395+ if( IP::isIPAddress($block->mAddress) && strpos($block->mAddress,'/') ) {
 396+ $userpage = Title::makeTitle( NS_USER, $block->mAddress );
 397+ $blocklog = $this->sk->makeKnownLinkObj( $logs, wfMsgHtml('checkuser-blocked'),
 398+ 'type=block&page=' . urlencode( $userpage->getPrefixedText() ) );
 399+ $s .= ' <strong>(' . $blocklog . ' - ' . $block->mAddress . ')</strong>';
 400+ } else if( $block->mAuto ) {
 401+ $blocklog = $this->sk->makeKnownLinkObj( $blocklist, wfMsgHtml('checkuser-blocked'),
 402+ 'ip=' . urlencode( "#$block->mId" ) );
 403+ $s .= ' <strong>(' . $blocklog . ')</strong>';
 404+ } else {
 405+ $userpage = Title::makeTitle( NS_USER, $ip );
 406+ $blocklog = $this->sk->makeKnownLinkObj( $logs, wfMsgHtml('checkuser-blocked'),
 407+ 'type=block&page=' . urlencode( $userpage->getPrefixedText() ) );
 408+ $s .= ' <strong>(' . $blocklog . ')</strong>';
 409+ }
 410+ }
 411+ $s .= "<div style='margin-left:5%'>";
 412+ $s .= "<small>" . wfMsgExt('checkuser-toollinks',array('parseinline'),urlencode($ip)) . "</small>";
 413+ $s .= "</div>";
 414+ $s .= "</li>\n";
 415+ }
 416+ $s .= '</ul></div>';
 417+ }
 418+ $wgOut->addHTML( $s );
 419+ $dbr->freeResult( $ret );
 420+ }
 421+
 422+ /**
 423+ * @param string $ip
 424+ * @param bool $xfor
 425+ * @param string $reason
 426+ * Shows all edits in Recent Changes by this IP (or range) and who made them
 427+ */
 428+ protected function doIPEditsRequest( $ip, $xfor = false, $reason = '', $period = 0 ) {
 429+ global $wgUser, $wgOut, $wgLang;
 430+ $dbr = wfGetDB( DB_SLAVE );
 431+ # Invalid IPs are passed in as a blank string
 432+ $ip_conds = $this->getIpConds( $dbr, $ip, $xfor );
 433+ if( !$ip || $ip_conds === false ) {
 434+ $wgOut->addWikiMsg( 'badipaddress' );
 435+ return;
 436+ }
 437+
 438+ $logType = 'ipedits';
 439+ if( $xfor ) {
 440+ $logType .= '-xff';
 441+ }
 442+ # Record check...
 443+ if( !$this->addLogEntry( $logType, 'ip', $ip, $reason ) ) {
 444+ $wgOut->addWikiMsg( 'checkuser-log-fail' );
 445+ }
 446+
 447+ $ip_conds = $dbr->makeList( $ip_conds, LIST_AND );
 448+ $time_conds = $this->getTimeConds( $period );
 449+ $cu_changes = $dbr->tableName( 'cu_changes' );
 450+ # Ordered in descent by timestamp. Can cause large filesorts on range scans.
 451+ # Check how many rows will need sorting ahead of time to see if this is too big.
 452+ # Also, if we only show 5000, too many will be ignored as well.
 453+ $index = $xfor ? 'cuc_xff_hex_time' : 'cuc_ip_hex_time';
 454+ if( strpos($ip,'/') !== false ) {
 455+ # Quick index check only OK if no time constraint
 456+ if( $period ) {
 457+ $rangecount = $dbr->selectField( 'cu_changes', 'COUNT(*)',
 458+ array( $ip_conds, $time_conds ),
 459+ __METHOD__,
 460+ array( 'USE INDEX' => $index ) );
 461+ } else {
 462+ $rangecount = $dbr->estimateRowCount( 'cu_changes', '*',
 463+ array( $ip_conds ),
 464+ __METHOD__,
 465+ array( 'USE INDEX' => $index ) );
 466+ }
 467+ // Sorting might take some time...make sure it is there
 468+ wfSuppressWarnings();
 469+ set_time_limit(60);
 470+ wfRestoreWarnings();
 471+ }
 472+ $counter = 0;
 473+ # See what is best to do after testing the waters...
 474+ if( isset($rangecount) && $rangecount > 5000 ) {
 475+ $use_index = $dbr->useIndexClause( $index );
 476+ $sql = "SELECT cuc_ip_hex, COUNT(*) AS count,
 477+ MIN(cuc_timestamp) AS first, MAX(cuc_timestamp) AS last
 478+ FROM $cu_changes $use_index
 479+ WHERE $ip_conds AND $time_conds
 480+ GROUP BY cuc_ip_hex ORDER BY cuc_ip_hex LIMIT 5001";
 481+ $ret = $dbr->query( $sql, __METHOD__ );
 482+ # List out each IP that has edits
 483+ $s = wfMsgExt('checkuser-too-many',array('parse'));
 484+ $s .= '<ol>';
 485+ while( $row = $ret->fetchObject() ) {
 486+ if( $counter >= 5000 ) {
 487+ $wgOut->addHTML( wfMsgExt('checkuser-limited',array('parse')) );
 488+ break;
 489+ }
 490+ # Convert the IP hexes into normal form
 491+ if( strpos($row->cuc_ip_hex,'v6-') !==false ) {
 492+ $ip = substr( $row->cuc_ip_hex, 3 );
 493+ $ip = IP::HextoOctet( $ip );
 494+ } else {
 495+ $ip = long2ip( wfBaseConvert($row->cuc_ip_hex, 16, 10, 8) );
 496+ }
 497+ $s .= '<li><a href="'.
 498+ $this->getTitle()->escapeLocalURL( 'user='.urlencode($ip).'&reason='.urlencode($reason).'&checktype=subipusers' ) .
 499+ '">'.$ip.'</a>';
 500+ if( $row->first == $row->last ) {
 501+ $s .= ' (' . $wgLang->timeanddate( wfTimestamp(TS_MW,$row->first), true ) . ') ';
 502+ } else {
 503+ $s .= ' (' . $wgLang->timeanddate( wfTimestamp(TS_MW,$row->first), true ) .
 504+ ' -- ' . $wgLang->timeanddate( wfTimestamp(TS_MW,$row->last), true ) . ') ';
 505+ }
 506+ $s .= " [<strong>" . $row->count . "</strong>]</li>\n";
 507+ ++$counter;
 508+ }
 509+ $s .= '</ol>';
 510+ $dbr->freeResult( $ret );
 511+
 512+ $wgOut->addHTML( $s );
 513+ return;
 514+ } else if( isset($rangecount) && !$rangecount ) {
 515+ $s = $this->noMatchesMessage($ip)."\n";
 516+ $wgOut->addHTML( $s );
 517+ return;
 518+ }
 519+ # OK, do the real query...
 520+ $use_index = $dbr->useIndexClause( $index );
 521+ $sql = "SELECT cuc_namespace,cuc_title,cuc_user,cuc_user_text,cuc_comment,cuc_actiontext,
 522+ cuc_timestamp,cuc_minor,cuc_page_id,cuc_type,cuc_this_oldid,cuc_last_oldid,cuc_ip,cuc_xff,cuc_agent
 523+ FROM $cu_changes $use_index WHERE $ip_conds AND $time_conds ORDER BY cuc_timestamp DESC LIMIT 5001";
 524+ $ret = $dbr->query( $sql, __METHOD__ );
 525+
 526+ if( !$dbr->numRows( $ret ) ) {
 527+ $s = $this->noMatchesMessage($ip)."\n";
 528+ } else {
 529+ # Cache common messages
 530+ $this->preCacheMessages();
 531+ # Try to optimize this query
 532+ $lb = new LinkBatch;
 533+ while( $row = $ret->fetchObject() ) {
 534+ $userText = str_replace( ' ', '_', $row->cuc_user_text );
 535+ $lb->add( $row->cuc_namespace, $row->cuc_title );
 536+ $lb->add( NS_USER, $userText );
 537+ $lb->add( NS_USER_TALK, $userText );
 538+ }
 539+ $lb->execute();
 540+ $ret->seek( 0 );
 541+ # List out the edits
 542+ $s = '<div id="checkuserresults">';
 543+ while( $row = $ret->fetchObject() ) {
 544+ if( $counter >= 5000 ) {
 545+ $wgOut->addHTML( wfMsgExt('checkuser-limited',array('parse')) );
 546+ break;
 547+ }
 548+ $s .= $this->CUChangesLine( $row, $reason );
 549+ ++$counter;
 550+ }
 551+ $s .= '</ul></div>';
 552+ $dbr->freeResult( $ret );
 553+ }
 554+
 555+ $wgOut->addHTML( $s );
 556+ }
 557+
 558+ /**
 559+ * @param string $nuser
 560+ * @param string $reason
 561+ * Shows all edits in Recent Changes by this user
 562+ */
 563+ protected function doUserEditsRequest( $user, $reason = '', $period = 0 ) {
 564+ global $wgUser, $wgOut, $wgLang;
 565+
 566+ $userTitle = Title::newFromText( $user, NS_USER );
 567+ if( !is_null( $userTitle ) ) {
 568+ // normalize the username
 569+ $user = $userTitle->getText();
 570+ }
 571+ # IPs are passed in as a blank string
 572+ if( !$user ) {
 573+ $wgOut->addWikiMsg( 'nouserspecified' );
 574+ return;
 575+ }
 576+ # Get ID, works better than text as user may have been renamed
 577+ $user_id = User::idFromName($user);
 578+
 579+ # If user is not IP or nonexistent
 580+ if( !$user_id ) {
 581+ $s = wfMsgExt('nosuchusershort',array('parse'),$user);
 582+ $wgOut->addHTML( $s );
 583+ return;
 584+ }
 585+
 586+ # Record check...
 587+ if( !$this->addLogEntry( 'useredits', 'user', $user, $reason, $user_id ) ) {
 588+ $wgOut->addHTML( '<p>'.wfMsgHtml('checkuser-log-fail').'</p>' );
 589+ }
 590+
 591+ $dbr = wfGetDB( DB_SLAVE );
 592+ $user_cond = "cuc_user = '$user_id'";
 593+ $time_conds = $this->getTimeConds( $period );
 594+ $cu_changes = $dbr->tableName( 'cu_changes' );
 595+ # Ordered in descent by timestamp. Causes large filesorts if there are many edits.
 596+ # Check how many rows will need sorting ahead of time to see if this is too big.
 597+ # If it is, sort by IP,time to avoid the filesort.
 598+ if( $period ) {
 599+ $count = $dbr->selectField( 'cu_changes', 'COUNT(*)',
 600+ array( $user_cond, $time_conds ),
 601+ __METHOD__,
 602+ array( 'USE INDEX' => 'cuc_user_ip_time' ) );
 603+ } else {
 604+ $count = $dbr->estimateRowCount( 'cu_changes', '*',
 605+ array( $user_cond, $time_conds ),
 606+ __METHOD__,
 607+ array( 'USE INDEX' => 'cuc_user_ip_time' ) );
 608+ }
 609+ # Cache common messages
 610+ $this->preCacheMessages();
 611+ # See what is best to do after testing the waters...
 612+ if( $count > 5000 ) {
 613+ $wgOut->addHTML( wfMsgExt('checkuser-limited',array('parse')) );
 614+ $use_index = $dbr->useIndexClause( 'cuc_user_ip_time' );
 615+ $sql = "SELECT * FROM $cu_changes $use_index
 616+ WHERE $user_cond AND $time_conds
 617+ ORDER BY cuc_ip ASC, cuc_timestamp DESC LIMIT 5000";
 618+ $ret = $dbr->query( $sql, __METHOD__ );
 619+ # Try to optimize this query
 620+ $lb = new LinkBatch;
 621+ while( $row = $ret->fetchObject() ) {
 622+ $lb->add( $row->cuc_namespace, $row->cuc_title );
 623+ }
 624+ $lb->execute();
 625+ $ret->seek( 0 );
 626+ $s = '';
 627+ while( $row = $ret->fetchObject() ) {
 628+ if( !$ip = htmlspecialchars($row->cuc_ip) ) {
 629+ continue;
 630+ }
 631+ if( !isset($lastIP) ) {
 632+ $lastIP = $row->cuc_ip;
 633+ $s .= "\n<h2>$ip</h2>\n<div class=\"special\">";
 634+ } else if( $lastIP != $row->cuc_ip ) {
 635+ $s .= "</ul></div>\n<h2>$ip</h2>\n<div class=\"special\">";
 636+ $lastIP = $row->cuc_ip;
 637+ unset($this->lastdate); // start over
 638+ }
 639+ $s .= $this->CUChangesLine( $row, $reason );
 640+ }
 641+ $s .= '</ul></div>';
 642+ $dbr->freeResult( $ret );
 643+
 644+ $wgOut->addHTML( $s );
 645+ return;
 646+ }
 647+ // Sorting might take some time...make sure it is there
 648+ wfSuppressWarnings();
 649+ set_time_limit(60);
 650+ wfRestoreWarnings();
 651+ # OK, do the real query...
 652+ $use_index = $dbr->useIndexClause( 'cuc_user_ip_time' );
 653+ $sql = "SELECT * FROM $cu_changes $use_index
 654+ WHERE $user_cond AND $time_conds ORDER BY cuc_timestamp DESC LIMIT 5000";
 655+ $ret = $dbr->query( $sql, __METHOD__ );
 656+
 657+ if( !$dbr->numRows( $ret ) ) {
 658+ $s = $this->noMatchesMessage($user)."\n";
 659+ } else {
 660+ # Try to optimize this query
 661+ $lb = new LinkBatch;
 662+ while( $row = $ret->fetchObject() ) {
 663+ $lb->add( $row->cuc_namespace, $row->cuc_title );
 664+ }
 665+ $lb->execute();
 666+ $ret->seek( 0 );
 667+ # List out the edits
 668+ $s = '<div id="checkuserresults">';
 669+ while( $row = $ret->fetchObject() ) {
 670+ $s .= $this->CUChangesLine( $row, $reason );
 671+ }
 672+ $s .= '</ul></div>';
 673+ $dbr->freeResult( $ret );
 674+ }
 675+
 676+ $wgOut->addHTML( $s );
 677+ }
 678+
 679+ /**
 680+ * @param string $ip
 681+ * @param bool $xfor
 682+ * @param string $reason
 683+ * @param int $period
 684+ * @param string $tag
 685+ * @param string $talkTag
 686+ * Lists all users in recent changes who used an IP, newest to oldest down
 687+ * Outputs usernames, latest and earliest found edit date, and count
 688+ * List unique IPs used for each user in time order, list corresponding user agent
 689+ */
 690+ protected function doIPUsersRequest( $ip, $xfor = false, $reason = '', $period = 0, $tag='', $talkTag='' ) {
 691+ global $wgUser, $wgOut, $wgLang;
 692+ $dbr = wfGetDB( DB_SLAVE );
 693+ # Invalid IPs are passed in as a blank string
 694+ $ip_conds = $this->getIpConds( $dbr, $ip, $xfor );
 695+ if( !$ip || $ip_conds === false ) {
 696+ $wgOut->addWikiMsg( 'badipaddress' );
 697+ return;
 698+ }
 699+
 700+ $logType = 'ipusers';
 701+ if( $xfor ) {
 702+ $logType .= '-xff';
 703+ }
 704+ # Log the check...
 705+ if( !$this->addLogEntry( $logType, 'ip', $ip, $reason ) ) {
 706+ $wgOut->addHTML( '<p>'.wfMsgHtml('checkuser-log-fail').'</p>' );
 707+ }
 708+
 709+ $ip_conds = $dbr->makeList( $ip_conds, LIST_AND );
 710+ $time_conds = $this->getTimeConds( $period );
 711+ $cu_changes = $dbr->tableName( 'cu_changes' );
 712+ $index = $xfor ? 'cuc_xff_hex_time' : 'cuc_ip_hex_time';
 713+ # Ordered in descent by timestamp. Can cause large filesorts on range scans.
 714+ # Check how many rows will need sorting ahead of time to see if this is too big.
 715+ if( strpos($ip,'/') !==false ) {
 716+ # Quick index check only OK if no time constraint
 717+ if( $period ) {
 718+ $rangecount = $dbr->selectField( 'cu_changes', 'COUNT(*)',
 719+ array( $ip_conds, $time_conds ),
 720+ __METHOD__,
 721+ array( 'USE INDEX' => $index ) );
 722+ } else {
 723+ $rangecount = $dbr->estimateRowCount( 'cu_changes', '*',
 724+ array( $ip_conds ),
 725+ __METHOD__,
 726+ array( 'USE INDEX' => $index ) );
 727+ }
 728+ // Sorting might take some time...make sure it is there
 729+ wfSuppressWarnings();
 730+ set_time_limit(120);
 731+ wfRestoreWarnings();
 732+ }
 733+ // Are there too many edits?
 734+ if( isset($rangecount) && $rangecount > 10000 ) {
 735+ $use_index = $dbr->useIndexClause( $index );
 736+ $sql = "SELECT cuc_ip_hex, COUNT(*) AS count,
 737+ MIN(cuc_timestamp) AS first, MAX(cuc_timestamp) AS last
 738+ FROM $cu_changes $use_index WHERE $ip_conds AND $time_conds
 739+ GROUP BY cuc_ip_hex ORDER BY cuc_ip_hex LIMIT 5001";
 740+ $ret = $dbr->query( $sql, __METHOD__ );
 741+ # List out each IP that has edits
 742+ $s = '<h5>' . wfMsg('checkuser-too-many') . '</h5>';
 743+ $s .= '<ol>';
 744+ $counter = 0;
 745+ while( $row = $ret->fetchObject() ) {
 746+ if( $counter >= 5000 ) {
 747+ $wgOut->addHTML( wfMsgExt('checkuser-limited',array('parse')) );
 748+ break;
 749+ }
 750+ # Convert the IP hexes into normal form
 751+ if( strpos($row->cuc_ip_hex,'v6-') !==false ) {
 752+ $ip = substr( $row->cuc_ip_hex, 3 );
 753+ $ip = IP::HextoOctet( $ip );
 754+ } else {
 755+ $ip = long2ip( wfBaseConvert($row->cuc_ip_hex, 16, 10, 8) );
 756+ }
 757+ $s .= '<li><a href="'.
 758+ $this->getTitle()->escapeLocalURL( 'user='.urlencode($ip).'&reason='.urlencode($reason).'&checktype=subipusers' ) .
 759+ '">'.$ip.'</a>';
 760+ if( $row->first == $row->last ) {
 761+ $s .= ' (' . $wgLang->timeanddate( wfTimestamp(TS_MW,$row->first), true ) . ') ';
 762+ } else {
 763+ $s .= ' (' . $wgLang->timeanddate( wfTimestamp(TS_MW,$row->first), true ) .
 764+ ' -- ' . $wgLang->timeanddate( wfTimestamp(TS_MW,$row->last), true ) . ') ';
 765+ }
 766+ $s .= " [<strong>" . $row->count . "</strong>]</li>\n";
 767+ ++$counter;
 768+ }
 769+ $s .= '</ol>';
 770+ $dbr->freeResult( $ret );
 771+
 772+ $wgOut->addHTML( $s );
 773+ return;
 774+ } else if( isset($rangecount) && !$rangecount ) {
 775+ $s = $this->noMatchesMessage($ip)."\n";
 776+ $wgOut->addHTML( $s );
 777+ return;
 778+ }
 779+
 780+ global $wgMemc;
 781+ # OK, do the real query...
 782+ $use_index = $dbr->useIndexClause( $index );
 783+ $sql = "SELECT cuc_user_text, cuc_timestamp, cuc_user, cuc_ip, cuc_agent, cuc_xff
 784+ FROM $cu_changes $use_index WHERE $ip_conds AND $time_conds
 785+ ORDER BY cuc_timestamp DESC LIMIT 10000";
 786+ $ret = $dbr->query( $sql, __METHOD__ );
 787+
 788+ $users_first = $users_last = $users_edits = $users_ids = array();
 789+ if( !$dbr->numRows( $ret ) ) {
 790+ $s = $this->noMatchesMessage($ip)."\n";
 791+ } else {
 792+ global $wgAuth;
 793+ while( ($row = $dbr->fetchObject($ret) ) != false ) {
 794+ if( !array_key_exists( $row->cuc_user_text, $users_edits ) ) {
 795+ $users_last[$row->cuc_user_text] = $row->cuc_timestamp;
 796+ $users_edits[$row->cuc_user_text] = 0;
 797+ $users_ids[$row->cuc_user_text] = $row->cuc_user;
 798+ $users_infosets[$row->cuc_user_text] = array();
 799+ $users_agentsets[$row->cuc_user_text] = array();
 800+ }
 801+ $users_edits[$row->cuc_user_text] += 1;
 802+ $users_first[$row->cuc_user_text] = $row->cuc_timestamp;
 803+ # Treat blank or NULL xffs as empty strings
 804+ $xff = empty($row->cuc_xff) ? null : $row->cuc_xff;
 805+ $xff_ip_combo = array( $row->cuc_ip, $xff );
 806+ # Add this IP/XFF combo for this username if it's not already there
 807+ if( !in_array($xff_ip_combo,$users_infosets[$row->cuc_user_text]) ) {
 808+ $users_infosets[$row->cuc_user_text][] = $xff_ip_combo;
 809+ }
 810+ # Add this agent string if it's not already there; 10 max.
 811+ if( count($users_agentsets[$row->cuc_user_text]) < 10 ) {
 812+ if( !in_array($row->cuc_agent,$users_agentsets[$row->cuc_user_text]) ) {
 813+ $users_agentsets[$row->cuc_user_text][] = $row->cuc_agent;
 814+ }
 815+ }
 816+ }
 817+ $dbr->freeResult( $ret );
 818+
 819+ $logs = SpecialPage::getTitleFor( 'Log' );
 820+ $blocklist = SpecialPage::getTitleFor( 'Ipblocklist' );
 821+
 822+ $action = $this->getTitle()->escapeLocalUrl( 'action=block' );
 823+ $s = "<form name='checkuserblock' id='checkuserblock' action=\"$action\" method='post'>";
 824+ $s .= '<div id="checkuserresults"><ul>';
 825+ foreach( $users_edits as $name => $count ) {
 826+ $s .= '<li>';
 827+ $s .= Xml::check( 'users[]', false, array( 'value' => $name ) ) . '&nbsp;';
 828+ # Load user object
 829+ $user = User::newFromName( $name, false );
 830+ # Add user tool links
 831+ $s .= $this->sk->userLink( -1 , $name ) . $this->sk->userToolLinks( -1 , $name );
 832+ # Add CheckUser link
 833+ $s .= ' (<a href="' . $this->getTitle()->escapeLocalURL( 'user='.urlencode($name) .
 834+ '&reason='.urlencode($reason) ) . '">' . wfMsgHtml('checkuser-check') . '</a>)';
 835+ # Show edit time range
 836+ if( $users_first[$name] == $users_last[$name] ) {
 837+ $s .= ' (' . $wgLang->timeanddate( wfTimestamp(TS_MW,$users_first[$name]), true ) . ') ';
 838+ } else {
 839+ $s .= ' (' . $wgLang->timeanddate( wfTimestamp(TS_MW,$users_first[$name]), true ) .
 840+ ' -- ' . $wgLang->timeanddate( wfTimestamp(TS_MW,$users_last[$name]), true ) . ') ';
 841+ }
 842+ # Total edit count
 843+ $s .= ' [<strong>' . $count . '</strong>]<br />';
 844+ # Check if this user or IP is blocked. If so, give a link to the block log...
 845+ $block = new Block();
 846+ $block->fromMaster( false ); // use slaves
 847+ $ip = IP::isIPAddress( $name ) ? $name : '';
 848+ $flags = array();
 849+ if( $block->load( $ip, $users_ids[$name] ) ) {
 850+ // Range blocked?
 851+ if( IP::isIPAddress($block->mAddress) && strpos($block->mAddress,'/') ) {
 852+ $userpage = Title::makeTitle( NS_USER, $block->mAddress );
 853+ $blocklog = $this->sk->makeKnownLinkObj( $logs, wfMsgHtml('checkuser-blocked'),
 854+ 'type=block&page=' . urlencode( $userpage->getPrefixedText() ) );
 855+ $flags[] = '<strong>(' . $blocklog . ' - ' . $block->mAddress . ')</strong>';
 856+ // Auto blocked?
 857+ } else if( $block->mAuto ) {
 858+ $blocklog = $this->sk->makeKnownLinkObj( $blocklist,
 859+ wfMsgHtml('checkuser-blocked'), 'ip=' . urlencode( "#{$block->mId}" ) );
 860+ $flags[] = '<strong>(' . $blocklog . ')</strong>';
 861+ } else {
 862+ $userpage = Title::makeTitle( NS_USER, $name );
 863+ $blocklog = $this->sk->makeKnownLinkObj( $logs, wfMsgHtml('checkuser-blocked'),
 864+ 'type=block&page=' . urlencode( $userpage->getPrefixedText() ) );
 865+ $flags[] = '<strong>(' . $blocklog . ')</strong>';
 866+ }
 867+ // IP that is blocked on all wikis?
 868+ } else if( $ip === $name && $user->isBlockedGlobally( $ip ) ) {
 869+ $flags[] = '<strong>(' . wfMsgHtml('checkuser-gblocked') . ')</strong>';
 870+ } else if( self::userWasBlocked( $name ) ) {
 871+ $userpage = Title::makeTitle( NS_USER, $name );
 872+ $blocklog = $this->sk->makeKnownLinkObj( $logs, wfMsgHtml('checkuser-wasblocked'),
 873+ 'type=block&page=' . urlencode( $userpage->getPrefixedText() ) );
 874+ $flags[] = '<strong>(' . $blocklog . ')</strong>';
 875+ }
 876+ # Show if account is local only
 877+ $authUser = $wgAuth->getUserInstance( $user );
 878+ if( $user->getId() && $authUser->getId() === 0 ) {
 879+ $flags[] = '<strong>(' . wfMsgHtml('checkuser-localonly') . ')</strong>';
 880+ }
 881+ # Check for extra user rights...
 882+ if( $users_ids[$name] ) {
 883+ $user = User::newFromId( $users_ids[$name] );
 884+ if( $user->isLocked() ) {
 885+ $flags[] = '<b>(' . wfMsgHtml('checkuser-locked') . ')</b>';
 886+ }
 887+ $list = array();
 888+ foreach( $user->getGroups() as $group ) {
 889+ $list[] = self::buildGroupLink( $group );
 890+ }
 891+ $groups = $wgLang->commaList( $list );
 892+ if( $groups ) {
 893+ $flags[] = '<i>(' . $groups . ')</i>';
 894+ }
 895+ }
 896+ # Check how many accounts the user made recently?
 897+ if( $ip ) {
 898+ $key = wfMemcKey( 'acctcreate', 'ip', $ip );
 899+ $count = intval( $wgMemc->get( $key ) );
 900+ if( $count ) {
 901+ $flags[] = '<strong>[' . wfMsgExt( 'checkuser-accounts', 'parsemag', $wgLang->formatNum( $count ) ) . ']</strong>';
 902+ }
 903+ }
 904+ $s .= implode(' ',$flags);
 905+ $s .= '<ol>';
 906+ # List out each IP/XFF combo for this username
 907+ for( $i = (count($users_infosets[$name]) - 1); $i >= 0; $i-- ) {
 908+ $set = $users_infosets[$name][$i];
 909+ # IP link
 910+ $s .= '<li>';
 911+ $s .= '<a href="'.$this->getTitle()->escapeLocalURL( 'user='.urlencode($set[0]) ).'">'.htmlspecialchars($set[0]).'</a>';
 912+ # XFF string, link to /xff search
 913+ if( $set[1] ) {
 914+ # Flag our trusted proxies
 915+ list($client,$trusted) = efGetClientIPfromXFF($set[1],$set[0]);
 916+ $c = $trusted ? '#F0FFF0' : '#FFFFCC';
 917+ $s .= '&nbsp;&nbsp;&nbsp;<span style="background-color: '.$c.'"><strong>XFF</strong>: ';
 918+ $s .= $this->sk->makeKnownLinkObj( $this->getTitle(),
 919+ htmlspecialchars( $set[1] ),
 920+ "user=" . urlencode( $client ) . "/xff" )."</span>";
 921+ }
 922+ $s .= "</li>\n";
 923+ }
 924+ $s .= '</ol><br /><ol>';
 925+ # List out each agent for this username
 926+ for( $i = (count($users_agentsets[$name]) - 1); $i >= 0; $i-- ) {
 927+ $agent = $users_agentsets[$name][$i];
 928+ $s .= "<li><i>" . htmlspecialchars($agent) . "</i></li>\n";
 929+ }
 930+ $s .= '</ol>';
 931+ $s .= '</li>';
 932+ }
 933+ $s .= "</ul></div>\n";
 934+ if( $wgUser->isAllowed('block') && !$wgUser->isBlocked() ) {
 935+ $s .= "<fieldset>\n";
 936+ $s .= "<legend>" . wfMsgHtml('checkuser-massblock') . "</legend>\n";
 937+ $s .= "<p>" . wfMsgExt('checkuser-massblock-text',array('parseinline')) . "</p>\n";
 938+ $s .= '<table><tr>' .
 939+ '<td>' . Xml::check( 'usetag', false, array('id' => 'usetag') ) . '</td>' .
 940+ '<td>' . Xml::label( wfMsgHtml( "checkuser-blocktag" ), 'usetag' ) . '</td>' .
 941+ '<td>' . Xml::input( 'tag', 46, $tag, array('id' => 'blocktag') ) . '</td>' .
 942+ '</tr><tr>' .
 943+ '<td>' . Xml::check( 'usettag', false, array('id' => 'usettag') ) . '</td>' .
 944+ '<td>' . Xml::label( wfMsgHtml( "checkuser-blocktag-talk" ), 'usettag' ) . '</td>' .
 945+ '<td>' . Xml::input( 'talktag', 46, $talkTag, array('id' => 'talktag') ).'</td>'.
 946+ '</tr></table>';
 947+ $s .= "<p>" . wfMsgHtml( "checkuser-reason" ) . '&nbsp;';
 948+ $s .= Xml::input( 'blockreason', 46, '', array( 'maxlength' => '150', 'id' => 'blockreason' ) );
 949+ $s .= '&nbsp;' . Xml::submitButton( wfMsgHtml('checkuser-massblock-commit'),
 950+ array('id' => 'checkuserblocksubmit','name' => 'checkuserblock') ) . "</p>\n";
 951+ $s .= "</fieldset>\n";
 952+ }
 953+ $s .= '</form>';
 954+ }
 955+
 956+ $wgOut->addHTML( $s );
 957+ }
 958+
 959+ /**
 960+ * @param $row
 961+ * @return a streamlined recent changes line with IP data
 962+ */
 963+ protected function CUChangesLine( $row, $reason ) {
 964+ global $wgLang;
 965+ # Add date headers
 966+ $date = $wgLang->date( wfTimestamp(TS_MW,$row->cuc_timestamp), true, true );
 967+ if( !isset($this->lastdate) ) {
 968+ $this->lastdate = $date;
 969+ $line = "\n<h4>$date</h4>\n<ul class=\"special\">";
 970+ } else if( $date != $this->lastdate ) {
 971+ $line = "</ul>\n<h4>$date</h4>\n<ul class=\"special\">";
 972+ $this->lastdate = $date;
 973+ } else {
 974+ $line = '';
 975+ }
 976+ $line .= "<li>";
 977+ # Create diff/hist/page links
 978+ $line .= $this->getLinksFromRow( $row );
 979+ # Show date
 980+ $line .= ' . . ' . $wgLang->time( wfTimestamp(TS_MW,$row->cuc_timestamp), true, true ) . ' . . ';
 981+ # Userlinks
 982+ $line .= $this->sk->userLink( $row->cuc_user, $row->cuc_user_text );
 983+ $line .= $this->sk->userToolLinks( $row->cuc_user, $row->cuc_user_text );
 984+ # Action text, hackish ...
 985+ if( $row->cuc_actiontext )
 986+ $line .= ' ' . $this->sk->formatComment( $row->cuc_actiontext ) . ' ';
 987+ # Comment
 988+ $line .= $this->sk->commentBlock( $row->cuc_comment );
 989+
 990+ $cuTitle = SpecialPage::getTitleFor( 'CheckUser' );
 991+ $line .= '<br />&nbsp; &nbsp; &nbsp; &nbsp; <small>';
 992+ # IP
 993+ $line .= ' <strong>IP</strong>: '.$this->sk->makeKnownLinkObj( $cuTitle,
 994+ htmlspecialchars( $row->cuc_ip ),
 995+ "user=".urlencode( $row->cuc_ip ).'&reason='.urlencode($reason) );
 996+ # XFF
 997+ if( $row->cuc_xff !=null ) {
 998+ # Flag our trusted proxies
 999+ list($client,$trusted) = efGetClientIPfromXFF($row->cuc_xff,$row->cuc_ip);
 1000+ $c = $trusted ? '#F0FFF0' : '#FFFFCC';
 1001+ $line .= '&nbsp;&nbsp;&nbsp;<span class="mw-checkuser-xff" style="background-color: '.$c.'">'.
 1002+ '<strong>XFF</strong>: ';
 1003+ $line .= $this->sk->makeKnownLinkObj( $cuTitle,
 1004+ htmlspecialchars( $row->cuc_xff ),
 1005+ "user=".urlencode($client)."/xff&reason=".urlencode($reason) )."</span>";
 1006+ }
 1007+ # User agent
 1008+ $line .= '&nbsp;&nbsp;&nbsp;<span class="mw-checkuser-agent" style="color:#888;">' .
 1009+ htmlspecialchars( $row->cuc_agent )."</span>";
 1010+
 1011+ $line .= "</small></li>\n";
 1012+
 1013+ return $line;
 1014+ }
 1015+
 1016+ /**
 1017+ * @param $row
 1018+ * @create diff/hist/page link
 1019+ */
 1020+ protected function getLinksFromRow( $row ) {
 1021+ // Log items (old format) and events to logs
 1022+ if( $row->cuc_type == RC_LOG && $row->cuc_namespace == NS_SPECIAL ) {
 1023+ list( $specialName, $logtype ) = SpecialPage::resolveAliasWithSubpage( $row->cuc_title );
 1024+ $logname = LogPage::logName( $logtype );
 1025+ $title = Title::makeTitle( $row->cuc_namespace, $row->cuc_title );
 1026+ $links = '(' . $this->sk->makeKnownLinkObj( $title, $logname ) . ')';
 1027+ // Log items
 1028+ } elseif( $row->cuc_type == RC_LOG ) {
 1029+ $title = Title::makeTitle( $row->cuc_namespace, $row->cuc_title );
 1030+ $links = '(' . $this->sk->makeKnownLinkObj( SpecialPage::getTitleFor( 'Log' ), $this->message['log'],
 1031+ wfArrayToCGI( array('page' => $title->getPrefixedText() ) ) ) . ')';
 1032+ } else {
 1033+ $title = Title::makeTitle( $row->cuc_namespace, $row->cuc_title );
 1034+ # New pages
 1035+ if( $row->cuc_type == RC_NEW ) {
 1036+ $links = '(' . $this->message['diff'] . ') ';
 1037+ } else {
 1038+ # Diff link
 1039+ $links = ' (' . $this->sk->makeKnownLinkObj( $title, $this->message['diff'],
 1040+ wfArrayToCGI( array(
 1041+ 'curid' => $row->cuc_page_id,
 1042+ 'diff' => $row->cuc_this_oldid,
 1043+ 'oldid' => $row->cuc_last_oldid ) ) ) . ') ';
 1044+ }
 1045+ # History link
 1046+ $links .= ' (' . $this->sk->makeKnownLinkObj( $title, $this->message['hist'],
 1047+ wfArrayToCGI( array(
 1048+ 'curid' => $row->cuc_page_id,
 1049+ 'action' => 'history' ) ) ) . ') . . ';
 1050+ # Some basic flags
 1051+ if( $row->cuc_type == RC_NEW )
 1052+ $links .= '<span class="newpage">' . $this->message['newpageletter'] . '</span>';
 1053+ if( $row->cuc_minor )
 1054+ $links .= '<span class="minor">' . $this->message['minoreditletter'] . '</span>';
 1055+ # Page link
 1056+ $links .= ' ' . $this->sk->makeLinkObj( $title );
 1057+ }
 1058+ return $links;
 1059+ }
 1060+
 1061+ protected static function userWasBlocked( $name ) {
 1062+ $userpage = Title::makeTitle( NS_USER, $name );
 1063+ return wfGetDB( DB_SLAVE )->selectField( 'logging', '1',
 1064+ array( 'log_type' => array('block','suppress'),
 1065+ 'log_action' => 'block',
 1066+ 'log_namespace' => $userpage->getNamespace(),
 1067+ 'log_title' => $userpage->getDBKey() ),
 1068+ __METHOD__,
 1069+ array( 'USE INDEX' => 'page_time' ) );
 1070+ }
 1071+
 1072+ /**
 1073+ * Format a link to a group description page
 1074+ *
 1075+ * @param string $group
 1076+ * @return string
 1077+ */
 1078+ protected static function buildGroupLink( $group ) {
 1079+ static $cache = array();
 1080+ if( !isset( $cache[$group] ) )
 1081+ $cache[$group] = User::makeGroupLinkHtml( $group, User::getGroupMember( $group ) );
 1082+ return $cache[$group];
 1083+ }
 1084+
 1085+ /**
 1086+ * @param Database $db
 1087+ * @param string $ip
 1088+ * @param string $xfor
 1089+ * @return mixed array/false conditions
 1090+ */
 1091+ protected function getIpConds( $db, $ip, $xfor = false ) {
 1092+ $type = ( $xfor ) ? 'xff' : 'ip';
 1093+ // IPv4 CIDR, 16-32 bits
 1094+ if( preg_match( '#^(\d+\.\d+\.\d+\.\d+)/(\d+)$#', $ip, $matches ) ) {
 1095+ if( $matches[2] < 16 || $matches[2] > 32 )
 1096+ return false; // invalid
 1097+ list( $start, $end ) = IP::parseRange( $ip );
 1098+ return array( 'cuc_'.$type.'_hex BETWEEN ' . $db->addQuotes( $start ) . ' AND ' . $db->addQuotes( $end ) );
 1099+ } else if( preg_match( '#^\w{1,4}:\w{1,4}:\w{1,4}:\w{1,4}:\w{1,4}:\w{1,4}:\w{1,4}:\w{1,4}/(\d+)$#', $ip, $matches ) ) {
 1100+ // IPv6 CIDR, 96-128 bits
 1101+ if( $matches[1] < 96 || $matches[1] > 128 )
 1102+ return false; // invalid
 1103+ list( $start, $end ) = IP::parseRange6( $ip );
 1104+ return array( 'cuc_'.$type.'_hex BETWEEN ' . $db->addQuotes( $start ) . ' AND ' . $db->addQuotes( $end ) );
 1105+ } else if( preg_match( '#^(\d+)\.(\d+)\.(\d+)\.(\d+)$#', $ip ) ) {
 1106+ // 32 bit IPv4
 1107+ $ip_hex = IP::toHex( $ip );
 1108+ return array( 'cuc_'.$type.'_hex' => $ip_hex );
 1109+ } else if( preg_match( '#^\w{1,4}:\w{1,4}:\w{1,4}:\w{1,4}:\w{1,4}:\w{1,4}:\w{1,4}:\w{1,4}$#', $ip ) ) {
 1110+ // 128 bit IPv6
 1111+ $ip_hex = IP::toHex( $ip );
 1112+ return array( 'cuc_'.$type.'_hex' => $ip_hex );
 1113+ }
 1114+ // throw away this query, incomplete IP, these don't get through the entry point anyway
 1115+ return false; // invalid
 1116+ }
 1117+
 1118+ protected function getTimeConds( $period ) {
 1119+ if( !$period ) {
 1120+ return "1 = 1";
 1121+ }
 1122+ $dbr = wfGetDB( DB_SLAVE );
 1123+ $cutoff_unixtime = time() - ($period * 24 * 3600);
 1124+ $cutoff_unixtime = $cutoff_unixtime - ($cutoff_unixtime % 86400);
 1125+ $cutoff = $dbr->addQuotes( $dbr->timestamp( $cutoff_unixtime ) );
 1126+ return "cuc_timestamp > $cutoff";
 1127+ }
 1128+
 1129+ protected function showLog() {
 1130+ global $wgRequest, $wgOut;
 1131+ $type = $wgRequest->getVal( 'cuSearchType' );
 1132+ $target = $wgRequest->getVal( 'cuSearch' );
 1133+ $year = $wgRequest->getIntOrNull( 'year' );
 1134+ $month = $wgRequest->getIntOrNull( 'month' );
 1135+ $error = false;
 1136+ $dbr = wfGetDB( DB_SLAVE );
 1137+ $searchConds = false;
 1138+
 1139+ $wgOut->setPageTitle( wfMsg( 'checkuser-log' ) );
 1140+
 1141+ $wgOut->addHTML( $this->sk->makeKnownLinkObj( $this->getTitle(), wfMsgHtml( 'checkuser-log-return' ) ) );
 1142+
 1143+ if ( $type === null ) {
 1144+ $type = 'target';
 1145+ } elseif ( $type == 'initiator' ) {
 1146+ $user = User::newFromName( $target );
 1147+ if ( !$user || !$user->getID() ) {
 1148+ $error = 'checkuser-user-nonexistent';
 1149+ } else {
 1150+ $searchConds = array( 'cul_user' => $user->getID() );
 1151+ }
 1152+ } else /* target */ {
 1153+ $type = 'target';
 1154+ // Is it an IP?
 1155+ list( $start, $end ) = IP::parseRange( $target );
 1156+ if ( $start !== false ) {
 1157+ if ( $start == $end ) {
 1158+ $searchConds = array( 'cul_target_hex = ' . $dbr->addQuotes( $start ) . ' OR ' .
 1159+ '(cul_range_end >= ' . $dbr->addQuotes( $start ) . ' AND ' .
 1160+ 'cul_range_start <= ' . $dbr->addQuotes( $end ) . ')'
 1161+ );
 1162+ } else {
 1163+ $searchConds = array(
 1164+ '(cul_target_hex >= ' . $dbr->addQuotes( $start ) . ' AND ' .
 1165+ 'cul_target_hex <= ' . $dbr->addQuotes( $end ) . ') OR ' .
 1166+ '(cul_range_end >= ' . $dbr->addQuotes( $start ) . ' AND ' .
 1167+ 'cul_range_start <= ' . $dbr->addQuotes( $end ) . ')'
 1168+ );
 1169+ }
 1170+ } else {
 1171+ // Is it a user?
 1172+ $user = User::newFromName( $target );
 1173+ if ( $user && $user->getID() ) {
 1174+ $searchConds = array(
 1175+ 'cul_type' => 'userips',
 1176+ 'cul_target_id' => $user->getID(),
 1177+ );
 1178+ } else if ( $target ) {
 1179+ $error = 'checkuser-user-nonexistent';
 1180+ }
 1181+ }
 1182+ }
 1183+
 1184+ $searchTypes = array( 'initiator', 'target' );
 1185+ $select = "<select name=\"cuSearchType\" style='margin-top:.2em;'>\n";
 1186+ foreach ( $searchTypes as $searchType ) {
 1187+ if ( $type == $searchType ) {
 1188+ $checked = 'selected="selected"';
 1189+ } else {
 1190+ $checked = '';
 1191+ }
 1192+ $caption = wfMsgHtml( 'checkuser-search-' . $searchType );
 1193+ $select .= "<option value=\"$searchType\" $checked>$caption</option>\n";
 1194+ }
 1195+ $select .= "</select>";
 1196+
 1197+ $encTarget = htmlspecialchars( $target );
 1198+ $msgSearch = wfMsgHtml( 'checkuser-search' );
 1199+ $input = "<input type=\"text\" name=\"cuSearch\" value=\"$encTarget\" size=\"40\"/>";
 1200+ $msgSearchForm = wfMsgHtml( 'checkuser-search-form', $select, $input );
 1201+ $formAction = $this->getLogSubpageTitle()->escapeLocalURL();
 1202+ $msgSearchSubmit = '&nbsp;&nbsp;' . wfMsgHtml( 'checkuser-search-submit' ) . '&nbsp;&nbsp;';
 1203+
 1204+ $s = "<form method='get' action=\"$formAction\">\n" .
 1205+ "<fieldset><legend>$msgSearch</legend>\n" .
 1206+ "<p>$msgSearchForm</p>\n" .
 1207+ "<p>" . $this->getDateMenu( $year, $month ) . "&nbsp;&nbsp;&nbsp;\n" .
 1208+ "<input type=\"submit\" name=\"cuSearchSubmit\" value=\"$msgSearchSubmit\"/></p>\n" .
 1209+ "</fieldset></form>\n";
 1210+ $wgOut->addHTML( $s );
 1211+
 1212+ if ( $error !== false ) {
 1213+ $wgOut->addWikiText( '<div class="errorbox">' . wfMsg( $error ) . '</div>' );
 1214+ return;
 1215+ }
 1216+
 1217+ $pager = new CheckUserLogPager( $this, $searchConds, $year, $month );
 1218+ $wgOut->addHTML(
 1219+ $pager->getNavigationBar() .
 1220+ $pager->getBody() .
 1221+ $pager->getNavigationBar() );
 1222+ }
 1223+
 1224+ /**
 1225+ * @return string Formatted HTML
 1226+ * @param int $year
 1227+ * @param int $month
 1228+ */
 1229+ protected function getDateMenu( $year, $month ) {
 1230+ # Offset overrides year/month selection
 1231+ if( $month && $month !== -1 ) {
 1232+ $encMonth = intval( $month );
 1233+ } else {
 1234+ $encMonth = '';
 1235+ }
 1236+ if ( $year ) {
 1237+ $encYear = intval( $year );
 1238+ } else if( $encMonth ) {
 1239+ $thisMonth = intval( gmdate( 'n' ) );
 1240+ $thisYear = intval( gmdate( 'Y' ) );
 1241+ if( intval($encMonth) > $thisMonth ) {
 1242+ $thisYear--;
 1243+ }
 1244+ $encYear = $thisYear;
 1245+ } else {
 1246+ $encYear = '';
 1247+ }
 1248+ return Xml::label( wfMsg( 'year' ), 'year' ) . ' '.
 1249+ Xml::input( 'year', 4, $encYear, array('id' => 'year', 'maxlength' => 4) ) .
 1250+ ' '.
 1251+ Xml::label( wfMsg( 'month' ), 'month' ) . ' '.
 1252+ Xml::monthSelector( $encMonth, -1 );
 1253+ }
 1254+
 1255+ protected function addLogEntry( $logType, $targetType, $target, $reason, $targetID = 0 ) {
 1256+ global $wgUser;
 1257+
 1258+ if ( $targetType == 'ip' ) {
 1259+ list( $rangeStart, $rangeEnd ) = IP::parseRange( $target );
 1260+ $targetHex = $rangeStart;
 1261+ if ( $rangeStart == $rangeEnd ) {
 1262+ $rangeStart = $rangeEnd = '';
 1263+ }
 1264+ } else {
 1265+ $targetHex = $rangeStart = $rangeEnd = '';
 1266+ }
 1267+
 1268+ $dbw = wfGetDB( DB_MASTER );
 1269+ $cul_id = $dbw->nextSequenceValue( 'cu_log_cul_id_seq' );
 1270+ $dbw->insert( 'cu_log',
 1271+ array(
 1272+ 'cul_id' => $cul_id,
 1273+ 'cul_timestamp' => $dbw->timestamp(),
 1274+ 'cul_user' => $wgUser->getID(),
 1275+ 'cul_user_text' => $wgUser->getName(),
 1276+ 'cul_reason' => $reason,
 1277+ 'cul_type' => $logType,
 1278+ 'cul_target_id' => $targetID,
 1279+ 'cul_target_text' => $target,
 1280+ 'cul_target_hex' => $targetHex,
 1281+ 'cul_range_start' => $rangeStart,
 1282+ 'cul_range_end' => $rangeEnd,
 1283+ ), __METHOD__ );
 1284+ return true;
 1285+ }
 1286+}
 1287+
 1288+class CheckUserLogPager extends ReverseChronologicalPager {
 1289+ var $searchConds, $specialPage, $y, $m;
 1290+
 1291+ function __construct( $specialPage, $searchConds, $y, $m ) {
 1292+ parent::__construct();
 1293+ /*
 1294+ $this->messages = array_map( 'wfMsg',
 1295+ array( 'comma-separator', 'checkuser-log-userips', 'checkuser-log-ipedits', 'checkuser-log-ipusers',
 1296+ 'checkuser-log-ipedits-xff', 'checkuser-log-ipusers-xff' ) );*/
 1297+
 1298+ $this->getDateCond( $y, $m );
 1299+ $this->searchConds = $searchConds ? $searchConds : array();
 1300+ $this->specialPage = $specialPage;
 1301+ }
 1302+
 1303+ function formatRow( $row ) {
 1304+ global $wgLang;
 1305+
 1306+ $skin = $this->getSkin();
 1307+
 1308+ if ( $row->cul_reason === '' ) {
 1309+ $comment = '';
 1310+ } else {
 1311+ $comment = $skin->commentBlock( $row->cul_reason );
 1312+ }
 1313+
 1314+ $user = $skin->userLink( $row->cul_user, $row->user_name );
 1315+
 1316+ if ( $row->cul_type == 'userips' ) {
 1317+ $target = $skin->userLink( $row->cul_target_id, $row->cul_target_text ) .
 1318+ $skin->userToolLinks( $row->cul_target_id, $row->cul_target_text );
 1319+ } else {
 1320+ $target = $row->cul_target_text;
 1321+ }
 1322+
 1323+ return '<li>' .
 1324+ $wgLang->timeanddate( wfTimestamp(TS_MW,$row->cul_timestamp), true ) .
 1325+ wfMsg( 'comma-separator' ) .
 1326+ wfMsg(
 1327+ 'checkuser-log-' . $row->cul_type,
 1328+ $user,
 1329+ $target
 1330+ ) .
 1331+ $comment .
 1332+ '</li>';
 1333+ }
 1334+
 1335+ function getStartBody() {
 1336+ if ( $this->getNumRows() ) {
 1337+ return '<ul>';
 1338+ } else {
 1339+ return '';
 1340+ }
 1341+ }
 1342+
 1343+ function getEndBody() {
 1344+ if ( $this->getNumRows() ) {
 1345+ return '</ul>';
 1346+ } else {
 1347+ return '';
 1348+ }
 1349+ }
 1350+
 1351+ function getEmptyBody() {
 1352+ return '<p>' . wfMsgHtml( 'checkuser-empty' ) . '</p>';
 1353+ }
 1354+
 1355+ function getQueryInfo() {
 1356+ global $wgRequest;
 1357+ $this->searchConds[] = 'user_id = cul_user';
 1358+ return array(
 1359+ 'tables' => array('cu_log','user'),
 1360+ 'fields' => $this->selectFields(),
 1361+ 'conds' => $this->searchConds
 1362+ );
 1363+ }
 1364+
 1365+ function getIndexField() {
 1366+ return 'cul_timestamp';
 1367+ }
 1368+
 1369+ function getTitle() {
 1370+ return $this->specialPage->getLogSubpageTitle();
 1371+ }
 1372+
 1373+ function selectFields() {
 1374+ return array('cul_id','cul_timestamp','cul_user','cul_reason','cul_type',
 1375+ 'cul_target_id','cul_target_text','user_name');
 1376+ }
 1377+}
Property changes on: branches/new-checkuser/CheckUser_body.php
___________________________________________________________________
Name: svn:eol-style
11378 + native
Index: branches/new-checkuser/CheckUser.i18n.php
@@ -0,0 +1,6304 @@
 2+<?php
 3+/**
 4+ * Internationalisation file for CheckUser extension.
 5+ *
 6+ * @addtogroup Extensions
 7+*/
 8+
 9+$messages = array();
 10+
 11+$messages['en'] = array(
 12+ 'checkuser-summary' => 'This tool scans recent changes to retrieve the IPs used by a user or show the edit/user data for an IP.
 13+Users and edits by a client IP can be retrieved via XFF headers by appending the IP with "/xff". IPv4 (CIDR 16-32) and IPv6 (CIDR 96-128) are supported.
 14+No more than 5000 edits will be returned for performance reasons.
 15+Use this in accordance with policy.',
 16+ 'checkuser-desc' => 'Grants users with the appropriate permission the ability to check user\'s IP addresses and other information',
 17+ 'checkuser-logcase' => 'The log search is case sensitive.',
 18+ 'checkuser' => 'Check user',
 19+ 'checkuser-contribs' => 'check user IPs',
 20+ 'group-checkuser' => 'Check users',
 21+ 'group-checkuser-member' => 'Check user',
 22+ 'right-checkuser' => "Check user's IP addresses and other information",
 23+ 'right-checkuser-log' => "View the checkuser log",
 24+ 'grouppage-checkuser' => '{{ns:project}}:Check user',
 25+ 'checkuser-reason' => 'Reason:',
 26+ 'checkuser-showlog' => 'Show log',
 27+ 'checkuser-log' => 'CheckUser log',
 28+ 'checkuser-query' => 'Query recent changes',
 29+ 'checkuser-target' => 'User or IP',
 30+ 'checkuser-users' => 'Get users',
 31+ 'checkuser-edits' => 'Get edits from IP',
 32+ 'checkuser-ips' => 'Get IPs',
 33+ 'checkuser-account' => 'Get account edits',
 34+ 'checkuser-search' => 'Search',
 35+ 'checkuser-period' => 'Duration:',
 36+ 'checkuser-week-1' => 'last week',
 37+ 'checkuser-week-2' => 'last two weeks',
 38+ 'checkuser-month' => 'last 30 days',
 39+ 'checkuser-all' => 'all',
 40+ 'checkuser-cidr-label' => 'Find common range and affected addresses for a list of IPs',
 41+ 'checkuser-cidr-res' => 'Common CIDR:',
 42+ 'checkuser-empty' => 'The log contains no items.',
 43+ 'checkuser-nomatch' => 'No matches found.',
 44+ 'checkuser-nomatch-edits' => 'No matches found.
 45+Last edit was on $1 at $2.',
 46+ 'checkuser-check' => 'Check',
 47+ 'checkuser-log-fail' => 'Unable to add log entry',
 48+ 'checkuser-nolog' => 'No log file found.',
 49+ 'checkuser-blocked' => 'Blocked',
 50+ 'checkuser-gblocked' => 'Blocked globally',
 51+ 'checkuser-locked' => 'Locked',
 52+ 'checkuser-wasblocked' => 'Previously blocked',
 53+ 'checkuser-localonly' => 'Not unified',
 54+ 'checkuser-massblock' => 'Block selected users',
 55+ 'checkuser-massblock-text' => 'Selected accounts will be blocked indefinitely, with autoblocking enabled and account creation disabled.
 56+ IP addresses will be blocked for 1 week for IP users only and with account creation disabled.',
 57+ 'checkuser-blocktag' => 'Replace user pages with:',
 58+ 'checkuser-blocktag-talk' => 'Replace talk pages with:',
 59+ 'checkuser-massblock-commit' => 'Block selected users',
 60+ 'checkuser-block-success' => '\'\'\'The {{PLURAL:$2|user|users}} $1 {{PLURAL:$2|is|are}} now blocked.\'\'\'',
 61+ 'checkuser-block-failure' => '\'\'\'No users blocked.\'\'\'',
 62+ 'checkuser-block-limit' => 'Too many users selected.',
 63+ 'checkuser-block-noreason' => 'You must give a reason for the blocks.',
 64+ 'checkuser-accounts' => '$1 new {{PLURAL:$1|account|accounts}}',
 65+ 'checkuser-too-many' => 'Too many results, please narrow down the CIDR.
 66+Here are the IPs used (5000 max, sorted by address):',
 67+ 'checkuser-user-nonexistent' => 'The specified user does not exist.',
 68+ 'checkuser-search-form' => 'Find log entries where the $1 is $2',
 69+ 'checkuser-search-submit' => 'Search',
 70+ 'checkuser-search-initiator' => 'initiator',
 71+ 'checkuser-search-target' => 'target',
 72+ 'checkuser-ipeditcount' => '~$1 from all users',
 73+ 'checkuser-log-subpage' => 'Log',
 74+ 'checkuser-log-return' => 'Return to CheckUser main form',
 75+
 76+ 'checkuser-limited' => '\'\'\'These results have been truncated for performance reasons.\'\'\'',
 77+
 78+ 'checkuser-log-userips' => '$1 got IPs for $2',
 79+ 'checkuser-log-ipedits' => '$1 got edits for $2',
 80+ 'checkuser-log-ipusers' => '$1 got users for $2',
 81+ 'checkuser-log-ipedits-xff' => '$1 got edits for XFF $2',
 82+ 'checkuser-log-ipusers-xff' => '$1 got users for XFF $2',
 83+ 'checkuser-log-useredits' => '$1 got edits for $2',
 84+
 85+ 'checkuser-autocreate-action' => 'was automatically created',
 86+ 'checkuser-email-action' => 'sent an email to user "$1"',
 87+ 'checkuser-reset-action' => 'reset password for user "$1"',
 88+
 89+ 'checkuser-toollinks' => '<span class="plainlinks">[[http://openrbl.org/query?$1 RDNS] ·
 90+[http://www.robtex.com/rbls/$1.html RBLs] ·
 91+[http://www.dnsstuff.com/tools/tracert.ch?ip=$1 Traceroute] ·
 92+[http://www.ip2location.com/$1 Geolocate] ·
 93+[http://toolserver.org/~krimpet/torcheck.php?ip=$1 Tor check] ·
 94+[http://ws.arin.net/whois/?queryinput=$1 WHOIS]]</span>', # do not translate or duplicate this message to other languages
 95+);
 96+
 97+/** Message documentation (Message documentation)
 98+ * @author Darth Kule
 99+ * @author Jon Harald Søby
 100+ * @author Kwj2772
 101+ * @author Lejonel
 102+ * @author Meno25
 103+ * @author Mormegil
 104+ * @author Purodha
 105+ * @author Raymond
 106+ * @author Siebrand
 107+ * @author Slomox
 108+ */
 109+$messages['qqq'] = array(
 110+ 'checkuser-desc' => 'Short description of the CheckUser extension, shown on [[Special:Version]]',
 111+ 'checkuser' => 'Check user extension. The name of the special page where checkusers can check the IP addresses of users. The message is used in the list of special pages, and at the top of [[Special:Checkuser]].
 112+
 113+{{Identical|Check user}}',
 114+ 'group-checkuser-member' => '{{Identical|Check user}}',
 115+ 'right-checkuser' => '{{doc-right}}',
 116+ 'right-checkuser-log' => '{{doc-right}}',
 117+ 'checkuser-reason' => '{{Identical|Reason}}',
 118+ 'checkuser-search' => '{{Identical|Search}}',
 119+ 'checkuser-all' => '{{Identical|All}}',
 120+ 'checkuser-nomatch-edits' => '* $1 = date
 121+* $2 = time',
 122+ 'checkuser-massblock' => '{{Identical|Block selected users}}',
 123+ 'checkuser-massblock-commit' => '{{Identical|Block selected users}}',
 124+ 'checkuser-block-success' => '* $1 is a list of one or more usernames
 125+* $2 is the number of usernames in $1.',
 126+ 'checkuser-search-form' => 'This message is a search form for the checkuser log.
 127+* $1 is a drop down box with search types
 128+* $2 is a text input field for the search pattern',
 129+ 'checkuser-search-submit' => '{{Identical|Search}}',
 130+ 'checkuser-search-initiator' => "This is shown on the log page of [[Special:CheckUser]]. Initiator means CheckUser who check someone's information.",
 131+ 'checkuser-ipeditcount' => "This information is shown on the result page of [[mw:Extension:CheckUser|Special:CheckUser]] (when doing the ''{{int:Checkuser-users}}'' check), next to the individual listed IPs. It shows an estimate of the total number of edits from the respective IP (i.e. the number of edits by all users, not only by the requested user). As the comment in the code says: ''If we get some results, it helps to know if the IP in general has a lot more edits, e.g. “tip of the iceberg”…''",
 132+ 'checkuser-limited' => 'A message shown above CheckUser results if the result list would be longer than the specified limit (5000 entries), and has been truncated.',
 133+ 'checkuser-log-userips' => 'This is an entry in the checkuser log when a checkuser checks from which IP addresses a user has edited.
 134+* Parameter $1 is the user who did the check
 135+* Parameter $2 is the user that was checked, with links to talk page, contributions, and block (like this: [[User:Username|Username]] ( [[User talk|Talk]] | [[Special:Contributions/Username|contribs]] | [[Special:Blockip|block]]) )',
 136+ 'checkuser-log-ipedits' => 'This is an entry in the checkuser log when a checkuser checks which edits have been done from an IP address.
 137+* Parameter $1 is the user who did the check
 138+* Parameter $2 is the IP address that was checked',
 139+ 'checkuser-log-ipusers' => 'This is an entry in the checkuser log when a checkuser checks which users have used an IP address.
 140+*Parameter $1 is the user who did the check
 141+*Parameter $2 is the IP address',
 142+ 'checkuser-log-ipedits-xff' => 'This is an entry in the checkuser log when a checkuser checks which edits have been done from an XFF IP address (XFF means X-Forwarded-For. Some providers use proxies to forward user requests. This effectively means anonymization of requests. To make the requesting user identifiable again, the original requesting IP is transmitted in a separate HTTP header, the XFF header.).
 143+* Parameter $1 is the user who did the check
 144+* Parameter $2 is the IP address that was checked',
 145+ 'checkuser-log-ipusers-xff' => 'This is an entry in the checkuser log when a checkuser checks which users have used an XFF IP address (XFF means X-Forwarded-For. Some providers use proxies to forward user requests. This effectively means anonymization of requests. To make the requesting user identifiable again, the original requesting IP is transmitted in a separate HTTP header, the XFF header.).
 146+*Parameter $1 is the user who did the check
 147+*Parameter $2 is the IP address',
 148+ 'checkuser-autocreate-action' => 'Text of the event displayed in the CheckUser results, corresponding to the automatic creation of a new user account (by CentralAuth).',
 149+);
 150+
 151+/** Karelian (Karjala)
 152+ * @author Flrn
 153+ */
 154+$messages['krl'] = array(
 155+ 'checkuser-search' => 'Ečindy',
 156+ 'checkuser-search-submit' => 'Ečči',
 157+);
 158+
 159+/** Niuean (ko e vagahau Niuē)
 160+ * @author Jose77
 161+ */
 162+$messages['niu'] = array(
 163+ 'checkuser-reason' => 'Kakano',
 164+ 'checkuser-search' => 'Kumi',
 165+ 'checkuser-search-submit' => 'Kumi',
 166+);
 167+
 168+/** Afrikaans (Afrikaans)
 169+ * @author Arnobarnard
 170+ * @author Naudefj
 171+ * @author SPQRobin
 172+ */
 173+$messages['af'] = array(
 174+ 'checkuser-logcase' => 'Die logboek soek-funksie is kassensitief.',
 175+ 'checkuser' => 'Kontroleer gebruiker',
 176+ 'group-checkuser' => 'Kontroleer gebruikers',
 177+ 'group-checkuser-member' => 'Kontroleer gebruiker',
 178+ 'right-checkuser' => 'Besigtig gebruikers se IP-adresse en ander gegewens',
 179+ 'checkuser-reason' => 'Rede',
 180+ 'checkuser-showlog' => 'Wys logboek',
 181+ 'checkuser-target' => 'Gebruiker of IP',
 182+ 'checkuser-users' => 'Kry gebruikers',
 183+ 'checkuser-edits' => 'Kry wysigings vanaf IP',
 184+ 'checkuser-ips' => 'Kry IPs',
 185+ 'checkuser-search' => 'Soek',
 186+ 'checkuser-empty' => 'Die logboek het geen inskrywings nie.',
 187+ 'checkuser-nomatch' => 'Geen resultate gevind.',
 188+ 'checkuser-check' => 'Kontroleer',
 189+ 'checkuser-log-fail' => 'Kan nie logboek inskrywing byvoeg nie',
 190+ 'checkuser-nolog' => 'Logboek lêer nie gevind.',
 191+ 'checkuser-blocked' => 'Versper',
 192+ 'checkuser-search-submit' => 'Soek',
 193+ 'checkuser-search-target' => 'teiken',
 194+ 'checkuser-log-subpage' => 'Logboek',
 195+);
 196+
 197+/** Amharic (አማርኛ)
 198+ * @author Codex Sinaiticus
 199+ */
 200+$messages['am'] = array(
 201+ 'checkuser-reason' => 'ምክንያት:',
 202+ 'checkuser-search' => 'ፍለጋ',
 203+ 'checkuser-all' => 'ሁሉ',
 204+ 'checkuser-search-submit' => 'ፍለጋ',
 205+);
 206+
 207+/** Aragonese (Aragonés)
 208+ * @author Juanpabl
 209+ */
 210+$messages['an'] = array(
 211+ 'checkuser-summary' => "Ista aina repasa os zaguers cambeos ta mirar as IPs usatas por un usuario u amostrar as edizions y datos d'usuario ta una adreza IP. Os usuarios y edizions feitos por un cliente IP pueden trobar-se por meyo de cabezeras XFF adibindo a IP con \"/xff\". Se da soporte á IPv4 (CIDR 16-32) y IPv6 (CIDR 96-128).
 212+No s'otendrán más de 5000 edizions por razons de prestazions. Faiga serbir ista aina d'alcuerdo con as politicas d'o procheuto.",
 213+ 'checkuser-desc' => "Conzede á os usuarios con o premiso adecuau a capazidat ta comprebar as adrezas IP d'os usuarios y atras informazions",
 214+ 'checkuser-logcase' => 'En mirar os rechistros se fa destinzión entre mayusclas y minusclas.',
 215+ 'checkuser' => "Comprebazión d'usuarios",
 216+ 'group-checkuser' => "Comprebadors d'usuarios",
 217+ 'group-checkuser-member' => "Comprebador d'usuarios",
 218+ 'right-checkuser' => "Comprebar as adrezas IP de l'usuario y atras informazions",
 219+ 'right-checkuser-log' => "Beyer o rechistro de comprebazión d'usuarios",
 220+ 'grouppage-checkuser' => "{{ns:project}}:comprebazión d'usuarios",
 221+ 'checkuser-reason' => 'Razón:',
 222+ 'checkuser-showlog' => 'Amostrar o rechistro',
 223+ 'checkuser-log' => "Rechistro de CheckUser (comprebazión d'usuarios)",
 224+ 'checkuser-query' => 'Mirar en os zaguers cambeos',
 225+ 'checkuser-target' => 'Usuario u adreza IP',
 226+ 'checkuser-users' => "Otener os nombres d'usuario",
 227+ 'checkuser-edits' => 'Otener as edizions dende una adreza IP',
 228+ 'checkuser-ips' => 'Otener as adrezas IP',
 229+ 'checkuser-search' => 'Mirar',
 230+ 'checkuser-empty' => 'No bi ha garra elemento en o rechistro.',
 231+ 'checkuser-nomatch' => "No s'ha trobato garra concordanzia",
 232+ 'checkuser-check' => 'Comprebar',
 233+ 'checkuser-log-fail' => "No s'ha puesto adibir ista dentrada ta o rechistro",
 234+ 'checkuser-nolog' => "No s'ha trobato garra archibo de rechistro.",
 235+ 'checkuser-blocked' => 'Bloqueyato',
 236+ 'checkuser-too-many' => 'Bi ha masiaus resultaus. Por fabor, faiga más estreito o CIDR. Aquí bi son as adrezas IP emplegatas (masimo 5000, ordenatas por adreza):',
 237+ 'checkuser-user-nonexistent' => 'O usuario espezificato no esiste.',
 238+ 'checkuser-search-form' => "Trobar dentradas d'o rechistro an que o $1 sía $2",
 239+ 'checkuser-search-submit' => 'Mirar',
 240+ 'checkuser-search-initiator' => "o enzetador d'a consulta",
 241+ 'checkuser-search-target' => 'obchetibo',
 242+ 'checkuser-ipeditcount' => '~$1 de toz os usuarios',
 243+ 'checkuser-log-subpage' => 'Rechistro',
 244+ 'checkuser-log-return' => "Tornar ta o formulario prenzipal de CheckUser (Comprebazión d'usuarios)",
 245+ 'checkuser-log-userips' => '$1 ha consultato as adrezas IP de $2',
 246+ 'checkuser-log-ipedits' => '$1 ha consultato as edizions de $2',
 247+ 'checkuser-log-ipusers' => "$1 ha consultato os nombres d'usuario de $2",
 248+ 'checkuser-log-ipedits-xff' => "$1 ha consultato as edizions d'o XFF $2",
 249+ 'checkuser-log-ipusers-xff' => "$1 ha consultato os nombres d'usuario d'o XFF $2",
 250+);
 251+
 252+/** Old English (Anglo-Saxon) */
 253+$messages['ang'] = array(
 254+ 'checkuser-reason' => 'Racu',
 255+);
 256+
 257+/** Arabic (العربية)
 258+ * @author Alnokta
 259+ * @author Meno25
 260+ * @author Mido
 261+ * @author OsamaK
 262+ */
 263+$messages['ar'] = array(
 264+ 'checkuser-summary' => 'هذه الأداة تفحص أحدث التغييرات لاسترجاع الأيبيهات المستخدمة بواسطة مستخدم أو عرض بيانات التعديل/المستخدم لأيبي.
 265+المستخدمون والتعديلات بواسطة أيبي عميل يمكن استرجاعها من خلال عناوين XFF عبر طرق الأيبي IP ب"/xff". IPv4 (CIDR 16-32) و IPv6 (CIDR 96-128) مدعومان.
 266+ لا أكثر من 5000 تعديل سيتم عرضها لأسباب تتعلق بالأداء.
 267+استخدم هذا بالتوافق مع السياسة.',
 268+ 'checkuser-desc' => 'يمنح المستخدمين بالسماح المطلوب القدرة على فحص عناوين الأيبي لمستخدم ما ومعلومات أخرى',
 269+ 'checkuser-logcase' => 'بحث السجل حساس لحالة الحروف.',
 270+ 'checkuser' => 'تدقيق مستخدم',
 271+ 'checkuser-contribs' => 'افحص عناوين أيبي المستخدم',
 272+ 'group-checkuser' => 'مدققو مستخدم',
 273+ 'group-checkuser-member' => 'مدقق مستخدم',
 274+ 'right-checkuser' => 'افحص عناوين أيبي المستخدم والمعلومات الأخرى',
 275+ 'right-checkuser-log' => 'رؤية سجل تدقيق المستخدم',
 276+ 'grouppage-checkuser' => '{{ns:project}}:تدقيق مستخدم',
 277+ 'checkuser-reason' => 'السبب:',
 278+ 'checkuser-showlog' => 'عرض السجل',
 279+ 'checkuser-log' => 'سجل تدقيق المستخدم',
 280+ 'checkuser-query' => 'فحص أحدث التغييرات',
 281+ 'checkuser-target' => 'مستخدم أو عنوان أيبي',
 282+ 'checkuser-users' => 'اعرض المستخدمين',
 283+ 'checkuser-edits' => 'اعرض التعديلات من الأيبي',
 284+ 'checkuser-ips' => 'اعرض الأيبيهات',
 285+ 'checkuser-account' => 'الحصول على تعديلات الحساب',
 286+ 'checkuser-search' => 'بحث',
 287+ 'checkuser-period' => 'المدة:',
 288+ 'checkuser-week-1' => 'آخر أسبوع',
 289+ 'checkuser-week-2' => 'آخر أسبوعين',
 290+ 'checkuser-month' => 'آخر 30 يوم',
 291+ 'checkuser-all' => 'الكل',
 292+ 'checkuser-cidr-label' => 'جد النطاق المشترك والعناوين المتأثرة لقائمة من الأيبيهات',
 293+ 'checkuser-cidr-res' => 'CIDR مشترك:',
 294+ 'checkuser-empty' => 'لا توجد مدخلات في السجل.',
 295+ 'checkuser-nomatch' => 'لم يتم العثور على مدخلات مطابقة.',
 296+ 'checkuser-nomatch-edits' => 'لا تطابق تم العثور عليه.
 297+آخر تعديل كان في $1 الساعة $2.',
 298+ 'checkuser-check' => 'فحص',
 299+ 'checkuser-log-fail' => 'غير قادر على إضافة مدخلة للسجل',
 300+ 'checkuser-nolog' => 'لم يتم العثور على ملف سجل.',
 301+ 'checkuser-blocked' => 'ممنوع',
 302+ 'checkuser-gblocked' => 'ممنوع منعا عاما',
 303+ 'checkuser-locked' => 'مغلق',
 304+ 'checkuser-wasblocked' => 'تم منعه مسبقا',
 305+ 'checkuser-localonly' => 'غير موحد',
 306+ 'checkuser-massblock' => 'امنع المستخدمين المختارين',
 307+ 'checkuser-massblock-text' => 'الحسابات المختارة سيتم منعها لا نهائيا، مع تفعيل المنع التلقائي وتعطيل إنشاء الحسابات.
 308+عناوين الأيبي سيتم منعها لمدة 1 أسبوع لمستخدمي الأيبي فقط ومع تعطيل إنشاء الحسابات.',
 309+ 'checkuser-blocktag' => 'استبدل صفحات المستخدمين ب:',
 310+ 'checkuser-blocktag-talk' => 'استبدل صفحات النقاش ب:',
 311+ 'checkuser-massblock-commit' => 'منع المستخدمين المختارين',
 312+ 'checkuser-block-success' => "'''{{PLURAL:$2|المستخدم|المستخدمون}} $1 الآن {{PLURAL:$2|ممنوع|ممنوعون}}.'''",
 313+ 'checkuser-block-failure' => "'''لا مستخدمون تم منعهم.'''",
 314+ 'checkuser-block-limit' => 'تم اختيار عدد كبير من المستخدمين.',
 315+ 'checkuser-block-noreason' => 'يجب أن تعطي سببا لعمليات المنع.',
 316+ 'checkuser-accounts' => '$1 {{PLURAL:$1|حساب|حساب}} جديد',
 317+ 'checkuser-too-many' => 'نتائج كثيرة جدا، من فضلك قلل الCIDR.
 318+هذه هي الأيبيهات المستخدمة (5000 كحد أقصى، مرتبة بالعنوان):',
 319+ 'checkuser-user-nonexistent' => 'المستخدم المحدد غير موجود.',
 320+ 'checkuser-search-form' => 'اعثر على مدخلات السجل حيث $1 هو $2',
 321+ 'checkuser-search-submit' => 'بحث',
 322+ 'checkuser-search-initiator' => 'بادىء',
 323+ 'checkuser-search-target' => 'هدف',
 324+ 'checkuser-ipeditcount' => '~$1 من كل المستخدمين',
 325+ 'checkuser-log-subpage' => 'سجل',
 326+ 'checkuser-log-return' => 'ارجع إلى استمارة تدقيق المستخدم الرئيسية',
 327+ 'checkuser-limited' => "'''هذه النتائج تم اختصارها لأسباب تتعلق بالأداء.'''",
 328+ 'checkuser-log-userips' => '$1 حصل على آيبيهات $2',
 329+ 'checkuser-log-ipedits' => '$1 حصل على التعديلات ل $2',
 330+ 'checkuser-log-ipusers' => '$1 حصل على مستخدمي $2',
 331+ 'checkuser-log-ipedits-xff' => '$1 حصل على التعديلات للإكس إف إف $2',
 332+ 'checkuser-log-ipusers-xff' => '$1 حصل على المستخدمين للإكس إف إف $2',
 333+ 'checkuser-log-useredits' => '$1 حصل على تعديلات $2',
 334+ 'checkuser-autocreate-action' => 'تم إنشاؤه تلقائيا',
 335+ 'checkuser-email-action' => 'أرسل بريدا إلكترونيا إلى "$1"',
 336+ 'checkuser-reset-action' => 'أعد ضبط كلمة السر للمستخدم "$1"',
 337+);
 338+
 339+/** Egyptian Spoken Arabic (مصرى)
 340+ * @author Ghaly
 341+ * @author Meno25
 342+ * @author Ramsis II
 343+ */
 344+$messages['arz'] = array(
 345+ 'checkuser-summary' => 'الوسيلة دى بتدور فى احدث التغييرات علشان ترجع الايبيهات اللى استعملها يوزر او علشان تعرض بيانات التعديل/اليوزر لعنوان الاى بي.
 346+اليوزرز و التعديلات اللى اتعملت من أى بى عميل ممكن تترجع عن طريق عناوين XFF لو زودت على الاى بى "/xff".
 347+IPv4 (CIDR 16-32) و IPv6 (CIDR 96-128) مدعومين.
 348+مش اكتر من 5000 تعديل ممكن تتعرض بسبب الاداء.
 349+استخدم دا بطريقة موافقة للسياسة.',
 350+ 'checkuser-desc' => 'بيدى لليوزرز بعد الاذن المناسب القدرة على التشييك على عنوان الاى بى بتاع اى يوزر و معلومات تانية',
 351+ 'checkuser-logcase' => 'التدوير فى السجل حساس لحالة الحروف',
 352+ 'checkuser' => 'التشييك على اليوزر',
 353+ 'group-checkuser' => 'التشييك على اليوزرز',
 354+ 'group-checkuser-member' => 'تشييك اليوزر',
 355+ 'right-checkuser' => 'التشييك على عناوين الاى بى لليوزرز و معلومات تانية',
 356+ 'right-checkuser-log' => 'اعرض السجل بتاع تشييك اليوزر',
 357+ 'grouppage-checkuser' => '{{ns:project}}:تشييك اليوزر',
 358+ 'checkuser-reason' => 'السبب:',
 359+ 'checkuser-showlog' => 'عرض السجل',
 360+ 'checkuser-log' => 'سجل تشييك اليوزر',
 361+ 'checkuser-query' => 'دور على احدث التغييرات',
 362+ 'checkuser-target' => 'يوزر او اى بي',
 363+ 'checkuser-users' => 'هات اليوزرز',
 364+ 'checkuser-edits' => 'هات التعديلات من الاى بي',
 365+ 'checkuser-ips' => 'هات الايبيهات',
 366+ 'checkuser-account' => 'هات تعديلات الحساب',
 367+ 'checkuser-search' => 'تدوير',
 368+ 'checkuser-period' => 'المدة:',
 369+ 'checkuser-week-1' => 'الاسبوع اللى فات',
 370+ 'checkuser-week-2' => 'الاسبوعين اللى فاتو',
 371+ 'checkuser-month' => 'الـ30 يوم اللى فاتو',
 372+ 'checkuser-all' => 'الكل',
 373+ 'checkuser-cidr-label' => 'لاقى النطاق المشترك و العنواين المتأثره لليستة الايبيهات.',
 374+ 'checkuser-cidr-res' => 'CIDR مشترك:',
 375+ 'checkuser-empty' => 'مافيش حاجة فى السجل.',
 376+ 'checkuser-nomatch' => 'مافيش اى حاجة متطابقة',
 377+ 'checkuser-nomatch-edits' => 'لا تطابق تم العثور عليه.
 378+آخر تعديل كان فى $1 الساعة $2.',
 379+ 'checkuser-check' => 'فحص',
 380+ 'checkuser-log-fail' => 'مش قادر يضيف مدخلة للسجل',
 381+ 'checkuser-nolog' => 'سجل الملف ماتلقاش.',
 382+ 'checkuser-blocked' => 'ممنوع',
 383+ 'checkuser-gblocked' => 'ممنوع منعا عاما',
 384+ 'checkuser-locked' => 'مغلق',
 385+ 'checkuser-wasblocked' => 'اتمنع قبل كدا',
 386+ 'checkuser-localonly' => 'مش متوحد',
 387+ 'checkuser-massblock' => 'امنع اليوزرز اللى اخترتهم.',
 388+ 'checkuser-massblock-text' => 'الحسابات اللى انت اختارتها ح يتمنعو على طول،مش ح يقدرو يفتحو حسابات و ح يتمنعو اوتوماتيكي.
 389+عناوين الاى بى ح تتمنع لمدة اسبوع واحد بالنسبة للى بيستعملو الاى بى و مش ح يقدرو يفتحو حسابات.',
 390+ 'checkuser-blocktag' => 'بدل صفحات اليوزرز بـ:',
 391+ 'checkuser-blocktag-talk' => 'بدل صفحة النقاش ب',
 392+ 'checkuser-massblock-commit' => 'امنع اليوزرز اللى اخترتهم',
 393+ 'checkuser-block-success' => "'''الـ {{PLURAL:$2|يوزر|يوزرز}} $1 {{PLURAL:$2|بقى ممنوع|بقو ممنوعين}} دلوقتي.'''",
 394+ 'checkuser-block-failure' => "'''مافيش يوزرز ممنوعين'''",
 395+ 'checkuser-block-limit' => 'انت اخترت يوزرز كتار جدا.',
 396+ 'checkuser-block-noreason' => 'لازم تدى سبب لعمليات المنع.',
 397+ 'checkuser-accounts' => '$1 جديد {{PLURAL:$1|حساب|حسابات}}',
 398+ 'checkuser-too-many' => 'فى نتايج كتيرة جدا, لو سمحت تقلل الـ CIDR.
 399+دول الايبيهات المستعملة (5000 كحد اقصى, مترتبين بالعنوان):',
 400+ 'checkuser-user-nonexistent' => 'اليوزر المتحدد مش موجود',
 401+ 'checkuser-search-form' => 'لاقى مدخلات السجل لما يكون $1 هو $2',
 402+ 'checkuser-search-submit' => 'تدوير',
 403+ 'checkuser-search-initiator' => 'البادي',
 404+ 'checkuser-search-target' => 'هدف',
 405+ 'checkuser-ipeditcount' => '~$1 من كل اليوزرز',
 406+ 'checkuser-log-subpage' => 'سجل',
 407+ 'checkuser-log-return' => 'ارجع للاستمارة الرئيسية بتاعة تشييك اليوزرز',
 408+ 'checkuser-limited' => "''' النتايج دى اتعملها اختصار لأسباب متعلقة بالأداء.'''",
 409+ 'checkuser-log-userips' => '$1 جاب الاى بى بتوع $2',
 410+ 'checkuser-log-ipedits' => '$1 جاب التعديلات بتاعة $2',
 411+ 'checkuser-log-ipusers' => '$1 جاب اليوزرز بتوع $2',
 412+ 'checkuser-log-ipedits-xff' => '$1 جاب التعديلات للإكس إف إف $2',
 413+ 'checkuser-log-ipusers-xff' => '$1 جاب اليوزرز لل اكس اف اف بتوع $2',
 414+ 'checkuser-log-useredits' => '$1 جاب التعديلات بتاعة$2',
 415+ 'checkuser-autocreate-action' => 'ابتدا اوتوماتيكى',
 416+ 'checkuser-email-action' => 'ابعت ايميل لليوزر "$1"',
 417+ 'checkuser-reset-action' => 'اضبط من تانى الباسورد بتاعة اليوزر "$1"',
 418+);
 419+
 420+/** Assamese (অসমীয়া)
 421+ * @author Chaipau
 422+ */
 423+$messages['as'] = array(
 424+ 'checkuser-search' => 'সন্ধান কৰক',
 425+ 'checkuser-search-submit' => 'সন্ধান কৰক',
 426+);
 427+
 428+/** Asturian (Asturianu)
 429+ * @author Esbardu
 430+ */
 431+$messages['ast'] = array(
 432+ 'checkuser-summary' => "Esta ferramienta escanea los cambeos recientes pa obtener les IP usaes por un usuariu o p'amosar les ediciones o usuarios d'una IP.
 433+ Los usuarios y ediciones correspondientes a una IP puen obtenese per aciu de les cabeceres XFF añadiendo depués de la IP \\\"/xff\\\". Puen usase los protocolos IPv4 (CIDR 16-32) y IPv6 (CIDR 96-128).
 434+ Por razones de rendimientu nun s'amosarán más de 5.000 ediciones. Emplega esta ferramienta acordies cola política d'usu.",
 435+ 'checkuser-desc' => "Permite a los usuarios colos permisos afechiscos la posibilidá de comprobar les direiciones IP d'usuarios y otres informaciones",
 436+ 'checkuser-logcase' => 'La busca nel rexistru distingue ente mayúscules y minúscules.',
 437+ 'checkuser' => "Comprobador d'usuariu",
 438+ 'group-checkuser' => "Comprobadores d'usuariu",
 439+ 'group-checkuser-member' => "comprobador d'usuariu",
 440+ 'right-checkuser' => "Comprueba les direiciones IP d'un usuariu entre otres coses",
 441+ 'right-checkuser-log' => "Ver el rexistru de comprobación d'usuarios",
 442+ 'grouppage-checkuser' => "{{ns:project}}:Comprobador d'usuariu",
 443+ 'checkuser-reason' => 'Motivu:',
 444+ 'checkuser-showlog' => 'Amosar el rexistru',
 445+ 'checkuser-log' => "Rexistru de comprobadores d'usuariu",
 446+ 'checkuser-query' => 'Buscar nos cambeos recientes',
 447+ 'checkuser-target' => 'Usuariu o IP',
 448+ 'checkuser-users' => 'Obtener usuarios',
 449+ 'checkuser-edits' => 'Obtener les ediciones de la IP',
 450+ 'checkuser-ips' => 'Obtener les IP',
 451+ 'checkuser-account' => "Obtener les ediciones d'una cuenta",
 452+ 'checkuser-search' => 'Buscar',
 453+ 'checkuser-period' => 'Duración:',
 454+ 'checkuser-week-1' => 'cabera selmana',
 455+ 'checkuser-week-2' => 'caberes dos selmanes',
 456+ 'checkuser-month' => 'caberos 30 díes',
 457+ 'checkuser-all' => 'too',
 458+ 'checkuser-empty' => 'El rexistru nun tien nengún elementu.',
 459+ 'checkuser-nomatch' => "Nun s'atoparon coincidencies.",
 460+ 'checkuser-nomatch-edits' => "Nun s'atoparon coincidencies. La cabera edición foi en $1.",
 461+ 'checkuser-check' => 'Comprobar',
 462+ 'checkuser-log-fail' => 'Nun se pue añader la entrada nel rexistru',
 463+ 'checkuser-nolog' => "Nun s'atopó l'archivu del rexistru.",
 464+ 'checkuser-blocked' => 'Bloquiáu',
 465+ 'checkuser-gblocked' => 'Bloquiáu globalmente',
 466+ 'checkuser-locked' => 'Candáu',
 467+ 'checkuser-wasblocked' => 'Bloquiáu previamente',
 468+ 'checkuser-massblock' => 'Bloquias usuarios seleicionaos',
 469+ 'checkuser-massblock-text' => 'Les cuentes seleicionaes van se bloquiaes de forma indefinida, col autobloquéu activáu y la creación de cuentes desactivada.
 470+Les direiciones IP van ser bloquiaes 1 selmana namái pa usuarios IP y cola creación de cuentes desactivada.',
 471+ 'checkuser-blocktag' => "Sustituyir páxines d'usuariu con:",
 472+ 'checkuser-massblock-commit' => 'Bloquiar usuarios seleicionaos',
 473+ 'checkuser-block-success' => "'''{{PLURAL:$2|L'usuariu|Los usuarios}} $1 yá {{PLURAL:$2|ta bloquiáu.|tán bloquiaos.}}'''",
 474+ 'checkuser-block-failure' => "'''Nengún usuariu bloquiáu.'''",
 475+ 'checkuser-block-limit' => 'Demasiaos usuarios seleicionaos.',
 476+ 'checkuser-block-noreason' => 'Tienes que dar un motivu pa los bloqueos.',
 477+ 'checkuser-accounts' => '$1 {{PLURAL:$1|cuenta nueva|cuentes nueves}}',
 478+ 'checkuser-too-many' => 'Demasiaos resultaos, por favor mengua la CIDR. Estes son les IP usaes (5.000 como máximo, ordenaes por direición):',
 479+ 'checkuser-user-nonexistent' => "L'usuariu especificáu nun esiste.",
 480+ 'checkuser-search-form' => 'Atopar les entraes de rexistru onde $1 ye $2',
 481+ 'checkuser-search-submit' => 'Buscar',
 482+ 'checkuser-search-initiator' => 'aniciador',
 483+ 'checkuser-search-target' => 'oxetivu',
 484+ 'checkuser-ipeditcount' => '~$1 de tolos usuarios',
 485+ 'checkuser-log-subpage' => 'Rexistru',
 486+ 'checkuser-log-return' => "Volver al formulariu principal de comprobador d'usuariu",
 487+ 'checkuser-limited' => "'''Estos resultaos fueron truncaos por motivos de rendimientu.'''",
 488+ 'checkuser-log-userips' => '$1 obtuvo les IP pa $2',
 489+ 'checkuser-log-ipedits' => '$1 obtuvo les ediciones pa $2',
 490+ 'checkuser-log-ipusers' => '$1 obtuvo los usuarios pa $2',
 491+ 'checkuser-log-ipedits-xff' => '$1 obtuvo les ediciones pa XFF $2',
 492+ 'checkuser-log-ipusers-xff' => '$1 obtuvo los usuarios pa XFF $2',
 493+ 'checkuser-log-useredits' => '$1 obtuvo les ediciones de $2',
 494+ 'checkuser-autocreate-action' => 'creóse automáticamente',
 495+ 'checkuser-email-action' => 'unvió un corréu electrónicu a "$1"',
 496+ 'checkuser-reset-action' => 'restableció la clave pal usuariu "$1"',
 497+);
 498+
 499+/** Kotava (Kotava)
 500+ * @author Wikimistusik
 501+ */
 502+$messages['avk'] = array(
 503+ 'checkuser' => 'Stujera va favesik',
 504+ 'group-checkuser' => 'Stujera va favesik',
 505+ 'group-checkuser-member' => 'Stujera va favesik',
 506+ 'grouppage-checkuser' => '{{ns:project}}:Stujera va favesik',
 507+ 'checkuser-reason' => 'Lazava',
 508+ 'checkuser-showlog' => 'Nedira va "log"',
 509+ 'checkuser-target' => 'Favesik ok IP mane',
 510+ 'checkuser-search' => 'Aneyara',
 511+ 'checkuser-empty' => '"Log" iyeltak tir vlardaf.',
 512+ 'checkuser-nomatch' => 'Nedoy trasiks',
 513+ 'checkuser-check' => 'Stujera',
 514+ 'checkuser-nolog' => 'Mek trasiyin "log" iyeltak.',
 515+ 'checkuser-blocked' => 'Elekan',
 516+ 'checkuser-search-submit' => 'Aneyara',
 517+ 'checkuser-search-target' => 'jala',
 518+);
 519+
 520+/** Southern Balochi (بلوچی مکرانی)
 521+ * @author Mostafadaneshvar
 522+ */
 523+$messages['bcc'] = array(
 524+ 'checkuser-desc' => 'کاربرانء اجازت دن گون مناسبین اجازت آدرسان آی پی یک کاربری و دگه اطلاعاتء کنترل بکنت',
 525+ 'checkuser-logcase' => 'گردگ ته آمار به الفبای هورد و مزنین حساسنت.',
 526+ 'checkuser' => 'کنترل کاربر',
 527+ 'group-checkuser' => 'کنترل کابران',
 528+ 'group-checkuser-member' => 'کنترل کاربر',
 529+ 'right-checkuser' => 'کنترل کن آی پی کاربران و دگه اطلاعاتء',
 530+ 'grouppage-checkuser' => '{{ns:project}}:کنترل کاربر',
 531+ 'checkuser-reason' => 'دلیل',
 532+ 'checkuser-showlog' => 'آمار پیش دار',
 533+ 'checkuser-log' => 'آمار کنترل کاربر',
 534+ 'checkuser-query' => 'درخواست نوکین تغییرات',
 535+ 'checkuser-target' => 'کاربر یا آی پی',
 536+ 'checkuser-users' => 'بگر کابرانء',
 537+ 'checkuser-edits' => 'چه آی پی آن اصلاح بگر',
 538+ 'checkuser-ips' => 'آی پی آن گر',
 539+ 'checkuser-search' => 'گردگ',
 540+ 'checkuser-empty' => 'آمار شمال هچ آیتمی نهنت.',
 541+ 'checkuser-nomatch' => 'هچ همدابی در نکپت',
 542+ 'checkuser-check' => 'کنترل',
 543+ 'checkuser-log-fail' => 'نه تونی ورودی آمار اضافه کنت',
 544+ 'checkuser-nolog' => 'فایل آماری در نه کپت',
 545+ 'checkuser-blocked' => 'محدود',
 546+ 'checkuser-too-many' => 'بازگین نتیجه, لطفا CIDR هورد تر کن.
 547+ادان آی پی آنی هستند که استفاده کننت(5000 ماکسیمم، گون آدرس ردیف بوتگن):',
 548+ 'checkuser-user-nonexistent' => 'مشخص بوتگین کاربر موجود نهنت',
 549+ 'checkuser-search-form' => 'دیرگیز آمار ورودی جاهی که $1 هست $2',
 550+ 'checkuser-search-submit' => 'گردگ',
 551+ 'checkuser-search-initiator' => 'شروع کنوک',
 552+ 'checkuser-search-target' => 'هدف',
 553+ 'checkuser-ipeditcount' => '~$1 چه کلی کابران',
 554+ 'checkuser-log-subpage' => 'آمار',
 555+ 'checkuser-log-return' => 'په فرم اصلی کنترل کاربر تر',
 556+ 'checkuser-log-userips' => '$1 گریت آی پی په $2',
 557+ 'checkuser-log-ipedits' => '$1 گریت اصلاح په $2',
 558+ 'checkuser-log-ipusers' => '$1 کابران گریت په $2',
 559+ 'checkuser-log-ipedits-xff' => '$1 اصلاح کنت په XFF $2',
 560+ 'checkuser-log-ipusers-xff' => '$1 گریت کابران په XFF $2',
 561+);
 562+
 563+/** Bikol Central (Bikol Central)
 564+ * @author Filipinayzd
 565+ */
 566+$messages['bcl'] = array(
 567+ 'checkuser-reason' => 'Rasón',
 568+ 'checkuser-showlog' => 'Ipahiling an mga historial',
 569+ 'checkuser-target' => 'Parágamit o IP',
 570+ 'checkuser-users' => 'Kûanón',
 571+ 'checkuser-ips' => 'Kûanón an mga IP',
 572+ 'checkuser-search' => 'Hanápon',
 573+ 'checkuser-blocked' => 'Pigbágat',
 574+);
 575+
 576+/** Belarusian (Taraškievica orthography) (Беларуская (тарашкевіца))
 577+ * @author EugeneZelenko
 578+ * @author Jim-by
 579+ * @author Red Winged Duck
 580+ */
 581+$messages['be-tarask'] = array(
 582+ 'checkuser-summary' => 'Гэты інструмэнт праглядае апошнія зьмены для атрыманьня ІР-адрасоў удзельніка альбо паказвае рэдагаваньні/зьвесткі ўдзельніка па ІР-адрасе.
 583+Удзельнікі і рэдагаваньні, якія рабіліся з ІР-адрасу, пазначаным ў загалоўках XFF, можна атрымаць, дадаўшы да ІР-адрасу «/xff». Падтрымліваюцца IPv4 (CIDR 16-32) і IPv6 (CIDR 96-128).
 584+З прычыны прадукцыйнасьці будуць паказаны ня больш за 5000 рэдагаваньняў.
 585+Карыстайцеся гэтым інструмэнтам толькі згодна з правіламі.',
 586+ 'checkuser-desc' => 'Дае магчымасьць удзельнікам з адпаведнымі правамі правяраць ІР-адрасы і іншую інфармацыю ўдзельнікаў',
 587+ 'checkuser-logcase' => 'Пошук па журнале адчувальны да рэгістру літараў.',
 588+ 'checkuser' => 'Праверыць удзельніка',
 589+ 'checkuser-contribs' => 'праверыць IP-адрасы ўдзельніка',
 590+ 'group-checkuser' => 'Правяраючыя ўдзельнікаў',
 591+ 'group-checkuser-member' => 'правяраючы ўдзельнікаў',
 592+ 'right-checkuser' => 'Праверка ІР-адрасоў і іншай інфармацыі ўдзельніка',
 593+ 'right-checkuser-log' => 'Прагляд журнала праверкі ўдзельнікаў',
 594+ 'grouppage-checkuser' => '{{ns:project}}:Праверка ўдзельнікаў',
 595+ 'checkuser-reason' => 'Прычына:',
 596+ 'checkuser-showlog' => 'Паказаць журнал',
 597+ 'checkuser-log' => 'Журнал праверак удзельнікаў',
 598+ 'checkuser-query' => 'Запытаць апошнія зьмены',
 599+ 'checkuser-target' => 'Рахунак удзельніка альбо IP-адрас',
 600+ 'checkuser-users' => 'Атрымаць рахункі ўдзельнікаў',
 601+ 'checkuser-edits' => 'Атрымаць рэдагаваньні, зробленыя з IP-адрасу',
 602+ 'checkuser-ips' => 'Атрымаць IP-адрасы',
 603+ 'checkuser-account' => 'Атрымаць рэдагаваньні з рахунку ўдзельніка',
 604+ 'checkuser-search' => 'Шукаць',
 605+ 'checkuser-period' => 'Працягласьць:',
 606+ 'checkuser-week-1' => 'апошні тыдзень',
 607+ 'checkuser-week-2' => 'апошнія два тыдні',
 608+ 'checkuser-month' => 'апошнія 30 дзён',
 609+ 'checkuser-all' => 'усе',
 610+ 'checkuser-cidr-label' => 'Знайсьці агульны дыяпазон і зьвязаныя адрасы па сьпісе ІР-адрасоў',
 611+ 'checkuser-cidr-res' => 'Агульны CIDR:',
 612+ 'checkuser-empty' => 'Журнал ня ўтрымлівае запісаў.',
 613+ 'checkuser-nomatch' => 'Супадзеньні ня знойдзеныя.',
 614+ 'checkuser-nomatch-edits' => 'Супадзеньняў ня знойдзена.
 615+Апошняе рэдагаваньне зроблена $1 у $2.',
 616+ 'checkuser-check' => 'Праверыць',
 617+ 'checkuser-log-fail' => 'Немагчыма дадаць запіс у журнал',
 618+ 'checkuser-nolog' => 'Ня знойдзены файл журнала.',
 619+ 'checkuser-blocked' => 'Заблякаваны',
 620+ 'checkuser-gblocked' => 'Заблякаваны глябальна',
 621+ 'checkuser-locked' => 'Заблякаваны',
 622+ 'checkuser-wasblocked' => 'Заблякаваны раней',
 623+ 'checkuser-localonly' => "Не аб'яднаны",
 624+ 'checkuser-massblock' => 'Заблякаваць выбраныя рахункі ўдзельнікаў',
 625+ 'checkuser-massblock-text' => 'Выбраныя рахункі будуць заблякаваны назаўсёды з аўтаматычным блякаваньнем і забаронай стварэньня новых рахункаў.
 626+ІР-адрасы будуць заблякаваныя на 1 тыдзень для незарэгістраваных удзельнікаў з забаронай стварэньня новых рахункаў.',
 627+ 'checkuser-blocktag' => 'Замяніць старонкі ўдзельнікаў на:',
 628+ 'checkuser-blocktag-talk' => 'Замяніць старонкі гутарак удзельнікаў на:',
 629+ 'checkuser-massblock-commit' => 'Заблякаваць выбраныя рахункі ўдзельнікаў',
 630+ 'checkuser-block-success' => "'''Цяпер $2 {{PLURAL:$2|рахунак удзельніка|рахункі удзельнікаў|рахункаў удзельнікаў}} $1 {{PLURAL:$2|заблякаваны|заблякаваныя|заблякаваныя}}.'''",
 631+ 'checkuser-block-failure' => "'''Няма заблякаваных рахункаў удзельнікаў.'''",
 632+ 'checkuser-block-limit' => 'Выбрана зашмат рахункаў удзельнікаў.',
 633+ 'checkuser-block-noreason' => 'Вам неабходна пазначыць прычыну блякаваньня.',
 634+ 'checkuser-accounts' => '$1 {{PLURAL:$1|новы рахунак|новыя рахункі|новых рахункаў}}',
 635+ 'checkuser-too-many' => 'Зашмат вынікаў, калі ласка, абмяжуйце CIDR.
 636+Тут пададзеныя ўжытыя ІР-адрасы (максымум 5000, адсартаваныя паводле адрасу):',
 637+ 'checkuser-user-nonexistent' => 'Пазначанага рахунку ўдзельніка не існуе.',
 638+ 'checkuser-search-form' => 'Пошук запісаў у журнале, дзе $1 зьяўляецца $2',
 639+ 'checkuser-search-submit' => 'Шукаць',
 640+ 'checkuser-search-initiator' => 'ініцыятар',
 641+ 'checkuser-search-target' => 'мэта',
 642+ 'checkuser-ipeditcount' => '~$1 ад усіх удзельнікаў',
 643+ 'checkuser-log-subpage' => 'Журнал',
 644+ 'checkuser-log-return' => 'Вярнуцца да галоўнай формы праверкі ўдзельнікаў',
 645+ 'checkuser-limited' => "'''Гэты вынік быў скарочаны, з прычыны прадукцыйнасьці сыстэмы.'''",
 646+ 'checkuser-log-userips' => '$1 атрымаў IP-адрасы для $2',
 647+ 'checkuser-log-ipedits' => '$1 атрымаў рэдагаваньні для $2',
 648+ 'checkuser-log-ipusers' => '$1 атрымаў рахункі ўдзельнікаў для $2',
 649+ 'checkuser-log-ipedits-xff' => '$1 атрымаў рэдагаваньні для XFF $2',
 650+ 'checkuser-log-ipusers-xff' => '$1 атрымаў рахункі ўдзельнікаў для XFF $2',
 651+ 'checkuser-log-useredits' => '$1 атрымаў рэдагаваньні для $2',
 652+ 'checkuser-autocreate-action' => 'быў створаны аўтаматычна',
 653+ 'checkuser-email-action' => 'даслаць ліст удзельніку «$1»',
 654+ 'checkuser-reset-action' => 'скасаваў пароль для ўдзельніка «$1»',
 655+);
 656+
 657+/** Bulgarian (Български)
 658+ * @author Borislav
 659+ * @author DCLXVI
 660+ * @author Spiritia
 661+ */
 662+$messages['bg'] = array(
 663+ 'checkuser-summary' => 'Този инструмент сканира последните промени и извлича IP адресите, използвани от потребител или показва информацията за редакциите/потребителя за посоченото IP.
 664+ Потребители и редакции по клиентско IP могат да бъдат извлечени чрез XFF headers като се добави IP с "/xff". Поддържат се IPv4 (CIDR 16-32) и IPv6 (CIDR 96-128).
 665+ От съображения, свързани с производителността на уикито, ще бъдат показани не повече от 5000 редакции. Използвайте инструмента съобразно установената политика.',
 666+ 'checkuser-desc' => 'Предоставя на потребители с подходящите права възможност за проверка на потребителски IP адреси и друга информация',
 667+ 'checkuser-logcase' => 'Търсенето в дневника различава главни от малки букви.',
 668+ 'checkuser' => 'Проверяване на потребител',
 669+ 'group-checkuser' => 'Проверяващи',
 670+ 'group-checkuser-member' => 'Проверяващ',
 671+ 'right-checkuser' => 'проверяване на потребителски IP адреси и друга информация',
 672+ 'right-checkuser-log' => 'Преглеждане на дневника с проверки на потребители',
 673+ 'grouppage-checkuser' => '{{ns:project}}:Проверяващи',
 674+ 'checkuser-reason' => 'Причина',
 675+ 'checkuser-showlog' => 'Показване на дневника',
 676+ 'checkuser-log' => 'Дневник на проверяващите',
 677+ 'checkuser-query' => 'Заявка към последните промени',
 678+ 'checkuser-target' => 'Потребител или IP',
 679+ 'checkuser-users' => 'Извличане на потребители',
 680+ 'checkuser-edits' => 'Извличане на редакции от IP',
 681+ 'checkuser-ips' => 'Извличане на IP адреси',
 682+ 'checkuser-search' => 'Търсене',
 683+ 'checkuser-period' => 'Продължителност:',
 684+ 'checkuser-week-1' => 'последната седмица',
 685+ 'checkuser-week-2' => 'последните 2 седмици',
 686+ 'checkuser-month' => 'последните 30 дни',
 687+ 'checkuser-all' => 'всички',
 688+ 'checkuser-empty' => 'Дневникът не съдържа записи.',
 689+ 'checkuser-nomatch' => 'Няма открити съвпадения.',
 690+ 'checkuser-nomatch-edits' => 'Не бяха открити съвпадения.
 691+Последната редакция е била на $1 в $2.',
 692+ 'checkuser-check' => 'Проверка',
 693+ 'checkuser-log-fail' => 'Беше невъзможно да се добави запис в дневника',
 694+ 'checkuser-nolog' => 'Не беше открит дневник.',
 695+ 'checkuser-blocked' => 'Блокиран',
 696+ 'checkuser-gblocked' => 'Глобално блокиран',
 697+ 'checkuser-massblock' => 'Блокиране на избраните потребители',
 698+ 'checkuser-blocktag' => 'Заместване на потребителските страници с:',
 699+ 'checkuser-blocktag-talk' => 'Заместване на беседите с:',
 700+ 'checkuser-massblock-commit' => 'Блокиране на избраните потребители',
 701+ 'checkuser-block-success' => "'''{{PLURAL:$2|Потребител|Потребители}} $1 {{PLURAL:$2|беше блокиран|бяха блокирани}}.'''",
 702+ 'checkuser-block-failure' => "'''Няма блокирани потребители.'''",
 703+ 'checkuser-block-limit' => 'Избрани са твърде много потребители.',
 704+ 'checkuser-block-noreason' => 'Трябва да се посочи причина за блокиранията.',
 705+ 'checkuser-accounts' => '$1 {{PLURAL:$1|нова сметка|нови сметки}}',
 706+ 'checkuser-too-many' => 'Твърде много резултати. Показани са използваните IP адреси (най-много 5000, сортирани по адрес):',
 707+ 'checkuser-user-nonexistent' => 'Посоченият потребител не съществува.',
 708+ 'checkuser-search-form' => 'Намиране на записи от дневника, в които $1 е $2',
 709+ 'checkuser-search-submit' => 'Търсене',
 710+ 'checkuser-search-initiator' => 'инициатор',
 711+ 'checkuser-search-target' => 'цел',
 712+ 'checkuser-ipeditcount' => '~$1 от всички потребители',
 713+ 'checkuser-log-subpage' => 'Дневник',
 714+ 'checkuser-log-return' => 'Връщане към основния формуляр за проверка',
 715+ 'checkuser-log-userips' => '$1 е получил айпи адреси за $2',
 716+ 'checkuser-log-ipedits' => '$1 е получил редакции за $2',
 717+ 'checkuser-log-ipusers' => '$1 е получил потребители за $2',
 718+ 'checkuser-log-ipedits-xff' => '$1 е получил редакции за XFF $2',
 719+ 'checkuser-log-ipusers-xff' => '$1 е получил потребители за XFF $2',
 720+ 'checkuser-email-action' => 'изпрати е-писмо на потребител „$1“',
 721+);
 722+
 723+/** Bengali (বাংলা)
 724+ * @author Bellayet
 725+ * @author Zaheen
 726+ */
 727+$messages['bn'] = array(
 728+ 'checkuser-summary' => 'এই সরঞ্জামটি সাম্প্রতিক পরিবর্তনসমূহ বিশ্লেষণ করে কোন ব্যবহারকারীর ব্যবহৃত আইপিগুলি নিয়ে আসে কিংবা কোন একটি আইপির জন্য সম্পাদনা/ব্যবহারকারী উপাত্ত প্রদর্শন করে।
 729+কোন ক্লায়েন্ট আইপি-র জন্য ব্যবহারকারী ও সম্পাদনা XFF হেডারসমূহের সাহায্যে নিয়ে আসা যায়; এজন্য আইপির সাথে "/xff" যোগ করতে হয়।
 730+IPv4 (CIDR 16-32) এবং IPv6 (CIDR 96-128) এই সরঞ্জামে সমর্থিত।
 731+দক্ষতাজনিত কারণে ৫০০০-এর বেশি সম্পাদনা নিয়ে আসা হবে না। নীতিমালা মেনে এটি ব্যবহার করুন।',
 732+ 'checkuser-desc' => 'যথাযথ অনুমোদনপ্রাপ্ত ব্যবহারকারীদেরকে অন্য ব্যবহারকারীদের আইপি ঠিকানা এবং অন্যান্য তথ্য পরীক্ষা করার ক্ষমতা দেয়',
 733+ 'checkuser-logcase' => 'লগ অনুসন্ধান বড়/ছোট হাতের অক্ষরের উপর নির্ভরশীল',
 734+ 'checkuser' => 'ব্যবহারকারী পরীক্ষণ',
 735+ 'group-checkuser' => 'ব্যবহারকারীসমূহ পরীক্ষণ',
 736+ 'group-checkuser-member' => 'ব্যবহারকারী পরীক্ষণ',
 737+ 'grouppage-checkuser' => '{{ns:project}}:ব্যবহারকারী পরীক্ষণ',
 738+ 'checkuser-reason' => 'কারণ',
 739+ 'checkuser-showlog' => 'লগ দেখাও',
 740+ 'checkuser-log' => 'CheckUser লগ',
 741+ 'checkuser-query' => 'সাম্প্রতিক পরিবর্তনসমূহ জানুন',
 742+ 'checkuser-target' => 'ব্যবহারকারী অথবা আইপি',
 743+ 'checkuser-users' => 'ব্যবহারকারী সমূহ পাওয়া যাবে',
 744+ 'checkuser-edits' => 'আইপি থেকে সম্পাদনাসমূহ পাওয়া যাবে',
 745+ 'checkuser-ips' => 'আইপি সমূহ পাওয়া যাবে',
 746+ 'checkuser-search' => 'অনুসন্ধান',
 747+ 'checkuser-empty' => 'এই লগে কিছুই নেই।',
 748+ 'checkuser-nomatch' => 'এর সাথে মিলে এমন কিছু পাওয়া যায়নি।',
 749+ 'checkuser-check' => 'পরীক্ষা করুন',
 750+ 'checkuser-log-fail' => 'লগ ভুক্তিতে যোগ করা সম্ভব হচ্ছে না',
 751+ 'checkuser-nolog' => 'কোন লগ ফাইল পাওয়া যায়নি।',
 752+ 'checkuser-blocked' => 'বাধা দেওয়া হয়েছে',
 753+ 'checkuser-too-many' => 'অত্যধিক সংখ্যক ফলাফল, অনুগ্রহ করে CIDR সীমিত করুন। নিচের আইপিগুলি ব্যবহৃত হয়েছে (সর্বোচ্চ ৫০০০, ঠিকানা অনুযায়ী বিন্যস্ত):',
 754+ 'checkuser-user-nonexistent' => 'এই নির্দিষ্ট ব্যবহারকারী নেই।',
 755+ 'checkuser-search-form' => 'এমনসব লগ ভুক্তি খুঁজে বের করুন যেখানে $1 হল $2',
 756+ 'checkuser-search-submit' => 'অনুসন্ধান',
 757+ 'checkuser-search-initiator' => 'আরম্ভকারী',
 758+ 'checkuser-search-target' => 'লক্ষ্য',
 759+ 'checkuser-ipeditcount' => '~$1 সমস্ত ব্যবহাকারী থেকে',
 760+ 'checkuser-log-subpage' => 'লগ',
 761+ 'checkuser-log-return' => 'CheckUser মূল ফর্মে ফেরত যান',
 762+ 'checkuser-log-userips' => '$2 এর জন্য $1 আইপি সমূহ পেয়েছে',
 763+ 'checkuser-log-ipedits' => '$2 এর জন্য $1 সম্পাদনাসমূহ পেয়েছে',
 764+ 'checkuser-log-ipusers' => '$2 এর জন্য $1 ব্যবহারকারীসমূহ পেয়েছে',
 765+ 'checkuser-log-ipedits-xff' => '$2 এর জন্য XFF $1 সম্পাদনাসমূহ পেয়েছে',
 766+ 'checkuser-log-ipusers-xff' => '$2 এর জন্য XFF $1 ব্যবহারকারীসমূহ পেয়েছে',
 767+);
 768+
 769+/** Breton (Brezhoneg)
 770+ * @author Fulup
 771+ */
 772+$messages['br'] = array(
 773+ 'checkuser-summary' => "Furchal a ra an ostilh-mañ ar c'hemmoù diwezhañ a-benn klask ar chomlec'h IP implijet gant un implijer bennak, diskouez a ra holl degasadennoù ur chomlec'h IP (ha pa vefe bet enrollet), pe roll ar c'hontoù implijet gant ur chomlec'h IP. Gallout a ra ar c'hontoù hag ar c'hemmoù bezañ kavet gant un IP XFF mard echu gant \"/xff\". Posupl eo implijout ar protokoloù IPv4 (CIDR 16-32) hag IPv6 (CIDR 96-128). Bevennet eo an niver a gemmoù a c'haller lakaat war wel da {{formatnum:5000}} evit abegoù nerzh ar servijer. Grit gant an ostilh-mañ en ur zoujañ d'ar garta implijout.",
 774+ 'checkuser-desc' => "Reiñ a ra an tu d'an dud aotreet evit se da wiriañ chomlec'hioù IP an implijerien ha da gaout titouroù all",
 775+ 'checkuser-logcase' => "Kizidik eo ar c'hlask er marilh ouzh an direnneg (pennlizherennoù/lizherennoù munud)",
 776+ 'checkuser' => 'Gwiriañ an implijer',
 777+ 'group-checkuser' => 'Gwiriañ an implijerien',
 778+ 'group-checkuser-member' => 'Gwiriañ an implijer',
 779+ 'grouppage-checkuser' => '{{ns:project}}:Gwiriañ an implijer',
 780+ 'checkuser-reason' => 'Abeg',
 781+ 'checkuser-showlog' => 'Diskouez ar marilh',
 782+ 'checkuser-log' => 'Marilh kontrolliñ an implijerien',
 783+ 'checkuser-query' => "Klask dre ar c'hemmoù diwezhañ",
 784+ 'checkuser-target' => 'Implijer pe IP',
 785+ 'checkuser-users' => 'Kavout an implijerien',
 786+ 'checkuser-edits' => "Kavout degasadennoù ar chomlec'h IP",
 787+ 'checkuser-ips' => "Kavout ar chomlec'hioù IP",
 788+ 'checkuser-search' => 'Klask',
 789+ 'checkuser-empty' => "N'eus pennad ebet er marilh",
 790+ 'checkuser-nomatch' => "N'eus bet kavet netra.",
 791+ 'checkuser-check' => 'Gwiriañ',
 792+ 'checkuser-log-fail' => "Dibosupl ouzhpennañ ar moned d'ar marilh",
 793+ 'checkuser-nolog' => 'Restr ebet er marilh',
 794+ 'checkuser-blocked' => 'Stanket',
 795+ 'checkuser-too-many' => "Re a zisoc'hoù, strishaat ar CIDR mar plij.
 796+Setu an IPoù implijet (5000 d'ar muiañ, urzhiet dre ar chomlec'h)",
 797+ 'checkuser-user-nonexistent' => "N'eus ket eus an implijer merket",
 798+ 'checkuser-search-form' => "Kavout marilh ar monedoù m'eo $1 evit $2",
 799+ 'checkuser-search-submit' => 'Klask',
 800+ 'checkuser-search-initiator' => 'deraouer',
 801+ 'checkuser-search-target' => 'pal',
 802+ 'checkuser-log-subpage' => 'Marilh',
 803+ 'checkuser-log-return' => "Distreiñ da furmskrid pennañ ar c'hontrolliñ implijerien",
 804+ 'checkuser-log-userips' => '$1 en deus kavet IPoù evit $2',
 805+ 'checkuser-log-ipedits' => '$1 en deus kavet kemmoù evit $2',
 806+ 'checkuser-log-ipusers' => '$1 en deus kavet implijerien evit $2',
 807+ 'checkuser-log-ipedits-xff' => '$1 en deus kavet kemmoù evit $2 dre XFF',
 808+ 'checkuser-log-ipusers-xff' => 'Kavet en deus $1 implijerien $2 dre XFF',
 809+);
 810+
 811+/** Bosnian (Bosanski)
 812+ * @author CERminator
 813+ */
 814+$messages['bs'] = array(
 815+ 'checkuser-summary' => 'Ovaj alat skenira nedavne promjene te vraća IP adrese koje koriste korisnici ili prikazuje podatke o izmjenama i korisnicima za pojedinu IP adresu.
 816+Korisnici i izmjene nekog IP klijenta mogu biti nađene preko XFF zaglavlja uz primjenu oznake "/xff" pored IP-a. Podržani su i IPv4 (CIDR 16-32) i IPv6 (CIDR 96-128).
 817+Zbog boljih performansi, neće biti prikazano više od 5000 izmjena.
 818+Koristite ovo u skladu s pravilima.',
 819+ 'checkuser-desc' => 'Omogućuje korisnicima sa adekvatnim dopuštenjima sposobnost da provjeravaju korisničke IP adrese i druge podatke',
 820+ 'checkuser-logcase' => 'Pretraga zapisa razlikuje velika i mala slova.',
 821+ 'checkuser' => 'Provjera korisnika',
 822+ 'checkuser-contribs' => 'provjeri korisničke IPe',
 823+ 'group-checkuser' => 'Provjera korisnika',
 824+ 'group-checkuser-member' => 'Provjera korisnika',
 825+ 'right-checkuser' => 'Provjera korisničkih IP adresa i drugih informacija',
 826+ 'right-checkuser-log' => 'Pregledanje zapisa provjere korisnika',
 827+ 'grouppage-checkuser' => '{{ns:project}}:Provjera korisnika',
 828+ 'checkuser-reason' => 'Razlog:',
 829+ 'checkuser-showlog' => 'Prikaži zapis',
 830+ 'checkuser-log' => 'Zapis CheckUsera',
 831+ 'checkuser-query' => 'Pretraži nedavne izmjene',
 832+ 'checkuser-target' => 'Korisnik ili IP',
 833+ 'checkuser-users' => 'Nađi korisnike',
 834+ 'checkuser-edits' => 'Nađi izmjene sa IP adrese',
 835+ 'checkuser-ips' => 'Nađi IP adrese',
 836+ 'checkuser-account' => 'Nađi izmjene računa',
 837+ 'checkuser-search' => 'Traži',
 838+ 'checkuser-period' => 'Trajanje:',
 839+ 'checkuser-week-1' => 'zadnja sedmica',
 840+ 'checkuser-week-2' => 'zadnje dvije sedmice',
 841+ 'checkuser-month' => 'zadnjih 30 dana',
 842+ 'checkuser-all' => 'sve',
 843+ 'checkuser-cidr-label' => 'Pronađi zajednički opseg i pogođene adrese za spisak IPova',
 844+ 'checkuser-cidr-res' => 'Zajednički CIDR:',
 845+ 'checkuser-empty' => 'Zapis ne sadrži stavke.',
 846+ 'checkuser-nomatch' => 'Nisu nađeni traženi rezultati.',
 847+ 'checkuser-nomatch-edits' => 'Nije pronađen traženi upit.
 848+Zadnja izmjena je bila dana $1 u $2.',
 849+ 'checkuser-check' => 'Provjeri',
 850+ 'checkuser-log-fail' => 'Nije moguće dodati stavku zapisa',
 851+ 'checkuser-nolog' => 'Nije pronađena datoteka zapisa.',
 852+ 'checkuser-blocked' => 'Blokiran',
 853+ 'checkuser-gblocked' => 'Blokiran globalno',
 854+ 'checkuser-locked' => 'Zaključano',
 855+ 'checkuser-wasblocked' => 'Ranije blokiran',
 856+ 'checkuser-localonly' => 'Nije spojeno',
 857+ 'checkuser-massblock' => 'Blokiraj odabrane korisnike',
 858+ 'checkuser-massblock-text' => 'Odabrani računi će biti neograničeno blokirani, sa omogućenom automatskom blokadom i onemogućenim pravljenjem računa.
 859+IP adrese će biti blokirane u periodu od jedne sedmice samo za IP korisnike i sa onemogućenim pravljenjem računa.',
 860+ 'checkuser-blocktag' => 'Mijenja korisničku stranicu sa:',
 861+ 'checkuser-blocktag-talk' => 'Mijenja sadržaj stranice za razgovor sa:',
 862+ 'checkuser-massblock-commit' => 'Blokiraj odabrane korisnike',
 863+ 'checkuser-block-success' => "'''{{PLURAL:$2|Korisnik|Korisnici}} $1 {{PLURAL:$2|je sad blokiran|su sada blokirani}}.'''",
 864+ 'checkuser-block-failure' => "'''Nijedan korisnik nije blokiran.'''",
 865+ 'checkuser-block-limit' => 'Previše korisnika odabrano.',
 866+ 'checkuser-block-noreason' => 'Morate navesti razlog za blokiranje.',
 867+ 'checkuser-accounts' => '$1 {{PLURAL:$1|novi korisnik|nova korisnika|novih korisnika}}',
 868+ 'checkuser-too-many' => 'Pronađeno previše rezultata, molimo da suzite CIDR.
 869+Ovdje su prikazane korištene IP adrese (najviše 5000, poredano po adresi):',
 870+ 'checkuser-user-nonexistent' => 'Navedeni korisnik ne postoji.',
 871+ 'checkuser-search-form' => 'Nađi stavke zapisa gdje je $1 jednako $2',
 872+ 'checkuser-search-submit' => 'Traži',
 873+ 'checkuser-search-initiator' => 'pokretač',
 874+ 'checkuser-search-target' => 'cilj',
 875+ 'checkuser-ipeditcount' => '~$1 od svih korisnika',
 876+ 'checkuser-log-subpage' => 'Zapisnik',
 877+ 'checkuser-log-return' => 'Povratak na glavni obrazac provjere korisnika',
 878+ 'checkuser-limited' => "'''Ovi rezultati su skraćeni iz razloga bolje performanse.'''",
 879+ 'checkuser-log-userips' => 'Korisnik $1 je našao IP adrese za $2',
 880+ 'checkuser-log-ipedits' => 'Korisnik $1 je našao izmjene za $2',
 881+ 'checkuser-log-ipusers' => '$1 je našao korisnike na $2',
 882+ 'checkuser-log-ipedits-xff' => '$1 je našao izmjene za XFF $2',
 883+ 'checkuser-log-ipusers-xff' => 'Korisnik $1 je našao korisnike za XFF $2',
 884+ 'checkuser-log-useredits' => '$1 nađene izmjene za $2',
 885+ 'checkuser-autocreate-action' => 'je automatski napravljen',
 886+ 'checkuser-email-action' => 'slanje e-mail korisniku "$1"',
 887+ 'checkuser-reset-action' => 'poništi šifru za korisnika "$1"',
 888+);
 889+
 890+/** Catalan (Català)
 891+ * @author Aleator
 892+ * @author Jordi Roqué
 893+ * @author Juanpabl
 894+ * @author Paucabot
 895+ * @author SMP
 896+ * @author Toniher
 897+ */
 898+$messages['ca'] = array(
 899+ 'checkuser-summary' => "Aquest instrument efectua una cerca als canvis recents per a comprovar les adreces IP fetes servir per un usuari o per a mostrar les edicions d'una certa adreça IP.
 900+Les edicions i usuaris d'un client IP es poden obtenir via capçaleres XFF afegint /xff al final de la IP. Tant les adreces IPv4 (CIDR 16-32) com les IPv6 (CIDR 96-128) són admeses.
 901+Per raons d'efectivitat i de memòria no es retornen més de 5000 edicions. Recordeu que aquesta eina només es pot usar d'acord amb les polítiques corresponents i amb respecte a la legislació sobre privacitat.",
 902+ 'checkuser-desc' => "Permet als usuaris amb els permisos adients l'habilitat de comprovar les adreces IP que fan servir els usuaris enregistrats.",
 903+ 'checkuser-logcase' => 'Les majúscules es tracten de manera diferenciada en la cerca dins el registre.',
 904+ 'checkuser' => "Comprova l'usuari",
 905+ 'group-checkuser' => 'Checkusers',
 906+ 'group-checkuser-member' => 'CheckUser',
 907+ 'right-checkuser' => 'Comprovar les adreces IP i altra informació dels usuaris',
 908+ 'right-checkuser-log' => 'Vegeu el registre de checkuser',
 909+ 'grouppage-checkuser' => '{{ns:project}}:Checkuser',
 910+ 'checkuser-reason' => 'Motiu:',
 911+ 'checkuser-showlog' => 'Mostra registre',
 912+ 'checkuser-log' => 'Registre de Checkuser',
 913+ 'checkuser-query' => 'Cerca als canvis recents',
 914+ 'checkuser-target' => 'Usuari o IP',
 915+ 'checkuser-users' => 'Retorna els usuaris',
 916+ 'checkuser-edits' => 'Retorna les edicions de la IP',
 917+ 'checkuser-ips' => 'Retorna adreces IP',
 918+ 'checkuser-account' => 'Retorna les edicions del compte',
 919+ 'checkuser-search' => 'Cerca',
 920+ 'checkuser-period' => 'Durada:',
 921+ 'checkuser-week-1' => 'Darrera setmana',
 922+ 'checkuser-week-2' => 'Darreres dues setmanes',
 923+ 'checkuser-month' => 'Darrers 30 dies',
 924+ 'checkuser-all' => 'tot',
 925+ 'checkuser-empty' => 'El registre no conté entrades.',
 926+ 'checkuser-nomatch' => "No s'han trobat coincidències.",
 927+ 'checkuser-nomatch-edits' => "No s'ha trobat.
 928+L'última edició va ser el $1 a $2.",
 929+ 'checkuser-check' => 'Comprova',
 930+ 'checkuser-log-fail' => "No s'ha pogut afegir al registre",
 931+ 'checkuser-nolog' => "No s'ha trobat el fitxer del registre.",
 932+ 'checkuser-blocked' => 'Blocat',
 933+ 'checkuser-gblocked' => 'Blocat globalment',
 934+ 'checkuser-locked' => 'Blocat',
 935+ 'checkuser-wasblocked' => 'Prèviament bloquejat',
 936+ 'checkuser-localonly' => 'No unificat',
 937+ 'checkuser-massblock' => 'Bloqueja els usuaris seleccionats',
 938+ 'checkuser-massblock-text' => "Els comptes seleccionats seran blocat indefinidament, amb l'''autoblocking'' activat i prohibint la creació de nous comptes.
 939+Les adreces IP seran blocades per una setmana només amb la prohibició de crear comptes.",
 940+ 'checkuser-blocktag' => "Canvia les pàgines d'usuari per:",
 941+ 'checkuser-blocktag-talk' => 'Reemplaça les pàgines de discussió amb:',
 942+ 'checkuser-massblock-commit' => 'Bloqueja usuaris seleccionats',
 943+ 'checkuser-block-success' => "'''{{PLURAL:$2|L'usuari|Els usuaris}} $1 {{PLURAL:$2|ha estat blocat|han estat blocats}}.'''",
 944+ 'checkuser-block-failure' => "'''No s'han blocat usuaris.'''",
 945+ 'checkuser-block-limit' => 'Massa usuaris seleccionats.',
 946+ 'checkuser-block-noreason' => "Heu d'indicar un motiu pels bloquejos.",
 947+ 'checkuser-accounts' => '$1 {{PLURAL:$1|nou compte|nous comptes}}',
 948+ 'checkuser-too-many' => 'Hi ha massa resultats, cal que useu un CIDR més petit. Aquí teniu les IP usades (màx. 5000 ordenades per adreça):',
 949+ 'checkuser-user-nonexistent' => "L'usuari especificat no existeix.",
 950+ 'checkuser-search-form' => 'Cerca entrades al registre on $1 és $2',
 951+ 'checkuser-search-submit' => 'Cerca',
 952+ 'checkuser-search-initiator' => "l'iniciador",
 953+ 'checkuser-search-target' => 'el consultat',
 954+ 'checkuser-ipeditcount' => '~$1 de tots els usuaris',
 955+ 'checkuser-log-subpage' => 'Registre',
 956+ 'checkuser-log-return' => 'Retorna al formulari de CheckUser',
 957+ 'checkuser-limited' => "'''Els resultats s'han trucat per raons de rendiment.'''",
 958+ 'checkuser-log-userips' => '$1 consulta les IP de $2',
 959+ 'checkuser-log-ipedits' => '$1 consulta les edicions de $2',
 960+ 'checkuser-log-ipusers' => '$1 consulta els usuaris de $2',
 961+ 'checkuser-log-ipedits-xff' => '$1 consulta les edicions del XFF $2',
 962+ 'checkuser-log-ipusers-xff' => '$1 consulta els usuaris del XFF $2',
 963+ 'checkuser-log-useredits' => '$1 consulta les edicions de $2',
 964+ 'checkuser-autocreate-action' => 'fou automàticament creat',
 965+ 'checkuser-email-action' => "S'ha enviat un missatge de correu electrònic a {{GENDER:$1|l'usuari|la usuària}} $1",
 966+ 'checkuser-reset-action' => "reinicia la contrasenya de l'usuari «$1»",
 967+);
 968+
 969+/** Min Dong Chinese (Mìng-dĕ̤ng-ngṳ̄) */
 970+$messages['cdo'] = array(
 971+ 'checkuser-search' => 'Sìng-tō̤',
 972+);
 973+
 974+/** Chechen (Нохчийн) */
 975+$messages['ce'] = array(
 976+ 'checkuser-target' => 'Юзер я IP-адрес',
 977+);
 978+
 979+/** Chamorro (Chamoru)
 980+ * @author Jatrobat
 981+ */
 982+$messages['ch'] = array(
 983+ 'checkuser-search' => 'Aligao',
 984+ 'checkuser-search-submit' => 'Aligao',
 985+);
 986+
 987+/** Corsican (Corsu) */
 988+$messages['co'] = array(
 989+ 'group-checkuser' => 'Controllori',
 990+ 'group-checkuser-member' => 'Controllore',
 991+ 'grouppage-checkuser' => '{{ns:project}}:Controllori',
 992+);
 993+
 994+/** Czech (Česky)
 995+ * @author Beren
 996+ * @author Danny B.
 997+ * @author Li-sung
 998+ * @author Mormegil
 999+ */
 1000+$messages['cs'] = array(
 1001+ 'checkuser-summary' => 'Tento nástroj zkoumá poslední změny a umožňuje získat IP adresy uživatelů nebo zobrazit editace a uživatele z dané IP adresy.
 1002+Uživatele a editace z klientské IP adresy lze získat z hlaviček XFF přidáním „/xff“ k IP. Je podporováno IPv4 (CIDR 16–32) a IPv6 (CIDR 96–128).
 1003+Z výkonnostních důvodů lze zobrazit maximálně 5000 editací. Používejte tento nástroj v souladu s pravidly.',
 1004+ 'checkuser-desc' => 'Poskytuje uživatelům s příslušným oprávněním možnost zjišťovat IP adresy uživatelů a další související informace',
 1005+ 'checkuser-logcase' => 'Hledání v záznamech rozlišuje velikosti písmen.',
 1006+ 'checkuser' => 'Kontrola uživatele',
 1007+ 'checkuser-contribs' => 'kontrola uživatelových IP',
 1008+ 'group-checkuser' => 'Revizoři',
 1009+ 'group-checkuser-member' => 'revizor',
 1010+ 'right-checkuser' => 'Kontrolování uživatelské IP adresy a dalších informací',
 1011+ 'right-checkuser-log' => 'Prohlížení protokolovacích záznamů revize uživatelů',
 1012+ 'grouppage-checkuser' => '{{ns:project}}:Revize uživatele',
 1013+ 'checkuser-reason' => 'Důvod:',
 1014+ 'checkuser-showlog' => 'Zobrazit záznamy',
 1015+ 'checkuser-log' => 'Kniha kontroly uživatelů',
 1016+ 'checkuser-query' => 'Dotaz na poslední změny',
 1017+ 'checkuser-target' => 'Uživatel nebo IP',
 1018+ 'checkuser-users' => 'Najít uživatele',
 1019+ 'checkuser-edits' => 'Najít editace z IP',
 1020+ 'checkuser-ips' => 'Najít IP adresy',
 1021+ 'checkuser-account' => 'Najít editace od uživatele',
 1022+ 'checkuser-search' => 'Hledat',
 1023+ 'checkuser-period' => 'Období:',
 1024+ 'checkuser-week-1' => 'poslední týden',
 1025+ 'checkuser-week-2' => 'poslední dva týdny',
 1026+ 'checkuser-month' => 'posledních 30 dní',
 1027+ 'checkuser-all' => 'všechno',
 1028+ 'checkuser-cidr-label' => 'Zjištění společného rozsahu ze seznamu IP adres',
 1029+ 'checkuser-cidr-res' => 'Společný CIDR:',
 1030+ 'checkuser-empty' => 'Kniha neobsahuje žádné položky',
 1031+ 'checkuser-nomatch' => 'Nic odpovídajícího nebylo nalezeno.',
 1032+ 'checkuser-nomatch-edits' => 'Nic odpovídajícího nebylo nalezeno. Poslední editace proběhla $2, $1.',
 1033+ 'checkuser-check' => 'Zkontrolovat',
 1034+ 'checkuser-log-fail' => 'Nepodařilo se zapsat do záznamů',
 1035+ 'checkuser-nolog' => 'Soubor záznamů nebyl nalezen.',
 1036+ 'checkuser-blocked' => 'zablokováno',
 1037+ 'checkuser-gblocked' => 'globálně zablokováno',
 1038+ 'checkuser-locked' => 'zamčeno',
 1039+ 'checkuser-wasblocked' => 'dříve blokováno',
 1040+ 'checkuser-localonly' => 'Nesjednocený',
 1041+ 'checkuser-massblock' => 'Zablokovat vybrané uživatele',
 1042+ 'checkuser-massblock-text' => 'Vybrané účty budou zablokovány do odvolání, se zapnutým automatickým blokováním a zákazem tvorby nových účtů. IP adresy budou zablokovány na týden, pouze pro neregistrované uživatele a se zákazem tvorby nových účtů.',
 1043+ 'checkuser-blocktag' => 'Nahradit obsah uživatelských stránek textem:',
 1044+ 'checkuser-blocktag-talk' => 'Nahradit obsah uživatelských diskusí textem:',
 1045+ 'checkuser-massblock-commit' => 'Zablokovat vybrané uživatele',
 1046+ 'checkuser-block-success' => "'''{{PLURAL:$2|Uživatel|Uživatelé}} $1 {{PLURAL:$2|je zablokován|jsou zablokováni}}.'''",
 1047+ 'checkuser-block-failure' => "'''Žádný uživatel nebyl zablokován.'''",
 1048+ 'checkuser-block-limit' => 'Vybráno příliš mnoho uživatelů',
 1049+ 'checkuser-block-noreason' => 'Musíte zadat důvod blokování',
 1050+ 'checkuser-accounts' => '$1 {{PLURAL:$1|nový účet|nové účty|nových účtů}}',
 1051+ 'checkuser-too-many' => 'Příliš mnoho výsledků, zkuste omezit CIDR. Níže jsou použité IP adresy (nejvýše 500, seřazené abecedně):',
 1052+ 'checkuser-user-nonexistent' => 'Zadaný uživatel neexistuje.',
 1053+ 'checkuser-search-form' => 'Hledej záznamy, kde $1 je $2',
 1054+ 'checkuser-search-submit' => 'Hledat',
 1055+ 'checkuser-search-initiator' => 'kontrolující',
 1056+ 'checkuser-search-target' => 'kontrolováno',
 1057+ 'checkuser-ipeditcount' => 'asi $1 od všech uživatelů',
 1058+ 'checkuser-log-subpage' => 'Záznamy',
 1059+ 'checkuser-log-return' => 'Návrat na hlavní formulář Kontroly uživatele',
 1060+ 'checkuser-limited' => "'''Výsledky byly z výkonnostních důvodů zkráceny.'''",
 1061+ 'checkuser-log-userips' => '$1 zjišťuje IP adresy uživatele $2',
 1062+ 'checkuser-log-ipedits' => '$1 zjišťuje editace z IP $2',
 1063+ 'checkuser-log-ipusers' => '$1 zjišťuje uživatele z IP $2',
 1064+ 'checkuser-log-ipedits-xff' => '$1 zjišťuje editace s XFF $2',
 1065+ 'checkuser-log-ipusers-xff' => '$1 zjišťuje uživatele s XFF $2',
 1066+ 'checkuser-log-useredits' => '$1 zjišťuje editace od $2',
 1067+ 'checkuser-autocreate-action' => 'byl automaticky vytvořen',
 1068+ 'checkuser-email-action' => 'odeslal e-mail uživateli „$1“',
 1069+ 'checkuser-reset-action' => 'požádal o nové heslo pro uživatele „$1“',
 1070+);
 1071+
 1072+/** Church Slavic (Словѣ́ньскъ / ⰔⰎⰑⰂⰡⰐⰠⰔⰍⰟ)
 1073+ * @author ОйЛ
 1074+ */
 1075+$messages['cu'] = array(
 1076+ 'checkuser-search' => 'иска́ниѥ',
 1077+ 'checkuser-search-submit' => 'ищи́',
 1078+);
 1079+
 1080+/** Welsh (Cymraeg)
 1081+ * @author Lloffiwr
 1082+ */
 1083+$messages['cy'] = array(
 1084+ 'checkuser-desc' => "Yn rhoi'r gallu i ddefnyddwyr awdurdodedig archwilio cyfeiriadau IP defnyddwyr a gwybodaeth arall amdanynt.",
 1085+ 'checkuser-logcase' => 'Yn gwahaniaethu rhwng llythrennau mawr a bach wrth chwilio.',
 1086+ 'checkuser' => 'Archwilio defnyddwyr',
 1087+ 'group-checkuser' => 'Archwilwyr defnyddwyr',
 1088+ 'group-checkuser-member' => 'Archwiliwr defnyddwyr',
 1089+ 'right-checkuser' => 'Archwilio cyfeiriadau IP defnyddwyr a gwybodaeth arall amdanynt',
 1090+ 'right-checkuser-log' => 'Gweld y lòg archwilio defnyddwyr',
 1091+ 'grouppage-checkuser' => '{{ns:project}}:Archwilio defnyddwyr',
 1092+ 'checkuser-reason' => 'Rheswm:',
 1093+ 'checkuser-showlog' => 'Dangos y lòg',
 1094+ 'checkuser-log' => 'Lòg archwilio defnyddwyr',
 1095+ 'checkuser-target' => 'Defnyddiwr neu IP',
 1096+ 'checkuser-search' => 'Chwilio',
 1097+ 'checkuser-period' => 'Cyfnod:',
 1098+ 'checkuser-week-1' => 'yr wythnos ddiwethaf',
 1099+ 'checkuser-week-2' => 'y pythefnos ddiwethaf',
 1100+ 'checkuser-month' => 'y 30 diwrnod diwethaf',
 1101+ 'checkuser-all' => 'oll',
 1102+ 'checkuser-empty' => "Mae'r lòg yn wag.",
 1103+ 'checkuser-check' => 'Archwilio',
 1104+ 'checkuser-log-fail' => 'Yn methu ychwanegu cofnod lòg',
 1105+ 'checkuser-accounts' => '$1 {{PLURAL:$1|cyfrif|cyfrif|gyfrif|chyfrif|chyfrif|cyfrif}} newydd',
 1106+ 'checkuser-search-form' => "Chwilio am gofnodion lòg gyda'r $1 $2",
 1107+ 'checkuser-search-submit' => 'Chwilio',
 1108+ 'checkuser-log-subpage' => 'Lòg',
 1109+ 'checkuser-email-action' => 'wedi anfon e-bost at y defnyddiwr "$1"',
 1110+ 'checkuser-reset-action' => 'wedi ailosod y cyfrinair ar gyfer y defnyddiwr "$1"',
 1111+);
 1112+
 1113+/** Danish (Dansk)
 1114+ * @author Amjaabc
 1115+ * @author Fredelige
 1116+ * @author Morten LJ
 1117+ */
 1118+$messages['da'] = array(
 1119+ 'checkuser-summary' => 'Dette værktøj scanner Seneste ændringer for at finde IP\'er brugt af en bestemt bruger, eller for at vise redigerings- eller brugerdata for en IP.
 1120+Bruger og redigeringer fra en klient IP kan hentes via XFF headers ved at tilføje "/xff" til IP\'en. Ipv4 (CIRD 16-32) og IPv6 (CIDR 96-128) er understøttet.
 1121+For at sikre programmelets ydeevne kan maksimalt 5000 redigeringer returneres. Brug kun dette værktøj i overensstemmelse med gældende politiker på {{SITENAME}}.',
 1122+ 'checkuser-desc' => 'Giver brugere med den rette godkendelse muligheden for at checke brugeres IP-adresser og anden information',
 1123+ 'checkuser-logcase' => 'Logsøgning er case sensitiv (der gøres forskel på store og små bogstaver)',
 1124+ 'checkuser' => 'Checkbruger',
 1125+ 'group-checkuser' => 'Checkbrugere',
 1126+ 'group-checkuser-member' => 'Checkbruger',
 1127+ 'grouppage-checkuser' => '{{ns:project}}:Checkbruger',
 1128+ 'checkuser-reason' => 'Begrundelse',
 1129+ 'checkuser-showlog' => 'Vis log',
 1130+ 'checkuser-log' => 'Checkbrugerlog',
 1131+ 'checkuser-query' => 'Søg i seneste ændringer',
 1132+ 'checkuser-target' => 'Bruger eller IP',
 1133+ 'checkuser-users' => 'Hent brugere',
 1134+ 'checkuser-edits' => 'Hent redigeringer fra IP',
 1135+ 'checkuser-ips' => "Hent IP'er",
 1136+ 'checkuser-search' => 'Søg',
 1137+ 'checkuser-week-1' => 'forrige uge',
 1138+ 'checkuser-week-2' => 'sidste to uger',
 1139+ 'checkuser-month' => 'sidste 30 dage',
 1140+ 'checkuser-all' => 'alle',
 1141+ 'checkuser-empty' => 'Loggen indeholder ingen poster.',
 1142+ 'checkuser-nomatch' => 'Ingen matchende resultater blev fundet.',
 1143+ 'checkuser-check' => 'Check',
 1144+ 'checkuser-log-fail' => 'Kunne ikke tilføje log-post',
 1145+ 'checkuser-nolog' => 'Logfilen blev ikke fundet.',
 1146+ 'checkuser-blocked' => 'Blokeret',
 1147+ 'checkuser-gblocked' => 'Blokeret globalt',
 1148+ 'checkuser-locked' => 'Låst',
 1149+ 'checkuser-wasblocked' => 'Tidligere blokeret',
 1150+ 'checkuser-too-many' => "For mange resultater, gør CIDR'en smallere. Her er de brugte IP'er (max 5000, sorteret efter adresse):",
 1151+ 'checkuser-user-nonexistent' => 'Den anførte bruger eksisterer ikke.',
 1152+ 'checkuser-search-form' => 'Find log-poster hvor $1 er $2',
 1153+ 'checkuser-search-submit' => 'Søg',
 1154+ 'checkuser-search-target' => 'mål',
 1155+ 'checkuser-log-subpage' => 'Log',
 1156+ 'checkuser-log-return' => 'Gå tilbage til hovedformularen for checkbruger',
 1157+ 'checkuser-log-userips' => "$1 fik IP'er for $2",
 1158+ 'checkuser-log-ipedits' => '$1 fik redigeringer for $2',
 1159+ 'checkuser-log-ipusers' => '$1 fik brugere for $2',
 1160+ 'checkuser-log-ipedits-xff' => '$1 fik redigeringer for XFF $2',
 1161+ 'checkuser-log-ipusers-xff' => '$1 fik brugere for XFF $2',
 1162+);
 1163+
 1164+/** German (Deutsch)
 1165+ * @author Metalhead64
 1166+ * @author Pill
 1167+ * @author Purodha
 1168+ * @author Raimond Spekking
 1169+ * @author Umherirrender
 1170+ */
 1171+$messages['de'] = array(
 1172+ 'checkuser-summary' => 'Dieses Werkzeug durchsucht die letzten Änderungen, um die IP-Adressen eines Benutzers bzw. die Bearbeitungen/Benutzernamen für eine IP-Adresse zu ermitteln. Benutzer und Bearbeitungen einer IP-Adresse können auch nach Informationen aus den XFF-Headern abgefragt werden, indem der IP-Adresse ein „/xff“ angehängt wird. IPv4 (CIDR 16-32) und IPv6 (CIDR 96-128) werden unterstützt.
 1173+Aus Performance-Gründen werden maximal 5000 Bearbeitungen ausgegeben. Benutze CheckUser ausschließlich in Übereinstimmung mit den Datenschutzrichtlinien.',
 1174+ 'checkuser-desc' => 'Erlaubt Benutzern mit den entsprechenden Rechten die IP-Adressen sowie weitere Informationen von Benutzern zu prüfen',
 1175+ 'checkuser-logcase' => 'Die Suche im Logbuch unterscheidet zwischen Groß- und Kleinschreibung.',
 1176+ 'checkuser' => 'Checkuser',
 1177+ 'checkuser-contribs' => 'IP-Adressen von Benutzer prüfen',
 1178+ 'group-checkuser' => 'Checkuser',
 1179+ 'group-checkuser-member' => 'Checkuser-Berechtigter',
 1180+ 'right-checkuser' => 'Prüfung von IP-Adressen sowie Verbindungen zwischen IPs und angemeldeten Benutzern',
 1181+ 'right-checkuser-log' => 'Ansehen des Checkuser-Logbuches',
 1182+ 'grouppage-checkuser' => '{{ns:project}}:CheckUser',
 1183+ 'checkuser-reason' => 'Grund:',
 1184+ 'checkuser-showlog' => 'Logbuch anzeigen',
 1185+ 'checkuser-log' => 'Checkuser-Logbuch',
 1186+ 'checkuser-query' => 'Letzte Änderungen abfragen',
 1187+ 'checkuser-target' => 'Benutzer oder IP-Adresse',
 1188+ 'checkuser-users' => 'Hole Benutzer',
 1189+ 'checkuser-edits' => 'Hole Bearbeitungen von IP-Adresse',
 1190+ 'checkuser-ips' => 'Hole IP-Adressen',
 1191+ 'checkuser-account' => 'Hole Bearbeitungen von Benutzerkonto',
 1192+ 'checkuser-search' => 'Suchen',
 1193+ 'checkuser-period' => 'Zeitraum:',
 1194+ 'checkuser-week-1' => 'letzte 7 Tage',
 1195+ 'checkuser-week-2' => 'letzte 14 Tage',
 1196+ 'checkuser-month' => 'letzte 30 Tage',
 1197+ 'checkuser-all' => 'alle',
 1198+ 'checkuser-cidr-label' => 'Finde gemeinsamen Adressbereich und betroffene Adressen für eine Liste von IP-Adressen',
 1199+ 'checkuser-cidr-res' => 'Gemeinschaftliche CIDR:',
 1200+ 'checkuser-empty' => 'Das Logbuch enthält keine Einträge.',
 1201+ 'checkuser-nomatch' => 'Keine Übereinstimmungen gefunden.',
 1202+ 'checkuser-nomatch-edits' => 'Keine Übereinstimmungen gefunden. Letzte Bearbeitung hat am $1 um $2 stattgefunden.',
 1203+ 'checkuser-check' => 'Ausführen',
 1204+ 'checkuser-log-fail' => 'Logbuch-Eintrag kann nicht hinzugefügt werden.',
 1205+ 'checkuser-nolog' => 'Keine Logbuchdatei vorhanden.',
 1206+ 'checkuser-blocked' => 'gesperrt',
 1207+ 'checkuser-gblocked' => 'global gesperrt',
 1208+ 'checkuser-locked' => 'geschlossen',
 1209+ 'checkuser-wasblocked' => 'ehemals gesperrt',
 1210+ 'checkuser-localonly' => 'nicht zusammengeführt',
 1211+ 'checkuser-massblock' => 'Ausgewählte Benutzer sperren',
 1212+ 'checkuser-massblock-text' => 'Die ausgewählten Benutzerkonten werden dauerhaft gesperrt (Autoblock ist aktiv und die Anlage neuer Benutzerkonten wird unterbunden).
 1213+IP-Adressen werden für eine Woche gesperrt (nur für anonyme Benutzer, die Anlage neuer Benutzerkonten wird unterbunden).',
 1214+ 'checkuser-blocktag' => 'Inhalt der Benutzerseite ersetzen durch:',
 1215+ 'checkuser-blocktag-talk' => 'Diskussionsseiten ersetzen durch:',
 1216+ 'checkuser-massblock-commit' => 'Ausgewählte Benutzer sperren',
 1217+ 'checkuser-block-success' => "'''{{PLURAL:$2|Der Benutzer|Die Benutzer}} $1 {{PLURAL:$2|wurde|wurden}} gesperrt.'''",
 1218+ 'checkuser-block-failure' => "'''Es wurden keine Benutzer gesperrt.'''",
 1219+ 'checkuser-block-limit' => 'Es wurden zuviele Benutzer ausgewählt.',
 1220+ 'checkuser-block-noreason' => 'Du musst einen Grund für die Sperre angeben.',
 1221+ 'checkuser-accounts' => '{{PLURAL:$1|1 neues Benutzerkonto|$1 neue Benutzerkonten}}',
 1222+ 'checkuser-too-many' => 'Die Ergebnisliste ist zu lang, bitte grenze den IP-Bereich weiter ein. Hier sind die benutzten IP-Adressen (maximal 5000, sortiert nach Adresse):',
 1223+ 'checkuser-user-nonexistent' => 'Das angegebene Benutzerkonto ist nicht vorhanden.',
 1224+ 'checkuser-search-form' => 'Suche Logbucheinträge, bei denen $1 $2 ist.',
 1225+ 'checkuser-search-submit' => 'Suche',
 1226+ 'checkuser-search-initiator' => 'CheckUser-Berechtigter',
 1227+ 'checkuser-search-target' => 'Abfrageziel (Benutzerkonto/IP)',
 1228+ 'checkuser-ipeditcount' => '~ $1 von allen Benutzern',
 1229+ 'checkuser-log-subpage' => 'Logbuch',
 1230+ 'checkuser-log-return' => 'Zurück zum CheckUser-Hauptformular',
 1231+ 'checkuser-limited' => "'''Die Ergebnisliste wurde aus Performancegründen gekürzt.'''",
 1232+ 'checkuser-log-userips' => '$1 holte IP-Adressen für $2',
 1233+ 'checkuser-log-ipedits' => '$1 holte Bearbeitungen für $2',
 1234+ 'checkuser-log-ipusers' => '$1 holte Benutzer für $2',
 1235+ 'checkuser-log-ipedits-xff' => '$1 holte Bearbeitungen für XFF $2',
 1236+ 'checkuser-log-ipusers-xff' => '$1 holte Benutzer für XFF $2',
 1237+ 'checkuser-log-useredits' => '$1 holte Bearbeitungen für $2',
 1238+ 'checkuser-autocreate-action' => 'automatisch erstellt',
 1239+ 'checkuser-email-action' => 'sendete E-Mail an „$1“',
 1240+ 'checkuser-reset-action' => 'Anforderung eines neuen Passwortes für „Benutzer:$1“',
 1241+);
 1242+
 1243+/** German (formal address) (Deutsch (Sie-Form))
 1244+ * @author Umherirrender
 1245+ */
 1246+$messages['de-formal'] = array(
 1247+ 'checkuser-block-noreason' => 'Sie müssen einen Grund für die Sperre angeben.',
 1248+);
 1249+
 1250+/** Lower Sorbian (Dolnoserbski)
 1251+ * @author Michawiki
 1252+ */
 1253+$messages['dsb'] = array(
 1254+ 'checkuser-summary' => 'Toś ten rěd skanujo aktualne změny, aby wótwołał IP-adresy wužywarja abo pokazał změny/wužywarske daty za IP-adresu.
 1255+Wužywarje a změny IP-adresy daju se pśez głowowe smužki XFF wótwołaś, z tym až "/xff" pśidawa se IP-adresy. IPv4 (CIDR 16-32) a IPv6 (CIDR 96-128) se pódpěratej.
 1256+Z pśicynow wugbałosći wróśijo se nic wěcej ako 5000 změnow. Wužyj CheckUser pó zasadach priwatnosći.',
 1257+ 'checkuser-desc' => 'Dajo wužywarjam z wótpowědnym pšawom móžnosć IP-adrese a druge informacije wužywarja kontrolowaś',
 1258+ 'checkuser-logcase' => 'Pytanje w protokolu rozeznawaju mjazy wjeliko- a małopisanjom.',
 1259+ 'checkuser' => 'Kontrola wužywarjow',
 1260+ 'checkuser-contribs' => 'Wužywarske IP pśeglědaś',
 1261+ 'group-checkuser' => 'Kontrolery wužywarjow',
 1262+ 'group-checkuser-member' => 'Kontroler wužywarjow',
 1263+ 'right-checkuser' => 'Wužywarske IP-adrese a druge informacije kontrolěrowaś',
 1264+ 'right-checkuser-log' => 'Protokol kontrole wužywarjow se woglědaś',
 1265+ 'grouppage-checkuser' => '{{ns:project}}:Kontroler wužywarjow',
 1266+ 'checkuser-reason' => 'Pśicyna:',
 1267+ 'checkuser-showlog' => 'Protokol pokazaś',
 1268+ 'checkuser-log' => 'Protokol kontrole wužywarjow',
 1269+ 'checkuser-query' => 'Aktualne změny wótpšašaś',
 1270+ 'checkuser-target' => 'Wužywaŕ abo IP',
 1271+ 'checkuser-users' => 'Wužywarjow wobstaraś',
 1272+ 'checkuser-edits' => 'Změny z IP wobstaraś',
 1273+ 'checkuser-ips' => 'IP-adrese wobstraś',
 1274+ 'checkuser-account' => 'Kontowe změny wobstaraś',
 1275+ 'checkuser-search' => 'Pytaś',
 1276+ 'checkuser-period' => 'Cas:',
 1277+ 'checkuser-week-1' => 'slědny tyźeń',
 1278+ 'checkuser-week-2' => 'slědnej dwa tyźenja',
 1279+ 'checkuser-month' => 'slědnych 30 dnjow',
 1280+ 'checkuser-all' => 'wše',
 1281+ 'checkuser-cidr-label' => 'Zgromadny wobcerk a pótrjefjone adrese za lisćinu IP-adresow namakaś',
 1282+ 'checkuser-cidr-res' => 'Zgromadny CIDR:',
 1283+ 'checkuser-empty' => 'Protokol njewopśimujo žedne zapiski.',
 1284+ 'checkuser-nomatch' => 'Žedne wótpowědniki namakane.',
 1285+ 'checkuser-nomatch-edits' => 'Žedne wótpowědniki namakane.
 1286+Slědna změna jo $1 $2 była.',
 1287+ 'checkuser-check' => 'Kontrolěrowaś',
 1288+ 'checkuser-log-fail' => 'Protokolowy zapisk njedajo se pśidaś',
 1289+ 'checkuser-nolog' => 'Žedna protokolowa dataja namakana.',
 1290+ 'checkuser-blocked' => 'Blokěrowany',
 1291+ 'checkuser-gblocked' => 'Globalnje blokěrowany',
 1292+ 'checkuser-locked' => 'Zastajony',
 1293+ 'checkuser-wasblocked' => 'Do togo blokěrowany',
 1294+ 'checkuser-localonly' => 'Njezjadnośone',
 1295+ 'checkuser-massblock' => 'Wubranych wužywarjow blokěrowaś',
 1296+ 'checkuser-massblock-text' => 'Wubrane konta blokěruju se na njewěsty cas - awtomatiske blokěrowanje jo aktiwne a załoženje kontow jo znjemóžnjone.
 1297+IP-adrese budu se jano za IP-wužywarjow na 1 tyźeń blokěrowaś - załoženje kontow jo znjemóžnjone.',
 1298+ 'checkuser-blocktag' => 'Wužywarske boki narownaś pśez:',
 1299+ 'checkuser-blocktag-talk' => 'Diskusijne boki narownaś pśez:',
 1300+ 'checkuser-massblock-commit' => 'Wubranych wužywarjow blokěrowaś',
 1301+ 'checkuser-block-success' => "'''{{PLURAL:$2|Wužywaŕ|Wužywarja|Wužywarje|Wužywarje}} $1 {{PLURAL:$2|jo|stej|su|su}} něnto {{PLURAL:$2|blokěrowany|blokěrowanej|blokěrowane|blokěrowane}}.'''",
 1302+ 'checkuser-block-failure' => "'''Žedne wužywarje blokěrowane.'''",
 1303+ 'checkuser-block-limit' => 'Pśewjele wužywarjow wubrane.',
 1304+ 'checkuser-block-noreason' => 'Musyš pśicynu za blokěrowanja pódaś.',
 1305+ 'checkuser-accounts' => '$1 {{PLURAL:$1|nowe konto|nowej konśe|nowe konta|nowych kontow}}',
 1306+ 'checkuser-too-many' => 'Pśewjele wuslědkow, pšosym wobgranicuj IP-wobcerk. How su wužywane IP-adrese (maks. 5000, pséwuběrane pó adresu):',
 1307+ 'checkuser-user-nonexistent' => 'Pódany wužywaŕ njeeksistěrujo.',
 1308+ 'checkuser-search-form' => 'Protokolowe zapiski namakaś, źož $1 jo $2',
 1309+ 'checkuser-search-submit' => 'Pytaś',
 1310+ 'checkuser-search-initiator' => 'iniciator',
 1311+ 'checkuser-search-target' => 'cel',
 1312+ 'checkuser-ipeditcount' => '~$1 ze wšych wužywarjow',
 1313+ 'checkuser-log-subpage' => 'Protokol',
 1314+ 'checkuser-log-return' => 'Slědk ku głownemu formularoju CheckUser',
 1315+ 'checkuser-limited' => "'''Toś te wuslědki su se z pśicynow wugbałosći wobrězali.'''",
 1316+ 'checkuser-log-userips' => '$1 jo IP-adrese za $2 wobstarał',
 1317+ 'checkuser-log-ipedits' => '$1 jo změny za $2 wobstarał',
 1318+ 'checkuser-log-ipusers' => '$1 jo wužywarjow za $2 wobstarał',
 1319+ 'checkuser-log-ipedits-xff' => '$1 jo změny za XFF $2 wobstarał',
 1320+ 'checkuser-log-ipusers-xff' => '$1 jo wužywarjow za XFF $2 wobstarał',
 1321+ 'checkuser-log-useredits' => '$1 jo změny za $2 wobstarał',
 1322+ 'checkuser-autocreate-action' => 'jo se awtomatiski załožyło',
 1323+ 'checkuser-email-action' => 'jo e-mail na wužywarja "$1" pósłał',
 1324+ 'checkuser-reset-action' => 'gronidło za wužywarja "$1" wótnowiś',
 1325+);
 1326+
 1327+/** Ewe (Eʋegbe) */
 1328+$messages['ee'] = array(
 1329+ 'checkuser-search' => 'Dii',
 1330+ 'checkuser-search-submit' => 'Dii',
 1331+);
 1332+
 1333+/** Greek (Ελληνικά)
 1334+ * @author Assassingr
 1335+ * @author Consta
 1336+ * @author K sal 15
 1337+ * @author Konsnos
 1338+ * @author Omnipaedista
 1339+ * @author ZaDiak
 1340+ * @author Απεργός
 1341+ */
 1342+$messages['el'] = array(
 1343+ 'checkuser-summary' => 'Αυτό το εργαλείο σαρώνει τις πρόσφατες αλλαγές για να ανακτήσει τις IP διευθύνσεις που χρησιμοποιούνται από ένα χρήστη ή για να δείξει τα δεδομένα επεξεργασιών/χρηστών για μία IP.
 1344+Χρήστες και επεξεργασίες από μία σταθερή IP μπορούν να ανακτηθούν μέσω XFF επικεφαλίδων προσαρτώντας "/xff" στην IP. Το IPv4 (CIDR 16-32) και το IPv6 (CIDR 96-128) υποστηρίζονται.
 1345+Όχι περισσότερες από 5000 επεξεργασίες θα επιστραφούν για λόγους απόδοσης.
 1346+Χρησιμοποιήστε αυτό σύμφωνα με την πολιτική.',
 1347+ 'checkuser-desc' => 'Παρέχει στους χρήστες με την κατάλληλη άδεια την ικανότητα να ελέγχουν τη διεύθυνση IP ενός χρήστη καθώς και άλλες πληροφορίες',
 1348+ 'checkuser-logcase' => 'Η αναζήτηση στο αρχείο καταγραφής διακρίνει πεζά από κεφαλαία.',
 1349+ 'checkuser' => 'Ελεγκτής',
 1350+ 'checkuser-contribs' => 'έλεγχος των IP χρηστών',
 1351+ 'group-checkuser' => 'Ελεγκτές',
 1352+ 'group-checkuser-member' => 'Ελεγκτής',
 1353+ 'right-checkuser' => 'Έλεγχος IP διεύθυνσης και άλλων πληροφοριών χρήστη',
 1354+ 'right-checkuser-log' => 'Δείτε τις καταγραφές ελέγχων',
 1355+ 'grouppage-checkuser' => '{{ns:project}}:Ελεγκτής',
 1356+ 'checkuser-reason' => 'Λόγος:',
 1357+ 'checkuser-showlog' => 'Εμφάνιση αρχείου καταγραφής',
 1358+ 'checkuser-log' => 'Αρχείο καταγραφής ελεγχών',
 1359+ 'checkuser-query' => 'Αναζήτηση στις πρόσφατες αλλαγές',
 1360+ 'checkuser-target' => 'Χρήστης ή IP',
 1361+ 'checkuser-users' => 'Λήψη χρηστών',
 1362+ 'checkuser-edits' => 'Λήψη επεξεργασιών από IP',
 1363+ 'checkuser-ips' => 'Λήψη των IP',
 1364+ 'checkuser-account' => 'Λήψη επεξεργασιών του λογαριασμού',
 1365+ 'checkuser-search' => 'Αναζήτηση',
 1366+ 'checkuser-period' => 'Διάρκεια:',
 1367+ 'checkuser-week-1' => 'τελευταία εβδομάδα',
 1368+ 'checkuser-week-2' => 'τις τελευταίες δύο εβδομάδες',
 1369+ 'checkuser-month' => 'τις τελευταίες 30 ημέρες',
 1370+ 'checkuser-all' => 'όλα',
 1371+ 'checkuser-cidr-label' => 'Εύρεση κοινής σειράς και επηρεασμένων διευθύνσεων για μια λίστα IP',
 1372+ 'checkuser-cidr-res' => 'Κοινό CIDR:',
 1373+ 'checkuser-empty' => 'Το αρχείο καταγραφής δεν περιέχει κανένα αντικείμενο.',
 1374+ 'checkuser-nomatch' => 'Δεν βρέθηκαν σχετικές σελίδες.',
 1375+ 'checkuser-nomatch-edits' => 'Δεν βρέθηκαν αποτελέσματα που να ταιριάζουν.
 1376+Η τελευταία επεξεργασία ήταν στις $1 στις $2.',
 1377+ 'checkuser-check' => 'Έλεγχος',
 1378+ 'checkuser-log-fail' => 'Δεν είναι δυνατή η προσθήκη εγγραφής στο αρχείο καταγραφών',
 1379+ 'checkuser-nolog' => 'Δεν βρέθηκε κανένα αρχείο καταγραφής.',
 1380+ 'checkuser-blocked' => 'Φραγμένος',
 1381+ 'checkuser-gblocked' => 'Καθολικά φραγμένος',
 1382+ 'checkuser-locked' => 'Κλειδωμένο',
 1383+ 'checkuser-wasblocked' => 'Προηγουμένως φραγμένος',
 1384+ 'checkuser-localonly' => 'Μη ενοποιημένο',
 1385+ 'checkuser-massblock' => 'Επιβολή φραγής στους επιλεγμένους χρήστες',
 1386+ 'checkuser-massblock-text' => "Οι επιλεγμένοι λογαριασμοί θα φραγούν επ' αόριστον, με την αυτόματη φραγή ενεργοποιημένη και με αδύνατη τη δημιουργία λογαριασμού.
 1387+Οι διευθύνσεις IP θα φραγούν για 1 εβδομάδα μόνο για τους χρήστες από IP και με αδύνατη τη δημιουργία λογαριασμού.",
 1388+ 'checkuser-blocktag' => 'Αντικατάσταση των σελίδων των χρηστών με:',
 1389+ 'checkuser-blocktag-talk' => 'Αντικαταστήστε τις σελίδες συζήτησης με:',
 1390+ 'checkuser-massblock-commit' => 'Φραγή επιλεγμένων χρηστών',
 1391+ 'checkuser-block-success' => "'''{{PLURAL:$2|Ο χρήστης|Οι χρήστες}} $1 είναι τώρα {{PLURAL:$2|φραγμένος|φραγμένοι}}.'''",
 1392+ 'checkuser-block-failure' => "'''Κανένας χρήστης φραγμένος.'''",
 1393+ 'checkuser-block-limit' => 'Έχουν επιλεχθεί πάρα πολλοί χρήστες.',
 1394+ 'checkuser-block-noreason' => 'Πρέπει να αιτιολογήσετε τις φραγές.',
 1395+ 'checkuser-accounts' => '$1 {{PLURAL:$1|νέος λογαριασμός|νέοι λογαριασμοί}}',
 1396+ 'checkuser-too-many' => 'Πάρα πολλά αποτελέσματα, παρακαλούμε στενέψτε το CIDR. Παρακάτω είναι οι διευθύνσεις IP που χρησιμοποιούνται (με ανώτατο όριο τις 5000, ταξινομημένες κατά διεύθυνση):',
 1397+ 'checkuser-user-nonexistent' => 'Ο συγκεκριμένος χρήστης δεν υπάρχει.',
 1398+ 'checkuser-search-form' => 'Εύρεση εγγραφών του αρχείου καταγραφής στις οποίες ο $1 είναι $2',
 1399+ 'checkuser-search-submit' => 'Αναζήτηση',
 1400+ 'checkuser-search-initiator' => 'ελεγκτής',
 1401+ 'checkuser-search-target' => 'στόχος',
 1402+ 'checkuser-ipeditcount' => '~$1 από όλους τους χρήστες',
 1403+ 'checkuser-log-subpage' => 'Αρχείο',
 1404+ 'checkuser-log-return' => 'Επιστροφή στην κύρια φόρμα ελέγχου χρήστη',
 1405+ 'checkuser-limited' => "'''Αυτά τα αποτελέσματα περικόπησαν για λόγους απόδοσης.'''",
 1406+ 'checkuser-log-userips' => 'Ο $1 πήρε τις IP διευθύνσεις για τον $2',
 1407+ 'checkuser-log-ipedits' => 'Ο $1 πήρε τις επεξεργασίες για το $2',
 1408+ 'checkuser-log-ipusers' => 'Ο $1 πήρε τους χρήστες για το $2',
 1409+ 'checkuser-log-ipedits-xff' => 'Ο $1 πήρε τις επεξεργασίες για το XFF $2',
 1410+ 'checkuser-log-ipusers-xff' => 'Ο $1 πήρε τους χρήστες για το XFF $2',
 1411+ 'checkuser-log-useredits' => '$1 έλαβε τις επεξεργασίες για τον $2',
 1412+ 'checkuser-autocreate-action' => 'δημιουργήθηκε αυτόματα',
 1413+ 'checkuser-email-action' => 'έστειλε ένα ηλεκτρονικό μήνυμα στον χρήστη "$1"',
 1414+ 'checkuser-reset-action' => 'αποστολή νέου κωδικού για τον χρήστη "$1"',
 1415+);
 1416+
 1417+/** Esperanto (Esperanto)
 1418+ * @author Michawiki
 1419+ * @author Yekrats
 1420+ */
 1421+$messages['eo'] = array(
 1422+ 'checkuser-summary' => 'Ĉi tiu ilo skanas lastajn ŝanĝojn por akiri la IP-adresojn uzatajn de uzanto aŭ montri la datenojn de redakto/uzanto por aparta IP-adreso.
 1423+Uzantoj kaj redaktoj de klienta IP-adreson eblas esti akirita de XFF-titolaro postaldonante "/xff".
 1424+IPv4 (CIDR 16-32) kaj IPv6 (CIDR 96-128) estas subtenata.
 1425+Neniom pli ol 5000 redaktoj estos montrita pro bona datumbaza funkciado.
 1426+Uzu ĉi tion laŭ regularo.',
 1427+ 'checkuser-desc' => 'Rajtigas al uzantoj kun la taŭga permeso la kapableco kontroli la IP-adreson de uzanto kaj alia informo',
 1428+ 'checkuser-logcase' => 'La protokola serĉo estas usklecodistinga.',
 1429+ 'checkuser' => 'Kontrola uzanto',
 1430+ 'group-checkuser' => 'Kontrolaj uzantoj',
 1431+ 'group-checkuser-member' => 'Kontrola uzanto',
 1432+ 'right-checkuser' => 'Kontroli la IP-adreson kaj alian informon de uzanto',
 1433+ 'right-checkuser-log' => 'Vidi la protokolon pri kontrolaj uzantoj',
 1434+ 'grouppage-checkuser' => '{{ns:project}}:Kontrola uzanto',
 1435+ 'checkuser-reason' => 'Kialo:',
 1436+ 'checkuser-showlog' => 'Montri protokolon',
 1437+ 'checkuser-log' => 'Protokolo pri kontrolado de uzantoj',
 1438+ 'checkuser-query' => 'Informomendu lastatempajn ŝanĝojn',
 1439+ 'checkuser-target' => 'Uzanto aŭ IP-adreso',
 1440+ 'checkuser-users' => 'Akiri uzantojn',
 1441+ 'checkuser-edits' => 'Trovi redaktojn de IP-adreso',
 1442+ 'checkuser-ips' => 'Preni IP-adresojn',
 1443+ 'checkuser-account' => 'Teni kontajn redaktojn',
 1444+ 'checkuser-search' => 'Serĉi',
 1445+ 'checkuser-period' => 'Daŭro:',
 1446+ 'checkuser-week-1' => 'lasta semajno',
 1447+ 'checkuser-week-2' => 'lastaj du semajnoj',
 1448+ 'checkuser-month' => 'lastaj 30 tagoj',
 1449+ 'checkuser-all' => 'ĉiuj',
 1450+ 'checkuser-cidr-label' => 'Trovi komuna intervalo kaj efektitaj adresoj por listo de IP-adresoj',
 1451+ 'checkuser-cidr-res' => 'Komuna CIDR:',
 1452+ 'checkuser-empty' => 'La protokolo estas malplena.',
 1453+ 'checkuser-nomatch' => 'Neniujn pafojn trovis.',
 1454+ 'checkuser-nomatch-edits' => 'Neniuj trafoj troviĝis. Lasta redakto estis je $1, $2.',
 1455+ 'checkuser-check' => 'Kontroli',
 1456+ 'checkuser-log-fail' => 'Ne eblis aldoni protokoleron.',
 1457+ 'checkuser-nolog' => 'Neniu protokolo estas trovita.',
 1458+ 'checkuser-blocked' => 'Forbarita',
 1459+ 'checkuser-gblocked' => 'Forbarita ĝenerale',
 1460+ 'checkuser-locked' => 'Ŝlosita',
 1461+ 'checkuser-wasblocked' => 'Antaŭe forbarita',
 1462+ 'checkuser-localonly' => 'Nekunigita',
 1463+ 'checkuser-massblock' => 'Forbari selektitajn uzantojn',
 1464+ 'checkuser-massblock-text' => 'Selektitaj kontoj estos forbaritaj senlime, kun aŭtomata forbaro ŝaltita kaj kont-kreado malŝaltita.
 1465+IP-adresoj estos forbarita 1 semajnon por IP-uzantoj kun kont-kreado malpermesita.',
 1466+ 'checkuser-blocktag' => 'Anstataŭigi uzanto-paĝojn kun:',
 1467+ 'checkuser-blocktag-talk' => 'Anstataŭigi diskuto-paĝojn kun:',
 1468+ 'checkuser-massblock-commit' => 'Forbari selektitajn uzantojn',
 1469+ 'checkuser-block-success' => "'''La {{PLURAL:$2|uzanto|uzantoj}} $1 estas nun {{PLURAL:$2|forbarita|forbaritaj}}.'''",
 1470+ 'checkuser-block-failure' => "'''Neniuj uzantoj forbariĝis.'''",
 1471+ 'checkuser-block-limit' => 'Tro da uzantoj selektitaj.',
 1472+ 'checkuser-block-noreason' => 'Vi devas doni kialon por la forbaroj.',
 1473+ 'checkuser-accounts' => '$1 {{PLURAL:$1|nova konto|novaj kontoj}}',
 1474+ 'checkuser-too-many' => 'Tro da rezultoj. Bonvolu malvastigi la CIDR.
 1475+Jen la IP-adresoj uzitaj (maksimume 5000, ordigita laŭ adresoj):',
 1476+ 'checkuser-user-nonexistent' => 'La donata uzanto ne ekzistas.',
 1477+ 'checkuser-search-form' => 'Trovi protokolerojn en kiu la $1 estas $2',
 1478+ 'checkuser-search-submit' => 'Serĉi',
 1479+ 'checkuser-search-initiator' => 'inicianto',
 1480+ 'checkuser-search-target' => 'celo',
 1481+ 'checkuser-ipeditcount' => '~$1 de ĉiuj uzantoj',
 1482+ 'checkuser-log-subpage' => 'Protokolo',
 1483+ 'checkuser-log-return' => 'Reiru al ĉefa kamparo por kontroli uzantojn',
 1484+ 'checkuser-limited' => "'''Ĉi tiuj rezultoj estis stumpigitaj pro laborecaj kialoj.",
 1485+ 'checkuser-log-userips' => '$1 akiris IP-adresojn por $2',
 1486+ 'checkuser-log-ipedits' => '$1 akiris redaktojn por $2',
 1487+ 'checkuser-log-ipusers' => '$1 akiris uzantojn por $2',
 1488+ 'checkuser-log-ipedits-xff' => '$1 akiris redaktojn por XFF $2',
 1489+ 'checkuser-log-ipusers-xff' => '$1 akiris uzantojn por XFF $2',
 1490+ 'checkuser-log-useredits' => '$1 tenis redaktojn por $2',
 1491+ 'checkuser-autocreate-action' => 'estis aŭtomate kreita',
 1492+ 'checkuser-email-action' => 'sendis retpoŝton al uzanto "$1"',
 1493+ 'checkuser-reset-action' => 'restarigis pasvorton por uzanto "$1"',
 1494+);
 1495+
 1496+/** Spanish (Español)
 1497+ * @author Aleator
 1498+ * @author Crazymadlover
 1499+ * @author Dferg
 1500+ * @author Dmcdevit
 1501+ * @author Jatrobat
 1502+ * @author Lin linao
 1503+ * @author Muro de Aguas
 1504+ * @author Piolinfax
 1505+ * @author Remember the dot
 1506+ * @author Sanbec
 1507+ * @author Spacebirdy
 1508+ * @author Titoxd
 1509+ */
 1510+$messages['es'] = array(
 1511+ 'checkuser-summary' => 'Esta herramienta explora los cambios recientes para obtener las IPs utilizadas por un usuario o para mostrar la información de ediciones/usuarios de una IP.
 1512+También se pueden obtener los usuarios y las ediciones de un cliente IP vía XFF añadiendo "/xff". IPv4 (CIDR 16-32) y IPv6 (CIDR 96-128) funcionan.
 1513+No se muestran más de 5000 ediciones por motivos de rendimiento. Usa esta herramienta en acuerdo con la ley orgánica de protección de datos.',
 1514+ 'checkuser-desc' => 'Permite a los usuarios que tienen permiso especial comprobar las IPs de los usuarios además de otra información.',
 1515+ 'checkuser-logcase' => 'El buscador de registros distingue entre mayúsculas y minúsculas.',
 1516+ 'checkuser' => 'Verificador de usuarios',
 1517+ 'checkuser-contribs' => 'Verificar IPs de usuario',
 1518+ 'group-checkuser' => 'Verificadores de usuarios',
 1519+ 'group-checkuser-member' => 'Verificador de usuarios',
 1520+ 'right-checkuser' => 'Comprobar las IPs de los usuarios y obtener otra información relacionada',
 1521+ 'right-checkuser-log' => 'Ver el registro de verificación de usuarios',
 1522+ 'grouppage-checkuser' => '{{ns:project}}:verificador de usuarios',
 1523+ 'checkuser-reason' => 'Motivo:',
 1524+ 'checkuser-showlog' => 'Ver registro',
 1525+ 'checkuser-log' => 'Registro de CheckUser',
 1526+ 'checkuser-query' => 'Buscar en cambios recientes',
 1527+ 'checkuser-target' => 'Usuario o IP',
 1528+ 'checkuser-users' => 'Obtener usuarios',
 1529+ 'checkuser-edits' => 'Obtener ediciones de IP',
 1530+ 'checkuser-ips' => 'Obtener IPs',
 1531+ 'checkuser-account' => 'Ver contribuciones de la cuenta',
 1532+ 'checkuser-search' => 'Buscar',
 1533+ 'checkuser-period' => 'Duración:',
 1534+ 'checkuser-week-1' => 'la semana pasada',
 1535+ 'checkuser-week-2' => 'últimas dos semanas',
 1536+ 'checkuser-month' => 'últimos 30 días',
 1537+ 'checkuser-all' => 'todos',
 1538+ 'checkuser-cidr-label' => 'Encontrar rango común y afectados de una lista de direcciones de IPs',
 1539+ 'checkuser-cidr-res' => 'CIDR común:',
 1540+ 'checkuser-empty' => 'No hay elementos en el registro.',
 1541+ 'checkuser-nomatch' => 'No hay elementos en el registro con esas condiciones.',
 1542+ 'checkuser-nomatch-edits' => 'No se encontraron coincidencias.
 1543+La última edición fue el $1 a las $2',
 1544+ 'checkuser-check' => 'Examinar',
 1545+ 'checkuser-log-fail' => 'No se puede añadir este elemento al registro.',
 1546+ 'checkuser-nolog' => 'No se encuentra ningún archivo del registro',
 1547+ 'checkuser-blocked' => 'Bloqueado',
 1548+ 'checkuser-gblocked' => 'Bloqueado globalmente',
 1549+ 'checkuser-locked' => 'Cuenta bloqueada globalmente',
 1550+ 'checkuser-wasblocked' => 'Bloqueado anteriormente',
 1551+ 'checkuser-localonly' => 'No unificado',
 1552+ 'checkuser-massblock' => 'Bloquear usuarios seleccionados',
 1553+ 'checkuser-massblock-text' => 'Las cuentas seleccionadas serán bloqueadas de forma indefinida, con el autobloqueo habilitado y la creación de cuentas deshabilitada.
 1554+Las direcciones IP serán bloqueadas durante una semana con la creación de cuentas deshabilitada.',
 1555+ 'checkuser-blocktag' => 'Reemplazar páginas del usuario con:',
 1556+ 'checkuser-blocktag-talk' => 'Reemplazar las páginas de discusión con:',
 1557+ 'checkuser-massblock-commit' => 'Bloquear usuarios seleccionados',
 1558+ 'checkuser-block-success' => "'''{{PLURAL:$2|El usuario|Los usuarios}} $1 {{PLURAL:$2|está bloqueado|están bloqueados}}.'''",
 1559+ 'checkuser-block-failure' => "'''No hay usuarios bloqueados.'''",
 1560+ 'checkuser-block-limit' => 'Demasiados usarios seleccionados.',
 1561+ 'checkuser-block-noreason' => 'Debe dar una razón para los bloqueos.',
 1562+ 'checkuser-accounts' => '$1 {{PLURAL:$1|cuenta nueva|cuentas nuevas}}',
 1563+ 'checkuser-too-many' => 'Hay demasiados resultados. Por favor limita el CIDR. Aquí se ven las IPs usadas (máximo 5000, ordenadas según dirección):',
 1564+ 'checkuser-user-nonexistent' => 'El usuario especificado no existe.',
 1565+ 'checkuser-search-form' => 'Encontrar entradas de registros en las que el $1 es $2',
 1566+ 'checkuser-search-submit' => 'Buscar',
 1567+ 'checkuser-search-initiator' => 'iniciador',
 1568+ 'checkuser-search-target' => 'meta',
 1569+ 'checkuser-ipeditcount' => '~$1 de todos los usuarios',
 1570+ 'checkuser-log-subpage' => 'Registro',
 1571+ 'checkuser-log-return' => 'Volver al formulario principal de CheckUser',
 1572+ 'checkuser-limited' => "'''Estos resultados han sido truncados a causa de motivos de rendimiento.'''",
 1573+ 'checkuser-log-userips' => '$1 obtuvo las direcciones IP de $2',
 1574+ 'checkuser-log-ipedits' => '$1 obtuvo las contribuciones de $2',
 1575+ 'checkuser-log-ipusers' => '$1 obtuvo los usuarios de $2',
 1576+ 'checkuser-log-ipedits-xff' => '$1 obtuvo las contribuciones de XFF de $2',
 1577+ 'checkuser-log-ipusers-xff' => '$1 obtuvo los usuarios para XFF $2',
 1578+ 'checkuser-log-useredits' => '$1 obtuvo las contribuciones de $2',
 1579+ 'checkuser-autocreate-action' => 'fue creada automáticamente',
 1580+ 'checkuser-email-action' => 'envió correo electrónico al usuario «$1»',
 1581+ 'checkuser-reset-action' => 'anular contraseña para el usuario «$1»',
 1582+);
 1583+
 1584+/** Estonian (Eesti)
 1585+ * @author Avjoska
 1586+ * @author WikedKentaur
 1587+ */
 1588+$messages['et'] = array(
 1589+ 'checkuser-search' => 'Otsi',
 1590+ 'checkuser-period' => 'Ajavahemik:',
 1591+ 'checkuser-week-1' => 'viimane nädal',
 1592+ 'checkuser-week-2' => 'viimased kaks nädalat',
 1593+ 'checkuser-month' => 'viimased 30 päeva',
 1594+ 'checkuser-all' => 'kõik',
 1595+ 'checkuser-nolog' => 'Logifaili ei leitud.',
 1596+ 'checkuser-blocked' => 'Blokeeritud',
 1597+ 'checkuser-gblocked' => 'Globaalselt blokeeritud',
 1598+ 'checkuser-locked' => 'Lukustatud',
 1599+ 'checkuser-wasblocked' => 'Eelnevalt blokeeritud',
 1600+ 'checkuser-blocktag' => 'Asenda kasutajalehed:',
 1601+ 'checkuser-blocktag-talk' => 'Asenda arutelulehed:',
 1602+ 'checkuser-massblock-commit' => 'Blokeeri valitud kasutajad',
 1603+ 'checkuser-block-failure' => "'''Ühtegi kasutajat ei blokeeritud.'''",
 1604+ 'checkuser-block-limit' => 'Liiga palju kasutajaid valitud.',
 1605+ 'checkuser-block-noreason' => 'Blokeeringule peab andma põhjenduse.',
 1606+ 'checkuser-search-submit' => 'Otsi',
 1607+ 'checkuser-search-initiator' => 'initsiaator',
 1608+ 'checkuser-search-target' => 'sihtmärk',
 1609+ 'checkuser-autocreate-action' => 'alustati automaatselt',
 1610+ 'checkuser-email-action' => 'e-kiri kasutajale "$1" saadetud',
 1611+);
 1612+
 1613+/** Basque (Euskara)
 1614+ * @author Kobazulo
 1615+ */
 1616+$messages['eu'] = array(
 1617+ 'checkuser' => 'Erabiltzailea egiaztatu',
 1618+ 'group-checkuser' => 'Erabiltzaileak egiaztatu',
 1619+ 'group-checkuser-member' => 'Erabiltzailea egiaztatu',
 1620+ 'checkuser-reason' => 'Arrazoia:',
 1621+ 'checkuser-target' => 'Lankidea edo IPa',
 1622+ 'checkuser-users' => 'Lankideak ikusi',
 1623+ 'checkuser-edits' => 'IP baten ekarpenak ikusi',
 1624+ 'checkuser-ips' => 'IPak ikusi',
 1625+ 'checkuser-account' => 'Kontu baten ekarpenak ikusi',
 1626+ 'checkuser-search' => 'Bilatu',
 1627+ 'checkuser-period' => 'Iraupena:',
 1628+ 'checkuser-week-1' => 'azken astea',
 1629+ 'checkuser-week-2' => 'azken bi asteak',
 1630+ 'checkuser-month' => 'azken 30 egunak',
 1631+ 'checkuser-all' => 'guztiak',
 1632+ 'checkuser-nomatch' => 'Ez da bat datorren emaitzarik aurkitu.',
 1633+ 'checkuser-blocked' => 'Blokeatua',
 1634+ 'checkuser-gblocked' => 'Proiektu guztietarako blokeatua',
 1635+ 'checkuser-locked' => 'Babestua',
 1636+ 'checkuser-wasblocked' => 'Aurretik blokeatua',
 1637+ 'checkuser-massblock' => 'Hautatutako lankideak blokeatu',
 1638+ 'checkuser-block-limit' => 'Lankide gehiegi hautatu duzu.',
 1639+ 'checkuser-search-submit' => 'Bilatu',
 1640+ 'checkuser-autocreate-action' => 'automatikoki sortua izan da',
 1641+ 'checkuser-email-action' => '"$1" lankideari posta elektroniko bat bidali',
 1642+ 'checkuser-reset-action' => '"$1" lankideari pasahitza berrezarri',
 1643+);
 1644+
 1645+/** Extremaduran (Estremeñu)
 1646+ * @author Better
 1647+ */
 1648+$messages['ext'] = array(
 1649+ 'checkuser-reason' => 'Razón',
 1650+ 'checkuser-search' => 'Landeal',
 1651+);
 1652+
 1653+/** Persian (فارسی)
 1654+ * @author Huji
 1655+ */
 1656+$messages['fa'] = array(
 1657+ 'checkuser-summary' => 'این ابزار تغییرات اخیر را برای به دست آوردن نشانی‌های اینترنتی (IP) استفاده شده توسط یک کاربر و یا تعیین ویرایش‌های انجام شده از طریق یک نشانی اینترنتی جستجو می‌کند.
 1658+کاربرها و ویرایش‌های مرتبط با یک نشانی اینترنتی را می‌توان با توجه به اطلاعات سرآیند XFF (با افزودن «‏‎/xff» به انتهای نشانی IP) پیدا کرد.
 1659+هر دو پروتکل IPv4 (معادل CIDR 16-32) و IPv6 (معادل CIDR 96-128) توسط این ابزار پشتیبانی می‌شوند.',
 1660+ 'checkuser-desc' => 'به کاربرها اختیارات لازم را برای بررسی نشانی اینترنتی کاربرها و اطلاعات دیگر می‌دهد',
 1661+ 'checkuser-logcase' => 'جستجوی سیاهه به کوچک یا بزرگ بودن حروف حساس است.',
 1662+ 'checkuser' => 'بازرسی کاربر',
 1663+ 'group-checkuser' => 'بازرسان کاربر',
 1664+ 'group-checkuser-member' => 'بازرس کاربر',
 1665+ 'right-checkuser' => 'بررسی نشانی اینترنتی و دیگر اطلاعات کاربرها',
 1666+ 'right-checkuser-log' => 'مشاهدهٔ سیاههٔ بازرسی کاربر',
 1667+ 'grouppage-checkuser' => '{{ns:project}}:بازرسی کاربر',
 1668+ 'checkuser-reason' => 'دلیل',
 1669+ 'checkuser-showlog' => 'نمایش سیاهه',
 1670+ 'checkuser-log' => 'سیاهه بازرسی کاربر',
 1671+ 'checkuser-query' => 'جستجوی تغییرات اخیر',
 1672+ 'checkuser-target' => 'کاربر یا نشانی اینترنتی',
 1673+ 'checkuser-users' => 'فهرست کردن کاربرها',
 1674+ 'checkuser-edits' => 'نمایش ویرایش‌های مربوط به این نشانی اینترنتی',
 1675+ 'checkuser-ips' => 'فهرست کردن نشانی‌های اینترنتی',
 1676+ 'checkuser-account' => 'دریافت ویرایش‌های حساب',
 1677+ 'checkuser-search' => 'جستجو',
 1678+ 'checkuser-period' => 'بازه زمانی:',
 1679+ 'checkuser-week-1' => 'هفتهٔ گذشته',
 1680+ 'checkuser-week-2' => 'دو هفتهٔ گذشته',
 1681+ 'checkuser-month' => '۳۰ روز گذشته',
 1682+ 'checkuser-all' => 'همه',
 1683+ 'checkuser-empty' => 'سیاهه خالی است.',
 1684+ 'checkuser-nomatch' => 'موردی که مطابقت داشته باشد پیدا نشد.',
 1685+ 'checkuser-nomatch-edits' => 'مورد مطابق پیدا نشد.
 1686+آخرین ویرایش در $1 ساعت $2 بود.',
 1687+ 'checkuser-check' => 'بررسی',
 1688+ 'checkuser-log-fail' => 'امکان افزودن اطلاعات به سیاهه وجود ندارد',
 1689+ 'checkuser-nolog' => 'پرونده سیاهه پیدا نشد.',
 1690+ 'checkuser-blocked' => 'دسترسی قطع شد',
 1691+ 'checkuser-gblocked' => 'بسته شده سرتاسری',
 1692+ 'checkuser-locked' => 'قفل شده',
 1693+ 'checkuser-wasblocked' => 'قبلاً بسته شده',
 1694+ 'checkuser-localonly' => 'یکی نشده',
 1695+ 'checkuser-massblock' => 'بستن کاربرهای انتخاب شده',
 1696+ 'checkuser-massblock-text' => 'حساب‌های انتخاب شده برای همیشه بسته خواهند شد، قطع دسترسی خودکار هم فعال خواهد بود و از ایجاد حساب کاربری هم جلوگیری خواهد شد. نشانی‌های اینترنتی برای یک هفته فقط برای کاربران ناشناس بسته خواهند شد و از ایجاد حساب کاربری توسط آنان جلوگیری خواهد شد.',
 1697+ 'checkuser-blocktag' => 'جایگزین کردن صفحهٔ کاربرها با:',
 1698+ 'checkuser-blocktag-talk' => 'جایگزین کردن صفحه‌های بحث با:',
 1699+ 'checkuser-massblock-commit' => 'بستن کاربرهای انتخاب شده',
 1700+ 'checkuser-block-success' => "'''دسترسی {{PLURAL:$2|حساب|حساب‌های}} $1 اینک {{PLURAL:$2|بسته‌است|بسته‌است}}.'''",
 1701+ 'checkuser-block-failure' => "'''هیچ کاربری بسته نشد.'''",
 1702+ 'checkuser-block-limit' => 'تعداد بیش از اندازه‌ای از کاربران انتخاب شده‌اند.',
 1703+ 'checkuser-block-noreason' => 'شما باید دلیلی برای قطع دسترسی‌ها ارائه کنید.',
 1704+ 'checkuser-accounts' => '$1 {{PLURAL:$1|حساب|حساب}} جدید',
 1705+ 'checkuser-too-many' => 'تعداد نتایج بسیار زیاد است. لطفاً CIDR را باریک‌تر کنید. در زیر نشانی‌های اینترنتی استفاده شده را می‌بینید (حداثر ۵۰۰۰ مورد، به ترتیب نشانی):',
 1706+ 'checkuser-user-nonexistent' => 'کاربر مورد نظر وجود ندارد.',
 1707+ 'checkuser-search-form' => 'پیدا کردن مواردی در سیاهه‌ها که $1 همان $2 است',
 1708+ 'checkuser-search-submit' => 'جستجو',
 1709+ 'checkuser-search-initiator' => 'آغازگر',
 1710+ 'checkuser-search-target' => 'هدف',
 1711+ 'checkuser-ipeditcount' => '~$1 از همهٔ کاربران',
 1712+ 'checkuser-log-subpage' => 'سیاهه',
 1713+ 'checkuser-log-return' => 'بازگشت به فرم اصلی بازرسی کاربر',
 1714+ 'checkuser-limited' => "'''این نتایج برای کارآیی سیستم کوتاه شده‌اند.'''",
 1715+ 'checkuser-log-userips' => '$1 نشانی‌های اینترنتی $2 را گرفت',
 1716+ 'checkuser-log-ipedits' => '$1 ویرایش‌های $2 را گرفت',
 1717+ 'checkuser-log-ipusers' => '$1 کاربرهای مربوط به $2 را گرفت',
 1718+ 'checkuser-log-ipedits-xff' => '$1 ویرایش‌های XFF $2 را گرفت',
 1719+ 'checkuser-log-ipusers-xff' => '$1 کاربرهای مربوط به XFF $2 را گرفت',
 1720+ 'checkuser-log-useredits' => '$1 ویرایش‌های $2 را گرفت',
 1721+ 'checkuser-autocreate-action' => 'به طور خودکار ساخته شد',
 1722+ 'checkuser-email-action' => 'نامه الکترونیکی به کاربر «$1» فرستاد',
 1723+ 'checkuser-reset-action' => 'گذرواژه کاربر «$1» را از نو تنظیم کرد',
 1724+);
 1725+
 1726+/** Finnish (Suomi)
 1727+ * @author Agony
 1728+ * @author Cimon Avaro
 1729+ * @author Crt
 1730+ * @author Jaakonam
 1731+ * @author Jack Phoenix
 1732+ * @author Nike
 1733+ */
 1734+$messages['fi'] = array(
 1735+ 'checkuser-summary' => 'Tämän työkalun avulla voidaan tutkia tuoreet muutokset ja paljastaa käyttäjien IP-osoitteet tai noutaa IP-osoitteiden muokkaukset ja käyttäjätiedot.
 1736+ Käyttäjät ja muokkaukset voidaan hakea myös uudelleenohjausosoitteen (X-Forwarded-For) takaa käyttämällä IP-osoitteen perässä <tt>/xff</tt> -merkintää. Työkalu tukee sekä IPv4 (CIDR 16–32) ja IPv6 (CIDR 96–128) -standardeja.',
 1737+ 'checkuser-desc' => 'Antaa oikeutetuille käyttäjille mahdollisuuden tarkistaa käyttäjän IP-osoitteet ja muita tietoja.',
 1738+ 'checkuser-logcase' => 'Haku lokista on kirjainkokoriippuvainen.',
 1739+ 'checkuser' => 'Osoitepaljastin',
 1740+ 'group-checkuser' => 'osoitepaljastimen käyttäjät',
 1741+ 'group-checkuser-member' => 'osoitepaljastimen käyttäjä',
 1742+ 'right-checkuser' => 'Tarkastaa käyttäjän käyttämät IP-osoitteet sekä muut tiedot',
 1743+ 'right-checkuser-log' => 'Tarkastella osoitepaljastuslokia',
 1744+ 'grouppage-checkuser' => '{{ns:project}}:Osoitepaljastin',
 1745+ 'checkuser-reason' => 'Syy',
 1746+ 'checkuser-showlog' => 'Näytä loki',
 1747+ 'checkuser-log' => 'Osoitepaljastinloki',
 1748+ 'checkuser-query' => 'Hae tuoreet muutokset',
 1749+ 'checkuser-target' => 'Käyttäjä tai IP-osoite',
 1750+ 'checkuser-users' => 'Hae käyttäjät',
 1751+ 'checkuser-edits' => 'Hae IP-osoitteen muokkaukset',
 1752+ 'checkuser-ips' => 'Hae IP-osoitteet',
 1753+ 'checkuser-account' => 'Näytä tunnuksen muokkaukset',
 1754+ 'checkuser-search' => 'Etsi',
 1755+ 'checkuser-period' => 'Aikaväli:',
 1756+ 'checkuser-week-1' => 'viimeisin viikko',
 1757+ 'checkuser-week-2' => 'viimeiset kaksi viikkoa',
 1758+ 'checkuser-month' => 'viimeiset 30 päivää',
 1759+ 'checkuser-all' => 'kaikki',
 1760+ 'checkuser-empty' => 'Ei lokitapahtumia.',
 1761+ 'checkuser-nomatch' => 'Hakuehtoihin sopivia tuloksia ei löytynyt.',
 1762+ 'checkuser-nomatch-edits' => 'Osumia ei löytynyt.
 1763+Viimeinen muokkaus on tehty $1 kello $2.',
 1764+ 'checkuser-check' => 'Tarkasta',
 1765+ 'checkuser-log-fail' => 'Lokitapahtuman lisäys epäonnistui',
 1766+ 'checkuser-nolog' => 'Lokitiedostoa ei löytynyt.',
 1767+ 'checkuser-blocked' => 'Estetty',
 1768+ 'checkuser-gblocked' => 'Estetty globaalisti',
 1769+ 'checkuser-locked' => 'Lukittu',
 1770+ 'checkuser-wasblocked' => 'Aiemmin estetyt',
 1771+ 'checkuser-localonly' => 'Ei yhdistettynä',
 1772+ 'checkuser-massblock' => 'Estä valitut käyttäjät',
 1773+ 'checkuser-massblock-text' => 'Valitut tunnukset estetään toistaiseksi ("autoblocking", "tunnusten luonti estetty").
 1774+Vain rekisteröimättömien käyttäjien IP-osoitteet estetään yhdeksi viikoksi (myös tunnusten luonti estetty).',
 1775+ 'checkuser-blocktag' => 'Korvaa käyttäjäsivut sisällöllä:',
 1776+ 'checkuser-blocktag-talk' => 'Korvaa keskustelusivut sisällöllä:',
 1777+ 'checkuser-massblock-commit' => 'Estä valitut käyttäjät',
 1778+ 'checkuser-block-success' => "'''{{PLURAL:$2|Käyttäjä|Käyttäjät}} $1 {{PLURAL:$2|on|ovat}} nyt estetty.'''",
 1779+ 'checkuser-block-failure' => "'''Yhtään käyttäjää ei estetty.'''",
 1780+ 'checkuser-block-limit' => 'Liian monta käyttäjää valittu.',
 1781+ 'checkuser-block-noreason' => 'Estoille on annettava syy.',
 1782+ 'checkuser-accounts' => '$1 {{PLURAL:$1|uusi tunnus|uutta tunnusta}}',
 1783+ 'checkuser-too-many' => 'Liian monta tulosta, rajoita IP-osoitetta:',
 1784+ 'checkuser-user-nonexistent' => 'Määritettyä käyttäjää ei ole olemassa.',
 1785+ 'checkuser-search-form' => 'Etsi lokimerkintöjä, joissa $1 on $2',
 1786+ 'checkuser-search-submit' => 'Hae',
 1787+ 'checkuser-search-initiator' => 'alullepanija',
 1788+ 'checkuser-search-target' => 'kohde',
 1789+ 'checkuser-ipeditcount' => 'noin $1 muokkausta kaikilta käyttäjiltä',
 1790+ 'checkuser-log-subpage' => 'Loki',
 1791+ 'checkuser-log-return' => 'Palaa osoitepaljastimen päälomakkeeseen',
 1792+ 'checkuser-limited' => "'''Nämä tulokset on lyhennetty suorituskykysyistä.'''",
 1793+ 'checkuser-log-userips' => '$1 haki käyttäjän $2 IP-osoitteet',
 1794+ 'checkuser-log-ipedits' => '$1 haki käyttäjän $2 muokkaukset',
 1795+ 'checkuser-log-ipusers' => '$1 haki osoitteen $2 käyttämät tunnukset',
 1796+ 'checkuser-log-ipedits-xff' => '$1 haki muokkaukset XFF-osoitteesta $2',
 1797+ 'checkuser-log-ipusers-xff' => '$1 haki käyttäjät XFF-osoitteesta $2',
 1798+ 'checkuser-log-useredits' => '$1 haki käyttäjän $2 muokkaukset',
 1799+ 'checkuser-autocreate-action' => 'luotiin automaattisesti',
 1800+ 'checkuser-email-action' => 'käyttäjälle ”$1” lähetetty sähköpostiviesti',
 1801+ 'checkuser-reset-action' => 'käyttäjän ”$1” salasana nollattu',
 1802+);
 1803+
 1804+/** Faroese (Føroyskt)
 1805+ * @author Spacebirdy
 1806+ */
 1807+$messages['fo'] = array(
 1808+ 'checkuser' => 'Rannsakanar brúkari',
 1809+ 'group-checkuser' => 'Rannsakanar brúkari',
 1810+ 'group-checkuser-member' => 'Rannsakanar brúkarir',
 1811+ 'grouppage-checkuser' => '{{ns:project}}:Rannsakanar brúkari',
 1812+ 'checkuser-search' => 'Leita',
 1813+);
 1814+
 1815+/** French (Français)
 1816+ * @author ChrisPtDe
 1817+ * @author Grondin
 1818+ * @author IAlex
 1819+ * @author PieRRoMaN
 1820+ * @author Sherbrooke
 1821+ * @author Verdy p
 1822+ * @author Zetud
 1823+ */
 1824+$messages['fr'] = array(
 1825+ 'checkuser-summary' => 'Cet outil parcourt la liste des changements récents à la recherche des adresses IP employées par un utilisateur, affiche toutes les modifications d’une adresse IP (même enregistrée), ou liste les comptes utilisés par une adresse IP.
 1826+Les comptes et les modifications faites par une adresse IP cliente d’un serveur mandataire approuvé peuvent être récupérés via les entêtes XFF en suffisant l’IP avec « /xff ». Les adresses IPv4 (CIDR /16 à /32) et IPv6 (CIDR /96 à /128) sont supportées.
 1827+Le nombre de modifications affichables est limité à {{formatnum:5000}} pour des questions de performance.
 1828+Veuillez utiliser cet outil dans le respect de la charte d’utilisation.',
 1829+ 'checkuser-desc' => 'Donne la possibilité aux utilisateurs dûment autorisés de vérifier les adresses IP des utilisateurs ainsi que d’autres informations les concernant',
 1830+ 'checkuser-logcase' => 'La recherche dans le journal est sensible à la casse.',
 1831+ 'checkuser' => 'Vérificateur d’utilisateur',
 1832+ 'checkuser-contribs' => 'vérifier les adresses IP',
 1833+ 'group-checkuser' => 'Vérificateurs d’utilisateur',
 1834+ 'group-checkuser-member' => 'Vérificateur d’utilisateur',
 1835+ 'right-checkuser' => 'Vérifier les adresses IP et autres informations d’un utilisateur',
 1836+ 'right-checkuser-log' => 'Visualiser le journal des vérifications d’utilisateurs',
 1837+ 'grouppage-checkuser' => '{{ns:project}}:Vérificateur d’utilisateur',
 1838+ 'checkuser-reason' => 'Motif :',
 1839+ 'checkuser-showlog' => 'Afficher le journal',
 1840+ 'checkuser-log' => 'Journal des vérifications d’utilisateurs',
 1841+ 'checkuser-query' => 'Recherche des modifications récentes',
 1842+ 'checkuser-target' => 'Nom d’utilisateur ou adresse IP',
 1843+ 'checkuser-users' => 'Obtenir les utilisateurs',
 1844+ 'checkuser-edits' => 'Obtenir les modifications par une adresse IP',
 1845+ 'checkuser-ips' => 'Obtenir les adresses IP',
 1846+ 'checkuser-account' => 'Obtenir les modifications du compte',
 1847+ 'checkuser-search' => 'Rechercher',
 1848+ 'checkuser-period' => 'Durée :',
 1849+ 'checkuser-week-1' => 'la dernière semaine',
 1850+ 'checkuser-week-2' => 'les deux dernières semaines',
 1851+ 'checkuser-month' => 'les trente derniers jours',
 1852+ 'checkuser-all' => 'tout',
 1853+ 'checkuser-cidr-label' => 'Chercher une plage commune et les adresses affectées pour une liste d’adresses IP',
 1854+ 'checkuser-cidr-res' => 'Plage CIDR commune :',
 1855+ 'checkuser-empty' => 'Le journal ne contient aucun élément.',
 1856+ 'checkuser-nomatch' => 'Recherches infructueuses.',
 1857+ 'checkuser-nomatch-edits' => 'Aucune occurrence trouvée. La dernière modification a eu lieu le $1 à $2.',
 1858+ 'checkuser-check' => 'Vérifier',
 1859+ 'checkuser-log-fail' => 'Impossible d’ajouter l’entrée du journal.',
 1860+ 'checkuser-nolog' => 'Aucun fichier journal trouvé.',
 1861+ 'checkuser-blocked' => 'Bloqué',
 1862+ 'checkuser-gblocked' => 'Bloqué globalement',
 1863+ 'checkuser-locked' => 'Verrouillé',
 1864+ 'checkuser-wasblocked' => 'Bloqué précédemment',
 1865+ 'checkuser-localonly' => 'Non unifié',
 1866+ 'checkuser-massblock' => 'Bloquer les utilisateurs sélectionnés',
 1867+ 'checkuser-massblock-text' => 'Les comptes sélectionnés seront bloqués indéfiniment, avec le blocage automatique activé et la création de compte désactivée.
 1868+Les adresses IP seront bloquées pendant une semaine uniquement pour les utilisateurs sous IP et avec la création de compte désactivée.',
 1869+ 'checkuser-blocktag' => 'Remplacer les pages utilisateur par :',
 1870+ 'checkuser-blocktag-talk' => 'Remplacer les pages de discussion par :',
 1871+ 'checkuser-massblock-commit' => 'Bloquer les utilisateurs sélectionnés',
 1872+ 'checkuser-block-success' => "'''{{PLURAL:$2|L’utilisateur $1 est maintenant bloqué|Les $2 utilisateurs suivants sont maintenant bloqués : $1}}.'''",
 1873+ 'checkuser-block-failure' => "'''Aucun utilisateur bloqué.'''",
 1874+ 'checkuser-block-limit' => 'Trop d’utilisateurs sélectionnés.',
 1875+ 'checkuser-block-noreason' => 'Vous devez donner un motif justifiant les blocages.',
 1876+ 'checkuser-accounts' => '$1 nouveau{{PLURAL:$1||x}} compte{{PLURAL:$1||s}}',
 1877+ 'checkuser-too-many' => 'Trop de résultats, veuillez affiner l’étendue CIDR.
 1878+Voici un extrait des IP utilisées ({{formatnum:5000}} maximum, triées par adresse) :',
 1879+ 'checkuser-user-nonexistent' => 'L’utilisateur indiqué n’existe pas.',
 1880+ 'checkuser-search-form' => 'Chercher les entrées de journal où $1 est $2.',
 1881+ 'checkuser-search-submit' => 'Rechercher',
 1882+ 'checkuser-search-initiator' => 'l’initiateur',
 1883+ 'checkuser-search-target' => 'la cible',
 1884+ 'checkuser-ipeditcount' => '~$1 par tous les utilisateurs',
 1885+ 'checkuser-log-subpage' => 'Journal',
 1886+ 'checkuser-log-return' => 'Retourner au formulaire principal du vérificateur d’utilisateur',
 1887+ 'checkuser-limited' => "'''Ces résultats ont été tronqués pour des raisons liées à la performance.'''",
 1888+ 'checkuser-log-userips' => '$1 a obtenu des IP utilisées par « $2 »',
 1889+ 'checkuser-log-ipedits' => '$1 a obtenu des modifications par l’adresse $2',
 1890+ 'checkuser-log-ipusers' => '$1 a obtenu des utilisateurs à l’adresse $2',
 1891+ 'checkuser-log-ipedits-xff' => '$1 a obtenu des modifications par l’adresse XFF $2',
 1892+ 'checkuser-log-ipusers-xff' => '$1 a obtenu des utilisateurs à l’adresse XFF $2',
 1893+ 'checkuser-log-useredits' => '$1 a obtenu des modifications par $2',
 1894+ 'checkuser-autocreate-action' => 'a été créé automatiquement',
 1895+ 'checkuser-email-action' => 'a envoyé un courriel à l’utilisateur « $1 »',
 1896+ 'checkuser-reset-action' => 'réinitialise le mot de passe de l’utilisateur « $1 »',
 1897+);
 1898+
 1899+/** Cajun French (Français cadien)
 1900+ * @author JeanVoisin
 1901+ */
 1902+$messages['frc'] = array(
 1903+ 'checkuser-summary' => "Cet outil observe les derniers changements pour retirer le IP de l'useur ou pour montrer l'information de l'editeur/de l'useur pour cet IP. Les userus et les changements par le IP d'un client pouvont être reçus par les en-têtes XFF par additionner le IP avec \"/xff\". Ipv4 (CIDR 16-32) and IPv6 (CIDR 96-128) sont supportés. Cet outil retourne pas plus que 5000 changements par rapport à la qualité d'ouvrage. Usez ça ici en accord avec les régluations.",
 1904+ 'checkuser-logcase' => 'La charche des notes est sensible aux lettres basses ou hautes.',
 1905+ 'checkuser' => "'Gardez-voir à l'useur encore",
 1906+ 'group-checkuser' => "'Gardez-voir aux useurs encore",
 1907+ 'group-checkuser-member' => "'Gardez-voir à l'useur encore",
 1908+ 'grouppage-checkuser' => "{{ns:project}}:'Gardez-voir à l'useur encore",
 1909+ 'checkuser-reason' => 'Raison',
 1910+ 'checkuser-showlog' => 'Montrer les notes',
 1911+ 'checkuser-log' => "Notes de la Garde d'useur",
 1912+ 'checkuser-query' => 'Charchez les nouveaux changements',
 1913+ 'checkuser-target' => "Nom de l'useur ou IP",
 1914+ 'checkuser-users' => 'Obtenir les useurs',
 1915+ 'checkuser-edits' => 'Obtenir les modifications du IP',
 1916+ 'checkuser-ips' => 'Obtenir les adresses IP',
 1917+ 'checkuser-search' => 'Charche',
 1918+ 'checkuser-empty' => 'Les notes sont vides.',
 1919+ 'checkuser-nomatch' => 'Rien pareil trouvé.',
 1920+ 'checkuser-check' => 'Charche',
 1921+ 'checkuser-log-fail' => "Pas capable d'additionner la note",
 1922+ 'checkuser-nolog' => 'Rien trouvé dans les notes.',
 1923+);
 1924+
 1925+/** Franco-Provençal (Arpetan)
 1926+ * @author ChrisPtDe
 1927+ */
 1928+$messages['frp'] = array(
 1929+ 'checkuser-summary' => 'Ceti outil parcôrt la lista des dèrriérs changements a la rechèrche de l’adrèce IP empleyê per un utilisator, afiche totes les èdicions d’una adrèce IP (méma enregistrâ), ou ben liste los comptos utilisâs per una adrèce IP.
 1930+ Los comptos et les modificacions pôvont étre trovâs avouéc una IP XFF se sè chavone avouéc « /xff ». O est possiblo d’utilisar los protocolos IPv4 (CIDR 16-32) et IPv6 (CIDR 96-128).
 1931+ Lo nombro d’èdicions afichâbles est limitâ a {{formatnum:5000}} por des quèstions de pèrformence du sèrvior. Volyéd utilisar ceti outil dens les limites de la chârta d’usâjo.',
 1932+ 'checkuser-desc' => 'Balye la possibilitât a les gens qu’ont la pèrmission que vat avouéc de controlar les adrèces IP des utilisators et pués d’ôtres enformacions los regardent.',
 1933+ 'checkuser-logcase' => 'La rechèrche dens lo jornal est sensibla a la câssa.',
 1934+ 'checkuser' => 'Controlor d’utilisator',
 1935+ 'group-checkuser' => 'Controlors d’utilisator',
 1936+ 'group-checkuser-member' => 'Controlor d’utilisator',
 1937+ 'grouppage-checkuser' => '{{ns:project}}:Controlors d’utilisator',
 1938+ 'checkuser-reason' => 'Rêson',
 1939+ 'checkuser-showlog' => 'Afichiér lo jornal',
 1940+ 'checkuser-log' => 'Jornal de controlor d’utilisator',
 1941+ 'checkuser-query' => 'Rechèrche per los dèrriérs changements',
 1942+ 'checkuser-target' => 'Nom d’utilisator ou adrèce IP',
 1943+ 'checkuser-users' => 'Obtegnir los utilisators',
 1944+ 'checkuser-edits' => 'Obtegnir les modificacions de l’adrèce IP',
 1945+ 'checkuser-ips' => 'Obtegnir les adrèces IP',
 1946+ 'checkuser-search' => 'Rechèrche',
 1947+ 'checkuser-empty' => 'Lo jornal contint gins d’articllo.',
 1948+ 'checkuser-nomatch' => 'Rechèrches que balyont ren.',
 1949+ 'checkuser-check' => 'Rechèrche',
 1950+ 'checkuser-log-fail' => 'Empossiblo d’apondre l’entrâ du jornal.',
 1951+ 'checkuser-nolog' => 'Niona entrâ dens lo jornal.',
 1952+ 'checkuser-blocked' => 'Blocâ',
 1953+ 'checkuser-too-many' => 'Trop de rèsultats. Volyéd limitar la rechèrche sur les adrèces IP :',
 1954+ 'checkuser-user-nonexistent' => 'L’utilisator endicâ ègziste pas.',
 1955+ 'checkuser-search-form' => 'Chèrchiér lo jornal de les entrâs yô que $1 est $2.',
 1956+ 'checkuser-search-submit' => 'Rechèrchiér',
 1957+ 'checkuser-search-initiator' => 'l’iniciator',
 1958+ 'checkuser-search-target' => 'la ciba',
 1959+ 'checkuser-log-subpage' => 'Jornal',
 1960+ 'checkuser-log-return' => 'Tornar u formulèro principâl du contrôlo d’utilisator',
 1961+ 'checkuser-log-userips' => '$1 at obtegnu des IP por $2',
 1962+ 'checkuser-log-ipedits' => '$1 at obtegnu des modificacions por $2',
 1963+ 'checkuser-log-ipusers' => '$1 at obtegnu des utilisators por $2',
 1964+ 'checkuser-log-ipedits-xff' => '$1 at obtegnu des modificacions por XFF $2',
 1965+ 'checkuser-log-ipusers-xff' => '$1 at obtegnu des utilisators por XFF $2',
 1966+);
 1967+
 1968+/** Western Frisian (Frysk)
 1969+ * @author Snakesteuben
 1970+ */
 1971+$messages['fy'] = array(
 1972+ 'checkuser-search' => 'Sykje',
 1973+ 'checkuser-search-submit' => 'Sykje',
 1974+);
 1975+
 1976+/** Irish (Gaeilge)
 1977+ * @author Alison
 1978+ */
 1979+$messages['ga'] = array(
 1980+ 'checkuser-summary' => 'Scanann an uirlis seo na athruithe is déanaí chun na seolaidh IP úsáideoira a fháil ná taispeáin na sonraí eagarthóireachta/úsáideoira don seoladh IP.
 1981+Is féidir úsáideoirí agus eagarthóireachta mar IP cliant a fháil le ceanntáisc XFF mar an IP a iarcheangail le "/xff". IPv4 (CIDR 16-32) agus IPv6 (CIDR 96-128) atá tacaíocht.
 1982+Le fáth feidhmiúcháin, ní féidir níos mó ná 5000 eagarthóireachta a thabhairt ar ais ar an am cheana. Déan úsáid de réir polsaí.',
 1983+ 'checkuser-logcase' => 'Tá na logaí seo cásíogair.',
 1984+ 'checkuser' => 'Seic úsáideoir',
 1985+ 'group-checkuser' => 'Seiceanna úsáideoir',
 1986+ 'group-checkuser-member' => 'Seic úsáideoir',
 1987+ 'right-checkuser-log' => 'Féach ar an log seic úsáideoir',
 1988+ 'checkuser-reason' => 'Fáth:',
 1989+ 'checkuser-showlog' => 'Taispeáin logaí',
 1990+ 'checkuser-log' => 'Logaí checkuser',
 1991+ 'checkuser-query' => 'Iarratais ar athruithe úrnua',
 1992+ 'checkuser-target' => 'Úsáideoir ná seoladh IP',
 1993+ 'checkuser-users' => 'Faigh úsáideoira',
 1994+ 'checkuser-edits' => 'Faigh athruithe don seoladh IP seo',
 1995+ 'checkuser-ips' => 'Faigh Seolaidh IP',
 1996+ 'checkuser-search' => 'Cuardaigh',
 1997+ 'checkuser-week-1' => 'an tseachtain seo caite',
 1998+ 'checkuser-week-2' => 'dhá sheachtain seo caite',
 1999+ 'checkuser-month' => '30 lae seo caite',
 2000+ 'checkuser-all' => 'iad uile',
 2001+ 'checkuser-empty' => 'Níl aon míreanna sa log.',
 2002+ 'checkuser-nomatch' => 'Ní faigheann aon comhoiriúnaigh.',
 2003+ 'checkuser-check' => 'Iarratais',
 2004+ 'checkuser-log-fail' => 'Ní féidir iontráil a cur sa log',
 2005+ 'checkuser-nolog' => 'Ní bhfaigheann comhad loga.',
 2006+ 'checkuser-blocked' => 'Cosanta',
 2007+ 'checkuser-gblocked' => 'Cosanta domhandach',
 2008+ 'checkuser-locked' => 'Glasáilte',
 2009+ 'checkuser-massblock-commit' => 'Cur cosc ar na n-úsáideoirí roghnaithe',
 2010+ 'checkuser-block-success' => "'''Tá {{PLURAL:$2|an úsáideoir|na n-úsáideoirí}} $1 coiscthe anois.'''",
 2011+ 'checkuser-block-failure' => "'''Níl aon úsáideoirí coiscthe.'''",
 2012+ 'checkuser-accounts' => '{{PLURAL:$1|Cuntas amháin|$1 cuntais}} nua',
 2013+ 'checkuser-too-many' => "Tá le mórán torthaí, caolaigh an CIDR le d'thoil. Seo iad na seolaidh IP (5000 uasta, sórtáilte le seoladh):",
 2014+ 'checkuser-search-submit' => 'Cuardaigh',
 2015+ 'checkuser-search-initiator' => 'tionscnóir',
 2016+ 'checkuser-search-target' => 'targaid',
 2017+ 'checkuser-ipeditcount' => '~$1 as na n-úsáideoir go léir',
 2018+ 'checkuser-log-subpage' => 'Log',
 2019+ 'checkuser-log-userips' => 'Fuair $1 seolaidh IP le $2',
 2020+ 'checkuser-log-ipedits' => 'Fuair $1 athruithe le $2',
 2021+ 'checkuser-log-ipusers' => 'Fuair $1 úsáideoirí le $2',
 2022+ 'checkuser-log-ipedits-xff' => 'Fuair $1 athruithe le XFF $2',
 2023+ 'checkuser-log-ipusers-xff' => 'Fuair $1 úsáideoirí le XFF $2',
 2024+ 'checkuser-log-useredits' => 'Fuair $1 athruithe le $2',
 2025+ 'checkuser-autocreate-action' => 'a chruthú go huathoibríoch',
 2026+ 'checkuser-email-action' => 'a chur riomhphoist do úsáideoir "$1"',
 2027+ 'checkuser-reset-action' => 'a athshocrú pásfhocal le úsáideoir "$1"',
 2028+);
 2029+
 2030+/** Galician (Galego)
 2031+ * @author Alma
 2032+ * @author Toliño
 2033+ * @author Xosé
 2034+ */
 2035+$messages['gl'] = array(
 2036+ 'checkuser-summary' => 'Esta ferramenta analiza os cambios para recuperar os enderezos IP utilizados por un usuario ou amosar as edicións/datos do usuario dun enderezo IP.
 2037+Os usuarios e as edicións por un cliente IP poden ser recuperados a través das cabeceiras XFF engadindo o enderezo IP con "/xff". IPv4 (CIDR 16-32) e IPv6 (CIDR 96-128) están soportados.
 2038+Non se devolverán máis de 5.000 edicións por motivos de rendemento.
 2039+Use isto de acordo coas políticas.',
 2040+ 'checkuser-desc' => 'Garante que usuarios cos permisos apropiados poidan comprobar os enderezos IP dos usuarios e acceder a outra información',
 2041+ 'checkuser-logcase' => 'O rexistro de búsqueda é sensíbel a maiúsculas e minúsculas.',
 2042+ 'checkuser' => 'Verificador de usuarios',
 2043+ 'checkuser-contribs' => 'comprobar os enderezos IP do usuario',
 2044+ 'group-checkuser' => 'Verificadores de usuarios',
 2045+ 'group-checkuser-member' => 'Verificador de usuarios',
 2046+ 'right-checkuser' => 'Comprobar os enderezos IP dos usuarios e outra información',
 2047+ 'right-checkuser-log' => 'Ver o rexistro de comprobadores de usuarios',
 2048+ 'grouppage-checkuser' => '{{ns:project}}:Verificador de usuarios',
 2049+ 'checkuser-reason' => 'Razón:',
 2050+ 'checkuser-showlog' => 'Amosar o rexistro',
 2051+ 'checkuser-log' => 'Rexistro de comprobacións de usuarios',
 2052+ 'checkuser-query' => 'Consulta de cambios recentes',
 2053+ 'checkuser-target' => 'Usuario ou enderezo IP',
 2054+ 'checkuser-users' => 'Obter os usuarios',
 2055+ 'checkuser-edits' => 'Obter as edicións do enderezo IP',
 2056+ 'checkuser-ips' => 'Obter os enderezos IP',
 2057+ 'checkuser-account' => 'Obter as edicións da conta',
 2058+ 'checkuser-search' => 'Procurar',
 2059+ 'checkuser-period' => 'Período:',
 2060+ 'checkuser-week-1' => 'última semana',
 2061+ 'checkuser-week-2' => 'últimas dúas semanas',
 2062+ 'checkuser-month' => 'últimos 30 días',
 2063+ 'checkuser-all' => 'todos',
 2064+ 'checkuser-cidr-label' => 'Atopar rangos comúns e enderezos afectados para unha lista de enderezos IP',
 2065+ 'checkuser-cidr-res' => 'CIDR común:',
 2066+ 'checkuser-empty' => 'O rexistro non contén elementos.',
 2067+ 'checkuser-nomatch' => 'Non se atoparon coincidencias.',
 2068+ 'checkuser-nomatch-edits' => 'Non se atoparon coincidencias.
 2069+A última edición foi feita o $1 ás $2.',
 2070+ 'checkuser-check' => 'Comprobar',
 2071+ 'checkuser-log-fail' => 'Non é posíbel engadir unha entrada no rexistro',
 2072+ 'checkuser-nolog' => 'Ningún arquivo de rexistro.',
 2073+ 'checkuser-blocked' => 'Bloqueado',
 2074+ 'checkuser-gblocked' => 'Bloqueado globalmente',
 2075+ 'checkuser-locked' => 'Bloqueado',
 2076+ 'checkuser-wasblocked' => 'Bloqueados anteriormente',
 2077+ 'checkuser-localonly' => 'Sen unificar',
 2078+ 'checkuser-massblock' => 'Bloquear os usuarios seleccionados',
 2079+ 'checkuser-massblock-text' => 'As contas seleccionadas serán bloqueadas indefinidamente, co bloqueo automático permitido e a creación de contas deshabilitada.
 2080+Os enderezos IP serán bloqueados cun tempo de duración dunha semana só para os usuarios con IP e coa creación de contas deshabilitada.',
 2081+ 'checkuser-blocktag' => 'Substituír as páxinas de usuario por:',
 2082+ 'checkuser-blocktag-talk' => 'Substituír as conversas con:',
 2083+ 'checkuser-massblock-commit' => 'Bloquear os usuarios seleccionados',
 2084+ 'checkuser-block-success' => "'''{{PLURAL:$2|O usuario|Os usuarios}} $1 xa {{PLURAL:$2|está|están}} bloqueados.'''",
 2085+ 'checkuser-block-failure' => "'''Non hai ningún usuario bloqueado.'''",
 2086+ 'checkuser-block-limit' => 'Hai seleccionados demasiados usuarios.',
 2087+ 'checkuser-block-noreason' => 'Debe dar unha razón para os bloqueos.',
 2088+ 'checkuser-accounts' => '{{PLURAL:$1|Unha nova conta|$1 novas contas}}',
 2089+ 'checkuser-too-many' => 'Hai demasiados resultados, restrinxa o enderezo IP:',
 2090+ 'checkuser-user-nonexistent' => 'Non existe o usuario especificado.',
 2091+ 'checkuser-search-form' => 'Atopar as entradas do rexistro nas que $1 é $2',
 2092+ 'checkuser-search-submit' => 'Procurar',
 2093+ 'checkuser-search-initiator' => 'iniciador',
 2094+ 'checkuser-search-target' => 'destino',
 2095+ 'checkuser-ipeditcount' => '~$1 de todos os usuarios',
 2096+ 'checkuser-log-subpage' => 'Rexistro',
 2097+ 'checkuser-log-return' => 'Voltar ao formulario principal de verificador de usuarios',
 2098+ 'checkuser-limited' => "'''Estes resultados foron truncados por motivos de rendemento.'''",
 2099+ 'checkuser-log-userips' => '$1 obteu os enderezos IP de "$2"',
 2100+ 'checkuser-log-ipedits' => '$1 obteu as edicións de "$2"',
 2101+ 'checkuser-log-ipusers' => '$1 obteu os usuarios de "$2"',
 2102+ 'checkuser-log-ipedits-xff' => '$1 obteu as edicións de XFF $2',
 2103+ 'checkuser-log-ipusers-xff' => '$1 obteu os usuarios de XFF $2',
 2104+ 'checkuser-log-useredits' => '"$1" obteu as edicións de "$2"',
 2105+ 'checkuser-autocreate-action' => 'foi creada automaticamente',
 2106+ 'checkuser-email-action' => 'envioulle un correo electrónico ao usuario "$1"',
 2107+ 'checkuser-reset-action' => 'envioulle un novo contrasinal ao usuario "$1"',
 2108+);
 2109+
 2110+/** Gothic (Gothic) */
 2111+$messages['got'] = array(
 2112+ 'checkuser-reason' => 'Faírina',
 2113+);
 2114+
 2115+/** Ancient Greek (Ἀρχαία ἑλληνικὴ)
 2116+ * @author Crazymadlover
 2117+ * @author Omnipaedista
 2118+ * @author SPQRobin
 2119+ */
 2120+$messages['grc'] = array(
 2121+ 'grouppage-checkuser' => '{{ns:project}}:Ἔλεγχος χρωμένου',
 2122+ 'checkuser-reason' => 'Αἰτία:',
 2123+ 'checkuser-search' => 'Ζητεῖν',
 2124+ 'checkuser-period' => 'Διάρκεια:',
 2125+ 'checkuser-all' => 'ἅπασαι',
 2126+ 'checkuser-wasblocked' => 'Προηγουμένως πεφραγμένος',
 2127+ 'checkuser-search-submit' => 'Ζητεῖν',
 2128+ 'checkuser-search-initiator' => 'ἐγκαινιαστής',
 2129+ 'checkuser-search-target' => 'στόχος',
 2130+ 'checkuser-log-subpage' => 'Κατάλογος',
 2131+);
 2132+
 2133+/** Swiss German (Alemannisch)
 2134+ * @author Als-Holder
 2135+ */
 2136+$messages['gsw'] = array(
 2137+ 'checkuser-summary' => 'Des Wärchzyyg dursuecht di letschten Änderige go d IP-Adrässe vun eme Benutzers bzw. d Bearbeitige/Benutzernäme fir e IP-Adräss usefinde. Benutzer un Bearbeitige vun ere IP-Adräss chenne au noch Informatione us dr XFF-Header abgfrogt wäre. Doderzue muess dr IP-Adräss e „/xff“ aaghänkt wäre. IPv4 (CIDR 16-32) un IPv6 (CIDR 96-128) wäre unterstitzt.
 2138+Us Performance-Grind wäre hegschtens 5000 Bearbeitige usgee. Nimm CheckUser usschließli in Ibereinstimmig mit dr Dateschutzrichtlinie.',
 2139+ 'checkuser-desc' => 'Erlaubt Benutzer mit dr jewyylige Rächt d IP-Adrässe un wyteri Informatione vu Benutzer z priefe',
 2140+ 'checkuser-logcase' => 'D Suech im Logbuech unterscheidet zwische Groß- un Chleischreibig.',
 2141+ 'checkuser' => 'Checkuser',
 2142+ 'checkuser-contribs' => 'IP-Adrässe vu Benutzer priefe',
 2143+ 'group-checkuser' => 'Checkuser',
 2144+ 'group-checkuser-member' => 'Checkuser-Berächtigter',
 2145+ 'right-checkuser' => 'Priefig vu IP-Adrässe un Verbindunge zwische IP un aagmäldete Benutzer',
 2146+ 'right-checkuser-log' => 'Checkuser-Logbuech aaluege',
 2147+ 'grouppage-checkuser' => '{{ns:project}}:CheckUser',
 2148+ 'checkuser-reason' => 'Grund:',
 2149+ 'checkuser-showlog' => 'Logbuech aazeige',
 2150+ 'checkuser-log' => 'Checkuser-Logbuech',
 2151+ 'checkuser-query' => 'Letchte Änderige abfroge',
 2152+ 'checkuser-target' => 'Benutzer oder IP-Adräss',
 2153+ 'checkuser-users' => 'Hol Benutzer',
 2154+ 'checkuser-edits' => 'Hol Bearbeitige vun ere IP-Adräss',
 2155+ 'checkuser-ips' => 'Hol IP-Adrässe',
 2156+ 'checkuser-account' => 'Hol Bearbeitige vum Benutzerkonto',
 2157+ 'checkuser-search' => 'Sueche',
 2158+ 'checkuser-period' => 'Zytruum:',
 2159+ 'checkuser-week-1' => 'letschti 7 Täg',
 2160+ 'checkuser-week-2' => 'letschti 14 Täg',
 2161+ 'checkuser-month' => 'letschti 30 Täg',
 2162+ 'checkuser-all' => 'alli',
 2163+ 'checkuser-cidr-label' => 'Gmeinschaftligi Range finden un Adrässe, wu s betrifft, fir e Lischt vu IP-Adrässe',
 2164+ 'checkuser-cidr-res' => 'Gmeinschaftligi CIDR:',
 2165+ 'checkuser-empty' => 'Im Logbuech het s kei Yyträg.',
 2166+ 'checkuser-nomatch' => 'Kei Ibereinstimmige gfunde.',
 2167+ 'checkuser-nomatch-edits' => 'Kei Ibereinstimmige gfunde. Letschti Bearbeitig isch am $1 am $2 gsi.',
 2168+ 'checkuser-check' => 'Usfiere',
 2169+ 'checkuser-log-fail' => 'Logbuech-Yytrag cha nit zuegfiegt wäre.',
 2170+ 'checkuser-nolog' => 'Kei Logbuechdatei vorhande.',
 2171+ 'checkuser-blocked' => 'Gsperrt',
 2172+ 'checkuser-gblocked' => 'Wältwyt gsperrt',
 2173+ 'checkuser-locked' => 'Zue',
 2174+ 'checkuser-wasblocked' => 'Friejer gsperrt gsi',
 2175+ 'checkuser-localonly' => 'Nit zämegfiert',
 2176+ 'checkuser-massblock' => 'Sperr di usgwählte Benutzer',
 2177+ 'checkuser-massblock-text' => 'Di usgwählte Benutzerkonte wäre fir immer gsperrt (Autoblock isch aktiv un s Aalege vu neije Benutzerkonte wird unterbunde).
 2178+IP-Adrässe wäre fir ei Wuche gsperrt (nume fir anonymi Benutzer, s Aalege vu neije Benutzerkonten wird unterbunde).',
 2179+ 'checkuser-blocktag' => 'Inhalt vu dr Benutzersyte ersetze dur:',
 2180+ 'checkuser-blocktag-talk' => 'Diskussionssyte ersetze dur:',
 2181+ 'checkuser-massblock-commit' => 'Sperr di usgwählte Benutzer',
 2182+ 'checkuser-block-success' => "'''{{PLURAL:$2|Dr Benutzer|D Benutzer}} $1 {{PLURAL:$2|isch|sin}} gsperrt wore.'''",
 2183+ 'checkuser-block-failure' => "'''S sin kei Benutzer gsperrt wore.'''",
 2184+ 'checkuser-block-limit' => 'S sin zvyl Benutzer usgwählt wore.',
 2185+ 'checkuser-block-noreason' => 'Du muesch e Grund fir d Sperri aagee.',
 2186+ 'checkuser-accounts' => '{{PLURAL:$1|1 nej Benutzerkonto|$1 neiji Benutzerkonte}}',
 2187+ 'checkuser-too-many' => 'D Ergebnislischt isch z lang, bitte grenz dr IP-Beryych wyter yy. Do sin di benutzten IP-Adrässe (maximal 5000, sortiert noch Adrässe):',
 2188+ 'checkuser-user-nonexistent' => 'S Benutzerkonto, wu Du aagee hesch, isch nit vorhande.',
 2189+ 'checkuser-search-form' => 'Suech Logbuechyyträg, wu $1 byyn ene $2 isch.',
 2190+ 'checkuser-search-submit' => 'Suech',
 2191+ 'checkuser-search-initiator' => 'CheckUser-Berächtigter',
 2192+ 'checkuser-search-target' => 'Abfrogziil (Benutzerkonto/IP)',
 2193+ 'checkuser-ipeditcount' => '~$1 vu allene Benutzer',
 2194+ 'checkuser-log-subpage' => 'Logbuech',
 2195+ 'checkuser-log-return' => 'Zruck zum CheckUser-Hauptformular',
 2196+ 'checkuser-limited' => "'''D Ergebnislischt isch us Performancegrind gchirzt wore.'''",
 2197+ 'checkuser-log-userips' => '$1 het IP-Adrässe fir $2 gholt',
 2198+ 'checkuser-log-ipedits' => '$1 het Bearbeitige fir $2 gholt',
 2199+ 'checkuser-log-ipusers' => '$1 het Benutzer fir $2 gholt',
 2200+ 'checkuser-log-ipedits-xff' => '$1 het Bearbeitige fir XFF $2 gholt',
 2201+ 'checkuser-log-ipusers-xff' => '$1 het Benutzer fir XFF $2 gholt',
 2202+ 'checkuser-log-useredits' => '$1 het Bearbeitige fir $2 gholt',
 2203+ 'checkuser-autocreate-action' => 'isch automatisch aagleit wore',
 2204+ 'checkuser-email-action' => 'het e E-Mail an „$1“ gschickt',
 2205+ 'checkuser-reset-action' => 'Aaforderig vun eme neije Passwort fir „Benutzer:$1“',
 2206+);
 2207+
 2208+/** Gujarati (ગુજરાતી)
 2209+ * @author Dsvyas
 2210+ */
 2211+$messages['gu'] = array(
 2212+ 'checkuser-reason' => 'કારણ:',
 2213+ 'checkuser-search' => 'શોધો',
 2214+);
 2215+
 2216+/** Manx (Gaelg)
 2217+ * @author MacTire02
 2218+ */
 2219+$messages['gv'] = array(
 2220+ 'checkuser-reason' => 'Fa',
 2221+ 'checkuser-search' => 'Ronsaghey',
 2222+ 'checkuser-search-submit' => 'Ronsaghey',
 2223+);
 2224+
 2225+/** Hakka (Hak-kâ-fa)
 2226+ * @author Hakka
 2227+ */
 2228+$messages['hak'] = array(
 2229+ 'checkuser-search' => 'Chhìm-cháu',
 2230+ 'checkuser-search-submit' => 'Chhìm-cháu',
 2231+);
 2232+
 2233+/** Hawaiian (Hawai`i)
 2234+ * @author Kalani
 2235+ * @author Singularity
 2236+ */
 2237+$messages['haw'] = array(
 2238+ 'checkuser-reason' => 'Kumu',
 2239+ 'checkuser-search' => 'Huli',
 2240+ 'checkuser-search-submit' => 'Huli',
 2241+);
 2242+
 2243+/** Hebrew (עברית)
 2244+ * @author Amire80
 2245+ * @author Rotem Liss
 2246+ */
 2247+$messages['he'] = array(
 2248+ 'checkuser-summary' => 'כלי זה סורק את השינויים האחרונים במטרה למצוא את כתובות ה־IP שהשתמש בהן משתמש מסוים או כדי להציג את כל המידע על המשתמשים שהשתמשו בכתובת IP ועל העריכות שבוצעו ממנה.
 2249+ניתן לקבל עריכות ומשתמשים מכתובות IP של הכותרת X-Forwarded-For באמצעות הוספת הטקסט "/xff" לסוף הכתובת. הן כתובות IPv4 (כלומר, CIDR 16-32) והן כתובות IPv6 (כלומר, CIDR 96-128) נתמכות.
 2250+לא יוחזרו יותר מ־5000 עריכות מסיבות של עומס על השרתים. אנא השתמשו בכלי זה בהתאם למדיניות.',
 2251+ 'checkuser-desc' => 'מאפשר למשתמשים עם ההרשאות המתאימות לבדוק את כתובת ה־IP של משתמשים',
 2252+ 'checkuser-logcase' => 'החיפוש ביומנים הוא תלוי־רישיות.',
 2253+ 'checkuser' => 'בדיקת משתמש',
 2254+ 'checkuser-contribs' => 'בדיקת כתובות ה־IP',
 2255+ 'group-checkuser' => 'בודקים',
 2256+ 'group-checkuser-member' => 'בודק',
 2257+ 'right-checkuser' => 'מציאת כתובות IP של משתמשים ומידע נוסף',
 2258+ 'right-checkuser-log' => 'צפייה ביומן הבדיקות',
 2259+ 'grouppage-checkuser' => '{{ns:project}}:בודק',
 2260+ 'checkuser-reason' => 'סיבה:',
 2261+ 'checkuser-showlog' => 'הצגת יומן',
 2262+ 'checkuser-log' => 'יומן בדיקות',
 2263+ 'checkuser-query' => 'בדיקת שינויים אחרונים',
 2264+ 'checkuser-target' => 'שם משתמש או כתובת IP',
 2265+ 'checkuser-users' => 'הצגת משתמשים',
 2266+ 'checkuser-edits' => 'הצגת עריכות מכתובת IP מסוימת',
 2267+ 'checkuser-ips' => 'הצגת כתובות IP',
 2268+ 'checkuser-account' => 'הצגת עריכות מחשבון המשתמש',
 2269+ 'checkuser-search' => 'חיפוש',
 2270+ 'checkuser-period' => 'פרק זמן:',
 2271+ 'checkuser-week-1' => 'השבוע האחרון',
 2272+ 'checkuser-week-2' => 'השבועיים האחרונים',
 2273+ 'checkuser-month' => '30 הימים האחרונים',
 2274+ 'checkuser-all' => 'הכול',
 2275+ 'checkuser-cidr-label' => 'מציאת טווח משותף וכתובות מושפעות עבור רשימה של כתובות IP',
 2276+ 'checkuser-cidr-res' => 'CIDR משותף:',
 2277+ 'checkuser-empty' => 'אין פריטים ביומן.',
 2278+ 'checkuser-nomatch' => 'לא נמצאו התאמות.',
 2279+ 'checkuser-nomatch-edits' => 'לא נמצאו התאמות.
 2280+העריכה האחרונה בוצעה ב־$2, $1.',
 2281+ 'checkuser-check' => 'בדיקה',
 2282+ 'checkuser-log-fail' => 'לא ניתן היה להוסיף פריט ליומן',
 2283+ 'checkuser-nolog' => 'לא נמצא קובץ יומן.',
 2284+ 'checkuser-blocked' => 'חסום',
 2285+ 'checkuser-gblocked' => 'חסום באופן גלובלי',
 2286+ 'checkuser-locked' => 'נעול',
 2287+ 'checkuser-wasblocked' => 'נחסם בעבר',
 2288+ 'checkuser-localonly' => 'חשבון לא מאוחד',
 2289+ 'checkuser-massblock' => 'חסימת המשתמשים שנבחרו',
 2290+ 'checkuser-massblock-text' => 'חשבונות המשתמש שנבחרו ייחסמו לצמיתות, עם חסימה אוטומטית וחסימה של יצירת החשבונות.
 2291+כתובות IP ייחסמו לשבוע אחד, עבור משתמשים אנונימיים בלבד, ועם חסימה של יצירת החשבונות.',
 2292+ 'checkuser-blocktag' => 'החלפת דפי המשתמש עם:',
 2293+ 'checkuser-blocktag-talk' => 'החלפת דפי השיחה עם:',
 2294+ 'checkuser-massblock-commit' => 'חסימת המשתמשים שנבחרו',
 2295+ 'checkuser-block-success' => "'''The {{PLURAL:$2|המשתמש|המשתמשים}} $1 {{PLURAL:$2|חסום|חסומים}} כעת.'''",
 2296+ 'checkuser-block-failure' => "'''לא נחסמו משתמשים.'''",
 2297+ 'checkuser-block-limit' => 'נבחרו יותר מדי משתמשים.',
 2298+ 'checkuser-block-noreason' => 'עליכם לתת סיבה לחסימות.',
 2299+ 'checkuser-accounts' => '{{PLURAL:$1|חשבון חדש אחד|$1 חשבונות חדשים}}',
 2300+ 'checkuser-too-many' => 'נמצאו תוצאות רבות מדי, אנא צמצמו את טווח כתובות ה־IP. להלן כתובת ה־IP שנעשה בהן שימוש (מוצגות 5,000 לכל היותר, וממוינות):',
 2301+ 'checkuser-user-nonexistent' => 'המשתמש לא נמצא.',
 2302+ 'checkuser-search-form' => 'מציאת ערכים ביומן שבהם ה$1 הוא $2',
 2303+ 'checkuser-search-submit' => 'חיפוש',
 2304+ 'checkuser-search-initiator' => 'בודק',
 2305+ 'checkuser-search-target' => 'נבדק',
 2306+ 'checkuser-ipeditcount' => 'בערך $1 מכל המשתמשים',
 2307+ 'checkuser-log-subpage' => 'יומן',
 2308+ 'checkuser-log-return' => 'חזרה לטופס הבדיקה הכללי',
 2309+ 'checkuser-limited' => "'''הדף נקטע כדי לחסוך במשאבים.'''",
 2310+ 'checkuser-log-userips' => '$1 בדק את כתובות ה־IP של $2',
 2311+ 'checkuser-log-ipedits' => '$1 בדק את העריכות של $2',
 2312+ 'checkuser-log-ipusers' => '$1 בדק את המשתמשים של $2',
 2313+ 'checkuser-log-ipedits-xff' => '$1 בדק את העריכות של כתובת ה־XFF $2',
 2314+ 'checkuser-log-ipusers-xff' => '$1 בדק את המשתמשים של כתובת ה־XFF $2',
 2315+ 'checkuser-log-useredits' => '$1 בדק את העריכות של $2',
 2316+ 'checkuser-autocreate-action' => 'נוצר אוטומטית',
 2317+ 'checkuser-email-action' => 'שלח דואר אלקטרוני למשתמש "$1"',
 2318+ 'checkuser-reset-action' => 'איפס את הסיסמה של המשתמש "$1"',
 2319+);
 2320+
 2321+/** Hindi (हिन्दी)
 2322+ * @author Kaustubh
 2323+ * @author Shyam
 2324+ */
 2325+$messages['hi'] = array(
 2326+ 'checkuser-summary' => 'यह उपकरण एक सदस्य द्वारा हाल में किये गए परिवर्तनों के लिए काम में ली गई सारी IPs को जांचता है, अथवा एक IP का उपयोग करने वाले सभी सदस्यों को जांचता है।
 2327+एक मुवक्किल IP द्वारा किया गए संपादन एवं प्रयोग में ले रहे सभी सदस्यों को "/xff" से IP को जोड़ते हुए XFF शीर्षक के माध्यम से पता लगता है। IPv4 (CIDR 16-32) और IPv6 (CIDR 96-128) द्वारा प्रमाणित है।
 2328+प्रदर्शन के कारण कि वजह से ५००० सम्पादानों से ज्यादा नहीं दिखा पायेगा।
 2329+इसे नीति के अनुसार प्रयोग करें।',
 2330+ 'checkuser-desc' => 'सदस्यको अन्य सदस्योंके आईपी एड्रेस एवम्‌ अन्य ज़ानकारी देखने की अनुमति देता हैं।',
 2331+ 'checkuser-logcase' => 'लॉगमें खोज लिपी पर आधारित (case sensitive) हैं।',
 2332+ 'checkuser' => 'सदस्य जाँच',
 2333+ 'group-checkuser' => 'सदस्य जाँचे',
 2334+ 'group-checkuser-member' => 'सदस्य जाँच',
 2335+ 'right-checkuser' => 'सदस्य का आइपी एड्रेस एवम्‌ अन्य ज़ानकारी जाँचें',
 2336+ 'grouppage-checkuser' => '{{ns:project}}: सदस्य जाँच',
 2337+ 'checkuser-reason' => 'कारण',
 2338+ 'checkuser-showlog' => 'लॉग दिखायें',
 2339+ 'checkuser-log' => 'सदस्यजाँच लॉग',
 2340+ 'checkuser-query' => 'हाल में हुए बदलाव देखें',
 2341+ 'checkuser-target' => 'सदस्य या आईपी',
 2342+ 'checkuser-users' => 'सदस्य खोजें',
 2343+ 'checkuser-edits' => 'आईपीसे हुए बदलाव खोजें',
 2344+ 'checkuser-ips' => 'आईपी खोजें',
 2345+ 'checkuser-search' => 'खोजें',
 2346+ 'checkuser-empty' => 'इस लॉगमें एकभी आइटेम नहीं हैं।',
 2347+ 'checkuser-nomatch' => 'मिलते जुलते लॉग मिले नहीं।',
 2348+ 'checkuser-check' => 'जाँचें',
 2349+ 'checkuser-log-fail' => 'लॉग एन्ट्री बढा नहीं पायें।',
 2350+ 'checkuser-nolog' => 'लॉग फ़ाईल मिली नहीं।',
 2351+ 'checkuser-blocked' => 'ब्लॉक किया हुआ हैं',
 2352+ 'checkuser-too-many' => 'बहुत सारे रिज़ल्ट, कृपया CIDRमें बदलाव करें।
 2353+नीचे इस्तेमाल हुए आईपी की सूची हैं (ज्यादा से ज्यादा ५०००, अनुक्रममें):',
 2354+ 'checkuser-user-nonexistent' => 'दिया हुआ सदस्यनाम अस्तित्वमें नहीं हैं।',
 2355+ 'checkuser-search-form' => 'ऐसे लॉग खोजें जहां $1 यह $2 हैं',
 2356+ 'checkuser-search-submit' => 'खोजें',
 2357+ 'checkuser-search-initiator' => 'चालक',
 2358+ 'checkuser-search-target' => 'लक्ष्य',
 2359+ 'checkuser-ipeditcount' => '~$1 सभी सदस्योंसे',
 2360+ 'checkuser-log-subpage' => 'लॉग',
 2361+ 'checkuser-log-return' => 'सदस्यजाँच मुखपृष्ठपर वापस जायें',
 2362+ 'checkuser-log-userips' => '$1 के पास $2 के लिये आईपी हैं',
 2363+ 'checkuser-log-ipedits' => '$1 के पास $2 के लिये बदलाव हैं',
 2364+ 'checkuser-log-ipusers' => '$1 के पास $2 के लिये सदस्य हैं',
 2365+ 'checkuser-log-ipedits-xff' => '$1 के पास $2 के लिये XFF बदलाव हैं',
 2366+ 'checkuser-log-ipusers-xff' => '$1 के पास $2 के लिये XFF सदस्य हैं',
 2367+);
 2368+
 2369+/** Hiligaynon (Ilonggo)
 2370+ * @author Jose77
 2371+ */
 2372+$messages['hil'] = array(
 2373+ 'checkuser-reason' => 'Rason',
 2374+ 'checkuser-search' => 'Pangita-a',
 2375+ 'checkuser-search-submit' => 'Pangita-a',
 2376+);
 2377+
 2378+/** Croatian (Hrvatski)
 2379+ * @author Dalibor Bosits
 2380+ * @author SpeedyGonsales
 2381+ * @author Suradnik13
 2382+ */
 2383+$messages['hr'] = array(
 2384+ 'checkuser-summary' => 'Ovaj alat pretražuje nedavne promjene i pronalazi IP adrese suradnika ili prikazuje uređivanja/ime suradnika ako je zadana IP adresa. Suradnici i uređivanja mogu biti dobiveni po XFF zaglavljima dodavanjem "/xff" na kraj IP adrese. Podržane su IPv4 (CIDR 16-32) i IPv6 (CIDR 96-128) adrese. Rezultat ima maksimalno 5.000 zapisa iz tehničkih razloga. Rabite ovaj alat u skladu s pravilima.',
 2385+ 'checkuser-desc' => 'Daje suradniku pravo za provjeriti IP adrese suradnika i druge informacije',
 2386+ 'checkuser-logcase' => 'Pretraživanje evidencije razlikuje velika i mala slova',
 2387+ 'checkuser' => 'Provjeri suradnika',
 2388+ 'group-checkuser' => 'Provjeritelji',
 2389+ 'group-checkuser-member' => 'Provjeritelj',
 2390+ 'right-checkuser' => 'Provjeravanje IP adrese suradnika i drugih informacija',
 2391+ 'right-checkuser-log' => 'Gledanje evidencije provjere suradnika',
 2392+ 'grouppage-checkuser' => '{{ns:project}}:Provjeritelji',
 2393+ 'checkuser-reason' => 'Razlog:',
 2394+ 'checkuser-showlog' => 'Pokaži evidenciju',
 2395+ 'checkuser-log' => 'Evidencija provjere suradnika',
 2396+ 'checkuser-query' => 'Provjeri nedavne promjene',
 2397+ 'checkuser-target' => 'Suradnik ili IP',
 2398+ 'checkuser-users' => 'Suradnička imena',
 2399+ 'checkuser-edits' => 'Uređivanja IP-a',
 2400+ 'checkuser-ips' => 'IP adrese',
 2401+ 'checkuser-account' => 'Uređivanja suradnika',
 2402+ 'checkuser-search' => 'Traži',
 2403+ 'checkuser-period' => 'Vrijeme:',
 2404+ 'checkuser-week-1' => 'zadnji tjedan',
 2405+ 'checkuser-week-2' => 'zadnja dva tjedna',
 2406+ 'checkuser-month' => 'zadnjih 30 dana',
 2407+ 'checkuser-all' => 'sve',
 2408+ 'checkuser-cidr-label' => 'Pronađite zajednički raspon i zahvaćene adrese za popis IP-ova',
 2409+ 'checkuser-cidr-res' => 'Zajednički CIDR:',
 2410+ 'checkuser-empty' => 'Evidencija je prazna.',
 2411+ 'checkuser-nomatch' => 'Nema suradnika s tom IP adresom.',
 2412+ 'checkuser-nomatch-edits' => 'Nema poklapanja.
 2413+Zadnja izmjena je bila $1 u $2.',
 2414+ 'checkuser-check' => 'Provjeri',
 2415+ 'checkuser-log-fail' => 'Ne mogu dodati zapis',
 2416+ 'checkuser-nolog' => 'Evidencijska datoteka nije nađena',
 2417+ 'checkuser-blocked' => 'Blokiran',
 2418+ 'checkuser-gblocked' => 'Globalno blokiran',
 2419+ 'checkuser-locked' => 'Zaključan',
 2420+ 'checkuser-wasblocked' => 'Prethodno blokiran',
 2421+ 'checkuser-localonly' => 'Nije sjedinjen',
 2422+ 'checkuser-massblock' => 'Blokiraj odabrane suradnike',
 2423+ 'checkuser-massblock-text' => 'Odabrani suradnički računi će biti blokirani na neograničeno, s uključenim autoblokiranjem i onemogućenim stvaranjem novih računa.
 2424+IP adrese će biti blokirane na 1 tjedan samo za IP suradnike s onemogućenim stvaranjem računa.',
 2425+ 'checkuser-blocktag' => 'Zamijeni suradničke stranica sa:',
 2426+ 'checkuser-blocktag-talk' => 'Zamijeni stranice za razgovor sa:',
 2427+ 'checkuser-massblock-commit' => 'Blokiraj odabrane suradnike',
 2428+ 'checkuser-block-success' => "'''{{PLURAL:$2|suradnik|suradnici}} $1 {{PLURAL:$2|je blokiran|su blokirani}}.'''",
 2429+ 'checkuser-block-failure' => "'''Nema blokiranih suradnika.'''",
 2430+ 'checkuser-block-limit' => 'Odabrano je previše suradnika.',
 2431+ 'checkuser-block-noreason' => 'Morate upisati razlog za blokiranje.',
 2432+ 'checkuser-accounts' => '$1 {{PLURAL:$1|novi račun|novih računa}}',
 2433+ 'checkuser-too-many' => 'Previše rezultata, molimo suzite opseg (CIDR). Slijede rabljene IP adrese (najviše njih 5000, poredano abecedno):',
 2434+ 'checkuser-user-nonexistent' => 'Traženi suradnik (suradničko ime) ne postoji.',
 2435+ 'checkuser-search-form' => 'Nađi zapise u evidenciji gdje $1 je $2',
 2436+ 'checkuser-search-submit' => 'Traži',
 2437+ 'checkuser-search-initiator' => 'provjeritelj',
 2438+ 'checkuser-search-target' => 'cilj (traženi pojam)',
 2439+ 'checkuser-ipeditcount' => '~$1 od svih suradnika',
 2440+ 'checkuser-log-subpage' => 'Evidencija',
 2441+ 'checkuser-log-return' => 'Vrati se na stranicu za provjeru',
 2442+ 'checkuser-limited' => "'''Ovi rezultati su skraćeni zbog veće učinkovitosti izvođenja.'''",
 2443+ 'checkuser-log-userips' => '$1 tražio je IP adrese suradnika $2',
 2444+ 'checkuser-log-ipedits' => '$1 tražio je uređivanja suradnika $2',
 2445+ 'checkuser-log-ipusers' => '$1 tražio je suradnička imena za IP adresu $2',
 2446+ 'checkuser-log-ipedits-xff' => '$1 tražio je uređivanja za XFF $2',
 2447+ 'checkuser-log-ipusers-xff' => '$1 tražio je imena suradnika za XFF $2',
 2448+ 'checkuser-log-useredits' => '$1 tražio je uređivanja za $2',
 2449+ 'checkuser-autocreate-action' => 'je automatski stvoren',
 2450+ 'checkuser-email-action' => 'poslan email za "$1"',
 2451+ 'checkuser-reset-action' => 'ponovno postavi lozinku za suradnika "$1"',
 2452+);
 2453+
 2454+/** Upper Sorbian (Hornjoserbsce)
 2455+ * @author Michawiki
 2456+ */
 2457+$messages['hsb'] = array(
 2458+ 'checkuser-summary' => 'Tutón nastroj přepytuje aktualne změny, zo by IP-adresy wužiwarja zwěsćił abo změny abo wužiwarske daty za IP pokazał.
 2459+Wužiwarjo a změny IP-adresy dadźa so přez XFF-hłowy wotwołać, připowěšo "/xff" na IP-adresu. IPv4 (CIDR 16-32) a IPv6 (CIDR 96-128) so podpěrujetej.',
 2460+ 'checkuser-desc' => 'Dawa wužiwarjam z trěbnym prawom móžnosć IP-adresy a druhe informacije wužiwarja kontrolować',
 2461+ 'checkuser-logcase' => 'Pytanje w protokolu rozeznawa mjez wulko- a małopisanjom.',
 2462+ 'checkuser' => 'Wužiwarja kontrolować',
 2463+ 'checkuser-contribs' => 'Wužiwarske IP přepruwować',
 2464+ 'group-checkuser' => 'Kontrolerojo',
 2465+ 'group-checkuser-member' => 'Kontroler',
 2466+ 'right-checkuser' => 'Pruwowanje IP-adresow a druhe informacije wužiwarjow',
 2467+ 'right-checkuser-log' => 'Protokol wužiwarskeje kontrole wobhladać',
 2468+ 'grouppage-checkuser' => '{{ns:project}}:Checkuser',
 2469+ 'checkuser-reason' => 'Přičina',
 2470+ 'checkuser-showlog' => 'Protokol pokazać',
 2471+ 'checkuser-log' => 'Protokol wužiwarskeje kontrole',
 2472+ 'checkuser-query' => 'Poslednje změny wotprašeć',
 2473+ 'checkuser-target' => 'Wužiwar abo IP-adresa',
 2474+ 'checkuser-users' => 'Wužiwarjow pokazać',
 2475+ 'checkuser-edits' => 'Změny z IP-adresy přinjesć',
 2476+ 'checkuser-ips' => 'IP-adresy pokazać',
 2477+ 'checkuser-account' => 'Kontowe změny wobstarać',
 2478+ 'checkuser-search' => 'Pytać',
 2479+ 'checkuser-period' => 'Traće:',
 2480+ 'checkuser-week-1' => 'posledni tydźeń',
 2481+ 'checkuser-week-2' => 'poslednjej dwě njedźeli',
 2482+ 'checkuser-month' => 'poslednich 30 dnjow',
 2483+ 'checkuser-all' => 'wšitcy',
 2484+ 'checkuser-cidr-label' => 'Zhromadny wobłuk a potrjehene adresy za lisćinu IP-adresow namakać',
 2485+ 'checkuser-cidr-res' => 'Zhromadny CIDR:',
 2486+ 'checkuser-empty' => 'Protokol njewobsahuje zapiski.',
 2487+ 'checkuser-nomatch' => 'Žane wotpowědniki namakane.',
 2488+ 'checkuser-nomatch-edits' => 'Žane wotpowědowanja namakane.
 2489+Poslednja změna bě $1 $2.',
 2490+ 'checkuser-check' => 'Pruwować',
 2491+ 'checkuser-log-fail' => 'Njemóžno protokolowy zapisk přidać.',
 2492+ 'checkuser-nolog' => 'Žadyn protokol namakany.',
 2493+ 'checkuser-blocked' => 'Zablokowany',
 2494+ 'checkuser-gblocked' => 'Globalnje zablokowany',
 2495+ 'checkuser-locked' => 'Zawrjeny',
 2496+ 'checkuser-wasblocked' => 'Prjedy zablokowany',
 2497+ 'checkuser-localonly' => 'njezjednoćene',
 2498+ 'checkuser-massblock' => 'Wubranych wužiwarjow blokować',
 2499+ 'checkuser-massblock-text' => 'Wubrane konta budu so na přeco blokować, awtomatiske blokowanje je aktiwne a załoženje kontow je znjemóžnjene.
 2500+IP-adresy budu so na 1 tydźeń blokować (jenož za IP-wužiwarjow) a załoženje kontow je znjemóžnjene.',
 2501+ 'checkuser-blocktag' => 'Wužiwarske strony narunać přez:',
 2502+ 'checkuser-blocktag-talk' => 'Diskusijne strony narunać přez:',
 2503+ 'checkuser-massblock-commit' => 'Wubranych wužiwarjow blokować',
 2504+ 'checkuser-block-success' => "'''{{PLURAL:$2|Wužiwar|Wužiwarjej|Wužiwarjo|Wužiwarjo}} $1 {{PLURAL:$2|bu|buštaj|buchu|buchu}} nětko {{PLURAL:$2|zablokowany|zablokowanaj|zablokowani|zablokowani}}.'''",
 2505+ 'checkuser-block-failure' => "'''Žane wužiwarjo zablokowani.'''",
 2506+ 'checkuser-block-limit' => 'Přewjele wužiwarjow wubrane.',
 2507+ 'checkuser-block-noreason' => 'Dyrbiš přičinu za zablokowanja podać.',
 2508+ 'checkuser-accounts' => '$1 {{PLURAL:$1|nowe konto|nowej konće|nowe konta|nowych kontow}}',
 2509+ 'checkuser-too-many' => 'Přewjele wuslědkow, prošu zamjezuj IP-adresu:',
 2510+ 'checkuser-user-nonexistent' => 'Podaty wužiwar njeeksistuje.',
 2511+ 'checkuser-search-form' => 'Protokolowe zapiski namakać, hdźež $1 je $2',
 2512+ 'checkuser-search-submit' => 'Pytać',
 2513+ 'checkuser-search-initiator' => 'iniciator',
 2514+ 'checkuser-search-target' => 'cil',
 2515+ 'checkuser-ipeditcount' => '~$1 wot wšěch wužiwarjow',
 2516+ 'checkuser-log-subpage' => 'Protokol',
 2517+ 'checkuser-log-return' => 'Wróćo k hłownemu formularej CheckUser',
 2518+ 'checkuser-limited' => "'''Tute wuslědki buchu z wukonowych přičinow wobrězane.'''",
 2519+ 'checkuser-log-userips' => '$1 dósta IP za $2',
 2520+ 'checkuser-log-ipedits' => '$1 dósta změny za $2',
 2521+ 'checkuser-log-ipusers' => '$1 dósta wužiwarjow za $2',
 2522+ 'checkuser-log-ipedits-xff' => '$1 dósta změny za XFF $2',
 2523+ 'checkuser-log-ipusers-xff' => '$1 dósta wužiwarjow za XFF $2',
 2524+ 'checkuser-log-useredits' => '$1 je změny za $2 wobstarał',
 2525+ 'checkuser-autocreate-action' => 'bu awtomatisce załožene',
 2526+ 'checkuser-email-action' => 'pósła e-mejlku na wužiwarja "$1"',
 2527+ 'checkuser-reset-action' => 'hesło za wužiwarja "$1" wobnowić',
 2528+);
 2529+
 2530+/** Hungarian (Magyar)
 2531+ * @author Dani
 2532+ * @author Dorgan
 2533+ * @author Grin
 2534+ * @author KossuthRad
 2535+ * @author Terik
 2536+ * @author Tgr
 2537+ */
 2538+$messages['hu'] = array(
 2539+ 'checkuser-summary' => 'Ez az eszköz végigvizsgálja a friss változásokat, hogy lekérje egy adott felhasználó IP-címeit vagy megjelenítse egy adott IP-címet használó szerkesztőket és az IP szerkesztéseit.
 2540+Egy kliens IP-cím által végzett szerkesztések és felhasználói XFF fejlécek segítségével kérhetőek le, az IP-cím utáni „/xff” parancssal. Az IPv4 (CIDR 16-32) és az IPv6 (CIDR 96-128) is támogatott.
 2541+Maximum 5000 szerkesztés fog megjelenni teljesítményi okok miatt. Az eszközt a szabályoknak megfelelően használd.',
 2542+ 'checkuser-desc' => 'Lehetővé teszi olyan felhasználói jogok kiosztását, mely segítségével megtekinthetőek a felhasználók IP-címei és más adatok',
 2543+ 'checkuser-logcase' => 'A kereső kis- és nagybetűérzékeny.',
 2544+ 'checkuser' => 'IP-ellenőr',
 2545+ 'group-checkuser' => 'IP-ellenőrök',
 2546+ 'group-checkuser-member' => 'IP-ellenőr',
 2547+ 'right-checkuser' => 'a felhasználók IP-címének és más adatainak ellenőrzése',
 2548+ 'right-checkuser-log' => 'IP-ellenőri napló megtekintése',
 2549+ 'grouppage-checkuser' => '{{ns:project}}:IP-ellenőrök',
 2550+ 'checkuser-reason' => 'Ok:',
 2551+ 'checkuser-showlog' => 'Napló megjelenítése',
 2552+ 'checkuser-log' => 'IP-ellenőr-napló',
 2553+ 'checkuser-query' => 'Kétséges aktuális változások',
 2554+ 'checkuser-target' => 'Felhasználó vagy IP-cím',
 2555+ 'checkuser-users' => 'Felhasználók keresése',
 2556+ 'checkuser-edits' => 'Szerkesztések keresése IP-cím alapján',
 2557+ 'checkuser-ips' => 'IP-címek keresése',
 2558+ 'checkuser-account' => 'A fiókhoz tartozó szerkesztések',
 2559+ 'checkuser-search' => 'Keresés',
 2560+ 'checkuser-period' => 'Időtartam:',
 2561+ 'checkuser-week-1' => 'előző hét',
 2562+ 'checkuser-week-2' => 'előző két hét',
 2563+ 'checkuser-month' => 'előző harminc nap',
 2564+ 'checkuser-all' => 'összes',
 2565+ 'checkuser-cidr-label' => 'IP-címek listája alapján azok közös tartományának és az érintett címek megkeresése',
 2566+ 'checkuser-cidr-res' => 'Közös CIDR:',
 2567+ 'checkuser-empty' => 'A napló nem tartalmaz elemeket.',
 2568+ 'checkuser-nomatch' => 'A párja nem található.',
 2569+ 'checkuser-nomatch-edits' => 'Nincs találat.
 2570+Az utolsó szerkesztés $1, $2-kor történt.',
 2571+ 'checkuser-check' => 'Ellenőrzés',
 2572+ 'checkuser-log-fail' => 'Nem sikerült az elem hozzáadása',
 2573+ 'checkuser-nolog' => 'A naplófájl nem található.',
 2574+ 'checkuser-blocked' => 'Blokkolva',
 2575+ 'checkuser-gblocked' => 'Globálisan blokkolva',
 2576+ 'checkuser-locked' => 'Zárva',
 2577+ 'checkuser-wasblocked' => 'Korábban blokkolva',
 2578+ 'checkuser-localonly' => 'Nincs egységesítve',
 2579+ 'checkuser-massblock' => 'Kijelölt szerkesztők blokkolása',
 2580+ 'checkuser-massblock-text' => 'A kiválasztott fiókok örökre blokkolva lesznek autoblokkal és letiltott fiókkészítéssel.
 2581+Az IP-címeknél csak a be nem jelentkezett felhasználók lesznek blokkolva 1 hétre, letiltott fiókkészítéssel.',
 2582+ 'checkuser-blocktag' => 'Szerkesztői lapok cseréje erre:',
 2583+ 'checkuser-blocktag-talk' => 'Vitalapok cseréje erre:',
 2584+ 'checkuser-massblock-commit' => 'Kiválasztott szerkesztők blokkolása',
 2585+ 'checkuser-block-success' => "'''A következő szerkesztők blokkolva lettek: $1.'''",
 2586+ 'checkuser-block-failure' => "'''Nem lettek szerkesztők blokkolva.'''",
 2587+ 'checkuser-block-limit' => 'Túl sok szerkesztőt választottál ki.',
 2588+ 'checkuser-block-noreason' => 'Meg kell adnod a blokkolások okát.',
 2589+ 'checkuser-accounts' => '{{PLURAL:$1|egy|$1}} új felhasználói fiók',
 2590+ 'checkuser-too-many' => 'Túl sok eredmény, kérlek szűkítsd le a CIDR-t. Itt vannak a használt IP-címek (maximum 5000, cím alapján rendezve):',
 2591+ 'checkuser-user-nonexistent' => 'A megadott szerkesztő nem létezik.',
 2592+ 'checkuser-search-form' => 'Naplóbejegyzések keresése, ahol $1 $2',
 2593+ 'checkuser-search-submit' => 'Keresés',
 2594+ 'checkuser-search-initiator' => 'kezdeményező',
 2595+ 'checkuser-search-target' => 'Cél',
 2596+ 'checkuser-ipeditcount' => '~$1 az összes szerkesztő által',
 2597+ 'checkuser-log-subpage' => 'Lista',
 2598+ 'checkuser-log-return' => 'Vissza az IP-ellenőri oldalra',
 2599+ 'checkuser-limited' => "'''Teljesítményi okok miatt nem az összes találat lett megjelenítve.'''",
 2600+ 'checkuser-log-userips' => '$1 lekérte $2 IP-címeit',
 2601+ 'checkuser-log-ipedits' => '$1 lekérte $2 szerkesztéseit',
 2602+ 'checkuser-log-ipusers' => '$1 lekérte a(z) $2 IP-címhez tarzozó szerkesztőket',
 2603+ 'checkuser-log-ipedits-xff' => '$1 lekérte XFF $2 szerkesztéseit',
 2604+ 'checkuser-log-ipusers-xff' => '$1 lekérte XFF $2 szerkesztőit',
 2605+ 'checkuser-autocreate-action' => 'automatikusan létrehozva',
 2606+ 'checkuser-email-action' => 'e-mailt küldött „$1” szerkesztőnek',
 2607+ 'checkuser-reset-action' => 'lecserélte „$1” jelszavát',
 2608+);
 2609+
 2610+/** Armenian (Հայերեն)
 2611+ * @author Togaed
 2612+ */
 2613+$messages['hy'] = array(
 2614+ 'checkuser-search' => 'Որոնել',
 2615+ 'checkuser-search-submit' => 'Որոնել',
 2616+);
 2617+
 2618+/** Interlingua (Interlingua)
 2619+ * @author McDutchie
 2620+ */
 2621+$messages['ia'] = array(
 2622+ 'checkuser-summary' => 'Iste instrumento analysa le modificationes recente pro recuperar le adresses IP usate per un usator o pro monstrar le datos de modificationes e de usatores pro un adresse IP.
 2623+Le usatores e modificationes facite desde un adresse IP de cliente pote esser recuperate via capites XFF per appender "/xff" al IP.
 2624+Es supportate le adresses IPv4 (CIDR 16-32) e IPv6 (CIDR 96-128).
 2625+Non plus de 5000 modificationes essera retornate pro non supercargar le systema.
 2626+Tote uso de iste instrumento debe esser conforme al politicas in vigor.',
 2627+ 'checkuser-desc' => 'Concede al usatores con le autorisation appropriate le capabilitate de verificar le adresses IP e altere informationes de usatores',
 2628+ 'checkuser-logcase' => 'Le recerca del registros distingue inter majusculas e minusculas.',
 2629+ 'checkuser' => 'Verificar usator',
 2630+ 'checkuser-contribs' => 'verificar IPs de usatores',
 2631+ 'group-checkuser' => 'Verificatores de usatores',
 2632+ 'group-checkuser-member' => 'Verificator de usatores',
 2633+ 'right-checkuser' => 'Verificar le adresses IP e altere informationes del usator',
 2634+ 'right-checkuser-log' => 'Vider le registro de verification de usatores',
 2635+ 'grouppage-checkuser' => '{{ns:project}}:Verificator de usatores',
 2636+ 'checkuser-reason' => 'Motivo:',
 2637+ 'checkuser-showlog' => 'Monstrar registro',
 2638+ 'checkuser-log' => 'Registro de verification de usatores',
 2639+ 'checkuser-query' => 'Consultar le modificationes recente',
 2640+ 'checkuser-target' => 'Usator o IP',
 2641+ 'checkuser-users' => 'Cercar usatores',
 2642+ 'checkuser-edits' => 'Cercar modificationes desde IP',
 2643+ 'checkuser-ips' => 'Cercar IPs',
 2644+ 'checkuser-account' => 'Obtener modificationes del conto',
 2645+ 'checkuser-search' => 'Cercar',
 2646+ 'checkuser-period' => 'Durata:',
 2647+ 'checkuser-week-1' => 'ultime septimana',
 2648+ 'checkuser-week-2' => 'ultime duo septimanas',
 2649+ 'checkuser-month' => 'ultime 30 dies',
 2650+ 'checkuser-all' => 'totes',
 2651+ 'checkuser-cidr-label' => 'Cercar le gamma commun e le adresses afficite pro un lista de IPs',
 2652+ 'checkuser-cidr-res' => 'CIDR commun:',
 2653+ 'checkuser-empty' => 'Le registro non contine entratas.',
 2654+ 'checkuser-nomatch' => 'Nihil trovate.',
 2655+ 'checkuser-nomatch-edits' => 'Nulle resultato trovate.
 2656+Le ultime modification esseva le $1 a $2.',
 2657+ 'checkuser-check' => 'Verificar',
 2658+ 'checkuser-log-fail' => 'Impossibile adder entrata al registro',
 2659+ 'checkuser-nolog' => 'Nulle file de registro trovate.',
 2660+ 'checkuser-blocked' => 'Blocate',
 2661+ 'checkuser-gblocked' => 'Globalmente blocate',
 2662+ 'checkuser-locked' => 'Serrate',
 2663+ 'checkuser-wasblocked' => 'Anteriormente blocate',
 2664+ 'checkuser-localonly' => 'Non unificate',
 2665+ 'checkuser-massblock' => 'Blocar usatores seligite',
 2666+ 'checkuser-massblock-text' => 'Le contos seligite essera blocate infinitemente, con le blocada automatic activate e le creation de contos disactivate.
 2667+Le adresses IP essera blocate durante 1 septimana pro usatores IP solmente e con le creation de contos disactivate.',
 2668+ 'checkuser-blocktag' => 'Reimplaciar paginas de usatores con:',
 2669+ 'checkuser-blocktag-talk' => 'Reimplaciar le paginas de discussion per:',
 2670+ 'checkuser-massblock-commit' => 'Blocar usatores seligite',
 2671+ 'checkuser-block-success' => "'''Le {{PLURAL:$2|usator|usatores}} $1 es ora blocate.'''",
 2672+ 'checkuser-block-failure' => "'''Nulle usator blocate.'''",
 2673+ 'checkuser-block-limit' => 'Troppo de usatores seligite.',
 2674+ 'checkuser-block-noreason' => 'Tu debe indicar un motivo pro le blocadas.',
 2675+ 'checkuser-accounts' => '$1 nove {{PLURAL:$1|conto|contos}}',
 2676+ 'checkuser-too-many' => 'Troppo de resultatos. Per favor restringe le CIDR.
 2677+Ecce le IPs usate (5000 max, ordinate per adresse):',
 2678+ 'checkuser-user-nonexistent' => 'Le usator specificate non existe.',
 2679+ 'checkuser-search-form' => 'Cercar entratas in le registro ubi le $1 es $2',
 2680+ 'checkuser-search-submit' => 'Cercar',
 2681+ 'checkuser-search-initiator' => 'initiator',
 2682+ 'checkuser-search-target' => 'objectivo',
 2683+ 'checkuser-ipeditcount' => '~$1 de tote le usatores',
 2684+ 'checkuser-log-subpage' => 'Registro',
 2685+ 'checkuser-log-return' => 'Retornar al formulario principal del verification de usatores',
 2686+ 'checkuser-limited' => "'''Iste resultatos ha essite truncate pro motivos de prestationes.'''",
 2687+ 'checkuser-log-userips' => '$1 obteneva IPs pro $2',
 2688+ 'checkuser-log-ipedits' => '$1 obteneva modificationes pro $2',
 2689+ 'checkuser-log-ipusers' => '$1 obteneva usatores pro $2',
 2690+ 'checkuser-log-ipedits-xff' => '$1 obteneva modificationes pro XFF $2',
 2691+ 'checkuser-log-ipusers-xff' => '$1 obteneva usatores pro XFF $2',
 2692+ 'checkuser-log-useredits' => '$1 obteneva modificationes de $2',
 2693+ 'checkuser-autocreate-action' => 'ha essite create automaticamente',
 2694+ 'checkuser-email-action' => 'inviava un e-mail al usator "$1"',
 2695+ 'checkuser-reset-action' => 'redefiniva contrasigno pro usator "$1"',
 2696+);
 2697+
 2698+/** Indonesian (Bahasa Indonesia)
 2699+ * @author Borgx
 2700+ * @author IvanLanin
 2701+ * @author Rex
 2702+ */
 2703+$messages['id'] = array(
 2704+ 'checkuser-summary' => 'Peralatan ini memindai perubahan terbaru untuk mendapatkan IP yang digunakan oleh seorang pengguna atau menunjukkan data suntingan/pengguna untuk suatu IP.
 2705+ Pengguna dan suntingan dapat diperoleh dari suatu IP XFF dengan menambahkan "/xff" pada suatu IP. IPv4 (CIDR 16-32) dan IPv6 (CIDR 96-128) dapat digunakan.
 2706+ Karena alasan kinerja, maksimum hanya 5000 suntingan yang dapat diambil. Harap gunakan peralatan ini sesuai dengan kebijakan yang ada.',
 2707+ 'checkuser-desc' => 'Memberikan fasilitas bagi pengguna yang memiliki hak akses untuk memeriksa alamat IP dan informasi lain dari pengguna',
 2708+ 'checkuser-logcase' => 'Log ini bersifat sensitif terhadap kapitalisasi.',
 2709+ 'checkuser' => 'Pemeriksaan pengguna',
 2710+ 'group-checkuser' => 'Pemeriksa',
 2711+ 'group-checkuser-member' => 'Pemeriksa',
 2712+ 'right-checkuser' => 'Periksa alamat IP pengguna dan informasi lainnya',
 2713+ 'right-checkuser-log' => 'Tampilkan log pemeriksa',
 2714+ 'grouppage-checkuser' => '{{ns:project}}:Pemeriksa',
 2715+ 'checkuser-reason' => 'Alasan',
 2716+ 'checkuser-showlog' => 'Tampilkan log',
 2717+ 'checkuser-log' => 'Log pemeriksaan pengguna',
 2718+ 'checkuser-query' => 'Kueri perubahan terbaru',
 2719+ 'checkuser-target' => 'Pengguna atau IP',
 2720+ 'checkuser-users' => 'Cari pengguna',
 2721+ 'checkuser-edits' => 'Cari suntingan dari IP',
 2722+ 'checkuser-ips' => 'Cari IP',
 2723+ 'checkuser-account' => 'Lihat suntingan-suntingan akun',
 2724+ 'checkuser-search' => 'Cari',
 2725+ 'checkuser-period' => 'Jangka waktu:',
 2726+ 'checkuser-week-1' => 'minggu lalu',
 2727+ 'checkuser-week-2' => 'dua minggu terakhir',
 2728+ 'checkuser-month' => '30 hari terakhir',
 2729+ 'checkuser-all' => 'semua',
 2730+ 'checkuser-empty' => 'Log kosong.',
 2731+ 'checkuser-nomatch' => 'Data yang sesuai tidak ditemukan.',
 2732+ 'checkuser-nomatch-edits' => 'Tidak ditemukan hasil sesuai kriteria yang diberikan. Suntingan terakhir dilakukan pada $2, $1.',
 2733+ 'checkuser-check' => 'Periksa',
 2734+ 'checkuser-log-fail' => 'Entri log tidak dapat ditambahkan',
 2735+ 'checkuser-nolog' => 'Berkas log tidak ditemukan.',
 2736+ 'checkuser-blocked' => 'Diblok',
 2737+ 'checkuser-gblocked' => 'Diblokir secara global',
 2738+ 'checkuser-locked' => 'Terkunci',
 2739+ 'checkuser-wasblocked' => 'Telah diblokir sebelumnya',
 2740+ 'checkuser-massblock' => 'Blokir pengguna yang dipilih',
 2741+ 'checkuser-massblock-text' => 'Akun-akun yang dipilih akan diblokir selamanya, alamat-alamat IP terakhir yang digunakan otomatis diblokir dan tidak diperbolehkan membuat akun.
 2742+Alamat-alamat IP akan diblokir selama 1 minggu untuk pengguna anonim dan tidak diperbolehkan membuat akun.',
 2743+ 'checkuser-blocktag' => 'Ganti halaman pengguna dengan:',
 2744+ 'checkuser-massblock-commit' => 'Blokir pengguna yang dipilih',
 2745+ 'checkuser-block-success' => "'''{{PLURAL:$2|Pengguna|Pengguna}} $1 berhasil diblokir.'''",
 2746+ 'checkuser-block-failure' => "'''Tidak ada pengguna yang diblokir.'''",
 2747+ 'checkuser-block-limit' => 'Jumlah pengguna yang dipilih terlalu banyak.',
 2748+ 'checkuser-block-noreason' => 'Anda harus mengisi alasan pemblokiran.',
 2749+ 'checkuser-accounts' => '$1 {{PLURAL:$1|akun|akun-akun}} baru',
 2750+ 'checkuser-too-many' => 'Terlalu banyak hasil pencarian, mohon persempit CIDR. Berikut adalah alamat-alamat IP yang digunakan (5000 maks, diurut berdasarkan alamat):',
 2751+ 'checkuser-user-nonexistent' => 'Pengguna tidak eksis',
 2752+ 'checkuser-search-form' => 'Cari catatan log dimana $1 adalah $2',
 2753+ 'checkuser-search-submit' => 'Cari',
 2754+ 'checkuser-search-initiator' => 'pemeriksa',
 2755+ 'checkuser-search-target' => 'target',
 2756+ 'checkuser-ipeditcount' => '~$1 dari seluruh pengguna',
 2757+ 'checkuser-log-subpage' => 'Log',
 2758+ 'checkuser-log-return' => 'Kembali ke halaman utama Pemeriksa',
 2759+ 'checkuser-limited' => "'''Hasil berikut telah dipotong agar tidak menurunkan kinerja.'''",
 2760+ 'checkuser-log-userips' => '$1 melihat IP dari $2',
 2761+ 'checkuser-log-ipedits' => '$1 melihat suntingan dari $2',
 2762+ 'checkuser-log-ipusers' => '$1 melihat nama pengguna dari $2',
 2763+ 'checkuser-log-ipedits-xff' => '$1 melihat suntingan dari XFF $2',
 2764+ 'checkuser-log-ipusers-xff' => '$1 melihat nama pengguna dari XFF $2',
 2765+ 'checkuser-log-useredits' => '$1 memiliki suntingan-suntingan untuk $2',
 2766+ 'checkuser-autocreate-action' => 'dibuat secara otomatis',
 2767+ 'checkuser-email-action' => 'mengirimkan surat-e ke "$1"',
 2768+ 'checkuser-reset-action' => 'Set ulang kata sandi pengguna "$1"',
 2769+);
 2770+
 2771+/** Ido (Ido)
 2772+ * @author Malafaya
 2773+ */
 2774+$messages['io'] = array(
 2775+ 'checkuser-reason' => 'Motivo:',
 2776+ 'checkuser-all' => 'omna',
 2777+ 'checkuser-accounts' => '$1 nova {{PLURAL:$1|konto|konti}}',
 2778+ 'checkuser-search-submit' => 'Serchar',
 2779+ 'checkuser-ipeditcount' => '~$1 di omna uzanti',
 2780+);
 2781+
 2782+/** Icelandic (Íslenska)
 2783+ * @author S.Örvarr.S
 2784+ * @author Spacebirdy
 2785+ */
 2786+$messages['is'] = array(
 2787+ 'checkuser' => 'Athuga notanda',
 2788+ 'group-checkuser' => 'Athuga notendur',
 2789+ 'group-checkuser-member' => 'Athuga notanda',
 2790+ 'checkuser-reason' => 'Ástæða',
 2791+ 'checkuser-showlog' => 'Sýna skrá',
 2792+ 'checkuser-query' => 'Sækja nýlegar breytingar',
 2793+ 'checkuser-target' => 'Notandi eða vistfang',
 2794+ 'checkuser-users' => 'Sækja notendur',
 2795+ 'checkuser-edits' => 'Sækja breytingar eftir vistang',
 2796+ 'checkuser-ips' => 'Sækja vistföng',
 2797+ 'checkuser-account' => 'Fá breytingar aðgangs',
 2798+ 'checkuser-search' => 'Leita',
 2799+ 'checkuser-nomatch' => 'Engin samsvörun fannst.',
 2800+ 'checkuser-check' => 'Athuga',
 2801+ 'checkuser-nolog' => 'Engin skrá fundin.',
 2802+ 'checkuser-blocked' => 'Bannaður',
 2803+ 'checkuser-locked' => 'Læstur',
 2804+ 'checkuser-accounts' => '$1 {{PLURAL:$1|nýr aðgangur|nýir aðgangar}}',
 2805+ 'checkuser-search-submit' => 'Leita',
 2806+ 'checkuser-log-subpage' => 'Skrá',
 2807+);
 2808+
 2809+/** Italian (Italiano)
 2810+ * @author .anaconda
 2811+ * @author BrokenArrow
 2812+ * @author Darth Kule
 2813+ * @author Gianfranco
 2814+ * @author Melos
 2815+ * @author Nemo bis
 2816+ * @author Pietrodn
 2817+ * @author Stefano-c
 2818+ */
 2819+$messages['it'] = array(
 2820+ 'checkuser-summary' => 'Questo strumento analizza le modifiche recenti per recuperare gli indirizzi IP utilizzati da un utente o mostrare contributi e dati di un IP. Utenti e contributi di un client IP possono essere rintracciati attraverso gli header XFF aggiungendo all\'IP il suffisso "/xff". Sono supportati IPv4 (CIDR 16-32) e IPv6 (CIDR 96-128). Non saranno restituite più di 5.000 modifiche, per ragioni di prestazioni. Usa questo strumento in stretta conformità alle policy.',
 2821+ 'checkuser-desc' => 'Consente agli utenti con le opportune autorizzazioni di sottoporre a verifica gli indirizzi IP e altre informazioni relative agli utenti',
 2822+ 'checkuser-logcase' => "La ricerca nei log è ''case sensitive'' (distingue fra maiuscole e minuscole).",
 2823+ 'checkuser' => 'Controllo utenze',
 2824+ 'checkuser-contribs' => "controlla gli indirizzi IP dell'utente",
 2825+ 'group-checkuser' => 'Controllori',
 2826+ 'group-checkuser-member' => 'Controllore',
 2827+ 'right-checkuser' => "Visualizza gli indirizzi IP usati dall'utente e altre informazioni",
 2828+ 'right-checkuser-log' => 'Visualizza il log dei checkuser',
 2829+ 'grouppage-checkuser' => '{{ns:project}}:Controllo utenze',
 2830+ 'checkuser-reason' => 'Motivo:',
 2831+ 'checkuser-showlog' => 'Mostra il log',
 2832+ 'checkuser-log' => 'Log dei checkuser',
 2833+ 'checkuser-query' => 'Cerca nelle ultime modifiche',
 2834+ 'checkuser-target' => 'Utente o IP',
 2835+ 'checkuser-users' => 'Cerca utenti',
 2836+ 'checkuser-edits' => 'Vedi i contributi degli IP',
 2837+ 'checkuser-ips' => 'Cerca IP',
 2838+ 'checkuser-account' => "Vedi i contributi dell'account",
 2839+ 'checkuser-search' => 'Cerca',
 2840+ 'checkuser-period' => 'Periodo:',
 2841+ 'checkuser-week-1' => 'ultima settimana',
 2842+ 'checkuser-week-2' => 'ultime due settimane',
 2843+ 'checkuser-month' => 'ultimi 30 giorni',
 2844+ 'checkuser-all' => 'tutti gli edit',
 2845+ 'checkuser-cidr-label' => "Trova l'intervallo comune e gli indirizzi interessati per una lista di IP",
 2846+ 'checkuser-cidr-res' => 'CIDR comune:',
 2847+ 'checkuser-empty' => 'Il log non contiene dati.',
 2848+ 'checkuser-nomatch' => 'Nessun risultato trovato.',
 2849+ 'checkuser-nomatch-edits' => 'Nessun risultato trovato.
 2850+Ultimo edit risalente alle $2 del $1.',
 2851+ 'checkuser-check' => 'Controlla',
 2852+ 'checkuser-log-fail' => 'Impossibile aggiungere la voce al log',
 2853+ 'checkuser-nolog' => 'Non è stato trovato alcun file di log.',
 2854+ 'checkuser-blocked' => 'Bloccato',
 2855+ 'checkuser-gblocked' => 'Bloccato globalmente',
 2856+ 'checkuser-locked' => 'Disabilitato',
 2857+ 'checkuser-wasblocked' => 'Bloccato precedentemente',
 2858+ 'checkuser-localonly' => 'Non unificato',
 2859+ 'checkuser-massblock' => 'Blocca utenti selezionati',
 2860+ 'checkuser-massblock-text' => 'Gli account selezionati saranno bloccati infinito, con il blocco automatico attivato e la creazione di nuovi account disattivata.
 2861+Gli indirizzi IP saranno bloccati per una settimana solo per gli utenti anonimi e con la creazione account disattivata.',
 2862+ 'checkuser-blocktag' => 'Sostituisci pagine utente con:',
 2863+ 'checkuser-blocktag-talk' => 'Sostituisci pagine di discussione con:',
 2864+ 'checkuser-massblock-commit' => 'Blocca utenti selezionati',
 2865+ 'checkuser-block-success' => "'''{{PLURAL:$2|L'utente|Gli utenti}} $1 {{PLURAL:$2|è adesso bloccato|sono adesso bloccati}}.'''",
 2866+ 'checkuser-block-failure' => "'''Nessun utente bloccato.'''",
 2867+ 'checkuser-block-limit' => 'Troppi utenti selezionati.',
 2868+ 'checkuser-block-noreason' => 'È obbligatorio fornire una motivazione per i blocchi.',
 2869+ 'checkuser-accounts' => '$1 {{PLURAL:$1|nuovo|nuovi}} account',
 2870+ 'checkuser-too-many' => 'Il numero di risultati è eccessivo, usare un CIDR più ristretto. Di seguito sono indicati gli indirizzi IP utilizzati (fino a un massimo di 5000, ordinati per indirizzo):',
 2871+ 'checkuser-user-nonexistent' => "L'utente indicato non esiste.",
 2872+ 'checkuser-search-form' => 'Trova le voci del log per le quali $1 è $2',
 2873+ 'checkuser-search-submit' => 'Ricerca',
 2874+ 'checkuser-search-initiator' => 'iniziatore',
 2875+ 'checkuser-search-target' => 'obiettivo',
 2876+ 'checkuser-ipeditcount' => '~$1 complessivamente',
 2877+ 'checkuser-log-subpage' => 'Log',
 2878+ 'checkuser-log-return' => 'Torna al modulo principale di Controllo utenze',
 2879+ 'checkuser-limited' => "'''I risultati sono stati troncati per motivi di prestazioni.'''",
 2880+ 'checkuser-log-userips' => '$1 ha ottenuto gli indirizzi IP di $2',
 2881+ 'checkuser-log-ipedits' => '$1 ha ottenuto le modifiche di $2',
 2882+ 'checkuser-log-ipusers' => '$1 ha ottenuto le utenze di $2',
 2883+ 'checkuser-log-ipedits-xff' => '$1 ha ottenuto le modifiche di $2 via XFF',
 2884+ 'checkuser-log-ipusers-xff' => '$1 ha ottenuto le utenze di $2 via XFF',
 2885+ 'checkuser-log-useredits' => '$1 ha ottenuto i contributi di $2',
 2886+ 'checkuser-autocreate-action' => 'è stato creato automaticamente',
 2887+ 'checkuser-email-action' => 'ha inviato una e-mail a "$1"',
 2888+ 'checkuser-reset-action' => 'reimposta password per l\'utente "$1"',
 2889+);
 2890+
 2891+/** Japanese (日本語)
 2892+ * @author Aotake
 2893+ * @author Fievarsty
 2894+ * @author Fryed-peach
 2895+ * @author Hosiryuhosi
 2896+ * @author JtFuruhata
 2897+ * @author Kahusi
 2898+ * @author Kanjy
 2899+ * @author Marine-Blue
 2900+ * @author Muttley
 2901+ * @author Suisui
 2902+ */
 2903+$messages['ja'] = array(
 2904+ 'checkuser-summary' => 'このツールは最近の更新から行った調査を元に、ある利用者が使用したIPアドレスの検索、または、あるIPアドレスからなされた編集および利用者名の表示を行います。
 2905+IPアドレスと共に「/xff」オプションを指定すると、XFF(X-Forwarded-For)ヘッダを通じてクライアントIPアドレスを取得し、そこからなされた編集および利用者名の検索をすることが可能です。
 2906+IPv4(16から32ビットのCIDR表記)と IPv6(96から128ビットのCIDR表記)をサポートしています。
 2907+パフォーマンス上の理由により、5000件の編集しか返答出来ません。
 2908+「チェックユーザーの方針」に従って利用してください。',
 2909+ 'checkuser-desc' => '特定の権限を付与された利用者に対して、利用者のIPアドレスなどの情報のチェックを可能にする',
 2910+ 'checkuser-logcase' => 'ログの検索では大文字と小文字を区別します。',
 2911+ 'checkuser' => 'チェックユーザー',
 2912+ 'checkuser-contribs' => '利用者またはIPアドレスを調査',
 2913+ 'group-checkuser' => 'チェックユーザー',
 2914+ 'group-checkuser-member' => 'チェックユーザー',
 2915+ 'right-checkuser' => '利用者のIPアドレスやその他の情報を確認する',
 2916+ 'right-checkuser-log' => 'チェックユーザー記録を見る',
 2917+ 'grouppage-checkuser' => '{{ns:project}}:チェックユーザー',
 2918+ 'checkuser-reason' => '理由:',
 2919+ 'checkuser-showlog' => 'ログを閲覧',
 2920+ 'checkuser-log' => 'チェックユーザー記録',
 2921+ 'checkuser-query' => '最近の更新を照会',
 2922+ 'checkuser-target' => '利用者名またはIPアドレス',
 2923+ 'checkuser-users' => '利用者名を得る',
 2924+ 'checkuser-edits' => 'IPアドレスからの編集を得る',
 2925+ 'checkuser-ips' => 'IPアドレスを得る',
 2926+ 'checkuser-account' => 'アカウントの投稿記録を取得する',
 2927+ 'checkuser-search' => '検索',
 2928+ 'checkuser-period' => '期間:',
 2929+ 'checkuser-week-1' => '先週',
 2930+ 'checkuser-week-2' => '前2週',
 2931+ 'checkuser-month' => '前30日間',
 2932+ 'checkuser-all' => 'すべて',
 2933+ 'checkuser-cidr-label' => 'IPアドレスのリストから共通レンジと影響するアドレスを見つけ出す',
 2934+ 'checkuser-cidr-res' => '共通CIDR:',
 2935+ 'checkuser-empty' => 'ログ内に項目がありません。',
 2936+ 'checkuser-nomatch' => '該当するものはありません。',
 2937+ 'checkuser-nomatch-edits' => '該当するものはありません。
 2938+最終編集は $1 $2 です。',
 2939+ 'checkuser-check' => '調査',
 2940+ 'checkuser-log-fail' => 'ログに追加することができません',
 2941+ 'checkuser-nolog' => 'ログファイルが見つかりません。',
 2942+ 'checkuser-blocked' => 'ブロック済み',
 2943+ 'checkuser-gblocked' => 'グローバルブロックされています',
 2944+ 'checkuser-locked' => 'ロックされています',
 2945+ 'checkuser-wasblocked' => 'ブロック経験あり',
 2946+ 'checkuser-localonly' => '統一されません',
 2947+ 'checkuser-massblock' => '選択した利用者をブロックする',
 2948+ 'checkuser-massblock-text' => '選択した利用者は無期限ブロックされ、同時に自動ブロックが作動しアカウント作成も禁止されます。IPアドレスはIP利用者向けに1週間ブロックされ、アカウント作成が禁止されます。',
 2949+ 'checkuser-blocktag' => '利用者ページを以下で置き換える:',
 2950+ 'checkuser-blocktag-talk' => 'ノートページを置換:',
 2951+ 'checkuser-massblock-commit' => '選択した利用者をブロックする',
 2952+ 'checkuser-block-success' => "'''$2人の利用者 $1 が現在ブロックされています。'''",
 2953+ 'checkuser-block-failure' => "'''ブロックされたユーザーはありません。'''",
 2954+ 'checkuser-block-limit' => '利用者の選択数が多すぎます。',
 2955+ 'checkuser-block-noreason' => 'ブロック理由の記入が必要です。',
 2956+ 'checkuser-accounts' => '$1つの新しいアカウント',
 2957+ 'checkuser-too-many' => '検索結果が多すぎます、CIDRの指定を小さく絞り込んでください。利用されたIPは以下の通りです(5000件を上限に、アドレス順でソートされています):',
 2958+ 'checkuser-user-nonexistent' => '指定されたユーザーは存在しません。',
 2959+ 'checkuser-search-form' => '$1 が $2 であるログ項目を探す',
 2960+ 'checkuser-search-submit' => '検索',
 2961+ 'checkuser-search-initiator' => 'チェック実行者',
 2962+ 'checkuser-search-target' => 'チェック対象',
 2963+ 'checkuser-ipeditcount' => '全利用者 -$1',
 2964+ 'checkuser-log-subpage' => 'ログ',
 2965+ 'checkuser-log-return' => 'チェックユーザーのメインフォームへ戻る',
 2966+ 'checkuser-limited' => "'''パフォーマンスの都合から結果は省略されています。'''",
 2967+ 'checkuser-log-userips' => '$1 は $2 が使用したIPアドレスを取得した',
 2968+ 'checkuser-log-ipedits' => '$1 は $2 からなされた編集を取得した',
 2969+ 'checkuser-log-ipusers' => '$1 は $2 からアクセスされた利用者名を取得した',
 2970+ 'checkuser-log-ipedits-xff' => '$1 は XFF $2 からなされた編集を取得した',
 2971+ 'checkuser-log-ipusers-xff' => '$1 は XFF $2 からアクセスされた利用者名を取得した',
 2972+ 'checkuser-log-useredits' => '$1 は $2 による編集を取得した',
 2973+ 'checkuser-autocreate-action' => '自動的に作成',
 2974+ 'checkuser-email-action' => '利用者"$1"へメールを送る',
 2975+ 'checkuser-reset-action' => '利用者"$1"のパスワードをリセット',
 2976+);
 2977+
 2978+/** Jutish (Jysk)
 2979+ * @author Huslåke
 2980+ */
 2981+$messages['jut'] = array(
 2982+ 'checkuser-summary' => 'Dette værktøj scanner Seneste ændringer for at finde IP\'er brugt af en bestemt bruger, eller for at vise redigerings- eller brugerdata for en IP.
 2983+Bruger og redigeringer fra en klient IP kan hentes via XFF headers ved at tilføje "/xff" til IP\'en. Ipv4 (CIRD 16-32) og IPv6 (CIDR 96-128) er understøttet.
 2984+For at sikre programmelets ydeevne kan maksimalt 5000 redigeringer returneres. Brug kun dette værktøj i overensstemmelse med gældende politiker på {{SITENAME}}.',
 2985+ 'checkuser-desc' => 'Giver brugere med den rette godkendelse muligheden for at checke brugeres IP-adresser og anden information',
 2986+ 'checkuser-logcase' => 'Logsøgning er case sensitiv (der gøres forskel på store og små bogstaver)',
 2987+ 'checkuser' => 'Check user',
 2988+ 'group-checkuser' => 'Check users',
 2989+ 'group-checkuser-member' => 'Check user',
 2990+ 'grouppage-checkuser' => '{{ns:project}}:Check user',
 2991+ 'checkuser-reason' => 'Begrundelse',
 2992+ 'checkuser-showlog' => "Se'n log",
 2993+ 'checkuser-log' => 'CheckUser log',
 2994+ 'checkuser-query' => 'Søĝ i seneste ændrenger',
 2995+ 'checkuser-target' => 'Bruger æller IP',
 2996+ 'checkuser-users' => 'Gæt bruger!',
 2997+ 'checkuser-edits' => 'Gæt redigærer IPs!',
 2998+ 'checkuser-ips' => 'Gæt IP!',
 2999+ 'checkuser-search' => 'Søĝ',
 3000+ 'checkuser-empty' => 'Loggen indeholder ingen poster.',
 3001+ 'checkuser-nomatch' => 'Ingen matchende resultater blev fundet.',
 3002+ 'checkuser-check' => 'Check',
 3003+ 'checkuser-log-fail' => 'Kunne ikke tilføje log-post',
 3004+ 'checkuser-nolog' => 'Logfilen blev ikke fundet.',
 3005+ 'checkuser-blocked' => 'Blokeret',
 3006+ 'checkuser-too-many' => "For mange resultater, gør CIDR'en smallere. Her er de brugte IP'er (max 5000, sorteret efter adresse):",
 3007+ 'checkuser-user-nonexistent' => 'Den anførte bruger eksisterer ikke.',
 3008+ 'checkuser-search-form' => 'Find log-poster hvor $1 er $2',
 3009+ 'checkuser-search-submit' => 'Søg',
 3010+ 'checkuser-search-initiator' => 'initiatår',
 3011+ 'checkuser-search-target' => 'mål',
 3012+ 'checkuser-log-subpage' => 'Log',
 3013+ 'checkuser-log-return' => 'Gå tilbage til hovedformularen for checkbruger',
 3014+ 'checkuser-log-userips' => "$1 fik IP'er for $2",
 3015+ 'checkuser-log-ipedits' => '$1 fik redigeringer for $2',
 3016+ 'checkuser-log-ipusers' => '$1 fik brugere for $2',
 3017+ 'checkuser-log-ipedits-xff' => '$1 fik redigeringer for XFF $2',
 3018+ 'checkuser-log-ipusers-xff' => '$1 fik brugere for XFF $2',
 3019+);
 3020+
 3021+/** Javanese (Basa Jawa)
 3022+ * @author Meursault2004
 3023+ * @author Pras
 3024+ */
 3025+$messages['jv'] = array(
 3026+ 'checkuser-summary' => 'Piranti iki nlusuri owah-owahan pungkasan kanggo golèk IP sing dienggo déning sawijining panganggo utawa nuduhaké data suntingan/panganggo kanggo sawijining IP.
 3027+Panganggo lan suntingan bisa dirunut saka sawijining IP XFF mawa nambahaké "/xff" ing sawijining IP. IPv4 (CIDR 16-32) IPv6 (CIDR 96-128) bisa dienggo.
 3028+Amerga déning alesan kinerja, ora luwih saka 5.000 suntingan sing bisa dijupuk. Mangga gunakna piranti iki miturut kawicaksanan sing wis ditetepaké.',
 3029+ 'checkuser-desc' => 'Mènèhi panganggo fasilitas kanggo panganggo sing duwé idin kanggo mriksa alamat IP panganggo lan informasi liyané',
 3030+ 'checkuser-logcase' => 'Log iki sènsitif marang panrapan aksara gedhé apa cilik',
 3031+ 'checkuser' => 'Pamriksan panganggo',
 3032+ 'group-checkuser' => 'Pamriksa panganggo',
 3033+ 'group-checkuser-member' => 'Pamriksa panganggo',
 3034+ 'right-checkuser' => 'Priksa alamat-alamat IP panganggo lan informasi liyané',
 3035+ 'right-checkuser-log' => 'Pirsani log pamriksa',
 3036+ 'grouppage-checkuser' => '{{ns:project}}:Pamriksa panganggo',
 3037+ 'checkuser-reason' => 'Alesan:',
 3038+ 'checkuser-showlog' => 'Tuduhna log',
 3039+ 'checkuser-log' => 'Log pamriksan panganggo',
 3040+ 'checkuser-query' => 'Pitakonan owah-owahan pungkasan',
 3041+ 'checkuser-target' => 'Panganggo utawa IP',
 3042+ 'checkuser-users' => 'Golèk panganggo',
 3043+ 'checkuser-edits' => 'Golèk suntingan saka IP',
 3044+ 'checkuser-ips' => 'Golèk IP',
 3045+ 'checkuser-account' => 'Pirsani suntingan-suntingan akun',
 3046+ 'checkuser-search' => 'Golèk',
 3047+ 'checkuser-period' => 'Jangka wektu:',
 3048+ 'checkuser-week-1' => 'minggu kapungkur',
 3049+ 'checkuser-week-2' => 'rong minggu kapungkur',
 3050+ 'checkuser-month' => '30 dina pungkasan',
 3051+ 'checkuser-all' => 'kabèh',
 3052+ 'checkuser-empty' => 'Log iki kosong.',
 3053+ 'checkuser-nomatch' => 'Ora ana data sing cocog bisa ditemokaké.',
 3054+ 'checkuser-nomatch-edits' => 'Ora ana sing cocog.
 3055+Suntingan pungkasan ing $2, $1.',
 3056+ 'checkuser-check' => 'Priksa',
 3057+ 'checkuser-log-fail' => 'Log èntri ora bisa ditambahaké',
 3058+ 'checkuser-nolog' => 'Ora ditemokaké berkas log.',
 3059+ 'checkuser-blocked' => 'Diblokir',
 3060+ 'checkuser-gblocked' => 'Diblokir sacara global',
 3061+ 'checkuser-locked' => 'Dikunci',
 3062+ 'checkuser-wasblocked' => 'Wis diblokir sadurungé',
 3063+ 'checkuser-massblock' => 'Blokir panganggo kapilih',
 3064+ 'checkuser-massblock-text' => 'Akun-akun kapilih bakal diblokir salawasé, alamat-alamat IP pungkasan sing dipigunakaké otomatis diblokir lan ora bisa gawé akun.
 3065+Alamat-alamat IP bakal diblokir jroning 1 minggu tumrap panganggo anonim lan ora bisa gawé akun.',
 3066+ 'checkuser-blocktag' => 'Ganti kaca panganggo dadi:',
 3067+ 'checkuser-blocktag-talk' => 'Ganti kaca wicara nganggo:',
 3068+ 'checkuser-massblock-commit' => 'Blokir panganggo kapilih',
 3069+ 'checkuser-block-success' => "'''{{PLURAL:$2|Panganggo|panganggo}} $1 {{PLURAL:$2|wis|wis}} diblokir.'''",
 3070+ 'checkuser-block-failure' => "'''Ora ana panganggo sing diblokir.'''",
 3071+ 'checkuser-block-limit' => 'Cacahing panganggo sing dipilih kakèhan.',
 3072+ 'checkuser-block-noreason' => 'Panjenengan kudu mènèhi alesan pamblokiran',
 3073+ 'checkuser-accounts' => '$1 {{PLURAL:$1|akun|akun-akun}} anyar',
 3074+ 'checkuser-too-many' => 'Kakèhan pituwas, tulung CIDR diciyutaké.
 3075+Ing ngisor iki kapacak alamat-alamat IP sing dienggo (maks. 5.000, diurutaké adhedhasar alamat):',
 3076+ 'checkuser-user-nonexistent' => 'Panganggo iki ora ana.',
 3077+ 'checkuser-search-form' => 'Temokna cathetan log ing ngendi $1 iku $2',
 3078+ 'checkuser-search-submit' => 'Golèk',
 3079+ 'checkuser-search-initiator' => 'pamriksa',
 3080+ 'checkuser-search-target' => 'tujuan',
 3081+ 'checkuser-ipeditcount' => '~$1 saka kabèh panganggo',
 3082+ 'checkuser-log-subpage' => 'Log',
 3083+ 'checkuser-log-return' => 'Bali menyang kaca utama pamriksa',
 3084+ 'checkuser-limited' => "'''Kasil iki wis dicekak amarga alesan kinerja.'''",
 3085+ 'checkuser-log-userips' => '$1 ndeleng IP saka $2',
 3086+ 'checkuser-log-ipedits' => '$1 ndeleng suntingan saka $2',
 3087+ 'checkuser-log-ipusers' => '$1 ndeleng jeneng panganggo saka $2',
 3088+ 'checkuser-log-ipedits-xff' => '$1 ndeleng suntingan saka XFF $2',
 3089+ 'checkuser-log-ipusers-xff' => '$1 ndeleng jeneng panganggo saka XFF $2',
 3090+ 'checkuser-log-useredits' => '$1 nduwèni suntingan-suntingan kanggo $2',
 3091+ 'checkuser-autocreate-action' => 'digawé sacara otomatis',
 3092+ 'checkuser-email-action' => 'Wis ngirim layang-e menyang panganggo "$1"',
 3093+ 'checkuser-reset-action' => 'Sèt ulang tembung sandi panganggo "$1"',
 3094+);
 3095+
 3096+/** Georgian (ქართული)
 3097+ * @author Malafaya
 3098+ */
 3099+$messages['ka'] = array(
 3100+ 'checkuser-reason' => 'მიზეზი:',
 3101+ 'checkuser-search' => 'ძიება',
 3102+ 'checkuser-all' => 'ყველა',
 3103+ 'checkuser-search-submit' => 'ძიება',
 3104+ 'checkuser-log-subpage' => 'ჟურნალი',
 3105+);
 3106+
 3107+/** Kazakh (Arabic script) (‫قازاقشا (تٴوتە)‬) */
 3108+$messages['kk-arab'] = array(
 3109+ 'checkuser-summary' => 'بۇل قۇرال پايدالانۋشى قولدانعان IP جايلار ٴۇشىن, نەمەسە IP جاي تۇزەتۋ/پايدالانۋشى دەرەكتەرىن كورسەتۋ ٴۇشىن جۋىقتاعى وزگەرىستەردى قاراپ شىعادى.
 3110+ پايدالانۋشىلاردى مەن تۇزەتۋلەردى XFF IP ارقىلى IP جايعا «/xff» دەگەندى قوسىپ كەلتىرۋگە بولادى. IPv4 (CIDR 16-32) جانە IPv6 (CIDR 96-128) ارقاۋلانادى.
 3111+ ورىنداۋشىلىق سەبەپتەرىمەن 5000 تۇزەتۋدەن ارتىق قايتارىلمايدى. بۇنى ەرەجەلەرگە سايكەس پايدالانىڭىز.',
 3112+ 'checkuser-logcase' => 'جۋرنالدان ىزدەۋ ٴارىپ باس-كىشىلىگىن ايىرادى.',
 3113+ 'checkuser' => 'قاتىسۋشىنى سىناۋ',
 3114+ 'group-checkuser' => 'قاتىسۋشى سىناۋشىلار',
 3115+ 'group-checkuser-member' => 'قاتىسۋشى سىناۋشى',
 3116+ 'grouppage-checkuser' => '{{ns:project}}:قاتىسۋشىنى سىناۋ',
 3117+ 'checkuser-reason' => 'سەبەبى',
 3118+ 'checkuser-showlog' => 'جۋرنالدى كورسەت',
 3119+ 'checkuser-log' => 'قاتىسۋشى سىناۋ جۋرنالى',
 3120+ 'checkuser-query' => 'جۋىقتاعى وزگەرىستەردى سۇرانىمداۋ',
 3121+ 'checkuser-target' => 'قاتىسۋشى اتى / IP جاي',
 3122+ 'checkuser-users' => 'قاتىسۋشىلاردى كەلتىرۋ',
 3123+ 'checkuser-edits' => 'IP جايدان جاسالعان تۇزەتۋلەردى كەلتىرۋ',
 3124+ 'checkuser-ips' => 'IP جايلاردى كەلتىرۋ',
 3125+ 'checkuser-search' => 'ىزدەۋ',
 3126+ 'checkuser-empty' => 'جۋرنالدا ەش جازبا جوق.',
 3127+ 'checkuser-nomatch' => 'سايكەس تابىلمادى.',
 3128+ 'checkuser-check' => 'سىناۋ',
 3129+ 'checkuser-log-fail' => 'جۋرنالعا جازبا ۇستەلىنبەدى',
 3130+ 'checkuser-nolog' => 'جۋرنال فايلى تابىلمادى.',
 3131+ 'checkuser-blocked' => 'بۇعاتتالعان',
 3132+ 'checkuser-too-many' => 'تىم كوپ ناتىيجە كەلتىرىلدى, CIDR دەگەندى تارىلتىپ كورىڭىز. مىندا پايدالانىلعان IP جايلار كورسەتىلگەن (بارىنشا 5000, جايىمەن سۇرىپتالعان):',
 3133+ 'checkuser-user-nonexistent' => 'ەنگىزىلگەن قاتىسۋشى جوق.',
 3134+ 'checkuser-search-form' => 'جۋرنالداعى وقىيعالاردى تابۋ ($1 دەگەن $2 ەكەن جايىنداعى)',
 3135+ 'checkuser-search-submit' => 'ىزدەۋ',
 3136+ 'checkuser-search-initiator' => 'باستاماشى',
 3137+ 'checkuser-search-target' => 'نىسانا',
 3138+ 'checkuser-log-subpage' => 'جۋرنال',
 3139+ 'checkuser-log-return' => 'CheckUser باسقى پىشىنىنە ورالۋ',
 3140+ 'checkuser-log-userips' => '$2 ٴۇشىن $1 IP جاي الىندى',
 3141+ 'checkuser-log-ipedits' => '$2 ٴۇشىن $1 تۇزەتۋ الىندى',
 3142+ 'checkuser-log-ipusers' => '$2 ٴۇشىن $1 IP قاتىسۋشى الىندى',
 3143+ 'checkuser-log-ipedits-xff' => 'XFF $2 ٴۇشىن $1 تۇزەتۋ الىندى',
 3144+ 'checkuser-log-ipusers-xff' => 'XFF $2 ٴۇشىن $1 قاتىسۋشى الىندى',
 3145+);
 3146+
 3147+/** Kazakh (Cyrillic) (Қазақша (Cyrillic)) */
 3148+$messages['kk-cyrl'] = array(
 3149+ 'checkuser-summary' => 'Бұл құрал пайдаланушы қолданған IP жайлар үшін, немесе IP жай түзету/пайдаланушы деректерін көрсету үшін жуықтағы өзгерістерді қарап шығады.
 3150+ Пайдаланушыларды мен түзетулерді XFF IP арқылы IP жайға «/xff» дегенді қосып келтіруге болады. IPv4 (CIDR 16-32) және IPv6 (CIDR 96-128) арқауланады.
 3151+ Орындаушылық себептерімен 5000 түзетуден артық қайтарылмайды. Бұны ережелерге сәйкес пайдаланыңыз.',
 3152+ 'checkuser-logcase' => 'Журналдан іздеу әріп бас-кішілігін айырады.',
 3153+ 'checkuser' => 'Қатысушыны сынау',
 3154+ 'group-checkuser' => 'Қатысушы сынаушылар',
 3155+ 'group-checkuser-member' => 'қатысушы сынаушы',
 3156+ 'grouppage-checkuser' => '{{ns:project}}:Қатысушыны сынау',
 3157+ 'checkuser-reason' => 'Себебі',
 3158+ 'checkuser-showlog' => 'Журналды көрсет',
 3159+ 'checkuser-log' => 'Қатысушы сынау журналы',
 3160+ 'checkuser-query' => 'Жуықтағы өзгерістерді сұранымдау',
 3161+ 'checkuser-target' => 'Қатысушы аты / IP жай',
 3162+ 'checkuser-users' => 'Қатысушыларды келтіру',
 3163+ 'checkuser-edits' => 'IP жайдан жасалған түзетулерді келтіру',
 3164+ 'checkuser-ips' => 'IP жайларды келтіру',
 3165+ 'checkuser-search' => 'Іздеу',
 3166+ 'checkuser-empty' => 'Журналда еш жазба жоқ.',
 3167+ 'checkuser-nomatch' => 'Сәйкес табылмады.',
 3168+ 'checkuser-check' => 'Сынау',
 3169+ 'checkuser-log-fail' => 'Журналға жазба үстелінбеді',
 3170+ 'checkuser-nolog' => 'Журнал файлы табылмады.',
 3171+ 'checkuser-blocked' => 'Бұғатталған',
 3172+ 'checkuser-too-many' => 'Тым көп нәтиже келтірілді, CIDR дегенді тарылтып көріңіз. Мында пайдаланылған IP жайлар көрсетілген (барынша 5000, жайымен сұрыпталған):',
 3173+ 'checkuser-user-nonexistent' => 'Енгізілген қатысушы жоқ.',
 3174+ 'checkuser-search-form' => 'Журналдағы оқиғаларды табу ($1 деген $2 екен жайындағы)',
 3175+ 'checkuser-search-submit' => 'Іздеу',
 3176+ 'checkuser-search-initiator' => 'бастамашы',
 3177+ 'checkuser-search-target' => 'нысана',
 3178+ 'checkuser-log-subpage' => 'Журнал',
 3179+ 'checkuser-log-return' => 'CheckUser басқы пішініне оралу',
 3180+ 'checkuser-log-userips' => '$2 үшін $1 IP жай алынды',
 3181+ 'checkuser-log-ipedits' => '$2 үшін $1 түзету алынды',
 3182+ 'checkuser-log-ipusers' => '$2 үшін $1 IP қатысушы алынды',
 3183+ 'checkuser-log-ipedits-xff' => 'XFF $2 үшін $1 түзету алынды',
 3184+ 'checkuser-log-ipusers-xff' => 'XFF $2 үшін $1 қатысушы алынды',
 3185+);
 3186+
 3187+/** Kazakh (Latin) (Қазақша (Latin)) */
 3188+$messages['kk-latn'] = array(
 3189+ 'checkuser-summary' => 'Bul qural paýdalanwşı qoldanğan IP jaýlar üşin, nemese IP jaý tüzetw/paýdalanwşı derekterin körsetw üşin jwıqtağı özgeristerdi qarap şığadı.
 3190+ Paýdalanwşılardı men tüzetwlerdi XFF IP arqılı IP jaýğa «/xff» degendi qosıp keltirwge boladı. IPv4 (CIDR 16-32) jäne IPv6 (CIDR 96-128) arqawlanadı.
 3191+ Orındawşılıq sebepterimen 5000 tüzetwden artıq qaýtarılmaýdı. Bunı erejelerge säýkes paýdalanıñız.',
 3192+ 'checkuser-logcase' => 'Jwrnaldan izdew ärip bas-kişiligin aýıradı.',
 3193+ 'checkuser' => 'Qatıswşını sınaw',
 3194+ 'group-checkuser' => 'Qatıswşı sınawşılar',
 3195+ 'group-checkuser-member' => 'qatıswşı sınawşı',
 3196+ 'grouppage-checkuser' => '{{ns:project}}:Qatıswşını sınaw',
 3197+ 'checkuser-reason' => 'Sebebi',
 3198+ 'checkuser-showlog' => 'Jwrnaldı körset',
 3199+ 'checkuser-log' => 'Qatıswşı sınaw jwrnalı',
 3200+ 'checkuser-query' => 'Jwıqtağı özgeristerdi suranımdaw',
 3201+ 'checkuser-target' => 'Qatıswşı atı / IP jaý',
 3202+ 'checkuser-users' => 'Qatıswşılardı keltirw',
 3203+ 'checkuser-edits' => 'IP jaýdan jasalğan tüzetwlerdi keltirw',
 3204+ 'checkuser-ips' => 'IP jaýlardı keltirw',
 3205+ 'checkuser-search' => 'İzdew',
 3206+ 'checkuser-empty' => 'Jwrnalda eş jazba joq.',
 3207+ 'checkuser-nomatch' => 'Säýkes tabılmadı.',
 3208+ 'checkuser-check' => 'Sınaw',
 3209+ 'checkuser-log-fail' => 'Jwrnalğa jazba üstelinbedi',
 3210+ 'checkuser-nolog' => 'Jwrnal faýlı tabılmadı.',
 3211+ 'checkuser-blocked' => 'Buğattalğan',
 3212+ 'checkuser-too-many' => 'Tım köp nätïje keltirildi, CIDR degendi tarıltıp köriñiz. Mında paýdalanılğan IP jaýlar körsetilgen (barınşa 5000, jaýımen surıptalğan):',
 3213+ 'checkuser-user-nonexistent' => 'Engizilgen qatıswşı joq.',
 3214+ 'checkuser-search-form' => 'Jwrnaldağı oqïğalardı tabw ($1 degen $2 eken jaýındağı)',
 3215+ 'checkuser-search-submit' => 'İzdew',
 3216+ 'checkuser-search-initiator' => 'bastamaşı',
 3217+ 'checkuser-search-target' => 'nısana',
 3218+ 'checkuser-log-subpage' => 'Jwrnal',
 3219+ 'checkuser-log-return' => 'CheckUser basqı pişinine oralw',
 3220+ 'checkuser-log-userips' => '$2 üşin $1 IP jaý alındı',
 3221+ 'checkuser-log-ipedits' => '$2 üşin $1 tüzetw alındı',
 3222+ 'checkuser-log-ipusers' => '$2 üşin $1 IP qatıswşı alındı',
 3223+ 'checkuser-log-ipedits-xff' => 'XFF $2 üşin $1 tüzetw alındı',
 3224+ 'checkuser-log-ipusers-xff' => 'XFF $2 üşin $1 qatıswşı alındı',
 3225+);
 3226+
 3227+/** Khmer (ភាសាខ្មែរ)
 3228+ * @author Chhorran
 3229+ * @author Lovekhmer
 3230+ * @author Thearith
 3231+ * @author គីមស៊្រុន
 3232+ */
 3233+$messages['km'] = array(
 3234+ 'checkuser-desc' => 'ផ្ដល់ឱ្យអ្នកប្រើប្រាស់​នូវការអនុញ្ញាតសមគួរដើម្បី​ទទួលបាននូវ​សមត្ថភាព​ក្នុងការត្រួតពិនិត្យអាសយដ្ឋាន IP របស់អ្នកប្រើប្រាស់និង​ព័ត៌មានផ្សេងៗទៀត',
 3235+ 'checkuser-logcase' => 'ការស្វែងរកកំណត់ហេតុដោយបែងចែកអក្សរធំ អក្សរតូច។',
 3236+ 'checkuser' => 'ត្រួតពិនិត្យអ្នកប្រើប្រាស់',
 3237+ 'group-checkuser' => 'អ្នកត្រួតពិនិត្យអ្នកប្រើប្រាស់',
 3238+ 'group-checkuser-member' => 'អ្នកត្រួតពិនិត្យអ្នកប្រើប្រាស់',
 3239+ 'right-checkuser' => 'អាសយដ្ឋានIPនិងព័ត៌មានដ៏ទៃទៀតនៃការត្រួតពិនិត្យអ្នកប្រើប្រាស់',
 3240+ 'right-checkuser-log' => 'មើលកំណត់ហេតុនៃការត្រួតពិនិត្យអ្នកប្រើប្រាស់',
 3241+ 'grouppage-checkuser' => '{{ns:project}}:អ្នកត្រួតពិនិត្យអ្នកប្រើប្រាស់',
 3242+ 'checkuser-reason' => 'មូលហេតុ៖',
 3243+ 'checkuser-showlog' => 'បង្ហាញកំណត់ហេតុ',
 3244+ 'checkuser-log' => 'កំណត់ហេតុនៃការត្រួតពិនិត្យអ្នកប្រើប្រាស់',
 3245+ 'checkuser-target' => 'អ្នកប្រើប្រាស់ ឬ IP',
 3246+ 'checkuser-users' => 'ទទួលអ្នកប្រើប្រាស់',
 3247+ 'checkuser-edits' => 'ទទួលកំណែប្រែពីIP',
 3248+ 'checkuser-ips' => 'ទទួលIP',
 3249+ 'checkuser-account' => 'ទទួលកំណែប្រែនៃគណនី',
 3250+ 'checkuser-search' => 'ស្វែងរក',
 3251+ 'checkuser-period' => 'រយៈពេល៖',
 3252+ 'checkuser-week-1' => 'សប្តាហ៍មុន',
 3253+ 'checkuser-week-2' => '២សប្តាហ៍មុន',
 3254+ 'checkuser-month' => '៣០ថ្ងៃមុន',
 3255+ 'checkuser-all' => 'ទាំងអស់',
 3256+ 'checkuser-empty' => 'មិនមានអ្វីនៅក្នុងកំណត់ហេតុនេះទេ។',
 3257+ 'checkuser-check' => 'ត្រួតពិនិត្យ',
 3258+ 'checkuser-nolog' => 'ឯកសារកំណត់ហេតុមិនត្រូវបានរកឃើញទេ។',
 3259+ 'checkuser-blocked' => 'បានហាមឃាត់',
 3260+ 'checkuser-locked' => 'បានចាក់សោ',
 3261+ 'checkuser-wasblocked' => 'ត្រូវបានរាំងខ្ទប់មុននេះ',
 3262+ 'checkuser-massblock' => 'រាំងខ្ទប់អ្នកប្រើប្រាស់ដែលត្រូវបានជ្រើសរើស',
 3263+ 'checkuser-blocktag' => 'ជំនួសទំព័រអ្នកប្រើប្រាស់ដោយ៖',
 3264+ 'checkuser-blocktag-talk' => 'ជំនួស​ទំព័រពិភាក្សា​ជាមួយ​៖',
 3265+ 'checkuser-massblock-commit' => 'រាំងខ្ទប់អ្នកប្រើប្រាស់ដែលត្រូវបានជ្រើសរើស',
 3266+ 'checkuser-block-success' => "'''{{PLURAL:$2|អ្នកប្រើប្រាស់|អ្នកប្រើប្រាស់}} $1 {{PLURAL:$2|ត្រូវ|ត្រូវ}}បានរាំងខ្ទប់ហើយ។'''",
 3267+ 'checkuser-block-failure' => "'''គ្មានអ្នកប្រើប្រាស់ណាម្នាក់ត្រូវបានរាំងខ្ទប់ទេ។'''",
 3268+ 'checkuser-block-limit' => 'មានអ្នកប្រើប្រាស់ច្រើនពេកហើយត្រូវបានជ្រើសរើស។',
 3269+ 'checkuser-block-noreason' => 'អ្នកត្រូវតែផ្ដល់មូលហេតុសម្រាប់ការរាំងខ្ទប់។',
 3270+ 'checkuser-accounts' => '{{PLURAL:$1|account|គណនី}} $1 ថ្មី',
 3271+ 'checkuser-too-many' => 'ច្រើនលទ្ធផល​ពេក, សូមបង្រួម CIDR ។ នេះគឺ IP បានប្រើប្រាស់ (អតិបរមា ៥០០០, រៀបតាម​អាសយដ្ឋាន)​៖',
 3272+ 'checkuser-user-nonexistent' => 'មិនមានអ្នកប្រើប្រាស់ដូចដែលបានបញ្ជាក់ទេ។',
 3273+ 'checkuser-search-form' => 'ស្វែងរកការបញ្ចូលកំណត់ហេតុដែល $1 គឺជា $2',
 3274+ 'checkuser-search-submit' => 'ស្វែងរក',
 3275+ 'checkuser-search-initiator' => 'អ្នកផ្ដួចផ្ដើម',
 3276+ 'checkuser-search-target' => 'គោលដៅ',
 3277+ 'checkuser-ipeditcount' => '~$1 ពីគ្រប់អ្នកប្រើប្រាស់ទាំងអស់',
 3278+ 'checkuser-log-subpage' => 'កំណត់ហេតុ',
 3279+ 'checkuser-log-return' => 'ត្រឡប់ទៅកាន់បែបបទដើមនៃការត្រួតពិនិត្យអ្នកប្រើប្រាស់',
 3280+ 'checkuser-log-userips' => '$1បានទទួល IPs ដែល$2បានប្រើប្រាស់',
 3281+ 'checkuser-log-ipedits' => '$1បានទទួលចំនួនកំណែប្រែពី$2',
 3282+ 'checkuser-log-useredits' => '$1 បានទទួលកំណែប្រែពី $2',
 3283+ 'checkuser-autocreate-action' => 'ត្រូវបានបង្កើតដោយស្វ័យប្រវត្តិ',
 3284+ 'checkuser-email-action' => 'បានផ្ញើអ៊ីមែលទៅកាន់អ្នកប្រើប្រាស់ "$1"',
 3285+ 'checkuser-reset-action' => 'កំណត់ឡើងវិញនូវពាក្យសម្ងាត់របស់អ្នកប្រើប្រាស់"$1"',
 3286+);
 3287+
 3288+/** Kannada (ಕನ್ನಡ)
 3289+ * @author HPNadig
 3290+ */
 3291+$messages['kn'] = array(
 3292+ 'checkuser' => 'ಸದಸ್ಯನನ್ನು ಚೆಕ್ ಮಾಡಿ',
 3293+);
 3294+
 3295+/** Korean (한국어)
 3296+ * @author Albamhandae
 3297+ * @author Ficell
 3298+ * @author Klutzy
 3299+ * @author Kwj2772
 3300+ * @author ToePeu
 3301+ */
 3302+$messages['ko'] = array(
 3303+ 'checkuser-summary' => '이 도구는 특정 사용자가 이용한 IP 또는 특정 IP에 대한 편집/사용자 정보를 조사합니다.
 3304+클라이언트 IP를 통한 사용자와 편집은 IP 주소 뒤에 "/xff"를 더함으로서 XFF 제공자를 통해 조사할 수 있습니다. IPv4 (CIDR 16-32) 와 IPv6 (CIDR 96-128)을 지원합니다.
 3305+기술적 문제로 최대 5000개의 편집만 보여질 것입니다.
 3306+이 도구는 정책에 맞게 사용하십시오.',
 3307+ 'checkuser-desc' => '사용자의 IP 주소를 포함한 정보를 볼 수 있는 권한을 특정한 사용자에게 준다.',
 3308+ 'checkuser-logcase' => '이 기록 검색은 대소문자를 구분합니다.',
 3309+ 'checkuser' => '체크유저',
 3310+ 'checkuser-contribs' => '사용자 IP를 확인',
 3311+ 'group-checkuser' => '체크유저',
 3312+ 'group-checkuser-member' => '체크유저',
 3313+ 'right-checkuser' => '사용자의 IP 주소와 다른 정보를 확인',
 3314+ 'right-checkuser-log' => '체크유저 기록 보기',
 3315+ 'grouppage-checkuser' => '{{ns:project}}:체크유저',
 3316+ 'checkuser-reason' => '이유:',
 3317+ 'checkuser-showlog' => '기록 보기',
 3318+ 'checkuser-log' => '체크유저 기록',
 3319+ 'checkuser-query' => '쿼리 최근 바뀜',
 3320+ 'checkuser-target' => '사용자 혹은 IP',
 3321+ 'checkuser-users' => '특정 IP를 사용한 사용자 확인',
 3322+ 'checkuser-edits' => '특정 IP에서의 편집을 확인',
 3323+ 'checkuser-ips' => 'IP 주소 확인',
 3324+ 'checkuser-account' => '계정 편집을 열람',
 3325+ 'checkuser-search' => '찾기',
 3326+ 'checkuser-period' => '기간:',
 3327+ 'checkuser-week-1' => '지난 1주일',
 3328+ 'checkuser-week-2' => '지난 2주일',
 3329+ 'checkuser-month' => '지난 30일',
 3330+ 'checkuser-all' => '모두',
 3331+ 'checkuser-cidr-label' => 'IP의 공통 범위와 영향을 받는 주소 목록 찾기',
 3332+ 'checkuser-cidr-res' => '공통 CIDR:',
 3333+ 'checkuser-empty' => '기록이 없습니다.',
 3334+ 'checkuser-nomatch' => '일치하는 결과가 없습니다.',
 3335+ 'checkuser-nomatch-edits' => '일치하는 결과가 없습니다.
 3336+마지막 편집은 $1 $2에 있었습니다.',
 3337+ 'checkuser-check' => '확인',
 3338+ 'checkuser-log-fail' => '기록을 남길 수 없습니다',
 3339+ 'checkuser-nolog' => '로그 파일이 없습니다.',
 3340+ 'checkuser-blocked' => '차단됨',
 3341+ 'checkuser-gblocked' => '전체 위키에서 차단됨',
 3342+ 'checkuser-locked' => '잠김',
 3343+ 'checkuser-wasblocked' => '이미 차단됨',
 3344+ 'checkuser-localonly' => '계정이 통합되지 않음',
 3345+ 'checkuser-massblock' => '선택한 사용자 차단',
 3346+ 'checkuser-massblock-text' => '선택된 계정은 무기한 (자동 차단 활성화, 계정 생성 금지됨) 차단될 것입니다.
 3347+IP 주소는 1주일 (IP만 막음, 계정 생성 금지됨) 차단될 것입니다.',
 3348+ 'checkuser-blocktag' => '사용자 문서를 다음 내용으로 바꾸기:',
 3349+ 'checkuser-blocktag-talk' => '토론 문서를 다음 내용으로 바꾸기:',
 3350+ 'checkuser-massblock-commit' => '선택한 사용자를 차단',
 3351+ 'checkuser-block-success' => "'''다음 $2명의 사용자 ($1) 가 성공적으로 차단되었습니다.'''",
 3352+ 'checkuser-block-failure' => "'''차단된 사용자가 없습니다.'''",
 3353+ 'checkuser-block-limit' => '너무 많은 사용자를 선택하였습니다.',
 3354+ 'checkuser-block-noreason' => '차단하는 이유를 반드시 입력해야 합니다.',
 3355+ 'checkuser-accounts' => '$1개의 새 계정',
 3356+ 'checkuser-too-many' => '결과가 너무 많습니다. CIDR 범위를 좁혀 주세요.
 3357+다음은 사용되고 있는 IP의 목록입니다 (최대 5000개, 주소별로 정렬됨):',
 3358+ 'checkuser-user-nonexistent' => '해당 사용자가 존재하지 않습니다.',
 3359+ 'checkuser-search-form' => '$1이 $2인 기록 찾기',
 3360+ 'checkuser-search-submit' => '찾기',
 3361+ 'checkuser-search-initiator' => '체크유저',
 3362+ 'checkuser-search-target' => '대상',
 3363+ 'checkuser-ipeditcount' => '모든 사용자로부터 $1개의 편집',
 3364+ 'checkuser-log-subpage' => '기록',
 3365+ 'checkuser-log-return' => '체크유저 양식으로 돌아가기',
 3366+ 'checkuser-limited' => "'''이 결과는 기술적인 이유로 일부분이 제외되었습니다.'''",
 3367+ 'checkuser-log-userips' => '$1 은(는) $2 이(가) 사용한 IP 주소를 열람했습니다.',
 3368+ 'checkuser-log-ipedits' => '$1 은(는) $2의 편집을 열람했습니다.',
 3369+ 'checkuser-log-ipusers' => '$1이(가) $2 IP 주소를 사용한 사용자를 확인하였습니다.',
 3370+ 'checkuser-log-ipedits-xff' => '$1이(가) XFF $2 IP 주소에서의 편집을 열람하였습니다.',
 3371+ 'checkuser-log-ipusers-xff' => '$1이(가) XFF $2 IP 주소를 사용한 사용자의 목록을 열람하였습니다.',
 3372+ 'checkuser-log-useredits' => '$1이(가) $2 사용자의 편집을 열람하였습니다.',
 3373+ 'checkuser-autocreate-action' => '계정이 자동으로 생성되었습니다.',
 3374+ 'checkuser-email-action' => '사용자 "$1"에게 이메일을 보냄',
 3375+ 'checkuser-reset-action' => '"$1"의 암호를 변경함',
 3376+);
 3377+
 3378+/** Krio (Krio)
 3379+ * @author Jose77
 3380+ */
 3381+$messages['kri'] = array(
 3382+ 'checkuser-search' => 'Luk foh am',
 3383+ 'checkuser-search-submit' => 'Luk foh am',
 3384+);
 3385+
 3386+/** Kinaray-a (Kinaray-a)
 3387+ * @author Jose77
 3388+ */
 3389+$messages['krj'] = array(
 3390+ 'checkuser-search' => 'Sagap',
 3391+ 'checkuser-search-submit' => 'Sagap',
 3392+);
 3393+
 3394+/** Ripoarisch (Ripoarisch)
 3395+ * @author Purodha
 3396+ */
 3397+$messages['ksh'] = array(
 3398+ 'checkuser-summary' => 'Met däm Werkzüch he kam_mer de IP Addresse fun Metmaacher fenge, di en de {{int:Recentchanges}} shtonn, un mer kann de Metmaacher-Date un Änderonge fenge för en IP-Adress.
 3399+
 3400+Metmaacher un ier Änderong för an IP-Address wäde övver <i lang="en">XFF-header</i> jezeich, wam_mer aan di IP-Address en „<code>/xff</code>“ aanhängk. Wobei wäde IPv4 (CIDR 16-32) un IPv6 (CIDR 96-128) ongershtöz. Leßte jon beß 5000 Änderonge, öm der ßööver nit zo doll ze beschäfteje.
 3401+
 3402+Donn op de Räjelle för dat Werrkzeuch obacht jevve, un et nit bruche, wann De nit darrefs!',
 3403+ 'checkuser-desc' => 'Metmaacher met däm Rääsch dozoh könne de IP-Adresse un annder Date fun de Metmaacher pröfe.',
 3404+ 'checkuser-logcase' => 'Dat Söke em Logboch deit zwesche jruße un kleine Bochshtave ongerscheide.',
 3405+ 'checkuser' => 'Metmaacher Pröfe',
 3406+ 'checkuser-contribs' => 'Metmaacher ier <code lang="en">IP-</code>Addresse pröfe',
 3407+ 'group-checkuser' => 'Metmaacher-Pröfer',
 3408+ 'group-checkuser-member' => 'Metmaacher-Pröfer',
 3409+ 'right-checkuser' => 'IP-Adresse un ier Bezösch zo de aanjemeldte Metmaacher övverpröfe, un Metmacher ier Date aanlore',
 3410+ 'right-checkuser-log' => 'En et Logboch lohre, fum Övverpröfe fun IP-Adresse un ier Bezösch zo de aanjemeldte Metmaacher, uew.',
 3411+ 'grouppage-checkuser' => '{{ns:project}}:Metmaacher-Pröfer',
 3412+ 'checkuser-reason' => 'Aanlass:',
 3413+ 'checkuser-showlog' => 'et Logboch aanzeije',
 3414+ 'checkuser-log' => 'Logboch fum Metmaacher-Pröfe',
 3415+ 'checkuser-query' => 'En de {{LCFIRST:{{int:recentchanges}}}} frore',
 3416+ 'checkuser-target' => 'Metmaacher-Name udder IP-Address',
 3417+ 'checkuser-users' => 'Metmaacher holle!',
 3418+ 'checkuser-edits' => 'Änderonge fun dä IP-Address holle!',
 3419+ 'checkuser-ips' => 'IP-Addresse holle!',
 3420+ 'checkuser-account' => 'Holl enem Metmaacher sing Änderunge',
 3421+ 'checkuser-search' => 'Sööke',
 3422+ 'checkuser-period' => 'Dor:',
 3423+ 'checkuser-week-1' => 'letz Woch',
 3424+ 'checkuser-week-2' => 'de letzte zwei Woche',
 3425+ 'checkuser-month' => 'de letz drißich Daach',
 3426+ 'checkuser-all' => 'all',
 3427+ 'checkuser-cidr-label' => 'Fengk der jemeinsame Berett, un de betroffe Addresse, för en Leß vun IP-Addresse',
 3428+ 'checkuser-cidr-res' => 'Dä jemeinsame <i lang="en">CIDR</i>:',
 3429+ 'checkuser-empty' => 'En däm Logboch shteit nix dren.',
 3430+ 'checkuser-nomatch' => 'Nix zopaß jefonge.',
 3431+ 'checkuser-nomatch-edits' => 'Keine Treffer jefonge. De letzte Änderung wohr aam $1 öm $2 Uhr.',
 3432+ 'checkuser-check' => 'Pröfe!',
 3433+ 'checkuser-log-fail' => 'Kann nix em Logboch dobei schriive',
 3434+ 'checkuser-nolog' => 'Kein Logboch jefonge.',
 3435+ 'checkuser-blocked' => 'jesperrt',
 3436+ 'checkuser-gblocked' => 'En alle Wikis jesperrt',
 3437+ 'checkuser-locked' => 'Zohjemaat un afjeschloße',
 3438+ 'checkuser-wasblocked' => 'Fröjer jesperrt',
 3439+ 'checkuser-localonly' => 'Nit zusamme jelaat',
 3440+ 'checkuser-massblock' => 'Don de usjesoohte Metmaacher sperre',
 3441+ 'checkuser-massblock-text' => 'De ußjesoohte Metmaacher wäde för iewich jesperrt, met automattesch
 3442+wigger sperre ennjeschalldt un et Metmaacher-Neu-Aanlääje es verbodde.
 3443+De namelose Metmaacher un ier IP-Adresse wäde för en Woch jesperrt — enlogge fun do es ävver wigger müjjelesch — un et Metmaacher-Neu-Aanlääje
 3444+es doh och verbodde.',
 3445+ 'checkuser-blocktag' => 'Der Metmaacher ier Sigge iere Ennhalt ußtuusche jäje:',
 3446+ 'checkuser-blocktag-talk' => 'Donn de Klaafsigge övverschriive met:',
 3447+ 'checkuser-massblock-commit' => 'Ußjesoohte Metmaacher sperre',
 3448+ 'checkuser-block-success' => "'''{{PLURAL:$2|Dä|De|Keine}} Metmaacher $1 {{PLURAL:$2|es|sin|is}} jetz jesperrt.'''",
 3449+ 'checkuser-block-failure' => "'''Keine Metmaacher jesperrt.'''",
 3450+ 'checkuser-block-limit' => 'Zoo fill Metmaacher ußjesoht.',
 3451+ 'checkuser-block-noreason' => 'Do moß ävver ene Jrund för et Sperre aanjevve.',
 3452+ 'checkuser-accounts' => '{{PLURAL:$1|Eine|$1|Keine}} neue Metmaacher',
 3453+ 'checkuser-too-many' => 'Zoo fill jefonge, beß esu joot un maach dä CIDR kleijner.
 3454+Hee sin de eetßte 5000 IP-Addresse, zoteeet:',
 3455+ 'checkuser-user-nonexistent' => 'Dä Metmaacher jidd_et ja nit.',
 3456+ 'checkuser-search-form' => 'Sök noh Enndräsch em Logboch, woh $1 $2 es.',
 3457+ 'checkuser-search-submit' => 'Söök!',
 3458+ 'checkuser-search-initiator' => 'Metmaacher-Pröfer',
 3459+ 'checkuser-search-target' => 'Wat eß jefrooch? (Metmaacher-Name udder IP-Address)',
 3460+ 'checkuser-ipeditcount' => '~$1 Änderonge fun alle Metmaacher',
 3461+ 'checkuser-log-subpage' => 'Logboch',
 3462+ 'checkuser-log-return' => 'Zerök zor Sigg „Metmaacher Pröfe“',
 3463+ 'checkuser-limited' => "'''De Leß es affjeschnedde, öm nit der Server unnüdesch ze belaste.'''",
 3464+ 'checkuser-log-userips' => '$1 hät IP-Adresse jehollt för $2',
 3465+ 'checkuser-log-ipedits' => '$1 hät de Änderonge jehollt för $2',
 3466+ 'checkuser-log-ipusers' => '$1 hät de Metmaacher jehollt för $2',
 3467+ 'checkuser-log-ipedits-xff' => '$1 hät de Änderonge jehollt för XFF $2',
 3468+ 'checkuser-log-ipusers-xff' => '$1 hät de Metmaacher jehollt för XFF $2',
 3469+ 'checkuser-log-useredits' => 'dä Metmmacher „$1“ hät dem Metmaacher „$2“ sing Änderunge aanjeloort',
 3470+ 'checkuser-autocreate-action' => 'wohd automattesch aanjelaat',
 3471+ 'checkuser-email-action' => 'en e-mail aan „$1“ jescheck',
 3472+ 'checkuser-reset-action' => 'Däm Metmaacher „$1“ sing Paßwoot automattesch neu setze',
 3473+);
 3474+
 3475+/** Kurdish (Latin) (Kurdî / كوردی (Latin))
 3476+ * @author Bangin
 3477+ */
 3478+$messages['ku-latn'] = array(
 3479+ 'checkuser-search' => 'Lêbigere',
 3480+ 'checkuser-search-submit' => 'Lêbigere',
 3481+);
 3482+
 3483+/** Latin (Latina)
 3484+ * @author SPQRobin
 3485+ * @author UV
 3486+ */
 3487+$messages['la'] = array(
 3488+ 'checkuser-reason' => 'Causa:',
 3489+ 'checkuser-search' => 'Quaerere',
 3490+);
 3491+
 3492+/** Luxembourgish (Lëtzebuergesch)
 3493+ * @author Robby
 3494+ */
 3495+$messages['lb'] = array(
 3496+ 'checkuser-desc' => "Gëtt Benotzer mat den néidege Rechter d'Méiglechkeet d'IP-Adressen esou wéi aner Informatiounen iwwert d'Benotzer z'iwwerpréifen",
 3497+ 'checkuser-logcase' => "D'Sich am Logbuch mecht en Ënnerscheed tëschent groussen a klenge Buchstawen.",
 3498+ 'checkuser' => 'Benotzer-Check',
 3499+ 'checkuser-contribs' => 'De Benotzer hir Ip-Adrssen iwwerpréifen',
 3500+ 'group-checkuser' => 'Benotzer Kontrolleren',
 3501+ 'group-checkuser-member' => 'Benotzer Kontroller',
 3502+ 'right-checkuser' => 'Iwwerpréif de Benotzer hir IP-Adressen an aner Informatiounen',
 3503+ 'right-checkuser-log' => "D'Lëscht vun den ''checkuser''-Ufroe weisen",
 3504+ 'grouppage-checkuser' => '{{ns:project}}:Benotzer-Kontroller',
 3505+ 'checkuser-reason' => 'Grond:',
 3506+ 'checkuser-showlog' => 'Logbuch weisen',
 3507+ 'checkuser-log' => 'Lëscht vun de Benotzerkontrollen',
 3508+ 'checkuser-query' => 'Rezent Ännerungen offroen',
 3509+ 'checkuser-target' => 'Benotzer oder IP-Adress',
 3510+ 'checkuser-users' => 'Benotzer kréien',
 3511+ 'checkuser-edits' => "Weis d'Ännerunge vun der IP-Adress",
 3512+ 'checkuser-ips' => 'IP-Adresse kréien/uweisen',
 3513+ 'checkuser-account' => "d'Ännerunge vum Benotzerkont kréien",
 3514+ 'checkuser-search' => 'Sichen',
 3515+ 'checkuser-period' => 'Zäitraum:',
 3516+ 'checkuser-week-1' => 'lescht Woch',
 3517+ 'checkuser-week-2' => 'lescht 2 Wochen',
 3518+ 'checkuser-month' => 'lescht 30 Deeg',
 3519+ 'checkuser-all' => 'all',
 3520+ 'checkuser-cidr-label' => 'Gemeinsamen Adressberäich a betraffen Adressen fir eng Lëscht vun IP-Adresse fannen',
 3521+ 'checkuser-cidr-res' => 'Gemeinsam CIDR:',
 3522+ 'checkuser-empty' => 'Dës Lëscht ass eidel.',
 3523+ 'checkuser-nomatch' => 'Et goufe keng Iwwereneestëmmunge fonnt.',
 3524+ 'checkuser-nomatch-edits' => 'Et gouf näischt esou fonnt.
 3525+Déi lescht Ännerung war de() $1 ëm $2.',
 3526+ 'checkuser-check' => 'Kontrolléieren',
 3527+ 'checkuser-log-fail' => "D'Aschreiwung an d'Logbuch konnt net gemaach ginn",
 3528+ 'checkuser-nolog' => "D'Logbuch gouf net fonnt.",
 3529+ 'checkuser-blocked' => 'Gespaart',
 3530+ 'checkuser-gblocked' => 'global gespaart',
 3531+ 'checkuser-locked' => 'Gespaart',
 3532+ 'checkuser-wasblocked' => 'Virdru gespaart',
 3533+ 'checkuser-localonly' => 'Net zesummegeluecht',
 3534+ 'checkuser-massblock' => 'Ausgewielte Benotzer spären',
 3535+ 'checkuser-massblock-text' => "Déi erausgesichte Benotzerkonte gi fir eng onbestëmmten Zäit gespaart, Autoblock ass ageschalt an d'Opmaache vu Benotzerkonten ass ausgeschalt., IP-Adresse gifir1 Woch gespaart fir IP Benotzer an d'Opmaache vu Benotzerkonten ass ausgeschalt.",
 3536+ 'checkuser-blocktag' => 'Benotzersäiten duerch dëst ersetzen:',
 3537+ 'checkuser-blocktag-talk' => 'Diskussiounssäiten ersetzen duerch:',
 3538+ 'checkuser-massblock-commit' => 'Ausgewielte Benotzer spären',
 3539+ 'checkuser-block-success' => "'''{{PLURAL:$2|De Benotzer|D'Benotzer}} $1 {{PLURAL:$2|ass|sinn}} elo gespaart.'''",
 3540+ 'checkuser-block-failure' => "'''Et si keng Benotzer gespaart.'''",
 3541+ 'checkuser-block-limit' => 'Zevill Benotzer ugewielt.',
 3542+ 'checkuser-block-noreason' => "Dir musst e Grond fir d'Spären uginn.",
 3543+ 'checkuser-accounts' => '$1 {{PLURAL:$1|neie Benotzerkont|nei Benotzerkonten}}',
 3544+ 'checkuser-too-many' => 'Zevill Resultater, gitt w.e.g. méi e klenge Beräich vun Ip-adresen un.
 3545+Hei sinn déi benotzten IP-Adressen (max 5000, sortéiert no der Adress):',
 3546+ 'checkuser-user-nonexistent' => 'De gesichte Benotzer gëtt et net.',
 3547+ 'checkuser-search-form' => 'An de Lëschten fannen, wou den $1 den $2 ass',
 3548+ 'checkuser-search-submit' => 'Sichen',
 3549+ 'checkuser-search-initiator' => 'Initiator',
 3550+ 'checkuser-search-target' => 'Zil',
 3551+ 'checkuser-ipeditcount' => '~$1 vun alle Benotzer',
 3552+ 'checkuser-log-subpage' => 'Lëscht',
 3553+ 'checkuser-log-return' => 'Zréck op den Haaptformulaire vun der Benotzerkontroll',
 3554+ 'checkuser-limited' => "'''Dës Lëscht gouf aus Grënn vun der performance vun de Servere gekierzt.'''",
 3555+ 'checkuser-log-userips' => '$1 krut IPen fir $2',
 3556+ 'checkuser-log-ipedits' => '$1 huet Ännerunge kritt fir $2',
 3557+ 'checkuser-log-ipusers' => '$1 huet Benotzer kritt fir $2',
 3558+ 'checkuser-log-ipedits-xff' => '$1 krut ännerunge fir XFF $2',
 3559+ 'checkuser-log-ipusers-xff' => "$1 krut d'Benotzer fir XFF $2",
 3560+ 'checkuser-log-useredits' => "$1 huet d'Ännerunge fir $2 kritt",
 3561+ 'checkuser-autocreate-action' => 'gouf automatesch ugeluecht',
 3562+ 'checkuser-email-action' => 'dem Benotzer "$1" eng E-Mail geschéckt',
 3563+ 'checkuser-reset-action' => 'huet d\'Passwuert fir de Benotzer "$1" zréckgesat',
 3564+);
 3565+
 3566+/** Lingua Franca Nova (Lingua Franca Nova)
 3567+ * @author Malafaya
 3568+ */
 3569+$messages['lfn'] = array(
 3570+ 'checkuser-search' => 'Xerca',
 3571+ 'checkuser-search-submit' => 'Xerca',
 3572+);
 3573+
 3574+/** Limburgish (Limburgs)
 3575+ * @author Matthias
 3576+ * @author Ooswesthoesbes
 3577+ */
 3578+$messages['li'] = array(
 3579+ 'checkuser-summary' => "Dit hölpmiddel bekiek recènte verangeringe óm IP-adresse die 'ne gebroeker haet gebroek te achterhaole of toeantj de bewèrkings- en gebroekersgegaeves veur 'n IP-adres.
 3580+Gebroekers en bewèrkinge van 'n IP-adres van 'ne cliënt kinne achterhaoldj waere via XFF-headers door \"/xff\" achter 't IP-adres toe te voege. IPv4 (CIDR 16-32) en IPv6 (CIDR 96-128) waere óngersteundj.
 3581+Óm prestatiereej waere neet mieë es 5.000 bewèrkinge getoeantj. Gebroek dit hölpmiddel volges 't vasgesteldje beleid.",
 3582+ 'checkuser-desc' => 'Läöt geautproseerde gebroekers IP-adresse en angere informatie van gebroekers achterhaole',
 3583+ 'checkuser-logcase' => "Zeuke in 't logbook is huidlèttergeveulig.",
 3584+ 'checkuser' => 'Konterleer gebroeker',
 3585+ 'group-checkuser' => 'Gebroekerkonterleerders',
 3586+ 'group-checkuser-member' => 'Gebroekerkonterleerder',
 3587+ 'right-checkuser' => 'IP-adrèsser en anger gegaeves van gebroekers naokieke',
 3588+ 'right-checkuser-log' => "Biek 't checkuserlog",
 3589+ 'grouppage-checkuser' => '{{ns:project}}:Gebroekerkonterleerder',
 3590+ 'checkuser-reason' => 'Reej:',
 3591+ 'checkuser-showlog' => 'Toean logbook',
 3592+ 'checkuser-log' => 'Logbook KonterleerGebroeker',
 3593+ 'checkuser-query' => 'Bevraog recènte verangeringe',
 3594+ 'checkuser-target' => 'Gebroeker of IP-adres',
 3595+ 'checkuser-users' => 'Vraog gebroekers op',
 3596+ 'checkuser-edits' => 'Vraog bewèrkinge van IP-adres op',
 3597+ 'checkuser-ips' => 'Vraof IP-adresse op',
 3598+ 'checkuser-account' => 'Haol bewerkinge gebroeker op',
 3599+ 'checkuser-search' => 'Zeuk',
 3600+ 'checkuser-period' => 'Doer:',
 3601+ 'checkuser-week-1' => 'leste waek',
 3602+ 'checkuser-week-2' => 'leste twee waek',
 3603+ 'checkuser-month' => 'leste 30 daag',
 3604+ 'checkuser-all' => 'als',
 3605+ 'checkuser-cidr-label' => "Zeuk gemeinsjappelikke reeks en getróffe adresse oet 'n IP-adresselies.",
 3606+ 'checkuser-cidr-res' => 'Gemeine CIDR:',
 3607+ 'checkuser-empty' => "'t Logbook bevat gein regels.",
 3608+ 'checkuser-nomatch' => 'Gein euvereinkómste gevónje.',
 3609+ 'checkuser-nomatch-edits' => 'Nieks gevónje.
 3610+De lèste bewèrking woor óp $1 óm $2.',
 3611+ 'checkuser-check' => 'Conterleer',
 3612+ 'checkuser-log-fail' => 'Logbookregel toevoege neet meugelik',
 3613+ 'checkuser-nolog' => 'Gein logbook gevónje.',
 3614+ 'checkuser-blocked' => 'Geblokkeerdj',
 3615+ 'checkuser-gblocked' => 'Globaal vas',
 3616+ 'checkuser-locked' => 'Aafgeslaote',
 3617+ 'checkuser-wasblocked' => 'Ieëder vas',
 3618+ 'checkuser-localonly' => 'Neet samegevoog',
 3619+ 'checkuser-massblock' => 'Geselekteerde gebroekers blokkere',
 3620+ 'checkuser-massblock-text' => "De geselkteerde gebroekers waere tiedelik geblok mit IP-blokkaasj èn 't neet-aanmake ven gebroekers aan.
 3621+IP's waere ein waek geblok veur anoniem gebroekers, mit 't aanmake ven nuuj gebroekers oet.",
 3622+ 'checkuser-blocktag' => 'Vervang gebroekerspaaazjes door:',
 3623+ 'checkuser-blocktag-talk' => 'Vervang euverlèkpaazjes door:',
 3624+ 'checkuser-massblock-commit' => 'Geselekteerde gebroekers blokke',
 3625+ 'checkuser-block-success' => "'''De {{PLURAL:$2|gebroeker|gebroekers}} $1 {{PLURAL:$1|is|zeen}} geblók.'''",
 3626+ 'checkuser-block-failure' => "'''Gein gebroekers geblók.'''",
 3627+ 'checkuser-block-limit' => 'Te väöl gebroekers gevas.',
 3628+ 'checkuser-block-noreason' => "De mós 'ne rieë ópgaeve veure blokkaazjes.",
 3629+ 'checkuser-accounts' => '$1 {{PLURAL:$1|nuuje gebroeker|nuuj gebroekers}}',
 3630+ 'checkuser-too-many' => 'Te väöl rezultaote. Maak de IP-reiks kleinder:',
 3631+ 'checkuser-user-nonexistent' => 'De opgegaeve gebroeker besteit neet.',
 3632+ 'checkuser-search-form' => 'Logbookregels zeuke wo de $1 $2 is',
 3633+ 'checkuser-search-submit' => 'Zeuk',
 3634+ 'checkuser-search-initiator' => 'aanvraoger',
 3635+ 'checkuser-search-target' => 'óngerwèrp',
 3636+ 'checkuser-ipeditcount' => '~$1 van alle gebroekers',
 3637+ 'checkuser-log-subpage' => 'Logbook',
 3638+ 'checkuser-log-return' => "Nao 't huidformeleer van KonterleerGebroeker trökgaon",
 3639+ 'checkuser-limited' => "'''Dees rizzeltaote zeen neet gans óm perstaasjereeje.'''",
 3640+ 'checkuser-log-userips' => '$1 haet IP-adresse veur $2',
 3641+ 'checkuser-log-ipedits' => '$1 haet bewèrkinge veur $2',
 3642+ 'checkuser-log-ipusers' => '$1 haet gebroekers veur $2',
 3643+ 'checkuser-log-ipedits-xff' => '$1 haet bewèrkinge veur XFF $2',
 3644+ 'checkuser-log-ipusers-xff' => '$1 haet gebrokers veur XFF $2',
 3645+ 'checkuser-log-useredits' => '$1 haet bewèrkinger veur $2',
 3646+ 'checkuser-autocreate-action' => 'is autematisch aangemaak',
 3647+ 'checkuser-email-action' => 'haet get pós gestuurdj aan "$1"',
 3648+ 'checkuser-reset-action' => 'vóng wachwaord veur "$1"',
 3649+);
 3650+
 3651+/** Lao (ລາວ) */
 3652+$messages['lo'] = array(
 3653+ 'checkuser' => 'ກວດຜູ້ໃຊ້',
 3654+ 'checkuser-reason' => 'ເຫດຜົນ',
 3655+ 'checkuser-showlog' => 'ສະແດງບັນທຶກ',
 3656+ 'checkuser-log' => 'ບັນທຶກການກວດຜູ້ໃຊ້',
 3657+ 'checkuser-target' => 'ຜູ້ໃຊ້ ຫຼື IP',
 3658+ 'checkuser-edits' => 'ເອົາ ການດັດແກ້ ຈາກ ທີ່ຢູ່ IP',
 3659+ 'checkuser-ips' => 'ເອົາ ທີ່ຢູ່ IP',
 3660+ 'checkuser-search' => 'ຊອກຫາ',
 3661+ 'checkuser-empty' => 'ບໍ່ມີເນື້ອໃນຖືກບັນທຶກ',
 3662+ 'checkuser-nomatch' => 'ບໍ່ພົບສິ່ງທີ່ຊອກຫາ',
 3663+ 'checkuser-check' => 'ກວດ',
 3664+);
 3665+
 3666+/** Lithuanian (Lietuvių)
 3667+ * @author Homo
 3668+ * @author Matasg
 3669+ */
 3670+$messages['lt'] = array(
 3671+ 'right-checkuser' => 'Tikrinti naudotojo IP adresus ir kitą informaciją',
 3672+ 'checkuser-reason' => 'Priežastis',
 3673+ 'checkuser-showlog' => 'Rodyti sąrašą',
 3674+ 'checkuser-target' => 'Naudotojas arba IP',
 3675+ 'checkuser-users' => 'Gauti naudotojus',
 3676+ 'checkuser-edits' => 'Gauti redagavimus iš IP',
 3677+ 'checkuser-ips' => 'Gauti IP',
 3678+ 'checkuser-search' => 'Ieškoti',
 3679+ 'checkuser-check' => 'Tikrinti',
 3680+ 'checkuser-blocked' => 'Užblokuotas',
 3681+ 'checkuser-massblock' => 'Blokuoti pasirinktus naudotojus',
 3682+ 'checkuser-massblock-commit' => 'Blokuoti pasirinktus naudotojus',
 3683+ 'checkuser-block-limit' => 'Pasirinkta per daug naudotojų.',
 3684+ 'checkuser-block-noreason' => 'Jūs turite nurodyti blokavimų priežastį.',
 3685+ 'checkuser-accounts' => '$1 nauja {{PLURAL:$1|paskyra|paskyros}}',
 3686+ 'checkuser-too-many' => 'Per daug rezultatų, susiaurinkite CIDR.
 3687+Čia pateikiami naudojami IP adresai (daugiausiai 5000, suskirstyti pagal adresus):',
 3688+ 'checkuser-user-nonexistent' => 'Nurodytas naudotojas neegzistuoja.',
 3689+ 'checkuser-search-submit' => 'Ieškoti',
 3690+ 'checkuser-log-subpage' => 'Sąrašas',
 3691+ 'checkuser-autocreate-action' => 'buvo automatiškai sukurtas',
 3692+ 'checkuser-reset-action' => 'atstatyti slaptažodį naudotojui "$1"',
 3693+);
 3694+
 3695+/** Latvian (Latviešu)
 3696+ * @author Xil
 3697+ * @author Yyy
 3698+ */
 3699+$messages['lv'] = array(
 3700+ 'checkuser-desc' => 'Atļauj lietotājiem ar attiecīgām pilnvarām pārbaudīt lietotāja IP adresi un citu informāciju.',
 3701+ 'checkuser' => 'Pārbaudīt lietotāju',
 3702+ 'group-checkuser' => 'Pārbaudīt lietotājus',
 3703+ 'checkuser-reason' => 'Iemesls:',
 3704+ 'checkuser-target' => 'Lietotājs vai IP',
 3705+ 'checkuser-search' => 'Meklēt',
 3706+ 'checkuser-check' => 'Pārbaudīt',
 3707+);
 3708+
 3709+/** Eastern Mari (Олык Марий)
 3710+ * @author Сай
 3711+ */
 3712+$messages['mhr'] = array(
 3713+ 'checkuser-reason' => 'Амал:',
 3714+ 'checkuser-search' => 'Кычал',
 3715+ 'checkuser-search-submit' => 'Кычал',
 3716+);
 3717+
 3718+/** Macedonian (Македонски)
 3719+ * @author Misos
 3720+ */
 3721+$messages['mk'] = array(
 3722+ 'checkuser' => 'Провери корисник',
 3723+);
 3724+
 3725+/** Malayalam (മലയാളം)
 3726+ * @author Shijualex
 3727+ */
 3728+$messages['ml'] = array(
 3729+ 'checkuser-desc' => 'ഉപയോക്താക്കള്‍ ഉപയോഗിച്ച ഐപി വിലാസവും മറ്റുവിവരങ്ങളും പരിശോധിക്കുവാനുള്ള അവകാശം കൊടുക്കാന്‍ പ്രാപ്തമാക്കുന്നു',
 3730+ 'checkuser-logcase' => 'പ്രവര്‍ത്തന രേഖകള്‍ക്കു വേണ്ടിയുള്ള തിരച്ചില്‍ കേസ് സെന്‍സിറ്റീവ് ആണ്‌.',
 3731+ 'checkuser' => 'ചെക്ക് യൂസര്‍',
 3732+ 'group-checkuser' => 'ചെക്ക് യൂസര്‍മാര്‍',
 3733+ 'group-checkuser-member' => 'ചെക്ക് യൂസര്‍',
 3734+ 'right-checkuser' => 'ചെക്ക് യൂസറിന്റെ ഐപി വിലാസവും മറ്റു വിവരങ്ങളും',
 3735+ 'grouppage-checkuser' => '{{ns:project}}:ചെക്ക് യൂസര്‍',
 3736+ 'checkuser-reason' => 'കാരണം',
 3737+ 'checkuser-showlog' => 'പ്രവര്‍ത്തനരേഖ കാട്ടുക',
 3738+ 'checkuser-log' => 'ചെക്ക് യൂസര്‍ പ്രവര്‍ത്തനരേഖ',
 3739+ 'checkuser-query' => 'പുതിയ മാറ്റങ്ങള്‍',
 3740+ 'checkuser-target' => 'ഉപയോക്താവ് അല്ലെങ്കില്‍ ഐപി',
 3741+ 'checkuser-users' => 'ഉപയോക്താക്കളെ കാട്ടുക',
 3742+ 'checkuser-edits' => 'ഐപിയില്‍ നിന്നുള്ള തിരുത്തലുകള്‍ കാട്ടുക',
 3743+ 'checkuser-ips' => 'ഐപികളെ കാട്ടുക',
 3744+ 'checkuser-search' => 'തിരയൂ',
 3745+ 'checkuser-empty' => 'പ്രവര്‍ത്തനരേഖയില്‍ ഇനങ്ങള്‍ ഒന്നുമില്ല',
 3746+ 'checkuser-nomatch' => 'ചേര്‍ച്ചയുള്ളതൊന്നും കണ്ടില്ല',
 3747+ 'checkuser-check' => 'പരിശോധിക്കുക',
 3748+ 'checkuser-log-fail' => 'പ്രവര്‍ത്തനരേഖയില്‍ ഇനം ചേര്‍ക്കുന്നതിനു കഴിഞ്ഞില്ല',
 3749+ 'checkuser-nolog' => 'പ്രവര്‍ത്തനരേഖ പ്രമാണം കണ്ടില്ല.',
 3750+ 'checkuser-blocked' => 'തടയപ്പെട്ടിരിക്കുന്നു',
 3751+ 'checkuser-too-many' => 'വളരെയധികം ഫലങ്ങള്‍. CIDR ചുരുക്കുക.
 3752+ഉപയോഗിച്ച IPകള്‍ താഴെ പ്രദര്‍ശിപ്പിച്ചിരിക്കുന്നു (പരമാവധി 5000, വിലാസം അനുസരിച്ച് ക്രമീകരിച്ചത്):',
 3753+ 'checkuser-user-nonexistent' => 'ഇങ്ങനൊരു ഉപയോക്താവ് വിക്കിയില്‍ നിലവിലില്ല.',
 3754+ 'checkuser-search-form' => '$1, $2 ആയ പ്രവര്‍ത്തനരേഖാ ഇനങ്ങള്‍ കണ്ടെത്തുന്നു',
 3755+ 'checkuser-search-submit' => 'തിരയൂ',
 3756+ 'checkuser-search-initiator' => 'മുന്‍‌കൈ എടുക്കുന്ന ആള്‍',
 3757+ 'checkuser-search-target' => 'ലക്ഷ്യം',
 3758+ 'checkuser-ipeditcount' => '~$1എല്ലാ ഉപയോക്താക്കളില്‍ നിന്നും',
 3759+ 'checkuser-log-subpage' => 'പ്രവര്‍ത്തനരേഖ',
 3760+ 'checkuser-log-return' => 'ചെക്ക് യൂസറിന്റെ പ്രധാന ഫോമിലേക്ക് തിരിച്ചു പോവുക',
 3761+ 'checkuser-log-userips' => '$1നു $2ല്‍ ഐപികള്‍ ഉണ്ട്',
 3762+ 'checkuser-log-ipedits' => '$1നു $2ല്‍ തിരുത്തലുകള്‍ ഉണ്ട്',
 3763+ 'checkuser-log-ipusers' => '$1നു $2ല്‍ ഉപയോക്താക്കള്‍ ഉണ്ട്',
 3764+ 'checkuser-log-ipedits-xff' => '$1നു XFF $2ല്‍ തിരുത്തലുകള്‍ ഉണ്ട്',
 3765+ 'checkuser-log-ipusers-xff' => '$1നു XFF $2ല്‍ ഉപയോക്താക്കള്‍ ഉണ്ട്',
 3766+);
 3767+
 3768+/** Marathi (मराठी)
 3769+ * @author Kaustubh
 3770+ * @author Mahitgar
 3771+ */
 3772+$messages['mr'] = array(
 3773+ 'checkuser-summary' => 'हे उपकरण अलीकडील बदलांमधून एखाद्या सदस्याने वापरलेले अंकपत्ते किंवा एखाद्या अंकपत्त्याची संपादने/सदस्य दाखविते.
 3774+क्लायंट अंकपत्त्यावरील सदस्य अथवा संपादने पाहण्यासाठी अंकपत्त्यानंतर "/xff" द्यावे लागेल.
 3775+IPv4 (CIDR 16-32) आणि IPv6 (CIDR 96-128) वापरता येऊ शकेल.
 3776+एका वेळी ५००० पेक्षा जास्त संपादने दाखविली जाणार नाहीत. हे उपकरण पॉलिसीच्या नियमांना धरून वापरावे.',
 3777+ 'checkuser-desc' => 'सदस्याला इतर सदस्यांचे आंतरजाल अंकपत्ते (आयपी) तपासण्याची तसेच इतर माहिती पाहण्याची परवानगी देतो.',
 3778+ 'checkuser-logcase' => 'लॉगमधील शोध हा लिपीशी संबंधित (case-sensitive) आहे.',
 3779+ 'checkuser' => 'सदस्य तपासा',
 3780+ 'group-checkuser' => 'सदस्य तपासा',
 3781+ 'group-checkuser-member' => 'सदस्य तपासा',
 3782+ 'right-checkuser' => 'सदस्याचा आयपी अंकपत्ता व इतर माहिती तपासा',
 3783+ 'grouppage-checkuser' => '{{ns:project}}:सदस्य तपासा',
 3784+ 'checkuser-reason' => 'कारण',
 3785+ 'checkuser-showlog' => 'लॉग दाखवा',
 3786+ 'checkuser-log' => 'Checkuse लॉग',
 3787+ 'checkuser-query' => 'अलीकडील बदल पृच्छा',
 3788+ 'checkuser-target' => 'सदस्य किंवा अंकपत्ता',
 3789+ 'checkuser-users' => 'सदस्य शोधा',
 3790+ 'checkuser-edits' => 'अंकपत्त्याची संपादने शोधा',
 3791+ 'checkuser-ips' => 'अंकपत्ते शोधा',
 3792+ 'checkuser-search' => 'शोधा',
 3793+ 'checkuser-empty' => 'लॉग मध्ये एकही नोंद नाही',
 3794+ 'checkuser-nomatch' => 'नोंदी सापडल्या नाहीत',
 3795+ 'checkuser-check' => 'पडताळा',
 3796+ 'checkuser-log-fail' => 'लॉगमध्ये नोंद वाढविता आलेली नाही.',
 3797+ 'checkuser-nolog' => 'लॉग संचिका सापडलेली नाही.',
 3798+ 'checkuser-blocked' => 'ब्लॉक केलेले आहे',
 3799+ 'checkuser-too-many' => 'खूप निकाल आलेले आहेत, कृपया शोधशब्दांमध्ये योग्य बदल करा. खाली वापरलेल्या अंकपत्त्यांची यादी आहे (जास्तीत जास्त ५०००, अनुक्रमे):',
 3800+ 'checkuser-user-nonexistent' => 'हे सदस्यनाम अस्तित्त्वात नाही.',
 3801+ 'checkuser-search-form' => 'अशा नोंदी शोधा जिथे $1 हा $2 आहे.',
 3802+ 'checkuser-search-submit' => 'शोधा',
 3803+ 'checkuser-search-initiator' => 'चालक (चालना देणारा)',
 3804+ 'checkuser-search-target' => 'लक्ष्य',
 3805+ 'checkuser-ipeditcount' => '~$1 सर्व सदस्यांकडून',
 3806+ 'checkuser-log-subpage' => 'नोंदी',
 3807+ 'checkuser-log-return' => 'CheckUser मुख्य अर्जाकडे परत जा',
 3808+ 'checkuser-log-userips' => '$1 कडे $2 साठीचे अंकपत्ते आहेत',
 3809+ 'checkuser-log-ipedits' => '$1 कडे $2 साठीची संपादने आहेत',
 3810+ 'checkuser-log-ipusers' => '$1 कडे $2 साठीचे सदस्य आहेत',
 3811+ 'checkuser-log-ipedits-xff' => '$1 कडे XFF $2 साठीची संपादने आहेत',
 3812+ 'checkuser-log-ipusers-xff' => '$1 कडे XFF $2 साठीचे सदस्य आहेत',
 3813+);
 3814+
 3815+/** Malay (Bahasa Melayu)
 3816+ * @author Aviator
 3817+ * @author Izzudin
 3818+ * @author Kurniasan
 3819+ */
 3820+$messages['ms'] = array(
 3821+ 'checkuser-summary' => 'Alat ini mengimbas senarai perubahan terkini untuk mendapatkan senarai IP yang digunakan oleh seseorang pengguna atau memaparkan data sunting/pengguna bagi sesebuah IP. Pengguna dan suntingan oleh sesebuah IP boleh didapatkan melalui pengatas XFF dengan menambah \\"/xff\\" selepas IP tersebut. Kedua-dua format IPv4 (CIDR 16-32) dan IPv6 (CIDR 96-128) disokong. Atas sebab-sebab prestasi, pulangan dihadkan kepada 5000 buah suntingan sahaja. Sila patuhi dasar yang telah ditetapkan.',
 3822+ 'checkuser-desc' => 'Melantik pengguna dengan keizinan untuk membongkar alamat IP pengguna tertentu berserta maklumat-maklumat sulit lain',
 3823+ 'checkuser-logcase' => 'Gelintar log ini mengambil kisah atur huruf.',
 3824+ 'checkuser' => 'Periksa pengguna',
 3825+ 'group-checkuser' => 'Pemeriksa',
 3826+ 'group-checkuser-member' => 'Pemeriksa',
 3827+ 'right-checkuser' => 'Memeriksa alamat IP dan maklumat-maklumat lain bagi pengguna',
 3828+ 'right-checkuser-log' => 'Melihat log pemeriksa',
 3829+ 'grouppage-checkuser' => '{{ns:project}}:Pemeriksa',
 3830+ 'checkuser-reason' => 'Sebab:',
 3831+ 'checkuser-showlog' => 'Tunjuk log',
 3832+ 'checkuser-log' => 'Log pemeriksa',
 3833+ 'checkuser-query' => 'Imbas perubahan terkini',
 3834+ 'checkuser-target' => 'Pengguna atau IP',
 3835+ 'checkuser-users' => 'Dapatkan senarai pengguna',
 3836+ 'checkuser-edits' => 'Dapatkan senarai suntingan daripada IP',
 3837+ 'checkuser-ips' => 'Dapatkan senarai IP',
 3838+ 'checkuser-account' => 'Dapatkan suntingan akaun',
 3839+ 'checkuser-search' => 'Cari',
 3840+ 'checkuser-period' => 'Tempoh:',
 3841+ 'checkuser-week-1' => 'minggu lepas',
 3842+ 'checkuser-week-2' => 'dua minggu lepas',
 3843+ 'checkuser-month' => '30 hari lepas',
 3844+ 'checkuser-all' => 'semua',
 3845+ 'checkuser-cidr-label' => 'Cari julat biasa dan alamat-alamat terlibat untuk sebuah senarai IP',
 3846+ 'checkuser-cidr-res' => 'CIDR biasa:',
 3847+ 'checkuser-empty' => 'Log ini kosong.',
 3848+ 'checkuser-nomatch' => 'Tiada padanan.',
 3849+ 'checkuser-nomatch-edits' => 'Tiada padanan. Suntingan terakhir ialah pada $1, $2.',
 3850+ 'checkuser-check' => 'Periksa',
 3851+ 'checkuser-log-fail' => 'Daftar log tidak dapat ditambah',
 3852+ 'checkuser-nolog' => 'Fail log tiada.',
 3853+ 'checkuser-blocked' => 'Disekat',
 3854+ 'checkuser-gblocked' => 'Disekat secara sejagat',
 3855+ 'checkuser-locked' => 'Dikunci',
 3856+ 'checkuser-wasblocked' => 'Pernah disekat',
 3857+ 'checkuser-localonly' => 'Tidak digabungkan',
 3858+ 'checkuser-massblock' => 'Sekat pengguna yang ditanda',
 3859+ 'checkuser-massblock-text' => 'Akaun-akaun yang dinyatakan akan disekat tanpa had, dengan sekatan automatik diaktifkan dan penciptaan akaun baru dimatikan.
 3860+Bagi pengguna tanpa nama, alamat IP-nya akan disekat selama seminggu, dengan penciptaan akaun dimatikan.',
 3861+ 'checkuser-blocktag' => 'Gantikan laman pengguna tersebut dengan:',
 3862+ 'checkuser-blocktag-talk' => 'Gantikan laman perbincangan dengan:',
 3863+ 'checkuser-massblock-commit' => 'Sekat pengguna yang ditanda',
 3864+ 'checkuser-block-success' => "'''{{PLURAL:$2|Pengguna tersebut|$1 orang pengguna}} telah disekat.'''",
 3865+ 'checkuser-block-failure' => "'''Tiada pengguna disekat.'''",
 3866+ 'checkuser-block-limit' => 'Terlalu banyak pengguna dipilih.',
 3867+ 'checkuser-block-noreason' => 'Anda hendaklah memberikan sebab sekatan.',
 3868+ 'checkuser-accounts' => '$1 akaun baru',
 3869+ 'checkuser-too-many' => 'Terlalu banyak keputusan; sila kecilkan CIDR. Yang berikut ialah senarai IP yang digunakan (had 5000, diisihkan mengikut alamat):',
 3870+ 'checkuser-user-nonexistent' => 'Pengguna yang dinyatakan tidak wujud.',
 3871+ 'checkuser-search-form' => 'Cari daftar-daftar log di mana $1 adalah $2',
 3872+ 'checkuser-search-submit' => 'Cari',
 3873+ 'checkuser-search-initiator' => 'pengasal',
 3874+ 'checkuser-search-target' => 'sasaran',
 3875+ 'checkuser-ipeditcount' => '~$1 daripada semua pengguna',
 3876+ 'checkuser-log-subpage' => 'Log',
 3877+ 'checkuser-log-return' => 'Kembali ke borang utama Pemeriksa',
 3878+ 'checkuser-limited' => 'Hasil-hasil berikut telah dipendekkan atas sebab-sebab prestasi.',
 3879+ 'checkuser-log-userips' => '$1 mendapatkan senarai IP bagi $2',
 3880+ 'checkuser-log-ipedits' => '$1 mendapatkan senarai suntingan bagi $2',
 3881+ 'checkuser-log-ipusers' => '$1 mendapatkan senarai pengguna bagi $2',
 3882+ 'checkuser-log-ipedits-xff' => '$1 mendapatkan senarai suntingan bagi XFF $2',
 3883+ 'checkuser-log-ipusers-xff' => '$1 mendapatkan senarai pengguna bagi XFF $2',
 3884+ 'checkuser-log-useredits' => '$1 mendapatkan senarai suntingan bagi $2',
 3885+ 'checkuser-autocreate-action' => 'dicipta secara automatik',
 3886+ 'checkuser-email-action' => 'hantar e-mel kepada "$1"',
 3887+ 'checkuser-reset-action' => 'set semula kata laluan "$1"',
 3888+);
 3889+
 3890+/** Erzya (Эрзянь)
 3891+ * @author Amdf
 3892+ * @author Botuzhaleny-sodamo
 3893+ * @author Tupikovs
 3894+ */
 3895+$messages['myv'] = array(
 3896+ 'checkuser-reason' => 'Тувталось:',
 3897+ 'checkuser-target' => 'Совиця эли IP',
 3898+ 'checkuser-search' => 'Вешнэмс',
 3899+ 'checkuser-week-1' => 'меельсе тарго',
 3900+ 'checkuser-week-2' => 'меельсе кавто таргт',
 3901+ 'checkuser-month' => 'меельсе 30 чить',
 3902+ 'checkuser-all' => 'весе',
 3903+ 'checkuser-search-submit' => 'Вешнэмс',
 3904+);
 3905+
 3906+/** Nahuatl (Nāhuatl)
 3907+ * @author Fluence
 3908+ */
 3909+$messages['nah'] = array(
 3910+ 'checkuser-reason' => 'Īxtlamatiliztli:',
 3911+ 'checkuser-search' => 'Tlatēmōz',
 3912+ 'checkuser-search-submit' => 'Tlatēmōz',
 3913+);
 3914+
 3915+/** Neapolitan (Nnapulitano) */
 3916+$messages['nap'] = array(
 3917+ 'checkuser-search' => 'Truova',
 3918+);
 3919+
 3920+/** Low German (Plattdüütsch)
 3921+ * @author Slomox
 3922+ */
 3923+$messages['nds'] = array(
 3924+ 'checkuser-summary' => 'Dit Warktüüch dörsöcht de lesten Ännern na de IP-Adressen, de en Bruker bruukt hett, oder na de Ännern un Brukernaams, de vun en bestimmte IP maakt/bruukt worrn sünd.
 3925+Brukers un Ännern vun XFF-IPs ut köönt ankeken warrn, wenn „/xff“ achter de IP toschreven warrt. IPv4 (CIDR 16-32) un IPv6 (CIDR 96-128) warrt all beid ünnerstütt.
 3926+De Maximaltall vun trüchlevert Ännern is 5000.
 3927+Dit Warktüüch dröff blot na de Regeln mit de Richtlienen bruukt warrn.',
 3928+ 'checkuser-desc' => 'Verlöövt Brukers mit de nödigen Rechten, de IP-Adressen un annere Infos vun Brukers natokieken',
 3929+ 'checkuser-logcase' => 'De Logbook-Söök maakt en Ünnerscheed twischen grote un lütte Bookstaven.',
 3930+ 'checkuser' => 'Bruker nakieken',
 3931+ 'checkuser-contribs' => 'IP-Adressen vun Bruker prüfen',
 3932+ 'group-checkuser' => 'Brukers nakieken',
 3933+ 'group-checkuser-member' => 'Bruker nakieken',
 3934+ 'right-checkuser' => 'IP-Adressen un annere Infos vun Brukers bekieken',
 3935+ 'right-checkuser-log' => 'Checkuser-Logbook ankieken',
 3936+ 'grouppage-checkuser' => '{{ns:project}}:Checkuser',
 3937+ 'checkuser-reason' => 'Grund:',
 3938+ 'checkuser-showlog' => 'Logbook wiesen',
 3939+ 'checkuser-log' => 'Checkuser-Logbook',
 3940+ 'checkuser-query' => 'Toletzt ännert affragen',
 3941+ 'checkuser-target' => 'Bruker oder IP',
 3942+ 'checkuser-users' => 'Brukers kriegen',
 3943+ 'checkuser-edits' => 'Ännern vun IP-Adress wiesen',
 3944+ 'checkuser-ips' => 'IPs kriegen',
 3945+ 'checkuser-account' => 'Ännern vun Bruker halen',
 3946+ 'checkuser-search' => 'Söken',
 3947+ 'checkuser-period' => 'Duur:',
 3948+ 'checkuser-week-1' => 'leste Week',
 3949+ 'checkuser-week-2' => 'leste twee Weken',
 3950+ 'checkuser-month' => 'leste 30 Daag',
 3951+ 'checkuser-all' => 'all',
 3952+ 'checkuser-cidr-label' => 'Söök gemeensamen IP-Block un bedrapen Adressen för en List vun IP-Adressen',
 3953+ 'checkuser-cidr-res' => 'Gemeensam CIDR:',
 3954+ 'checkuser-empty' => 'Dat Logbook is leddig.',
 3955+ 'checkuser-nomatch' => 'Nix funnen, wat övereenstimmt.',
 3956+ 'checkuser-nomatch-edits' => 'Nix funnen.
 3957+Lest Ännern weer an’n $1 üm $2.',
 3958+ 'checkuser-check' => 'Los',
 3959+ 'checkuser-log-fail' => 'Kunn keen Logbook-Indrag tofögen',
 3960+ 'checkuser-nolog' => 'Keen Loogbook funnen.',
 3961+ 'checkuser-blocked' => 'Sperrt',
 3962+ 'checkuser-gblocked' => 'global sperrt',
 3963+ 'checkuser-locked' => 'slaten',
 3964+ 'checkuser-wasblocked' => 'ehrder al sperrt',
 3965+ 'checkuser-localonly' => 'Nich tohoopföhrt',
 3966+ 'checkuser-massblock' => 'Utwählt Brukers sperren',
 3967+ 'checkuser-massblock-text' => 'De utwählten Brukerkonten warrt duurhaftig sperrt, de automaatsche Sperr warrt inschalt un dat Brukerkonto opstellen utschalt.
 3968+IP-Adressen warrt för IP-Brukers för een Week sperrt un dat Brukerkonto opstellen is utschalt.',
 3969+ 'checkuser-blocktag' => 'Brukersieden utwesseln gegen:',
 3970+ 'checkuser-blocktag-talk' => 'Diskuschoonssieden utwesseln gegen:',
 3971+ 'checkuser-massblock-commit' => 'Sperr de utwählten Brukers',
 3972+ 'checkuser-block-success' => "'''De {{PLURAL:$2|Bruker|Brukers}} $1 {{PLURAL:$2|is|sünd}} nu sperrt.'''",
 3973+ 'checkuser-block-failure' => "'''Kene Brukers sperrt.'''",
 3974+ 'checkuser-block-limit' => 'Toveel Brukers utwählt.',
 3975+ 'checkuser-block-noreason' => 'Du musst en Grund för de Sperr angeven.',
 3976+ 'checkuser-accounts' => '$1 {{PLURAL:$1|nee Brukerkonto|ne’e Brukerkonten}}',
 3977+ 'checkuser-too-many' => 'To veel funnen, grenz de IP-Reeg wieder in. Dit sünd de bruukten IP-Adressen (maximal 5000, sorteert na Adress):',
 3978+ 'checkuser-user-nonexistent' => 'Den angevene Bruker gifft dat nich.',
 3979+ 'checkuser-search-form' => 'Söök na Logbook-Indrääg, bi de $1 $2 is.',
 3980+ 'checkuser-search-submit' => 'Söök',
 3981+ 'checkuser-search-initiator' => 'Initiater',
 3982+ 'checkuser-search-target' => 'Ziel',
 3983+ 'checkuser-ipeditcount' => '~$1 vun all Brukers',
 3984+ 'checkuser-log-subpage' => 'Logbook',
 3985+ 'checkuser-log-return' => 'Trüch na dat CheckUser-Hööftformular',
 3986+ 'checkuser-limited' => "'''De List mit Resultaten is to lang wesen un körter maakt worrn.'''",
 3987+ 'checkuser-log-userips' => '$1 hett IP-Adressen för $2 rutsöcht',
 3988+ 'checkuser-log-ipedits' => '$1 hett Ännern vun $2 rutsöcht',
 3989+ 'checkuser-log-ipusers' => '$1 hett Brukers för $2 rutsöcht',
 3990+ 'checkuser-log-ipedits-xff' => '$1 hett Ännern för de XFF-IP $2 rutsöcht',
 3991+ 'checkuser-log-ipusers-xff' => '$1 hett Brukers för de XFF-IP $2 rutsöcht',
 3992+ 'checkuser-log-useredits' => '$1 hett Ännern för $2 haalt',
 3993+ 'checkuser-autocreate-action' => 'automaatsch opstellt',
 3994+ 'checkuser-email-action' => 'hett Bruker „$1“ en E-Mail tostüürt',
 3995+ 'checkuser-reset-action' => 'hett en nee Passwoord för Bruker „$1“ feddert',
 3996+);
 3997+
 3998+/** Nedersaksisch (Nedersaksisch)
 3999+ * @author Servien
 4000+ */
 4001+$messages['nds-nl'] = array(
 4002+ 'checkuser-summary' => 'Dit hulpmiddel scant de lieste mit de leste wiezigingen um de IP-adressen weerumme te haolen dee gebruuk bin deur een gebruker of een bewarking/gebrukersgegevens weergeven veur een IP-adres. Gebrukers en bewarkingen kunnen weerummehaold wonnen mit een XFF-IP deur "/xff" an \'t IP-adres toe te voegen. IPv4 (CIDR 16-32) en IPv6 (CIDR 96-128) wonnen ondersteund. Neet meer as 5.000 bewarkingen wonnen eteund vanwegen prestasierejens. Gebruuk dit in overeenstemming mit \'t beleid.',
 4003+ 'checkuser-query' => 'Zeukopdrachte leste wiezigingen',
 4004+);
 4005+
 4006+/** Dutch (Nederlands)
 4007+ * @author Erwin85
 4008+ * @author SPQRobin
 4009+ * @author Siebrand
 4010+ * @author Troefkaart
 4011+ */
 4012+$messages['nl'] = array(
 4013+ 'checkuser-summary' => 'Dit hulpmiddel bekijkt recente wijzigingen om IP-adressen die een gebruiker heeft gebruikt te achterhalen of geeft de bewerkings- en gebruikersgegegevens weer voor een IP-adres.
 4014+Gebruikers en bewerkingen van een IP-adres van een client kunnen achterhaald worden via XFF-headers door "/xff" achter het IP-adres toe te voegen. IPv4 (CIDR 16-32) en IPv6 (CIDR 96-128) worden ondersteund.
 4015+Om prestatieredenen worden niet meer dan 5.000 bewerkingen weergegeven.
 4016+Gebruik dit hulpmiddel volgens het vastgestelde beleid.',
 4017+ 'checkuser-desc' => 'Laat bevoegde gebruikers IP-adressen en andere informatie van gebruikers achterhalen',
 4018+ 'checkuser-logcase' => 'Zoeken in het logboek is hoofdlettergevoelig.',
 4019+ 'checkuser' => 'Gebruiker controleren',
 4020+ 'checkuser-contribs' => 'IP-adressen van gebruiker controleren',
 4021+ 'group-checkuser' => 'controlegebruikers',
 4022+ 'group-checkuser-member' => 'controlegebruiker',
 4023+ 'right-checkuser' => 'IP-adressen en andere gegevens van gebruikers bekijken',
 4024+ 'right-checkuser-log' => 'Het Logboek controleren gebruikers bekijken',
 4025+ 'grouppage-checkuser' => '{{ns:project}}:Controlegebruiker',
 4026+ 'checkuser-reason' => 'Reden:',
 4027+ 'checkuser-showlog' => 'Logboek weergeven',
 4028+ 'checkuser-log' => 'Logboek controleren gebruikers',
 4029+ 'checkuser-query' => 'Bevraag recente wijzigingen',
 4030+ 'checkuser-target' => 'Gebruiker of IP-adres',
 4031+ 'checkuser-users' => 'Gebruikers opvragen',
 4032+ 'checkuser-edits' => 'Bewerkingen van IP-adres opvragen',
 4033+ 'checkuser-ips' => 'IP-adressen opvragen',
 4034+ 'checkuser-account' => 'Bewerkingen gebruiker ophalen',
 4035+ 'checkuser-search' => 'Zoeken',
 4036+ 'checkuser-period' => 'Duur:',
 4037+ 'checkuser-week-1' => 'laatste week',
 4038+ 'checkuser-week-2' => 'laatste twee weken',
 4039+ 'checkuser-month' => 'laatste 30 dagen',
 4040+ 'checkuser-all' => 'alle',
 4041+ 'checkuser-cidr-label' => 'Gemeenschappelijke reeks en getroffen adressen zoeken uit een lijst van IP-adressen',
 4042+ 'checkuser-cidr-res' => 'Gemeenschappelijke CIDR:',
 4043+ 'checkuser-empty' => 'Het logboek bevat geen regels.',
 4044+ 'checkuser-nomatch' => 'Geen overeenkomsten gevonden.',
 4045+ 'checkuser-nomatch-edits' => 'Niets gevonden.
 4046+De laatste bewerking was op $1 om $2.',
 4047+ 'checkuser-check' => 'Controleren',
 4048+ 'checkuser-log-fail' => 'Logboekregel toevoegen niet mogelijk',
 4049+ 'checkuser-nolog' => 'Geen logboek gevonden.',
 4050+ 'checkuser-blocked' => 'Geblokkeerd',
 4051+ 'checkuser-gblocked' => 'Globaal geblokkeerd',
 4052+ 'checkuser-locked' => 'Afgesloten',
 4053+ 'checkuser-wasblocked' => 'Eerder geblokkeerd',
 4054+ 'checkuser-localonly' => 'Niet samengevoegd',
 4055+ 'checkuser-massblock' => 'Geselecteerde gebruikers blokkeren',
 4056+ 'checkuser-massblock-text' => 'De geselecteerde gebruikers worden voor onbepaalde tijd geblokkeerd, met automatische IP-adresblokkade ingeschakeld en het aanmaken van nieuwe gebruikers ingeschakeld.
 4057+IP-adressen worden één week geblokkeerd voor anonieme gebruikers, met het aanmaken van nieuwe gebruikers uitgeschakeld.',
 4058+ 'checkuser-blocktag' => "Gebruikerspagina's vervangen door:",
 4059+ 'checkuser-blocktag-talk' => "Overlegpagina's vervangen door:",
 4060+ 'checkuser-massblock-commit' => 'Geselecteerde gebruikers blokkeren',
 4061+ 'checkuser-block-success' => "'''De {{PLURAL:$2|gebruiker|gebruikers}} $1 {{PLURAL:$2|is|zijn}} geblokkeerd.'''",
 4062+ 'checkuser-block-failure' => "'''Geen gebruikers geblokkeerd.'''",
 4063+ 'checkuser-block-limit' => 'Te veel gebruikers geselecteerd.',
 4064+ 'checkuser-block-noreason' => 'U moet een reden opgeven voor de blokkades.',
 4065+ 'checkuser-accounts' => '$1 nieuwe {{PLURAL:$1|gebruiker|gebruikers}}',
 4066+ 'checkuser-too-many' => 'Te veel resultaten. Maak de IP-reeks kleiner:',
 4067+ 'checkuser-user-nonexistent' => 'De opgegeven gebruiker bestaat niet.',
 4068+ 'checkuser-search-form' => 'Logboekregels zoeken waar de $1 $2 is',
 4069+ 'checkuser-search-submit' => 'Zoeken',
 4070+ 'checkuser-search-initiator' => 'aanvrager',
 4071+ 'checkuser-search-target' => 'onderwerp',
 4072+ 'checkuser-ipeditcount' => '~$1 van alle gebruikers',
 4073+ 'checkuser-log-subpage' => 'Logboek',
 4074+ 'checkuser-log-return' => 'Naar het hoofdformulier van ControleGebruiker terugkeren',
 4075+ 'checkuser-limited' => "'''Deze resultaten zijn niet volledig om prestatieredenen.'''",
 4076+ 'checkuser-log-userips' => '$1 heeft de IP-adressen door $2 opgevraagd',
 4077+ 'checkuser-log-ipedits' => '$1 heeft de bewerkingen door $2 opgevraagd',
 4078+ 'checkuser-log-ipusers' => '$1 heeft de gebruikers voor $2 opgevraagd',
 4079+ 'checkuser-log-ipedits-xff' => '$1 heeft de bewerkingen door XFF $2 opgevraagd',
 4080+ 'checkuser-log-ipusers-xff' => '$1 heeft de gebruikers van XFF $2 opgevraagd',
 4081+ 'checkuser-log-useredits' => '$1 heeft de bewerkingen door $2 opgevraagd',
 4082+ 'checkuser-autocreate-action' => 'is automatisch aangemaakt',
 4083+ 'checkuser-email-action' => 'heeft een e-mail gestuurd aan "$1"',
 4084+ 'checkuser-reset-action' => 'heeft het wachtwoord voor gebruiker "$1" opnieuw ingesteld',
 4085+);
 4086+
 4087+/** Norwegian Nynorsk (‪Norsk (nynorsk)‬)
 4088+ * @author Gunnernett
 4089+ * @author Harald Khan
 4090+ * @author Jon Harald Søby
 4091+ */
 4092+$messages['nn'] = array(
 4093+ 'checkuser-summary' => 'Dette verktøyet går gjennom siste endringar for å henta IP-ane som er nytta av ein brukar, eller syner endrings- eller brukarinformasjon for ein IP.
 4094+
 4095+Brukarar og endringar frå ein klient-IP kan verta henta gjennom XFF ved å leggja til «/xff» bak IP-en. IPv4 (CIDR 16-32) og IPv6 (CIDR 96-128) er støtta.
 4096+
 4097+Av yteårsaker vert høgst 5000 endringar viste.
 4098+Nytt dette verktøyet i samsvar med retningsliner.',
 4099+ 'checkuser-desc' => 'Gjev brukarar med dei rette rettane moglegheita til å sjekka IP-adressene til og annan informasjon om brukarar.',
 4100+ 'checkuser-logcase' => 'Loggsøket tek omsyn til små og store bokstavar.',
 4101+ 'checkuser' => 'Brukarsjekk',
 4102+ 'group-checkuser' => 'Brukarkontrollørar',
 4103+ 'group-checkuser-member' => 'Brukarkontrollør',
 4104+ 'right-checkuser' => 'Sjekka IP-adressene til brukarar i tillegg til annan informasjon.',
 4105+ 'right-checkuser-log' => 'Sjå brukarkontroll-loggen',
 4106+ 'grouppage-checkuser' => '{{ns:project}}:Brukarkontrollør',
 4107+ 'checkuser-reason' => 'Årsak:',
 4108+ 'checkuser-showlog' => 'Syn logg',
 4109+ 'checkuser-log' => 'Logg over brukarkontrollering',
 4110+ 'checkuser-query' => 'Søk i siste endringar',
 4111+ 'checkuser-target' => 'Brukar eller IP',
 4112+ 'checkuser-users' => 'Hent brukarar',
 4113+ 'checkuser-edits' => 'Hent endringar frå IP',
 4114+ 'checkuser-ips' => 'Hent IP-ar',
 4115+ 'checkuser-account' => 'Hent endringar frå konto',
 4116+ 'checkuser-search' => 'Søk',
 4117+ 'checkuser-period' => 'Varigskap:',
 4118+ 'checkuser-week-1' => 'førre veka',
 4119+ 'checkuser-week-2' => 'siste to veker',
 4120+ 'checkuser-month' => 'siste 30 dagar',
 4121+ 'checkuser-all' => 'alle',
 4122+ 'checkuser-cidr-label' => 'Finn sams talrekkjer og adresser for ei liste over IP-adresser',
 4123+ 'checkuser-cidr-res' => 'Sams CIDR:',
 4124+ 'checkuser-empty' => 'Loggen inneheld ingen element.',
 4125+ 'checkuser-nomatch' => 'Ingen treff.',
 4126+ 'checkuser-nomatch-edits' => 'Ingen treff.
 4127+Siste endringar skjedde $1 $2.',
 4128+ 'checkuser-check' => 'Sjekk',
 4129+ 'checkuser-log-fail' => 'Kunne ikkje leggja til loggelement.',
 4130+ 'checkuser-nolog' => 'Fann inga loggfil.',
 4131+ 'checkuser-blocked' => 'Blokkert',
 4132+ 'checkuser-gblocked' => 'Blokkert globalt',
 4133+ 'checkuser-locked' => 'Låst',
 4134+ 'checkuser-wasblocked' => 'Tidlegare blokkert',
 4135+ 'checkuser-localonly' => 'Ikkje samanslege',
 4136+ 'checkuser-massblock' => 'Blokker valte brukarar',
 4137+ 'checkuser-massblock-text' => 'Valte kontoar vil verta blokkerte endelaust, med autoblokkering slege på og kontooppretting slege av.
 4138+IP-adresser vil verta blokkerte for éi veka for uregistrerte, med kontooppretting slege av.',
 4139+ 'checkuser-blocktag' => 'Erstatt brukarsider med:',
 4140+ 'checkuser-blocktag-talk' => 'Erstatt diskusjonssider med:',
 4141+ 'checkuser-massblock-commit' => 'Blokker valte brukarar',
 4142+ 'checkuser-block-success' => "'''{{PLURAL:$2|Brukaren|Brukarane}} $1 er no {{PLURAL:$2|blokkert|blokkerte}}.'''",
 4143+ 'checkuser-block-failure' => "'''Ingen brukarar blokkerte.'''",
 4144+ 'checkuser-block-limit' => 'For mange brukarar er valte.',
 4145+ 'checkuser-block-noreason' => 'Du må oppgje ei blokkeringsårsak.',
 4146+ 'checkuser-accounts' => '{{PLURAL:$1|Éin ny konto|$1 nye kontoar}}',
 4147+ 'checkuser-too-many' => 'For mange resultat, ver venleg og reduser CIDR.
 4148+Her er IP-ene nytta (høgst 5000, sorterte etter adressa):',
 4149+ 'checkuser-user-nonexistent' => 'Brukarnamnet du oppgav finst ikkje.',
 4150+ 'checkuser-search-form' => 'Finn loggelement der $1 er $2',
 4151+ 'checkuser-search-submit' => 'Søk',
 4152+ 'checkuser-search-initiator' => 'igangsetjar',
 4153+ 'checkuser-search-target' => 'mål',
 4154+ 'checkuser-ipeditcount' => '~$1 frå alle brukarar',
 4155+ 'checkuser-log-subpage' => 'Logg',
 4156+ 'checkuser-log-return' => 'Attende til hovudskjema for brukarsjekking',
 4157+ 'checkuser-limited' => "'''Desse resultata har vortne avkorta av ytegrunnar.'''",
 4158+ 'checkuser-log-userips' => '$1 fekk IP-adressene til $2',
 4159+ 'checkuser-log-ipedits' => '$1 fekk endringar av $2',
 4160+ 'checkuser-log-ipusers' => '$1 fekk brukarar av $2',
 4161+ 'checkuser-log-ipedits-xff' => '$1 fekk endringar av XFF-en $2',
 4162+ 'checkuser-log-ipusers-xff' => '$1 fekk brukarar av XFF-en $2',
 4163+ 'checkuser-log-useredits' => '$1 henta endringar for $2',
 4164+ 'checkuser-autocreate-action' => 'vart automatisk oppretta',
 4165+ 'checkuser-email-action' => 'sendte e-post til «$1»',
 4166+ 'checkuser-reset-action' => 'nullstilte passord for «$1»',
 4167+);
 4168+
 4169+/** Norwegian (bokmål)‬ (‪Norsk (bokmål)‬)
 4170+ * @author Finnrind
 4171+ * @author Jon Harald Søby
 4172+ * @author Laaknor
 4173+ */
 4174+$messages['no'] = array(
 4175+ 'checkuser-summary' => 'Dette verktøyet går gjennom siste endringer for å hente IP-ene som er brukt av en bruker, eller viser redigerings- eller brukerinformasjonen for en IP.
 4176+
 4177+Brukere og redigeringer kan hentes med en XFF-IP ved å legge til «/xff» bak IP-en. IPv4 (CIDR 16-32) og IPv6 (CIDR 96-128) støttes.
 4178+
 4179+Av ytelsesgrunner vises maksimalt 5000 redigeringer. Bruk dette verktøyet i samsvar med retningslinjer.',
 4180+ 'checkuser-desc' => 'Gir brukere med de tilhørende rettighetene muligheten til å sjekke brukeres IP-adresser og annen informasjon',
 4181+ 'checkuser-logcase' => 'Loggsøket er sensitivt for store/små bokstaver.',
 4182+ 'checkuser' => 'Brukersjekk',
 4183+ 'group-checkuser' => 'IP-kontrollører',
 4184+ 'group-checkuser-member' => 'IP-kontrollør',
 4185+ 'right-checkuser' => 'Sjekke brukeres IP-adresser og annen informasjon',
 4186+ 'right-checkuser-log' => 'Se IP-kontrolloggen',
 4187+ 'grouppage-checkuser' => '{{ns:project}}:IP-kontrollør',
 4188+ 'checkuser-reason' => 'Årsak:',
 4189+ 'checkuser-showlog' => 'Vis logg',
 4190+ 'checkuser-log' => 'Brukersjekkingslogg',
 4191+ 'checkuser-query' => 'Søk i siste endringer',
 4192+ 'checkuser-target' => 'Bruker eller IP',
 4193+ 'checkuser-users' => 'Få brukere',
 4194+ 'checkuser-edits' => 'Få redigeringer fra IP',
 4195+ 'checkuser-ips' => 'Få IP-er',
 4196+ 'checkuser-account' => 'Hent redigeringer fra konto',
 4197+ 'checkuser-search' => 'Søk',
 4198+ 'checkuser-period' => 'Varighet:',
 4199+ 'checkuser-week-1' => 'forrige uke',
 4200+ 'checkuser-week-2' => 'siste to uker',
 4201+ 'checkuser-month' => 'siste måned',
 4202+ 'checkuser-all' => 'alle',
 4203+ 'checkuser-cidr-res' => 'Felles CIDR:',
 4204+ 'checkuser-empty' => 'Loggen inneholder ingen elementer.',
 4205+ 'checkuser-nomatch' => 'Ingen treff.',
 4206+ 'checkuser-nomatch-edits' => 'Ingen treff.
 4207+Siste redigering var $2 $1.',
 4208+ 'checkuser-check' => 'Sjekk',
 4209+ 'checkuser-log-fail' => 'Kunne ikke legge til loggelement.',
 4210+ 'checkuser-nolog' => 'Ingen loggfil funnet.',
 4211+ 'checkuser-blocked' => 'Blokkert',
 4212+ 'checkuser-gblocked' => 'Blokkert globalt',
 4213+ 'checkuser-locked' => 'Låst',
 4214+ 'checkuser-wasblocked' => 'Tidligere blokkert',
 4215+ 'checkuser-localonly' => 'Ikke sammenslått',
 4216+ 'checkuser-massblock' => 'Blokker valgte brukere',
 4217+ 'checkuser-massblock-text' => 'Valgte kontoer vil blokkeres på ubestemt tid, med autoblokkering slått på og kontooppretting slått av.
 4218+IP-adresser vil blokkeres i én uke for anonyme brukere, med kontooppretting slått av.',
 4219+ 'checkuser-blocktag' => 'Erstatt brukersider med:',
 4220+ 'checkuser-blocktag-talk' => 'Erstatt diskusjonssider med:',
 4221+ 'checkuser-massblock-commit' => 'Blokker valgte brukere',
 4222+ 'checkuser-block-success' => "'''{{PLURAL:$2|Brukeren|Brukerne}} $1 er nå blokkert.'''",
 4223+ 'checkuser-block-failure' => "'''Ingen brukere blokkert.'''",
 4224+ 'checkuser-block-limit' => 'For mange brukere valgt.',
 4225+ 'checkuser-block-noreason' => 'Du må oppgi en blokkeringsgrunn.',
 4226+ 'checkuser-accounts' => '$1 {{PLURAL:$1|ny konto|nye kontoer}}',
 4227+ 'checkuser-too-many' => 'For mange resultater, vennligst innskrenk CIDR. Her er de brukte IP-ene (maks 5000, sortert etter adresse):',
 4228+ 'checkuser-user-nonexistent' => 'Det gitte brukernavnet finnes ikke.',
 4229+ 'checkuser-search-form' => 'Finn loggelementer der $1 er $2',
 4230+ 'checkuser-search-submit' => 'Søk',
 4231+ 'checkuser-search-initiator' => 'IP-kontrolløren',
 4232+ 'checkuser-search-target' => 'målet',
 4233+ 'checkuser-ipeditcount' => '~$1 fra alle brukere',
 4234+ 'checkuser-log-subpage' => 'Logg',
 4235+ 'checkuser-log-return' => 'Tilbake til hovedskjema for brukersjekking',
 4236+ 'checkuser-limited' => "'''Disse resultatene har blitt avkortet av ytelsesgrunner.'''",
 4237+ 'checkuser-log-userips' => '$1 fikk IP-adressene til $2',
 4238+ 'checkuser-log-ipedits' => '$1 fikk endringer av $2',
 4239+ 'checkuser-log-ipusers' => '$1 fikk brukere av $2',
 4240+ 'checkuser-log-ipedits-xff' => '$1 fikk endringer av XFF-en $2',
 4241+ 'checkuser-log-ipusers-xff' => '$1 fikk brukere av XFF-en $2',
 4242+ 'checkuser-log-useredits' => '$1 hentet redigeringer for $2',
 4243+ 'checkuser-autocreate-action' => 'ble automatisk opprettet',
 4244+ 'checkuser-email-action' => 'sendte e-post til «$1»',
 4245+ 'checkuser-reset-action' => 'nullstilte passord for «$1»',
 4246+);
 4247+
 4248+/** Novial (Novial)
 4249+ * @author MF-Warburg
 4250+ * @author Malafaya
 4251+ */
 4252+$messages['nov'] = array(
 4253+ 'checkuser-reason' => 'Resone:',
 4254+ 'checkuser-search' => 'Sercha',
 4255+);
 4256+
 4257+/** Northern Sotho (Sesotho sa Leboa)
 4258+ * @author Mohau
 4259+ */
 4260+$messages['nso'] = array(
 4261+ 'checkuser-reason' => 'Lebaka',
 4262+ 'checkuser-target' => 'Mošomiši goba IP',
 4263+ 'checkuser-search' => 'Fetleka',
 4264+ 'checkuser-week-1' => 'Beke yago feta',
 4265+ 'checkuser-week-2' => 'Beke tše pedi tšago feta',
 4266+ 'checkuser-blocked' => 'Thibilwe',
 4267+ 'checkuser-search-submit' => 'Fetleka',
 4268+);
 4269+
 4270+/** Occitan (Occitan)
 4271+ * @author Cedric31
 4272+ * @author IAlex
 4273+ */
 4274+$messages['oc'] = array(
 4275+ 'checkuser-summary' => "Aqueste esplech passa en revista los cambiaments recents per recercar l'IPS emplegada per un utilizaire, mostrar totas las edicions fachas per una IP, o per enumerar los utilizaires qu'an emplegat las IPs. Los utilizaires e las modificacions pòdon èsser trobatss amb una IP XFF se s'acaba amb « /xff ». IPv4 (CIDR 16-32) e IPv6(CIDR 96-128) son suportats. Emplegatz aquò segon las cadenas de caractèrs.",
 4276+ 'checkuser-desc' => 'Balha la possibilitat a las personas exprèssament autorizadas de verificar las adreças IP dels utilizaires e mai d’autras entresenhas los concernent',
 4277+ 'checkuser-logcase' => 'La recèrca dins lo Jornal es sensibla a la cassa.',
 4278+ 'checkuser' => 'Verificator d’utilizaire',
 4279+ 'checkuser-contribs' => 'verificar las adreças IP',
 4280+ 'group-checkuser' => 'Verificators d’utilizaire',
 4281+ 'group-checkuser-member' => 'Verificator d’utilizaire',
 4282+ 'right-checkuser' => "Verificar l'adreça IP dels utilizaires e autras entresenhas",
 4283+ 'right-checkuser-log' => 'Veire lo jornal de verificacion d’adreça',
 4284+ 'grouppage-checkuser' => '{{ns:project}}:Verificator d’utilizaire',
 4285+ 'checkuser-reason' => 'Motiu :',
 4286+ 'checkuser-showlog' => 'Afichar lo jornal',
 4287+ 'checkuser-log' => "Notacion de Verificator d'utilizaire",
 4288+ 'checkuser-query' => 'Recèrca pels darrièrs cambiaments',
 4289+ 'checkuser-target' => "Nom de l'utilizaire o IP",
 4290+ 'checkuser-users' => 'Obténer los utilizaires',
 4291+ 'checkuser-edits' => "Obténer las modificacions de l'IP",
 4292+ 'checkuser-ips' => 'Obténer las adreças IP',
 4293+ 'checkuser-account' => 'Obténer las modificacions del compte',
 4294+ 'checkuser-search' => 'Recèrca',
 4295+ 'checkuser-period' => 'Durada :',
 4296+ 'checkuser-week-1' => 'darrièra setmana',
 4297+ 'checkuser-week-2' => 'las doas darrièras setmanas',
 4298+ 'checkuser-month' => 'los 30 darrièrs jorns',
 4299+ 'checkuser-all' => 'tot',
 4300+ 'checkuser-cidr-label' => "Cercar una plaja comuna e las adreças afectadas per una lista d'adreças IP",
 4301+ 'checkuser-cidr-res' => 'Plaja CIDR comuna :',
 4302+ 'checkuser-empty' => "Lo jornal conten pas cap d'article",
 4303+ 'checkuser-nomatch' => 'Recèrcas infructuosas.',
 4304+ 'checkuser-nomatch-edits' => "Cap d'ocurréncia pas trobada.
 4305+La darrièra modificacion èra lo $1 a $2.",
 4306+ 'checkuser-check' => 'Recèrca',
 4307+ 'checkuser-log-fail' => "Incapable d'apondre l'entrada del jornal.",
 4308+ 'checkuser-nolog' => 'Cap de fichièr jornal pas trobat.',
 4309+ 'checkuser-blocked' => 'Blocat',
 4310+ 'checkuser-gblocked' => 'Globalament blocat',
 4311+ 'checkuser-locked' => 'Varrolhat',
 4312+ 'checkuser-wasblocked' => 'Blocat precedentament',
 4313+ 'checkuser-localonly' => 'Pas unificat',
 4314+ 'checkuser-massblock' => 'Utilizaires de la plaja seleccionada',
 4315+ 'checkuser-massblock-text' => 'Los comptes seleccionats seràn blocats indefinidament, amb lo blocatge automatic activat e la creacion de compte desactivada.
 4316+Las adreças IP seràn blocadas pendent una setmana unicament pels utilizaires jos IP e la creacion de compte desactivada.',
 4317+ 'checkuser-blocktag' => "Remplaça las paginas d'utilizaire per :",
 4318+ 'checkuser-blocktag-talk' => 'Remplaçar las paginas de discussion amb :',
 4319+ 'checkuser-massblock-commit' => 'Blocar los utilizaires seleccionats',
 4320+ 'checkuser-block-success' => "'''{{PLURAL:$2|L’utilizaire|Los utilizaires}} $1 {{PLURAL:$2|ara es blocat|ara son blocats}}.'''",
 4321+ 'checkuser-block-failure' => "'''Cap d'utilizaire pas blocat.'''",
 4322+ 'checkuser-block-limit' => "Tròp d'utilizaires seleccionats.",
 4323+ 'checkuser-block-noreason' => 'Vos cal especificar un motiu pels blocatges.',
 4324+ 'checkuser-accounts' => '$1 {{PLURAL:$1|compte novèl|comptes novèls}}',
 4325+ 'checkuser-too-many' => 'Tròp de resultats. Limitatz la recèrca sus las adreças IP :',
 4326+ 'checkuser-user-nonexistent' => 'L’utilizaire indicat existís pas',
 4327+ 'checkuser-search-form' => 'Cercar lo jornal de las entradas ont $1 es $2.',
 4328+ 'checkuser-search-submit' => 'Recercar',
 4329+ 'checkuser-search-initiator' => 'l’iniciaire',
 4330+ 'checkuser-search-target' => 'la cibla',
 4331+ 'checkuser-ipeditcount' => '~$1 per totes los utilizaires',
 4332+ 'checkuser-log-subpage' => 'Jornal',
 4333+ 'checkuser-log-return' => "Tornar al formulari principal de la verificacion d'utilizaire",
 4334+ 'checkuser-limited' => "'''Aquestes resultats son estats troncats per de rasons ligadas a la performància.'''",
 4335+ 'checkuser-log-userips' => "$1 a obtengut d'IP per $2",
 4336+ 'checkuser-log-ipedits' => '$1 a obtengut de modificacions per $2',
 4337+ 'checkuser-log-ipusers' => "$1 a obtengut d'utilizaires per $2",
 4338+ 'checkuser-log-ipedits-xff' => '$1 a obtengut de modificacions per XFF $2',
 4339+ 'checkuser-log-ipusers-xff' => "$1 a obtengut d'utilizaires per XFF $2",
 4340+ 'checkuser-log-useredits' => '$1 a obtengut las modificacions per $2',
 4341+ 'checkuser-autocreate-action' => 'es estat creat automaticament',
 4342+ 'checkuser-email-action' => 'a mandat un corrièr electronic a « $1 »',
 4343+ 'checkuser-reset-action' => 'torna inicializar lo senhal per « $1 »',
 4344+);
 4345+
 4346+/** Oriya (ଓଡ଼ିଆ)
 4347+ * @author Jose77
 4348+ */
 4349+$messages['or'] = array(
 4350+ 'checkuser-search' => 'ସନ୍ଧାନ',
 4351+ 'checkuser-search-submit' => 'ସନ୍ଧାନ',
 4352+);
 4353+
 4354+/** Ossetic (Иронау)
 4355+ * @author Amikeco
 4356+ */
 4357+$messages['os'] = array(
 4358+ 'checkuser-reason' => 'Аххос:',
 4359+);
 4360+
 4361+/** Pangasinan (Pangasinan) */
 4362+$messages['pag'] = array(
 4363+ 'checkuser-reason' => 'Katonongan',
 4364+ 'checkuser-target' => 'Manag-usar odino IP',
 4365+ 'checkuser-users' => 'Alaen so manag-usar',
 4366+ 'checkuser-search' => 'Anapen',
 4367+);
 4368+
 4369+/** Pampanga (Kapampangan) */
 4370+$messages['pam'] = array(
 4371+ 'checkuser' => 'Surian ya ing gagamit',
 4372+ 'checkuser-reason' => 'Sangkan',
 4373+ 'checkuser-showlog' => 'Pakit ya ing log',
 4374+ 'checkuser-search' => 'Manintun',
 4375+);
 4376+
 4377+/** Polish (Polski)
 4378+ * @author Beau
 4379+ * @author Derbeth
 4380+ * @author Leinad
 4381+ * @author Sp5uhe
 4382+ */
 4383+$messages['pl'] = array(
 4384+ 'checkuser-summary' => 'Narzędzie skanuje ostatnie zmiany, by odnaleźć adresy IP użyte przez użytkownika lub by pokazać edycje i użytkowników dla zadanego adresu IP.
 4385+Użytkownicy i edycje spod adresu IP mogą być pozyskani przez nagłówki XFF przez dodanie do IP „/xff”. Obsługiwane są adresy IPv4 (CIDR 16-32) I IPv6 (CIDR 96-128).
 4386+Ze względu na wydajność, zostanie zwróconych nie więcej niż 5000 edycji.
 4387+Używaj tego narzędzia zgodnie z zasadami.',
 4388+ 'checkuser-desc' => 'Umożliwia uprawnionym użytkownikom sprawdzenie adresów IP użytkowników oraz innych informacji',
 4389+ 'checkuser-logcase' => 'Szukanie w rejestrze jest czułe na wielkość znaków.',
 4390+ 'checkuser' => 'Sprawdzanie IP użytkownika',
 4391+ 'checkuser-contribs' => 'sprawdzić adresy IP użytkownika',
 4392+ 'group-checkuser' => 'CheckUser',
 4393+ 'group-checkuser-member' => 'checkuser',
 4394+ 'right-checkuser' => 'Sprawdzanie adresów IP oraz innych informacji o użytkownikach',
 4395+ 'right-checkuser-log' => 'Podgląd rejestru checkuser',
 4396+ 'grouppage-checkuser' => '{{ns:project}}:CheckUser',
 4397+ 'checkuser-reason' => 'Powód',
 4398+ 'checkuser-showlog' => 'Pokaż rejestr',
 4399+ 'checkuser-log' => 'Rejestr CheckUser',
 4400+ 'checkuser-query' => 'Przeanalizuj ostatnie zmiany',
 4401+ 'checkuser-target' => 'Użytkownik lub IP',
 4402+ 'checkuser-users' => 'Znajdź użytkowników',
 4403+ 'checkuser-edits' => 'Znajdź edycje z IP',
 4404+ 'checkuser-ips' => 'Znajdź adresy IP',
 4405+ 'checkuser-account' => 'Pokaż edycje dla konta',
 4406+ 'checkuser-search' => 'Szukaj',
 4407+ 'checkuser-period' => 'Okres',
 4408+ 'checkuser-week-1' => 'ostatni tydzień',
 4409+ 'checkuser-week-2' => 'ostatnie dwa tygodnie',
 4410+ 'checkuser-month' => 'ostatnie 30 dni',
 4411+ 'checkuser-all' => 'wszystkie',
 4412+ 'checkuser-cidr-label' => 'Znajdź wspólny zakres i wpływ na adresy IP z listy',
 4413+ 'checkuser-cidr-res' => 'Wspólny CIDR:',
 4414+ 'checkuser-empty' => 'Rejestr nie zawiera żadnych wpisów.',
 4415+ 'checkuser-nomatch' => 'Nie odnaleziono niczego.',
 4416+ 'checkuser-nomatch-edits' => 'Nie odnaleziono.
 4417+Ostatnia edycja została wykonana $1 o $2.',
 4418+ 'checkuser-check' => 'sprawdź',
 4419+ 'checkuser-log-fail' => 'Nie udało się dodać wpisu do rejestru',
 4420+ 'checkuser-nolog' => 'Nie znaleziono pliku rejestru.',
 4421+ 'checkuser-blocked' => 'Zablokowany',
 4422+ 'checkuser-gblocked' => 'Zablokowany globalnie',
 4423+ 'checkuser-locked' => 'Zablokowany',
 4424+ 'checkuser-wasblocked' => 'Poprzednie blokady',
 4425+ 'checkuser-localonly' => 'Nie posiada konta uniwersalnego',
 4426+ 'checkuser-massblock' => 'Blokowanie wybranych użytkowników',
 4427+ 'checkuser-massblock-text' => 'Wybrane konta zostaną zablokowane na zawsze (z włączoną funkcją automatycznego blokowania adresów IP, spod których łączą się te konta oraz wyłączoną funkcją zapobiegania utworzenia konta).
 4428+Adresy IP anonimowych użytkowników będą blokowane na 1 tydzień z wyłączoną funkcją zapobiegania utworzenia konta.',
 4429+ 'checkuser-blocktag' => 'Podmień stronę użytkowników na',
 4430+ 'checkuser-blocktag-talk' => 'Podmień strony dyskusji użytkowników na',
 4431+ 'checkuser-massblock-commit' => 'Zablokuj wybranych użytkowników',
 4432+ 'checkuser-block-success' => "'''{{PLURAL:$2|Użytkownik|Użytkownicy}} $1 {{PLURAL:$2|jest|są}} obecnie {{PLURAL:$2|zablokowany|zablokowani}}.'''",
 4433+ 'checkuser-block-failure' => "'''Brak zablokowanych użytkowników.'''",
 4434+ 'checkuser-block-limit' => 'Wybrano zbyt wielu użytkowników.',
 4435+ 'checkuser-block-noreason' => 'Należy podać powód blokad.',
 4436+ 'checkuser-accounts' => '$1 {{PLURAL:$1|nowe konto|nowe konta|nowych kont}}',
 4437+ 'checkuser-too-many' => 'Zbyt wiele wyników, ogranicz CIDR.
 4438+Użytych adresów IP jest (nie więcej niż 5000, posortowane według adresu):',
 4439+ 'checkuser-user-nonexistent' => 'Taki użytkownik nie istnieje.',
 4440+ 'checkuser-search-form' => 'Szukaj wpisów w rejestrze, dla których $1 był $2',
 4441+ 'checkuser-search-submit' => 'Szukaj',
 4442+ 'checkuser-search-initiator' => 'sprawdzającym',
 4443+ 'checkuser-search-target' => 'sprawdzanym',
 4444+ 'checkuser-ipeditcount' => '~$1 od wszystkich użytkowników',
 4445+ 'checkuser-log-subpage' => 'Rejestr',
 4446+ 'checkuser-log-return' => 'Powrót do głównego formularza CheckUser',
 4447+ 'checkuser-limited' => "'''Długość listy wyników została ograniczona ze względu na wydajność.'''",
 4448+ 'checkuser-log-userips' => '$1 otrzymał adresy IP używane przez $2',
 4449+ 'checkuser-log-ipedits' => '$1 otrzymał historię edycji dla $2',
 4450+ 'checkuser-log-ipusers' => '$1 otrzymał listę użytkowników korzystających z adresu IP $2',
 4451+ 'checkuser-log-ipedits-xff' => '$1 otrzymał listę edycji dla XFF $2',
 4452+ 'checkuser-log-ipusers-xff' => '$1 otrzymał listę użytkowników dla XFF $2',
 4453+ 'checkuser-log-useredits' => '$1 otrzymał historię edycji wykonane przez $2',
 4454+ 'checkuser-autocreate-action' => 'został automatycznie utworzony',
 4455+ 'checkuser-email-action' => 'wysłał e‐mail do użytkownika „$1”',
 4456+ 'checkuser-reset-action' => 'reset hasła dla użytkownika „$1”',
 4457+);
 4458+
 4459+/** Piedmontese (Piemontèis)
 4460+ * @author Bèrto 'd Sèra
 4461+ */
 4462+$messages['pms'] = array(
 4463+ 'checkuser-summary' => "St'utiss-sì as passa j'ùltime modìfiche për tiré sù j'adrësse IP dovra da n'utent ò pura mostré lòn ch'as fa da n'adrëssa IP e che dat utent ch'a l'abia associà.
 4464+ J'utent ch'a dòvro n'adrëssa IP e le modìfiche faite d'ambelelì as peulo tiresse sù ën dovrand le testà XFF, për felo tache-ie dapress l'adrëssa e \"/xff\". A travaja tant con la forma IPv4 (CIDR 16-32) che con cola IPv6 (CIDR 96-128).
 4465+ Për na question ëd caria ëd travaj a tira nen sù pì che 5000 modìfiche. A va dovrà comforma a ij deuit për ël process ëd contròl.",
 4466+ 'checkuser-logcase' => "L'arsërca ant ël registr a conta ëdcò maiùscole e minùscole.",
 4467+ 'checkuser' => "Contròl dj'utent",
 4468+ 'group-checkuser' => 'Controlor',
 4469+ 'group-checkuser-member' => 'Controlor',
 4470+ 'grouppage-checkuser' => "{{ns:project}}:Contròl dj'utent",
 4471+ 'checkuser-reason' => 'Rason',
 4472+ 'checkuser-showlog' => 'Smon ël registr',
 4473+ 'checkuser-log' => "Registr dël contròl dj'utent",
 4474+ 'checkuser-query' => "Anterogassion dj'ùltime modìfiche",
 4475+ 'checkuser-target' => 'Stranòm ò adrëssa IP',
 4476+ 'checkuser-users' => "Tira sù j'utent",
 4477+ 'checkuser-edits' => 'Tiré sù le modìfiche faite da na midema adrëssa IP',
 4478+ 'checkuser-ips' => "Tiré sù j'adrësse IP",
 4479+ 'checkuser-search' => 'Sërca',
 4480+ 'checkuser-empty' => "Ës registr-sì a l'é veujd.",
 4481+ 'checkuser-nomatch' => 'A-i é pa gnun-a ròba parej.',
 4482+ 'checkuser-check' => 'Contròl',
 4483+ 'checkuser-log-fail' => 'I-i la fom nen a gionte-ie na riga ant sël registr',
 4484+ 'checkuser-nolog' => "Pa gnun registr ch'a sia trovasse.",
 4485+ 'checkuser-blocked' => 'Blocà',
 4486+);
 4487+
 4488+/** Pashto (پښتو)
 4489+ * @author Ahmed-Najib-Biabani-Ibrahimkhel
 4490+ */
 4491+$messages['ps'] = array(
 4492+ 'checkuser-reason' => 'سبب:',
 4493+ 'checkuser-showlog' => 'يادښت کتل',
 4494+ 'checkuser-target' => 'کارونکی يا IP پته',
 4495+ 'checkuser-search' => 'پلټل',
 4496+ 'checkuser-period' => 'موده:',
 4497+ 'checkuser-all' => 'ټول',
 4498+ 'checkuser-search-submit' => 'پلټل',
 4499+ 'checkuser-search-target' => 'موخه',
 4500+ 'checkuser-log-subpage' => 'يادښت',
 4501+);
 4502+
 4503+/** Portuguese (Português)
 4504+ * @author 555
 4505+ * @author Malafaya
 4506+ * @author Sir Lestaty de Lioncourt
 4507+ * @author Waldir
 4508+ */
 4509+$messages['pt'] = array(
 4510+ 'checkuser-summary' => 'Esta ferramenta varre as Mudanças recentes para obter os endereços de IP de um utilizador ou para exibir os dados de edições/utilizadores para um IP.
 4511+ Utilizadores edições podem ser obtidos por um IP XFF colocando-se "/xff" no final do endereço. São suportados endereços IPv4 (CIDR 16-32) e IPv6 (CIDR 96-128).
 4512+ Não serão retornadas mais de 5000 edições por motivos de desempenho. O uso desta ferramenta deverá estar de acordo com as políticas.',
 4513+ 'checkuser-desc' => 'Concede a utilizadores com a permissão apropriada a possibilidade de verificar os endereços IP de um utilizador e outra informação',
 4514+ 'checkuser-logcase' => 'As buscas nos registos são sensíveis a letras maiúsculas ou minúsculas.',
 4515+ 'checkuser' => 'Verificar utilizador',
 4516+ 'checkuser-contribs' => 'verificar IPs do utilizador',
 4517+ 'group-checkuser' => 'CheckUser',
 4518+ 'group-checkuser-member' => 'CheckUser',
 4519+ 'right-checkuser' => 'Verificar o endereço IP de um utilizador e outras informações',
 4520+ 'right-checkuser-log' => 'Ver os registros das verificações',
 4521+ 'grouppage-checkuser' => '{{ns:project}}:CheckUser',
 4522+ 'checkuser-reason' => 'Motivo',
 4523+ 'checkuser-showlog' => 'Exibir registos',
 4524+ 'checkuser-log' => 'Registos de verificação de utilizadores',
 4525+ 'checkuser-query' => 'Examinar as Mudanças recentes',
 4526+ 'checkuser-target' => 'Utilizador ou IP',
 4527+ 'checkuser-users' => 'Obter utilizadores',
 4528+ 'checkuser-edits' => 'Obter edições de IPs',
 4529+ 'checkuser-ips' => 'Obter IPs',
 4530+ 'checkuser-account' => 'Obter edições desta conta',
 4531+ 'checkuser-search' => 'Pesquisar',
 4532+ 'checkuser-period' => 'Duração:',
 4533+ 'checkuser-week-1' => 'última semana',
 4534+ 'checkuser-week-2' => 'últimas duas semanas',
 4535+ 'checkuser-month' => 'últimos 30 dias',
 4536+ 'checkuser-all' => 'todos',
 4537+ 'checkuser-cidr-label' => 'Encontrar intervalo comum e endereços afetados para uma lista de IPs',
 4538+ 'checkuser-cidr-res' => 'CIDR comum:',
 4539+ 'checkuser-empty' => 'O registo não contém itens.',
 4540+ 'checkuser-nomatch' => 'Não foram encontrados resultados.',
 4541+ 'checkuser-nomatch-edits' => 'Nenhum resultado encontrado.
 4542+A última edição foi em $1 às $2.',
 4543+ 'checkuser-check' => 'Verificar',
 4544+ 'checkuser-log-fail' => 'Não foi possível adicionar entradas ao registo',
 4545+ 'checkuser-nolog' => 'Não foi encontrado um arquivo de registos.',
 4546+ 'checkuser-blocked' => 'Bloqueado',
 4547+ 'checkuser-gblocked' => 'Bloqueado globalmente',
 4548+ 'checkuser-locked' => 'Bloqueado',
 4549+ 'checkuser-wasblocked' => 'Previamente bloqueado',
 4550+ 'checkuser-localonly' => 'Não unificada',
 4551+ 'checkuser-massblock' => 'Bloquear utilizadores seleccionados',
 4552+ 'checkuser-massblock-text' => 'As contas selecionadas serão bloqueadas indefinidamente, com bloqueio automático ativado e criação de conta desabilitada.
 4553+Endereços IP serão bloqueados por 1 semana com criação de conta desabilitada.',
 4554+ 'checkuser-blocktag' => 'Substituir páginas de utilizador com:',
 4555+ 'checkuser-blocktag-talk' => 'Substituir páginas de discussão por:',
 4556+ 'checkuser-massblock-commit' => 'Bloquear utilizadores seleccionados',
 4557+ 'checkuser-block-success' => "'''{{PLURAL:$2|O utilizador|Os utilizadores}} $1 {{PLURAL:$2|está|estão}} agora {{PLURAL:$2|bloqueado|bloqueados}}.'''",
 4558+ 'checkuser-block-failure' => "'''Nenhum utilizador bloqueado.'''",
 4559+ 'checkuser-block-limit' => 'Demasiados utilizadores selecionados.',
 4560+ 'checkuser-block-noreason' => 'Tem de especificar um motivo para os bloqueios.',
 4561+ 'checkuser-accounts' => '$1 {{PLURAL:$1|nova conta|novas contas}}',
 4562+ 'checkuser-too-many' => 'Demasiados resultados; por favor, restrinja o CIDR. Aqui estão os IPs usados (5000 no máx., ordenados por endereço):',
 4563+ 'checkuser-user-nonexistent' => 'O utilizador especificado não existe.',
 4564+ 'checkuser-search-form' => 'Procurar entradas no registo onde $1 seja $2',
 4565+ 'checkuser-search-submit' => 'Procurar',
 4566+ 'checkuser-search-initiator' => 'iniciador',
 4567+ 'checkuser-search-target' => 'alvo',
 4568+ 'checkuser-ipeditcount' => '~$1 de todos os utilizadores',
 4569+ 'checkuser-log-subpage' => 'Registo',
 4570+ 'checkuser-log-return' => 'Retornar ao formulário principal de CheckUser',
 4571+ 'checkuser-limited' => "'''Estes resultados foram removidos por motivos de performance.'''",
 4572+ 'checkuser-log-userips' => '$1 obteve IPs de $2',
 4573+ 'checkuser-log-ipedits' => '$1 obteve edições de $2',
 4574+ 'checkuser-log-ipusers' => '$1 obteve utilizadores de $2',
 4575+ 'checkuser-log-ipedits-xff' => '$1 obteve edições para o XFF $2',
 4576+ 'checkuser-log-ipusers-xff' => '$1 obteve utilizadores para o XFF $2',
 4577+ 'checkuser-log-useredits' => '$1 obteve edições de $2',
 4578+ 'checkuser-autocreate-action' => 'foi automaticamente criada',
 4579+ 'checkuser-email-action' => 'Enviar email para o utilizador "$1"',
 4580+ 'checkuser-reset-action' => 'suprimir a senha do utilizador "$1"',
 4581+);
 4582+
 4583+/** Brazilian Portuguese (Português do Brasil)
 4584+ * @author Eduardo.mps
 4585+ */
 4586+$messages['pt-br'] = array(
 4587+ 'checkuser-summary' => 'Esta ferramenta varre as Mudanças recentes para obter os endereços de IP de um utilizador ou para exibir os dados de edições/utilizadores para um IP.
 4588+Utilizadores e edições podem ser obtidos por um IP XFF colocando-se "/xff" no final do endereço. São suportados endereços IPv4 (CIDR 16-32) e IPv6 (CIDR 96-128).
 4589+Não serão retornadas mais de 5000 edições por motivos de desempenho. O uso desta ferramenta deverá estar de acordo com as políticas.',
 4590+ 'checkuser-desc' => 'Concede a utilizadores com a permissão apropriada a possibilidade de verificar os endereços IP de um utilizador e outras informações',
 4591+ 'checkuser-logcase' => 'As buscas nos registros são sensíveis a letras maiúsculas ou minúsculas.',
 4592+ 'checkuser' => 'Verificar utilizador',
 4593+ 'checkuser-contribs' => 'Verificar IPs do utilizador',
 4594+ 'group-checkuser' => 'CheckUser',
 4595+ 'group-checkuser-member' => 'CheckUser',
 4596+ 'right-checkuser' => 'Verificar o endereço IP de um utilizador e outras informações',
 4597+ 'right-checkuser-log' => 'Ver os registros das verificações',
 4598+ 'grouppage-checkuser' => '{{ns:project}}:CheckUser',
 4599+ 'checkuser-reason' => 'Motivo',
 4600+ 'checkuser-showlog' => 'Exibir registros',
 4601+ 'checkuser-log' => 'Registros de verificação de utilizadores',
 4602+ 'checkuser-query' => 'Examinar as Mudanças recentes',
 4603+ 'checkuser-target' => 'Utilizador ou IP',
 4604+ 'checkuser-users' => 'Obter utilizadores',
 4605+ 'checkuser-edits' => 'Obter edições de IPs',
 4606+ 'checkuser-ips' => 'Obter IPs',
 4607+ 'checkuser-account' => 'Obter edições desta conta',
 4608+ 'checkuser-search' => 'Pesquisar',
 4609+ 'checkuser-period' => 'Duração:',
 4610+ 'checkuser-week-1' => 'última semana',
 4611+ 'checkuser-week-2' => 'últimas duas semanas',
 4612+ 'checkuser-month' => 'últimos 30 dias',
 4613+ 'checkuser-all' => 'todos',
 4614+ 'checkuser-cidr-label' => 'Encontrar intervalo comum e endereços afetados para uma lista de IPs',
 4615+ 'checkuser-cidr-res' => 'CIDR comum:',
 4616+ 'checkuser-empty' => 'O registro não contém ítens.',
 4617+ 'checkuser-nomatch' => 'Não foram encontrados resultados.',
 4618+ 'checkuser-nomatch-edits' => 'Nenhum resultado encontrado.
 4619+A última edição foi em $1 às $2.',
 4620+ 'checkuser-check' => 'Verificar',
 4621+ 'checkuser-log-fail' => 'Não foi possível adicionar entradas ao registro',
 4622+ 'checkuser-nolog' => 'Não foi encontrado um arquivo de registros.',
 4623+ 'checkuser-blocked' => 'Bloqueado',
 4624+ 'checkuser-gblocked' => 'Bloqueado globalmente',
 4625+ 'checkuser-locked' => 'Bloqueado',
 4626+ 'checkuser-wasblocked' => 'Previamente bloqueado',
 4627+ 'checkuser-localonly' => 'Não unificada',
 4628+ 'checkuser-massblock' => 'Bloquear utilizadores selecionados',
 4629+ 'checkuser-massblock-text' => 'As contas selecionadas serão bloqueadas indefinidamente, com bloqueio automático ativado e criação de conta desabilitada.
 4630+Endereços IP serão bloqueados por 1 semana com criação de conta desabilitada.',
 4631+ 'checkuser-blocktag' => 'Substituir páginas de utilizador com:',
 4632+ 'checkuser-blocktag-talk' => 'Substituir páginas de discussão por:',
 4633+ 'checkuser-massblock-commit' => 'Bloquear utilizadores selecionados',
 4634+ 'checkuser-block-success' => "'''{{PLURAL:$2|O utilizador|Os utilizadores}} $1 {{PLURAL:$2|está|estão}} agora {{PLURAL:$2|bloqueado|bloqueados}}.'''",
 4635+ 'checkuser-block-failure' => "'''Nenhum utilizador bloqueado.'''",
 4636+ 'checkuser-block-limit' => 'Demasiados utilizadores selecionados.',
 4637+ 'checkuser-block-noreason' => 'Você deve especificar um motivo para os bloqueios.',
 4638+ 'checkuser-accounts' => '$1 {{PLURAL:$1|nova conta|novas contas}}',
 4639+ 'checkuser-too-many' => 'Demasiados resultados; por favor, restrinja o CIDR. Aqui estão os IPs usados (5000 no máx., ordenados por endereço):',
 4640+ 'checkuser-user-nonexistent' => 'O utilizador especificado não existe.',
 4641+ 'checkuser-search-form' => 'Procurar entradas no registo onde $1 seja $2',
 4642+ 'checkuser-search-submit' => 'Procurar',
 4643+ 'checkuser-search-initiator' => 'iniciador',
 4644+ 'checkuser-search-target' => 'alvo',
 4645+ 'checkuser-ipeditcount' => '~$1 de todos os utilizadores',
 4646+ 'checkuser-log-subpage' => 'Registro',
 4647+ 'checkuser-log-return' => 'Retornar ao formulário principal de CheckUser',
 4648+ 'checkuser-limited' => "'''Estes resultados foram removidos por motivos de performance.'''",
 4649+ 'checkuser-log-userips' => '$1 obteve IPs de $2',
 4650+ 'checkuser-log-ipedits' => '$1 obteve edições de $2',
 4651+ 'checkuser-log-ipusers' => '$1 obteve utilizadores de $2',
 4652+ 'checkuser-log-ipedits-xff' => '$1 obteve edições para o XFF $2',
 4653+ 'checkuser-log-ipusers-xff' => '$1 obteve utilizadores para o XFF $2',
 4654+ 'checkuser-log-useredits' => '$1 obteve edições de $2',
 4655+ 'checkuser-autocreate-action' => 'foi automaticamente criada',
 4656+ 'checkuser-email-action' => 'Enviar email para o utilizador "$1"',
 4657+ 'checkuser-reset-action' => 'suprimir a senha do utilizador "$1"',
 4658+);
 4659+
 4660+/** Quechua (Runa Simi)
 4661+ * @author AlimanRuna
 4662+ */
 4663+$messages['qu'] = array(
 4664+ 'checkuser-summary' => "Kay llamk'anaqa ñaqha hukchasqakunapim maskaykun huk ruraqpa llamk'achisqan IP huchhakunata chaskinapaq icha huk IP huchhap llamk'apusqamanta/ruraqmanta willankunata rikuchinapaq.
 4665+Ruraqkunata icha mink'akuq IP huchhap rurasqankunatapas XFF uma siq'iwanmi chaskiyta atinki IP huchhata \"/xff\" nisqawan yapaspa. IPv4 (CIDR 16-32), IPv6 (CIDR 96-128) nisqakunam llamk'akun.
 4666+Pichqa waranqamanta aswan llamk'apusqakunaqa manam kutimunqachu, allin rikuchinarayku. Kay llamk'anataqa kawpayllakama rurachiy.",
 4667+ 'checkuser-logcase' => "Hallch'a maskaqqa hatun sananchata uchuy sananchamantam sapaqchan.",
 4668+ 'checkuser' => 'Ruraqta llanchiy',
 4669+ 'group-checkuser' => 'Ruraqkunata llanchiy',
 4670+ 'group-checkuser-member' => 'Ruraqta llanchiy',
 4671+ 'grouppage-checkuser' => '{{ns:project}}:Ruraqta llanchiy',
 4672+ 'checkuser-reason' => 'Kayrayku:',
 4673+ 'checkuser-showlog' => "Hallch'ata rikuchiy",
 4674+ 'checkuser-log' => "Ruraq llanchiy hallch'a",
 4675+ 'checkuser-query' => 'Ñaqha hukchasqakunapi maskay',
 4676+ 'checkuser-target' => 'Ruraqpa sutin icha IP huchha',
 4677+ 'checkuser-users' => 'Ruraqkunata chaskiy',
 4678+ 'checkuser-edits' => 'Ruraqkunap hukchasqankunata chaskiy',
 4679+ 'checkuser-ips' => 'IP huchhakunata chaskiy',
 4680+ 'checkuser-search' => 'Maskay',
 4681+ 'checkuser-period' => "Kay mit'alla:",
 4682+ 'checkuser-week-1' => 'qayna simana',
 4683+ 'checkuser-week-2' => 'qayna iskay simana',
 4684+ 'checkuser-month' => "qayna kimsa chunka p'unchaw",
 4685+ 'checkuser-all' => 'tukuy',
 4686+ 'checkuser-empty' => "Manam kanchu ima hallch'asqapas.",
 4687+ 'checkuser-nomatch' => 'Manam imapas taripasqachu.',
 4688+ 'checkuser-check' => 'Llanchiy',
 4689+ 'checkuser-log-fail' => "Manam atinichu hallch'aman yapayta",
 4690+ 'checkuser-nolog' => "Manam hallch'ayta tarinichu",
 4691+ 'checkuser-blocked' => "Hark'asqa",
 4692+ 'checkuser-gblocked' => "Sapsintinpi hark'asqa",
 4693+ 'checkuser-locked' => "Wichq'asqa",
 4694+ 'checkuser-wasblocked' => "Ñawpaqta hark'asqa",
 4695+ 'checkuser-localonly' => 'Manam hukllasqachu',
 4696+ 'checkuser-massblock' => "Akllasqa ruraqkunata hark'ay",
 4697+ 'checkuser-too-many' => "Nisyum tarisqakuna, ama hina kaspa CIDR nisqata k'ichkichay. Kaymi llamk'achisqa IP huchhakuna (5000-kama, tiyay sutikama siq'inchasqa):",
 4698+ 'checkuser-user-nonexistent' => 'Nisqayki ruraqqa manam kanchu.',
 4699+ 'checkuser-search-submit' => 'Maskay',
 4700+ 'checkuser-search-initiator' => 'qallarichiq',
 4701+ 'checkuser-search-target' => 'taripana',
 4702+ 'checkuser-log-subpage' => "Hallch'a",
 4703+);
 4704+
 4705+/** Tarifit (Tarifit)
 4706+ * @author Jose77
 4707+ */
 4708+$messages['rif'] = array(
 4709+ 'checkuser-search' => 'Tarzzut',
 4710+ 'checkuser-search-submit' => 'Tarzzut',
 4711+);
 4712+
 4713+/** Rhaeto-Romance (Rumantsch) */
 4714+$messages['rm'] = array(
 4715+ 'checkuser-reason' => 'Motiv',
 4716+ 'checkuser-search' => 'Tschertgar',
 4717+);
 4718+
 4719+/** Romanian (Română)
 4720+ * @author Emily
 4721+ * @author Firilacroco
 4722+ * @author KlaudiuMihaila
 4723+ * @author Mihai
 4724+ */
 4725+$messages['ro'] = array(
 4726+ 'checkuser-summary' => 'Acestă unealtă scanează schimbările recente pentru a regăsi IP-urile folosite de un utilizator sau arată modificările/utilizator pentru un anumit IP.
 4727+Utilizatorii şi modificările efectuate de un client IP pot fi regăsite prin antetele XFF ataşând IP-ul prin intermediul "/xff". IPv4 (CIDR 16-32) şi IPv6 (CIDR 96-128) sunt suportate.
 4728+Nu mai mult de 5000 de editări vor fi întoarse din motive de performanţă.
 4729+Foloseşte unealta în concordanţă cu politica sitului.',
 4730+ 'checkuser-desc' => 'Autorizează utilizatorii cu drepturile specifice să poată verifica adresele IP şi alte informaţii',
 4731+ 'checkuser-logcase' => 'Căutarea în jurnal este sensibilă la majuscule - minuscule',
 4732+ 'checkuser' => 'Verifică utilizatorul',
 4733+ 'group-checkuser' => 'Checkuseri',
 4734+ 'group-checkuser-member' => 'Checkuser',
 4735+ 'right-checkuser' => 'Verifică adresele IP ale utilizatorilor şi alte informaţii',
 4736+ 'right-checkuser-log' => 'Vezi jurnalul checkuser',
 4737+ 'grouppage-checkuser' => '{{ns:project}}:Checkuser',
 4738+ 'checkuser-reason' => 'Motiv:',
 4739+ 'checkuser-showlog' => 'Arată jurnal',
 4740+ 'checkuser-log' => 'Jurnal verificare utilizator',
 4741+ 'checkuser-query' => 'Interoghează schimbările recente',
 4742+ 'checkuser-target' => 'Utilizator sau IP',
 4743+ 'checkuser-users' => 'Arată utilizatorii',
 4744+ 'checkuser-edits' => 'Arată editările IP-ului',
 4745+ 'checkuser-ips' => 'Arată IP-urile',
 4746+ 'checkuser-account' => 'Arată modificările utilizatorului',
 4747+ 'checkuser-search' => 'Caută',
 4748+ 'checkuser-period' => 'Durată:',
 4749+ 'checkuser-week-1' => 'săptămâna trecută',
 4750+ 'checkuser-week-2' => 'ultimele două săptămâni',
 4751+ 'checkuser-month' => 'ultimele 30 de zile',
 4752+ 'checkuser-all' => 'toate',
 4753+ 'checkuser-empty' => 'Jurnalul nu conţine înregistrări.',
 4754+ 'checkuser-nomatch' => 'Nu au fost găsite potriviri.',
 4755+ 'checkuser-nomatch-edits' => 'Niciun rezultat.
 4756+Ultima modificare a fost pe $1 la ora $2.',
 4757+ 'checkuser-check' => 'Verifică',
 4758+ 'checkuser-log-fail' => 'Imposibil de adăugat intrări în jurnal',
 4759+ 'checkuser-nolog' => 'Nu a fost găsit un jurnal.',
 4760+ 'checkuser-blocked' => 'Blocat',
 4761+ 'checkuser-gblocked' => 'Blocat global',
 4762+ 'checkuser-locked' => 'Încuiat',
 4763+ 'checkuser-wasblocked' => 'Blocări anterioare',
 4764+ 'checkuser-localonly' => 'Neunificat',
 4765+ 'checkuser-massblock' => 'Blochează utilizatorii aleşi',
 4766+ 'checkuser-massblock-text' => 'Conturile alese vor fi blocate definitiv, cu blocarea automată activată şi crearea de conturi dezactivată.
 4767+Adresele IP vor fi blocate timp de o săptămână şi crearea de conturi va fi dezactivată.',
 4768+ 'checkuser-blocktag' => 'Înlocuieşte paginile de utilizator cu:',
 4769+ 'checkuser-blocktag-talk' => 'Înlocuieşte paginile de discuţii cu:',
 4770+ 'checkuser-massblock-commit' => 'Blochează utilizatorii aleşi',
 4771+ 'checkuser-block-success' => "'''{{PLURAL:$2|Utilizatorul|Utilizatorii}} $1 {{PLURAL:$2|este blocat|sunt blocaţi}}.'''",
 4772+ 'checkuser-block-failure' => "'''Niciun utilizator nu este blocat.'''",
 4773+ 'checkuser-block-limit' => 'Prea mulţi utilizatori selectaţi.',
 4774+ 'checkuser-block-noreason' => 'Trebuie să specificaţi un motiv pentru blocări.',
 4775+ 'checkuser-accounts' => '$1 {{PLURAL:$1|cont nou|conturi noi}}',
 4776+ 'checkuser-too-many' => 'Prea multe rezultate, te rog îngustează CIDR.
 4777+Iată IP-urile folosite (maxim 5000, sortate dup adresă):',
 4778+ 'checkuser-user-nonexistent' => 'Utilizatorul specificat nu există.',
 4779+ 'checkuser-search-form' => 'Găseşte intrările în jurnal unde $1 este $2',
 4780+ 'checkuser-search-submit' => 'Caută',
 4781+ 'checkuser-search-initiator' => 'iniţiator',
 4782+ 'checkuser-search-target' => 'destinaţie',
 4783+ 'checkuser-ipeditcount' => '~$1 de la toţi utilizatorii',
 4784+ 'checkuser-log-subpage' => 'Jurnal',
 4785+ 'checkuser-log-return' => 'Revenire la formularul principal Verifică Utilizatorul',
 4786+ 'checkuser-limited' => "'''Aceste rezultate au fost sortate din motive de performanţă.'''",
 4787+ 'checkuser-log-userips' => '$1 a verificat IP-urile lui $2',
 4788+ 'checkuser-log-ipedits' => '$1 a verificat modificările efectuate de $2',
 4789+ 'checkuser-log-ipusers' => '$1 a verificat conturile lui $2',
 4790+ 'checkuser-log-ipedits-xff' => '$1 a verificat modificările efectuate de la adresa XFF $2',
 4791+ 'checkuser-log-ipusers-xff' => '$1 a verificat conturile lui XFF $2',
 4792+ 'checkuser-log-useredits' => '$1 a verificat modificările efectuate de $2',
 4793+ 'checkuser-autocreate-action' => 'a fost creat automat',
 4794+ 'checkuser-email-action' => 'trimite email utilizatorului "$1"',
 4795+ 'checkuser-reset-action' => 'schimbă parola pentru utilizatorul "$1"',
 4796+);
 4797+
 4798+/** Aromanian (Armãneashce)
 4799+ * @author Hakka
 4800+ */
 4801+$messages['roa-rup'] = array(
 4802+ 'checkuser-reason' => 'Itia',
 4803+ 'checkuser-search' => 'Caftã',
 4804+);
 4805+
 4806+/** Tarandíne (Tarandíne)
 4807+ * @author Joetaras
 4808+ */
 4809+$messages['roa-tara'] = array(
 4810+ 'grouppage-checkuser' => '{{ns:project}}:Utende ca verifiche',
 4811+ 'checkuser-reason' => 'Mutive:',
 4812+ 'checkuser-target' => 'Utende o IP',
 4813+ 'checkuser-users' => "Pigghje l'utende",
 4814+ 'checkuser-edits' => "Pigghje le cangiaminde da l'IP",
 4815+ 'checkuser-ips' => "Pigghje l'IP",
 4816+ 'checkuser-account' => "Pigghje le cangiaminde d'u cunde utende",
 4817+ 'checkuser-search' => 'Cirche',
 4818+ 'checkuser-period' => 'Durete:',
 4819+ 'checkuser-week-1' => 'urtema sumane',
 4820+ 'checkuser-week-2' => 'urteme doje sumane',
 4821+ 'checkuser-month' => 'urteme 30 giurne',
 4822+ 'checkuser-all' => 'tutte',
 4823+ 'checkuser-search-submit' => 'Cirche',
 4824+ 'checkuser-log-userips' => '$1 ha pigghiete le IP pe $2',
 4825+ 'checkuser-log-ipedits' => '$1 ha pigghiete le cangiaminde pe $2',
 4826+ 'checkuser-log-ipusers' => '$1 ha pigghiete le utinde pe $2',
 4827+ 'checkuser-log-ipedits-xff' => '$1 ha pigghiete le cangiaminde pe XFF $2',
 4828+ 'checkuser-log-ipusers-xff' => '$1 ha pigghiete le utinde pe XFF $2',
 4829+ 'checkuser-log-useredits' => '$1 ha pigghiete le cangiaminde pe $2',
 4830+ 'checkuser-autocreate-action' => 'ha state ccrejete automaticamende',
 4831+);
 4832+
 4833+/** Russian (Русский)
 4834+ * @author EugeneZelenko
 4835+ * @author Ferrer
 4836+ * @author Kaganer
 4837+ * @author Lockal
 4838+ * @author Putnik
 4839+ * @author Silence
 4840+ * @author Александр Сигачёв
 4841+ */
 4842+$messages['ru'] = array(
 4843+ 'checkuser-summary' => "Данный инструмент может быть использован, чтобы получить IP-адреса, использовавшиеся участником, либо чтобы показать правки/участников, работавших с IP-адреса.
 4844+Правки и пользователи, которые правили с определённого IP-адреса, указанного в X-Forwarded-For, можно получить, добавив префикс <code>/xff</code> к IP-адресу. Поддерживаемые версии IP: 4 (CIDR 16—32) и 6 (CIDR 96—128).
 4845+Из соображений производительности будут показаны только первые 5000 правок.
 4846+Используйте эту страницу '''только в соответствии с правилами'''.",
 4847+ 'checkuser-desc' => 'Предоставляет возможность проверять IP-адреса и дополнительную информацию участников',
 4848+ 'checkuser-logcase' => 'Поиск по журналу чувствителен к регистру.',
 4849+ 'checkuser' => 'Проверить участника',
 4850+ 'checkuser-contribs' => 'проверить IP-адреса участника',
 4851+ 'group-checkuser' => 'Проверяющие участников',
 4852+ 'group-checkuser-member' => 'проверяющий участников',
 4853+ 'right-checkuser' => 'проверка IP-адресов и другой информации участников',
 4854+ 'right-checkuser-log' => 'просмотр журнала проверки участников',
 4855+ 'grouppage-checkuser' => '{{ns:project}}:Проверка участников',
 4856+ 'checkuser-reason' => 'Причина:',
 4857+ 'checkuser-showlog' => 'Показать журнал',
 4858+ 'checkuser-log' => 'Журнал проверки участников',
 4859+ 'checkuser-query' => 'Запросить свежие правки',
 4860+ 'checkuser-target' => 'Участник или IP-адрес',
 4861+ 'checkuser-users' => 'Получить участников',
 4862+ 'checkuser-edits' => 'Запросить правки, сделанные с IP-адреса',
 4863+ 'checkuser-ips' => 'Запросить IP-адреса',
 4864+ 'checkuser-account' => 'Правки учётной записи',
 4865+ 'checkuser-search' => 'Найти',
 4866+ 'checkuser-period' => 'Длительность:',
 4867+ 'checkuser-week-1' => 'последняя неделя',
 4868+ 'checkuser-week-2' => 'последние две недели',
 4869+ 'checkuser-month' => 'последние 30 дней',
 4870+ 'checkuser-all' => 'все',
 4871+ 'checkuser-cidr-label' => 'Найти общий диапазон и затрагиваемые адреса для списка IP',
 4872+ 'checkuser-cidr-res' => 'Общая CIDR:',
 4873+ 'checkuser-empty' => 'Журнал пуст.',
 4874+ 'checkuser-nomatch' => 'Совпадений не найдено.',
 4875+ 'checkuser-nomatch-edits' => 'Соответствий не найдено.
 4876+Последняя правка сделана $1 в $2.',
 4877+ 'checkuser-check' => 'Проверить',
 4878+ 'checkuser-log-fail' => 'Невозможно добавить запись в журнал',
 4879+ 'checkuser-nolog' => 'Файл журнала не найден.',
 4880+ 'checkuser-blocked' => 'Заблокирован',
 4881+ 'checkuser-gblocked' => 'Заблокирован глобально',
 4882+ 'checkuser-locked' => 'Лишён доп. возможностей',
 4883+ 'checkuser-wasblocked' => 'Подвергался блокировке',
 4884+ 'checkuser-localonly' => 'Не глобальная',
 4885+ 'checkuser-massblock' => 'Заблокировать выбранных участников',
 4886+ 'checkuser-massblock-text' => 'Выбранные учётные записи будут заблокированы бессрочно с автоблокировкой и запретом создания новых учётных записей.
 4887+IP-адреса будут заблокированы на 1 неделю для непредставившихся участников, будет включён запрет на создание учётных записей.',
 4888+ 'checkuser-blocktag' => 'Заменить страницы участников на:',
 4889+ 'checkuser-blocktag-talk' => 'Заменить страницы обсуждения на:',
 4890+ 'checkuser-massblock-commit' => 'Заблокировать выбранных участников',
 4891+ 'checkuser-block-success' => "'''Сейчас {{PLURAL:$2|заблокирован $1 участник|заблокированы $1 участника|заблокированы $1 участников}}.'''",
 4892+ 'checkuser-block-failure' => "'''Нет заблокированных участников.'''",
 4893+ 'checkuser-block-limit' => 'Выбрано слишком много участников.',
 4894+ 'checkuser-block-noreason' => 'Вы должны указать причину блокировок.',
 4895+ 'checkuser-accounts' => '$1 {{PLURAL:$1|новая учётная запись|новых учётных записи|новых учётных записей}}',
 4896+ 'checkuser-too-many' => 'Слишком много результатов, пожалуйста, сузьте CIDR. Использованные IP (максимум 5000, отсортировано по адресу):',
 4897+ 'checkuser-user-nonexistent' => 'Указанного участника не существует',
 4898+ 'checkuser-search-form' => 'Найти записи журнала, где $1 является $2',
 4899+ 'checkuser-search-submit' => 'Найти',
 4900+ 'checkuser-search-initiator' => 'инициатор',
 4901+ 'checkuser-search-target' => 'цель',
 4902+ 'checkuser-ipeditcount' => '~$1 от всех участников',
 4903+ 'checkuser-log-subpage' => 'Журнал',
 4904+ 'checkuser-log-return' => 'Возврат к странице проверки участников',
 4905+ 'checkuser-limited' => "'''Результаты были усечены чтобы не создавать дополнительной нагрузки на сервер.'''",
 4906+ 'checkuser-log-userips' => '$1 получил IP адреса для $2',
 4907+ 'checkuser-log-ipedits' => '$1 получил правки для $2',
 4908+ 'checkuser-log-ipusers' => '$1 получил учётные записи для $2',
 4909+ 'checkuser-log-ipedits-xff' => '$1 получил правки для XFF $2',
 4910+ 'checkuser-log-ipusers-xff' => '$1 получил учётные записи для XFF $2',
 4911+ 'checkuser-log-useredits' => '$1 получил правки $2',
 4912+ 'checkuser-autocreate-action' => 'был создан автоматически',
 4913+ 'checkuser-email-action' => 'отправил письмо участнику «$1»',
 4914+ 'checkuser-reset-action' => 'сбросил пароль для участника $1',
 4915+);
 4916+
 4917+/** Yakut (Саха тыла)
 4918+ * @author HalanTul
 4919+ */
 4920+$messages['sah'] = array(
 4921+ 'checkuser-summary' => "Бу үстүрүмүөнү кыттааччы IP-ларын көрөргө, эбэтэр IP-аадырыһы туһаммыт хас да кыттааччы уларытыыларын көрөргө туттуохха сөп.
 4922+Биир IP-аадырыстан оҥоһуллубут көннөрүүлэри, эбэтэр ону туһаммыт X-Forwarded-For ыйыллыбыт кыттааччылары көрөргө, бу префиксы IP-га туруоран биэр: <code>/xff</code>. Поддерживаемые версии IP: 4 (CIDR 16—32) и 6 (CIDR 96—128).
 4923+Систиэмэни ноҕуруускалаамаары бастакы 5000 көннөрүү эрэ көрдөрүллүөҕэ. Бу сирэйи '''сиэрдээхтик''' тутун.",
 4924+ 'checkuser-desc' => 'Кыттаачылар IP-ларын уонна кинилэр тустарынан атын сибидиэнньэлэри көрөр кыаҕы биэрии.',
 4925+ 'checkuser-logcase' => 'Сурунаалга көрдөөһүн улахан/кыра буукубалары араарар.',
 4926+ 'checkuser' => 'Кыттааччыны бэрэбиэркэлээ',
 4927+ 'checkuser-contribs' => 'кыттааччы IP-тын тургутуу',
 4928+ 'group-checkuser' => 'Кыттааччылары бэрэбиэркэлээччилэр',
 4929+ 'group-checkuser-member' => 'Кыттааччылары бэрэбиэркэлээччи',
 4930+ 'right-checkuser' => 'Кыттааччылар IP-ларын уонна атын сибидиэнньэлэрин тургутуу',
 4931+ 'right-checkuser-log' => 'Кыттаачылары тургутуу сурунаалын көрүү',
 4932+ 'grouppage-checkuser' => '{{ns:project}}:Кыттааччылары бэрэбиэркэлээһин',
 4933+ 'checkuser-reason' => 'Төрүөтэ:',
 4934+ 'checkuser-showlog' => 'Сурунаалы көрдөр',
 4935+ 'checkuser-log' => 'Кыттаачылары бэрэбиэркэлээһин сурунаала',
 4936+ 'checkuser-query' => 'Саҥа көннөрүүлэри көрдөр',
 4937+ 'checkuser-target' => 'Кыттааччы эбэтэр IP',
 4938+ 'checkuser-users' => 'Кыттаачылары ыларга',
 4939+ 'checkuser-edits' => 'Бу IP-тан оҥоһуллубут көннөрүүлэри көрөргө',
 4940+ 'checkuser-ips' => 'IP-лары көрдөр',
 4941+ 'checkuser-account' => 'Ааты уларытыы',
 4942+ 'checkuser-search' => 'Көрдөө',
 4943+ 'checkuser-period' => 'Уһуна:',
 4944+ 'checkuser-week-1' => 'бүтэһик нэдиэлэ',
 4945+ 'checkuser-week-2' => 'бүтэһик икки нэдиэлэ',
 4946+ 'checkuser-month' => 'бүтэһик 30 хонук',
 4947+ 'checkuser-all' => 'барыта',
 4948+ 'checkuser-cidr-label' => 'IP тиһигин уопсай диапазонун уонна таарыллар аадырыстарын булуу',
 4949+ 'checkuser-cidr-res' => 'Уопсай CIDR:',
 4950+ 'checkuser-empty' => 'Сурунаал кураанах',
 4951+ 'checkuser-nomatch' => 'Сөп түбэһиилэр көстүбэтилэр',
 4952+ 'checkuser-nomatch-edits' => 'Сөп түбэһии көстубэтэ.
 4953+Бүтэһик көннөрүү $1, $2 оҥоһуллубут.',
 4954+ 'checkuser-check' => 'Бэрэбиэркэлээ',
 4955+ 'checkuser-log-fail' => 'Сурунаалга сурук эбэр табыллыбат(а)',
 4956+ 'checkuser-nolog' => 'Сурунаал билэтэ көстүбэтэ',
 4957+ 'checkuser-blocked' => 'Тугу эмэ гынара бобуллубут',
 4958+ 'checkuser-gblocked' => 'Төгүрүччү хааччахтаммыт',
 4959+ 'checkuser-locked' => 'Эбии кыахтара сабыллыбыт',
 4960+ 'checkuser-wasblocked' => 'Урут бобуллубут',
 4961+ 'checkuser-localonly' => 'Биирдэһиллибит аан аат буолбатах',
 4962+ 'checkuser-massblock' => 'Талыллыбыт кыттааччылары боп',
 4963+ 'checkuser-massblock-text' => 'Талыллыбыт ааттар болдьоҕо суох бобуллуохтара. Бу ааттар аптамаатынан бобуллуохтара, маннык ааты саҥаттан оҥоруу эмиэ бобуллуо.
 4964+IP-аадырыстартан бэлиэтэммэккэ киирии уонна саҥа ааты оҥоруу 1 нэдиэлэҕэ бобуллуо.',
 4965+ 'checkuser-blocktag' => 'Кыттааччылар сирэйдэрин манныкка уларыт:',
 4966+ 'checkuser-blocktag-talk' => 'Ырытыы сирэйдэрин манныкка уларыт:',
 4967+ 'checkuser-massblock-commit' => 'Талыллыбыт кыттааччылары боп',
 4968+ 'checkuser-block-success' => "'''Билигин {{PLURAL:$2|$1 кыттааччы бобуллубут|$1 кыттааччы бобуллубут}}.'''",
 4969+ 'checkuser-block-failure' => "'''Бобуллубут кыттааччы суох.'''",
 4970+ 'checkuser-block-limit' => 'Наһаа элбэх киһини талбыккын',
 4971+ 'checkuser-block-noreason' => 'Бобуу төрүөтүн этиэхтээххин.',
 4972+ 'checkuser-accounts' => '$1 саҥа {{PLURAL:$1|аат|ааттар}}',
 4973+ 'checkuser-too-many' => 'Наһаа элбэх булулунна, бука диэн CIDR кыччатан биэр. Туһаныллыбыт IP (саамай элбэҕэ 5000, бу аадырыһынан наардаммыт):',
 4974+ 'checkuser-user-nonexistent' => 'Маннык ааттаах кыттааччы суох',
 4975+ 'checkuser-search-form' => '$1 сурунаалга $2 буоларын бул',
 4976+ 'checkuser-search-submit' => 'Буларга',
 4977+ 'checkuser-search-initiator' => 'саҕалааччы',
 4978+ 'checkuser-search-target' => 'сыал-сорук',
 4979+ 'checkuser-ipeditcount' => '~$1 бары кыттааччылартан',
 4980+ 'checkuser-log-subpage' => 'Сурунаал',
 4981+ 'checkuser-log-return' => 'Кытааччылары бэрэбиэркэлээһин сүрүн сирэйигэр төнүн',
 4982+ 'checkuser-limited' => "'''Түмүк, сиэрбэри наһаа ноҕуруускалаамаары, сорҕото быһыллыбыт.'''",
 4983+ 'checkuser-log-userips' => '$1 манна анаан $2 IP аадырыстаах',
 4984+ 'checkuser-log-ipedits' => '$1 манна анаан $2 көннөрүүлэрдээх',
 4985+ 'checkuser-log-ipusers' => '$1 манна анаан $2 ааттардаах (учётные записи)',
 4986+ 'checkuser-log-ipedits-xff' => '$1 манна анаан XFF $2 көннөрүүлэрдээх',
 4987+ 'checkuser-log-ipusers-xff' => '$1 кыттаачылары ылбыт (для XFF $2)',
 4988+ 'checkuser-log-useredits' => '$1 $2 көннөрүүлэрин ылбыт',
 4989+ 'checkuser-autocreate-action' => 'аптамаатынан оҥоһуллубут',
 4990+ 'checkuser-email-action' => '"$1" кыттаачыга сурук ыыппыт',
 4991+ 'checkuser-reset-action' => '"$1" киирии тылын бырахпыт',
 4992+);
 4993+
 4994+/** Sardinian (Sardu)
 4995+ * @author Marzedu
 4996+ */
 4997+$messages['sc'] = array(
 4998+ 'checkuser-reason' => 'Motivu:',
 4999+ 'checkuser-target' => 'Usuàriu o IP',
 5000+ 'checkuser-search' => 'Chirca',
 5001+ 'checkuser-period' => 'Durada:',
 5002+ 'checkuser-week-1' => 'ùrtima chida',
 5003+ 'checkuser-week-2' => 'ùrtimas duas chidas',
 5004+ 'checkuser-month' => 'ùrtimas 30 dies',
 5005+ 'checkuser-all' => 'totu',
 5006+ 'checkuser-search-submit' => 'Chirca',
 5007+ 'checkuser-ipeditcount' => '~$1 dae totu is usuàrios',
 5008+);
 5009+
 5010+/** Sicilian (Sicilianu)
 5011+ * @author Santu
 5012+ */
 5013+$messages['scn'] = array(
 5014+ 'checkuser-summary' => "Stu strumentu analizza li mudìfichi fatti di picca pi ricupirari li nnirizzi IP utilizzati di n'utenti o ammustrari cuntribbuti e dati di nu IP. Utenti e cuntribbuti di nu client IP ponnu èssiri rintracciati pi menzu dî header XFF juncennu a l'IP lu suffissu \"/xff\". Sunnu suppurtati IPv4 (CIDR 16-32) e IPv6 (CIDR 96-128). Non vènunu turnati chiossai di 5.000 mudifichi, pi mutivi di pristazzioni. Usa stu strumentu 'n stritta cunfurmità a li policy.",
 5015+ 'checkuser-desc' => "Pirmetti a l'utenti cu li giusti autorizzazzioni du suttapuniri a virifica li nnirizzi IP e àutri nfurmazzioni di l'utenti stissi",
 5016+ 'checkuser-logcase' => "La circata nnê log è ''case sensitive'' (diffirènzia ntra maiùsculi e minùsculi)",
 5017+ 'checkuser' => 'Cuntrolli utenzi',
 5018+ 'group-checkuser' => 'Cuntrullori',
 5019+ 'group-checkuser-member' => 'Cuntrullori',
 5020+ 'right-checkuser' => "Talìa li nnirizzi IP usati di l'utenti a àutri nfurmazzioni",
 5021+ 'right-checkuser-log' => 'Talìa li log di li checkuser',
 5022+ 'grouppage-checkuser' => '{{ns:project}}:Cuntrollu utenzi',
 5023+ 'checkuser-reason' => 'Mutivazzioni',
 5024+ 'checkuser-showlog' => 'Ammustra lu log',
 5025+ 'checkuser-log' => 'Log di li checkuser',
 5026+ 'checkuser-query' => "Cera nta l'ùrtimi mudìfichi",
 5027+ 'checkuser-target' => 'Utenti o IP',
 5028+ 'checkuser-users' => 'Cerca utenti',
 5029+ 'checkuser-edits' => 'Talìa li cuntribbuti di li IP',
 5030+ 'checkuser-ips' => 'Cerca IP',
 5031+ 'checkuser-account' => "Talìa li cuntribbuti di l'account",
 5032+ 'checkuser-search' => 'Cerca',
 5033+ 'checkuser-period' => 'Pirìudu:',
 5034+ 'checkuser-week-1' => 'ùrtima simana',
 5035+ 'checkuser-week-2' => 'ùrtimi dui simani',
 5036+ 'checkuser-month' => 'ùrtimi 30 jorna',
 5037+ 'checkuser-all' => 'tutti li canciamenti',
 5038+ 'checkuser-empty' => 'Lu log non havi dati.',
 5039+ 'checkuser-nomatch' => 'Nuddu risurtatu attruvatu.',
 5040+ 'checkuser-nomatch-edits' => 'Nuddu risurtatu attruvatu.
 5041+Ùrtimu canciamentu fattu a li $2 di lu $1.',
 5042+ 'checkuser-check' => 'Cuntrolla',
 5043+ 'checkuser-log-fail' => 'Mpussìbbili junciri la vuci a lu log',
 5044+ 'checkuser-nolog' => 'Non vinni atruvatu nuddu file di log.',
 5045+ 'checkuser-blocked' => 'Bluccatu',
 5046+ 'checkuser-gblocked' => 'Bluccattu glubbarmenti',
 5047+ 'checkuser-locked' => 'Chiuruti',
 5048+ 'checkuser-wasblocked' => 'Bluccatu prima di ora',
 5049+ 'checkuser-localonly' => 'No unificata',
 5050+ 'checkuser-massblock' => "Blocca l'utenti silizziunati",
 5051+ 'checkuser-massblock-text' => "L'account silizziunati vennu bluccati pi sempri, cô bloccu autumàticu attivatu e la criazzioni di novi account disattivata.
 5052+Li nnirizzi IP vennu bluccati pi na simana sulu pi l'utenti anònimi e câ criazzioni account disattivata.",
 5053+ 'checkuser-blocktag' => 'Scancia pàggini utenti cu:',
 5054+ 'checkuser-blocktag-talk' => 'Scancia pàggini utenti di discussioni cu:',
 5055+ 'checkuser-massblock-commit' => 'Blocca utenti silizziunati',
 5056+ 'checkuser-block-success' => "'''{{PLURAL:$2|L'utenti|Li utenti}} $1 {{PLURAL:$2|è ora bluccatu|sunnu ora bluccati}}.'''",
 5057+ 'checkuser-block-failure' => "'''Nuddu utenti bluccatu.'''",
 5058+ 'checkuser-block-limit' => 'Troppi utenti silizziunati.',
 5059+ 'checkuser-block-noreason' => 'È òbbricu dari na mutivazzioni pi li blocchi.',
 5060+ 'checkuser-accounts' => '$1 {{PLURAL:$1|novo|novi}} account',
 5061+ 'checkuser-too-many' => "Li nùmmira dî risulrtati è troppu assai, usari nu CIDR cchiù nicu. Si sècutu sù nnicati li nnirizzi IP utilizzati (nzinu a non chiossai di 5000, misi 'n òrdini pi nnirizzu):",
 5062+ 'checkuser-user-nonexistent' => "L'utenti nnicatu non esisti.",
 5063+ 'checkuser-search-form' => 'Attrova li vuci di li log pi li quali $1 è $2',
 5064+ 'checkuser-search-submit' => 'Circata',
 5065+ 'checkuser-search-initiator' => 'Nizziaturi',
 5066+ 'checkuser-search-target' => 'ubbiettivu',
 5067+ 'checkuser-ipeditcount' => "~$1 pi tutti pari l'utenti",
 5068+ 'checkuser-log-subpage' => 'Log',
 5069+ 'checkuser-log-return' => 'Torna ô mòdulu principali di Cuntrollu utenzi',
 5070+ 'checkuser-limited' => "'''Li risurtati foru truncati pi mutivi di pristazzioni.'''",
 5071+ 'checkuser-log-userips' => '$1 uttinìu li nnirizzi IP di $2',
 5072+ 'checkuser-log-ipedits' => '$1 uttinìu li mudìfichi di $2',
 5073+ 'checkuser-log-ipusers' => '$1 uttinìu li utenzi di $2',
 5074+ 'checkuser-log-ipedits-xff' => '$1 uttinìu li mudìfichi di $2 pi XFF',
 5075+ 'checkuser-log-ipusers-xff' => "$1 uttinìu l'utenzi di $2 pi XFF",
 5076+ 'checkuser-log-useredits' => '$1 uttinìu li cuntribbuti di $2',
 5077+ 'checkuser-autocreate-action' => 'fu criatu autumàticamenti',
 5078+ 'checkuser-email-action' => 'inviau n\' e-mail a "$1"',
 5079+ 'checkuser-reset-action' => 'mposta n\'àutra vota password pi l\'utenti "$1"',
 5080+);
 5081+
 5082+/** Sinhala (සිංහල)
 5083+ * @author නන්දිමිතුරු
 5084+ */
 5085+$messages['si'] = array(
 5086+ 'checkuser-reason' => 'හේතුව:',
 5087+ 'checkuser-showlog' => 'ලඝු-සටහන පෙන්වන්න',
 5088+ 'checkuser-search' => 'ගවේෂණය',
 5089+ 'checkuser-period' => 'කාල සීමාව:',
 5090+ 'checkuser-week-1' => 'පසුගිය සතිය',
 5091+ 'checkuser-week-2' => 'පසුගිය සති දෙක',
 5092+ 'checkuser-month' => 'පසුගිය දින 30',
 5093+ 'checkuser-all' => 'සියල්ල',
 5094+ 'checkuser-empty' => 'ලඝු-සටහනෙහි කිසිදු අයිතමයක් නොමැත.',
 5095+ 'checkuser-nomatch' => 'කිසිදු ගැලපුමක් සමුනොවිනි.',
 5096+ 'checkuser-nomatch-edits' => 'කිසිදු ගැලපුමක් සමුනොවිනි. අවසන් සංස්කරණය $1 වෙත සිදුකොට තිබිණි.',
 5097+ 'checkuser-check' => 'පරික්ෂා කරන්න',
 5098+ 'checkuser-log-fail' => 'ලඝු-සටහනක් එකතු කිරීමට නොහැක',
 5099+ 'checkuser-nolog' => 'ලඝු-සටහන් ගොනුවක් හමු නොවිණි.',
 5100+ 'checkuser-log-userips' => 'සංස්කරණය සඳහා $2 විසින් භාවිත කෙරුණු අන්තර්ජාල ලිපිනයන් $1 විසින් පරික්‍ෂා කොට දැනගෙන ඇත',
 5101+ 'checkuser-log-ipedits' => '$2 අන්තර්ජාල ලිපිනය වෙතින් සිදු කෙරුණු සංස්කරණයන් $1 විසින් පරික්‍ෂා කොට දැනගෙන ඇත',
 5102+ 'checkuser-log-ipusers' => '$2 අන්තර්ජාල ලිපිනය භාවිතා කල පරිශීලකයන් $1 විසින් පරික්‍ෂා කොට දැනගෙන ඇත',
 5103+ 'checkuser-log-ipedits-xff' => '$2 XFF අන්තර්ජාල ලිපිනය මගින් සිදු කෙරුණු සංස්කරණයන් $1 විසින් පරික්‍ෂා කොට දැනගෙන ඇත',
 5104+ 'checkuser-log-ipusers-xff' => '$2 XFF අන්තර්ජාල ලිපිනය භාවිතා කල පරිශීලකයන් $1 විසින් පරික්‍ෂා කොට දැනගෙන ඇත',
 5105+ 'checkuser-log-useredits' => '$2 අන්තර්ජාල ලිපිනය වෙතින් සිදු කෙරුණු සංස්කරණයන් $1 විසින් පරික්‍ෂා කොට දැනගෙන ඇත',
 5106+ 'checkuser-autocreate-action' => 'ස්වයංක්‍රීය ලෙස තැනිණි',
 5107+ 'checkuser-email-action' => ' "$1" පරිශීලක වෙත විද්‍යුත්-ගැපෑලක් යැවිණි',
 5108+);
 5109+
 5110+/** Slovak (Slovenčina)
 5111+ * @author Helix84
 5112+ * @author Martin Kozák
 5113+ */
 5114+$messages['sk'] = array(
 5115+ 'checkuser-summary' => 'Tento nástroj kontroluje Posledné úpravy, aby získal IP adresy používané používateľom alebo zobrazil úpravy/používateľské dáta IP adresy.
 5116+ Používateľov a úpravy je možné získať s XFF IP pridaním „/xff“ k IP. Sú podporované IPv4 (CIDR 16-32) a IPv6 (CIDR 96-128).
 5117+ Z dôvodov výkonnosti nebude vrátených viac ako 5000 úprav. Túto funkciu využívajte len v súlade s platnou politikou.',
 5118+ 'checkuser-desc' => 'Dáva používateľom s príslušným oprávnením možnosť overovať IP adresu a iné informácie o používateľovi',
 5119+ 'checkuser-logcase' => 'Vyhľadávanie v zázname zohľadňuje veľkosť písmen.',
 5120+ 'checkuser' => 'Overiť používateľa',
 5121+ 'checkuser-contribs' => 'skontrolovať IP používateľa',
 5122+ 'group-checkuser' => 'Revízor',
 5123+ 'group-checkuser-member' => 'Revízori',
 5124+ 'right-checkuser' => 'Skontrolovať IP adresy a iné informácie používateľov',
 5125+ 'right-checkuser-log' => 'Zobraziť záznam kontrol používateľov',
 5126+ 'grouppage-checkuser' => '{{ns:project}}:Revízia používateľa',
 5127+ 'checkuser-reason' => 'Dôvod:',
 5128+ 'checkuser-showlog' => 'Zobraziť záznam',
 5129+ 'checkuser-log' => 'Záznam kontroly používateľov',
 5130+ 'checkuser-query' => 'Získať z posledných úprav',
 5131+ 'checkuser-target' => 'Používateľ alebo IP',
 5132+ 'checkuser-users' => 'Získať používateľov',
 5133+ 'checkuser-edits' => 'Získať úpravy z IP',
 5134+ 'checkuser-ips' => 'Získať IP adresy',
 5135+ 'checkuser-account' => 'Zistiť úpravy používateľa',
 5136+ 'checkuser-search' => 'Hľadať',
 5137+ 'checkuser-period' => 'Trvanie:',
 5138+ 'checkuser-week-1' => 'posledný týždeň',
 5139+ 'checkuser-week-2' => 'posledné dva týždne',
 5140+ 'checkuser-month' => 'posledných 30 dní',
 5141+ 'checkuser-all' => 'všetky',
 5142+ 'checkuser-cidr-label' => 'Nájsť spoločný rozsah zoznam IP adries a doňho patriace adresy',
 5143+ 'checkuser-cidr-res' => 'Spoločná sieť v CIDR zápise:',
 5144+ 'checkuser-empty' => 'Záznam neobsahuje žiadne položky.',
 5145+ 'checkuser-nomatch' => 'Žiadny vyhovujúci záznam.',
 5146+ 'checkuser-nomatch-edits' => 'Neboli nájdené zhody.
 5147+Posledná úprava bola $1 o $2.',
 5148+ 'checkuser-check' => 'Skontrolovať',
 5149+ 'checkuser-log-fail' => 'Nebolo možné pridať položku záznamu',
 5150+ 'checkuser-nolog' => 'Nebol nájdený súbor záznamu.',
 5151+ 'checkuser-blocked' => 'Zablokovaný',
 5152+ 'checkuser-gblocked' => 'Globálne zablokovaný',
 5153+ 'checkuser-locked' => 'Zamknutý',
 5154+ 'checkuser-wasblocked' => 'už bol zablokovaný',
 5155+ 'checkuser-localonly' => 'Nezjednotené',
 5156+ 'checkuser-massblock' => 'Zablokovať vybraných používateľov',
 5157+ 'checkuser-massblock-text' => 'Vybrané účty sa zablokujú na neurčito, automatické blokovanie bude zapnuté a vytváranie účtov vypnuté.
 5158+IP adresy sa zablokujú na 1 týždeň pri iba anonymných používateľoch a vytváranie účtov bude vypnuté.',
 5159+ 'checkuser-blocktag' => 'Nahradiť používateľké stránky textom:',
 5160+ 'checkuser-blocktag-talk' => 'nahradiť diskusné stránky čím:',
 5161+ 'checkuser-massblock-commit' => 'Zablokovať vybraných používateľov',
 5162+ 'checkuser-block-success' => "'''{{PLURAL:$2|Používateľ|Používatelia}} $1 {{PLURAL:$2|je|sú}} odteraz zablokovaní.'''",
 5163+ 'checkuser-block-failure' => "'''Žiaden používateľ nebol zablokovaný.'''",
 5164+ 'checkuser-block-limit' => 'Bolo zvolených príliš veľa používateľov.',
 5165+ 'checkuser-block-noreason' => 'Musíte zadať dôvod blokovaní.',
 5166+ 'checkuser-accounts' => '$1 {{PLURAL:$1|nový účet|nové účty|nových účtov}}',
 5167+ 'checkuser-too-many' => 'Príliš veľa výsledkov, prosím zúžte CIDR. Tu sú použité IP (max. 5 000, zoradené podľa adresy):',
 5168+ 'checkuser-user-nonexistent' => 'Uvedený používateľ neexistuje.',
 5169+ 'checkuser-search-form' => 'Nájsť položky záznamu, kde $1 je $2',
 5170+ 'checkuser-search-submit' => 'Hľadať',
 5171+ 'checkuser-search-initiator' => 'začínajúci',
 5172+ 'checkuser-search-target' => 'cieľ',
 5173+ 'checkuser-ipeditcount' => 'asi $1 zo všetkých používateľov',
 5174+ 'checkuser-log-subpage' => 'Záznam',
 5175+ 'checkuser-log-return' => 'Vrátiť sa na hlavný formulár CheckUser',
 5176+ 'checkuser-limited' => "'''Tieto výsledky boli z výkonnostných dôvodov skrátené.'''",
 5177+ 'checkuser-log-userips' => '$1 má IP adresy $2',
 5178+ 'checkuser-log-ipedits' => '$1 má úpravy $2',
 5179+ 'checkuser-log-ipusers' => '$1 má používateľov $2',
 5180+ 'checkuser-log-ipedits-xff' => '$1 má úpravy XFF $2',
 5181+ 'checkuser-log-ipusers-xff' => '$1 má používateľov XFF $2',
 5182+ 'checkuser-log-useredits' => '$1 má úpravy $2',
 5183+ 'checkuser-autocreate-action' => 'bol automaticky vytvorený',
 5184+ 'checkuser-email-action' => 'poslaný email používateľovi „$1”',
 5185+ 'checkuser-reset-action' => 'vytvoriť nové heslo pre používateľa „$1”',
 5186+);
 5187+
 5188+/** Albanian (Shqip)
 5189+ * @author Dori
 5190+ */
 5191+$messages['sq'] = array(
 5192+ 'checkuser' => 'Kontrollo përdoruesin',
 5193+);
 5194+
 5195+/** Serbian Cyrillic ekavian (ћирилица)
 5196+ * @author Millosh
 5197+ * @author Sasa Stefanovic
 5198+ * @author Јованвб
 5199+ * @author Михајло Анђелковић
 5200+ */
 5201+$messages['sr-ec'] = array(
 5202+ 'checkuser-desc' => 'Даје сарадницима са одговарајућим правима могућност да провере ИП адресе сарадника и друге информације.',
 5203+ 'checkuser-logcase' => 'Претрага лога је осетљива на мала и велика слова.',
 5204+ 'checkuser' => 'Чекјузер',
 5205+ 'group-checkuser' => 'Чекјузери',
 5206+ 'group-checkuser-member' => 'Чекјузер',
 5207+ 'right-checkuser' => 'Проверава сарадничке ИП адресе и друге информације.',
 5208+ 'right-checkuser-log' => 'Погледај чекјузер лог',
 5209+ 'grouppage-checkuser' => '{{ns:project}}:Чекјузер',
 5210+ 'checkuser-reason' => 'Резлог:',
 5211+ 'checkuser-showlog' => 'Прикажи лог.',
 5212+ 'checkuser-log' => 'Лог чекјузера.',
 5213+ 'checkuser-query' => 'Упит на скорашње измене.',
 5214+ 'checkuser-target' => 'Корисник или ИП',
 5215+ 'checkuser-users' => 'Прикупљање сарадничких имена.',
 5216+ 'checkuser-edits' => 'Прикупљање измена од стране ИП адресе.',
 5217+ 'checkuser-ips' => 'Прикупља ИП адресе.',
 5218+ 'checkuser-account' => 'Преузми измене налога',
 5219+ 'checkuser-search' => 'Претрага',
 5220+ 'checkuser-period' => 'Трајање:',
 5221+ 'checkuser-week-1' => 'последња недеља',
 5222+ 'checkuser-week-2' => 'последње две недеље',
 5223+ 'checkuser-month' => 'последњих 30 дана',
 5224+ 'checkuser-all' => 'све',
 5225+ 'checkuser-empty' => 'Лог не садржи ништа.',
 5226+ 'checkuser-nomatch' => 'Нема погодака.',
 5227+ 'checkuser-check' => 'Провера',
 5228+ 'checkuser-log-fail' => 'Није било могуће додати податак у лог.',
 5229+ 'checkuser-nolog' => 'Ниједан фајл с логовима није пронађен.',
 5230+ 'checkuser-blocked' => 'Блокиран',
 5231+ 'checkuser-gblocked' => 'Блокиран глобално',
 5232+ 'checkuser-locked' => 'Закључано',
 5233+ 'checkuser-wasblocked' => 'Претходно блокиран',
 5234+ 'checkuser-localonly' => 'Није унифицирано',
 5235+ 'checkuser-massblock' => 'Блокирај изабраног корисника',
 5236+ 'checkuser-blocktag' => 'Замени корисничке странице са:',
 5237+ 'checkuser-blocktag-talk' => 'Замени стране за разговор са:',
 5238+ 'checkuser-massblock-commit' => 'Блокирај изабраног корисника',
 5239+ 'checkuser-block-success' => "'''{{PLURAL:$2|Корисник|Корисници}} $1 {{PLURAL:$2|је сада блокиран|су сада блокирани}}.'''",
 5240+ 'checkuser-block-failure' => "'''Нема блокираних корисника.'''",
 5241+ 'checkuser-block-limit' => 'Превише корисника је изабрано.',
 5242+ 'checkuser-block-noreason' => 'Морате дати разлог за блок.',
 5243+ 'checkuser-accounts' => '$1 {{PLURAL:$1|нови налог|нових налога}}',
 5244+ 'checkuser-too-many' => 'Превише резултата; смањи CIDR. Ево списка коришћених ИП адреса (максимално 5000, сортирано по адреси):',
 5245+ 'checkuser-user-nonexistent' => 'Тражени сарадник не постоји.',
 5246+ 'checkuser-search-form' => 'Претрага лога где је $1 једнако $2.',
 5247+ 'checkuser-search-submit' => 'Претрага',
 5248+ 'checkuser-search-initiator' => 'покретач',
 5249+ 'checkuser-search-target' => 'циљ',
 5250+ 'checkuser-ipeditcount' => '~$1 од свих сарадника',
 5251+ 'checkuser-log-subpage' => 'лог',
 5252+ 'checkuser-log-return' => 'Повратак на основну форму чекјузера.',
 5253+ 'checkuser-log-userips' => '$1 је добио ИП адресе за $2',
 5254+ 'checkuser-log-ipedits' => '$1 је добио измене за $2',
 5255+ 'checkuser-log-ipusers' => '$1 је добио сараднике за $2',
 5256+ 'checkuser-log-ipedits-xff' => '$1 је добио измене за XFF $2',
 5257+ 'checkuser-log-ipusers-xff' => '$1 је добио сараднике за XFF $2',
 5258+ 'checkuser-log-useredits' => '$1 преузео измене од $2',
 5259+ 'checkuser-autocreate-action' => 'је аутоматски направљен',
 5260+ 'checkuser-email-action' => 'послат је мејл кориснику "$1"',
 5261+ 'checkuser-reset-action' => 'обнови лозинку за корисника "$1"',
 5262+);
 5263+
 5264+/** latinica (latinica) */
 5265+$messages['sr-el'] = array(
 5266+ 'checkuser' => 'Čekjuzer',
 5267+ 'group-checkuser' => 'Čekjuzeri',
 5268+ 'group-checkuser-member' => 'Čekjuzer',
 5269+ 'grouppage-checkuser' => '{{ns:project}}:Čekjuzer',
 5270+);
 5271+
 5272+/** Seeltersk (Seeltersk)
 5273+ * @author Pyt
 5274+ */
 5275+$messages['stq'] = array(
 5276+ 'checkuser-summary' => 'Disse Reewe truchsäkt do lääste Annerengen, uum ju IP-Adresse fon n Benutser
 5277+ blw. do Beoarbaidengen/Benutsernoomen foar ne IP-Adresse fäästtoustaalen. Benutsere un
 5278+Beoarbaidengen fon ne IP-Adresse konnen uk ätter Informatione uut do XFF-Headere
 5279+ oufräiged wäide, as an ju IP-Adresse n „/xff“ anhonged wäd. (CIDR 16-32) un IPv6 (CIDR 96-128) wäide unnerstutsed.
 5280+ Uut Perfomance-Gruunde wäide maximoal 5000 Beoarbaidengen uutroat. Benutsje CheckUser bloot in Uureenstämmenge mäd do Doatenschutsgjuchtlienjen.',
 5281+ 'checkuser-desc' => 'Ferlööwet Benutsere mäd do äntspreekende Gjuchte do IP-Adressen as uk wiedere Informatione fon Benutsere tou wröigjen.',
 5282+ 'checkuser-logcase' => 'Ju Säike in dät Logbouk unnerschat twiske Groot- un Littikschrieuwen.',
 5283+ 'checkuser' => 'Checkuser',
 5284+ 'group-checkuser' => 'Checkusers',
 5285+ 'group-checkuser-member' => 'Checkuser-Begjuchtigde',
 5286+ 'right-checkuser' => 'Wröigenge fon IP-Adressen as uk Ferbiendengen twiske IPs un ounmäldede Benutsere',
 5287+ 'right-checkuser-log' => 'Bekiekjen fon dät Checkuser-Logbouk',
 5288+ 'grouppage-checkuser' => '{{ns:project}}:CheckUser',
 5289+ 'checkuser-reason' => 'Gruund:',
 5290+ 'checkuser-showlog' => 'Logbouk anwiese',
 5291+ 'checkuser-log' => 'Checkuser-Logbouk',
 5292+ 'checkuser-query' => 'Lääste Annerengen oufräigje',
 5293+ 'checkuser-target' => 'Benutser of IP-Adresse',
 5294+ 'checkuser-users' => 'Hoal Benutsere',
 5295+ 'checkuser-edits' => 'Hoal Beoarbaidengen fon IP-Adresse',
 5296+ 'checkuser-ips' => 'Hoal IP-Adressen',
 5297+ 'checkuser-account' => 'Hoal Beoarbaidengen fon Benutserkonto',
 5298+ 'checkuser-search' => 'Säike (uk ap Düütsk4)',
 5299+ 'checkuser-period' => 'Tiedruumte:',
 5300+ 'checkuser-week-1' => 'lääste 7 Deege',
 5301+ 'checkuser-week-2' => 'lääste 14 Deege',
 5302+ 'checkuser-month' => 'lääste 30 Deege',
 5303+ 'checkuser-all' => 'aal',
 5304+ 'checkuser-cidr-label' => 'Fiend gemeensoamen Adressberäk un betroffene Adresse foar ne Lieste fon IP-Adressen',
 5305+ 'checkuser-cidr-res' => 'Gemeenskuppelke CIDR:',
 5306+ 'checkuser-empty' => 'Dät Logbouk änthaalt neen Iendraage.',
 5307+ 'checkuser-nomatch' => 'Neen Uureenstämmengen fuunen.',
 5308+ 'checkuser-nomatch-edits' => 'Neen Uureenstimmengen fuunen. Lääste Beoarbaidenge waas an n $1 uum $2.',
 5309+ 'checkuser-check' => 'Uutfiere',
 5310+ 'checkuser-log-fail' => 'Logbouk-Iendraach kon nit bietouföiged wäide.',
 5311+ 'checkuser-nolog' => 'Neen Logbouk fuunen.',
 5312+ 'checkuser-blocked' => 'speerd',
 5313+ 'checkuser-gblocked' => 'globoal speerd',
 5314+ 'checkuser-locked' => 'sleeten',
 5315+ 'checkuser-wasblocked' => 'fröier speerd',
 5316+ 'checkuser-localonly' => 'nit touhoopefierd',
 5317+ 'checkuser-massblock' => 'Speer do uutwäälde Benutsere',
 5318+ 'checkuser-massblock-text' => 'Do uutwäälde Benutserkonten wäide duurhaft speerd (Autoblock is aktiv un ju Anloage fon näie Benutserkonten wäd unnerbuunen).
 5319+IP-Adressen wäide foar een Wiek speerd (bloot foar anonyme Benutsere, ju Anloage fon näie Benutserkonten wäd unnerbuunen).',
 5320+ 'checkuser-blocktag' => 'Inhoold fon ju Benutsersiede ärsätte truch:',
 5321+ 'checkuser-blocktag-talk' => 'Diskussionssieden ärsätte truch:',
 5322+ 'checkuser-massblock-commit' => 'Speer do uutwäälde Benutsere',
 5323+ 'checkuser-block-success' => "'''{{PLURAL:$2|Die Benutser|Do Benutsere}} $1 {{PLURAL:$2|wuud|wuuden}} speerd.'''",
 5324+ 'checkuser-block-failure' => "'''Der wuuden neen Benutsere speerd.'''",
 5325+ 'checkuser-block-limit' => 'Der wuuden toufuul Benutsere uutwääld.',
 5326+ 'checkuser-block-noreason' => 'Du moast n Gruund foar ju Speere anreeke.',
 5327+ 'checkuser-accounts' => '{{PLURAL:$1|1 näi Benutserkonto|$1 näie Benutserkonten}}',
 5328+ 'checkuser-too-many' => 'Ju Lieste fon Resultoate is tou loang, gränsje dän IP-Beräk fääre ien. Hier sunt do benutsede IP-Adressen (maximoal 5000, sortierd ätter Adresse):',
 5329+ 'checkuser-user-nonexistent' => 'Die anroate Benutser bestoant nit.',
 5330+ 'checkuser-search-form' => 'Säik Lochboukiendraage, wier $1 $2 is.',
 5331+ 'checkuser-search-submit' => 'Säik',
 5332+ 'checkuser-search-initiator' => 'Initiator',
 5333+ 'checkuser-search-target' => 'Siel',
 5334+ 'checkuser-ipeditcount' => '~$1 fon aal Benutsere',
 5335+ 'checkuser-log-subpage' => 'Logbouk',
 5336+ 'checkuser-log-return' => 'Tourääch ätter dät CheckUser-Haudformular',
 5337+ 'checkuser-limited' => "'''Ju Resultoatelieste wuud uut Performancegruunden kuuted.'''",
 5338+ 'checkuser-log-userips' => '$1 hoalde IP-Adressen foar $2',
 5339+ 'checkuser-log-ipedits' => '$1 hoalde Beoarbaidengen foar $2',
 5340+ 'checkuser-log-ipusers' => '$1 hoalde Benutsere foar $2',
 5341+ 'checkuser-log-ipedits-xff' => '$1 hoalde Beoarbaidengen foar XFF $2',
 5342+ 'checkuser-log-ipusers-xff' => '$1 hoalde Benutsere foar XFF $2',
 5343+ 'checkuser-log-useredits' => '$1 hoalde Beoarbaidengen foar $2',
 5344+ 'checkuser-autocreate-action' => 'automatisk moaked',
 5345+ 'checkuser-email-action' => 'E-Mail an „$1“ soand',
 5346+ 'checkuser-reset-action' => 'Anfoarderenge fon n näi Paaswoud foar „Benutser:$1“',
 5347+);
 5348+
 5349+/** Sundanese (Basa Sunda)
 5350+ * @author Irwangatot
 5351+ * @author Kandar
 5352+ */
 5353+$messages['su'] = array(
 5354+ 'checkuser-desc' => 'Leler kawenangan pikeun mariksa alamat IP jeung émbaran lianna ti hiji pamaké',
 5355+ 'checkuser-logcase' => 'Panyungsi log ngabédakeun kapitalisasi.',
 5356+ 'checkuser' => 'Pamaké pamariksa',
 5357+ 'group-checkuser' => 'Pamaké pamariksa',
 5358+ 'group-checkuser-member' => 'Pamaké pamariksa',
 5359+ 'grouppage-checkuser' => '{{ns:project}}:Pamaké pamariksa',
 5360+ 'checkuser-reason' => 'Alesan',
 5361+ 'checkuser-showlog' => 'Témbongkeun log',
 5362+ 'checkuser-log' => 'Log PamakéPamariksa',
 5363+ 'checkuser-target' => 'Landihan atawa IP',
 5364+ 'checkuser-users' => 'Sungsi pamaké',
 5365+ 'checkuser-edits' => 'Sungsi éditan ti IP',
 5366+ 'checkuser-ips' => 'Sungsi IP',
 5367+ 'checkuser-search' => 'Sungsi',
 5368+ 'checkuser-empty' => 'Logna kosong.',
 5369+ 'checkuser-nomatch' => 'Euweuh nu cocog.',
 5370+ 'checkuser-check' => 'Pariksa',
 5371+ 'checkuser-log-fail' => 'Teu bisa nambahkeun kana log',
 5372+ 'checkuser-nolog' => 'Koropak log teu kapanggih.',
 5373+ 'checkuser-blocked' => 'Dipeungpeuk',
 5374+ 'checkuser-too-many' => 'Hasilna loba teuing, heureutan CIDR-na.
 5375+Di handap ieu béréndélan IP nu dipaké (paling loba 5000, disusun dumasar alamat):',
 5376+ 'checkuser-user-nonexistent' => 'Euweuh pamaké nu cocog jeung pamundut.',
 5377+ 'checkuser-search-form' => 'Téang éntri log nu $1-na sarua jeung $2',
 5378+ 'checkuser-search-submit' => 'Sungsi',
 5379+ 'checkuser-search-initiator' => 'inisiator',
 5380+ 'checkuser-search-target' => 'tujul',
 5381+ 'checkuser-ipeditcount' => '~$1 ti sakumna pamaké',
 5382+ 'checkuser-log-subpage' => 'Log',
 5383+ 'checkuser-log-return' => 'Balik ka formulir utama PamakéPamariksa',
 5384+ 'checkuser-log-userips' => '$1 manggih IP ti $2',
 5385+ 'checkuser-log-ipedits' => '$1 manggih éditan ti $2',
 5386+ 'checkuser-log-ipusers' => '$1 manggih pamaké ti $2',
 5387+ 'checkuser-log-ipedits-xff' => '$1 manggih éditan ti XFF $2',
 5388+ 'checkuser-log-ipusers-xff' => '$1 manggih pamaké ti XFF $2',
 5389+);
 5390+
 5391+/** Swedish (Svenska)
 5392+ * @author Boivie
 5393+ * @author Lejonel
 5394+ * @author Leo Johannes
 5395+ * @author M.M.S.
 5396+ * @author MagnusA
 5397+ * @author Najami
 5398+ */
 5399+$messages['sv'] = array(
 5400+ 'checkuser-summary' => 'Det här verktyget söker igenom de senaste ändringarna för att hämta IP-adresser för en användare, eller redigeringar och användare för en IP-adress.
 5401+Användare och redigeringar kan visas med IP-adress från XFF genom att lägga till "/xff" efter IP-adressen. Verktyget stödjer IPv4 (CIDR 16-32) och IPv6 (CIDR 96-128).
 5402+På grund av prestandaskäl så visas inte mer än 5000 redigeringar. Använd verktyget i enlighet med policy.',
 5403+ 'checkuser-desc' => 'Ger möjlighet för användare med speciell behörighet att kontrollera användares IP-adresser och viss annan information',
 5404+ 'checkuser-logcase' => 'Loggsökning är skiftlägeskänslig.',
 5405+ 'checkuser' => 'Kontrollera användare',
 5406+ 'checkuser-contribs' => 'kontrollera användarens IP-adresser',
 5407+ 'group-checkuser' => 'Användarkontrollanter',
 5408+ 'group-checkuser-member' => 'användarkontrollant',
 5409+ 'right-checkuser' => 'Kontrollera användares IP-adresser och annan information',
 5410+ 'right-checkuser-log' => 'Se loggen över användarkontroller',
 5411+ 'grouppage-checkuser' => '{{ns:project}}:Användarkontrollant',
 5412+ 'checkuser-reason' => 'Anledning:',
 5413+ 'checkuser-showlog' => 'Visa logg',
 5414+ 'checkuser-log' => 'Logg över användarkontroller',
 5415+ 'checkuser-query' => 'Sök de senaste ändringarna',
 5416+ 'checkuser-target' => 'Användare eller IP',
 5417+ 'checkuser-users' => 'Hämta användare',
 5418+ 'checkuser-edits' => 'Hämta redigeringar från IP-adress',
 5419+ 'checkuser-ips' => 'Hämta IP-adresser',
 5420+ 'checkuser-account' => 'Hämta redigeringar från konto',
 5421+ 'checkuser-search' => 'Sök',
 5422+ 'checkuser-period' => 'Tidsperiod:',
 5423+ 'checkuser-week-1' => 'senaste veckan',
 5424+ 'checkuser-week-2' => 'senaste två veckorna',
 5425+ 'checkuser-month' => 'senaste 30 dagarna',
 5426+ 'checkuser-all' => 'alla',
 5427+ 'checkuser-cidr-label' => 'Hitta gemensam range och påverkade adresser för en IP-lista.',
 5428+ 'checkuser-cidr-res' => 'Gemensam CIDR:',
 5429+ 'checkuser-empty' => 'Loggen innehåller inga poster.',
 5430+ 'checkuser-nomatch' => 'Inga träffar hittades.',
 5431+ 'checkuser-nomatch-edits' => 'Fick ingen träff.
 5432+Senaste redigering var $1 kl $2.',
 5433+ 'checkuser-check' => 'Kontrollera',
 5434+ 'checkuser-log-fail' => 'Loggposten kunde inte läggas i loggfilen.',
 5435+ 'checkuser-nolog' => 'Hittade ingen loggfil.',
 5436+ 'checkuser-blocked' => 'Blockerad',
 5437+ 'checkuser-gblocked' => 'Blockerad globalt',
 5438+ 'checkuser-locked' => 'Låst',
 5439+ 'checkuser-wasblocked' => 'Tidigare blockerad',
 5440+ 'checkuser-localonly' => 'Inte sammanslaget',
 5441+ 'checkuser-massblock' => 'Blockera valda användare',
 5442+ 'checkuser-massblock-text' => 'Valda konton kommer blockeras på obestämd tid, med autoblockering aktiverad och kontoskapande avaktiverat.
 5443+IP-adresser kommer blockeras i en vecka för anonyma användare, med kontoskapande avaktiverat.',
 5444+ 'checkuser-blocktag' => 'Ersätt användarsidor med:',
 5445+ 'checkuser-blocktag-talk' => 'Ersätt diskussionssidor med:',
 5446+ 'checkuser-massblock-commit' => 'Blockera valda användare',
 5447+ 'checkuser-block-success' => "'''{{PLURAL:$2|Användaren|Användarna}} $1 är nu {{PLURAL:$2|blockerad|blockerade}}.'''",
 5448+ 'checkuser-block-failure' => "'''Ingen användare blockerades.'''",
 5449+ 'checkuser-block-limit' => 'För många användare valda.',
 5450+ 'checkuser-block-noreason' => 'Du måste ange en anledning för blockeringarna.',
 5451+ 'checkuser-accounts' => '$1 {{PLURAL:$1|nytt konto|nya konton}}',
 5452+ 'checkuser-too-many' => 'För många resultat, du bör söka i ett mindre CIDR-block. Här följer de IP-adresser som använts (högst 5000, sorterade efter adress):',
 5453+ 'checkuser-user-nonexistent' => 'Användarnamnet som angavs finns inte.',
 5454+ 'checkuser-search-form' => 'Sök efter poster där $1 är $2',
 5455+ 'checkuser-search-submit' => 'Sök',
 5456+ 'checkuser-search-initiator' => 'kontrollanten',
 5457+ 'checkuser-search-target' => 'kontrollmålet',
 5458+ 'checkuser-ipeditcount' => '~$1 från alla användare',
 5459+ 'checkuser-log-subpage' => 'Logg',
 5460+ 'checkuser-log-return' => 'Gå tillbaka till formuläret för användarkontroll',
 5461+ 'checkuser-limited' => "'''Dessa resultat har av prestandaskäl blivit avkortade.'''",
 5462+ 'checkuser-log-userips' => '$1 hämtade IP-adresser för $2',
 5463+ 'checkuser-log-ipedits' => '$1 hämtade redigeringar från $2',
 5464+ 'checkuser-log-ipusers' => '$1 hämtade användare från $2',
 5465+ 'checkuser-log-ipedits-xff' => '$1 hämtade redigeringar från XFF $2',
 5466+ 'checkuser-log-ipusers-xff' => '$1 hämtade användare från XFF $2',
 5467+ 'checkuser-log-useredits' => '$1 hämtade redigeringar för $2',
 5468+ 'checkuser-autocreate-action' => 'skapades automatiskt',
 5469+ 'checkuser-email-action' => 'skickade ett mejl till användare "$1"',
 5470+ 'checkuser-reset-action' => 'återställ lösenord för användare "$1"',
 5471+);
 5472+
 5473+/** Silesian (Ślůnski)
 5474+ * @author Herr Kriss
 5475+ */
 5476+$messages['szl'] = array(
 5477+ 'checkuser-reason' => 'Čymu',
 5478+ 'checkuser-search' => 'Šnupej',
 5479+ 'checkuser-search-submit' => 'Šnupej',
 5480+);
 5481+
 5482+/** Tamil (தமிழ்)
 5483+ * @author Trengarasu
 5484+ */
 5485+$messages['ta'] = array(
 5486+ 'checkuser-search' => 'தேடுக',
 5487+ 'checkuser-search-submit' => 'தேடுக',
 5488+);
 5489+
 5490+/** Telugu (తెలుగు)
 5491+ * @author Chaduvari
 5492+ * @author Mpradeep
 5493+ * @author Veeven
 5494+ * @author వైజాసత్య
 5495+ */
 5496+$messages['te'] = array(
 5497+ 'checkuser-summary' => 'ఈ పరికరం ఓ వాడుకరి వాడిన ఐపీలను, లేదా ఒక ఐపీకి చెందిన దిద్దుబాట్లు, వాడుకరుల డేటాను చూపిస్తుంది.
 5498+క్లయంటు ఐపీకి చెందిన వాడుకరులు, దిద్దుబాట్లను ఐపీకి /xff అని చేర్చి, XFF హెడర్ల ద్వారా వెలికితీయవచ్చు. IPv4 (CIDR 16-32) and IPv6 (CIDR 96-128) లు పనిచేస్తాయి.
 5499+పనితనపు కారణాల వలన 5000 దిద్దుబాట్లకు మించి చూపించము. విధానాల కనుగుణంగా దీన్ని వాడండి.',
 5500+ 'checkuser-desc' => 'వాడుకరి ఐపీ అడ్రసు, ఇతర సమాచారాన్ని చూడగలిగే అనుమతులను వాడుకరులకు ఇస్తుంది',
 5501+ 'checkuser-logcase' => 'చిచ్చా అన్వేషణ కోసం ఇంగ్లీషు అన్వేషకం ఇస్తే, అది కేస్ సెన్సిటివ్.',
 5502+ 'checkuser' => 'వాడుకరి తనిఖీ',
 5503+ 'group-checkuser' => 'వాడుకరుల తనిఖీదార్లు',
 5504+ 'group-checkuser-member' => 'వాడుకరుల తనిఖీదారు',
 5505+ 'right-checkuser' => 'వాడుకరి ఐపీ అడ్రసును, ఇతర సమాచారాన్ని చూడు',
 5506+ 'grouppage-checkuser' => '{{ns:project}}:వాడుకరిని పరిశీలించు',
 5507+ 'checkuser-reason' => 'కారణం:',
 5508+ 'checkuser-showlog' => 'చిట్టాని చూపించు',
 5509+ 'checkuser-log' => 'వాడుకరిపరిశీలనల చిట్టా',
 5510+ 'checkuser-query' => 'ఇటీవలి మార్పుల్లో చూడండి',
 5511+ 'checkuser-target' => 'వాడుకరి లేదా ఐపీ',
 5512+ 'checkuser-users' => 'వాడుకరులను తీసుకురా',
 5513+ 'checkuser-edits' => 'ఈ ఐపీ అడ్రస్సు నుండి చేసిన మార్పులను చూపించు',
 5514+ 'checkuser-ips' => 'ఐపీలను తీసుకురా',
 5515+ 'checkuser-search' => 'వెతుకు',
 5516+ 'checkuser-period' => 'నిడివి:',
 5517+ 'checkuser-week-1' => 'గత వారం',
 5518+ 'checkuser-week-2' => 'గత రెండు వారాలు',
 5519+ 'checkuser-month' => 'గత 30 రోజులు',
 5520+ 'checkuser-all' => 'అందరూ',
 5521+ 'checkuser-empty' => 'చిట్టాలో అంశాలేమీ లేవు.',
 5522+ 'checkuser-nomatch' => 'సామీప్యాలు ఏమీ కనబడలేదు.',
 5523+ 'checkuser-check' => 'తనిఖీ',
 5524+ 'checkuser-log-fail' => 'చిట్టాలో పద్దుని చేర్చలేకపోయాం',
 5525+ 'checkuser-nolog' => 'చిట్టా ఫైలేమీ కనపడలేదు.',
 5526+ 'checkuser-blocked' => 'నిరోధించాం',
 5527+ 'checkuser-too-many' => 'మరీ ఎక్కువ ఫలితాలొచ్చాయి. CIDR ను మరింత కుదించండి. వాడిన ఐపీలివిగో (గరిష్ఠంగా 5000 -అడ్రసు వారీగా పేర్చి)',
 5528+ 'checkuser-user-nonexistent' => 'ఆ వాడుకరి ఉనికిలో లేరు.',
 5529+ 'checkuser-search-form' => '$1 అనేది $2గా ఉన్న లాగ్ పద్దులను కనుగొనండి',
 5530+ 'checkuser-search-submit' => 'వెతుకు',
 5531+ 'checkuser-search-initiator' => 'ఆరంభకుడు',
 5532+ 'checkuser-search-target' => 'లక్ష్యం',
 5533+ 'checkuser-ipeditcount' => 'వాడుకరులందరి నుండి ~$1',
 5534+ 'checkuser-log-subpage' => 'చిట్టా',
 5535+ 'checkuser-log-return' => 'CheckUser ముఖ్య ఫారముకు వెళ్ళు',
 5536+ 'checkuser-log-userips' => '$2 కోసం $1 ఐపీలను తెచ్చింది',
 5537+ 'checkuser-log-ipedits' => '$2 కోసం $1 దిద్దుబాట్లను తెచ్చింది',
 5538+ 'checkuser-log-ipusers' => '$2 కోసం $1 వాడుకరులను తెచ్చింది',
 5539+ 'checkuser-log-ipedits-xff' => 'XFF $2 కోసం $1, దిద్దుబాట్లను తెచ్చింది',
 5540+ 'checkuser-log-ipusers-xff' => 'XFF $2 కోసం $1, వాడుకరులను తెచ్చింది',
 5541+ 'checkuser-email-action' => 'వాడుకరి "$1"కి ఈమెయిలు పంపించాం',
 5542+);
 5543+
 5544+/** Tetum (Tetun)
 5545+ * @author MF-Warburg
 5546+ */
 5547+$messages['tet'] = array(
 5548+ 'group-checkuser' => 'CheckUser',
 5549+ 'group-checkuser-member' => 'CheckUser',
 5550+ 'grouppage-checkuser' => '{{ns:project}}:CheckUser',
 5551+ 'checkuser-reason' => 'Motivu:',
 5552+ 'checkuser-log' => 'Lista checkuser',
 5553+ 'checkuser-target' => "Uza-na'in ka IP",
 5554+ 'checkuser-users' => "Uza-na'in sira",
 5555+ 'checkuser-edits' => 'Edita husi IP',
 5556+ 'checkuser-ips' => 'IP sira',
 5557+ 'checkuser-search' => 'Buka',
 5558+ 'checkuser-all' => 'hotu',
 5559+ 'checkuser-search-submit' => 'Buka',
 5560+);
 5561+
 5562+/** Tajik (Тоҷикӣ)
 5563+ * @author Ibrahim
 5564+ */
 5565+$messages['tg'] = array(
 5566+ 'right-checkuser-log' => 'Мушоҳидаи гузоришҳои бозрасии корбарӣ',
 5567+);
 5568+
 5569+/** Tajik (Cyrillic) (Тоҷикӣ (Cyrillic))
 5570+ * @author Ibrahim
 5571+ */
 5572+$messages['tg-cyrl'] = array(
 5573+ 'checkuser-summary' => 'Ин абзор тағйироти охирро барои ба даст овардани нишонаҳои интернетӣ IP истифода шуда тавассути як корбар ё таъйини вироишҳои анчом шуда тариқи як нишонаи интернетӣ IP, ҷустуҷӯ мекунад.
 5574+Корбарон ва вироишҳои як нишонаи интернетии IP-ро метавон бо таваҷҷӯҳ ба иттилоот сар оянд тариқи XFF бо афзудан нишонаи интернетӣ IP бо "/xff" пайдо кард. Ҳар ду протокол IPv4 (CIDR 16-32) ва IPv6 (CIDR 96-128) тавассути ин абзор пуштибонӣ мешаванд.
 5575+На беш аз 5000 вироиш бо далелҳои зудкорӣ баргардонида хоҳанд шуд. Бо мувофиқи сиёсат ва қоидаҳо инро истода кунед.',
 5576+ 'checkuser-desc' => 'Ба корбарон ихтиёроти лозимиро барои баррасии нишонаҳои интернетӣ IP корбарон ва иттилооти дигар, иҷозат медиҳад',
 5577+ 'checkuser-logcase' => 'Ҷустуҷӯи гузориш ба хурд ё бузрг будани ҳарфҳо ҳасос аст.',
 5578+ 'checkuser' => 'Бозрасии корбар',
 5579+ 'group-checkuser' => 'Бозрасии корбарон',
 5580+ 'group-checkuser-member' => 'Бозрасии корбар',
 5581+ 'right-checkuser' => 'Барраси кардани нишонаи IP ва дигар иттилооти корбар',
 5582+ 'grouppage-checkuser' => '{{ns:project}}:Бозрасии корбар',
 5583+ 'checkuser-reason' => 'Сабаб:',
 5584+ 'checkuser-showlog' => 'Намоиши гузориш',
 5585+ 'checkuser-log' => 'БозрасиКорбар гузориш',
 5586+ 'checkuser-query' => 'Ҷустуҷӯи тағйироти охир',
 5587+ 'checkuser-target' => 'Корбар ё нишонаи IP',
 5588+ 'checkuser-users' => 'Феҳрист кардани корбарон',
 5589+ 'checkuser-edits' => 'Намоиши вироишҳои марбут ба ин нишонаи IP',
 5590+ 'checkuser-ips' => 'Феҳрист кардани нишонаҳои IP',
 5591+ 'checkuser-search' => 'Ҷустуҷӯ',
 5592+ 'checkuser-period' => 'Тӯл:',
 5593+ 'checkuser-week-1' => 'ҳафта гузашта',
 5594+ 'checkuser-week-2' => 'ду ҳафтаи гузашта',
 5595+ 'checkuser-month' => '30 рӯзи гузашта',
 5596+ 'checkuser-all' => 'ҳама',
 5597+ 'checkuser-empty' => 'Гузориш холӣ аст.',
 5598+ 'checkuser-nomatch' => 'Мавриде ки мутобиқат дошта бошад пайдо нашуд',
 5599+ 'checkuser-nomatch-edits' => 'Ҳеҷ мутобиқате ёфт нашуд.
 5600+Охирин вироиш дар $1 соати $2 буд.',
 5601+ 'checkuser-check' => 'Барраси',
 5602+ 'checkuser-log-fail' => 'Имкони афзудани иттилоот ба гузориш вуҷуд надорад',
 5603+ 'checkuser-nolog' => 'Парвандаи гузориш пайдо нашуд.',
 5604+ 'checkuser-blocked' => 'Дастрасӣ қатъ шуд',
 5605+ 'checkuser-gblocked' => 'Басташуда сартосарӣ',
 5606+ 'checkuser-wasblocked' => 'Қаблан баста шуда',
 5607+ 'checkuser-localonly' => 'Якка нашуда',
 5608+ 'checkuser-massblock' => 'Корбарони интихобшуда баста шаванд',
 5609+ 'checkuser-blocktag' => 'Ҷойгузин кардани саҳифаҳои корбарон бо:',
 5610+ 'checkuser-blocktag-talk' => 'Ҷойгузин кардани саҳифаҳои баҳс бо:',
 5611+ 'checkuser-block-limit' => 'Теъдоди беш аз шумораи корбарон интихоб шудаанд.',
 5612+ 'checkuser-too-many' => 'Теъдоди натоиҷ бисёр зиёд аст. Лутфан CIDRро бориктар кунед. Дар зер нишонаҳои IP-ро мебинед (5000 ҳадди аксар, аз рбатартиби нинона):',
 5613+ 'checkuser-user-nonexistent' => 'Корбари мавриди назар вуҷуд надорад.',
 5614+ 'checkuser-search-form' => 'Пайдо кардани маворид дар гузоришҳо, ки $1 дар он $2 аст',
 5615+ 'checkuser-search-submit' => 'Ҷустуҷӯ',
 5616+ 'checkuser-search-initiator' => 'оғозгар',
 5617+ 'checkuser-search-target' => 'ҳадаф',
 5618+ 'checkuser-log-subpage' => 'Гузориш',
 5619+ 'checkuser-log-return' => 'Бозгашт ба форми аслии бозрасии корбар',
 5620+ 'checkuser-log-userips' => '$1 нишонаҳои интернетии IP-ҳои $2ро гирифт',
 5621+ 'checkuser-log-ipedits' => '$1 вироишҳои $2ро гирифт',
 5622+ 'checkuser-log-ipusers' => '$1 корбарони марбут ба $2ро гирифт',
 5623+ 'checkuser-log-ipedits-xff' => '$1 вироишҳои XFF $2ро гирифт',
 5624+ 'checkuser-log-ipusers-xff' => '$1 корбарони марбут ба XFF $2ро гирифт',
 5625+ 'checkuser-autocreate-action' => 'ба таври худкор эҷод шуда буд',
 5626+ 'checkuser-email-action' => 'почтаи электронӣ ба корбар "$1" фиристода шуд',
 5627+);
 5628+
 5629+/** Thai (ไทย)
 5630+ * @author Mopza
 5631+ * @author Octahedron80
 5632+ */
 5633+$messages['th'] = array(
 5634+ 'checkuser-reason' => 'เหตุผล:',
 5635+ 'checkuser-search' => 'สืบค้น',
 5636+ 'checkuser-period' => 'ระยะเวลา:',
 5637+ 'checkuser-week-1' => 'สัปดาห์ที่แล้ว',
 5638+ 'checkuser-week-2' => '2 สัปดาห์ที่แล้ว',
 5639+ 'checkuser-month' => '30 วันที่แล้ว',
 5640+ 'checkuser-all' => 'ทั้งหมด',
 5641+ 'checkuser-search-submit' => 'สืบค้น',
 5642+);
 5643+
 5644+/** Tagalog (Tagalog)
 5645+ * @author AnakngAraw
 5646+ */
 5647+$messages['tl'] = array(
 5648+ 'checkuser-summary' => 'Nagmamasid ng kamakailang mga pagbabago ang kasangkapang ito upang makuhang muli ang ginamit na mga IP ng tagagamit o ipakita ang dato ng pagbabago/tagagamit para sa isang IP.
 5649+Ang mga tagagamit at mga pagbabagong ginawa ng isang IP ng kliyente ay maaaring kuhaning muli sa pamamagitan ng paggamit ng mga paulong XFF sa pamamagitan ng pagkakabit ng "/xff" sa IP.
 5650+Sinusuportahan ang IPv4 (CIDR 16-32) at ang IPv6 (CIDR 96-128).
 5651+Walang mas mataas sa 5000 mga pagbabago ang ibabalik dahil sa mga kadahilanang pangpagsasagawa.
 5652+Gamitin ito ayon sa patakaran.',
 5653+ 'checkuser-desc' => 'Nagbibigay sa mga tagagamit ng naaangkop na pahintulot ang kakayahang suriin ang mga adres ng IP ng tagagamit at iba pang kabatiran (impormasyon)',
 5654+ 'checkuser-logcase' => 'May kaselanan sa pagmamakinilya ng panitik ang paghahanap ng talaan.',
 5655+ 'checkuser' => 'Suriin ang tagagamit',
 5656+ 'group-checkuser' => 'Suriin ang mga tagagamit',
 5657+ 'group-checkuser-member' => 'Suriin ang tagagamit',
 5658+ 'right-checkuser' => 'Suriin ang adres ng IP at iba pang mga kabatiran (impormasyon) ng tagagamit',
 5659+ 'right-checkuser-log' => 'Tingnan ang talaan ng pagsuri sa tagagamit',
 5660+ 'grouppage-checkuser' => '{{ns:project}}:Suriin ang tagagamit',
 5661+ 'checkuser-reason' => 'Dahilan:',
 5662+ 'checkuser-showlog' => 'Ipakita ang talaan',
 5663+ 'checkuser-log' => 'Talaang SuriinTagagamit',
 5664+ 'checkuser-query' => 'Magtanong hinggil sa kamakailang mga pagbabago',
 5665+ 'checkuser-target' => 'Tagagamit o IP',
 5666+ 'checkuser-users' => 'Kunin ang mga tagagamit',
 5667+ 'checkuser-edits' => 'Kuhanin ang mga pagbabago mula sa IP',
 5668+ 'checkuser-ips' => 'Kunin ang mga IP',
 5669+ 'checkuser-account' => 'Kunin ang mga pagbabago sa kuwenta/akawnt',
 5670+ 'checkuser-search' => 'Maghanap',
 5671+ 'checkuser-period' => 'Tagal ng panahon:',
 5672+ 'checkuser-week-1' => 'nakaraang linggo',
 5673+ 'checkuser-week-2' => 'huling dalawang mga linggo',
 5674+ 'checkuser-month' => 'huling 30 mga araw',
 5675+ 'checkuser-all' => 'lahat',
 5676+ 'checkuser-cidr-label' => 'Hanapin ang karaniwang saklaw at apektadong mga adres para sa isang talaan ng mga IP',
 5677+ 'checkuser-cidr-res' => 'Karaniwang CIDR:',
 5678+ 'checkuser-empty' => 'Walang lamang mga bagay ang talaan.',
 5679+ 'checkuser-nomatch' => 'Walang natagpuang mga pagtutugma.',
 5680+ 'checkuser-nomatch-edits' => 'Walang natagpuang mga pagtutugma.
 5681+Ang huling pagbabago ay noong $1 sa $2.',
 5682+ 'checkuser-check' => 'Suriin',
 5683+ 'checkuser-log-fail' => 'Hindi nagawang idagdag ang ipinasok sa talaan',
 5684+ 'checkuser-nolog' => 'Walang natagpuang talaksan ng talaan.',
 5685+ 'checkuser-blocked' => 'Hinadlangan',
 5686+ 'checkuser-gblocked' => 'Hinadlangan na pandaigdigan',
 5687+ 'checkuser-locked' => 'Ikinandado',
 5688+ 'checkuser-wasblocked' => 'Hinadlangan dati',
 5689+ 'checkuser-localonly' => 'Hindi pinag-isa',
 5690+ 'checkuser-massblock' => 'Harangin ang napiling mga tagagamit',
 5691+ 'checkuser-massblock-text' => 'Ang napiling mga kuwenta ay hahadlangan magpasawalang hanggan, na may pinagaganang kusang pagharang at hindi pinaaandar na paglikha ng akawnt.
 5692+Hahadlangan ang mga adres ng IP sa loob ng 1 linggo para sa mga tagagamit ng IP lamang at hindi pinagagana ang paglikha ng kuwenta.',
 5693+ 'checkuser-blocktag' => 'Palitan ang mga pahina ng tagagamit ng:',
 5694+ 'checkuser-blocktag-talk' => 'Palitan ang mga pahina ng usapan ng:',
 5695+ 'checkuser-massblock-commit' => 'Hadlangan ang napiling mga tagagamit',
 5696+ 'checkuser-block-success' => "'''Ang {{PLURAL:$2|tagagamit|mga tagagamit}} na si/sina $1 {{PLURAL:$2|ay|ay mga}} hinadlangan na ngayon.'''",
 5697+ 'checkuser-block-failure' => "'''Walang nahadlangang mga tagagamit.'''",
 5698+ 'checkuser-block-limit' => 'Napakaraming napiling mga tagagamit.',
 5699+ 'checkuser-block-noreason' => 'Dapat kang magbigay ng isang dahilan para sa mga paghahadlang.',
 5700+ 'checkuser-accounts' => '$1 bagong {{PLURAL:$1|kuwenta|mga kuwenta}}',
 5701+ 'checkuser-too-many' => 'Napakaraming mga resulta, pakikiputan pababa ang CIDR.
 5702+Narito ang ginamit na mga IP (5000 pinakamarami, inayos ayon sa adres):',
 5703+ 'checkuser-user-nonexistent' => 'Hindi umiiral ang tinukoy na tagagamit.',
 5704+ 'checkuser-search-form' => 'Maghanap ng mga paglalagay sa talaan kung saan ang $1 ay $2',
 5705+ 'checkuser-search-submit' => 'Hanapin',
 5706+ 'checkuser-search-initiator' => 'tagapagsimula',
 5707+ 'checkuser-search-target' => 'puntirya',
 5708+ 'checkuser-ipeditcount' => '~$1 mula sa lahat ng mga tagagamit',
 5709+ 'checkuser-log-subpage' => 'Itala',
 5710+ 'checkuser-log-return' => 'Bumalik sa pangunahing pormularyong SuriinTagagamit<!--CheckUser-->',
 5711+ 'checkuser-limited' => "'''Pinutol o pinungusan ang mga resulta dahil sa mga kadahilanang panggawain (pagsasagawa).'''",
 5712+ 'checkuser-log-userips' => 'Nakakuha si $1 ng mga IP para kay $2',
 5713+ 'checkuser-log-ipedits' => 'Nakakuha si $1 ng mga pagbabago para kay $2',
 5714+ 'checkuser-log-ipusers' => 'Nakakuha si $1 ng mga tagagamit para sa $2',
 5715+ 'checkuser-log-ipedits-xff' => 'Nakakuha si $1 ng mga pagbabago para sa XFF na $2',
 5716+ 'checkuser-log-ipusers-xff' => 'Nakakuha si $1 ng mga tagagamit para sa XFF na $2',
 5717+ 'checkuser-log-useredits' => 'Nakakuha si $1 ng mga pagbabago para sa $2',
 5718+ 'checkuser-autocreate-action' => 'ay kusang nalikha',
 5719+ 'checkuser-email-action' => 'nagpadala ng isang e-liham patungo kay tagagamit na "$1"',
 5720+ 'checkuser-reset-action' => 'muling itakda ang hudyat para kay tagagamit na "$1"',
 5721+);
 5722+
 5723+/** Tonga (lea faka-Tonga) */
 5724+$messages['to'] = array(
 5725+ 'checkuser' => 'Siviʻi ʻa e ʻetita',
 5726+ 'group-checkuser' => 'Siviʻi kau ʻetita',
 5727+ 'group-checkuser-member' => 'Siviʻi ʻa e ʻetita',
 5728+);
 5729+
 5730+/** Turkish (Türkçe)
 5731+ * @author Dbl2010
 5732+ * @author Erkan Yilmaz
 5733+ * @author Joseph
 5734+ * @author Karduelis
 5735+ * @author Mach
 5736+ * @author Suelnur
 5737+ */
 5738+$messages['tr'] = array(
 5739+ 'checkuser-summary' => "Bu araç bir kullanıcı tarafından kullanılan IP'leri almak için son değişiklikleri tarar ya da bir IP için değişiklik/kullanıcı verisini gösterir.
 5740+Alıcı IP'deki kullanıcı ve değişiklikler, IP'ye \"/xff\" eklenmesiyle XFF başlıklarıyla alınabilir. IPv4 (CIDR 16-32) ve IPv6 (CIDR 96-128) desteklenmektedir.
 5741+Performans nedeniyle 5000'den fazla değişiklik dönmeyecektir.
 5742+Bunu ilkelere uygun olarak kullanın.",
 5743+ 'checkuser-desc' => 'Kullanıcıların IP adreslerini ve diğer bilgilerini denetleme yeteneği için, uygun izinleri kullanıcılara tahsis eder',
 5744+ 'checkuser-logcase' => 'Günlük araması büyük-küçük harfe duyarlıdır.',
 5745+ 'checkuser' => 'IP denetçisi',
 5746+ 'checkuser-contribs' => 'kullanıcı IPlerini kontrol et',
 5747+ 'group-checkuser' => 'Denetçiler',
 5748+ 'group-checkuser-member' => 'Denetçi',
 5749+ 'right-checkuser' => 'Kullanıcıların IP adreslerini ve diğer bilgilerini denetle',
 5750+ 'right-checkuser-log' => 'Kullanıcıdenetle günlüğünü gör',
 5751+ 'grouppage-checkuser' => '{{ns:project}}:Denetçi',
 5752+ 'checkuser-reason' => 'Gerekçe:',
 5753+ 'checkuser-showlog' => 'Logu göster',
 5754+ 'checkuser-log' => 'Denetçi kaydı',
 5755+ 'checkuser-query' => 'Son değişiklikleri sorgula',
 5756+ 'checkuser-target' => 'Kullanıcı veya IP',
 5757+ 'checkuser-users' => 'Kullanıcıları bulup getir',
 5758+ 'checkuser-edits' => "IP'den değişiklikleri al",
 5759+ 'checkuser-ips' => 'IPleri bulup getir',
 5760+ 'checkuser-account' => 'Hesap değişikliklerini al',
 5761+ 'checkuser-search' => 'Ara',
 5762+ 'checkuser-period' => 'Süre:',
 5763+ 'checkuser-week-1' => 'son hafta',
 5764+ 'checkuser-week-2' => 'son iki hafta',
 5765+ 'checkuser-month' => 'son 30 gün',
 5766+ 'checkuser-all' => 'hepsi',
 5767+ 'checkuser-cidr-label' => 'Bir IP listesi için ortak aralığı ve etkilenen adresleri bul',
 5768+ 'checkuser-cidr-res' => 'Ortak CIDR:',
 5769+ 'checkuser-empty' => 'Günlükte başka öğe yok.',
 5770+ 'checkuser-nomatch' => 'Eşleşen bulunamadı.',
 5771+ 'checkuser-nomatch-edits' => 'Eşleşen bulunamadı.
 5772+Son değişiklik $1 tarihinde $2 saatinde.',
 5773+ 'checkuser-check' => 'Kontrol et',
 5774+ 'checkuser-log-fail' => 'Günlük girdisi eklenemiyor',
 5775+ 'checkuser-nolog' => 'Günlük dosyası bulunamadı.',
 5776+ 'checkuser-blocked' => 'Engellendi',
 5777+ 'checkuser-gblocked' => 'Küresel olarak engellendi',
 5778+ 'checkuser-locked' => 'Kilitli',
 5779+ 'checkuser-wasblocked' => 'Önceden engellenmiş',
 5780+ 'checkuser-localonly' => 'Birleştirilmemiş',
 5781+ 'checkuser-massblock' => 'Seçili kullanıcıları engelle',
 5782+ 'checkuser-massblock-text' => 'Seçili hesaplar süresiz olarak engellenecektir, otomatik engelleme devrede ve hesap oluşturma devre dışı olarak.
 5783+IP adresleri sadece IP kullanıcıları için 1 hafta boyunca engellenecektir ve hesap oluşturma devre dışı olacaktır.',
 5784+ 'checkuser-blocktag' => 'Kullanıcı sayfalarını şununla yer değiştir:',
 5785+ 'checkuser-blocktag-talk' => 'Tartışma sayfalarını şununla yer değiştir:',
 5786+ 'checkuser-massblock-commit' => 'Seçili kullanıcıları engelle',
 5787+ 'checkuser-block-success' => "'''$1 {{PLURAL:$2|kullanıcısı|kullanıcıları}} artık engellendi.'''",
 5788+ 'checkuser-block-failure' => "'''Hiçbir kullanıcı engellenmedi.'''",
 5789+ 'checkuser-block-limit' => 'Çok fazla kullanıcı seçildi.',
 5790+ 'checkuser-block-noreason' => 'Engellemeler için bir neden belirtmelisiniz.',
 5791+ 'checkuser-accounts' => '$1 yeni {{PLURAL:$1|hesap|hesap}}',
 5792+ 'checkuser-too-many' => "Çok fazla sonuç var, lütfen CIDR'ı daraltın.
 5793+Kullanılan IP'ler (max 5000, adrese göre sıralı):",
 5794+ 'checkuser-user-nonexistent' => 'Belirtilen kullanıcı mevcut değil.',
 5795+ 'checkuser-search-form' => "$1'in $2 olduğu günlük girişlerini bul",
 5796+ 'checkuser-search-submit' => 'Ara',
 5797+ 'checkuser-search-initiator' => 'Başlatan',
 5798+ 'checkuser-search-target' => 'Hedef',
 5799+ 'checkuser-ipeditcount' => 'tüm kullanıcılardan ~$1',
 5800+ 'checkuser-log-subpage' => 'Kayıt',
 5801+ 'checkuser-log-return' => 'KullancıDenetle ana formuna geri dön',
 5802+ 'checkuser-limited' => "'''Performans nedeniyle sonuçlar kırpıldı.'''",
 5803+ 'checkuser-log-userips' => '$1, $2 için IPleri aldı',
 5804+ 'checkuser-log-ipedits' => '$1, $2 için değişiklikleri aldı',
 5805+ 'checkuser-log-ipusers' => '$1, $2 için kullanıcıları aldı',
 5806+ 'checkuser-log-ipedits-xff' => '$1, XFF $2 için değişiklikleri aldı',
 5807+ 'checkuser-log-ipusers-xff' => '$1, XFF $2 için kullanıcıları aldı',
 5808+ 'checkuser-log-useredits' => '$1, $2 için değişiklikleri aldı',
 5809+ 'checkuser-autocreate-action' => 'otomatik olarak oluşturuldu',
 5810+ 'checkuser-email-action' => '"$1" kullanıcısına e-posta gönder',
 5811+ 'checkuser-reset-action' => '"$1" kullanıcısı için parolayı sıfırla',
 5812+);
 5813+
 5814+/** Ukrainian (Українська)
 5815+ * @author AS
 5816+ * @author Ahonc
 5817+ */
 5818+$messages['uk'] = array(
 5819+ 'checkuser-summary' => 'Цей засіб переглядає нові редагування для отримання IP-адрес, які використовував певний користувач, або щоб знайти редагування/користувача за IP-адресою.
 5820+Редагування і користувачів, що редагували з певної IP-адреси, заначеної в X-Forwarded-For, можна отримати, додавши префікс <code>/xff</code> до IP-адреси. Підтримувані версії IP: 4 (CIDR 16—32) і 6 (CIDR 96—128).
 5821+З огляду на продуктивність буде показано не більше 5000 редагувань.
 5822+Використовуйте цей засіб тільки відповідно до правил.',
 5823+ 'checkuser-desc' => 'Надання можливості перевіряти IP-адреси та іншу інформацію користувачів',
 5824+ 'checkuser-logcase' => 'Пошук у журналі чутливий до регістру.',
 5825+ 'checkuser' => 'Перевірити користувача',
 5826+ 'group-checkuser' => "Чек'юзери",
 5827+ 'group-checkuser-member' => "чек'юзер",
 5828+ 'right-checkuser' => 'Перевірка IP-адрес та іншої інформації користувача',
 5829+ 'right-checkuser-log' => 'Перегляд журналу перевірки користувачів',
 5830+ 'grouppage-checkuser' => '{{ns:project}}:Перевірка користувачів',
 5831+ 'checkuser-reason' => 'Причина:',
 5832+ 'checkuser-showlog' => 'Показати журнал',
 5833+ 'checkuser-log' => 'Журнал перевірки користувачів',
 5834+ 'checkuser-query' => 'Запитати останні зміни',
 5835+ 'checkuser-target' => 'Користувач або IP-адреса',
 5836+ 'checkuser-users' => 'Отримати користувачів',
 5837+ 'checkuser-edits' => 'Запитати редагування, зроблені з IP-адреси',
 5838+ 'checkuser-ips' => 'Запитати IP-адреси',
 5839+ 'checkuser-account' => 'Отримати редагування з облікового запису',
 5840+ 'checkuser-search' => 'Знайти',
 5841+ 'checkuser-period' => 'Тривалість:',
 5842+ 'checkuser-week-1' => 'останній тиждень',
 5843+ 'checkuser-week-2' => 'останні два тижні',
 5844+ 'checkuser-month' => 'останні 30 днів',
 5845+ 'checkuser-all' => 'усі',
 5846+ 'checkuser-empty' => 'Журнал порожній.',
 5847+ 'checkuser-nomatch' => 'Не знайдено співпадінь.',
 5848+ 'checkuser-nomatch-edits' => 'Збіги не знайдені.
 5849+Останнє редагування зроблене $1 о $2.',
 5850+ 'checkuser-check' => 'Перевірити',
 5851+ 'checkuser-log-fail' => 'Не в змозі додати запис до журналу',
 5852+ 'checkuser-nolog' => 'Файл журналу не знайдений.',
 5853+ 'checkuser-blocked' => 'Заблокований',
 5854+ 'checkuser-gblocked' => 'Заблокований глобально',
 5855+ 'checkuser-locked' => 'Закритий',
 5856+ 'checkuser-wasblocked' => 'Раніше заблокований',
 5857+ 'checkuser-localonly' => "Не об'єднана",
 5858+ 'checkuser-massblock' => 'Заблокувати вибраних користувачів',
 5859+ 'checkuser-massblock-text' => 'Вибрані облікові записи будуть заблоковані безстроково з автоблокуванням і забороною створення нових облікових записів.
 5860+IP-адреси користувачів, які не увійшли до системи будуть заблоковані на 1 тиждень із забороною створення нових облікових записів.',
 5861+ 'checkuser-blocktag' => 'Замінити сторінки користувачів на:',
 5862+ 'checkuser-blocktag-talk' => 'Замінити сторінки обговорення на:',
 5863+ 'checkuser-massblock-commit' => 'Заблокувати вибраних користувачів',
 5864+ 'checkuser-block-success' => "'''Зараз {{PLURAL:$2|заблокований $1 користувач|заблоковані $1 користувачі|заблоковані $1 користувачів}}.'''",
 5865+ 'checkuser-block-failure' => "'''Немає заблокованих користувачів.'''",
 5866+ 'checkuser-block-limit' => 'Вибрано забагато користувачів.',
 5867+ 'checkuser-block-noreason' => 'Ви повинні вказати причину блокувань.',
 5868+ 'checkuser-accounts' => '$1 {{PLURAL:$1|новий обліковий запис|нові облікові записи|нових облікових записів}}',
 5869+ 'checkuser-too-many' => 'Забагато результатів. Будь ласка, звузьте CIDR.
 5870+Використані IP (максимум 5000, відсортовано за адресою):',
 5871+ 'checkuser-user-nonexistent' => 'Зазначений користувач не існує.',
 5872+ 'checkuser-search-form' => 'Знайти записи журналу, де $1 є $2',
 5873+ 'checkuser-search-submit' => 'Знайти',
 5874+ 'checkuser-search-initiator' => 'ініціатор',
 5875+ 'checkuser-search-target' => 'ціль',
 5876+ 'checkuser-ipeditcount' => '~$1 від усіх користувачів',
 5877+ 'checkuser-log-subpage' => 'Журнал',
 5878+ 'checkuser-log-return' => 'Повернення до головної форми перевірки користувачів',
 5879+ 'checkuser-limited' => "'''Результати урізано, щоб не обтяжувати сервер.'''",
 5880+ 'checkuser-log-userips' => '$1 отримав IP-адреси для $2',
 5881+ 'checkuser-log-ipedits' => '$1 отримав редагування для $2',
 5882+ 'checkuser-log-ipusers' => '$1 отримав облікові записи для $2',
 5883+ 'checkuser-log-ipedits-xff' => '$1 отримав редагування для XFF $2',
 5884+ 'checkuser-log-ipusers-xff' => '$1 отримав облікові записи для XFF $2',
 5885+ 'checkuser-log-useredits' => '$1 отримав редагування $2',
 5886+ 'checkuser-autocreate-action' => 'створений автоматично',
 5887+ 'checkuser-email-action' => 'надіслав листа користувачеві «$1»',
 5888+ 'checkuser-reset-action' => 'скинув пароль для користувача $1',
 5889+);
 5890+
 5891+/** Vèneto (Vèneto)
 5892+ * @author Candalua
 5893+ */
 5894+$messages['vec'] = array(
 5895+ 'checkuser-summary' => 'Sto strumento qua l\'analiza le modifiche reçenti par recuperar i indirizi IP doparà da un utente o mostrar contributi e dati de un IP. Utenti e contributi de un client IP i se pol rintraciar atraverso i header XFF, zontàndoghe a l\'IP el suffisso "/xff". Xe suportà IPv4 (CIDR 16-32) e IPv6 (CIDR 96-128). No sarà restituìe piassè de 5.000 modifiche, par ragioni de prestazioni. Dòpara sto strumento in streta conformità a le policy.',
 5896+ 'checkuser-desc' => 'Consente ai utenti co le oportune autorizazion de sotopor a verifica i indirizi IP e altre informazion relative ai utenti',
 5897+ 'checkuser-logcase' => "La riçerca nei registri la xe ''case sensitive'' (cioè la distingue fra majuscole e minuscole).",
 5898+ 'checkuser' => 'Controlo utenze',
 5899+ 'checkuser-contribs' => 'controlar i indirissi IP',
 5900+ 'group-checkuser' => 'Controlori',
 5901+ 'group-checkuser-member' => 'Controlor',
 5902+ 'right-checkuser' => "Controla i indirissi IP de l'utente e altre informassion",
 5903+ 'right-checkuser-log' => 'Varda el registro del controlo utenti (checkuser)',
 5904+ 'grouppage-checkuser' => '{{ns:project}}:Controlo utenze',
 5905+ 'checkuser-reason' => 'Motivo:',
 5906+ 'checkuser-showlog' => 'Mostra el registro',
 5907+ 'checkuser-log' => 'Registro dei checkuser',
 5908+ 'checkuser-query' => 'Çerca ne le ultime modifiche',
 5909+ 'checkuser-target' => 'Utente o IP',
 5910+ 'checkuser-users' => 'Çerca utenti',
 5911+ 'checkuser-edits' => 'Varda i contributi dei IP',
 5912+ 'checkuser-ips' => 'Çerca IP',
 5913+ 'checkuser-account' => "Varda i contributi de l'utenza",
 5914+ 'checkuser-search' => 'Çerca',
 5915+ 'checkuser-period' => 'Par quanto:',
 5916+ 'checkuser-week-1' => 'ultima stimana',
 5917+ 'checkuser-week-2' => 'ultime do stimane',
 5918+ 'checkuser-month' => 'ultimi 30 zorni',
 5919+ 'checkuser-all' => 'tuti quanti',
 5920+ 'checkuser-cidr-label' => 'Sercar un interval comune e i indirissi interessà par na lista de IP',
 5921+ 'checkuser-cidr-res' => 'CIDR comune:',
 5922+ 'checkuser-empty' => "El registro no'l contien dati.",
 5923+ 'checkuser-nomatch' => 'Nissun risultato catà.',
 5924+ 'checkuser-nomatch-edits' => "No xe stà catà nissun risultato.
 5925+L'ultima modìfega la xe stà a le ore $2 del $1.",
 5926+ 'checkuser-check' => 'Controla',
 5927+ 'checkuser-log-fail' => 'Inpossibile zontar la voçe al registro',
 5928+ 'checkuser-nolog' => 'No xe stà catà nissun file de registro.',
 5929+ 'checkuser-blocked' => 'Blocà',
 5930+ 'checkuser-gblocked' => 'Blocà globalmente',
 5931+ 'checkuser-locked' => 'Blocà',
 5932+ 'checkuser-wasblocked' => 'Blocà zà in precedensa',
 5933+ 'checkuser-localonly' => 'Mia unifegà',
 5934+ 'checkuser-massblock' => 'Bloca i utenti selessionà',
 5935+ 'checkuser-massblock-text' => "Le utense selezionà le vegnarà blocà par senpre, col bloco automatico inpizà e la creazion de utense nove disativà.
 5936+I indirissi IP i vegnarà blocà par na stimana solo par i utenti anonimi e co' la creazion de utense disativà.",
 5937+ 'checkuser-blocktag' => 'Sostituìssi le pagine utente con:',
 5938+ 'checkuser-blocktag-talk' => 'Rinpiazza le pàxene de discussion con:',
 5939+ 'checkuser-massblock-commit' => 'Bloca i utenti selessionà',
 5940+ 'checkuser-block-success' => "'''{{PLURAL:$2|L'utente|I utenti}} $1 {{PLURAL:$2|el|i}} xe stà blocà.'''",
 5941+ 'checkuser-block-failure' => "'''Nissun utente blocà.'''",
 5942+ 'checkuser-block-limit' => 'Ti gà selessionà massa utenti.',
 5943+ 'checkuser-block-noreason' => 'Ti gà da dar na motivassion par i blochi.',
 5944+ 'checkuser-accounts' => '$1 account {{PLURAL:$1|novo|novi}}',
 5945+ 'checkuser-too-many' => 'Xe vegnù fora massa risultati, par piaser dòpara un CIDR piassè ristreto.
 5946+Sti qua i xe i IP doparà (fin a un massimo de 5000, ordinà par indirizo):',
 5947+ 'checkuser-user-nonexistent' => "L'utente indicà no l'esiste mìa.",
 5948+ 'checkuser-search-form' => 'Cata fora le voçi del registro par le quali $1 el xe $2',
 5949+ 'checkuser-search-submit' => 'Riçerca',
 5950+ 'checkuser-search-initiator' => 'iniziator',
 5951+ 'checkuser-search-target' => 'obietivo',
 5952+ 'checkuser-ipeditcount' => '~$1 par tuti i utenti',
 5953+ 'checkuser-log-subpage' => 'Registro',
 5954+ 'checkuser-log-return' => 'Torna al modulo prinçipal de Controlo utenze',
 5955+ 'checkuser-limited' => "'''Sti risultati i xe stà tajà a metà par motivi de prestazion.'''",
 5956+ 'checkuser-log-userips' => '$1 el gà otegnù i indirizi IP de $2',
 5957+ 'checkuser-log-ipedits' => '$1 el gà otegnù le modifiche de $2',
 5958+ 'checkuser-log-ipusers' => '$1 el gà otegnù le utenze de $2',
 5959+ 'checkuser-log-ipedits-xff' => '$1 el gà otegnù le modifiche de $2 via XFF',
 5960+ 'checkuser-log-ipusers-xff' => '$1 el gà otegnù le utenze de $2 via XFF',
 5961+ 'checkuser-log-useredits' => '$1 gà otegnù i contributi de $2',
 5962+ 'checkuser-autocreate-action' => 'xe stà creà automaticamente',
 5963+ 'checkuser-email-action' => 'gà mandà na e-mail a "$1"',
 5964+ 'checkuser-reset-action' => 'reinposta la password par l\'utente "$1"',
 5965+);
 5966+
 5967+/** Veps (Vepsan kel')
 5968+ * @author Игорь Бродский
 5969+ */
 5970+$messages['vep'] = array(
 5971+ 'checkuser' => 'Kodvda kävutajad',
 5972+ 'group-checkuser' => 'Kodvda kävutajid',
 5973+ 'checkuser-reason' => 'Sü:',
 5974+ 'checkuser-showlog' => 'Ozutada aigkirj',
 5975+ 'checkuser-log' => 'Kävutajiden kodvindan aigkirj',
 5976+ 'checkuser-query' => 'Ozutada veresid toižetusid',
 5977+ 'checkuser-target' => 'Kävutai vai IP-adres',
 5978+ 'checkuser-users' => 'Sada kävutajid',
 5979+ 'checkuser-edits' => 'Sada toižetusid, kudambad oma tehtud IP-adresalpäi',
 5980+ 'checkuser-search' => 'Ectä',
 5981+ 'checkuser-all' => 'kaik',
 5982+);
 5983+
 5984+/** Vietnamese (Tiếng Việt)
 5985+ * @author Minh Nguyen
 5986+ * @author Vinhtantran
 5987+ */
 5988+$messages['vi'] = array(
 5989+ 'checkuser-summary' => 'Công cụ này sẽ quét các thay đổi gần đây để lấy ra các IP được một thành viên sử dụng hoặc hiển thị dữ liệu sửa đổi/tài khoản của một IP. Các tài khoản và sửa đổi của một IP có thể được trích ra từ tiêu đề XFF bằng cách thêm vào IP “/xff”. IPv4 (CIDR 16-32) và IPv6 (CIDR 96-128) đều được hỗ trợ. Không quá 5000 sửa đổi sẽ được trả về vì lý do hiệu suất. Hãy dùng công cụ này theo đúng quy định.',
 5990+ 'checkuser-desc' => 'Cung cấp cho những người đủ tiêu chuẩn khả năng kiểm tra địa chỉ IP và thông tin khác của người dùng khác',
 5991+ 'checkuser-logcase' => 'Tìm kiếm nhật trình có phân biệt chữ hoa chữ thường',
 5992+ 'checkuser' => 'Kiểm định viên',
 5993+ 'checkuser-contribs' => 'kiểm tra IP của người dùng',
 5994+ 'group-checkuser' => 'Kiểm định viên',
 5995+ 'group-checkuser-member' => 'Kiểm định viên',
 5996+ 'right-checkuser' => 'Kiểm tra địa chỉ IP và các thông tin khác của thành viên',
 5997+ 'right-checkuser-log' => 'Xem nhật trình CheckUser',
 5998+ 'grouppage-checkuser' => '{{ns:project}}:Kiểm định viên',
 5999+ 'checkuser-reason' => 'Lý do:',
 6000+ 'checkuser-showlog' => 'Xem nhật trình',
 6001+ 'checkuser-log' => 'Nhật trình CheckUser',
 6002+ 'checkuser-query' => 'Truy vấn các thay đổi gần đây',
 6003+ 'checkuser-target' => 'Thành viên hay IP',
 6004+ 'checkuser-users' => 'Lấy ra thành viên',
 6005+ 'checkuser-edits' => 'Lấy ra sửa đổi của IP',
 6006+ 'checkuser-ips' => 'Lấy ra IP',
 6007+ 'checkuser-account' => 'Xem các sửa đổi dùng tài khoản này',
 6008+ 'checkuser-search' => 'Tìm kiếm',
 6009+ 'checkuser-period' => 'Thời gian:',
 6010+ 'checkuser-week-1' => 'tuần trước',
 6011+ 'checkuser-week-2' => 'hai tuần trước',
 6012+ 'checkuser-month' => '30 ngày trước',
 6013+ 'checkuser-all' => 'tất cả',
 6014+ 'checkuser-cidr-label' => 'Tìm dãy phổ biến và các địa chỉ bị ảnh hưởng của danh sách IP',
 6015+ 'checkuser-cidr-res' => 'CIDR thông thường:',
 6016+ 'checkuser-empty' => 'Nhật trình hiện chưa có gì.',
 6017+ 'checkuser-nomatch' => 'Không tìm thấy kết quả.',
 6018+ 'checkuser-nomatch-edits' => 'Không tìm thấy kết quả.
 6019+Lần sửa đổi cuối xảy ra $1 lúc $2.',
 6020+ 'checkuser-check' => 'Kiểm tra',
 6021+ 'checkuser-log-fail' => 'Không thể ghi vào nhật trình',
 6022+ 'checkuser-nolog' => 'Không tìm thấy tập tin nhật trình',
 6023+ 'checkuser-blocked' => 'Đã cấm',
 6024+ 'checkuser-gblocked' => 'Cấm toàn cầu',
 6025+ 'checkuser-locked' => 'Khóa',
 6026+ 'checkuser-wasblocked' => 'Đã từng bị cấm',
 6027+ 'checkuser-localonly' => 'Chưa thống nhất',
 6028+ 'checkuser-massblock' => 'Cấm các người dùng được chọn',
 6029+ 'checkuser-massblock-text' => 'Các tài khoản được chọn sẽ bị cấm vô hạn, cũng cấm mở tài khoản và tự động cấm các địa chỉ IP. Những người dùng những địa chỉ IP này sẽ bị cấm một tuần và không được mở tài khoản.',
 6030+ 'checkuser-blocktag' => 'Thay thế các trang cá nhân bằng:',
 6031+ 'checkuser-blocktag-talk' => 'Thay các trang thảo luận bằng:',
 6032+ 'checkuser-massblock-commit' => 'Cấm những người dùng được chọn',
 6033+ 'checkuser-block-success' => "'''{{PLURAL:$2|Người|Các người}} dùng $1 mới bị cấm.'''",
 6034+ 'checkuser-block-failure' => "'''Không ai bị cấm.'''",
 6035+ 'checkuser-block-limit' => 'Đã chọn nhiều người dùng quá.',
 6036+ 'checkuser-block-noreason' => 'Phải đưa ra lý do cấm.',
 6037+ 'checkuser-accounts' => '$1 tài khoản mới',
 6038+ 'checkuser-too-many' => 'Có quá nhiều kết quả, xin hãy thu hẹp CIDR. Đây là các IP sử dụng (tối đa 5000, xếp theo địa chỉ):',
 6039+ 'checkuser-user-nonexistent' => 'Thành viên chỉ định không tồn tại.',
 6040+ 'checkuser-search-form' => 'Tìm thấy các mục nhật trình trong đó $1 là $2',
 6041+ 'checkuser-search-submit' => 'Tìm kiếm',
 6042+ 'checkuser-search-initiator' => 'người khởi đầu',
 6043+ 'checkuser-search-target' => 'mục tiêu',
 6044+ 'checkuser-ipeditcount' => '~$1 khỏi tất cả các thành viên',
 6045+ 'checkuser-log-subpage' => 'Nhật trình',
 6046+ 'checkuser-log-return' => 'Quay lại mẫu CheckUser chính',
 6047+ 'checkuser-limited' => "'''Bỏ qua ba kết quả cuối cùng để thực hiện nhanh hơn.'''",
 6048+ 'checkuser-log-userips' => '$1 lấy IP để $2',
 6049+ 'checkuser-log-ipedits' => '$1 lấy sửa đổi cho $2',
 6050+ 'checkuser-log-ipusers' => '$1 lấy thành viên cho $2',
 6051+ 'checkuser-log-ipedits-xff' => '$1 lấy sửa đổi cho XFF $2',
 6052+ 'checkuser-log-ipusers-xff' => '$1 lấy thành viên cho XFF $2',
 6053+ 'checkuser-log-useredits' => '$1 xem các sửa đổi của $2',
 6054+ 'checkuser-autocreate-action' => 'được tạo ra tự động',
 6055+ 'checkuser-email-action' => 'gửi thư điện tử cho người dùng “$1”',
 6056+ 'checkuser-reset-action' => 'mặc định lại mật khẩu của người dùng “$1”',
 6057+);
 6058+
 6059+/** Volapük (Volapük)
 6060+ * @author Malafaya
 6061+ * @author Smeira
 6062+ */
 6063+$messages['vo'] = array(
 6064+ 'checkuser-summary' => 'Stum at vestigon votükamis brefabüik ad dagetön ladetis-IP fa geban semik pagebölis, ud ad jonön redakama- u gebananünis tefü ladet-IP semik.
 6065+Gebans e redakams se dona-IP kanons pagetön de tiäds: XFF medä läükoy eli „/xff“ ladete-IP. Els IPv4 (CIDR 16-32) e IPv6 (CIDR 96-128) kanons pagebön.
 6066+Redakams no plu 5000 pejonons sekü kods kaenavik. Gebolös stumi at bai nomem.',
 6067+ 'checkuser-desc' => 'Gevon gebanes labü däl zesüdik fägi ad vestigön ladeti(s)-IP gebana äsi nünis votik',
 6068+ 'checkuser-logcase' => 'Pö suk in registar mayuds e minuds padifükons.',
 6069+ 'checkuser' => 'Vestigön gebani',
 6070+ 'group-checkuser' => 'Vestigön gebanis',
 6071+ 'group-checkuser-member' => 'Vestigön gebani',
 6072+ 'right-checkuser' => 'Kontrolön ladetis-IP e nünis votik tefü geban',
 6073+ 'right-checkuser-log' => 'Logön jenotalised gebanikontrolama',
 6074+ 'grouppage-checkuser' => '{{ns:project}}:Vestigön gebani',
 6075+ 'checkuser-reason' => 'Kod:',
 6076+ 'checkuser-showlog' => 'Jonön jenotalisedi',
 6077+ 'checkuser-log' => 'Vestigön gebani: jenotalised',
 6078+ 'checkuser-query' => 'Vestigön votükamis brefabüik',
 6079+ 'checkuser-target' => 'Geban u ladet-IP',
 6080+ 'checkuser-users' => 'Tuvön gebanis',
 6081+ 'checkuser-edits' => 'Tuvön redakamis ladeta-IP',
 6082+ 'checkuser-ips' => 'Tuvön ladetis-IP',
 6083+ 'checkuser-account' => 'Tuvön kaliredakamis',
 6084+ 'checkuser-search' => 'Sukolöd',
 6085+ 'checkuser-period' => 'Dul:',
 6086+ 'checkuser-week-1' => 'vig lätik',
 6087+ 'checkuser-week-2' => 'vigs lätik tel',
 6088+ 'checkuser-month' => 'dels lätik 30',
 6089+ 'checkuser-all' => 'valiks',
 6090+ 'checkuser-empty' => 'Lised vagon.',
 6091+ 'checkuser-nomatch' => 'Suk no eplöpon.',
 6092+ 'checkuser-nomatch-edits' => 'No petuvon.
 6093+Redakam lätik ejenon ün $1, tü $2.',
 6094+ 'checkuser-check' => 'Vestigön',
 6095+ 'checkuser-log-fail' => 'No eplöpos ad laükön jenotalisede',
 6096+ 'checkuser-nolog' => 'Ragiv jenotaliseda no petuvon.',
 6097+ 'checkuser-blocked' => 'Peblokon',
 6098+ 'checkuser-gblocked' => 'Peblokon valöpo',
 6099+ 'checkuser-locked' => 'Pelökofärmükon',
 6100+ 'checkuser-wasblocked' => 'Büo päbloköl',
 6101+ 'checkuser-localonly' => 'No pebalöl',
 6102+ 'checkuser-massblock' => 'Blokön gebanis pevälöl',
 6103+ 'checkuser-blocktag' => 'Plaädön gebanapadis me:',
 6104+ 'checkuser-blocktag-talk' => 'Plaädön bespikapadis me:',
 6105+ 'checkuser-massblock-commit' => 'Blokön gebanis pevälöl',
 6106+ 'checkuser-block-success' => "'''{{PLURAL:$2|Geban|Gebans}}: $1 {{PLURAL:$2|peblokon|peblokons}}.'''",
 6107+ 'checkuser-block-failure' => "'''Gebans nonik peblokons.'''",
 6108+ 'checkuser-block-limit' => 'Gebans tumödik pevälons.',
 6109+ 'checkuser-block-noreason' => 'Mutol nunön kodi blokamas.',
 6110+ 'checkuser-accounts' => '{{PLURAL:$1|kal|kals}} nulik $1',
 6111+ 'checkuser-too-many' => 'Sukaseks te mödiks, nedol gebön eli CIDR smalikum. Is palisedons ladets-IP pegeböl (jü 5000, peleodüköls ma ladet):',
 6112+ 'checkuser-user-nonexistent' => 'Geban at no dabinon.',
 6113+ 'checkuser-search-form' => 'Tuvön lienis jenotaliseda, kö $1 binon $2',
 6114+ 'checkuser-search-submit' => 'Suk',
 6115+ 'checkuser-search-initiator' => 'flagan',
 6116+ 'checkuser-search-target' => 'zeil',
 6117+ 'checkuser-ipeditcount' => '~$1 de gebans valik',
 6118+ 'checkuser-log-subpage' => 'Jenotalised',
 6119+ 'checkuser-log-return' => 'Geikön lü cifafomet',
 6120+ 'checkuser-log-userips' => '$1 labon ladetis-IP ela $2',
 6121+ 'checkuser-log-ipedits' => '$1 labon redakamis ela $2',
 6122+ 'checkuser-log-ipusers' => '$1 labon gebanis ela $2',
 6123+ 'checkuser-log-ipedits-xff' => '$1 labon redakamis ela XFF $2',
 6124+ 'checkuser-log-ipusers-xff' => '$1 labon gebanis ela XFF $2',
 6125+ 'checkuser-log-useredits' => '$1 labon redakamis pro $2',
 6126+ 'checkuser-autocreate-action' => 'pejafon itjäfidiko',
 6127+ 'checkuser-email-action' => 'äsedon penedi leäktronik gebane: „$1“',
 6128+ 'checkuser-reset-action' => 'votükön letavödi gebana: „$1“',
 6129+);
 6130+
 6131+/** Walloon (Walon)
 6132+ * @author Srtxg
 6133+ */
 6134+$messages['wa'] = array(
 6135+ 'checkuser' => "Verifyî l' uzeu",
 6136+);
 6137+
 6138+/** Yiddish (ייִדיש)
 6139+ * @author פוילישער
 6140+ */
 6141+$messages['yi'] = array(
 6142+ 'checkuser-target' => 'באניצער אדער IP אדרעס',
 6143+ 'checkuser-search' => 'זוכן',
 6144+ 'checkuser-week-1' => 'פֿאריגע וואך',
 6145+ 'checkuser-month' => 'פֿאריגע 30 טעג',
 6146+ 'checkuser-all' => 'אלע',
 6147+ 'checkuser-nomatch' => 'נישט געטראפֿן קיין פאָר.',
 6148+ 'checkuser-nomatch-edits' => 'נישט געטראפֿן קיין פאָרן.
 6149+לעצטע רעדאַקטירונג געווען אום $1 אין $2.',
 6150+ 'checkuser-check' => 'בודק זײַן',
 6151+ 'checkuser-log-fail' => 'נישט מעגלעך צולייגן בײַשרײַבונג אין לאג-בוך.',
 6152+ 'checkuser-nolog' => 'נישט געפֿונען קיין לאג בוך.',
 6153+ 'checkuser-blocked' => 'בלאקירט',
 6154+ 'checkuser-gblocked' => 'בלאקירט גלאבאַליש',
 6155+ 'checkuser-locked' => 'פֿאַרשלאסן',
 6156+ 'checkuser-search-submit' => 'זוכן',
 6157+ 'checkuser-search-target' => 'ציל',
 6158+);
 6159+
 6160+/** Yue (粵語) */
 6161+$messages['yue'] = array(
 6162+ 'checkuser-summary' => '呢個工具會響最近更改度掃瞄對一位用戶用過嘅IP地址,或者係睇一個IP嘅用戶資料同埋佢嘅編輯記錄。
 6163+ 響用戶同埋用戶端IP嘅編輯係可幾經由XFF頭,加上 "/xff" 就可以拎到。呢個工具係支援 IPv4 (CIDR 16-32) 同埋 IPv6 (CIDR 96-128)。
 6164+ 由於為咗效能方面嘅原因,將唔會顯示多過5000次嘅編輯。請跟源政策去用呢個工具。',
 6165+ 'checkuser-desc' => '畀合適去查用戶IP或其它嘢嘅能力畀用戶',
 6166+ 'checkuser-logcase' => '搵呢個日誌係有分大細楷嘅。',
 6167+ 'checkuser' => '核對用戶',
 6168+ 'group-checkuser' => '稽查員',
 6169+ 'group-checkuser-member' => '稽查員',
 6170+ 'right-checkuser' => '核對用戶嘅IP地址同埋其它嘅資料',
 6171+ 'grouppage-checkuser' => '{{ns:project}}:稽查員',
 6172+ 'checkuser-reason' => '原因',
 6173+ 'checkuser-showlog' => '顯示日誌',
 6174+ 'checkuser-log' => '核對用戶日誌',
 6175+ 'checkuser-query' => '查詢最近更改',
 6176+ 'checkuser-target' => '用戶名或IP',
 6177+ 'checkuser-users' => '拎用戶',
 6178+ 'checkuser-edits' => '拎IP嘅編輯',
 6179+ 'checkuser-ips' => '拎IP',
 6180+ 'checkuser-search' => '搵',
 6181+ 'checkuser-empty' => '呢個日誌無任何嘅項目。',
 6182+ 'checkuser-nomatch' => '搵唔到符合嘅資訊。',
 6183+ 'checkuser-check' => '查',
 6184+ 'checkuser-log-fail' => '唔能夠加入日誌項目',
 6185+ 'checkuser-nolog' => '搵唔到日誌檔。',
 6186+ 'checkuser-blocked' => '已經封鎖',
 6187+ 'checkuser-too-many' => '太多結果,請收窄個CIDR。
 6188+呢度係個用過嘅IP (最多5000個,按地址排):',
 6189+ 'checkuser-user-nonexistent' => '指定嘅用戶唔存在。',
 6190+ 'checkuser-search-form' => '搵當 $1 係 $2 嗰陣時嘅日誌',
 6191+ 'checkuser-search-submit' => '搵',
 6192+ 'checkuser-search-initiator' => '創始者',
 6193+ 'checkuser-search-target' => '目標',
 6194+ 'checkuser-ipeditcount' => '~響全部用戶度搵$1',
 6195+ 'checkuser-log-subpage' => '日誌',
 6196+ 'checkuser-log-return' => '返去核對用戶主要表格',
 6197+ 'checkuser-log-userips' => '$1 拎到 $2 嘅 IP',
 6198+ 'checkuser-log-ipedits' => '$1 拎到 $2 嘅編輯',
 6199+ 'checkuser-log-ipusers' => '$1 拎到 $2 嘅用戶',
 6200+ 'checkuser-log-ipedits-xff' => '$1 拎到 XFF $2 嘅編輯',
 6201+ 'checkuser-log-ipusers-xff' => '$1 拎到 XFF $2 嘅用戶',
 6202+);
 6203+
 6204+/** Simplified Chinese (‪中文(简体)‬)
 6205+ * @author Gzdavidwong
 6206+ * @author Wmr89502270
 6207+ */
 6208+$messages['zh-hans'] = array(
 6209+ 'checkuser-summary' => '本工具会从{{int:recentchanges}}中查询使用者使用过的IP位址,或是一个IP位址发送出来的任何编辑记录。本工具支持IPv4及IPv6的位址。由于技术上的限制,本工具只能查询最近5000笔的记录。请确定你的行为符合守则。',
 6210+ 'checkuser-desc' => '让授权的用户检查用户的IP位址及其他资讯',
 6211+ 'checkuser-logcase' => '搜寻时请注意大小写的区分',
 6212+ 'checkuser' => '核对用户',
 6213+ 'group-checkuser' => '账户核查',
 6214+ 'group-checkuser-member' => '账户核查',
 6215+ 'right-checkuser' => '查核用户的IP地址以及其它的资料',
 6216+ 'grouppage-checkuser' => '{{ns:project}}:账户核查',
 6217+ 'checkuser-reason' => '理由',
 6218+ 'checkuser-showlog' => '显示日志',
 6219+ 'checkuser-log' => '用户查核日志',
 6220+ 'checkuser-query' => '查询最近更改',
 6221+ 'checkuser-target' => '用户名称或IP位扯',
 6222+ 'checkuser-users' => '查询用户名称',
 6223+ 'checkuser-edits' => '从IP位址查询编辑日志',
 6224+ 'checkuser-ips' => '查询IP位址',
 6225+ 'checkuser-search' => '搜索',
 6226+ 'checkuser-week-1' => '上星期',
 6227+ 'checkuser-week-2' => '前两个星期',
 6228+ 'checkuser-month' => '前30天',
 6229+ 'checkuser-all' => '所有',
 6230+ 'checkuser-empty' => '日志里没有资料。',
 6231+ 'checkuser-nomatch' => '没有符合的资讯',
 6232+ 'checkuser-check' => '查询',
 6233+ 'checkuser-log-fail' => '无法更新日志。',
 6234+ 'checkuser-nolog' => '找不到记录档',
 6235+ 'checkuser-blocked' => '已经查封',
 6236+ 'checkuser-locked' => '已锁定',
 6237+ 'checkuser-too-many' => '太多结果,请收窄CIDR。
 6238+这是使用过?IP (最多5000个,按地址排列):',
 6239+ 'checkuser-user-nonexistent' => '指定的使用者不存在。',
 6240+ 'checkuser-search-form' => '搜寻当 $1 是 $2 时之日志',
 6241+ 'checkuser-search-submit' => '搜索',
 6242+ 'checkuser-search-initiator' => '创始者',
 6243+ 'checkuser-search-target' => '目标',
 6244+ 'checkuser-ipeditcount' => '~在全部用户中$1',
 6245+ 'checkuser-log-subpage' => '日志',
 6246+ 'checkuser-log-return' => '回到查核主表单',
 6247+ 'checkuser-log-userips' => '$1取得$2的IP信息',
 6248+ 'checkuser-log-ipedits' => '$1取得$2的编辑记录',
 6249+ 'checkuser-log-ipusers' => '$1取得$2的用户信息',
 6250+ 'checkuser-log-ipedits-xff' => '$1取得 XFF $2的编辑记录',
 6251+ 'checkuser-log-ipusers-xff' => '$1取得 XFF $2的用户信息',
 6252+ 'checkuser-autocreate-action' => '已经自动建立',
 6253+ 'checkuser-email-action' => '向用户“$1”发送电邮',
 6254+ 'checkuser-reset-action' => '为用户“$1”重新设置密码',
 6255+);
 6256+
 6257+/** Traditional Chinese (‪中文(繁體)‬)
 6258+ * @author Alexsh
 6259+ * @author Wrightbus
 6260+ */
 6261+$messages['zh-hant'] = array(
 6262+ 'checkuser-summary' => '本工具會從{{int:recentchanges}}中查詢使用者使用過的IP位址,或是一個IP位址發送出來的任何編輯記錄。本工具支援IPv4及IPv6的位址。由於技術上的限制,本工具只能查詢最近5000筆的記錄。請確定您的行為符合守則。',
 6263+ 'checkuser-desc' => '讓授權的使用者檢查使用者的IP位址及其他資訊',
 6264+ 'checkuser-logcase' => '搜尋時請注意大小寫的區分',
 6265+ 'checkuser' => '核對用戶',
 6266+ 'group-checkuser' => '用戶查核',
 6267+ 'group-checkuser-member' => '用戶查核',
 6268+ 'right-checkuser' => '查核用戶的IP地址以及其它的資料',
 6269+ 'grouppage-checkuser' => '{{ns:project}}:用戶查核',
 6270+ 'checkuser-reason' => '理由',
 6271+ 'checkuser-showlog' => '顯示記錄',
 6272+ 'checkuser-log' => '用戶查核記錄',
 6273+ 'checkuser-query' => '查詢最近更改',
 6274+ 'checkuser-target' => '用戶名稱或IP位扯',
 6275+ 'checkuser-users' => '查詢用戶名稱',
 6276+ 'checkuser-edits' => '從IP位址查詢編輯記錄',
 6277+ 'checkuser-ips' => '查詢IP位址',
 6278+ 'checkuser-search' => '搜尋',
 6279+ 'checkuser-empty' => '記錄裡沒有資料。',
 6280+ 'checkuser-nomatch' => '沒有符合的資訊',
 6281+ 'checkuser-check' => '查詢',
 6282+ 'checkuser-log-fail' => '無法更新記錄。',
 6283+ 'checkuser-nolog' => '找不到記錄檔',
 6284+ 'checkuser-blocked' => '已經查封',
 6285+ 'checkuser-locked' => '已鎖定',
 6286+ 'checkuser-too-many' => '太多結果,請收窄CIDR。
 6287+這是使用過嘅IP (最多5000個,按地址排列):',
 6288+ 'checkuser-user-nonexistent' => '指定的使用者不存在。',
 6289+ 'checkuser-search-form' => '搜尋當 $1 是 $2 時之日誌',
 6290+ 'checkuser-search-submit' => '{{int:Search}}',
 6291+ 'checkuser-search-initiator' => '創始者',
 6292+ 'checkuser-search-target' => '目標',
 6293+ 'checkuser-ipeditcount' => '~在全部用戶中$1',
 6294+ 'checkuser-log-subpage' => '日誌',
 6295+ 'checkuser-log-return' => '回到主表單',
 6296+ 'checkuser-log-userips' => '$1取得$2的IP訊息',
 6297+ 'checkuser-log-ipedits' => '$1取得$2的編輯記錄',
 6298+ 'checkuser-log-ipusers' => '$1取得$2的用戶訊息',
 6299+ 'checkuser-log-ipedits-xff' => '$1取得 XFF $2的編輯記錄',
 6300+ 'checkuser-log-ipusers-xff' => '$1取得 XFF $2的用戶訊息',
 6301+ 'checkuser-autocreate-action' => '經已自動建立',
 6302+ 'checkuser-email-action' => '向使用者「$1」發送電郵',
 6303+ 'checkuser-reset-action' => '為使用者「$1」重設密碼',
 6304+);
 6305+
Property changes on: branches/new-checkuser/CheckUser.i18n.php
___________________________________________________________________
Name: svn:eol-style
16306 + native
Index: branches/new-checkuser/CheckUser.php
@@ -0,0 +1,366 @@
 2+<?php
 3+
 4+# Not a valid entry point, skip unless MEDIAWIKI is defined
 5+if (!defined('MEDIAWIKI')) {
 6+ echo "CheckUser extension";
 7+ exit(1);
 8+}
 9+
 10+# Internationalisation file
 11+$dir = dirname(__FILE__) . '/';
 12+$wgExtensionMessagesFiles['CheckUser'] = $dir . 'CheckUser.i18n.php';
 13+$wgExtensionAliasesFiles['CheckUser'] = $dir . 'CheckUser.alias.php';
 14+
 15+$wgExtensionCredits['specialpage'][] = array(
 16+ 'path' => __FILE__,
 17+ 'author' => array( 'Tim Starling', 'Aaron Schulz' ),
 18+ 'name' => 'CheckUser',
 19+ 'url' => 'http://www.mediawiki.org/wiki/Extension:CheckUser',
 20+ 'description' => 'Grants users with the appropriate permission the ability to check user\'s IP addresses and other information',
 21+ 'descriptionmsg'=> 'checkuser-desc',
 22+);
 23+
 24+$wgAvailableRights[] = 'checkuser';
 25+$wgAvailableRights[] = 'checkuser-log';
 26+$wgGroupPermissions['checkuser']['checkuser'] = true;
 27+$wgGroupPermissions['checkuser']['checkuser-log'] = true;
 28+
 29+$wgCheckUserLog = '/home/wikipedia/logs/checkuser.log';
 30+
 31+# How long to keep CU data?
 32+$wgCUDMaxAge = 3 * 30 * 24 * 3600; // 3 months
 33+
 34+# Mass block limits
 35+$wgCheckUserMaxBlocks = 200;
 36+
 37+$wgCheckUserStyleVersion = 4;
 38+
 39+# Recent changes data hook
 40+global $wgHooks;
 41+$wgHooks['RecentChange_save'][] = 'efUpdateCheckUserData';
 42+$wgHooks['EmailUser'][] = 'efUpdateCUEmailData';
 43+$wgHooks['User::mailPasswordInternal'][] = 'efUpdateCUPasswordResetData';
 44+$wgHooks['AuthPluginAutoCreate'][] = 'efUpdateAutoCreateData';
 45+
 46+$wgHooks['ParserTestTables'][] = 'efCheckUserParserTestTables';
 47+$wgHooks['LoadExtensionSchemaUpdates'][] = 'efCheckUserSchemaUpdates';
 48+$wgHooks['ContributionsToolLinks'][] = 'efLoadCheckUserLink';
 49+
 50+/**
 51+ * Hook function for RecentChange_save
 52+ * Saves user data into the cu_changes table
 53+ */
 54+function efUpdateCheckUserData( $rc ) {
 55+ global $wgUser;
 56+ // Extract params
 57+ extract( $rc->mAttribs );
 58+ // Get IP
 59+ $ip = wfGetIP();
 60+ // Get XFF header
 61+ $xff = wfGetForwardedFor();
 62+ list($xff_ip,$trusted) = efGetClientIPfromXFF( $xff );
 63+ // Our squid XFFs can flood this up sometimes
 64+ $isSquidOnly = efXFFChainIsSquid( $xff );
 65+ // Get agent
 66+ $agent = wfGetAgent();
 67+ // Store the log action text for log events
 68+ // $rc_comment should just be the log_comment
 69+ // BC: check if log_type and log_action exists
 70+ // If not, then $rc_comment is the actiontext and comment
 71+ if( isset($rc_log_type) && $rc_type==RC_LOG ) {
 72+ $target = Title::makeTitle( $rc_namespace, $rc_title );
 73+ $actionText = LogPage::actionText( $rc_log_type, $rc_log_action, $target, NULL, LogPage::extractParams($rc_params) );
 74+ } else {
 75+ $actionText = '';
 76+ }
 77+
 78+ $dbw = wfGetDB( DB_MASTER );
 79+ $cuc_id = $dbw->nextSequenceValue( 'cu_changes_cu_id_seq' );
 80+ $rcRow = array(
 81+ 'cuc_id' => $cuc_id,
 82+ 'cuc_namespace' => $rc_namespace,
 83+ 'cuc_title' => $rc_title,
 84+ 'cuc_minor' => $rc_minor,
 85+ 'cuc_user' => $rc_user,
 86+ 'cuc_user_text' => $rc_user_text,
 87+ 'cuc_actiontext' => $actionText,
 88+ 'cuc_comment' => $rc_comment,
 89+ 'cuc_this_oldid' => $rc_this_oldid,
 90+ 'cuc_last_oldid' => $rc_last_oldid,
 91+ 'cuc_type' => $rc_type,
 92+ 'cuc_timestamp' => $rc_timestamp,
 93+ 'cuc_ip' => IP::sanitizeIP($ip),
 94+ 'cuc_ip_hex' => $ip ? IP::toHex( $ip ) : null,
 95+ 'cuc_xff' => !$isSquidOnly ? $xff : '',
 96+ 'cuc_xff_hex' => ($xff_ip && !$isSquidOnly) ? IP::toHex( $xff_ip ) : null,
 97+ 'cuc_agent' => $agent
 98+ );
 99+ # On PG, MW unsets cur_id due to schema incompatibilites. So it may not be set!
 100+ if( isset($rc_cur_id) ) {
 101+ $rcRow['cuc_page_id'] = $rc_cur_id;
 102+ }
 103+ $dbw->insert( 'cu_changes', $rcRow, __METHOD__ );
 104+
 105+ # Every 100th edit, prune the checkuser changes table.
 106+ wfSeedRandom();
 107+ if( 0 == mt_rand( 0, 99 ) ) {
 108+ # Periodically flush old entries from the recentchanges table.
 109+ global $wgCUDMaxAge;
 110+ $cutoff = $dbw->timestamp( time() - $wgCUDMaxAge );
 111+ $recentchanges = $dbw->tableName( 'cu_changes' );
 112+ $sql = "DELETE FROM $recentchanges WHERE cuc_timestamp < '{$cutoff}'";
 113+ $dbw->query( $sql );
 114+ }
 115+
 116+ return true;
 117+}
 118+
 119+/**
 120+ * Hook function to store password reset
 121+ * Saves user data into the cu_changes table
 122+ */
 123+function efUpdateCUPasswordResetData( $user, $ip, $account ) {
 124+ wfLoadExtensionMessages( 'CheckUser' );
 125+ // Get XFF header
 126+ $xff = wfGetForwardedFor();
 127+ list($xff_ip,$trusted) = efGetClientIPfromXFF( $xff );
 128+ // Our squid XFFs can flood this up sometimes
 129+ $isSquidOnly = efXFFChainIsSquid( $xff );
 130+ // Get agent
 131+ $agent = wfGetAgent();
 132+ $dbw = wfGetDB( DB_MASTER );
 133+ $cuc_id = $dbw->nextSequenceValue( 'cu_changes_cu_id_seq' );
 134+ $rcRow = array(
 135+ 'cuc_id' => $cuc_id,
 136+ 'cuc_namespace' => NS_USER,
 137+ 'cuc_title' => '',
 138+ 'cuc_minor' => 0,
 139+ 'cuc_user' => $user->getId(),
 140+ 'cuc_user_text' => $user->getName(),
 141+ 'cuc_actiontext' => wfMsgForContent('checkuser-reset-action',$account->getName()),
 142+ 'cuc_comment' => '',
 143+ 'cuc_this_oldid' => 0,
 144+ 'cuc_last_oldid' => 0,
 145+ 'cuc_type' => RC_LOG,
 146+ 'cuc_timestamp' => $dbw->timestamp( wfTimestampNow() ),
 147+ 'cuc_ip' => IP::sanitizeIP($ip),
 148+ 'cuc_ip_hex' => $ip ? IP::toHex( $ip ) : null,
 149+ 'cuc_xff' => !$isSquidOnly ? $xff : '',
 150+ 'cuc_xff_hex' => ($xff_ip && !$isSquidOnly) ? IP::toHex( $xff_ip ) : null,
 151+ 'cuc_agent' => $agent
 152+ );
 153+ $dbw->insert( 'cu_changes', $rcRow, __METHOD__ );
 154+
 155+ return true;
 156+}
 157+
 158+/**
 159+ * Hook function to store email data
 160+ * Saves user data into the cu_changes table
 161+ */
 162+function efUpdateCUEmailData( $to, $from, $subject, $text ) {
 163+ global $wgSecretKey;
 164+ if( !$wgSecretKey || $from->name == $to->name ) {
 165+ return true;
 166+ }
 167+ wfLoadExtensionMessages( 'CheckUser' );
 168+ $userFrom = User::newFromName( $from->name );
 169+ $userTo = User::newFromName( $to->name );
 170+ $hash = md5( $userTo->getEmail() . $userTo->getId() . $wgSecretKey );
 171+ // Get IP
 172+ $ip = wfGetIP();
 173+ // Get XFF header
 174+ $xff = wfGetForwardedFor();
 175+ list($xff_ip,$trusted) = efGetClientIPfromXFF( $xff );
 176+ // Our squid XFFs can flood this up sometimes
 177+ $isSquidOnly = efXFFChainIsSquid( $xff );
 178+ // Get agent
 179+ $agent = wfGetAgent();
 180+ $dbw = wfGetDB( DB_MASTER );
 181+ $cuc_id = $dbw->nextSequenceValue( 'cu_changes_cu_id_seq' );
 182+ $rcRow = array(
 183+ 'cuc_id' => $cuc_id,
 184+ 'cuc_namespace' => NS_USER,
 185+ 'cuc_title' => '',
 186+ 'cuc_minor' => 0,
 187+ 'cuc_user' => $userFrom->getId(),
 188+ 'cuc_user_text' => $userFrom->getName(),
 189+ 'cuc_actiontext' => wfMsgForContent('checkuser-email-action',$hash),
 190+ 'cuc_comment' => '',
 191+ 'cuc_this_oldid' => 0,
 192+ 'cuc_last_oldid' => 0,
 193+ 'cuc_type' => RC_LOG,
 194+ 'cuc_timestamp' => $dbw->timestamp( wfTimestampNow() ),
 195+ 'cuc_ip' => IP::sanitizeIP($ip),
 196+ 'cuc_ip_hex' => $ip ? IP::toHex( $ip ) : null,
 197+ 'cuc_xff' => !$isSquidOnly ? $xff : '',
 198+ 'cuc_xff_hex' => ($xff_ip && !$isSquidOnly) ? IP::toHex( $xff_ip ) : null,
 199+ 'cuc_agent' => $agent
 200+ );
 201+ $dbw->insert( 'cu_changes', $rcRow, __METHOD__ );
 202+
 203+ return true;
 204+}
 205+
 206+/**
 207+ * Hook function to store autocreation data from the auth plugin
 208+ * Saves user data into the cu_changes table
 209+ */
 210+function efUpdateAutoCreateData( $user ) {
 211+ wfLoadExtensionMessages( 'CheckUser' );
 212+ // Get IP
 213+ $ip = wfGetIP();
 214+ // Get XFF header
 215+ $xff = wfGetForwardedFor();
 216+ list($xff_ip,$trusted) = efGetClientIPfromXFF( $xff );
 217+ // Our squid XFFs can flood this up sometimes
 218+ $isSquidOnly = efXFFChainIsSquid( $xff );
 219+ // Get agent
 220+ $agent = wfGetAgent();
 221+ $dbw = wfGetDB( DB_MASTER );
 222+ $cuc_id = $dbw->nextSequenceValue( 'cu_changes_cu_id_seq' );
 223+ $rcRow = array(
 224+ 'cuc_id' => $cuc_id,
 225+ 'cuc_page_id' => 0,
 226+ 'cuc_namespace' => NS_USER,
 227+ 'cuc_title' => '',
 228+ 'cuc_minor' => 0,
 229+ 'cuc_user' => $user->getId(),
 230+ 'cuc_user_text' => $user->getName(),
 231+ 'cuc_actiontext' => wfMsgForContent('checkuser-autocreate-action'),
 232+ 'cuc_comment' => '',
 233+ 'cuc_this_oldid' => 0,
 234+ 'cuc_last_oldid' => 0,
 235+ 'cuc_type' => RC_LOG,
 236+ 'cuc_timestamp' => $dbw->timestamp( wfTimestampNow() ),
 237+ 'cuc_ip' => IP::sanitizeIP($ip),
 238+ 'cuc_ip_hex' => $ip ? IP::toHex( $ip ) : null,
 239+ 'cuc_xff' => !$isSquidOnly ? $xff : '',
 240+ 'cuc_xff_hex' => ($xff_ip && !$isSquidOnly) ? IP::toHex( $xff_ip ) : null,
 241+ 'cuc_agent' => $agent
 242+ );
 243+ $dbw->insert( 'cu_changes', $rcRow, __METHOD__ );
 244+
 245+ return true;
 246+}
 247+
 248+/**
 249+ * Locates the client IP within a given XFF string
 250+ * @param string $xff
 251+ * @param string $address, the ip that sent this header (optional)
 252+ * @return array( string, bool )
 253+ */
 254+function efGetClientIPfromXFF( $xff, $address=NULL ) {
 255+ if( !$xff )
 256+ return array(null, false);
 257+ // Avoid annoyingly long xff hacks
 258+ $xff = trim( substr( $xff, 0, 255 ) );
 259+ $client = null;
 260+ $trusted = true;
 261+ // Check each IP, assuming they are separated by commas
 262+ $ips = explode(',',$xff);
 263+ foreach( $ips as $n => $ip ) {
 264+ $ip = trim($ip);
 265+ // If it is a valid IP, not a hash or such
 266+ if( IP::isIPAddress($ip) ) {
 267+ # The first IP should be the client.
 268+ # Start only from the first public IP.
 269+ if( is_null($client) ) {
 270+ if( IP::isPublic($ip) )
 271+ $client = $ip;
 272+ # Check that all servers are trusted
 273+ } else if( !wfIsTrustedProxy($ip) ) {
 274+ $trusted = false;
 275+ break;
 276+ }
 277+ }
 278+ }
 279+ // We still have to test if the IP that sent
 280+ // this header is trusted to confirm results
 281+ if ( $client != $address && (!$address || !wfIsTrustedProxy($address)) )
 282+ $trusted = false;
 283+
 284+ return array( $client, $trusted );
 285+}
 286+
 287+function efXFFChainIsSquid( $xff ) {
 288+ global $wgSquidServers, $wgSquidServersNoPurge;
 289+
 290+ if ( !$xff )
 291+ false;
 292+ // Avoid annoyingly long xff hacks
 293+ $xff = trim( substr( $xff, 0, 255 ) );
 294+ $squidOnly = true;
 295+ // Check each IP, assuming they are separated by commas
 296+ $ips = explode(',',$xff);
 297+ foreach( $ips as $n => $ip ) {
 298+ $ip = trim($ip);
 299+ // If it is a valid IP, not a hash or such
 300+ if ( IP::isIPAddress($ip) ) {
 301+ if ( $n==0 ) {
 302+ // The first IP should be the client...
 303+ } else if ( !in_array($ip,$wgSquidServers) && !in_array($ip,$wgSquidServersNoPurge) ) {
 304+ $squidOnly = false;
 305+ break;
 306+ }
 307+ }
 308+ }
 309+
 310+ return $squidOnly;
 311+}
 312+
 313+function efCheckUserSchemaUpdates() {
 314+ global $wgDBtype, $wgExtNewIndexes;
 315+
 316+ # Run install.inc as necessary
 317+ $base = dirname(__FILE__);
 318+
 319+ $db = wfGetDB( DB_MASTER );
 320+ if( $db->tableExists( 'cu_changes' ) ) {
 321+ echo "...cu_changes already exists.\n";
 322+ } else {
 323+ require_once "$base/install.inc";
 324+ create_cu_changes( $db );
 325+ }
 326+
 327+ if( $db->tableExists( 'cu_log' ) ) {
 328+ echo "...cu_log already exists.\n";
 329+ } else {
 330+ require_once "$base/install.inc";
 331+ create_cu_log( $db );
 332+ }
 333+
 334+ if ($wgDBtype == 'mysql') {
 335+ $wgExtNewIndexes[] = array('cu_changes', 'cuc_ip_hex_time',
 336+ "$base/archives/patch-cu_changes_indexes.sql" );
 337+ $wgExtNewIndexes[] = array('cu_changes', 'cuc_user_ip_time',
 338+ "$base/archives/patch-cu_changes_indexes2.sql" );
 339+ }
 340+ return true;
 341+}
 342+
 343+/**
 344+ * Tell the parser test engine to create a stub cu_changes table,
 345+ * or temporary pages won't save correctly during the test run.
 346+ */
 347+function efCheckUserParserTestTables( &$tables ) {
 348+ $tables[] = 'cu_changes';
 349+ return true;
 350+}
 351+
 352+$wgSpecialPages['CheckUser'] = 'CheckUser';
 353+$wgSpecialPageGroups['CheckUser'] = 'users';
 354+$wgAutoloadClasses['CheckUser'] = dirname(__FILE__) . '/CheckUser_body.php';
 355+
 356+
 357+function efLoadCheckUserLink( $id, $nt, &$links ) {
 358+ global $wgUser;
 359+ if( $wgUser->isAllowed( 'checkuser' ) ) {
 360+ wfLoadExtensionMessages( 'CheckUser' );
 361+ $links[] = $wgUser->getSkin()->makeKnownLinkObj(
 362+ SpecialPage::getTitleFor( 'CheckUser' ),
 363+ wfMsgHtml( 'checkuser-contribs' ),
 364+ 'user=' . urlencode( $nt->getText() ) );
 365+ }
 366+ return true;
 367+}
Property changes on: branches/new-checkuser/CheckUser.php
___________________________________________________________________
Name: svn:eol-style
1368 + native
Index: branches/new-checkuser/cu_changes.pg.sql
@@ -0,0 +1,34 @@
 2+-- Tables for the CheckUser extension
 3+-- vim: autoindent syn=pgsql sts=2 sw=2
 4+-- This is the Postgres version
 5+-- See cu_changes.sql for details on each column
 6+
 7+BEGIN;
 8+
 9+CREATE SEQUENCE cu_changes_cu_id_seq;
 10+CREATE TABLE cu_changes (
 11+ cuc_id INTEGER NOT NULL DEFAULT nextval('cu_changes_cu_id_seq'),
 12+ cuc_namespace SMALLINT NOT NULL DEFAULT 0,
 13+ cuc_title TEXT NOT NULL DEFAULT '',
 14+ cuc_user INTEGER NULL REFERENCES mwuser(user_id) ON DELETE SET NULL,
 15+ cuc_user_text TEXT NOT NULL,
 16+ cuc_actiontext TEXT NOT NULL DEFAULT '',
 17+ cuc_comment TEXT NOT NULL DEFAULT '',
 18+ cuc_minor CHAR NOT NULL DEFAULT 0,
 19+ cuc_page_id INTEGER NULL REFERENCES page(page_id) ON DELETE SET NULL,
 20+ cuc_this_oldid INTEGER NOT NULL DEFAULT 0,
 21+ cuc_last_oldid INTEGER NOT NULL DEFAULT 0,
 22+ cuc_type SMALLINT NOT NULL DEFAULT 0,
 23+ cuc_timestamp TIMESTAMPTZ,
 24+ cuc_ip CIDR,
 25+ cuc_ip_hex TEXT,
 26+ cuc_xff TEXT,
 27+ cuc_xff_hex TEXT,
 28+ cuc_agent TEXT
 29+);
 30+
 31+CREATE INDEX cuc_ip_hex_time ON cu_changes( cuc_ip_hex, cuc_timestamp );
 32+CREATE INDEX cuc_user_ip_time ON cu_changes( cuc_user, cuc_ip, cuc_timestamp );
 33+CREATE INDEX cuc_xff_hex_time ON cu_changes( cuc_xff_hex, cuc_timestamp );
 34+
 35+COMMIT;
Property changes on: branches/new-checkuser/cu_changes.pg.sql
___________________________________________________________________
Name: svn:eol-style
136 + native
Index: branches/new-checkuser/importLog.php
@@ -0,0 +1,56 @@
 2+<?php
 3+
 4+require_once ( getenv('MW_INSTALL_PATH') !== false
 5+ ? getenv('MW_INSTALL_PATH')."/maintenance/commandLine.inc"
 6+ : dirname( __FILE__ ) . '/../../maintenance/commandLine.inc' );
 7+require "cu_log_import.inc";
 8+
 9+function test_cu_log( $log ) {
 10+ $matched = 0;
 11+ $unmatched = 0;
 12+ $badtime = 0;
 13+
 14+ $file = fopen( $log, 'r' );
 15+ while ( false !== ( $line = fgets( $file ) ) ) {
 16+ $found = false;
 17+ $data = import_cu_log_line( $line );
 18+ if( $data ) {
 19+ $matched++;
 20+ if( !$data['timestamp'] ) {
 21+ print "[bad timestamp] $line";
 22+ $badtime++;
 23+ }
 24+ } else {
 25+ print "[bad format] $line";
 26+ $unmatched++;
 27+ }
 28+ }
 29+ fclose( $file );
 30+ print "\n$matched matched, $badtime matched with bad time, $unmatched unprocessed\n";
 31+}
 32+
 33+if( $args ) {
 34+ $log = $args[0];
 35+ if( isset( $options['test'] ) ) {
 36+ test_cu_log( $log );
 37+ } else {
 38+ $dryRun = isset( $options['dry-run'] );
 39+ if( $dryRun ) {
 40+ $db = false;
 41+ echo "Dry run; no actual imports will be made...\n";
 42+ } else {
 43+ $db = wfGetDB( DB_MASTER );
 44+ }
 45+ import_cu_log( $db, $log );
 46+ }
 47+} else {
 48+ echo "CheckUser old log file importer.\n";
 49+ echo "If cu_log table has been manually added, can be used to import old data.\n";
 50+ echo "\n";
 51+ echo "Usage: php importLog.php [--test] [--dry-run] checkuser.log\n";
 52+ echo " --dry-run Parse and do local lookups, but don't perform inserts\n";
 53+ echo " --test Test log parser without doing local lookups\n";
 54+ echo "\n";
 55+}
 56+
 57+?>
\ No newline at end of file
Property changes on: branches/new-checkuser/importLog.php
___________________________________________________________________
Name: svn:eol-style
158 + native
Index: branches/new-checkuser/archives/patch-cu_changes_indexes.sql
@@ -0,0 +1,11 @@
 2+-- Improves indexes for better peformance with large result sets
 3+-- vim: autoindent syn=mysql sts=2 sw=2
 4+-- Replace /*$wgDBprefix*/ with the proper prefix
 5+
 6+ALTER TABLE /*$wgDBprefix*/cu_changes
 7+ ADD INDEX cuc_ip_hex_time (cuc_ip_hex,cuc_timestamp),
 8+ ADD INDEX cuc_user_ip_time (cuc_user,cuc_ip,cuc_timestamp),
 9+ ADD INDEX cuc_xff_hex_time (cuc_xff_hex,cuc_timestamp),
 10+ DROP INDEX cuc_ip_hex,
 11+ DROP INDEX cuc_xff_hex,
 12+ DROP INDEX cuc_user;
Property changes on: branches/new-checkuser/archives/patch-cu_changes_indexes.sql
___________________________________________________________________
Name: svn:eol-style
113 + native
Index: branches/new-checkuser/archives/patch-cu_changes_indexes2.sql
@@ -0,0 +1,7 @@
 2+-- Improves indexes for better peformance with large result sets
 3+-- vim: autoindent syn=mysql sts=2 sw=2
 4+-- Replace /*$wgDBprefix*/ with the proper prefix
 5+
 6+ALTER TABLE /*$wgDBprefix*/cu_changes
 7+ ADD INDEX cuc_user_ip_time (cuc_user,cuc_ip,cuc_timestamp),
 8+ DROP INDEX cuc_user_time;
Property changes on: branches/new-checkuser/archives/patch-cu_changes_indexes2.sql
___________________________________________________________________
Name: svn:eol-style
19 + native
Index: branches/new-checkuser/cu_log.sql
@@ -0,0 +1,42 @@
 2+-- CheckUser log table
 3+-- vim: autoindent syn=mysql sts=2 sw=2
 4+
 5+CREATE TABLE /*$wgDBprefix*/cu_log (
 6+ -- Unique identifier
 7+ cul_id int unsigned not null auto_increment,
 8+
 9+ -- Timestamp of CheckUser action
 10+ cul_timestamp binary(14) not null,
 11+
 12+ -- User who performed the action
 13+ cul_user int unsigned not null,
 14+ cul_user_text varchar(255) binary not null,
 15+
 16+ -- Reason given
 17+ cul_reason varchar(255) binary not null,
 18+
 19+ -- String indicating the type of query, may be "userips", "ipedits", "ipusers", "ipedits-xff", "ipusers-xff"
 20+ cul_type varbinary(30) not null,
 21+
 22+ -- Integer target, interpretation depends on cul_type
 23+ -- For username targets, this is the user_id
 24+ cul_target_id int unsigned not null default 0,
 25+
 26+ -- Text target, interpretation depends on cul_type
 27+ cul_target_text blob not null default '',
 28+
 29+ -- If the target was an IP address, this contains the hexadecimal form of the IP
 30+ cul_target_hex varbinary(255) not null default '',
 31+ -- If the target was an IP range, these fields contain the start and end, in hex form
 32+ cul_range_start varbinary(255) not null default '',
 33+ cul_range_end varbinary(255) not null default '',
 34+
 35+ PRIMARY KEY (cul_id),
 36+ INDEX (cul_timestamp),
 37+ INDEX cul_user (cul_user, cul_timestamp),
 38+ INDEX cul_type_target (cul_type,cul_target_id, cul_timestamp),
 39+ INDEX cul_target_hex (cul_target_hex, cul_timestamp),
 40+ INDEX cul_range_start (cul_range_start, cul_timestamp)
 41+
 42+) /*$wgDBTableOptions*/;
 43+
Property changes on: branches/new-checkuser/cu_log.sql
___________________________________________________________________
Name: svn:eol-style
144 + native
Index: branches/new-checkuser/checkuser.js
@@ -0,0 +1,224 @@
 2+/* -- (c) Aaron Schulz 2009 */
 3+
 4+/* Every time you change this JS please bump $wgCheckUserStyleVersion in CheckUser.php */
 5+
 6+/*
 7+* This function calculates the common range of a list of
 8+* IPs. It should be set to update on keyUp.
 9+*/
 10+function updateCIDRresult() {
 11+ var form = document.getElementById( 'mw-checkuser-cidrform' );
 12+ if( !form ) return; // no JS form
 13+ form.style.display = 'inline'; // unhide form (JS active)
 14+ var iplist = document.getElementById( 'mw-checkuser-iplist' );
 15+ if( !iplist ) return; // no JS form
 16+ var text = iplist.value;
 17+ // Each line should have one IP or range
 18+ if( text.indexOf("\n") != -1 ) {
 19+ var ips = text.split("\n");
 20+ // Try some other delimiters too
 21+ } else if( text.indexOf("\t") != -1 ) {
 22+ var ips = text.split("\t");
 23+ } else if( text.indexOf(",") != -1 ) {
 24+ var ips = text.split(",");
 25+ } else {
 26+ var ips = text.split(";");
 27+ }
 28+ var bin_prefix = 0;
 29+ var prefix_cidr = 0;
 30+ var prefix = new String( "" );
 31+ // Go through each IP in the list, get it's binary form, and track
 32+ // the largest binary prefix among them
 33+ for( var i=0; i<ips.length; i++ ) {
 34+ // ...in the spirit of block.js, call this "addy"
 35+ var addy = ips[i];
 36+ // Match the first IP in each list (ignore other garbage)
 37+ var ipV4 = addy.match(/(^|\b)(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})(\/\d+)?\b/);
 38+ var ipV6 = addy.match(/(^|\b)(:(:[0-9A-Fa-f]{1,4}){1,7}|[0-9A-Fa-f]{1,4}(:{1,2}[0-9A-Fa-f]{1,4}|::$){1,7})(\/\d+)?\b/);
 39+ // Binary form
 40+ var bin = new String( "" );
 41+ // Rebuilt formatted bin_prefix for each IP
 42+ if( ipV4 || ipV6 ) prefix = '';
 43+ // Convert the IP to binary form: IPv4
 44+ if( ipV4 ) {
 45+ var ip = ipV4[2];
 46+ var cidr = ipV4[3]; // CIDR, if it exists
 47+ // Get each quad integer
 48+ var blocs = ip.split('.');
 49+ for( var x=0; x<blocs.length; x++ ) {
 50+ bloc = parseInt( blocs[x], 10 );
 51+ if( bloc > 255 ) continue; // bad IP!
 52+ bin_block = bloc.toString(2); // concat bin with binary form of bloc
 53+ while( bin_block.length < 8 ) {
 54+ bin_block = "0" + bin_block; // pad out as needed
 55+ }
 56+ bin += bin_block;
 57+ }
 58+ // Apply any valid CIDRs
 59+ if( cidr ) {
 60+ cidr = cidr.match( /\d+$/ )[0]; // get rid of slash
 61+ bin = bin.substring(0,cidr); // truncate bin
 62+ }
 63+ // Init bin_prefix
 64+ if( bin_prefix === 0 ) {
 65+ bin_prefix = new String( bin );
 66+ // Get largest common bin_prefix
 67+ } else {
 68+ for( var x=0; x<bin_prefix.length; x++ ) {
 69+ // Bin_prefix always smaller than bin unless a CIDR was used on bin
 70+ if( bin[x] == undefined || bin_prefix[x] != bin[x] ) {
 71+ bin_prefix = bin_prefix.substring(0,x); // shorten bin_prefix
 72+ break;
 73+ }
 74+ }
 75+ }
 76+ // Build the IP in CIDR form
 77+ var prefix_cidr = bin_prefix.length;
 78+ // CIDR too small?
 79+ if( prefix_cidr < 16 ) {
 80+ document.getElementById( 'mw-checkuser-cidr-res' ).value = "!";
 81+ document.getElementById( 'mw-checkuser-ipnote' ).innerHTML = "&gt;"+Math.pow(2,32-prefix_cidr);
 82+ return; // too big
 83+ }
 84+ // Build the IP in dotted-quad form
 85+ for( var z=0; z<=3; z++ ) {
 86+ var bloc = 0;
 87+ var start = z*8;
 88+ var end = start + 7;
 89+ for( var x=start; x<=end; x++ ) {
 90+ if( bin_prefix[x] == undefined ) break;
 91+ bloc += parseInt(bin_prefix[x],10)*Math.pow(2,end-x);
 92+ }
 93+ prefix += ( z == 3 ) ? bloc : bloc + '.';
 94+ }
 95+ // Get IPs affected
 96+ ip_count = Math.pow(2,32-prefix_cidr);
 97+ // Is the CIDR meaningful?
 98+ if( prefix_cidr == 32 ) prefix_cidr = false;
 99+ // Convert the IP to binary form: IPv6
 100+ } else if( ipV6 ) {
 101+ var ip = ipV6[2];
 102+ var cidr = ipV6[0].match( /\/\d+$/ );
 103+ cidr = cidr ? cidr[0] : false;
 104+ var abbrevs = ip.match( /::/g );
 105+ if( abbrevs && abbrevs.length > 1 ) continue; // bad IP!
 106+ // Expand out "::"s
 107+ if( abbrevs && abbrevs.length > 0 ) {
 108+ var colons = ip.match( /:/g );
 109+ var needed = 7 - (colons.length - 2); // 2 from "::"
 110+ var insert = '';
 111+ while( needed > 1 ) {
 112+ insert += ':0';
 113+ needed--;
 114+ }
 115+ ip = ip.replace( '::', insert + ':' );
 116+ // For IPs that start with "::", correct the final IP so that it starts with '0' and not ':'
 117+ if( ip[0] == ':' ) ip = '0' + ip;
 118+ }
 119+ // Get each hex octant
 120+ var blocs = ip.split(':');
 121+ for( var x=0; x<=7; x++ ) {
 122+ bloc = blocs[x] ? blocs[x] : "0";
 123+ if( bloc > "ffff" ) continue; // bad IP!
 124+ int_block = hex2int( bloc ); // convert hex -> int
 125+ bin_block = int_block.toString(2); // concat bin with binary form of bloc
 126+ while( bin_block.length < 16 ) {
 127+ bin_block = "0" + bin_block; // pad out as needed
 128+ }
 129+ bin += bin_block;
 130+ }
 131+ // Apply any valid CIDRs
 132+ if( cidr ) {
 133+ cidr = cidr.match( /\d+$/ )[0]; // get rid of slash
 134+ bin = bin.substring(0,cidr); // truncate bin
 135+ }
 136+ // Init bin_prefix
 137+ if( bin_prefix === 0 ) {
 138+ bin_prefix = new String( bin );
 139+ // Get largest common bin_prefix
 140+ } else {
 141+ for( var x=0; x<bin_prefix.length; x++ ) {
 142+ // Bin_prefix always smaller than bin unless a CIDR was used on bin
 143+ if( bin[x] == undefined || bin_prefix[x] != bin[x] ) {
 144+ bin_prefix = bin_prefix.substring(0,x); // shorten bin_prefix
 145+ break;
 146+ }
 147+ }
 148+ }
 149+ // Build the IP in CIDR form
 150+ var prefix_cidr = bin_prefix.length;
 151+ // CIDR too small?
 152+ if( prefix_cidr < 96 ) {
 153+ document.getElementById( 'mw-checkuser-cidr-res' ).value = "!";
 154+ document.getElementById( 'mw-checkuser-ipnote' ).innerHTML = "&gt;"+Math.pow(2,128-prefix_cidr);
 155+ return; // too big
 156+ }
 157+ // Build the IP in dotted-quad form
 158+ for( var z=0; z<=7; z++ ) {
 159+ var bloc = 0;
 160+ var start = z*16;
 161+ var end = start + 15;
 162+ for( var x=start; x<=end; x++ ) {
 163+ if( bin_prefix[x] == undefined ) break;
 164+ bloc += parseInt(bin_prefix[x],10)*Math.pow(2,end-x);
 165+ }
 166+ bloc = bloc.toString(16); // convert to hex
 167+ prefix += ( z == 7 ) ? bloc : bloc + ':';
 168+ }
 169+ // Get IPs affected
 170+ ip_count = Math.pow(2,128-prefix_cidr);
 171+ // Is the CIDR meaningful?
 172+ if( prefix_cidr == 128 ) prefix_cidr = false;
 173+ }
 174+ }
 175+ // Update form
 176+ if( prefix != "" ) {
 177+ if( prefix_cidr != false ) {
 178+ document.getElementById( 'mw-checkuser-cidr-res' ).value = prefix + '/' + prefix_cidr;
 179+ } else {
 180+ document.getElementById( 'mw-checkuser-cidr-res' ).value = prefix;
 181+ }
 182+ document.getElementById( 'mw-checkuser-ipnote' ).innerHTML = '~' + ip_count;
 183+ } else {
 184+ document.getElementById( 'mw-checkuser-cidr-res' ).value = '?';
 185+ document.getElementById( 'mw-checkuser-ipnote' ).innerHTML = '';
 186+ }
 187+
 188+}
 189+addOnloadHook( updateCIDRresult );
 190+
 191+// Utility function to convert hex to integers
 192+function hex2int( hex ) {
 193+ hex = new String( hex );
 194+ hex = hex.toLowerCase();
 195+ var intform = 0;
 196+ for( var i=0; i<hex.length; i++ ) {
 197+ var digit = 0;
 198+ switch( hex[i] )
 199+ {
 200+ case 'a':
 201+ digit = 10;
 202+ break;
 203+ case 'b':
 204+ digit = 11;
 205+ break;
 206+ case 'c':
 207+ digit = 12;
 208+ break;
 209+ case 'd':
 210+ digit = 13;
 211+ break;
 212+ case 'e':
 213+ digit = 14;
 214+ break;
 215+ case 'f':
 216+ digit = 15;
 217+ break;
 218+ default:
 219+ digit = parseInt( hex[i], 10 );
 220+ break;
 221+ }
 222+ intform += digit*Math.pow(16,hex.length-1-i);
 223+ }
 224+ return intform;
 225+}
Property changes on: branches/new-checkuser/checkuser.js
___________________________________________________________________
Name: svn:eol-style
1226 + native
Index: branches/new-checkuser/CheckUser.alias.php
@@ -0,0 +1,231 @@
 2+<?php
 3+/**
 4+ * Aliases for Special:CheckUser
 5+ *
 6+ * @addtogroup Extensions
 7+ */
 8+
 9+$aliases = array();
 10+
 11+/** English
 12+ * @author Jon Harald Søby
 13+ */
 14+$aliases['en'] = array(
 15+ 'CheckUser' => array( 'CheckUser' ),
 16+);
 17+
 18+/** Arabic (العربية)
 19+ * @author Meno25
 20+ */
 21+$aliases['ar'] = array(
 22+ 'CheckUser' => array( 'تدقيق_مستخدم' ),
 23+);
 24+
 25+/** Egyptian Spoken Arabic (مصرى)
 26+ * @author Meno25
 27+ */
 28+$aliases['arz'] = array(
 29+ 'CheckUser' => array( 'تدقيق_مستخدم' ),
 30+);
 31+
 32+/** Assamese (অসমীয়া) */
 33+$aliases['as'] = array(
 34+ 'CheckUser' => array( 'সদস্যৰ অনুসন্ধান কৰক' ),
 35+);
 36+
 37+/** Bulgarian (Български) */
 38+$aliases['bg'] = array(
 39+ 'CheckUser' => array( 'Проверка на потребител' ),
 40+);
 41+
 42+/** Bosnian (Bosanski) */
 43+$aliases['bs'] = array(
 44+ 'CheckUser' => array( 'ProvjeraKorisnika' ),
 45+);
 46+
 47+/** German (Deutsch)
 48+ * @author Raimond Spekking
 49+ */
 50+$aliases['de'] = array(
 51+ 'CheckUser' => array( 'Checkuser' ),
 52+);
 53+
 54+/** Lower Sorbian (Dolnoserbski) */
 55+$aliases['dsb'] = array(
 56+ 'CheckUser' => array( 'Kontrolny wužywaŕ' ),
 57+);
 58+
 59+/** Greek (Ελληνικά) */
 60+$aliases['el'] = array(
 61+ 'CheckUser' => array( 'ΈλεγχοςΧρήστη' ),
 62+);
 63+
 64+/** Spanish (Español) */
 65+$aliases['es'] = array(
 66+ 'CheckUser' => array( 'Comprobar_usuario', 'Checkuser' ),
 67+);
 68+
 69+/** Persian (فارسی) */
 70+$aliases['fa'] = array(
 71+ 'CheckUser' => array( 'بازرسی_کاربر' ),
 72+);
 73+
 74+/** Finnish (Suomi) */
 75+$aliases['fi'] = array(
 76+ 'CheckUser' => array( 'Tarkista käyttäjä' ),
 77+);
 78+
 79+/** French (Français) */
 80+$aliases['fr'] = array(
 81+ 'CheckUser' => array( "Vérificateur d'utilisateur", "Vérificateur d'utilisateurs", 'VérificateurUtilisateur', 'VérificateurUtilisateurs', 'Vérificateur d’adresse', 'VérificateurAdresse', 'VerificateurAdresse' ),
 82+);
 83+
 84+/** Franco-Provençal (Arpetan) */
 85+$aliases['frp'] = array(
 86+ 'CheckUser' => array( "Controlor d'utilisator", 'ControlorDUtilisator' ),
 87+);
 88+
 89+/** Galician (Galego) */
 90+$aliases['gl'] = array(
 91+ 'CheckUser' => array( 'Verificador de usuarios' ),
 92+);
 93+
 94+/** Swiss German (Alemannisch) */
 95+$aliases['gsw'] = array(
 96+ 'CheckUser' => array( 'Benutzerpriefig' ),
 97+);
 98+
 99+/** Hebrew (עברית)
 100+ * @author Rotem Liss
 101+ */
 102+$aliases['he'] = array(
 103+ 'CheckUser' => array( 'בדיקת_משתמש' ),
 104+);
 105+
 106+/** Croatian (Hrvatski) */
 107+$aliases['hr'] = array(
 108+ 'CheckUser' => array( 'Provjeri_suradnika' ),
 109+);
 110+
 111+/** Upper Sorbian (Hornjoserbsce) */
 112+$aliases['hsb'] = array(
 113+ 'CheckUser' => array( 'Kontrolny wužiwar' ),
 114+);
 115+
 116+/** Haitian (Kreyòl ayisyen) */
 117+$aliases['ht'] = array(
 118+ 'CheckUser' => array( 'TchekeItilizatè' ),
 119+);
 120+
 121+/** Hungarian (Magyar) */
 122+$aliases['hu'] = array(
 123+ 'CheckUser' => array( 'IP-ellenőr' ),
 124+);
 125+
 126+/** Interlingua (Interlingua) */
 127+$aliases['ia'] = array(
 128+ 'CheckUser' => array( 'Verificar usator' ),
 129+);
 130+
 131+/** Indonesian (Bahasa Indonesia) */
 132+$aliases['id'] = array(
 133+ 'CheckUser' => array( 'Pemeriksa' ),
 134+);
 135+
 136+/** Japanese (日本語) */
 137+$aliases['ja'] = array(
 138+ 'CheckUser' => array( 'チェックユーザー', 'チェックユーザ' ),
 139+);
 140+
 141+/** Khmer (ភាសាខ្មែរ) */
 142+$aliases['km'] = array(
 143+ 'CheckUser' => array( 'ត្រួតពិនិត្យអ្នកប្រើប្រាស់' ),
 144+);
 145+
 146+/** Korean (한국어) */
 147+$aliases['ko'] = array(
 148+ 'CheckUser' => array( '체크유저' ),
 149+);
 150+
 151+/** Ripoarisch (Ripoarisch) */
 152+$aliases['ksh'] = array(
 153+ 'CheckUser' => array( 'Metmaacher Pröve', 'Metmaacher Pröfe' ),
 154+);
 155+
 156+/** Luxembourgish (Lëtzebuergesch) */
 157+$aliases['lb'] = array(
 158+ 'CheckUser' => array( 'Benotzerkontroll' ),
 159+);
 160+
 161+/** Macedonian (Македонски) */
 162+$aliases['mk'] = array(
 163+ 'CheckUser' => array( 'ПроверкаНаКорисник' ),
 164+);
 165+
 166+/** Malay (Bahasa Melayu) */
 167+$aliases['ms'] = array(
 168+ 'CheckUser' => array( 'Perisik' ),
 169+);
 170+
 171+/** Erzya (Эрзянь) */
 172+$aliases['myv'] = array(
 173+ 'CheckUser' => array( 'ВанкшномсКиеТеицясь' ),
 174+);
 175+
 176+/** Nedersaksisch (Nedersaksisch) */
 177+$aliases['nds-nl'] = array(
 178+ 'CheckUser' => array( 'Gebruker_opvragen' ),
 179+);
 180+
 181+/** Dutch (Nederlands) */
 182+$aliases['nl'] = array(
 183+ 'CheckUser' => array( 'GebruikerControleren' ),
 184+);
 185+
 186+/** Norwegian (bokmål)‬ (‪Norsk (bokmål)‬)
 187+ * @author Jon Harald Søby
 188+ */
 189+$aliases['no'] = array(
 190+ 'CheckUser' => array( 'IP-sjekk' ),
 191+);
 192+
 193+/** Occitan (Occitan) */
 194+$aliases['oc'] = array(
 195+ 'CheckUser' => array( 'Verificator d’adreça', 'VerificatorAdreça', 'VerificatorAdreca' ),
 196+);
 197+
 198+/** Romanian (Română) */
 199+$aliases['ro'] = array(
 200+ 'CheckUser' => array( 'Verifică utilizator' ),
 201+);
 202+
 203+/** Sanskrit (संस्कृत) */
 204+$aliases['sa'] = array(
 205+ 'CheckUser' => array( 'योजकपरिक्षक' ),
 206+);
 207+
 208+/** Swahili (Kiswahili) */
 209+$aliases['sw'] = array(
 210+ 'CheckUser' => array( 'MtumiajiMwangalizi' ),
 211+);
 212+
 213+/** Thai (ไทย) */
 214+$aliases['th'] = array(
 215+ 'CheckUser' => array( 'ตรวจสอบผู้ใช้' ),
 216+);
 217+
 218+/** Tagalog (Tagalog) */
 219+$aliases['tl'] = array(
 220+ 'CheckUser' => array( 'Suriin ang tagagamit' ),
 221+);
 222+
 223+/** Turkish (Türkçe) */
 224+$aliases['tr'] = array(
 225+ 'CheckUser' => array( 'Denetçi' ),
 226+);
 227+
 228+/** Veps (Vepsan kel') */
 229+$aliases['vep'] = array(
 230+ 'CheckUser' => array( 'KodvdaKävutajad' ),
 231+);
 232+
Property changes on: branches/new-checkuser/CheckUser.alias.php
___________________________________________________________________
Name: svn:eol-style
1233 + native
Index: branches/new-checkuser/cu_log_import.inc
@@ -0,0 +1,94 @@
 2+<?php
 3+
 4+function import_cu_log_line( $line ) {
 5+ $rxTimestamp = '(?P<timestamp>\d+:\d+, \d+ \w+ \d+)';
 6+ $rxUser = '(?P<user>.*?)';
 7+ $rxTarget = '(?P<target>.*?)';
 8+ $rxWiki = '(?P<wiki>[^)]*?)';
 9+ $rxReason = '(?: \("(?P<reason>.*)"\))?';
 10+
 11+ // Strip nulls due to NFS write collisions
 12+ $line = str_replace( "\0", "", $line );
 13+
 14+ $regexes = array(
 15+ 'ipedits-xff' => "!^<li>$rxTimestamp, $rxUser got edits for XFF $rxTarget on $rxWiki$rxReason</li>!",
 16+ 'ipedits' => "!^<li>$rxTimestamp, $rxUser got edits for" ." $rxTarget on $rxWiki$rxReason</li>!",
 17+ 'ipusers-xff' => "!^<li>$rxTimestamp, $rxUser got users for XFF $rxTarget on $rxWiki$rxReason</li>!",
 18+ 'ipusers' => "!^<li>$rxTimestamp, $rxUser got users for" ." $rxTarget on $rxWiki$rxReason</li>!",
 19+ 'userips' => "!^<li>$rxTimestamp, $rxUser got IPs for". " $rxTarget on $rxWiki$rxReason</li>!" );
 20+
 21+ foreach ( $regexes as $type => $regex ) {
 22+ $m = false;
 23+ if ( preg_match( $regex, $line, $m ) ) {
 24+
 25+ $data = array(
 26+ 'timestamp' => strtotime( $m['timestamp'] ),
 27+ 'user' => $m['user'],
 28+ 'reason' => isset( $m['reason'] ) ? $m['reason'] : '',
 29+ 'type' => $type,
 30+ 'wiki' => $m['wiki'],
 31+ 'target' => $m['target'] );
 32+
 33+ return $data;
 34+ }
 35+ }
 36+}
 37+
 38+function import_cu_log( $db, $log ) {
 39+ global $wgDBname;
 40+
 41+ $file = fopen( $log, 'r' );
 42+
 43+ $matched = 0;
 44+ $unmatched = 0;
 45+
 46+ while ( false !== ( $line = fgets( $file ) ) ) {
 47+ $found = false;
 48+ $data = import_cu_log_line( $line );
 49+ if( $data ) {
 50+ if ( $data['wiki'] != wfWikiID() && $data['wiki'] != $wgDBname ) {
 51+ $unmatched++;
 52+ continue;
 53+ }
 54+
 55+ // Local wiki lookups...
 56+ $user = User::newFromName( $data['user'] );
 57+
 58+ list( $start, $end ) = IP::parseRange( $data['target'] );
 59+ if ( $start === false ) {
 60+ $targetUser = User::newFromName( $data['target'] );
 61+ $targetID = $targetUser ? $targetUser->getID() : 0;
 62+ $start = $end = $hex = '';
 63+ } else {
 64+ $hex = $start;
 65+ if ( $start == $end ) {
 66+ $start = $end = '';
 67+ }
 68+ $targetID = 0;
 69+ }
 70+
 71+ if( $db ) {
 72+ $fields = array(
 73+ 'cul_id' => $db->nextSequenceValue( 'cu_log_cul_id_seq' ),
 74+ 'cul_timestamp' => $db->timestamp( $data['timestamp'] ),
 75+ 'cul_user' => $user->getID(),
 76+ 'cul_user_text' => $user->getName(),
 77+ 'cul_reason' => $data['reason'],
 78+ 'cul_type' => $data['type'],
 79+ 'cul_target_id' => $targetID,
 80+ 'cul_target_text' => $data['target'],
 81+ 'cul_target_hex' => $hex,
 82+ 'cul_range_start' => $start,
 83+ 'cul_range_end' => $end );
 84+
 85+ $db->insert( 'cu_log', $fields, __METHOD__ );
 86+ }
 87+
 88+ $matched++;
 89+ }
 90+ $unmatched ++;
 91+ }
 92+ echo "...cu_log table populated: $matched matched rows, $unmatched discarded rows\n";
 93+}
 94+
 95+?>
\ No newline at end of file
Property changes on: branches/new-checkuser/cu_log_import.inc
___________________________________________________________________
Name: svn:eol-style
196 + native
Index: branches/new-checkuser/cu_log.pg.sql
@@ -0,0 +1,25 @@
 2+
 3+BEGIN;
 4+
 5+CREATE SEQUENCE cu_log_cul_id_seq;
 6+CREATE TABLE cu_log (
 7+ cul_id INTEGER NOT NULL DEFAULT nextval('cu_log_cul_id_seq'),
 8+ cul_timestamp TIMESTAMPTZ,
 9+ cul_user INTEGER NULL REFERENCES mwuser(user_id) ON DELETE SET NULL,
 10+ cul_user_text TEXT NOT NULL,
 11+ cul_reason TEXT NOT NULL DEFAULT '',
 12+ cul_type TEXT NOT NULL DEFAULT '',
 13+ cul_target_id INTEGER NULL REFERENCES mwuser(user_id) ON DELETE SET NULL,
 14+ cul_target_text TEXT NOT NULL DEFAULT '',
 15+ cul_target_hex TEXT NOT NULL DEFAULT '',
 16+ cul_range_start TEXT NOT NULL DEFAULT '',
 17+ cul_range_end TEXT NOT NULL DEFAULT ''
 18+);
 19+
 20+CREATE INDEX cul_timestamp ON cu_log (cul_timestamp);
 21+CREATE INDEX cul_user ON cu_log (cul_user);
 22+CREATE INDEX cul_type_target ON cu_log (cul_type,cul_target_id);
 23+CREATE INDEX cul_target_hex ON cu_log (cul_target_hex);
 24+CREATE INDEX cul_range_start ON cu_log (cul_range_start);
 25+
 26+COMMIT;
Property changes on: branches/new-checkuser/cu_log.pg.sql
___________________________________________________________________
Name: svn:eol-style
127 + native
Index: branches/new-checkuser/install.php
@@ -0,0 +1,23 @@
 2+<?php
 3+
 4+/*
 5+ * Makes the required database changes for the CheckUser extension
 6+ */
 7+
 8+require_once ( getenv('MW_INSTALL_PATH') !== false
 9+ ? getenv('MW_INSTALL_PATH')."/maintenance/commandLine.inc"
 10+ : dirname( __FILE__ ) . '/../../maintenance/commandLine.inc' );
 11+require_once dirname( __FILE__ ) . '/install.inc';
 12+
 13+$db =& wfGetDB( DB_MASTER );
 14+if ( $db->tableExists( 'cu_changes' ) && !isset( $options['force'] ) ) {
 15+ echo "...cu_changes already exists.\n";
 16+} else {
 17+ $cutoff = isset( $options['cutoff'] ) ? wfTimestamp( TS_MW, $options['cutoff'] ) : null;
 18+ create_cu_changes( $db, $cutoff );
 19+}
 20+if ( $db->tableExists( 'cu_log' ) && !isset( $options['force'] ) ) {
 21+ echo "...cu_log already exists.\n";
 22+} else {
 23+ create_cu_log( $db );
 24+}
Property changes on: branches/new-checkuser/install.php
___________________________________________________________________
Name: svn:eol-style
125 + native
Index: branches/new-checkuser/cu_changes.sql
@@ -0,0 +1,59 @@
 2+-- Tables for the CheckUser extension
 3+-- vim: autoindent syn=mysql sts=2 sw=2
 4+-- Replace /*$wgDBprefix*/ with the proper prefix
 5+
 6+CREATE TABLE /*$wgDBprefix*/cu_changes (
 7+ -- Primary key
 8+ cuc_id INTEGER NOT NULL AUTO_INCREMENT,
 9+
 10+ -- When pages are renamed, their RC entries do _not_ change.
 11+ cuc_namespace int NOT NULL default '0',
 12+ cuc_title varchar(255) binary NOT NULL default '',
 13+
 14+ -- user.user_id
 15+ cuc_user INTEGER NOT NULL DEFAULT 0,
 16+ cuc_user_text VARCHAR(255) NOT NULL DEFAULT '',
 17+
 18+ -- Edit summary
 19+ cuc_actiontext varchar(255) binary NOT NULL default '',
 20+ cuc_comment varchar(255) binary NOT NULL default '',
 21+ cuc_minor bool NOT NULL default '0',
 22+
 23+ -- Key to page_id (was cur_id prior to 1.5).
 24+ -- This will keep links working after moves while
 25+ -- retaining the at-the-time name in the changes list.
 26+ cuc_page_id int(10) unsigned NOT NULL default '0',
 27+
 28+ -- rev_id of the given revision
 29+ cuc_this_oldid int(10) unsigned NOT NULL default '0',
 30+
 31+ -- rev_id of the prior revision, for generating diff links.
 32+ cuc_last_oldid int(10) unsigned NOT NULL default '0',
 33+
 34+ -- Edit/new/log
 35+ cuc_type tinyint(3) unsigned NOT NULL default '0',
 36+
 37+ -- Event timestamp
 38+ cuc_timestamp CHAR(14) NOT NULL default '',
 39+
 40+ -- IP address, visible
 41+ cuc_ip VARCHAR(255) NULL default '',
 42+
 43+ -- IP address as hexidecimal
 44+ cuc_ip_hex VARCHAR(255) default NULL,
 45+
 46+ -- XFF header, visible, all data
 47+ cuc_xff VARCHAR(255) BINARY NULL default '',
 48+
 49+ -- XFF header, last IP, as hexidecimal
 50+ cuc_xff_hex VARCHAR(255) default NULL,
 51+
 52+ -- User agent
 53+ cuc_agent VARCHAR(255) BINARY default NULL,
 54+
 55+ PRIMARY KEY cuc_id (cuc_id),
 56+ INDEX cuc_ip_hex_time (cuc_ip_hex,cuc_timestamp),
 57+ INDEX cuc_user_ip_time (cuc_user,cuc_ip,cuc_timestamp),
 58+ INDEX cuc_xff_hex_time (cuc_xff_hex,cuc_timestamp),
 59+ INDEX (cuc_timestamp)
 60+) TYPE=InnoDB;
Property changes on: branches/new-checkuser/cu_changes.sql
___________________________________________________________________
Name: svn:eol-style
161 + native
Index: branches/new-checkuser/install.inc
@@ -0,0 +1,100 @@
 2+<?php
 3+
 4+require "cu_log_import.inc";
 5+
 6+define( 'BATCH_SIZE', 100 );
 7+
 8+function create_cu_changes( $db, $cutoff = null ) {
 9+ global $wgDBtype;
 10+ if( !$db->tableExists( 'cu_changes' ) ) {
 11+ $sourcefile = $wgDBtype === 'postgres' ? '/cu_changes.pg.sql' : '/cu_changes.sql';
 12+ $db->sourceFile( dirname( __FILE__ ) . $sourcefile );
 13+ }
 14+
 15+ echo "...cu_changes table added.\n";
 16+ // Check if the table is empty
 17+ $rcRows = $db->selectField( 'recentchanges', 'COUNT(*)', false, __FUNCTION__ );
 18+ if ( !$rcRows ) {
 19+ echo "recentchanges is empty; nothing to add.\n";
 20+ return;
 21+ }
 22+
 23+ if( $cutoff ) {
 24+ // Something leftover... clear old entries to minimize dupes
 25+ $encCutoff = $db->addQuotes( $db->timestamp( $cutoff ) );
 26+ $db->delete( 'cu_changes',
 27+ array( "cuc_timestamp < $encCutoff" ),
 28+ __METHOD__ );
 29+ $cutoffCond = "AND rc_timestamp < $encCutoff";
 30+ } else {
 31+ $cutoffCond = "";
 32+ }
 33+
 34+ $start = $db->selectField( 'recentchanges', 'MIN(rc_id)', false, __FUNCTION__ );
 35+ $end = $db->selectField( 'recentchanges', 'MAX(rc_id)', false, __FUNCTION__ );
 36+ # Do remaining chunk
 37+ $end += BATCH_SIZE - 1;
 38+ $blockStart = $start;
 39+ $blockEnd = $start + BATCH_SIZE - 1;
 40+
 41+ $db->begin();
 42+ while ( $blockStart <= $end ) {
 43+ echo "...doing rc_id from $blockStart to $blockEnd\n";
 44+ $cond = "rc_id BETWEEN $blockStart AND $blockEnd $cutoffCond";
 45+ $res = $db->select( 'recentchanges', '*', $cond, __FUNCTION__ );
 46+ $batch = array();
 47+ while ( $row = $db->fetchObject( $res ) ) {
 48+ $batch[] = array(
 49+ 'cuc_timestamp' => $row->rc_timestamp,
 50+ 'cuc_user' => $row->rc_user,
 51+ 'cuc_user_text' => $row->rc_user_text,
 52+ 'cuc_namespace' => $row->rc_namespace,
 53+ 'cuc_title' => $row->rc_title,
 54+ 'cuc_comment' => $row->rc_comment,
 55+ 'cuc_minor' => $row->rc_minor,
 56+ 'cuc_page_id' => $row->rc_cur_id,
 57+ 'cuc_this_oldid' => $row->rc_this_oldid,
 58+ 'cuc_last_oldid' => $row->rc_last_oldid,
 59+ 'cuc_type' => $row->rc_type,
 60+ 'cuc_ip' => $row->rc_ip,
 61+ 'cuc_ip_hex' => IP::toHex( $row->rc_ip ),
 62+ );
 63+ }
 64+ if ( count( $batch ) ) {
 65+ $db->insert( 'cu_changes', $batch, __FUNCTION__ );
 66+ }
 67+ $blockStart += BATCH_SIZE - 1;
 68+ $blockEnd += BATCH_SIZE - 1;
 69+ wfWaitForSlaves( 5 );
 70+ }
 71+ $db->commit();
 72+
 73+ echo "...cu_changes table added and populated.\n";
 74+}
 75+
 76+
 77+function create_cu_log( $db ) {
 78+ global $wgDBtype, $wgCheckUserLog, $wgDBname;
 79+ if( $db->tableExists( 'cu_log' ) ) {
 80+ echo "...cu_log already exists\n";
 81+ return;
 82+ }
 83+
 84+ $sourcefile = $wgDBtype === 'postgres' ? '/cu_log.pg.sql' : '/cu_log.sql';
 85+ $db->sourceFile( dirname( __FILE__ ) . $sourcefile );
 86+
 87+ echo "...cu_log added\n";
 88+
 89+ if( empty( $wgCheckUserLog ) ) {
 90+ echo "...logging disabled, skipping log import.\n";
 91+ return;
 92+ }
 93+
 94+ if( !file_exists( $wgCheckUserLog ) ) {
 95+ echo "...log file missing, skipping log import.\n";
 96+ return;
 97+ }
 98+
 99+ echo "...importing old CheckUser log file...\n";
 100+ import_cu_log( $db, $wgCheckUserLog );
 101+}
Property changes on: branches/new-checkuser/install.inc
___________________________________________________________________
Name: svn:eol-style
1102 + native

Status & tagging log