r22857 MediaWiki - Code Review archive

Repository:MediaWiki
Revision:r22856‎ | r22857 | r22858 >
Date:00:48, 9 June 2007
Author:david
Status:old
Tags:
Comment:
Merged revisions 22811-22855 via svnmerge from
svn+ssh://david@svn.wikimedia.org/svnroot/mediawiki/trunk/phase3

........
r22813 | greg | 2007-06-07 07:02:46 -0700 (Thu, 07 Jun 2007) | 2 lines

Return true/false, not o/not-0 for relation checking functions, for those parts of the code that demand "result === false" rather than saying (!result)
........
r22814 | ivanlanin | 2007-06-07 07:48:26 -0700 (Thu, 07 Jun 2007) | 1 line

Indonesian (id) localisation updates.
........
r22815 | robchurch | 2007-06-07 08:07:12 -0700 (Thu, 07 Jun 2007) | 3 lines

* Don't require a list of extensions; move it into an option, and default to $wgFileExtensions
* Let the user know if no suitable files are found
* Missing release note from r22772
........
r22816 | amidaniel | 2007-06-07 10:31:08 -0700 (Thu, 07 Jun 2007) | 1 line

(bug 7997) Added ability to Special:Blockip to block users from using Special:Emailuser.
........
r22817 | tstarling | 2007-06-07 10:53:26 -0700 (Thu, 07 Jun 2007) | 1 line

SqlBagOStuff: Don't write to the database during read-only mode
........
r22823 | aaron | 2007-06-07 12:52:41 -0700 (Thu, 07 Jun 2007) | 1 line

*Fix comment
........
r22826 | robchurch | 2007-06-07 13:49:34 -0700 (Thu, 07 Jun 2007) | 2 lines

* (bug 8989) Blacklist 'mhtml' and 'mht' files from upload
* Trim release note from bug 7997
........
r22827 | amidaniel | 2007-06-07 14:15:59 -0700 (Thu, 07 Jun 2007) | 1 line

Reworked e-mail blocking. To be enabled for a user, it now requires that $wgSysopEmailBans == true and that the user has the right "blockemail".
........
r22828 | robchurch | 2007-06-07 15:16:19 -0700 (Thu, 07 Jun 2007) | 3 lines

* (bug 8760) Allow wiki links in "protectexpiry" message
* Introduce wfMsgWithLinks() and a content-language counterpart, wfMsgForContentWithLinks(); these escape HTML and render wiki links in text, so should be suitable for labels and so on
* Make Linker::formatLinksInComment() public
........
r22829 | robchurch | 2007-06-07 17:52:56 -0700 (Thu, 07 Jun 2007) | 1 line

Ditch wfSpecialConfirmemail(), move Special:Confirmemail to the modern special page loading scheme
........
r22830 | robchurch | 2007-06-07 17:57:11 -0700 (Thu, 07 Jun 2007) | 1 line

Proper credit...
........
r22831 | greg | 2007-06-07 17:57:22 -0700 (Thu, 07 Jun 2007) | 2 lines

Fix up encodeBlob, don't worry so much about indexInfo compat.
........
r22832 | greg | 2007-06-07 18:06:52 -0700 (Thu, 07 Jun 2007) | 4 lines

Have Math.php use encodeBlob and decodeBlob when accessing the binary fields math_inputhash and math_outputhash. Better
long-term solution is to simply store the hexadecimal as text, but converting via updaters.inc will be complex.
Fixes bug # 9909.
........
r22833 | simetrical | 2007-06-07 20:42:55 -0700 (Thu, 07 Jun 2007) | 3 lines

Add 'Brokenlinks' as an alias for 'Wantedpages'. I suppose this is technically a l10n change, so no RELEASE-NOTES?

Incidentally, when are we going to be implementing the readable special page names (with spaces!) for English?
........
r22835 | nikerabbit | 2007-06-08 05:57:46 -0700 (Fri, 08 Jun 2007) | 2 lines

* Updates to Slovak (sk) by Helix84
........
r22837 | nikerabbit | 2007-06-08 06:46:51 -0700 (Fri, 08 Jun 2007) | 2 lines

* Updates to fi
........
r22839 | robchurch | 2007-06-08 08:16:00 -0700 (Fri, 08 Jun 2007) | 1 line

(bug 5908) Add "DEFAULTSORTKEY" and "DEFAULTCATEGORYSORT" aliases for "DEFAULTSORT" magic word
........
r22841 | nikerabbit | 2007-06-08 08:27:25 -0700 (Fri, 08 Jun 2007) | 2 lines

* Fixes to fi
........
r22842 | robchurch | 2007-06-08 08:56:32 -0700 (Fri, 08 Jun 2007) | 2 lines

* (bug 10181) Support the XCache object caching mechanism [patch from Kurt Radwanski]
* Minor tweak to installer form
........
r22844 | robchurch | 2007-06-08 09:39:29 -0700 (Fri, 08 Jun 2007) | 1 line

Wrap the recreate-deleted warning dismisser in a CDATA section and run the message through Xml::escapeJsString()
........
r22845 | robchurch | 2007-06-08 11:12:07 -0700 (Fri, 08 Jun 2007) | 1 line

(bug 9058) Introduce '--aconf' option for all maintenance scripts, to provide a path to the AdminSettings.php file
........
r22846 | robchurch | 2007-06-08 11:38:36 -0700 (Fri, 08 Jun 2007) | 1 line

(bug 8781) Remind users to check file permissions for LocalSettings.php post-installation
........
r22847 | ivanlanin | 2007-06-08 11:48:17 -0700 (Fri, 08 Jun 2007) | 1 line

Indonesian (id) localisation updates.
........
r22851 | robchurch | 2007-06-08 12:52:51 -0700 (Fri, 08 Jun 2007) | 1 line

Whoops, add missing CSS
........
r22852 | nikerabbit | 2007-06-08 13:25:47 -0700 (Fri, 08 Jun 2007) | 2 lines

* Updates to Romanian (ro) by KlaudiuMihaila, SCriBu, Emily
........
Modified paths:
  • /branches/liquidthreads (modified) (history)
  • /branches/liquidthreads/RELEASE-NOTES (modified) (history)
  • /branches/liquidthreads/config/index.php (modified) (history)
  • /branches/liquidthreads/includes/AutoLoader.php (modified) (history)
  • /branches/liquidthreads/includes/BagOStuff.php (modified) (history)
  • /branches/liquidthreads/includes/Block.php (modified) (history)
  • /branches/liquidthreads/includes/DatabasePostgres.php (modified) (history)
  • /branches/liquidthreads/includes/DefaultSettings.php (modified) (history)
  • /branches/liquidthreads/includes/EditPage.php (modified) (history)
  • /branches/liquidthreads/includes/GlobalFunctions.php (modified) (history)
  • /branches/liquidthreads/includes/Linker.php (modified) (history)
  • /branches/liquidthreads/includes/Math.php (modified) (history)
  • /branches/liquidthreads/includes/ObjectCache.php (modified) (history)
  • /branches/liquidthreads/includes/ProtectionForm.php (modified) (history)
  • /branches/liquidthreads/includes/SpecialBlockip.php (modified) (history)
  • /branches/liquidthreads/includes/SpecialConfirmemail.php (modified) (history)
  • /branches/liquidthreads/includes/SpecialEmailuser.php (modified) (history)
  • /branches/liquidthreads/includes/SpecialIpblocklist.php (modified) (history)
  • /branches/liquidthreads/includes/SpecialPage.php (modified) (history)
  • /branches/liquidthreads/includes/User.php (modified) (history)
  • /branches/liquidthreads/languages/messages/MessagesEn.php (modified) (history)
  • /branches/liquidthreads/languages/messages/MessagesFi.php (modified) (history)
  • /branches/liquidthreads/languages/messages/MessagesId.php (modified) (history)
  • /branches/liquidthreads/languages/messages/MessagesRo.php (modified) (history)
  • /branches/liquidthreads/languages/messages/MessagesSk.php (modified) (history)
  • /branches/liquidthreads/maintenance/archives/patch-ipb_emailban.sql (added) (history)
  • /branches/liquidthreads/maintenance/archives/patch-ipb_emailban.sql (added) (history)
  • /branches/liquidthreads/maintenance/commandLine.inc (modified) (history)
  • /branches/liquidthreads/maintenance/deleteArchivedFiles.inc (modified) (history)
  • /branches/liquidthreads/maintenance/importImages.php (modified) (history)
  • /branches/liquidthreads/maintenance/language/messages.inc (modified) (history)
  • /branches/liquidthreads/maintenance/tables.sql (modified) (history)
  • /branches/liquidthreads/maintenance/updaters.inc (modified) (history)

Diff [purge]

Index: branches/liquidthreads/maintenance/commandLine.inc
@@ -34,6 +34,7 @@
3535 $optionsWithArgs = array();
3636 }
3737 $optionsWithArgs[] = 'conf'; # For specifying the location of LocalSettings.php
 38+$optionsWithArgs[] = 'aconf'; # As above for AdminSettings.php
3839
3940 $self = array_shift( $argv );
4041 $IP = realpath( dirname( __FILE__ ) . '/..' );
@@ -181,9 +182,12 @@
182183 require_once( $settingsFile );
183184 /* ini_set( 'include_path', ".$sep$IP$sep$IP/includes$sep$IP/languages$sep$IP/maintenance" ); */
184185
185 - if ( is_readable( $IP.'/AdminSettings.php' ) ) {
186 - require_once( $IP.'/AdminSettings.php' );
187 - }
 186+ $adminSettings = isset( $options['aconf'] )
 187+ ? $options['aconf']
 188+ : "{$IP}/AdminSettings.php";
 189+ if( is_readable( $adminSettings ) )
 190+ require_once( $adminSettings );
 191+
188192 }
189193
190194 # Turn off output buffering again, it might have been turned on in the settings files
Index: branches/liquidthreads/maintenance/updaters.inc
@@ -76,6 +76,7 @@
7777 array( 'archive', 'ar_len', 'patch-ar_len.sql' ),
7878 array( 'revision', 'rev_parent_id', 'patch-rev_parent_id.sql' ),
7979 array( 'page_restrictions', 'pr_id', 'patch-page_restrictions_sortkey.sql' ),
 80+ array( 'ipblocks', 'ipb_block_email', 'patch-ipb_emailban.sql' ),
8081 );
8182
8283 function rename_table( $from, $to, $patch ) {
Index: branches/liquidthreads/maintenance/archives/patch-ipb_emailban.sql
@@ -0,0 +1,4 @@
 2+-- Add row for email blocks --
 3+
 4+ALTER TABLE /*$wgDBprefix*/ipblocks
 5+ ADD ipb_block_email tinyint(1) NOT NULL default '0';
Property changes on: branches/liquidthreads/maintenance/archives/patch-ipb_emailban.sql
___________________________________________________________________
Added: svn:eol-style
16 + native
Index: branches/liquidthreads/maintenance/deleteArchivedFiles.inc
@@ -49,7 +49,6 @@
5050 $transaction->commit();
5151
5252 # This bit's done
53 - # Purge redundant text records
5453 $dbw->commit();
5554
5655 }
Index: branches/liquidthreads/maintenance/tables.sql
@@ -622,6 +622,9 @@
623623
624624 -- Flag for entries hidden from users and Sysops
625625 ipb_deleted bool NOT NULL default 0,
 626+
 627+ -- Block prevents user from accessing Special:Emailuser
 628+ ipb_block_email bool NOT NULL default 0,
626629
627630 PRIMARY KEY ipb_id (ipb_id),
628631
Index: branches/liquidthreads/maintenance/importImages.php
@@ -8,22 +8,24 @@
99 * @author Rob Church <robchur@gmail.com>
1010 */
1111
 12+$optionsWithArguments = array( 'extensions' );
1213 require_once( 'commandLine.inc' );
1314 require_once( 'importImages.inc.php' );
1415 echo( "Import Images\n\n" );
1516
16 -# Need a directory and at least one extension
17 -if( count( $args ) > 1 ) {
 17+# Need a path
 18+if( count( $args ) > 0 ) {
1819
19 - $dir = array_shift( $args );
 20+ $dir = $args[0];
2021
21 - # Check the allowed extensions
22 - while( $ext = array_shift( $args ) ) {
23 - $exts[] = ltrim( $ext, '.' );
24 - }
 22+ # Prepare the list of allowed extensions
 23+ global $wgFileExtensions;
 24+ $extensions = isset( $options['extensions'] )
 25+ ? explode( ',', strtolower( $options['extensions'] ) )
 26+ : $wgFileExtensions;
2527
26 - # Search the directory given and pull out suitable candidates
27 - $files = findFiles( $dir, $exts );
 28+ # Search the path provided for candidates for import
 29+ $files = findFiles( $dir, $extensions );
2830
2931 # Initialise the user for this operation
3032 $user = isset( $options['user'] )
@@ -44,6 +46,7 @@
4547 # Batch "upload" operation
4648 global $wgUploadDirectory;
4749 if( count( $files ) > 0 ) {
 50+
4851 foreach( $files as $file ) {
4952 $base = wfBaseName( $file );
5053
@@ -78,6 +81,9 @@
7982 echo( "failed.\n" );
8083 }
8184 }
 85+
 86+ } else {
 87+ echo( "No suitable files could be found for import.\n" );
8288 }
8389
8490 } else {
@@ -92,15 +98,15 @@
9399 }
94100
95101 echo <<<END
96 -USAGE: php importImages.php [options] <dir> <ext1> ...
 102+USAGE: php importImages.php [options] <dir>
97103
98104 <dir> : Path to the directory containing images to be imported
99 -<ext1+> File extensions to import
100105
101106 Options:
 107+--extensions=<exts> Comma-separated list of allowable extensions, defaults to $wgFileExtensions
 108+--user=<username> Set username of uploader, default 'Maintenance script'
 109+--comment=<text> Set upload summary comment, default 'Importing image file'
 110+--license=<code> Use an optional license template
102111
103112 END;
104113 exit();
Index: branches/liquidthreads/maintenance/language/messages.inc
@@ -1279,6 +1279,7 @@
12801280 'ipbreason-dropdown',
12811281 'ipbanononly',
12821282 'ipbcreateaccount',
 1283+ 'ipbemailban',
12831284 'ipbenableautoblock',
12841285 'ipbsubmit',
12851286 'ipbother',
@@ -1308,6 +1309,7 @@
13091310 'anononlyblock',
13101311 'noautoblockblock',
13111312 'createaccountblock',
 1313+ 'emailblock',
13121314 'ipblocklist-empty',
13131315 'ipblocklist-no-results',
13141316 'blocklink',
@@ -1321,6 +1323,7 @@
13221324 'block-log-flags-anononly',
13231325 'block-log-flags-nocreate',
13241326 'block-log-flags-noautoblock',
 1327+ 'block-log-flags-noemail',
13251328 'range_block_disabled',
13261329 'ipb_expiry_invalid',
13271330 'ipb_already_blocked',
Index: branches/liquidthreads/includes/SpecialConfirmemail.php
@@ -1,31 +1,30 @@
22 <?php
33
44 /**
5 - * Main execution point
6 - *
7 - * @param $par Parameters passed to the page
8 - */
9 -function wfSpecialConfirmemail( $par ) {
10 - $form = new EmailConfirmation();
11 - $form->execute( $par );
12 -}
13 -
14 -/**
155 * Special page allows users to request email confirmation message, and handles
166 * processing of the confirmation code when the link in the email is followed
177 *
188 * @addtogroup SpecialPage
 9+ * @author Brion Vibber
1910 * @author Rob Church <robchur@gmail.com>
2011 */
21 -class EmailConfirmation extends SpecialPage {
 12+class EmailConfirmation extends UnlistedSpecialPage {
2213
2314 /**
 15+ * Constructor
 16+ */
 17+ public function __construct() {
 18+ parent::__construct( 'Confirmemail' );
 19+ }
 20+
 21+ /**
2422 * Main execution point
2523 *
2624 * @param $code Confirmation code passed to the page
2725 */
2826 function execute( $code ) {
2927 global $wgUser, $wgOut;
 28+ $this->setHeaders();
3029 if( empty( $code ) ) {
3130 if( $wgUser->isLoggedIn() ) {
3231 if( User::isValidEmailAddr( $wgUser->getEmail() ) ) {
Index: branches/liquidthreads/includes/EditPage.php
@@ -2082,11 +2082,13 @@
20832083 * @return string
20842084 */
20852085 private function buildWarningDismisser() {
2086 - return '<script type="text/javascript">'
 2086+ global $wgJsMimeType;
 2087+ return '<script type="' . $wgJsMimeType . '">/*<![CDATA[*/'
20872088 . 'document.write( \'<div class="mw-recreate-deleted-control">'
20882089 . '<a href="javascript:dismissRecreateWarning();">'
2089 - . wfMsgHtml( 'recreate-deleted-dismiss' ) . '</a></div>\' );'
2090 - . '</script>';
 2090+ . Xml::escapeJsString( wfMsg( 'recreate-deleted-dismiss' ) )
 2091+ . '</a></div>\' );'
 2092+ . '/*]]>*/</script>';
20912093 }
20922094
20932095 }
Index: branches/liquidthreads/includes/Math.php
@@ -157,8 +157,8 @@
158158 $dbw = wfGetDB( DB_MASTER );
159159 $dbw->replace( 'math', array( 'math_inputhash' ),
160160 array(
161 - 'math_inputhash' => $md5_sql,
162 - 'math_outputhash' => $outmd5_sql,
 161+ 'math_inputhash' => $dbw->encodeBlob($md5_sql),
 162+ 'math_outputhash' => $dbw->encodeBlob($outmd5_sql),
163163 'math_html_conservativeness' => $this->conservativeness,
164164 'math_html' => $this->html,
165165 'math_mathml' => $this->mathml,
@@ -186,13 +186,13 @@
187187 $dbr = wfGetDB( DB_SLAVE );
188188 $rpage = $dbr->selectRow( 'math',
189189 array( 'math_outputhash','math_html_conservativeness','math_html','math_mathml' ),
190 - array( 'math_inputhash' => pack("H32", $this->md5)), # Binary packed, not hex
 190+ array( 'math_inputhash' => $dbr->encodeBlob(pack("H32", $this->md5))), # Binary packed, not hex
191191 $fname
192192 );
193193
194194 if( $rpage !== false ) {
195195 # Tailing 0x20s can get dropped by the database, add it back on if necessary:
196 - $xhash = unpack( 'H32md5', $rpage->math_outputhash . " " );
 196+ $xhash = unpack( 'H32md5', $dbr->decodeBlob($rpage->math_outputhash) . " " );
197197 $this->hash = $xhash ['md5'];
198198
199199 $this->conservativeness = $rpage->math_html_conservativeness;
Index: branches/liquidthreads/includes/SpecialEmailuser.php
@@ -45,6 +45,13 @@
4646 return;
4747 }
4848
 49+ if ( $wgUser->isBlockedFromEmailUser() ) {
 50+ // User has been blocked from sending e-mail. Show the std blocked form.
 51+ wfDebug( "User is blocked from sending e-mail.\n" );
 52+ $wgOut->blockedPage();
 53+ return;
 54+ }
 55+
4956 $f = new EmailUserForm( $nu );
5057
5158 if ( "success" == $action ) {
Index: branches/liquidthreads/includes/GlobalFunctions.php
@@ -327,6 +327,20 @@
328328 }
329329
330330 /**
 331+ * Get a message in the user interface language and replace wiki
 332+ * links with clickable ones, escaping other HTML
 333+ *
 334+ * @param string $key Message key
 335+ * @return string
 336+ */
 337+function wfMsgWithLinks( $key ) {
 338+ global $wgUser;
 339+ $args = func_get_args();
 340+ return $wgUser->getSkin()->formatLinksInComment( htmlspecialchars(
 341+ call_user_func_array( 'wfMsg', $args ) ) );
 342+}
 343+
 344+/**
331345 * Same as above except doesn't transform the message
332346 */
333347 function wfMsgNoTrans( $key ) {
@@ -369,6 +383,19 @@
370384 }
371385
372386 /**
 387+ * Get a message in the content language and replace wiki
 388+ * links with clickable ones, escaping other HTML
 389+ *
 390+ * @param string $key Message key
 391+ * @return string
 392+ */
 393+function wfMsgForContentWithLinks( $key ) {
 394+ global $wgUser;
 395+ return $wgUser->getSkin()->formatLinksInComment( htmlspecialchars(
 396+ call_user_func_array( 'wfMsgForContent', func_get_args() ) ) );
 397+}
 398+
 399+/**
373400 * Same as above except doesn't transform the message
374401 */
375402 function wfMsgForContentNoTrans( $key ) {
Index: branches/liquidthreads/includes/User.php
@@ -2149,6 +2149,17 @@
21502150 return $this->mBlock && $this->mBlock->mCreateAccount;
21512151 }
21522152
 2153+ /**
 2154+ * Determine if the user is blocked from using Special:Emailuser.
 2155+ *
 2156+ * @public
 2157+ * @return boolean
 2158+ */
 2159+ function isBlockedFromEmailuser() {
 2160+ $this->getBlockedStatus();
 2161+ return $this->mBlock && $this->mBlock->mBlockEmail;
 2162+ }
 2163+
21532164 function isAllowedToCreateAccount() {
21542165 return $this->isAllowed( 'createaccount' ) && !$this->isBlockedFromCreateAccount();
21552166 }
Index: branches/liquidthreads/includes/DatabasePostgres.php
@@ -601,13 +601,9 @@
602602 if ( !$res ) {
603603 return NULL;
604604 }
605 -
606605 while ( $row = $this->fetchObject( $res ) ) {
607606 if ( $row->indexname == $index ) {
608607 return $row;
609 -
610 - // BUG: !!!! This code needs to be synced up with database.php
611 -
612608 }
613609 }
614610 return false;
@@ -923,7 +919,7 @@
924920 $count = $res ? pg_num_rows($res) : 0;
925921 if ($res)
926922 $this->freeResult( $res );
927 - return $count;
 923+ return $count ? true : false;
928924 }
929925
930926 /*
@@ -1102,10 +1098,10 @@
11031099 $this->doQuery("COMMIT");
11041100 }
11051101
1106 - function encodeBlob($b) {
1107 - return array('bytea',pg_escape_bytea($b));
 1102+ function encodeBlob( $b ) {
 1103+ return pg_escape_bytea( $b );
11081104 }
1109 - function decodeBlob($b) {
 1105+ function decodeBlob( $b ) {
11101106 return pg_unescape_bytea( $b );
11111107 }
11121108
Index: branches/liquidthreads/includes/SpecialPage.php
@@ -184,7 +184,7 @@
185185 }
186186
187187 if( $wgEmailAuthentication ) {
188 - self::$mList['Confirmemail'] = array( 'UnlistedSpecialPage', 'Confirmemail' );
 188+ self::$mList['Confirmemail'] = 'EmailConfirmation';
189189 }
190190
191191 # Add extension special pages
Index: branches/liquidthreads/includes/BagOStuff.php
@@ -253,6 +253,9 @@
254254 }
255255
256256 function set($key,$value,$exptime=0) {
 257+ if ( wfReadOnly() ) {
 258+ return false;
 259+ }
257260 $exptime = intval($exptime);
258261 if($exptime < 0) $exptime = 0;
259262 if($exptime == 0) {
@@ -272,6 +275,9 @@
273276 }
274277
275278 function delete($key,$time=0) {
 279+ if ( wfReadOnly() ) {
 280+ return false;
 281+ }
276282 $this->_query(
277283 "DELETE FROM $0 WHERE keyname='$1'", $key );
278284 return true; /* ? */
@@ -339,12 +345,18 @@
340346
341347 function expireall() {
342348 /* Remove any items that have expired */
 349+ if ( wfReadOnly() ) {
 350+ return false;
 351+ }
343352 $now = $this->_fromunixtime( time() );
344353 $this->_query( "DELETE FROM $0 WHERE exptime < '$now'" );
345354 }
346355
347356 function deleteall() {
348357 /* Clear *all* items from cache table */
 358+ if ( wfReadOnly() ) {
 359+ return false;
 360+ }
349361 $this->_query( "DELETE FROM $0" );
350362 }
351363
@@ -553,6 +565,52 @@
554566 }
555567
556568 /**
 569+ * Wrapper for XCache object caching functions; identical interface
 570+ * to the APC wrapper
 571+ */
 572+class XCacheBagOStuff extends APCBagOStuff {
 573+
 574+ /**
 575+ * Get a value from the XCache object cache
 576+ *
 577+ * @param string $key Cache key
 578+ * @return mixed
 579+ */
 580+ public function get( $key ) {
 581+ $val = xcache_get( $key );
 582+ if( is_string( $val ) )
 583+ $val = unserialize( $val );
 584+ return $val;
 585+ }
 586+
 587+ /**
 588+ * Store a value in the XCache object cache
 589+ *
 590+ * @param string $key Cache key
 591+ * @param mixed $value Object to store
 592+ * @param int $expire Expiration time
 593+ * @return bool
 594+ */
 595+ public function set( $key, $value, $expire = 0 ) {
 596+ xcache_set( $key, serialize( $value ), $expire );
 597+ return true;
 598+ }
 599+
 600+ /**
 601+ * Remove a value from the XCache object cache
 602+ *
 603+ * @param string $key Cache key
 604+ * @param int $time Not used in this implementation
 605+ * @return bool
 606+ */
 607+ public function delete( $key, $time = 0 ) {
 608+ xcache_unset( $key );
 609+ return true;
 610+ }
 611+
 612+}
 613+
 614+/**
557615 * @todo document
558616 */
559617 class DBABagOStuff extends BagOStuff {
Index: branches/liquidthreads/includes/AutoLoader.php
@@ -22,6 +22,7 @@
2323 'TurckBagOStuff' => 'includes/BagOStuff.php',
2424 'APCBagOStuff' => 'includes/BagOStuff.php',
2525 'eAccelBagOStuff' => 'includes/BagOStuff.php',
 26+ 'XCacheBagOStuff' => 'includes/BagOStuff.php',
2627 'DBABagOStuff' => 'includes/BagOStuff.php',
2728 'Block' => 'includes/Block.php',
2829 'HTMLFileCache' => 'includes/HTMLFileCache.php',
Index: branches/liquidthreads/includes/ProtectionForm.php
@@ -318,22 +318,11 @@
319319 }
320320
321321 function buildExpiryInput() {
322 - $id = 'mwProtect-expiry';
323 -
324 - $ci = "<tr><td align=\"right\">";
325 - $ci .= wfElement( 'label', array (
326 - 'id' => "$id-label",
327 - 'for' => $id ),
328 - wfMsg( 'protectexpiry' ) );
329 - $ci .= "</td> <td align=\"left\">";
330 - $ci .= wfElement( 'input', array(
331 - 'size' => 60,
332 - 'name' => $id,
333 - 'id' => $id,
334 - 'value' => $this->mExpiry ) + $this->disabledAttrib );
335 - $ci .= "</td></tr>";
336 -
337 - return $ci;
 322+ $attribs = array( 'id' => 'expires' ) + $this->disabledAttrib;
 323+ return '<tr>'
 324+ . '<td><label for="expires">' . wfMsgWithLinks( 'protectexpiry' ) . '</label></td>'
 325+ . '<td>' . Xml::input( 'mwProtect-expiry', 60, $this->mExpiry, $attribs ) . '</td>'
 326+ . '</tr>';
338327 }
339328
340329 function buildWatchInput() {
Index: branches/liquidthreads/includes/SpecialIpblocklist.php
@@ -265,7 +265,7 @@
266266 if( is_null( $msg ) ) {
267267 $msg = array();
268268 $keys = array( 'infiniteblock', 'expiringblock', 'contribslink', 'unblocklink',
269 - 'anononlyblock', 'createaccountblock', 'noautoblockblock' );
 269+ 'anononlyblock', 'createaccountblock', 'noautoblockblock', 'emailblock' );
270270 foreach( $keys as $key ) {
271271 $msg[$key] = wfMsgHtml( $key );
272272 }
@@ -306,6 +306,10 @@
307307 $properties[] = $msg['noautoblockblock'];
308308 }
309309
 310+ if ( $block->mBlockEmail && $block->mUser ) {
 311+ $properties[] = $msg['emailblock'];
 312+ }
 313+
310314 $properties = implode( ', ', $properties );
311315
312316 $line = wfMsgReplaceArgs( $msg['blocklistline'], array( $formattedTime, $blocker, $target, $properties ) );
Index: branches/liquidthreads/includes/Block.php
@@ -15,7 +15,8 @@
1616 class Block
1717 {
1818 /* public*/ var $mAddress, $mUser, $mBy, $mReason, $mTimestamp, $mAuto, $mId, $mExpiry,
19 - $mRangeStart, $mRangeEnd, $mAnonOnly, $mEnableAutoblock, $mHideName;
 19+ $mRangeStart, $mRangeEnd, $mAnonOnly, $mEnableAutoblock, $mHideName,
 20+ $mBlockEmail;
2021 /* private */ var $mNetworkBits, $mIntegerAddr, $mForUpdate, $mFromMaster, $mByName;
2122
2223 const EB_KEEP_EXPIRED = 1;
@@ -24,7 +25,7 @@
2526
2627 function __construct( $address = '', $user = 0, $by = 0, $reason = '',
2728 $timestamp = '' , $auto = 0, $expiry = '', $anonOnly = 0, $createAccount = 0, $enableAutoblock = 0,
28 - $hideName = 0 )
 29+ $hideName = 0, $blockEmail = 0 )
2930 {
3031 $this->mId = 0;
3132 # Expand valid IPv6 addresses
@@ -40,7 +41,7 @@
4142 $this->mExpiry = self::decodeExpiry( $expiry );
4243 $this->mEnableAutoblock = $enableAutoblock;
4344 $this->mHideName = $hideName;
44 -
 45+ $this->mBlockEmail = $blockEmail;
4546 $this->mForUpdate = false;
4647 $this->mFromMaster = false;
4748 $this->mByName = false;
@@ -76,7 +77,7 @@
7778 $this->mAddress = $this->mReason = $this->mTimestamp = '';
7879 $this->mId = $this->mAnonOnly = $this->mCreateAccount =
7980 $this->mEnableAutoblock = $this->mAuto = $this->mUser =
80 - $this->mBy = $this->mHideName = 0;
 81+ $this->mBy = $this->mHideName = $this->mBlockEmail = 0;
8182 $this->mByName = false;
8283 }
8384
@@ -262,6 +263,7 @@
263264 $this->mAnonOnly = $row->ipb_anon_only;
264265 $this->mCreateAccount = $row->ipb_create_account;
265266 $this->mEnableAutoblock = $row->ipb_enable_autoblock;
 267+ $this->mBlockEmail = $row->ipb_block_email;
266268 $this->mHideName = $row->ipb_deleted;
267269 $this->mId = $row->ipb_id;
268270 $this->mExpiry = self::decodeExpiry( $row->ipb_expiry );
@@ -371,6 +373,7 @@
372374 # Unset ipb_enable_autoblock for IP blocks, makes no sense
373375 if ( !$this->mUser ) {
374376 $this->mEnableAutoblock = 0;
 377+ $this->mBlockEmail = 0; //Same goes for email...
375378 }
376379
377380 # Don't collide with expired blocks
@@ -392,7 +395,8 @@
393396 'ipb_expiry' => self::encodeExpiry( $this->mExpiry, $dbw ),
394397 'ipb_range_start' => $this->mRangeStart,
395398 'ipb_range_end' => $this->mRangeEnd,
396 - 'ipb_deleted' => $this->mHideName
 399+ 'ipb_deleted' => $this->mHideName,
 400+ 'ipb_block_email' => $this->mBlockEmail
397401 ), 'Block::insert', array( 'IGNORE' )
398402 );
399403 $affected = $dbw->affectedRows();
Index: branches/liquidthreads/includes/Linker.php
@@ -926,12 +926,13 @@
927927 }
928928
929929 /**
930 - * Format regular and media links - all other wiki formatting is ignored
931 - * Called by Linker::formatComment.
932 - * @param $comment The comment text.
933 - * @return Comment text with links using HTML.
 930+ * Formats wiki links and media links in text; all other wiki formatting
 931+ * is ignored
 932+ *
 933+ * @param string $comment Text to format links in
 934+ * @return string
934935 */
935 - private function formatLinksInComment( $comment ) {
 936+ public function formatLinksInComment( $comment ) {
936937 global $wgContLang;
937938
938939 $medians = '(?:' . preg_quote( Namespace::getCanonicalName( NS_MEDIA ), '/' ) . '|';
Index: branches/liquidthreads/includes/ObjectCache.php
@@ -70,6 +70,8 @@
7171 $wgCaches[CACHE_ACCEL] = new eAccelBagOStuff;
7272 } elseif ( function_exists( 'apc_fetch') ) {
7373 $wgCaches[CACHE_ACCEL] = new APCBagOStuff;
 74+ } elseif( function_exists( 'xcache_get' ) ) {
 75+ $wgCaches[CACHE_ACCEL] = new XCacheBagOStuff();
7476 } elseif ( function_exists( 'mmcache_get' ) ) {
7577 $wgCaches[CACHE_ACCEL] = new TurckBagOStuff;
7678 } else {
Index: branches/liquidthreads/includes/DefaultSettings.php
@@ -971,9 +971,10 @@
972972
973973 # Basic user rights and block settings
974974 $wgSysopUserBans = true; # Allow sysops to ban logged-in users
975 -$wgSysopRangeBans = true; # Allow sysops to ban IP ranges
976 -$wgAutoblockExpiry = 86400; # Number of seconds before autoblock entries expire
 975+$wgSysopRangeBans = true; # Allow sysops to ban IP ranges
 976+$wgAutoblockExpiry = 86400; # Number of seconds before autoblock entries expire
977977 $wgBlockAllowsUTEdit = false; # Blocks allow users to edit their own user talk page
 978+$wgSysopEmailBans = true; # Allow sysops to ban users from accessing Emailuser
978979
979980 # Pages anonymous user may see as an array, e.g.:
980981 # array ( "Main Page", "Special:Userlogin", "Wikipedia:Help");
@@ -1060,6 +1061,7 @@
10611062 $wgGroupPermissions['sysop']['autoconfirmed'] = true;
10621063 $wgGroupPermissions['sysop']['upload_by_url'] = true;
10631064 $wgGroupPermissions['sysop']['ipblock-exempt'] = true;
 1065+$wgGroupPermissions['sysop']['blockemail'] = true;
10641066
10651067 // Permission to change users' group assignments
10661068 $wgGroupPermissions['bureaucrat']['userrights'] = true;
@@ -1474,7 +1476,7 @@
14751477 /** Files with these extensions will never be allowed as uploads. */
14761478 $wgFileBlacklist = array(
14771479 # HTML may contain cookie-stealing JavaScript and web bugs
1478 - 'html', 'htm', 'js', 'jsb',
 1480+ 'html', 'htm', 'js', 'jsb', 'mhtml', 'mht',
14791481 # PHP scripts may execute arbitrary code on the server
14801482 'php', 'phtml', 'php3', 'php4', 'php5', 'phps',
14811483 # Other types that may be interpreted by some servers
Index: branches/liquidthreads/includes/SpecialBlockip.php
@@ -43,6 +43,7 @@
4444 */
4545 class IPBlockForm {
4646 var $BlockAddress, $BlockExpiry, $BlockReason;
 47+# var $BlockEmail;
4748
4849 function IPBlockForm( $par ) {
4950 global $wgRequest, $wgUser;
@@ -60,6 +61,7 @@
6162 $this->BlockAnonOnly = $wgRequest->getBool( 'wpAnonOnly', $byDefault );
6263 $this->BlockCreateAccount = $wgRequest->getBool( 'wpCreateAccount', $byDefault );
6364 $this->BlockEnableAutoblock = $wgRequest->getBool( 'wpEnableAutoblock', $byDefault );
 65+ $this->BlockEmail = $wgRequest->getBool( 'wpEmailBan', false );
6466 # Re-check user's rights to hide names, very serious, defaults to 0
6567 $this->BlockHideName = ( $wgRequest->getBool( 'wpHideName', 0 ) && $wgUser->isAllowed( 'hideuser' ) ) ? 1 : 0;
6668 }
@@ -238,12 +240,27 @@
239241 </tr>
240242 ");
241243 }
 244+
 245+ global $wgSysopEmailBans;
 246+
 247+ if ( $wgSysopEmailBans && $wgUser->isAllowed( 'blockemail' ) ) {
 248+ $wgOut->addHTML("
 249+ <tr>
 250+ <td>&nbsp;</td>
 251+ <td>
 252+ " . wfCheckLabel( wfMsgHtml( 'ipbemailban' ),
 253+ 'wpEmailBan', 'wpEmailBan', $this->BlockEmail,
 254+ array( 'tabindex' => '10' )) . "
 255+ </td>
 256+ </tr>
 257+ ");
 258+ }
242259 $wgOut->addHTML("
243260 <tr>
244261 <td style='padding-top: 1em'>&nbsp;</td>
245262 <td style='padding-top: 1em'>
246263 " . Xml::submitButton( wfMsg( 'ipbsubmit' ),
247 - array( 'name' => 'wpBlock', 'tabindex' => '10' ) ) . "
 264+ array( 'name' => 'wpBlock', 'tabindex' => '11' ) ) . "
248265 </td>
249266 </tr>
250267 </table>" .
@@ -356,10 +373,10 @@
357374
358375 # Create block
359376 # Note: for a user block, ipb_address is only for display purposes
360 -
361377 $block = new Block( $this->BlockAddress, $userId, $wgUser->getID(),
362378 $reasonstr, wfTimestampNow(), 0, $expiry, $this->BlockAnonOnly,
363 - $this->BlockCreateAccount, $this->BlockEnableAutoblock, $this->BlockHideName);
 379+ $this->BlockCreateAccount, $this->BlockEnableAutoblock, $this->BlockHideName,
 380+ $this->BlockEmail);
364381
365382 if (wfRunHooks('BlockIp', array(&$block, &$wgUser))) {
366383
@@ -420,6 +437,8 @@
421438 $flags[] = 'nocreate';
422439 if( !$this->BlockEnableAutoblock )
423440 $flags[] = 'noautoblock';
 441+ if ( $this->BlockEmail )
 442+ $flags[] = 'noemail';
424443 return implode( ',', $flags );
425444 }
426445
Index: branches/liquidthreads/config/index.php
@@ -153,6 +153,12 @@
154154 font-size: 85%;
155155 padding-top: 3em;
156156 }
 157+
 158+ span.success-message {
 159+ font-weight: bold;
 160+ font-size: 110%;
 161+ color: green;
 162+ }
157163
158164 </style>
159165 <script type="text/javascript">
@@ -450,6 +456,10 @@
451457 print "<li><a href=\"http://turck-mmcache.sourceforge.net/\">Turck MMCache</a> installed</li>\n";
452458 }
453459
 460+$conf->xcache = function_exists( 'xcache_get' );
 461+if( $conf->xcache )
 462+ print "<li><a href=\"http://trac.lighttpd.net/xcache/\">XCache</a> installed</li>";
 463+
454464 $conf->apc = function_exists('apc_fetch');
455465 if ($conf->apc ) {
456466 print "<li><a href=\"http://www.php.net/apc\">APC</a> installed</li>";
@@ -461,10 +471,11 @@
462472 print "<li><a href=\"http://eaccelerator.sourceforge.net/\">eAccelerator</a> installed</li>\n";
463473 }
464474
465 -if( !$conf->turck && !$conf->eaccel && !$conf->apc ) {
 475+if( !( $conf->turck || $conf->eaccel || $conf->apc || $conf->xcache ) ) {
466476 echo( '<li>Couldn\'t find <a href="http://turck-mmcache.sourceforge.net">Turck MMCache</a>,
467 - <a href="http://eaccelerator.sourceforge.net">eAccelerator</a>, or
468 - <a href="http://www.php.net/apc">APC</a>. Object caching functions cannot be used.</li>' );
 477+ <a href="http://eaccelerator.sourceforge.net">eAccelerator</a>,
 478+ <a href="http://www.php.net/apc">APC</a> or <a href="http://trac.lighttpd.net/xcache/">XCache</a>.
 479+ Object caching functions cannot be used.</li>' );
469480 }
470481
471482 $conf->diff3 = false;
@@ -1128,8 +1139,7 @@
11291140 <p class="config-desc">
11301141 An admin can lock/delete pages, block users from editing, and do other maintenance tasks.<br />
11311142 A new account will be added only when creating a new wiki database.
1132 - </p>
1133 - <p class="config-desc">
 1143+ <br /><br />
11341144 The password cannot be the same as the username.
11351145 </p>
11361146
@@ -1144,6 +1154,11 @@
11451155 aField( $conf, "Shm", "Turck MMCache", "radio", "turck" );
11461156 echo "</li>";
11471157 }
 1158+ if( $conf->xcache ) {
 1159+ echo( '<li>' );
 1160+ aField( $conf, 'Shm', 'XCache', 'radio', 'xcache' );
 1161+ echo( '</li>' );
 1162+ }
11481163 if ( $conf->apc ) {
11491164 echo "<li>";
11501165 aField( $conf, "Shm", "APC", "radio", "apc" );
@@ -1160,10 +1175,11 @@
11611176 <div style="clear:left"><?php aField( $conf, "MCServers", "Memcached servers:", "text" ) ?></div>
11621177 </div>
11631178 <p class="config-desc">
1164 - Using a shared memory system such as Turck MMCache, APC, eAccelerator, or Memcached
1165 - will speed up MediaWiki significantly. Memcached is the best solution but needs to be
1166 - installed. Specify the server addresses and ports in a comma-separated list. Only
1167 - use Turck shared memory if the wiki will be running on a single Apache server.
 1179+ An object caching system such as memcached will provide a significant performance boost,
 1180+ but needs to be installed. Provide the server addresses and ports in a comma-separated list.
 1181+ <br /><br />
 1182+ MediaWiki can also detect and support eAccelerator, Turck MMCache, APC, and XCache, but
 1183+ these should not be used if the wiki will be running on multiple application servers.
11681184 </p>
11691185 </div>
11701186
@@ -1364,8 +1380,14 @@
13651381 it and uploading it again will hopefully change the ownership to a user ID specific to you.</p>
13661382 EOT;
13671383 } else {
1368 - echo "<p><span style='font-weight:bold;color:green;font-size:110%'>Installation successful!</span> Move the <tt>config/LocalSettings.php</tt> file into the parent directory, then follow
1369 - <strong><a href='../index.php'>this link</a></strong> to your wiki.</p>\n";
 1384+ echo <<<EOT
 1385+<p>
 1386+<span class="success-message">Installation successful!</span>
 1387+Move the <tt>config/LocalSettings.php</tt> file to the parent directory, then follow
 1388+<a href="../index.php"> this link</a> to your wiki.</p>
 1389+<p>You should change file permissions for <tt>LocalSettings.php</tt> as required to
 1390+prevent other users on the server reading passwords and altering configuration data.</p>
 1391+EOT;
13701392 }
13711393 }
13721394
@@ -1395,6 +1417,7 @@
13961418 $mcservers = var_export( $conf->MCServerArray, true );
13971419 break;
13981420 case 'turck':
 1421+ case 'xcache':
13991422 case 'apc':
14001423 case 'eaccel':
14011424 $cacheType = 'CACHE_ACCEL';
Index: branches/liquidthreads/languages/messages/MessagesSk.php
@@ -490,7 +490,7 @@
491491 'yourdomainname' => 'Vaša doména',
492492 'externaldberror' => 'Buď nastala chyba externej autentifikačnej databázy alebo Vám nie je povolené aktualizovať Váš externý účet.',
493493 'loginproblem' => '<b>Nastal problém pri vašom prihlasovaní.</b><br />Skúste znova!',
494 -'alreadyloggedin' => "'''Užívateľ $1, vy už ste prihlásený!'''<br />",
 494+'alreadyloggedin' => '<strong>Používateľ $1, vy už ste prihlásený!</strong><br />',
495495 'login' => 'Prihlásiť',
496496 'loginprompt' => 'Na prihlásenie do {{GRAMMAR:genitív|{{SITENAME}}}} musíte mať zapnuté koláčiky (cookies).',
497497 'userlogin' => 'Vytvorenie konta / prihlásenie',
@@ -516,7 +516,7 @@
517517 'email' => 'E-mail',
518518 'prefs-help-realname' => '¹ Skutočné meno (nepovinné): ak sa rozhodnete ho poskytnúť, bude použité na označenie Vašej práce.',
519519 'loginerror' => 'Chyba pri prihlasovaní',
520 -'prefs-help-email' => '² E-mail (nepovinné): Umožní iným ľuďom kontaktovať Vás z Vašej užívateľskej a diskusnej, bez potreby uverejňovania Vašej e-mailovej adresy a môže byť použité na poslanie nového hesla, ak zabudnete pôvodné.',
 520+'prefs-help-email' => '² E-mail (nepovinné): Umožní iným ľuďom kontaktovať vás pomocou odkazu z vašej používateľskej a diskusnej stránky bez potreby uverejňovania Vašej e-mailovej adresy a môže byť použité na poslanie nového hesla, ak zabudnete pôvodné.',
521521 'nocookiesnew' => 'Používateľské konto bolo vytvorené, ale nie ste prihlásený. {{SITENAME}} používa koláčiky (cookies) na prihlásenie. Máte koláčiky (cookies) vypnuté. Zapnite ich a potom sa prihláste pomocou vášho nového používateľského mena a hesla.',
522522 'nocookieslogin' => '{{SITENAME}} používa koláčiky (cookies) na prihlásenie. Vy máte koláčiky vypnuté. Prosíme, zapnite ich a skúste znovu.',
523523 'noname' => 'Nezadali ste platné používateľské meno.',
@@ -609,7 +609,8 @@
610610 'blockedtext' => 'Vaše používateľské meno alebo IP adresu zablokoval $1.
611611 Udáva tento dôvod:<br />\'\'$2\'\'
612612
613 -Blokovanie vyprší: $6
 613+Blokovanie vyprší: $6<br />
 614+Kto mal byť zablokovaný: $7
614615
615616 Môžete kontaktovať $1 alebo s jedného z ďalších
616617 [[{{MediaWiki:grouppage-sysop}}|správcov]] a prediskutovať blokovanie.
@@ -659,8 +660,8 @@
660661 'noarticletext' => 'Na tejto stránke sa momentálne nenachádza žiadny text. Môžete [[Special:Search/{{PAGENAME}}|vyhľadávať názov tejto stránky]] v obsahu iných stránok alebo [{{fullurl:{{FULLPAGENAME}}|action=edit}} upravovať túto stránku].',
661662 'clearyourcache' => "'''Poznámka:''' Aby sa zmeny prejavili, po uložení musíte vymazať vyrovnávaciu pamäť vášho prehliadača: '''Mozilla / Firefox / Safari:''' držte stlačený ''Shift'' a kiknite na ''Reload'' alebo stlačte ''Ctrl-Shift-R'' (''Cmd-Shift-R'' na Apple Mac); '''IE:''' držte ''Ctrl'' a kliknite na ''Refresh'' alebo stlačte ''Ctrl-F5''; '''Konqueror:''': jednoducho kliknite na tlačidlo ''Reload'' alebo stlačte ''F5''; Používatelia '''Opery''' možno budú musieť úplne vymazať vyrovnávaciu pamäť prehliadača v ponuke ''Tools→Preferences''.",
662663 'usercssjsyoucanpreview' => "<strong>Tip:</strong> Použite tlačítko 'Zobraz náhľad' na otestovanie Vášho nového CSS/JS pred uložením.",
663 -'usercsspreview' => "'''Nezabudnite, že toto je iba náhľad Vášho užívateľského CSS, ešte nebolo uložené!'''",
664 -'userjspreview' => "'''Nezabudnite, že iba testujete/náhľad vášho užívateľského JavaScriptu, ešte nebol uložený!'''",
 664+'usercsspreview' => "'''Nezabudnite, že toto je iba náhľad vášho používateľského CSS, ešte nebolo uložené!'''",
 665+'userjspreview' => "'''Nezabudnite, že iba testujete/náhľad vášho používateľského JavaScriptu, ešte nebol uložený!'''",
665666 'userinvalidcssjstitle' => "'''Varovanie:''' Neexistuje skin \"\$1\". Pamätajte, že vlastné .css a .js stránky používajú názov s malými písmenami, napr. {{ns:user}}:Foo/monobook.css na rozdiel od {{ns:user}}:Foo/Monobook.css.",
666667 'updated' => '(Aktualizovaný)',
667668 'note' => '<strong>Poznámka: </strong>',
@@ -720,11 +721,16 @@
721722 'nocreatetitle' => 'Tvorba nových stránok bola obmedzená',
722723 'nocreatetext' => 'Na tejto stránke je tvorba nových stránok obmedzená.
723724 Teraz sa môžete vrátiť späť a upravovať existujúcu stránku alebo [[Special:Userlogin|sa prihlásiť alebo vytvoriť účet]].',
 725+'recreate-deleted-warn' => "'''Upozornenie: Opätovne vytvárate stránku, ktorá bola predtým zmazaná.'''
724726
 727+Mali by ste zvážiť, či je vhodné pokračovať v úpravách tejto stránky.
 728+Odkaz na záznam zmazaní:",
 729+'recreate-deleted-dismiss' => '(nezobrazovať)',
 730+
725731 # "Undo" feature
726732 'undo-success' => 'Úpravu nie je možné vrátiť. Prosím skontrolujte tento rozdiel, čím overíte, že táto úprava je tá, ktorú chcete, a následne uložte zmeny, čím ukončíte vrátenie.',
727733 'undo-failure' => 'Úpravu nie je možné vrátiť kvôli konfliktným medziľahlým úpravám.',
728 -'undo-summary' => 'Používateľ [[Special:Contributions/$2]] ([[User talk:$2]]) vrátil revíziu $1',
 734+'undo-summary' => 'Revízia $1 používateľa [[Special:Contributions/$2]] ([[User talk:$2|Diskusia]]) bola vrátená',
729735
730736 # Account creation failure
731737 'cantcreateaccounttitle' => 'Nedá sa vytvoriť účet',
@@ -897,7 +903,7 @@
898904 'resultsperpage' => 'Počet vyhovujúcich výsledkov zobrazených na strane',
899905 'contextlines' => 'Počet zobrazených riadkov z kažnej nájdenej stránky',
900906 'contextchars' => 'Počet kontextových znakov v riadku',
901 -'stubthreshold' => 'Hranica pre zobrazenie nedokončených stránok (výhonkov):',
 907+'stub-threshold' => 'Prah formátovania <a href="#" class="stub">výhonkov</a>:',
902908 'recentchangesdays' => 'Koľko dní zobrazovať v Posledných úpravách:',
903909 'recentchangescount' => 'Počet nadpisov uvedených v posledných úpravách',
904910 'savedprefs' => 'Vaše nastavenia boli uložené.',
@@ -1176,6 +1182,7 @@
11771183 'wantedpages' => 'Žiadané stránky',
11781184 'mostlinked' => 'Najčastejšie odkazované stránky',
11791185 'mostlinkedcategories' => 'Najčastejšie odkazované kategórie',
 1186+'mostlinkedtemplates' => 'Najodkazovanejšie šablóny',
11801187 'mostcategories' => 'Stránky s najväčším počtom kategórií',
11811188 'mostimages' => 'Najčastejšie odkazované obrázky',
11821189 'mostrevisions' => 'Stránky s najväčším počtom úprav',
@@ -1413,9 +1420,6 @@
14141421 'protect_expiry_invalid' => 'Neplatný čas vypršania.',
14151422 'protect_expiry_old' => 'Čas vypršania je v minulosti.',
14161423 'unprotectsub' => '(Odomykám "$1")',
1417 -'confirmunprotecttext' => 'Skutočne chcete odomknúť túto stránku?',
1418 -'confirmunprotect' => 'Potvrďte odomknutie',
1419 -'unprotectcomment' => 'Dôvod odomknutia',
14201424 'protect-unchain' => 'Odomknúť povolenia pre presun',
14211425 'protect-text' => 'Tu si môžete pozrieť a zmeniť úroveň ochrany stránky <strong>$1</strong>.',
14221426 'protect-locked-blocked' => 'Nemôžete meniť úroveň ochrany, kým ste zablokovaný.
@@ -1510,18 +1514,19 @@
15111515 'sp-newimages-showfrom' => 'Zobraz nové obrázky počínajúc $1',
15121516
15131517 # What links here
1514 -'whatlinkshere' => 'Odkazy na túto stránku',
1515 -'notargettitle' => 'Nebol zadaný cieľ',
1516 -'notargettext' => 'Nezadali ste cieľovú stránku alebo používateľa,
 1518+'whatlinkshere' => 'Odkazy na túto stránku',
 1519+'notargettitle' => 'Nebol zadaný cieľ',
 1520+'notargettext' => 'Nezadali ste cieľovú stránku alebo používateľa,
15171521 na ktorý/-ého chcete aplikovať túto funkciu.',
1518 -'linklistsub' => '(Zoznam odkazov)',
1519 -'linkshere' => "Nasledujúce stránky odkazujú na '''[[:$1]]''':",
1520 -'nolinkshere' => "Žiadne stránky neodkazujú na '''[[:$1]]'''.",
1521 -'nolinkshere-ns' => "Žiadne stránky neodkazujú na '''[[:$1]]''' vo zvolenom mennom priestore.",
1522 -'isredirect' => 'presmerovacia stránka',
1523 -'istemplate' => 'použitá',
1524 -'whatlinkshere-prev' => 'predhádzajúce $1',
1525 -'whatlinkshere-next' => 'nasledujúce $1',
 1522+'linklistsub' => '(Zoznam odkazov)',
 1523+'linkshere' => "Nasledujúce stránky odkazujú na '''[[:$1]]''':",
 1524+'nolinkshere' => "Žiadne stránky neodkazujú na '''[[:$1]]'''.",
 1525+'nolinkshere-ns' => "Žiadne stránky neodkazujú na '''[[:$1]]''' vo zvolenom mennom priestore.",
 1526+'isredirect' => 'presmerovacia stránka',
 1527+'istemplate' => 'použitá',
 1528+'whatlinkshere-prev' => '{{PLURAL:$1|predchádzajúca|predchádzajúce $1|predchádzajúcich $1}}',
 1529+'whatlinkshere-next' => '{{PLURAL:$1|nasledujúca|nasledujúce $1|nasledujúcich $1}}',
 1530+'whatlinkshere-links' => '← odkazy',
15261531
15271532 # Block/unblock
15281533 'blockip' => 'Zablokovať používateľa',
Index: branches/liquidthreads/languages/messages/MessagesId.php
@@ -197,7 +197,7 @@
198198 'padleft' => array( 0, 'ISIKIRI', 'PADLEFT' ),
199199 'padright' => array( 0, 'ISIKANAN', 'PADRIGHT' ),
200200 'special' => array( 0, 'istimewa', 'special', ),
201 - 'defaultsort' => array( 1, 'URUTANBAKU:', 'DEFAULTSORT:' ),
 201+ 'defaultsort' => array( 1, 'URUTANBAKU:', 'DEFAULTSORT:', 'DEFAULTSORTKEY:', 'DEFAULTCATEGORYSORT:' ),
202202 );
203203
204204 /**
@@ -712,7 +712,7 @@
713713
714714 Anda dapat menghubungi $1 atau [[{{MediaWiki:grouppage-sysop}}|pengurus lainnya]] untuk membicarakan hal ini.
715715
716 -Anda tidak dapat menggunakan fitur 'Kirim surat-e pengguna ini' kecuali Anda telah memasukkan alamat surat-e yang sah di [[Special:Preferences|preferensi]] Anda.
 716+Anda tidak dapat menggunakan fitur 'Kirim surat-e pengguna ini' kecuali Anda telah memasukkan alamat surat-e yang sah di [[Special:Preferences|preferensi]] Anda dan Anda telah diblokir untuk menggunakannya.
717717
718718 Alamat IP Anda adalah $3, dan ID pemblokiran adalah $5. Tolong sertakan salah satu atau kedua informasi ini pada setiap pertanyaan yang Anda buat",
719719 'autoblockedtext' => 'Alamat IP Anda telah terblokir secara otomatis karena digunakan oleh pengguna lain. Pemblokiran dilakukan oleh $1 dengan alasan:
@@ -723,7 +723,7 @@
724724
725725 Anda dapat menghubungi $1 atau [[{{MediaWiki:grouppage-sysop}}|pengurus lainnya]] untuk membicarakan hal ini.
726726
727 -Anda tidak dapat menggunakan fitur "kirim surat-e pengguna ini" kecuali Anda telah memasukkan alamat surat-e yang sah di [[Special:Preferences|preferensi]] Anda.
 727+Anda tidak dapat menggunakan fitur "kirim surat-e pengguna ini" kecuali Anda telah memasukkan alamat surat-e yang sah di [[Special:Preferences|preferensi]] Anda dan Anda telah diblokir untuk menggunakannya.
728728
729729 ID pemblokiran Anda adalah $5. Tolong sertakan ID ini dalam setiap pertanyaan Anda.',
730730 'blockedoriginalsource' => "Isi sumber '''$1''' ditunjukkan berikut ini:",
@@ -1389,7 +1389,7 @@
13901390 Untuk mengubah preferensi daftar pantauan Anda, kunjungi
13911391 {{fullurl:{{ns:special}}:Watchlist/edit}}
13921392
1393 -Masukan dan bantuan lanjutan:
 1393+Umpan balik dan bantuan lanjutan:
13941394 {{fullurl:{{MediaWiki:helppage}}}}',
13951395
13961396 # Delete/protect/revert
@@ -1434,9 +1434,6 @@
14351435 'protect_expiry_invalid' => 'Waktu kadaluwarsa tidak sah.',
14361436 'protect_expiry_old' => 'Waktu kadaluwarsa adalah pada masa lampau.',
14371437 'unprotectsub' => '(Menghilangkan perlindungan terhadap "$1")',
1438 -'confirmunprotecttext' => 'Apakah Anda benar-benar ingin menghilangkan perlindungan terhadap halaman ini?',
1439 -'confirmunprotect' => 'Konfirmasi penghilangan perlindungan',
1440 -'unprotectcomment' => 'Komentar:',
14411438 'protect-unchain' => 'Buka perlindungan pemindahan',
14421439 'protect-text' => 'Anda dapat melihat atau mengganti tingkatan perlindungan untuk halaman <strong>$1</strong> di sini.',
14431440 'protect-locked-blocked' => 'Anda tak dapat mengganti tingkat perlindungan selagi diblokir. Berikut adalah konfigurasi saat ini untuk halaman <strong>$1</strong>:',
@@ -1553,6 +1550,7 @@
15541551 ** Nama pengguna tak layak',
15551552 'ipbanononly' => 'Hanya blokir pengguna anonim',
15561553 'ipbcreateaccount' => 'Cegah pembuatan akun',
 1554+'ipbemailban' => 'Cegah pengguna mengirimkan surat-e',
15571555 'ipbenableautoblock' => 'Blokir alamat IP terakhir yang digunakan pengguna ini secara otomatis, dan semua alamat berikutnya yang mereka coba gunakan untuk menyunting.',
15581556 'ipbsubmit' => 'Kirimkan',
15591557 'ipbother' => 'Waktu lain:',
@@ -1581,6 +1579,7 @@
15821580 'anononlyblock' => 'hanya anon',
15831581 'noautoblockblock' => 'pemblokiran otomatis dimatikan',
15841582 'createaccountblock' => 'pembuatan akun diblokir',
 1583+'emailblock' => 'surat-e diblokir',
15851584 'ipblocklist-empty' => 'Daftar pemblokiran kosong.',
15861585 'ipblocklist-no-results' => 'alamat IP atau pengguna yang diminta tidak diblokir.',
15871586 'blocklink' => 'blokir',
@@ -1594,6 +1593,7 @@
15951594 'block-log-flags-anononly' => 'hanya pengguna anonim',
15961595 'block-log-flags-nocreate' => 'pembuatan akun dimatikan',
15971596 'block-log-flags-noautoblock' => 'blokir otomatis dimatikan',
 1597+'block-log-flags-noemail' => 'surat-e diblokir',
15981598 'range_block_disabled' => 'Kemampuan pengurus dalam membuat blokir blok IP dimatikan.',
15991599 'ipb_expiry_invalid' => 'Waktu kadaluwarsa tidak sah.',
16001600 'ipb_already_blocked' => '"$1" telah diblokir',
Index: branches/liquidthreads/languages/messages/MessagesRo.php
@@ -83,8 +83,10 @@
8484 'tog-showtoc' => 'Arată cuprinsul (pentru paginile cu mai mult de 3 paragrafe cu titlu)',
8585 'tog-rememberpassword' => 'Aminteşte-ţi între sesiuni',
8686 'tog-editwidth' => 'Căsuţa de modificare are lăţime maximă',
87 -'tog-watchcreations' => 'Adaugă paginile create de mine pe lista de urmărire',
88 -'tog-watchdefault' => 'Adaugă paginile pe care le modifici la lista ta de urmărire',
 87+'tog-watchcreations' => 'Adaugă paginile pe care le creez la lista mea de urmărire',
 88+'tog-watchdefault' => 'Adaugă paginile pe care le modific la lista mea de urmărire',
 89+'tog-watchmoves' => 'Adaugă paginile pe care le mut la lista mea de urmărire',
 90+'tog-watchdeletion' => 'Adaugă paginile pe care le şterg în lista mea de urmărire',
8991 'tog-minordefault' => 'Marchează toate modificările minore din oficiu',
9092 'tog-previewontop' => 'Arată previzualizarea înainte de a modifica secţiunea',
9193 'tog-previewonfirst' => 'Arată previzualizarea la prima modificare',
@@ -100,10 +102,12 @@
101103 'tog-showjumplinks' => 'Activează legăturile de accesibilitate "salt la"',
102104 'tog-uselivepreview' => 'Utilizează previzualizarea live (JavaScript) (Experimental)',
103105 'tog-forceeditsummary' => 'Avertizează-mă când uit să descriu modificările',
104 -'tog-watchlisthideown' => 'Ascunde modificările mele de pe lista de articole urmărite',
105 -'tog-watchlisthidebots' => 'Ascunde modificările boţilor de pe lista de articole urmărite',
106 -'tog-watchlisthideminor' => 'Ascunde modificările minore de pe lista de articole urmărite',
 106+'tog-watchlisthideown' => 'Ascunde modificările mele la lista mea de urmărire',
 107+'tog-watchlisthidebots' => 'Ascunde modificările boţilor la lista mea de urmărire',
 108+'tog-watchlisthideminor' => 'Ascunde modificările minore la lista mea de urmărire',
 109+'tog-nolangconversion' => 'Dezactivează conversia variabilelor',
107110 'tog-ccmeonemails' => 'Trimite-mi o copie când trimit un email altui utilizator',
 111+'tog-diffonly' => 'Nu arăta conţinutul paginii prin dif',
108112
109113 'underline-always' => 'Întotdeauna',
110114 'underline-never' => 'Niciodată',
@@ -112,37 +116,56 @@
113117 'skinpreview' => '(Previzualizare)',
114118
115119 # Dates
116 -'sunday' => 'duminică',
117 -'monday' => 'luni',
118 -'tuesday' => 'marţi',
119 -'wednesday' => 'miercuri',
120 -'thursday' => 'joi',
121 -'friday' => 'vineri',
122 -'saturday' => 'sâmbătă',
123 -'january' => 'ianuarie',
124 -'february' => 'februarie',
125 -'march' => 'martie',
126 -'april' => 'aprilie',
127 -'may_long' => 'mai',
128 -'june' => 'iunie',
129 -'july' => 'iulie',
130 -'august' => 'august',
131 -'september' => 'septembrie',
132 -'october' => 'octombrie',
133 -'november' => 'noiembrie',
134 -'december' => 'decembrie',
135 -'jan' => 'ian',
136 -'feb' => 'feb',
137 -'mar' => 'mart',
138 -'apr' => 'apr',
139 -'may' => 'mai',
140 -'jun' => 'iun',
141 -'jul' => 'iul',
142 -'aug' => 'aug',
143 -'sep' => 'sept',
144 -'oct' => 'oct',
145 -'nov' => 'nov',
146 -'dec' => 'dec',
 120+'sunday' => 'duminică',
 121+'monday' => 'luni',
 122+'tuesday' => 'marţi',
 123+'wednesday' => 'miercuri',
 124+'thursday' => 'joi',
 125+'friday' => 'vineri',
 126+'saturday' => 'sâmbătă',
 127+'sun' => 'Dum',
 128+'mon' => 'Lun',
 129+'tue' => 'Mar',
 130+'wed' => 'Mie',
 131+'thu' => 'Joi',
 132+'fri' => 'Vin',
 133+'sat' => 'Sâm',
 134+'january' => 'ianuarie',
 135+'february' => 'februarie',
 136+'march' => 'martie',
 137+'april' => 'aprilie',
 138+'may_long' => 'mai',
 139+'june' => 'iunie',
 140+'july' => 'iulie',
 141+'august' => 'august',
 142+'september' => 'septembrie',
 143+'october' => 'octombrie',
 144+'november' => 'noiembrie',
 145+'december' => 'decembrie',
 146+'january-gen' => 'ianuarie',
 147+'february-gen' => 'februarie',
 148+'march-gen' => 'martie',
 149+'april-gen' => 'aprilie',
 150+'may-gen' => 'mai',
 151+'june-gen' => 'iunie',
 152+'july-gen' => 'iulie',
 153+'august-gen' => 'august',
 154+'september-gen' => 'septembrie',
 155+'october-gen' => 'octombrie',
 156+'november-gen' => 'noiembrie',
 157+'december-gen' => 'decembrie',
 158+'jan' => 'ian',
 159+'feb' => 'feb',
 160+'mar' => 'mart',
 161+'apr' => 'apr',
 162+'may' => 'mai',
 163+'jun' => 'iun',
 164+'jul' => 'iul',
 165+'aug' => 'aug',
 166+'sep' => 'sept',
 167+'oct' => 'oct',
 168+'nov' => 'nov',
 169+'dec' => 'dec',
147170
148171 # Bits of text used by many pages
149172 'categories' => '{{PLURAL:$1|Categorie|Categorii}}',
@@ -201,6 +224,7 @@
202225 'unprotectthispage' => 'Deprotejează pagina',
203226 'newpage' => 'Pagină nouă',
204227 'talkpage' => 'Discută pagina',
 228+'talkpagelinktext' => 'Discuţie',
205229 'specialpage' => 'Pagină Specială',
206230 'personaltools' => 'Unelte personale',
207231 'postcomment' => 'Adaugă un comentariu',
@@ -328,14 +352,18 @@
329353 'perfdisabledsub' => 'Iată o copie salvată de la $1:', # obsolete?
330354 'perfcached' => 'Datele următoare au fost păstrate în cache şi s-ar putea să nu fie la zi.',
331355 'perfcachedts' => "Informaţiile de mai jos provin din ''cache''; ultima actualizare s-a efectuat la $1.",
 356+'querypage-no-updates' => 'Actualizările acestei pagini sunt momentan dezactivate. Informaţiile de aici nu sunt împrospătate.',
332357 'wrong_wfQuery_params' => 'Număr incorect de parametri pentru wfQuery()<br />
333358 Funcţia: $1<br />
334359 Interogarea: $2',
335360 'viewsource' => 'Vezi sursa',
336361 'viewsourcefor' => 'pentru $1',
 362+'protectedpagetext' => 'Această pagină este protejată împotriva modificărilor.',
 363+'viewsourcetext' => 'Se poate vizualiza şi copia conţinutul acestei pagini:',
337364 'protectedinterface' => 'Această pagină asigură textul interfeţei pentru software şi este protejată pentru a preveni abuzurile.',
338365 'editinginterface' => "'''Avertizare''': Editezi o pagină care este folosită pentru a furniza textul interfeţei pentru software. Modificările aduse acestei pagini vor afecta aspectul interfeţei utilizatorului pentru alţi utilizatori.",
339366 'sqlhidden' => '(interogare SQL ascunsă)',
 367+'cascadeprotected' => 'Această pagină a fost protejată la scriere deoarece este inclusă în următoarele pagini, care sunt protejate în cascadă:',
340368
341369 # Login and logout pages
342370 'logouttitle' => 'Sesiune închisă',
@@ -376,7 +404,6 @@
377405 'yournick' => 'Versiune scurtă a numelui, pentru semnături',
378406 'badsig' => 'Semnătură brută incorectă; verificaţi tag-urile HTML.',
379407 'email' => 'E-mail',
380 -'prefs-help-email-enotif' => 'Această adresă este folosită de asemenea pentru a ţi se trimite notificări prin email dacă ai activat această opţiune.',
381408 'prefs-help-realname' => '* Numele dumneavoastră real (opţional): Dacă decideţi introducerea numelui real aici, acesta va fi folosit pentru a vă atribui munca.<br />',
382409 'loginerror' => 'Eroare de autentificare',
383410 'prefs-help-email' => '*Adresa de e-mail (opţional): Permite altor utilizatori să vă contacteze prin e-mail via {{SITENAME}} fără a vă divulga identitatea. De asemenea, permite recuperarea parolei dacă o uitaţi.',
@@ -398,7 +425,9 @@
399426 Este recomandat să intri pe {{SITENAME}} şi să-ţi schimbi parola cât mai curând.',
400427 'noemail' => 'Nu este nici o adresă de e-mail înregistrată pentru utilizatorul "$1".',
401428 'passwordsent' => 'O nouă parolă a fost trimisă la adresa de e-mail a utilizatorului "$1". Te rugăm să te autentifici pe {{SITENAME}} după ce o primeşti.',
 429+'blocked-mailpassword' => 'Această adresă IP este blocată la editare, şi deci nu este permisă utilizarea funcţiei de recuperare a parolei pentru a preveni abuzul.',
402430 'eauthentsent' => 'Un email de confirmare a fost trimis adresei nominalizate. Înainte de a fi trimis orice alt email acestui cont, trebuie să urmaţi intrucţiunile din email, pentru a confirma că acest cont este într-adevăr al dvs.',
 431+'throttled-mailpassword' => 'O parolă a fost deja trimisă în {{PLURAL:$1|ultima oră|ultimele $1 ore}}. Pentru a preveni abuzul, se poate trimite doar o parolă la {{PLURAL:$2|o oră|$2 ore}}.',
403432 'mailerror' => 'Eroare la trimitere e-mail: $1',
404433 'acct_creation_throttle_hit' => 'Ne pare rău, aţi creat deja $1 conturi de utilizator. Nu mai puteţi crea altul.',
405434 'emailauthenticated' => 'Adresa de email a fost autentificată la $1.',
@@ -410,11 +439,15 @@
411440 'accountcreatedtext' => 'Contul utilizatorului pentru $1 a fost creat.',
412441
413442 # Password reset dialog
414 -'resetpass_text' => '<!-- Adaugă text aici -->',
415 -'resetpass_header' => 'Resetează parola',
416 -'resetpass_submit' => 'Setează parola şi autentifică',
417 -'resetpass_success' => 'Parola a fost schimbată cu succes! Autentificare în curs...',
418 -'resetpass_forbidden' => 'Parolele nu pot fi schimbate pe acest wiki',
 443+'resetpass' => 'Resetează parola contului',
 444+'resetpass_announce' => 'Sunteţi autentificat cu un cod temporar trimis pe mail. Pentru a termina acţiunea de autentificare, trebuie să setaţi o parolă nouă aici:',
 445+'resetpass_text' => '<!-- Adaugă text aici -->',
 446+'resetpass_header' => 'Resetează parola',
 447+'resetpass_submit' => 'Setează parola şi autentifică',
 448+'resetpass_success' => 'Parola a fost schimbată cu succes! Autentificare în curs...',
 449+'resetpass_bad_temporary' => 'Parola temporară nu este validă. Este posibil să vă fi schimbat deja parola cu succes sau să fi cerut o nouă parolă temporară.',
 450+'resetpass_forbidden' => 'Parolele nu pot fi schimbate pe acest wiki',
 451+'resetpass_missing' => 'Nu există date în formular.',
419452
420453 # Edit page toolbar
421454 'bold_sample' => 'Text aldin',
@@ -451,6 +484,9 @@
452485 'anoneditwarning' => "'''Avertizare:''' Nu sunteţi logat(ă). Adresa IP vă va fi înregistrată în istoricul acestei pagini.",
453486 'missingsummary' => "'''Atenţie:''' Nu aţi completat caseta \"descriere modificări\". Dacă apăsaţi din nou butonul \"salvează pagina\" modificările vor fi salvate fără descriere.",
454487 'missingcommenttext' => 'Vă rugăm să introduceţi un comentariu.',
 488+'missingcommentheader' => "'''Atenţie:''' Nu aţi furnizat un titlu/subiect pentru acest comentariu. Dacă daţi click pe \"Salvaţi din nou\", modificarea va fi salvată fără titlu.",
 489+'summary-preview' => 'Previzualizare descriere',
 490+'subject-preview' => 'Previzualizare subiect/titlu:',
455491 'blockedtitle' => 'Utilizatorul este blocat',
456492 'blockedtext' => "Adresa IP sau contul de utilizator v-a fost blocat de către $1 pentru următorul motiv:
457493
@@ -463,6 +499,19 @@
464500 '''Blocarea nu se referă la citirea paginilor {{SITENAME}}, ci doar la modificarea lor.'''
465501
466502 Pentru a afla cînd vă expiră blocarea căutaţi-vă numele de utilizator sau adresa IP în [[Special:Ipblocklist|lista de utilizatori blocaţi]].",
 503+'autoblockedtext' => 'Această adresă IP a fost blocată automat deoarece a fost folosită de către un alt utilizator, care a fost blocat de $1.
 504+Motivul blocării este:
 505+
 506+:\'\'$2\'\'
 507+
 508+Blcoarea expiră la: $6
 509+
 510+Puteţi contacta pe $1 sau pe unul dintre ceilalţi
 511+[[{{MediaWiki:grouppage-sysop}}|administratori]] pentru a discuta situaţia.
 512+
 513+Nu veţi putea folosi opţiunea de "trimite e-mail" decât dacă aveţi înregistrată o adresă de e-mail validă la [[Special:Preferences|preferinţe]] şi nu sunteţi blocat la folosirea ei.
 514+
 515+Identificatorul dumneavoastră de blocare este $5. Vă rugăm să îl includeţi în orice cerere pe care o faceţi.',
467516 'blockedoriginalsource' => "Sursa pentru '''$1''' apare mai jos:",
468517 'blockededitsource' => "Textul '''modificărilor tale''' la '''$1''' este redat mai jos:",
469518 'whitelistedittitle' => 'Este necesară autentificarea pentru a edita',
@@ -473,6 +522,7 @@
474523 'whitelistacctext' => 'Trebuie să te [[Special:Userlogin|autentifici]] şi să ai permisiunile corecte pentru a crea conturi.',
475524 'confirmedittitle' => 'Pentru a edita e necesară confirmarea adresei de e-mail',
476525 'confirmedittext' => 'Trebuie să vă confirmaţi adresa de e-mail înainte de a edita pagini. Vă rugăm să vă setaţi şi să vă validaţi adresa de e-mail cu ajutorul [[Special:Preferences|preferinţelor utilizatorului]].',
 526+'nosuchsectiontitle' => 'Nu există o astfel de secţiune',
477527 'loginreqtitle' => 'Necesită autentificare',
478528 'loginreqlink' => 'autentifici',
479529 'loginreqpagetext' => 'Trebuie să te $1 pentru a vizualiza alte pagini.',
@@ -500,7 +550,7 @@
501551 'importing' => 'Se importă $1',
502552 'editing' => 'modificare $1',
503553 'editinguser' => 'modificare $1',
504 -'editingsection' => 'se modifică $1 (secţiune)',
 554+'editingsection' => 'modificare $1 (secţiune)',
505555 'editingcomment' => 'modificare $1 (comentariu)',
506556 'editconflict' => 'Conflict de modificare: $1',
507557 'explainconflict' => 'Altcineva a modificat această pagină de când ai început să o editezi. Caseta de text de sus conţine pagina aşa cum este ea acum (după editarea celeilalte persoane). Pagina cu modificările tale (aşa cum ai încercat să o salvezi) se află în caseta de jos. Va trebui să editezi manual caseta de sus pentru a reflecta modificările pe care tocmai le-ai făcut în cea de jos. <b>Numai</b> textul din caseta de sus va fi salvat atunci când vei apăsa pe "Salvează pagina".<br />',
@@ -519,6 +569,7 @@
520570 'readonlywarning' => '<strong>ATENŢIE! Baza de date a fost blocată pentru întreţinere, deci nu vei putea să salvezi editările în acest moment. Poţi copia textul într-un fişier text local pentru a modifica conţinutul în {{SITENAME}} când va fi posibil.</strong>',
521571 'protectedpagewarning' => '<strong>ATENŢIE! Această pagină a fost protejată la scriere şi numai utilizatorii cu privilegii de administrator o pot modifica. Vă rugăm urmaţi sugestiile [[Project:Pagină protejată|despre pagini protejate]] când modificaţi.</strong>',
522572 'semiprotectedpagewarning' => "'''Atenţie:''' Această pagină poate fi modificată numai de utilizatorii înregistraţi.",
 573+'cascadeprotectedwarning' => "'''Atenţie:''' Această pagină a fost blocată astfel încât numai administratorii o pot modifica, deoarece este inclusă în următoarele pagini protejate în cascadă:",
523574 'templatesused' => 'Formate folosite în această pagină:',
524575 'templatesusedpreview' => 'Formate utilizate în această previzualizare:',
525576 'templatesusedsection' => 'Formate utilizate în această secţiune:',
@@ -527,7 +578,12 @@
528579 'edittools' => '<!-- Acest text va apărea după caseta de editare şi formularele de trimitere fişier. -->',
529580 'nocreatetitle' => 'Creare de pagini limitată',
530581 'nocreatetext' => 'Acest site a restricţionat abilitatea de creare a paginilor noi. Puteţi edita o pagină deja existentă sau puteţi să vă [[Special:Userlogin|autentificaţi/creaţi]] un cont de utilizator.',
 582+'recreate-deleted-dismiss' => '(ascunde)',
531583
 584+# "Undo" feature
 585+'undo-success' => 'Modificarea poate fi anulată. Verificaţi diferenţa de dedesupt şi apoi salvaţi pentru a termina anularea modificării.',
 586+'undo-summary' => 'Anularea modificării $1 făcute de [[Special:Contributions/$2|$2]] ([[Discuţie Utilizator:$2|discuţie]])',
 587+
532588 # Account creation failure
533589 'cantcreateaccounttitle' => 'Crearea contului nu poate fi realizată',
534590 'cantcreateaccounttext' => 'Crearea conturilor de la această adresă IP (<b>$1</b>) a fost blocată.
@@ -535,7 +591,7 @@
536592
537593 # History pages
538594 'revhistory' => 'Istoria versiunilor',
539 -'viewpagelogs' => 'Vezi jurnalele pentru această pagină',
 595+'viewpagelogs' => 'Vezi rapoartele pentru această pagină',
540596 'nohistory' => 'Nu există istoric pentru această pagină.',
541597 'revnotfound' => 'Versiunea nu a fost găsită',
542598 'revnotfoundtext' => 'Versiunea mai veche a paginii pe care aţi cerut-o nu a fost găsită. Vă rugăm să verificaţi legătura pe care aţi folosit-o pentru a accesa această pagină.',
@@ -550,6 +606,8 @@
551607 'next' => 'următoarea',
552608 'last' => 'prec',
553609 'orig' => 'orig',
 610+'page_first' => 'prim',
 611+'page_last' => 'ultim',
554612 'histlegend' => 'Legendă: (actuală) = diferenţe faţă de versiunea curentă,
555613 (prec) = diferenţe faţă de versiunea precedentă, M = modificare minoră',
556614 'deletedrev' => '[şters]',
@@ -569,6 +627,7 @@
570628 # Revision deletion
571629 'rev-deleted-comment' => '(comentariu şters)',
572630 'rev-deleted-user' => '(nume de utilizator şters)',
 631+'rev-deleted-event' => '(intrare ştearsă)',
573632 'rev-deleted-text-permission' => '<div class="mw-warning plainlinks">
574633 Revizia acestei pagini a fost ştearsă din arhivele publice. Mai multe detalii la [{{fullurl:Special:Log/delete|page={{PAGENAMEE}}}} deletion log].
575634 </div>',
@@ -600,6 +659,7 @@
601660 'selectolderversionfordiff' => 'Selectează o versiune mai veche pentru comparaţie',
602661 'compareselectedversions' => 'Compară versiunile selectate',
603662 'editundo' => 'anulează',
 663+'diff-multi' => '({{plural:$1|O revizie intermediară neafişată|$1 revizii intermediare neafişate}})',
604664
605665 # Search results
606666 'searchresults' => 'Rezultatele căutării',
@@ -675,7 +735,7 @@
676736 'resultsperpage' => 'Numărul de rezultate per pagină',
677737 'contextlines' => 'Numărul de linii per rezultat',
678738 'contextchars' => 'Numărul de caractere per linie',
679 -'stubthreshold' => 'Limita de caractere pentru un ciot',
 739+'recentchangesdays' => 'Numărul de zile afişate în schimbări recente:',
680740 'recentchangescount' => 'Numărul de articole pentru schimbări recente:',
681741 'savedprefs' => 'Preferinţele tale au fost salvate.',
682742 'timezonelegend' => 'Fus orar',
@@ -698,6 +758,7 @@
699759 'userrights-groupsmember' => 'Membru al:',
700760 'userrights-groupsavailable' => 'Grupuri disponibile:',
701761 'userrights-groupshelp' => 'Selectează grupurile din care doreşti ca utilizatorul să fie şters sau în care doreşti să fie adăugat. Grupurile deselectate nu se vor modifica. Poţi deselecta un grup cu CTRL + Clic stânga',
 762+'userrights-reason' => 'Motivul schimbării:',
702763
703764 # Groups
704765 'group' => 'Grup:',
@@ -721,6 +782,7 @@
722783 'rightsnone' => '(niciunul)',
723784
724785 # Recent changes
 786+'nchanges' => '$1 {{PLURAL:$1|modificare|modificări}}',
725787 'recentchanges' => 'Schimbări recente',
726788 'recentchangestext' => 'Schimbări recente ... (Log)',
727789 'rcnote' => 'Mai jos se află ultimele <strong>$1</strong> modificări din ultimele <strong>$2</strong> zile sau din <strong>$3</strong>.',
@@ -741,7 +803,6 @@
742804 'minoreditletter' => 'm',
743805 'newpageletter' => 'N',
744806 'boteditletter' => 'b',
745 -'sectionlink' => '→',
746807 'number_of_watching_users_pageview' => '[$1 utilizator/i care urmăresc]',
747808 'rc_categories' => 'Limitează la categoriile (separate prin "|")',
748809 'rc_categories_any' => 'Oricare',
@@ -781,6 +842,9 @@
782843 'minlength' => 'Numele imaginilor trebuie să aibă cel puţin trei litere.',
783844 'illegalfilename' => 'Numele fişierului "$1" conţine caractere care nu sunt permise în titlurile paginilor. Vă rugăm redenumiţi fişierul şi încercaţi să îl încărcaţi din nou.',
784845 'badfilename' => 'Numele imaginii a fost schimbat; noul nume este "[[:$1]]".',
 846+'filetype-badmime' => 'Nu este permisă încărcarea de fişiere de tipul MIME "$1".',
 847+'filetype-badtype' => "'''\".\$1\"''' este un tip de fişier neacceptat.
 848+: Lista tipurilor de fişiere permise: \$2",
785849 'filetype-missing' => 'Fişierul nu are extensie (precum ".jpg").',
786850 'large-file' => 'Este recomandat ca fişierele să nu fie mai mari de $1; acest fişier are $2.',
787851 'largefileserver' => 'Fişierul este mai mare decât este configurat serverul să permită.',
@@ -808,9 +872,10 @@
809873 'upload-file-error' => 'Eroare internă',
810874 'upload-misc-error' => 'Eroare de încărcare necunoscută',
811875
812 -'license' => 'Licenţiere',
813 -'nolicense' => 'Nici una selectată',
814 -'upload_source_url' => ' (un URL valid, accesibil public)',
 876+'license' => 'Licenţiere',
 877+'nolicense' => 'Nici una selectată',
 878+'upload_source_url' => ' (un URL valid, accesibil public)',
 879+'upload_source_file' => ' (un fişier de pe computerul tău)',
815880
816881 # Image list
817882 'imagelist' => 'Lista imaginilor',
@@ -864,7 +929,8 @@
865930 'unusedtemplateswlh' => 'alte legături',
866931
867932 # Random redirect
868 -'randomredirect' => 'Redirecţionare aleatorie',
 933+'randomredirect' => 'Redirecţionare aleatorie',
 934+'randomredirect-nopages' => 'Nu există redirecţionări în acest spaţiu de nume.',
869935
870936 # Statistics
871937 'statistics' => 'Statistici',
@@ -889,9 +955,15 @@
890956 'doubleredirects' => 'Redirecţionări duble',
891957 'doubleredirectstext' => '<b>Atenţie:</b> Această listă poate conţine articole care nu sunt în fapt duble rediriecţionări. Acest lucru înseamnă de obicei că există text adiţional sub primul #REDIRECT.<br />',
892958
893 -'brokenredirects' => 'Redirecţionări greşite',
894 -'brokenredirectstext' => 'Următoarele redirecţionări conduc spre articole inexistente.',
 959+'brokenredirects' => 'Redirecţionări greşite',
 960+'brokenredirectstext' => 'Următoarele redirecţionări conduc spre articole inexistente.',
 961+'brokenredirects-edit' => '(modifică)',
 962+'brokenredirects-delete' => '(şterge)',
895963
 964+'withoutinterwiki' => 'Pagini fără legături interwiki',
 965+
 966+'fewestrevisions' => 'Articole cu cele mai puţine revizii',
 967+
896968 # Miscellaneous special pages
897969 'nbytes' => '{{PLURAL:$1|un octet|$1 octeţi}}',
898970 'ncategories' => '{{PLURAL:$1|o categorie|$1 categorii}}',
@@ -918,6 +990,7 @@
919991 'allpages' => 'Toate paginile',
920992 'prefixindex' => 'Afişare articole începând de la',
921993 'randompage' => 'Pagină aleatorie',
 994+'randompage-nopages' => 'Nu există pagini în acest spaţiu de nume.',
922995 'shortpages' => 'Pagini scurte',
923996 'longpages' => 'Pagini lungi',
924997 'deadendpages' => 'Pagini fără legături',
@@ -940,7 +1013,8 @@
9411014 'unusedcategoriestext' => 'Următoarele categorii de pagini există şi totuşi nici un articol sau categorie nu le foloseşte.',
9421015
9431016 # Book sources
944 -'booksources' => 'Surse de cărţi',
 1017+'booksources' => 'Surse de cărţi',
 1018+'booksources-isbn' => 'ISBN:',
9451019
9461020 'categoriespagetext' => 'Următoarele categorii există în wiki.',
9471021 'data' => 'Data',
@@ -956,7 +1030,6 @@
9571031 'log' => 'Rapoarte',
9581032 'alllogstext' => 'Afişare combinată a încărcărilor, ştergerilor, protecţiilor, blocărilor şi a rapoartelor administratorilor. Puteţi limita vizualizarea selectând tipul raportului, numele de utilizator sau pagina afectată.',
9591033 'logempty' => 'Nici o înregistrare în raport.',
960 -'title-pattern' => 'Titlul începe cu …',
9611034
9621035 # Special:Allpages
9631036 'nextpage' => 'Pagina următoare ($1)',
@@ -971,7 +1044,8 @@
9721045 'allpagesprefix' => 'Afişează paginile cu prefix:',
9731046
9741047 # Special:Listusers
975 -'listusersfrom' => 'Afişează utilizatori începând cu:',
 1048+'listusersfrom' => 'Afişează utilizatori începând cu:',
 1049+'listusers-submit' => 'Arată',
9761050
9771051 # E-mail user
9781052 'mailnologin' => 'Nu există adresă de trimitere',
@@ -995,7 +1069,7 @@
9961070
9971071 # Watchlist
9981072 'watchlist' => 'Pagini urmărite',
999 -'mywatchlist' => 'Pagini urmărite',
 1073+'mywatchlist' => 'Pagini urmărite',
10001074 'watchlistfor' => "(pentru '''$1''')",
10011075 'nowatchlist' => 'Nu aţi ales să urmăriţi nici o pagină.',
10021076 'watchlistanontext' => 'Te rugăm să $1 pentru a vizualiza sau edita itemii de pe lista ta de urmărire.',
@@ -1038,14 +1112,16 @@
10391113 'watchlist-hide-minor' => 'Ascunde editările minore',
10401114 'wldone' => 'Terminat.',
10411115
1042 -'enotif_mailer' => 'Sistemul de notificare {{SITENAME}}',
1043 -'enotif_reset' => 'Marchează toate paginile vizitate.',
1044 -'enotif_newpagetext' => 'Aceasta este o pagină nouă.',
1045 -'changed' => 'modificat',
1046 -'created' => 'creat',
1047 -'enotif_subject' => 'Pagina $PAGETITLE de la {{SITENAME}} a fost $CHANGEDORCREATED de $PAGEEDITOR',
1048 -'enotif_lastvisited' => 'Vedeţi $1 pentru toate modificările de la ultima dvs. vizită.',
1049 -'enotif_body' => 'Domnule/Doamnă $WATCHINGUSERNAME,
 1116+'enotif_mailer' => 'Sistemul de notificare {{SITENAME}}',
 1117+'enotif_reset' => 'Marchează toate paginile vizitate.',
 1118+'enotif_newpagetext' => 'Aceasta este o pagină nouă.',
 1119+'enotif_impersonal_salutation' => '{{SITENAME}} utilizator',
 1120+'changed' => 'modificat',
 1121+'created' => 'creat',
 1122+'enotif_subject' => 'Pagina $PAGETITLE de la {{SITENAME}} a fost $CHANGEDORCREATED de $PAGEEDITOR',
 1123+'enotif_lastvisited' => 'Vedeţi $1 pentru toate modificările de la ultima dvs. vizită.',
 1124+'enotif_anon_editor' => 'utilizator anonim $1',
 1125+'enotif_body' => 'Domnule/Doamnă $WATCHINGUSERNAME,
10501126
10511127 pagina $PAGETITLE de la {{SITENAME}} a fost $CHANGEDORCREATED în $PAGEEDITDATE de $PAGEEDITOR, vedeţi la $PAGETITLE_URL versiunea curentă.
10521128
@@ -1081,8 +1157,8 @@
10821158 'confirmdeletetext' => 'Sunteţi pe cale să ştergeţi permanent o pagină sau imagine din baza de date, împreună cu istoria asociată acesteia. Vă rugăm să confirmaţi alegerea făcută de dvs., faptul că înţelegeţi consecinţele acestei acţiuni şi faptul că o faceţi în conformitate cu [[Project:Politica oficială|Proiect:Politica oficială]].',
10831159 'actioncomplete' => 'Acţiune finalizată',
10841160 'deletedtext' => 'Pagina "$1" a fost ştearsă. Vedeţi $2 pentru o listă a elementelor şterse recent.',
1085 -'deletedarticle' => '"[[$1]]" a fost şters',
1086 -'dellogpage' => 'Ştergere_log',
 1161+'deletedarticle' => 'a şters "[[$1]]"',
 1162+'dellogpage' => 'Raport ştergeri',
10871163 'dellogpagetext' => 'Mai jos se află lista celor mai recente elemente şterse. Toate datele/orele sunt listate în timp universal (UTC).
10881164 <ul>
10891165 </ul>',
@@ -1102,7 +1178,7 @@
11031179 'editcomment' => 'Comentariul de modificare a fost: "<i>$1</i>".', # only shown if there is an edit comment
11041180 'revertpage' => 'Reveniri la ultima modificare de către [[Special:Contributions/$2|$2]] ([[User talk:$2|discuţie]]); revenire la ultima versiune de către [[User:$1|$1]]',
11051181 'sessionfailure' => 'Se pare că este o problemă cu sesiunea de autentificare; această acţiune a fost oprită ca o precauţie împotriva hijack. Apăsaţi "back" şi reîncărcaţi pagina de unde aţi venit, apoi reîncercaţi.',
1106 -'protectlogpage' => 'Jurnal_protecţii',
 1182+'protectlogpage' => 'Raport protecţii',
11071183 'protectlogtext' => 'Mai jos se află lista de blocări/deblocări a paginilor. Vezi [[Project:Pagină protejată]] pentru mai multe informaţii.',
11081184 'protectedarticle' => 'a protejat "[[$1]]"',
11091185 'unprotectedarticle' => 'a deprotejat "[[$1]]"',
@@ -1111,22 +1187,28 @@
11121188 'confirmprotect' => 'Confirmă protejare',
11131189 'protectmoveonly' => 'Protejează doar de mutări',
11141190 'protectcomment' => 'Motiv pentru protejare',
 1191+'protectexpiry' => 'Expirare',
11151192 'unprotectsub' => '(Deprotejând "$1")',
1116 -'confirmunprotecttext' => 'Sunteţi sigur(ă) că doriţi deprotejarea paginii?',
1117 -'confirmunprotect' => 'Confirmă deprotejarea',
1118 -'unprotectcomment' => 'Motiv pentru deprotejare',
11191193 'protect-unchain' => 'Deblochează permisiunile de mutare',
11201194 'protect-text' => 'Poţi vizualiza sau modifica nivelul de protecţie pentru pagina <strong>$1</strong>. Asigură-te că acţionezi în conformitate cu [[Project:Pagină protejată|politica proiectului]].',
1121 -'protect-viewtext' => 'Contul dumneavoastră nu are permisiunile necesare modificării nivelului de protecţie al paginii. Puteţi vizualiza setările curente pentru pagina <strong>$1</strong>:',
11221195 'protect-default' => '(standard)',
11231196 'protect-level-autoconfirmed' => 'Blochează utilizatorii neînregistraţi',
11241197 'protect-level-sysop' => 'Numai administratorii',
1125 -'protect-cascade' => 'Protejare în cascadă (toate paginile incluse în această pagină vor fi protejate)',
 1198+'protect-summary-cascade' => 'în cascadă',
 1199+'protect-expiring' => 'expiră $1 (UTC)',
 1200+'protect-cascade' => 'Protejare în cascadă - toate paginile incluse în această pagină vor fi protejate.',
 1201+'restriction-type' => 'Permisiune:',
 1202+'pagesize' => '(octeţi)',
11261203
11271204 # Restrictions (nouns)
11281205 'restriction-edit' => 'Editează',
11291206 'restriction-move' => 'Mută',
11301207
 1208+# Restriction levels
 1209+'restriction-level-sysop' => 'protejat complet',
 1210+'restriction-level-autoconfirmed' => 'semi-protejat',
 1211+'restriction-level-all' => 'orice nivel',
 1212+
11311213 # Undelete
11321214 'undelete' => 'Recuperează pagina ştearsă',
11331215 'undeletepage' => 'Vizualizează şi recuperează pagini şterse',
@@ -1136,6 +1218,7 @@
11371219 'undeleterevisions' => '$1 versiuni arhivate',
11381220 'undeletehistory' => 'Dacă recuperaţi pagina, toate versiunile asociate vor fi adăugate retroactiv în istorie. Dacă o pagină nouă cu acelaşi nume a fost creată de la momentul ştergerii acesteia, versiunile recuperate vor apărea în istoria paginii, iar versiunea curentă a paginii nu va fi înlocuită automat de către versiunea recuperată.',
11391221 'undeletehistorynoadmin' => 'Acest articol a fost şters. Motivul ştergerii apare mai jos, alături de detaliile utilzatorilor care au editat această pagină înainte de ştergere. Textul prorpiu-zis al reviziilor şterse este disponibil doar administratorilor.',
 1222+'undelete-revision' => 'Şters revizia $1 din $2:',
11401223 'undeletebtn' => 'Recuperează',
11411224 'undeletereset' => 'Resetează',
11421225 'undeletecomment' => 'Comentariu:',
@@ -1147,6 +1230,9 @@
11481231 'undeletedpage' => "<big>'''$1 a fost recuperat'''</big>
11491232
11501233 Consultaţi [[Special:Log/delete|raportul ştergerilor]] pentru a vedea toate ştergerile şi recuperările recente.",
 1234+'undelete-search-box' => 'Caută pagini şterse',
 1235+'undelete-search-prefix' => 'Arată paginile care încep cu:',
 1236+'undelete-search-submit' => 'Caută',
11511237
11521238 # Namespace form on various pages
11531239 'namespace' => 'Spaţiul:',
@@ -1155,7 +1241,7 @@
11561242 # Contributions
11571243 'contributions' => 'Contribuţii ale utilizatorului',
11581244 'mycontris' => 'Contribuţii',
1159 -'contribsub2' => 'Pentru $1 ($2)',
 1245+'contribsub2' => 'Pentru $1 ($2)',
11601246 'nocontribs' => 'Nu a fost găsită nici o modificare care să satisfacă acest criteriu.',
11611247 'ucnote' => 'Mai jos se află ultimele <b>$1</b> modificări ale utilizatorului din ultimele <b>$2</b> zile.',
11621248 'uclinks' => 'Vezi ultimele $1 modificări; vezi ultimele $2 zile.',
@@ -1166,18 +1252,23 @@
11671253 'sp-contributions-newer' => 'Următoarele $1',
11681254 'sp-contributions-older' => 'Anterioarele $1',
11691255 'sp-contributions-newbies-sub' => 'Pentru începători',
 1256+'sp-contributions-blocklog' => 'Raport blocări',
 1257+'sp-contributions-search' => 'Caută contribuţii',
 1258+'sp-contributions-username' => 'Adresă IP sau nume de utilizator:',
 1259+'sp-contributions-submit' => 'Caută',
11701260
11711261 'sp-newimages-showfrom' => 'Arată imaginile noi începând cu $1',
11721262
11731263 # What links here
1174 -'whatlinkshere' => 'Ce se leagă aici',
1175 -'notargettitle' => 'Lipsă ţintă',
1176 -'notargettext' => 'Nu ai specificat nici o pagină sau un utilizator ţintă pentru care să se efectueze această operaţiune.',
1177 -'linklistsub' => '(Lista de legături)',
1178 -'linkshere' => 'Următoarele pagini conţin legături către aceasta:',
1179 -'nolinkshere' => 'Nici o pagină nu se leagă aici.',
1180 -'isredirect' => 'pagină de redirecţionare',
1181 -'istemplate' => 'prin includerea formatului',
 1264+'whatlinkshere' => 'Ce se leagă aici',
 1265+'notargettitle' => 'Lipsă ţintă',
 1266+'notargettext' => 'Nu ai specificat nici o pagină sau un utilizator ţintă pentru care să se efectueze această operaţiune.',
 1267+'linklistsub' => '(Lista de legături)',
 1268+'linkshere' => 'Următoarele pagini conţin legături către aceasta:',
 1269+'nolinkshere' => 'Nici o pagină nu se leagă aici.',
 1270+'nolinkshere-ns' => "Nici o pagină din spaţiul de nume ales nu se leagă la '''[[:$1]]'''.",
 1271+'isredirect' => 'pagină de redirecţionare',
 1272+'istemplate' => 'prin includerea formatului',
11821273
11831274 # Block/unblock
11841275 'blockip' => 'Blochează utilizator / IP',
@@ -1188,6 +1279,15 @@
11891280 'ipadressorusername' => 'Adresă IP sau nume de utilizator',
11901281 'ipbexpiry' => 'Expiră',
11911282 'ipbreason' => 'Motiv',
 1283+'ipbreasonotherlist' => 'Alt motiv',
 1284+'ipbreason-dropdown' => '*Motivele cele mai frecvente
 1285+** Introducere de informaţii false
 1286+** Ştergere conţinut fără explicaţii
 1287+** Introducere de legături externe de publicitate (spam)
 1288+** Creare pagini fără sens
 1289+** Tentative de intimidare
 1290+** Abuz utilizare conturi multiple
 1291+** Nume de utilizator inacceptabil',
11921292 'ipbanononly' => 'Blochează doar utilizatorii anonimi',
11931293 'ipbcreateaccount' => 'Nu permite crearea de conturi',
11941294 'ipbenableautoblock' => 'Blochează automat ultima adresă IP folosită de acest utilizator şi toate adresele de la care încearcă să editeze în viitor',
@@ -1195,6 +1295,7 @@
11961296 'ipbother' => 'Alt termen',
11971297 'ipboptions' => '15 minute:15 minutes,1 oră:1 hour,3 ore:3 hours,24 ore:24 hours,48 ore:48 hours,1 săptămână:1 week,1 lună:1 month,nelimitat:infinite',
11981298 'ipbotheroption' => 'altul',
 1299+'ipbotherreason' => 'Alt motiv sau suplimentar:',
11991300 'badipaddress' => 'Adresa IP este invalidă.',
12001301 'blockipsuccesssub' => 'Utilizatorul a fost blocat',
12011302 'blockipsuccesstext' => 'Adresa IP "$1" a fost blocată.
@@ -1209,26 +1310,26 @@
12101311 'ipusubmit' => 'Deblochează adresa',
12111312 'unblocked' => '[[User:$1|$1]] a fost deblocat',
12121313 'ipblocklist' => 'Lista de adrese IP şi conturi blocate',
 1314+'ipblocklist-submit' => 'Caută',
12131315 'blocklistline' => '$1, $2 a blocat $3 ($4)',
12141316 'infiniteblock' => 'termen nelimitat',
12151317 'expiringblock' => 'expiră la $1',
12161318 'anononlyblock' => 'doar anonimi',
12171319 'noautoblockblock' => 'autoblocare dezactivată',
12181320 'createaccountblock' => 'crearea de conturi blocată',
1219 -'ipblocklistempty' => 'Lista de blocări este goală.',
12201321 'blocklink' => 'blochează',
12211322 'unblocklink' => 'deblochează',
12221323 'contribslink' => 'contribuţii',
12231324 'autoblocker' => 'Autoblocat fiindcă foloseşti aceeaşi [[Adresă IP|adresă IP]] ca şi "$1". Motivul este "$2".',
1224 -'blocklogpage' => 'Jurnal_blocări',
 1325+'blocklogpage' => 'Raport blocări',
12251326 'blocklogentry' => 'a blocat "[[$1]]" pe o perioadă de $2',
1226 -'blocklogtext' => 'Acesta este un jurnal al acţiunilor de blocare şi deblocare.
 1327+'blocklogtext' => 'Acesta este un raport al acţiunilor de blocare şi deblocare.
12271328 [[Adresă IP|Adresele IP]] blocate automat nu sunt afişate.
12281329 Vizitaţi [[Special:Ipblocklist|lista de adrese blocate]] pentru o listă explicită a adreselor blocate în acest moment.',
12291330 'unblocklogentry' => 'a deblocat $1',
12301331 'block-log-flags-anononly' => 'doar utilizatorii anonimi',
12311332 'block-log-flags-nocreate' => 'creare de conturi dezactivată',
1232 -'block-log-flags-autoblock' => 'autoblocare activată',
 1333+'block-log-flags-noautoblock' => 'autoblocare dezactivată',
12331334 'range_block_disabled' => 'Abilitatea dezvoltatorilor de a bloca serii de adrese este dezactivată.',
12341335 'ipb_expiry_invalid' => 'Dată de expirare invalidă.',
12351336 'ipb_already_blocked' => '"$1" este deja blocat',
@@ -1305,8 +1406,8 @@
13061407 'movetalk' => 'Mută şi pagina de "discuţii" dacă se poate.',
13071408 'talkpagemoved' => 'Şi pagina de discuţii asociată a fost mutată.',
13081409 'talkpagenotmoved' => 'Pagina asociată de discuţii <strong>nu</strong> a fost mutată.',
1309 -'1movedto2' => '[[$1]] a fost mutată la [[$2]]',
1310 -'1movedto2_redir' => '[[$1]] a fost mutată la [[$2]] prin redirect',
 1410+'1movedto2' => 'a mutat [[$1]] la [[$2]]',
 1411+'1movedto2_redir' => 'a mutat [[$1]] la [[$2]] prin redirect',
13111412 'movelogpage' => 'Raport mutări',
13121413 'movelogpagetext' => 'Mai jos se află o listă cu paginile mutate.',
13131414 'movereason' => 'Motiv',
@@ -1321,11 +1422,13 @@
13221423 'immobile_namespace' => 'Titlul destinaţiei este al unui tip special; nu se pot muta pagini în acel spaţiu de nume.',
13231424
13241425 # Export
1325 -'export' => 'Exportă pagini',
1326 -'exporttext' => 'Poţi exporta textul şi istoria unei pagini anume sau ale unui grup de pagini în XML. Acesta poate fi apoi importat în alt Wiki care rulează software MediaWiki, poate fi transformat sau păstrat pur şi simplu fiindcă doreşti tu să-l păstrezi.',
1327 -'exportcuronly' => 'Include numai versiunea curentă, nu şi toată istoria',
1328 -'exportnohistory' => "---- '''Notă:''' exportarea versiunii complete a paginilor prin acest formular a fost scoasă din uz din motive de performanţă.",
1329 -'export-submit' => 'Exportă',
 1426+'export' => 'Exportă pagini',
 1427+'exporttext' => 'Poţi exporta textul şi istoria unei pagini anume sau ale unui grup de pagini în XML. Acesta poate fi apoi importat în alt Wiki care rulează software MediaWiki, poate fi transformat sau păstrat pur şi simplu fiindcă doreşti tu să-l păstrezi.',
 1428+'exportcuronly' => 'Include numai versiunea curentă, nu şi toată istoria',
 1429+'exportnohistory' => "---- '''Notă:''' exportarea versiunii complete a paginilor prin acest formular a fost scoasă din uz din motive de performanţă.",
 1430+'export-submit' => 'Exportă',
 1431+'export-addcattext' => 'Adaugă pagini din categoria:',
 1432+'export-addcat' => 'Adaugă',
13301433
13311434 # Namespace 8 related
13321435 'allmessages' => 'Toate mesajele',
@@ -1481,15 +1584,21 @@
14821585 'mw_math_mathml' => 'MathML dacă este posibil (experimental)',
14831586
14841587 # Patrolling
1485 -'markaspatrolleddiff' => 'Marchează ca patrulat',
1486 -'markaspatrolledtext' => 'Marchează acest articol ca patrulat',
1487 -'markedaspatrolled' => 'A fost marcat ca patrulat',
1488 -'markedaspatrolledtext' => 'Modificarea selectată a fost marcată ca patrulată.',
1489 -'rcpatroldisabled' => 'Opţiunea de patrulare a modificărilor recente este dezactivată',
1490 -'rcpatroldisabledtext' => 'Patrularea modificărilor recente este în prezent dezactivată.',
1491 -'markedaspatrollederror' => 'Nu se poate marca ca patrulat',
1492 -'markedaspatrollederrortext' => 'Trebuie să specificaţi o revizie care să fie marcată ca patrulată.',
 1588+'markaspatrolleddiff' => 'Marchează ca patrulat',
 1589+'markaspatrolledtext' => 'Marchează acest articol ca patrulat',
 1590+'markedaspatrolled' => 'A fost marcat ca patrulat',
 1591+'markedaspatrolledtext' => 'Modificarea selectată a fost marcată ca patrulată.',
 1592+'rcpatroldisabled' => 'Opţiunea de patrulare a modificărilor recente este dezactivată',
 1593+'rcpatroldisabledtext' => 'Patrularea modificărilor recente este în prezent dezactivată.',
 1594+'markedaspatrollederror' => 'Nu se poate marca ca patrulat',
 1595+'markedaspatrollederrortext' => 'Trebuie să specificaţi o revizie care să fie marcată ca patrulată.',
 1596+'markedaspatrollederror-noautopatrol' => 'Nu puteţi marca propriile modificări ca patrulate.',
14931597
 1598+# Patrol log
 1599+'patrol-log-page' => 'Raport patrulări',
 1600+'patrol-log-auto' => '(automat)',
 1601+'patrol-log-diff' => 'r$1',
 1602+
14941603 # Image deletion
14951604 'deletedrevision' => 'A fost ştearsă vechea revizie $1.',
14961605
@@ -1498,9 +1607,15 @@
14991608 'nextdiff' => 'Diferenţa următoare →',
15001609
15011610 # Media information
1502 -'mediawarning' => "'''Atenţie''': Acest fişier poate conţine cod maliţios, executându-l, sistemul dvs. poate fi compromis.<hr />",
1503 -'imagemaxsize' => 'Limitează imaginile pe paginile de descriere la:',
1504 -'thumbsize' => 'Mărime thumbnail:',
 1611+'mediawarning' => "'''Atenţie''': Acest fişier poate conţine cod maliţios, executându-l, sistemul dvs. poate fi compromis.<hr />",
 1612+'imagemaxsize' => 'Limitează imaginile pe paginile de descriere la:',
 1613+'thumbsize' => 'Mărime thumbnail:',
 1614+'widthheight' => '$1x$2',
 1615+'file-info' => '(mărime fişier: $1, tip MIME: $2)',
 1616+'file-info-size' => '($1 × $2 pixeli, mărime fişier: $3, tip MIME: $4)',
 1617+'file-nohires' => '<small>Rezoluţii mai mari nu sunt disponibile.</small>',
 1618+'show-big-image' => 'Măreşte rezoluţia imaginii',
 1619+'show-big-image-thumb' => '<small>Mărimea acestei previzualizări: $1 × $2 pixeli</small>',
15051620
15061621 'newimages' => 'Galeria de imagini noi',
15071622 'showhidebots' => '($1 roboţi)',
@@ -1844,8 +1959,6 @@
18451960 Vă rugăm să confirmaţi faptul că într-adevăr doriţi să recreaţi acest articol.",
18461961 'recreate' => 'Recreează',
18471962
1848 -'unit-pixel' => 'px',
1849 -
18501963 # HTML dump
18511964 'redirectingto' => 'Redirecţionând la [[$1]]...',
18521965
@@ -1880,9 +1993,14 @@
18811994
18821995 # Auto-summaries
18831996 'autosumm-blank' => 'Şters conţinutul paginii',
 1997+'autosumm-replace' => "Înlocuit pagina cu '$1'",
18841998 'autoredircomment' => 'Redirecţionat înspre [[$1]]', # This should be changed to the new naming convention, but existed beforehand
18851999 'autosumm-new' => 'Pagină nouă: $1',
18862000
 2001+# Live preview
 2002+'livepreview-loading' => 'Încărcare…',
 2003+'livepreview-ready' => 'Încărcare… Gata!',
 2004+
18872005 );
18882006
18892007 ?>
Index: branches/liquidthreads/languages/messages/MessagesEn.php
@@ -342,7 +342,7 @@
343343 'padleft' => array( 0, 'PADLEFT' ),
344344 'padright' => array( 0, 'PADRIGHT' ),
345345 'special' => array( 0, 'special', ),
346 - 'defaultsort' => array( 1, 'DEFAULTSORT:' ),
 346+ 'defaultsort' => array( 1, 'DEFAULTSORT:', 'DEFAULTSORTKEY:', 'DEFAULTCATEGORYSORT:' ),
347347 );
348348
349349 /**
@@ -374,7 +374,7 @@
375375 'Uncategorizedimages' => array( 'Uncategorizedimages' ),
376376 'Unusedcategories' => array( 'Unusedcategories' ),
377377 'Unusedimages' => array( 'Unusedimages' ),
378 - 'Wantedpages' => array( 'Wantedpages' ),
 378+ 'Wantedpages' => array( 'Wantedpages', 'Brokenlinks' ),
379379 'Wantedcategories' => array( 'Wantedcategories' ),
380380 'Mostlinked' => array( 'Mostlinked' ),
381381 'Mostlinkedcategories' => array( 'Mostlinkedcategories' ),
@@ -943,7 +943,8 @@
944944
945945 You can contact $1 or another [[{{MediaWiki:grouppage-sysop}}|administrator]] to discuss the block.
946946 You cannot use the 'email this user' feature unless a valid email address is specified in your
947 -[[Special:Preferences|account preferences]]. Your current IP address is $3, and the block ID is #$5. Please include either or both of these in any queries.",
 947+[[Special:Preferences|account preferences]] and you have not been blocked from using it.
 948+Your current IP address is $3, and the block ID is #$5. Please include either or both of these in any queries.",
948949 'autoblockedtext' => 'Your IP address has been automatically blocked because it was used by another user, who was blocked by $1.
949950 The reason given is this:
950951
@@ -954,7 +955,8 @@
955956 You may contact $1 or one of the other
956957 [[{{MediaWiki:grouppage-sysop}}|administrators]] to discuss the block.
957958
958 -Note that you may not use the "e-mail this user" feature unless you have a valid e-mail address registered in your [[Special:Preferences|user preferences]].
 959+Note that you may not use the "e-mail this user" feature unless you have a valid e-mail address
 960+registered in your [[Special:Preferences|user preferences]] and you have not been blocked from using it.
959961
960962 Your block ID is $5. Please include this ID in any queries you make.',
961963 'blockedoriginalsource' => "The source of '''$1''' is shown below:",
@@ -1971,6 +1973,7 @@
19721974 ** Unacceptable username',
19731975 'ipbanononly' => 'Block anonymous users only',
19741976 'ipbcreateaccount' => 'Prevent account creation',
 1977+'ipbemailban' => 'Prevent user from sending e-mail',
19751978 'ipbenableautoblock' => 'Automatically block the last IP address used by this user, and any subsequent IPs they try to edit from',
19761979 'ipbsubmit' => 'Block this user',
19771980 'ipbother' => 'Other time:',
@@ -2002,6 +2005,7 @@
20032006 'anononlyblock' => 'anon. only',
20042007 'noautoblockblock' => 'autoblock disabled',
20052008 'createaccountblock' => 'account creation blocked',
 2009+'emailblock' => 'e-mail blocked',
20062010 'ipblocklist-empty' => 'The blocklist is empty.',
20072011 'ipblocklist-no-results' => 'The requested IP address or username is not blocked.',
20082012 'blocklink' => 'block',
@@ -2017,6 +2021,7 @@
20182022 'block-log-flags-anononly' => 'anonymous users only',
20192023 'block-log-flags-nocreate' => 'account creation disabled',
20202024 'block-log-flags-noautoblock' => 'autoblock disabled',
 2025+'block-log-flags-noemail' => 'e-mail blocked',
20212026 'range_block_disabled' => 'The sysop ability to create range blocks is disabled.',
20222027 'ipb_expiry_invalid' => 'Expiry time invalid.',
20232028 'ipb_already_blocked' => '"$1" is already blocked',
Index: branches/liquidthreads/languages/messages/MessagesFi.php
@@ -72,7 +72,7 @@
7373 );
7474
7575 $magicWords = array(
76 - 'redirect' => array( 0, "#UUDELLEENOHJAUS", "#REDIRECT" ),
 76+ 'redirect' => array( 0, "#OHJAUS", "#UUDELLEENOHJAUS", "#REDIRECT" ),
7777 'toc' => array( 0, "__SISÄLLYSLUETTELO__", "__TOC__" ),
7878 'img_right' => array( 1, "oikea", "right" ),
7979 'img_left' => array( 1, "vasen", "left" ),
@@ -107,6 +107,7 @@
108108 'Wantedcategories' => array( 'Halutuimmat_luokat' ),
109109 'Mostlinked' => array( 'Viitatuimmat_sivut' ),
110110 'Mostlinkedcategories' => array( 'Viitatuimmat_luokat' ),
 111+ 'Mostlinkedtemplates' => array( 'Viitatuimmat_mallineet' ),
111112 'Mostcategories' => array( 'Luokitelluimmat_sivut' ),
112113 'Mostimages' => array( 'Viitatuimmat_kuvat' ),
113114 'Mostrevisions' => array( 'Muokatuimmat_sivut' ),
@@ -262,7 +263,7 @@
263264 'pagecategories' => '{{PLURAL:$1|Luokka|Luokat}}',
264265 'category_header' => 'Sivut, jotka ovat luokassa $1',
265266 'subcategories' => 'Alaluokat',
266 -'category-media-header' => 'Luokan ”$1” sisältämät mediatiedostot',
 267+'category-media-header' => 'Luokan ”$1” sisältämät tiedostot',
267268
268269 'mainpagetext' => "'''Mediawiki on onnistuneesti asennettu.'''",
269270 'mainpagedocfooter' => "Lisätietoja käytöstä on sivulla [http://meta.wikimedia.org/wiki/MediaWiki_User%27s_Guide User's Guide].
@@ -582,8 +583,10 @@
583584 'blockedtitle' => 'Pääsy estetty',
584585 'blockedtext' => "<strong>Käyttäjätunnuksesi tai IP-osoitteesi on estetty.</strong>
585586
586 -Ylläpitäjä $1 on poistanut '''muokkausoikeutesi''' '''$6''' asti. Annettu syy estolle on ''$2''.
 587+Ylläpitäjä $1 on poistanut '''muokkausoikeutesi''' ''$6'' asti estolla, jonka kohde on $7.
587588
 589+Eston syyksi on annettu ''$2''.
 590+
588591 Jos olet sitä mieltä, että sinut on estetty syyttä, voit keskustella asiasta [[{{MediaWiki:grouppage-sysop}}|ylläpitäjän]] kanssa. Huomaa, ettet voi lähettää sähköpostia {{GRAMMAR:genitive|{{SITENAME}}}} kautta, ellet ole asettanut olemassa olevaa sähköpostiosoitetta [[Special:Preferences|asetuksissa]]. Jos IP-osoitteesi on dynaaminen, eli se voi toisinaan vaihtua, olet saattanut saada estetyn osoitteen käyttöösi, ja esto vaikuttaa nyt sinuun. IP-osoitteesi on $3 ja estotunnus on #$5. Liitä ne kyselyihisi.",
589592 'autoblockedtext' => "IP-osoitteesti on estetty automaattisesti, koska sitä on käyttänyt toinen käyttäjä, jonka on estänyt ylläpitäjä $1.
590593 Eston syy on:
@@ -644,7 +647,7 @@
645648 'explainconflict' => "Joku muu on muuttanut tätä sivua sen jälkeen, kun aloit muokata sitä. Ylempi tekstialue sisältää tämänhetkisen tekstin. Tekemäsi muutokset näkyvät alemmassa ikkunassa. Sinun täytyy yhdistää muutoksesi olemassa olevaan tekstiin. '''Vain''' ylemmässä alueessa oleva teksti tallentuu, kun tallennat sivun.",
646649 'yourtext' => 'Oma tekstisi',
647650 'storedversion' => 'Tallennettu versio',
648 -'nonunicodebrowser' => "'''Varoitus: Selaimesi ei ole Unicode-yhteensopiva. Ole hyvä ja vaihda selainta, ennen kuin muokkaat sivua.'''",
 651+'nonunicodebrowser' => "'''Selaimesi ei ole Unicode-yhteensopiva. Ole hyvä ja vaihda selainta, ennen kuin muokkaat sivua.'''",
649652 'editingold' => '<center><strong>Varoitus</strong>: Olet muokkaamassa vanhaa versiota tämän sivun tekstistä. Jos tallennat sen, kaikki tämän version jälkeen tehdyt muutokset katoavat.</center>',
650653 'yourdiff' => 'Eroavaisuudet',
651654 'copyrightwarning' => '<strong>Muutoksesi astuvat voimaan välittömästi.</strong> Kaikki {{GRAMMAR:illative|{{SITENAME}}}} tehtävät tuotokset katsotaan julkaistuksi $2 -lisenssin mukaisesti ($1). Jos et halua, että kirjoitustasi muokataan armottomasti ja uudelleenkäytetään vapaasti, älä tallenna kirjoitustasi. Tallentamalla muutoksesi lupaat, että kirjoitit tekstisi itse, tai kopioit sen jostain vapaasta lähteestä. <strong>ÄLÄ KÄYTÄ TEKIJÄNOIKEUDEN ALAISTA MATERIAALIA ILMAN LUPAA!</strong>',
@@ -663,7 +666,11 @@
664667 'edittools' => '<!-- Tässä oleva teksi näytetään muokkauskentän alla. -->',
665668 'nocreatetitle' => 'Sivujen luominen on rajoitettu',
666669 'nocreatetext' => 'Et voi luoda uusia sivuja. Voit muokata olemassa olevia sivuja tai luoda [[Special:Userlogin|käyttäjätunnuksen]].',
 670+'recreate-deleted-warn' => "'''Olet luomassa sivua, joka on aikaisemmin poistettu.'''
667671
 672+Harkitse, kannattaako sivua luoda uudelleen. Alla on tämän sivun poistohistoria:",
 673+'recreate-deleted-dismiss' => '(piilota)',
 674+
668675 # "Undo" feature
669676 'undo-success' => 'Kumoaminen onnistui. Valitse <em>tallenna</em> toteuttaaksesi muutokset.',
670677 'undo-failure' => 'Muokkausta ei voitu kumota välissä olevien ristiriistaisten muutosten vuoksi. Kumoa muutokset käsin.',
@@ -826,7 +833,7 @@
827834 'resultsperpage' => 'Tuloksia sivua kohti',
828835 'contextlines' => 'Rivien määrä tulosta kohti',
829836 'contextchars' => 'Sisällön merkkien määrä riviä kohden',
830 -'stubthreshold' => 'Tynkäsivun osoituskynnys',
 837+'stub-threshold' => '<a href="#" class="stub">Tynkäsivun</a> osoituskynnys',
831838 'recentchangesdays' => 'Näytettävien päivien määrä tuoreissa muutoksissa',
832839 'recentchangescount' => 'Sivujen määrä tuoreissa muutoksissa',
833840 'savedprefs' => 'Asetuksesi tallennettiin onnistuneesti.',
@@ -878,7 +885,7 @@
879886 'recentchanges' => 'Tuoreet muutokset',
880887 'recentchangestext' => 'Tällä sivulla voi seurata tuoreita {{GRAMMAR:illative|{{SITENAME}}}} tehtyjä muutoksia.',
881888 'recentchanges-feed-description' => 'Tällä sivulla voi seurata tuoreita {{GRAMMAR:illative|{{SITENAME}}}} tehtyjä muutoksia.',
882 -'rcnote' => 'Alla on {{PLURAL:$1|yksi muutos|$1 tuoreinta muutosta}} {{PLURAL:$2|viimeisen päivän|$2 viimepäivän}} ajalta $3 asti.',
 889+'rcnote' => 'Alla on {{PLURAL:$1|yksi muutos|$1 tuoreinta muutosta}} {{PLURAL:$2|yhden päivän|$2 viime päivän}} ajalta $3 asti.',
883890 'rcnotefrom' => 'Alla on muutokset <b>$2</b> lähtien. Enintään <b>$1</b> merkintää näytetään.',
884891 'rclistfrom' => 'Näytä uudet muutokset $1 alkaen',
885892 'rcshowhideminor' => '$1 pienet muutokset',
@@ -960,9 +967,9 @@
961968 'fileuploaded' => "Tiedosto '''$1''' on tallennettu onnistuneesti. Seuraa linkkiä ($2) kuvaussivulle, ja täytä tiedostoon liityvät tiedot, kuten mistä se on peräisin, milloin se on luotu, kuka sen loi ja mahdollisesti muita tietämiäsi tietoja. Jos tiedosto on kuva, voit lisätä sen sivulle näin: '''<nowiki>[[</nowiki>{{ns:image}}:$1|thumb|Kuvaus]]'''",
962969 'uploadwarning' => 'Tallennusvaroitus',
963970 'savefile' => 'Tallenna',
964 -'uploadedimage' => 'lisäsi tiedoston [[$1]]',
 971+'uploadedimage' => 'tallensi tiedoston [[$1]]',
965972 'uploaddisabled' => '{{GRAMMAR:genitive|{{SITENAME}}}} ei voi lisätä tiedostoja.',
966 -'uploaddisabledtext' => 'Tiedostojen lisäys on poistettu käytöstä.',
 973+'uploaddisabledtext' => 'Tiedostojen tallennus on poistettu käytöstä.',
967974 'uploadscripted' => 'Tämä tiedosto sisältää HTML-koodia tai skriptejä, jotka selain saattaa virheellisesti suorittaa.',
968975 'uploadcorrupt' => 'Tiedosto on vioittunut tai sillä on väärä tiedostopääte. Tarkista tiedosto ja lähetä se uudelleen.',
969976 'uploadvirus' => 'Tiedosto sisältää viruksen. Tarkemmat tiedot: $1',
@@ -1096,6 +1103,7 @@
10971104 'wantedpages' => 'Halutut sivut',
10981105 'mostlinked' => 'Viitatuimmat sivut',
10991106 'mostlinkedcategories' => 'Viitatuimmat luokat',
 1107+'mostlinkedtemplates' => 'Viitatuimmat mallineet',
11001108 'mostcategories' => 'Luokitelluimmat sivut',
11011109 'mostimages' => 'Viitatuimmat kuvat',
11021110 'mostrevisions' => 'Muokatuimmat sivut',
@@ -1280,7 +1288,7 @@
12811289 'exblank' => 'oli tyhjä',
12821290 'confirmdelete' => 'Vahvista poisto',
12831291 'deletesub' => 'Sivun $1 poisto',
1284 -'historywarning' => 'Varoitus: Sivulla, jonka aiot poistaa on muokkaushistoria:',
 1292+'historywarning' => 'Sivua, jonka aiot poistaa on muokattu useammin kuin kerran:',
12851293 'confirmdeletetext' => 'Olet poistamassa sivun tai tiedoston ja kaiken sen historian. Ymmärrä teon seuraukset ja tee poisto {{GRAMMAR:genitive|{{SITENAME}}}} [[{{MediaWiki:policy-url}}|käytäntöjen]] mukaisesti.',
12861294 'actioncomplete' => 'Toiminto suoritettu',
12871295 'deletedtext' => "'''[[Special:Undelete/$1|$1]]''' on poistettu. Sivulla $2 on lista viimeaikaisista poistoista.",
@@ -1313,9 +1321,6 @@
13141322 'protect_expiry_invalid' => 'Vanhenemisaika ei kelpaa.',
13151323 'protect_expiry_old' => 'Vanhenemisaika on menneisyydessä.',
13161324 'unprotectsub' => 'Suojauksen poisto sivulta $1',
1317 -'confirmunprotecttext' => 'Haluatko varmasti poistaa tämän sivun suojauksen?',
1318 -'confirmunprotect' => 'Vahvista suojauksen poisto',
1319 -'unprotectcomment' => 'Syy suojauksen poistoon',
13201325 'protect-unchain' => 'Käytä siirtosuojausta',
13211326 'protect-text' => 'Voit katsoa ja muuttaa sivun ”<strong>$1</strong>” suojauksia.',
13221327 'protect-locked-blocked' => 'Et voi muuttaa sivun suojauksia, koska sinut on estetty. Alla on sivun ”<strong>$1</strong>” nykyiset suojaukset:',
@@ -1399,17 +1404,18 @@
14001405 'sp-newimages-showfrom' => 'Näytä uudet kuvat alkaen $1',
14011406
14021407 # What links here
1403 -'whatlinkshere' => 'Tänne viittaavat sivut',
1404 -'notargettitle' => 'Ei kohdetta',
1405 -'notargettext' => 'Et ole määritellyt kohdesivua tai -käyttäjää johon toiminto kohdistuu.',
1406 -'linklistsub' => 'Lista linkeistä',
1407 -'linkshere' => 'Seuraavilta sivuilta on linkki sivulle <strong>[[:$1]]</strong>:',
1408 -'nolinkshere' => 'Sivulle <strong>[[:$1]]</strong> ei ole linkkejä.',
1409 -'nolinkshere-ns' => 'Sivulle <strong>[[:$1]]</strong> ei ole linkkejä valitussa nimiavaruudessa.',
1410 -'isredirect' => 'uudelleenohjaussivu',
1411 -'istemplate' => 'sisällytetty mallineeseen',
1412 -'whatlinkshere-prev' => '← {{PLURAL:$1|edellinen sivu|$1 edellistä sivua}}',
1413 -'whatlinkshere-next' => '{{PLURAL:$1|seuraava sivu|$1 seuraavaa sivua}} →',
 1408+'whatlinkshere' => 'Tänne viittaavat sivut',
 1409+'notargettitle' => 'Ei kohdetta',
 1410+'notargettext' => 'Et ole määritellyt kohdesivua tai -käyttäjää johon toiminto kohdistuu.',
 1411+'linklistsub' => 'Lista linkeistä',
 1412+'linkshere' => 'Seuraavilta sivuilta on linkki sivulle <strong>[[:$1]]</strong>:',
 1413+'nolinkshere' => 'Sivulle <strong>[[:$1]]</strong> ei ole linkkejä.',
 1414+'nolinkshere-ns' => 'Sivulle <strong>[[:$1]]</strong> ei ole linkkejä valitussa nimiavaruudessa.',
 1415+'isredirect' => 'uudelleenohjaussivu',
 1416+'istemplate' => 'sisällytetty mallineeseen',
 1417+'whatlinkshere-prev' => '← {{PLURAL:$1|edellinen sivu|$1 edellistä sivua}}',
 1418+'whatlinkshere-next' => '{{PLURAL:$1|seuraava sivu|$1 seuraavaa sivua}} →',
 1419+'whatlinkshere-links' => 'viittaukset',
14141420
14151421 # Block/unblock
14161422 'blockip' => 'Aseta muokkausesto',
@@ -2164,6 +2170,11 @@
21652171 'lag-warn-normal' => 'Muutokset, jotka ovat uudempia kuin $1 sekuntia, eivät välttämättä näy tällä sivulla.',
21662172 'lag-warn-high' => 'Tietokannoilla on työjonoa. Muutokset, jotka ovat uudempia kuin $1 sekuntia, eivät välttämättä näy tällä sivulla.',
21672173
 2174+# Unknown messages
 2175+'block-log-flags-noemail' => 'sähköpostin lähettäminen estetty',
 2176+'emailblock' => 'sähköpostin lähettäminen estetty',
 2177+'ipbemailban' => 'Estä käyttäjää lähettämästä sähköpostia',
 2178+
21682179 );
21692180
21702181 ?>
Index: branches/liquidthreads/RELEASE-NOTES
@@ -64,6 +64,16 @@
6565 * Show result of Special:Booksources in wiki content language always, it's
6666 normally better maintained than the generic list from the standard message
6767 files
 68+* (bug 7997) Allow users to be blocked from using Special:Emailuser
 69+* (bug 8989) Blacklist 'mhtml' and 'mht' files from upload
 70+* (bug 8760) Allow wiki links in "protectexpiry" message
 71+* (bug 5908) Add "DEFAULTSORTKEY" and "DEFAULTCATEGORYSORT" aliases for
 72+ "DEFAULTSORT" magic word
 73+* (bug 10181) Support the XCache object caching mechanism
 74+* (bug 9058) Introduce '--aconf' option for all maintenance scripts, to provide
 75+ a path to the AdminSettings.php file
 76+* (bug 8781) Remind users to check file permissions for LocalSettings.php
 77+ post-installation
6878
6979 == Bugfixes since 1.10 ==
7080
@@ -136,8 +146,12 @@
137147 * (bug 9383) Don't set a default value for BLOB column in rc-deleted
138148 database patch
139149 * (bug 10149) Don't show full template list on section-0 edit
 150+* Fix maintenance/importImages.php so it doesn't barf PHP errors when no suitable
 151+ files are found, and make the list of extensions an option (defaults to
 152+ $wgFileExtensions)
 153+* (bug 9909) Ensure access to binary fields in the math table use encodeBlob()
 154+ and decodeBlob.
140155
141 -
142156 == MediaWiki API changes since 1.10 ==
143157
144158 (For ongoing development discussion, see http://www.mediawiki.org/wiki/API)
@@ -196,6 +210,7 @@
197211 * Norwegian (no)
198212 * Polish (pl)
199213 * Portuguese (pt)
 214+* Romanian (ro)
200215 * Russian (ru)
201216 * Slovak (sk)
202217 * Shona (sn)
Property changes on: branches/liquidthreads
___________________________________________________________________
Modified: svnmerge-integrated
203218 - /trunk/phase3:1-22810
204219 + /trunk/phase3:1-22855

Past revisions this follows-up on

RevisionCommit summaryAuthorDate
r18629(bug 5908) Allow overriding the default category sort key for all items on a ...robchurch10:39, 29 December 2006
r22772Don't bug out if no files were foundrobchurch18:39, 5 June 2007
r22813Return true/false, not o/not-0 for relation checking functions, for those par...greg14:02, 7 June 2007
r22814Indonesian (id) localisation updates.ivanlanin14:48, 7 June 2007
r22815* Don't require a list of extensions; move it into an option, and default to ...robchurch15:07, 7 June 2007
r22816(bug 7997) Added ability to Special:Blockip to block users from using Special...amidaniel17:31, 7 June 2007
r22817SqlBagOStuff: Don't write to the database during read-only modetstarling17:53, 7 June 2007
r22823*Fix commentaaron19:52, 7 June 2007
r22826* (bug 8989) Blacklist 'mhtml' and 'mht' files from upload...robchurch20:49, 7 June 2007
r22827Reworked e-mail blocking. To be enabled for a user, it now requires that $wgS...amidaniel21:15, 7 June 2007
r22828* (bug 8760) Allow wiki links in "protectexpiry" message...robchurch22:16, 7 June 2007
r22829Ditch wfSpecialConfirmemail(), move Special:Confirmemail to the modern specia...robchurch00:52, 8 June 2007
r22830Proper credit...robchurch00:57, 8 June 2007
r22831Fix up encodeBlob, don't worry so much about indexInfo compat.greg00:57, 8 June 2007
r22832Have Math.php use encodeBlob and decodeBlob when accessing the binary fields ...greg01:06, 8 June 2007
r22833Add 'Brokenlinks' as an alias for 'Wantedpages'. I suppose this is technical...simetrical03:42, 8 June 2007
r22835* Updates to Slovak (sk) by Helix84nikerabbit12:57, 8 June 2007
r22837* Updates to finikerabbit13:46, 8 June 2007
r22839(bug 5908) Add "DEFAULTSORTKEY" and "DEFAULTCATEGORYSORT" aliases for "DEFAUL...robchurch15:16, 8 June 2007
r22841* Fixes to finikerabbit15:27, 8 June 2007
r22842* (bug 10181) Support the XCache object caching mechanism [patch from Kurt Ra...robchurch15:56, 8 June 2007
r22844Wrap the recreate-deleted warning dismisser in a CDATA section and run the me...robchurch16:39, 8 June 2007
r22845(bug 9058) Introduce '--aconf' option for all maintenance scripts, to provide...robchurch18:12, 8 June 2007
r22846(bug 8781) Remind users to check file permissions for LocalSettings.php post-...robchurch18:38, 8 June 2007
r22847Indonesian (id) localisation updates.ivanlanin18:48, 8 June 2007
r22851Whoops, add missing CSSrobchurch19:52, 8 June 2007
r22852* Updates to Romanian (ro) by KlaudiuMihaila, SCriBu, Emilynikerabbit20:25, 8 June 2007

Status & tagging log