
guyvdb at svn
Aug 17, 2008, 5:10 PM
Post #1 of 1
(360 views)
Permalink
|
|
SVN: [39563] branches/visual_diff/phase3
|
|
Revision: 39563 Author: guyvdb Date: 2008-08-18 00:10:23 +0000 (Mon, 18 Aug 2008) Log Message: ----------- Merge with trunk Modified Paths: -------------- branches/visual_diff/phase3/RELEASE-NOTES branches/visual_diff/phase3/includes/Article.php branches/visual_diff/phase3/includes/AutoLoader.php branches/visual_diff/phase3/includes/ChangesList.php branches/visual_diff/phase3/includes/Credits.php branches/visual_diff/phase3/includes/DefaultSettings.php branches/visual_diff/phase3/includes/Diff.php branches/visual_diff/phase3/includes/DifferenceEngine.php branches/visual_diff/phase3/includes/LinkCache.php branches/visual_diff/phase3/includes/LinksUpdate.php branches/visual_diff/phase3/includes/MessageCache.php branches/visual_diff/phase3/includes/StringUtils.php branches/visual_diff/phase3/includes/Title.php branches/visual_diff/phase3/includes/ZhConversion.php branches/visual_diff/phase3/includes/api/ApiLogin.php branches/visual_diff/phase3/includes/api/ApiQuery.php branches/visual_diff/phase3/includes/api/ApiQueryCategories.php branches/visual_diff/phase3/includes/api/ApiQueryLinks.php branches/visual_diff/phase3/includes/api/ApiQuerySearch.php branches/visual_diff/phase3/includes/parser/CoreParserFunctions.php branches/visual_diff/phase3/includes/parser/Parser.php branches/visual_diff/phase3/includes/parser/Parser_DiffTest.php branches/visual_diff/phase3/includes/specials/SpecialAllpages.php branches/visual_diff/phase3/includes/specials/SpecialLog.php branches/visual_diff/phase3/includes/specials/SpecialPreferences.php branches/visual_diff/phase3/includes/specials/SpecialPrefixindex.php branches/visual_diff/phase3/includes/specials/SpecialRecentchanges.php branches/visual_diff/phase3/includes/specials/SpecialUserlogin.php branches/visual_diff/phase3/includes/specials/SpecialWatchlist.php branches/visual_diff/phase3/includes/templates/Userlogin.php branches/visual_diff/phase3/includes/zhtable/toCN.manual branches/visual_diff/phase3/includes/zhtable/toHK.manual branches/visual_diff/phase3/includes/zhtable/toSG.manual branches/visual_diff/phase3/includes/zhtable/toTW.manual branches/visual_diff/phase3/includes/zhtable/tradphrases.manual branches/visual_diff/phase3/languages/LanguageConverter.php branches/visual_diff/phase3/languages/messages/MessagesAf.php branches/visual_diff/phase3/languages/messages/MessagesAr.php branches/visual_diff/phase3/languages/messages/MessagesArn.php branches/visual_diff/phase3/languages/messages/MessagesArz.php branches/visual_diff/phase3/languages/messages/MessagesAst.php branches/visual_diff/phase3/languages/messages/MessagesBcc.php branches/visual_diff/phase3/languages/messages/MessagesBe_tarask.php branches/visual_diff/phase3/languages/messages/MessagesBg.php branches/visual_diff/phase3/languages/messages/MessagesBs.php branches/visual_diff/phase3/languages/messages/MessagesCa.php branches/visual_diff/phase3/languages/messages/MessagesCs.php branches/visual_diff/phase3/languages/messages/MessagesCu.php branches/visual_diff/phase3/languages/messages/MessagesCy.php branches/visual_diff/phase3/languages/messages/MessagesDa.php branches/visual_diff/phase3/languages/messages/MessagesDe.php branches/visual_diff/phase3/languages/messages/MessagesEn.php branches/visual_diff/phase3/languages/messages/MessagesEs.php branches/visual_diff/phase3/languages/messages/MessagesFa.php branches/visual_diff/phase3/languages/messages/MessagesFi.php branches/visual_diff/phase3/languages/messages/MessagesFr.php branches/visual_diff/phase3/languages/messages/MessagesFur.php branches/visual_diff/phase3/languages/messages/MessagesFy.php branches/visual_diff/phase3/languages/messages/MessagesGrc.php branches/visual_diff/phase3/languages/messages/MessagesHe.php branches/visual_diff/phase3/languages/messages/MessagesHif_latn.php branches/visual_diff/phase3/languages/messages/MessagesHr.php branches/visual_diff/phase3/languages/messages/MessagesHu.php branches/visual_diff/phase3/languages/messages/MessagesIa.php branches/visual_diff/phase3/languages/messages/MessagesId.php branches/visual_diff/phase3/languages/messages/MessagesIt.php branches/visual_diff/phase3/languages/messages/MessagesJa.php branches/visual_diff/phase3/languages/messages/MessagesKm.php branches/visual_diff/phase3/languages/messages/MessagesKo.php branches/visual_diff/phase3/languages/messages/MessagesKrj.php branches/visual_diff/phase3/languages/messages/MessagesKsh.php branches/visual_diff/phase3/languages/messages/MessagesLa.php branches/visual_diff/phase3/languages/messages/MessagesLv.php branches/visual_diff/phase3/languages/messages/MessagesMk.php branches/visual_diff/phase3/languages/messages/MessagesMs.php branches/visual_diff/phase3/languages/messages/MessagesMt.php branches/visual_diff/phase3/languages/messages/MessagesNds.php branches/visual_diff/phase3/languages/messages/MessagesNl.php branches/visual_diff/phase3/languages/messages/MessagesNn.php branches/visual_diff/phase3/languages/messages/MessagesNo.php branches/visual_diff/phase3/languages/messages/MessagesOc.php branches/visual_diff/phase3/languages/messages/MessagesPa.php branches/visual_diff/phase3/languages/messages/MessagesPl.php branches/visual_diff/phase3/languages/messages/MessagesPt.php branches/visual_diff/phase3/languages/messages/MessagesQqq.php branches/visual_diff/phase3/languages/messages/MessagesRif.php branches/visual_diff/phase3/languages/messages/MessagesRu.php branches/visual_diff/phase3/languages/messages/MessagesSv.php branches/visual_diff/phase3/languages/messages/MessagesTk.php branches/visual_diff/phase3/languages/messages/MessagesUk.php branches/visual_diff/phase3/languages/messages/MessagesVec.php branches/visual_diff/phase3/languages/messages/MessagesVi.php branches/visual_diff/phase3/languages/messages/MessagesYue.php branches/visual_diff/phase3/languages/messages/MessagesZh_classical.php branches/visual_diff/phase3/languages/messages/MessagesZh_hans.php branches/visual_diff/phase3/languages/messages/MessagesZh_hant.php branches/visual_diff/phase3/languages/messages/MessagesZh_tw.php branches/visual_diff/phase3/maintenance/language/messages.inc branches/visual_diff/phase3/maintenance/parserTests.inc branches/visual_diff/phase3/maintenance/parserTests.txt branches/visual_diff/phase3/skins/common/shared.css Added Paths: ----------- branches/visual_diff/phase3/includes/parser/LinkHolderArray.php Property Changed: ---------------- branches/visual_diff/phase3/skins/common/images/diffunderline.gif Modified: branches/visual_diff/phase3/RELEASE-NOTES =================================================================== --- branches/visual_diff/phase3/RELEASE-NOTES 2008-08-17 23:32:07 UTC (rev 39562) +++ branches/visual_diff/phase3/RELEASE-NOTES 2008-08-18 00:10:23 UTC (rev 39563) @@ -19,7 +19,6 @@ it from source control: http://www.mediawiki.org/wiki/Download_from_SVN === Configuration changes in 1.14 === - * $wgExemptFromUserRobotsControl is an array of namespaces to be exempt from the effect of the new __INDEX__/__NOINDEX__ magic words. (Default: null, ex- empt all content namespaces.) @@ -37,15 +36,18 @@ Backwards compatibility is maintained. * $wgEnablePersistentCookies has been added. Setting to false disables the setting of persistent cookies. Defaults to true. - +* $wgRestrictDisplayTitle controls if the use of the {{DISPLAYTITLE}} magic + word is restricted to titles equivalent to the actual page title. This + is true per default, but can be set to false to allow any title. + === New features in 1.14 === -* New URL syntaxes for Special:ListUsers - 'Special:ListUsers/USER' and - 'Special:ListUsers/GROUP/USER', in addition to the older syntax +* New URL syntaxes for Special:ListUsers - 'Special:ListUsers/USER' and + 'Special:ListUsers/GROUP/USER', in addition to the older syntax 'Special:ListUsers/GROUP' where GROUP is a valid group name. -* Configurable er-namespace and per-page notices for the edit form, +* Configurable er-namespace and per-page notices for the edit form, respectively MediaWiki:Editnotice-# where # is the namespace number, and - MediaWiki:Editnotice-#-PAGENAME where # is the page's namespace number and + MediaWiki:Editnotice-#-PAGENAME where # is the page's namespace number and PAGENAME is the page name minus the namespace prefix. * (bug 8068) New __INDEX__ and __NOINDEX__ magic words allow user control of search engine indexing on a per-article basis. @@ -80,7 +82,7 @@ * (bug 14929) removeUnusedAccounts.php now supports 'ignore-touched' and 'ignore-groups'. Patch by Louperivois * (bug 15127) Work around minor display glitch in Opera. -* By default, reject file uploads that look like ZIP files, to avoid the +* By default, reject file uploads that look like ZIP files, to avoid the so-called GIFAR vulnerability. * (bug 15141) Give ability to only list protected pages with the cascading option enabled on Special:ProtectedPages @@ -88,7 +90,11 @@ Show/Hide logged in users, Show/Hide anonymous, Invert namespace selection * Added hook 'UserrightsChangeableGroups' to allow modification of what groups may be added or removed via the Special:UserRights interface. - +* (bug 14468) Lines in classic RecentChanges and Watchlist have alternating + background colours based on classes "odd" and "even". +* (bug 14187) In Special:Userlogin the buttons "Log in" and "E-mail new + password" now have classes "mw-loginbutton" and "mw-mailmypasswordbutton". + === Bug fixes in 1.14 === * (bug 14907) DatabasePostgres::fieldType now defined. @@ -130,6 +136,7 @@ gives results * Avoid recursive crazy expansions in section edit comments for pages which contain '/*' in the title +* Fix excessive memory usage when parsing pages with lots of links === API changes in 1.14 === @@ -147,6 +154,9 @@ * (bug 15048) Added limit field for multivalue parameters to action=paraminfo output. * When the limit on multivalue parameters is exceeded, a warning is issued +* list=search doesn't list missing pages any more +* (bug 15178) Added clshow to prop=categories to allow filtering for hidden/ + non-hidden categories === Languages updated in 1.14 === Modified: branches/visual_diff/phase3/includes/Article.php =================================================================== --- branches/visual_diff/phase3/includes/Article.php 2008-08-17 23:32:07 UTC (rev 39562) +++ branches/visual_diff/phase3/includes/Article.php 2008-08-18 00:10:23 UTC (rev 39563) @@ -51,6 +51,16 @@ $this->mTitle =& $title; $this->mOldId = $oldId; } + + /** + * Constructor from an article article + * @param $id The article ID to load + */ + public static function newFromID( $id ) { + $t = Title::newFromID( $id ); + + return $t == null ? null : new Article( $t ); + } /** * Tell the page view functions that this view was redirected @@ -1390,8 +1400,12 @@ * * @return bool success */ - function doEdit( $text, $summary, $flags = 0, $baseRevId = false ) { + function doEdit( $text, $summary, $flags = 0, $baseRevId = false, $user = null ) { global $wgUser, $wgDBtransactions, $wgUseAutomaticEditSummaries; + + if ($user == null) { + $user = $wgUser; + } wfProfileIn( __METHOD__ ); $good = true; @@ -1405,7 +1419,7 @@ } } - if( !wfRunHooks( 'ArticleSave', array( &$this, &$wgUser, &$text, + if( !wfRunHooks( 'ArticleSave', array( &$this, &$user, &$text, &$summary, $flags & EDIT_MINOR, null, null, &$flags ) ) ) { @@ -1415,7 +1429,7 @@ } # Silently ignore EDIT_MINOR if not allowed - $isminor = ( $flags & EDIT_MINOR ) && $wgUser->isAllowed('minoredit'); + $isminor = ( $flags & EDIT_MINOR ) && $user->isAllowed('minoredit'); $bot = $flags & EDIT_FORCE_BOT; $oldtext = $this->getContent(); @@ -1484,17 +1498,17 @@ # Update recentchanges if( !( $flags & EDIT_SUPPRESS_RC ) ) { - $rcid = RecentChange::notifyEdit( $now, $this->mTitle, $isminor, $wgUser, $summary, + $rcid = RecentChange::notifyEdit( $now, $this->mTitle, $isminor, $user, $summary, $lastRevision, $this->getTimestamp(), $bot, '', $oldsize, $newsize, $revisionId ); # Mark as patrolled if the user can do so - if( $GLOBALS['wgUseRCPatrol'] && $wgUser->isAllowed( 'autopatrol' ) ) { + if( $GLOBALS['wgUseRCPatrol'] && $user->isAllowed( 'autopatrol' ) ) { RecentChange::markPatrolled( $rcid ); PatrolLog::record( $rcid, true ); } } - $wgUser->incEditCount(); + $user->incEditCount(); $dbw->commit(); } } else { @@ -1550,15 +1564,15 @@ wfRunHooks( 'NewRevisionFromEditComplete', array($this, $revision, false) ); if( !( $flags & EDIT_SUPPRESS_RC ) ) { - $rcid = RecentChange::notifyNew( $now, $this->mTitle, $isminor, $wgUser, $summary, $bot, + $rcid = RecentChange::notifyNew( $now, $this->mTitle, $isminor, $user, $summary, $bot, '', strlen( $text ), $revisionId ); # Mark as patrolled if the user can - if( ($GLOBALS['wgUseRCPatrol'] || $GLOBALS['wgUseNPPatrol']) && $wgUser->isAllowed( 'autopatrol' ) ) { + if( ($GLOBALS['wgUseRCPatrol'] || $GLOBALS['wgUseNPPatrol']) && $user->isAllowed( 'autopatrol' ) ) { RecentChange::markPatrolled( $rcid ); PatrolLog::record( $rcid, true ); } } - $wgUser->incEditCount(); + $user->incEditCount(); $dbw->commit(); # Update links, etc. @@ -1567,7 +1581,7 @@ # Clear caches Article::onArticleCreate( $this->mTitle ); - wfRunHooks( 'ArticleInsertComplete', array( &$this, &$wgUser, $text, $summary, + wfRunHooks( 'ArticleInsertComplete', array( &$this, &$user, $text, $summary, $flags & EDIT_MINOR, null, null, &$flags, $revision ) ); } @@ -1576,7 +1590,7 @@ } if ( $good ) { - wfRunHooks( 'ArticleSaveComplete', array( &$this, &$wgUser, $text, $summary, + wfRunHooks( 'ArticleSaveComplete', array( &$this, &$user, $text, $summary, $flags & EDIT_MINOR, null, null, &$flags, $revision ) ); } Modified: branches/visual_diff/phase3/includes/AutoLoader.php =================================================================== --- branches/visual_diff/phase3/includes/AutoLoader.php 2008-08-17 23:32:07 UTC (rev 39562) +++ branches/visual_diff/phase3/includes/AutoLoader.php 2008-08-18 00:10:23 UTC (rev 39563) @@ -32,6 +32,7 @@ 'ConcatenatedGzipHistoryBlob' => 'includes/HistoryBlob.php', 'ConstantDependency' => 'includes/CacheDependency.php', 'DBABagOStuff' => 'includes/BagOStuff.php', + 'DelegatingContentHandler' => 'includes/HTMLDiff.php', 'DependencyWrapper' => 'includes/CacheDependency.php', '_DiffEngine' => 'includes/DifferenceEngine.php', 'DifferenceEngine' => 'includes/DifferenceEngine.php', @@ -57,6 +58,7 @@ 'DumpOutput' => 'includes/Export.php', 'DumpPipeOutput' => 'includes/Export.php', 'eAccelBagOStuff' => 'includes/BagOStuff.php', + 'EchoingContentHandler' => 'includes/HTMLDiff.php', 'EditPage' => 'includes/EditPage.php', 'EmaillingJob' => 'includes/EmaillingJob.php', 'EmailNotification' => 'includes/UserMailer.php', @@ -64,6 +66,7 @@ 'EnotifNotifyJob' => 'includes/EnotifNotifyJob.php', 'ErrorPageError' => 'includes/Exception.php', 'Exif' => 'includes/Exif.php', + 'ExplodeIterator' => 'includes/StringUtils.php', 'ExternalEdit' => 'includes/ExternalEdit.php', 'ExternalStoreDB' => 'includes/ExternalStoreDB.php', 'ExternalStoreHttp' => 'includes/ExternalStoreHttp.php', @@ -89,7 +92,9 @@ 'HistoryBlobStub' => 'includes/HistoryBlob.php', 'HTMLCacheUpdate' => 'includes/HTMLCacheUpdate.php', 'HTMLCacheUpdateJob' => 'includes/HTMLCacheUpdate.php', + 'HTMLDiffer' => 'includes/HTMLDiff.php', 'HTMLFileCache' => 'includes/HTMLFileCache.php', + 'HTMLOutput' => 'includes/HTMLDiff.php', 'Http' => 'includes/HttpFunctions.php', '_HWLDF_WordAccumulator' => 'includes/DifferenceEngine.php', 'ImageGallery' => 'includes/ImageGallery.php', @@ -149,6 +154,7 @@ 'ProtectionForm' => 'includes/ProtectionForm.php', 'QueryPage' => 'includes/QueryPage.php', 'QuickTemplate' => 'includes/SkinTemplate.php', + 'RangeDifference' => 'includes/Diff.php', 'RawPage' => 'includes/RawPage.php', 'RCCacheEntry' => 'includes/ChangesList.php', 'RecentChange' => 'includes/RecentChange.php', @@ -206,6 +212,7 @@ 'WatchlistEditor' => 'includes/WatchlistEditor.php', 'WebRequest' => 'includes/WebRequest.php', 'WebResponse' => 'includes/WebResponse.php', + 'WikiDiff3' => 'includes/Diff.php', 'WikiError' => 'includes/WikiError.php', 'WikiErrorMsg' => 'includes/WikiError.php', 'WikiExporter' => 'includes/Export.php', @@ -351,6 +358,7 @@ # includes/parser 'CoreParserFunctions' => 'includes/parser/CoreParserFunctions.php', 'DateFormatter' => 'includes/parser/DateFormatter.php', + 'LinkHolderArray' => 'includes/parser/LinkHolderArray.php', 'OnlyIncludeReplacer' => 'includes/parser/Parser.php', 'PPDAccum_Hash' => 'includes/parser/Preprocessor_Hash.php', 'PPDPart' => 'includes/parser/Preprocessor_DOM.php', Modified: branches/visual_diff/phase3/includes/ChangesList.php =================================================================== --- branches/visual_diff/phase3/includes/ChangesList.php 2008-08-17 23:32:07 UTC (rev 39562) +++ branches/visual_diff/phase3/includes/ChangesList.php 2008-08-18 00:10:23 UTC (rev 39563) @@ -306,7 +306,7 @@ /** * Format a line using the old system (aka without any javascript). */ - public function recentChangesLine( &$rc, $watched = false ) { + public function recentChangesLine( &$rc, $watched = false, $linenumber = NULL ) { global $wgContLang, $wgRCShowChangedSize, $wgUser; $fname = 'ChangesList::recentChangesLineOld'; @@ -321,7 +321,17 @@ $this->insertDateHeader($s,$rc_timestamp); - $s .= '<li>'; + // use even/odd class only if linenumber is given (feature from bug 14468) + if( $linenumber ) { + if( $linenumber & 1 ) { + $s .= '<li class="odd">'; + } + else { + $s .= '<li class="even">'; + } + } else { + $s .= '<li>'; + } // Moved pages if( $rc_type == RC_MOVE || $rc_type == RC_MOVE_OVER_REDIRECT ) { Modified: branches/visual_diff/phase3/includes/Credits.php =================================================================== --- branches/visual_diff/phase3/includes/Credits.php 2008-08-17 23:32:07 UTC (rev 39562) +++ branches/visual_diff/phase3/includes/Credits.php 2008-08-18 00:10:23 UTC (rev 39563) @@ -144,7 +144,7 @@ # "ThisSite user(s) A, B and C" if (!empty($user)) { - $user = wfMsg('siteusers', $user); + $user = wfMsgExt('siteusers', array( 'parsemag' ), array( $user, count($contributors) ) ); } # This is the big list, all mooshed together. We sift for blank strings Modified: branches/visual_diff/phase3/includes/DefaultSettings.php =================================================================== --- branches/visual_diff/phase3/includes/DefaultSettings.php 2008-08-17 23:32:07 UTC (rev 39562) +++ branches/visual_diff/phase3/includes/DefaultSettings.php 2008-08-18 00:10:23 UTC (rev 39563) @@ -1382,7 +1382,7 @@ * to ensure that client-side caches don't keep obsolete copies of global * styles. */ -$wgStyleVersion = '165'; +$wgStyleVersion = '166'; # Server-side caching: @@ -2377,6 +2377,9 @@ /** Name of the external diff engine to use */ $wgExternalDiffEngine = false; +/** Whether to use inline diff */ +$wgEnableHtmlDiff = false; + /** Use RC Patrolling to check for vandalism */ $wgUseRCPatrol = true; @@ -3154,6 +3157,11 @@ $wgAllowDisplayTitle = true; /** + * for consistency, restrict DISPLAYTITLE to titles that normalize to the same canonical DB key + */ +$wgRestrictDisplayTitle = true; + +/** * Array of usernames which may not be registered or logged in from * Maintenance scripts can still use these */ Modified: branches/visual_diff/phase3/includes/Diff.php =================================================================== --- branches/visual_diff/phase3/includes/Diff.php 2008-08-17 23:32:07 UTC (rev 39562) +++ branches/visual_diff/phase3/includes/Diff.php 2008-08-18 00:10:23 UTC (rev 39563) @@ -566,4 +566,3 @@ $this->rightlength = $rightend-$rightstart; } } - Modified: branches/visual_diff/phase3/includes/DifferenceEngine.php =================================================================== --- branches/visual_diff/phase3/includes/DifferenceEngine.php 2008-08-17 23:32:07 UTC (rev 39562) +++ branches/visual_diff/phase3/includes/DifferenceEngine.php 2008-08-18 00:10:23 UTC (rev 39563) @@ -327,7 +327,7 @@ function renderHtmlDiff() { - global $wgOut, $IP; + global $wgOut; wfProfileIn( __METHOD__ ); $this->showDiffStyle(); @@ -378,7 +378,6 @@ unset($parserOutput,$popts); - require_once( "$IP/includes/HTMLDiff.php" ); $differ = new HTMLDiffer(new DelegatingContentHandler($wgOut)); $differ->htmlDiff($oldHtml, $newHtml); @@ -1042,8 +1041,6 @@ if($wgExternalDiffEngine == 'wikidiff3'){ // wikidiff3 - global $IP; - require_once( "$IP/includes/Diff.php" ); $wikidiff3 = new WikiDiff3(); $wikidiff3->diff($from_lines, $to_lines); $this->xchanged = $wikidiff3->removed; @@ -2089,4 +2086,4 @@ } wfProfileOut( __METHOD__ ); } -} +} \ No newline at end of file Modified: branches/visual_diff/phase3/includes/LinkCache.php =================================================================== --- branches/visual_diff/phase3/includes/LinkCache.php 2008-08-17 23:32:07 UTC (rev 39562) +++ branches/visual_diff/phase3/includes/LinkCache.php 2008-08-18 00:10:23 UTC (rev 39563) @@ -9,7 +9,6 @@ // becomes incompatible with the new version. /* private */ var $mClassVer = 4; - /* private */ var $mPageLinks; /* private */ var $mGoodLinks, $mBadLinks; /* private */ var $mForUpdate; @@ -26,7 +25,6 @@ function __construct() { $this->mForUpdate = false; - $this->mPageLinks = array(); $this->mGoodLinks = array(); $this->mGoodLinkFields = array(); $this->mBadLinks = array(); @@ -78,14 +76,12 @@ $dbkey = $title->getPrefixedDbKey(); $this->mGoodLinks[$dbkey] = $id; $this->mGoodLinkFields[$dbkey] = array( 'length' => $len, 'redirect' => $redir ); - $this->mPageLinks[$dbkey] = $title; } public function addBadLinkObj( $title ) { $dbkey = $title->getPrefixedDbKey(); if ( ! $this->isBadLink( $dbkey ) ) { $this->mBadLinks[$dbkey] = 1; - $this->mPageLinks[$dbkey] = $title; } } @@ -96,7 +92,6 @@ /* obsolete, for old $wgLinkCacheMemcached stuff */ public function clearLink( $title ) {} - public function getPageLinks() { return $this->mPageLinks; } public function getGoodLinks() { return $this->mGoodLinks; } public function getBadLinks() { return array_keys( $this->mBadLinks ); } @@ -181,7 +176,6 @@ * Clears cache */ public function clear() { - $this->mPageLinks = array(); $this->mGoodLinks = array(); $this->mGoodLinkFields = array(); $this->mBadLinks = array(); Modified: branches/visual_diff/phase3/includes/LinksUpdate.php =================================================================== --- branches/visual_diff/phase3/includes/LinksUpdate.php 2008-08-17 23:32:07 UTC (rev 39562) +++ branches/visual_diff/phase3/includes/LinksUpdate.php 2008-08-18 00:10:23 UTC (rev 39563) @@ -87,7 +87,7 @@ } - function doIncrementalUpdate() { + protected function doIncrementalUpdate() { wfProfileIn( __METHOD__ ); # Page links @@ -158,7 +158,7 @@ * May be slower or faster depending on level of lock contention and write speed of DB * Also useful where link table corruption needs to be repaired, e.g. in refreshLinks.php */ - function doDumbUpdate() { + protected function doDumbUpdate() { wfProfileIn( __METHOD__ ); # Refresh category pages and image description pages Modified: branches/visual_diff/phase3/includes/MessageCache.php =================================================================== --- branches/visual_diff/phase3/includes/MessageCache.php 2008-08-17 23:32:07 UTC (rev 39562) +++ branches/visual_diff/phase3/includes/MessageCache.php 2008-08-18 00:10:23 UTC (rev 39563) @@ -44,7 +44,6 @@ /** * ParserOptions is lazy initialised. - * Access should probably be protected. */ function getParserOptions() { if ( !$this->mParserOptions ) { Modified: branches/visual_diff/phase3/includes/StringUtils.php =================================================================== --- branches/visual_diff/phase3/includes/StringUtils.php 2008-08-17 23:32:07 UTC (rev 39562) +++ branches/visual_diff/phase3/includes/StringUtils.php 2008-08-18 00:10:23 UTC (rev 39563) @@ -167,6 +167,18 @@ $string = str_replace( '$', '\\$', $string ); return $string; } + + /** + * Workalike for explode() with limited memory usage. + * Returns an Iterator + */ + static function explode( $separator, $subject ) { + if ( substr_count( $subject, $separator ) > 1000 ) { + return new ExplodeIterator( $separator, $subject ); + } else { + return new ArrayIterator( explode( $separator, $subject ) ); + } + } } /** @@ -310,3 +322,90 @@ return $result; } } + +/** + * An iterator which works exactly like: + * + * foreach ( explode( $delim, $s ) as $element ) { + * ... + * } + * + * Except it doesn't use 193 byte per element + */ +class ExplodeIterator implements Iterator { + // The subject string + var $subject, $subjectLength; + + // The delimiter + var $delim, $delimLength; + + // The position of the start of the line + var $curPos; + + // The position after the end of the next delimiter + var $endPos; + + // The current token + var $current; + + /** + * Construct a DelimIterator + */ + function __construct( $delim, $s ) { + $this->subject = $s; + $this->delim = $delim; + + // Micro-optimisation (theoretical) + $this->subjectLength = strlen( $s ); + $this->delimLength = strlen( $delim ); + + $this->rewind(); + } + + function rewind() { + $this->curPos = 0; + $this->endPos = strpos( $this->subject, $this->delim ); + $this->refreshCurrent(); + } + + + function refreshCurrent() { + if ( $this->curPos === false ) { + $this->current = false; + } elseif ( $this->curPos >= $this->subjectLength ) { + $this->current = ''; + } elseif ( $this->endPos === false ) { + $this->current = substr( $this->subject, $this->curPos ); + } else { + $this->current = substr( $this->subject, $this->curPos, $this->endPos - $this->curPos ); + } + } + + function current() { + return $this->current; + } + + function key() { + return $this->curPos; + } + + function next() { + if ( $this->endPos === false ) { + $this->curPos = false; + } else { + $this->curPos = $this->endPos + $this->delimLength; + if ( $this->curPos >= $this->subjectLength ) { + $this->endPos = false; + } else { + $this->endPos = strpos( $this->subject, $this->delim, $this->curPos ); + } + } + $this->refreshCurrent(); + return $this->current; + } + + function valid() { + return $this->curPos !== false; + } +} + Modified: branches/visual_diff/phase3/includes/Title.php =================================================================== --- branches/visual_diff/phase3/includes/Title.php 2008-08-17 23:32:07 UTC (rev 39562) +++ branches/visual_diff/phase3/includes/Title.php 2008-08-18 00:10:23 UTC (rev 39563) @@ -10,12 +10,6 @@ define ( 'GAID_FOR_UPDATE', 1 ); -/** - * Title::newFromText maintains a cache to avoid expensive re-normalization of - * commonly used titles. On a batch operation this can become a memory leak - * if not bounded. After hitting this many titles reset the cache. - */ -define( 'MW_TITLECACHE_MAX', 1000 ); /** * Constants for pr_cascade bitfield @@ -36,6 +30,14 @@ //@} /** + * Title::newFromText maintains a cache to avoid expensive re-normalization of + * commonly used titles. On a batch operation this can become a memory leak + * if not bounded. After hitting this many titles reset the cache. + */ + const CACHE_MAX = 1000; + + + /** * @name Private member variables * Please use the accessor functions instead. * @private @@ -131,7 +133,7 @@ static $cachedcount = 0 ; if( $t->secureAndSplit() ) { if( $defaultNamespace == NS_MAIN ) { - if( $cachedcount >= MW_TITLECACHE_MAX ) { + if( $cachedcount >= self::CACHE_MAX ) { # Avoid memory leaks on mass operations... Title::$titleCache = array(); $cachedcount=0; Modified: branches/visual_diff/phase3/includes/ZhConversion.php =================================================================== --- branches/visual_diff/phase3/includes/ZhConversion.php 2008-08-17 23:32:07 UTC (rev 39562) +++ branches/visual_diff/phase3/includes/ZhConversion.php 2008-08-18 00:10:23 UTC (rev 39563) @@ -6228,7 +6228,6 @@ "退烧药" => "退燒藥", "逋发" => "逋髮", "透辟" => "透闢", -"这么着" => "這么著", "这里" => "這裏", "这里" => "這裡", "这只" => "這隻", @@ -6922,7 +6921,6 @@ "斗斗" => "鬥鬥", "斗鱼" => "鬥魚", "斗鹌鹑" => "鬥鵪鶉", -"闹着玩儿" => "鬧著玩儿", "闹着玩儿" => "鬧著玩兒", "闹钟" => "鬧鐘", "哄动" => "鬨動", @@ -10695,7 +10693,6 @@ "服务器" => "伺服器", "等于" => "等於", "局域网" => "區域網", -"计算机" => "電腦", "扫瞄仪" => "掃瞄器", "宽带" => "寬頻", "数据库" => "資料庫", @@ -10753,7 +10750,6 @@ "伯利兹" => "貝里斯", "伯利茲" => "貝里斯", "佛得角" => "維德角", -"佛得角" => "維德角", "克罗地亚" => "克羅埃西亞", "克羅地亞" => "克羅埃西亞", "冈比亚" => "甘比亞", @@ -10822,17 +10818,14 @@ "尼日尔" => "尼日", "尼日爾" => "尼日", "巴巴多斯" => "巴貝多", -"巴巴多斯" => "巴貝多", "巴布亚新几内亚" => "巴布亞紐幾內亞", "巴布亞新畿內亞" => "巴布亞紐幾內亞", "布基纳法索" => "布吉納法索", "布基納法索" => "布吉納法索", "布隆迪" => "蒲隆地", "布隆迪" => "蒲隆地", -"希腊" => "希臘", "帕劳" => "帛琉", "意大利" => "義大利", -"意大利" => "義大利", "所罗门群岛" => "索羅門群島", "所羅門群島" => "索羅門群島", "文莱" => "汶萊", @@ -10886,7 +10879,6 @@ "赞比亚" => "尚比亞", "贊比亞" => "尚比亞", "阿塞拜疆" => "亞塞拜然", -"阿塞拜疆" => "亞塞拜然", "阿拉伯联合酋长国" => "阿拉伯聯合大公國", "阿拉伯聯合酋長國" => "阿拉伯聯合大公國", "马尔代夫" => "馬爾地夫", @@ -10917,7 +10909,6 @@ "積架" => "捷豹", "福士" => "福斯", "雪铁龙" => "雪鐵龍", -"马自达" => "馬自達", "萬事得" => "馬自達", "拿破仑" => "拿破崙", "拿破侖" => "拿破崙", @@ -10937,29 +10928,17 @@ "“" => "「", "‘" => "『", "’" => "』", -"凶殺" => "兇殺", -"凶殘" => "兇殘", -"緝凶" => "緝兇", -"買凶" => "買兇", -"打印机" => "打印機", "印表機" => "打印機", "字节" => "位元組", "字節" => "位元組", -"打印" => "打印", "列印" => "打印", "硬件" => "硬件", "硬體" => "硬件", -"二极管" => "二極管", "二極體" => "二極管", -"三极管" => "三極管", "三極體" => "三極管", -"数码" => "數碼", "數位" => "數碼", -"软件" => "軟件", "軟體" => "軟件", -"网络" => "網絡", "網路" => "網絡", -"人工智能" => "人工智能", "人工智慧" => "人工智能", "航天飞机" => "穿梭機", "太空梭" => "穿梭機", @@ -10969,141 +10948,88 @@ "機器人" => "機械人", "移动电话" => "流動電話", "行動電話" => "流動電話", -"调制解调器" => "調制解調器", "數據機" => "調制解調器", "短信" => "短訊", "簡訊" => "短訊", -"乍得" => "乍得", "查德" => "乍得", -"也门" => "也門", "葉門" => "也門", -"伯利兹" => "伯利茲", "貝里斯" => "伯利茲", -"佛得角" => "佛得角", "維德角" => "佛得角", -"克罗地亚" => "克羅地亞", "克羅埃西亞" => "克羅地亞", -"冈比亚" => "岡比亞", "甘比亞" => "岡比亞", -"几内亚比绍" => "幾內亞比紹", "幾內亞比索" => "幾內亞比紹", -"列支敦士登" => "列支敦士登", "列支敦斯登" => "列支敦士登", -"利比里亚" => "利比里亞", "賴比瑞亞" => "利比里亞", -"加纳" => "加納", "迦納" => "加納", -"加蓬" => "加蓬", "加彭" => "加蓬", -"博茨瓦纳" => "博茨瓦納", "波札那" => "博茨瓦納", -"卡塔尔" => "卡塔爾", "卡達" => "卡塔爾", -"卢旺达" => "盧旺達", "盧安達" => "盧旺達", -"危地马拉" => "危地馬拉", "瓜地馬拉" => "危地馬拉", "厄瓜多尔" => "厄瓜多爾", +"厄瓜多爾" => "厄瓜多爾", "厄瓜多" => "厄瓜多爾", -"厄立特里亚" => "厄立特里亞", "厄利垂亞" => "厄立特里亞", -"吉布提" => "吉布堤", "吉布地" => "吉布堤", -"哥斯达黎加" => "哥斯達黎加", "哥斯大黎加" => "哥斯達黎加", -"图瓦卢" => "圖瓦盧", "吐瓦魯" => "圖瓦盧", -"圣卢西亚" => "聖盧西亞", "聖露西亞" => "聖盧西亞", "圣基茨和尼维斯" => "聖吉斯納域斯", "聖克里斯多福及尼維斯" => "聖吉斯納域斯", -"圣文森特和格林纳丁斯" => "聖文森特和格林納丁斯", "聖文森及格瑞那丁" => "聖文森特和格林納丁斯", -"圣马力诺" => "聖馬力諾", "聖馬利諾" => "聖馬力諾", -"圭亚那" => "圭亞那", "蓋亞那" => "圭亞那", -"坦桑尼亚" => "坦桑尼亞", "坦尚尼亞" => "坦桑尼亞", -"埃塞俄比亚" => "埃塞俄比亞", "衣索匹亞" => "埃塞俄比亞", "衣索比亞" => "埃塞俄比亞", -"基里巴斯" => "基里巴斯", "吉里巴斯" => "基里巴斯", -"狮子山" => "獅子山", "塞普勒斯" => "塞浦路斯", -"塞舌尔" => "塞舌爾", "塞席爾" => "塞舌爾", "多米尼加" => "多明尼加共和國", "多明尼加" => "多明尼加共和國", "多米尼加联邦" => "多明尼加聯邦", "多米尼克" => "多明尼加聯邦", -"安提瓜和巴布达" => "安提瓜和巴布達", "安地卡及巴布達" => "安提瓜和巴布達", "尼日利亚" => "尼日利亞", +"尼日利亞" => "尼日利亞", "奈及利亞" => "尼日利亞", "尼日尔" => "尼日爾", +"尼日爾" => "尼日爾", "尼日" => "尼日爾", -"巴巴多斯" => "巴巴多斯", "巴貝多" => "巴巴多斯", -"巴布亚新几内亚" => "巴布亞新畿內亞", "巴布亞紐幾內亞" => "巴布亞新畿內亞", -"布基纳法索" => "布基納法索", "布吉納法索" => "布基納法索", -"布隆迪" => "布隆迪", "蒲隆地" => "布隆迪", +"帕劳" => "帛琉", "義大利" => "意大利", -"所罗门群岛" => "所羅門群島", "索羅門群島" => "所羅門群島", -"斯威士兰" => "斯威士蘭", +"文莱" => "汶萊", "史瓦濟蘭" => "斯威士蘭", -"斯洛文尼亚" => "斯洛文尼亞", "斯洛維尼亞" => "斯洛文尼亞", -"新西兰" => "新西蘭", "紐西蘭" => "新西蘭", -"格林纳达" => "格林納達", "格瑞那達" => "格林納達", -"格鲁吉亚" => "喬治亞", -"格魯吉亞" => "喬治亞", -"梵蒂冈" => "梵蒂岡", -"毛里塔尼亚" => "毛里塔尼亞", "茅利塔尼亞" => "毛里塔尼亞", "毛里求斯" => "毛里裘斯", "模里西斯" => "毛里裘斯", +"沙地阿拉伯" => "沙特阿拉伯", "沙烏地阿拉伯" => "沙特阿拉伯", -"波斯尼亚和黑塞哥维那" => "波斯尼亞黑塞哥維那", "波士尼亞赫塞哥維納" => "波斯尼亞黑塞哥維那", -"津巴布韦" => "津巴布韋", "辛巴威" => "津巴布韋", -"洪都拉斯" => "洪都拉斯", "宏都拉斯" => "洪都拉斯", -"特立尼达和托巴哥" => "特立尼達和多巴哥", "千里達托貝哥" => "特立尼達和多巴哥", -"瑙鲁" => "瑙魯", "諾魯" => "瑙魯", -"瓦努阿图" => "瓦努阿圖", "萬那杜" => "瓦努阿圖", -"科摩罗" => "科摩羅", "葛摩" => "科摩羅", -"索马里" => "索馬里", "索馬利亞" => "索馬里", -"老挝" => "老撾", "寮國" => "老撾", "肯尼亚" => "肯雅", "肯亞" => "肯雅", -"莫桑比克" => "莫桑比克", "莫三比克" => "莫桑比克", -"莱索托" => "萊索托", "賴索托" => "萊索托", -"贝宁" => "貝寧", "貝南" => "貝寧", -"赞比亚" => "贊比亞", "尚比亞" => "贊比亞", -"阿塞拜疆" => "阿塞拜疆", "亞塞拜然" => "阿塞拜疆", -"阿拉伯联合酋长国" => "阿拉伯聯合酋長國", "阿拉伯聯合大公國" => "阿拉伯聯合酋長國", -"马尔代夫" => "馬爾代夫", "馬爾地夫" => "馬爾代夫", "馬利共和國" => "馬里共和國", "方便面" => "即食麵", @@ -11135,11 +11061,9 @@ "拿破崙" => "拿破侖", "布什" => "布殊", "布希" => "布殊", -"克林顿" => "克林頓", "柯林頓" => "克林頓", "萨达姆" => "薩達姆", "海珊" => "侯賽因", -"侯赛因" => "侯賽因", "大卫·贝克汉姆" => "大衛碧咸", "迈克尔·欧文" => "米高奧雲", "珍妮弗·卡普里亚蒂" => "卡佩雅蒂", @@ -11262,150 +11186,95 @@ "簡訊" => "短信", "烏茲別克" => "乌兹别克斯坦", "查德" => "乍得", -"乍得" => "乍得", -"也門" => "", "葉門" => "也门", "伯利茲" => "伯利兹", "貝里斯" => "伯利兹", "維德角" => "佛得角", -"佛得角" => "佛得角", -"克羅地亞" => "克罗地亚", "克羅埃西亞" => "克罗地亚", -"岡比亞" => "冈比亚", "甘比亞" => "冈比亚", -"幾內亞比紹" => "几内亚比绍", "幾內亞比索" => "几内亚比绍", "列支敦斯登" => "列支敦士登", -"列支敦士登" => "列支敦士登", -"利比里亞" => "利比里亚", "賴比瑞亞" => "利比里亚", -"加納" => "加纳", "迦納" => "加纳", "加彭" => "加蓬", -"加蓬" => "加蓬", -"博茨瓦納" => "博茨瓦纳", "波札那" => "博茨瓦纳", -"卡塔爾" => "卡塔尔", "卡達" => "卡塔尔", -"盧旺達" => "卢旺达", "盧安達" => "卢旺达", -"危地馬拉" => "危地马拉", "瓜地馬拉" => "危地马拉", "厄瓜多爾" => "厄瓜多尔", +"厄瓜多尔" => "厄瓜多尔", "厄瓜多" => "厄瓜多尔", -"厄立特里亞" => "厄立特里亚", "厄利垂亞" => "厄立特里亚", -"吉布堤" => "吉布提", "吉布地" => "吉布提", "哈薩克" => "哈萨克斯坦", -"哥斯達黎加" => "哥斯达黎加", "哥斯大黎加" => "哥斯达黎加", -"圖瓦盧" => "图瓦卢", "吐瓦魯" => "图瓦卢", "土庫曼" => "土库曼斯坦", -"聖盧西亞" => "圣卢西亚", "聖露西亞" => "圣卢西亚", "聖吉斯納域斯" => "圣基茨和尼维斯", "聖克里斯多福及尼維斯" => "圣基茨和尼维斯", -"聖文森特和格林納丁斯" => "圣文森特和格林纳丁斯", "聖文森及格瑞那丁" => "圣文森特和格林纳丁斯", -"聖馬力諾" => "圣马力诺", "聖馬利諾" => "圣马力诺", -"圭亞那" => "圭亚那", "蓋亞那" => "圭亚那", -"坦桑尼亞" => "坦桑尼亚", "坦尚尼亞" => "坦桑尼亚", -"埃塞俄比亞" => "埃塞俄比亚", "衣索匹亞" => "埃塞俄比亚", "衣索比亞" => "埃塞俄比亚", "吉里巴斯" => "基里巴斯", -"基里巴斯" => "基里巴斯", "塔吉克" => "塔吉克斯坦", "塞拉利昂" => "塞拉利昂", "塞普勒斯" => "塞浦路斯", -"塞浦路斯" => "塞浦路斯", -"塞舌爾" => "塞舌尔", "塞席爾" => "塞舌尔", "多明尼加共和國" => "多米尼加", "多明尼加" => "多米尼加", "多明尼加聯邦" => "多米尼加联邦", "多米尼克" => "多米尼加联邦", -"安提瓜和巴布達" => "安提瓜和巴布达", "安地卡及巴布達" => "安提瓜和巴布达", "尼日利亞" => "尼日利亚", +"尼日利亚" => "尼日利亚", "奈及利亞" => "尼日利亚", "尼日爾" => "尼日尔", +"尼日尔" => "尼日尔", "尼日" => "尼日尔", "巴貝多" => "巴巴多斯", -"巴巴多斯" => "巴巴多斯", -"巴布亞新畿內亞" => "巴布亚新几内亚", "巴布亞紐幾內亞" => "巴布亚新几内亚", "布基納法索" => "布基纳法索", "布吉納法索" => "布基纳法索", "蒲隆地" => "布隆迪", -"布隆迪" => "布隆迪", -"希臘" => "希腊", "帛琉" => "帕劳", "義大利" => "意大利", -"意大利" => "意大利", -"所羅門群島" => "所罗门群岛", "索羅門群島" => "所罗门群岛", "汶萊" => "文莱", -"斯威士蘭" => "斯威士兰", "史瓦濟蘭" => "斯威士兰", -"斯洛文尼亞" => "斯洛文尼亚", "斯洛維尼亞" => "斯洛文尼亚", -"新西蘭" => "新西兰", "紐西蘭" => "新西兰", -"格林納達" => "格林纳达", "格瑞那達" => "格林纳达", -"格魯吉亞" => "乔治亚", -"喬治亞" => "乔治亚", -"梵蒂岡" => "梵蒂冈", -"毛里塔尼亞" => "毛里塔尼亚", "茅利塔尼亞" => "毛里塔尼亚", "毛里裘斯" => "毛里求斯", "模里西斯" => "毛里求斯", "沙地阿拉伯" => "沙特阿拉伯", "沙烏地阿拉伯" => "沙特阿拉伯", -"波斯尼亞黑塞哥維那" => "波斯尼亚和黑塞哥维那", "波士尼亞赫塞哥維納" => "波斯尼亚和黑塞哥维那", -"津巴布韋" => "津巴布韦", "辛巴威" => "津巴布韦", "宏都拉斯" => "洪都拉斯", -"洪都拉斯" => "洪都拉斯", -"特立尼達和多巴哥" => "特立尼达和托巴哥", "千里達托貝哥" => "特立尼达和托巴哥", -"瑙魯" => "瑙鲁", "諾魯" => "瑙鲁", -"瓦努阿圖" => "瓦努阿图", "萬那杜" => "瓦努阿图", "溫納圖" => "瓦努阿图", -"科摩羅" => "科摩罗", "葛摩" => "科摩罗", "象牙海岸" => "科特迪瓦", "突尼西亞" => "突尼斯", -"索馬里" => "索马里", "索馬利亞" => "索马里", -"老撾" => "老挝", "寮國" => "老挝", "肯雅" => "肯尼亚", "肯亞" => "肯尼亚", "蘇利南" => "苏里南", "莫三比克" => "莫桑比克", -"莫桑比克" => "莫桑比克", -"萊索托" => "莱索托", "賴索托" => "莱索托", -"貝寧" => "贝宁", "貝南" => "贝宁", -"贊比亞" => "赞比亚", "尚比亞" => "赞比亚", "亞塞拜然" => "阿塞拜疆", -"阿塞拜疆" => "阿塞拜疆", -"阿拉伯聯合酋長國" => "阿拉伯联合酋长国", "阿拉伯聯合大公國" => "阿拉伯联合酋长国", "南韓" => "韩国", -"馬爾代夫" => "马尔代夫", "馬爾地夫" => "马尔代夫", "馬爾他" => "马耳他", "馬利共和國" => "马里共和国", @@ -11415,7 +11284,7 @@ "泡麵" => "方便面", "笨豬跳" => "蹦极跳", "绑紧跳" => "蹦极跳", -"冷盤 " => "凉菜", +"冷盤" => "凉菜", "冷菜" => "凉菜", "散钱" => "零钱", "谐星" => "笑星", @@ -11443,16 +11312,12 @@ "積架" => "捷豹", "福斯" => "大众", "福士" => "大众", -"雪鐵龍" => "雪铁龙", "萬事得" => "马自达", -"馬自達" => "马自达", "寶獅" => "标志", "拿破崙" => "拿破仑", "布殊" => "布什", "布希" => "布什", "柯林頓" => "克林顿", -"克林頓" => "克林顿", -"薩達姆" => "萨达姆", "海珊" => "萨达姆", "梵谷" => "凡高", "大衛碧咸" => "大卫·贝克汉姆", @@ -11472,6 +11337,7 @@ "方便面" => "快速面", "速食麵" => "快速面", "即食麵" => "快速面", +"泡麵" => "快速面", "蹦极跳" => "绑紧跳", "笨豬跳" => "绑紧跳", "凉菜" => "冷菜", @@ -11483,6 +11349,5 @@ "民乐" => "华乐", "住房" => "住屋", "房价" => "屋价", -"泡麵" => "快速面", ); \ No newline at end of file Modified: branches/visual_diff/phase3/includes/api/ApiLogin.php =================================================================== --- branches/visual_diff/phase3/includes/api/ApiLogin.php 2008-08-17 23:32:07 UTC (rev 39562) +++ branches/visual_diff/phase3/includes/api/ApiLogin.php 2008-08-18 00:10:23 UTC (rev 39563) @@ -139,6 +139,9 @@ $result['result'] = 'CreateBlocked'; $result['details'] = 'Your IP address is blocked from account creation'; break; + case LoginForm :: THROTTLED : + $result['result'] = 'Throttled'; + break; default : ApiBase :: dieDebug(__METHOD__, 'Unhandled case value'); } Modified: branches/visual_diff/phase3/includes/api/ApiQuery.php =================================================================== --- branches/visual_diff/phase3/includes/api/ApiQuery.php 2008-08-17 23:32:07 UTC (rev 39562) +++ branches/visual_diff/phase3/includes/api/ApiQuery.php 2008-08-18 00:10:23 UTC (rev 39563) @@ -229,8 +229,8 @@ * Create instances of all modules requested by the client */ private function InstantiateModules(&$modules, $param, $moduleList) { - $list = $this->params[$param]; - if (isset ($list)) + $list = @$this->params[$param]; + if (!is_null ($list)) foreach ($list as $moduleName) $modules[] = new $moduleList[$moduleName] ($this, $moduleName); } Modified: branches/visual_diff/phase3/includes/api/ApiQueryCategories.php =================================================================== --- branches/visual_diff/phase3/includes/api/ApiQueryCategories.php 2008-08-17 23:32:07 UTC (rev 39562) +++ branches/visual_diff/phase3/includes/api/ApiQueryCategories.php 2008-08-18 00:10:23 UTC (rev 39563) @@ -54,6 +54,7 @@ $params = $this->extractRequestParams(); $prop = $params['prop']; + $show = array_flip((array)$params['show']); $this->addFields(array ( 'cl_from', @@ -91,6 +92,15 @@ "(cl_from = $clfrom AND ". "cl_to >= '$clto')"); } + if(isset($show['hidden']) && isset($show['!hidden'])) + $this->dieUsage("Incorrect parameter - mutually exclusive values may not be supplied", 'show'); + if(isset($show['hidden']) || isset($show['!hidden'])) + { + $this->addTables('category'); + $this->addWhere(array( 'cl_to = cat_title', + 'cat_hidden' => isset($show['hidden']))); + } + # Don't order by cl_from if it's constant in the WHERE clause if(count($this->getPageSet()->getGoodTitles()) == 1) $this->addOption('ORDER BY', 'cl_to'); @@ -166,6 +176,13 @@ 'timestamp', ) ), + 'show' => array( + ApiBase :: PARAM_ISMULTI => true, + ApiBase :: PARAM_TYPE => array( + 'hidden', + '!hidden', + ) + ), 'limit' => array( ApiBase :: PARAM_DFLT => 10, ApiBase :: PARAM_TYPE => 'limit', @@ -181,6 +198,7 @@ return array ( 'prop' => 'Which additional properties to get for each category.', 'limit' => 'How many categories to return', + 'show' => 'Which kind of categories to show', 'continue' => 'When more results are available, use this to continue', ); } Modified: branches/visual_diff/phase3/includes/api/ApiQueryLinks.php =================================================================== --- branches/visual_diff/phase3/includes/api/ApiQueryLinks.php 2008-08-17 23:32:07 UTC (rev 39562) +++ branches/visual_diff/phase3/includes/api/ApiQueryLinks.php 2008-08-18 00:10:23 UTC (rev 39563) @@ -76,9 +76,9 @@ $params = $this->extractRequestParams(); $this->addFields(array ( - $this->prefix . '_from pl_from', - $this->prefix . '_namespace pl_namespace', - $this->prefix . '_title pl_title' + $this->prefix . '_from AS pl_from', + $this->prefix . '_namespace AS pl_namespace', + $this->prefix . '_title AS pl_title' )); $this->addTables($this->table); Modified: branches/visual_diff/phase3/includes/api/ApiQuerySearch.php =================================================================== --- branches/visual_diff/phase3/includes/api/ApiQuerySearch.php 2008-08-17 23:32:07 UTC (rev 39562) +++ branches/visual_diff/phase3/includes/api/ApiQuerySearch.php 2008-08-18 00:10:23 UTC (rev 39563) @@ -93,8 +93,9 @@ break; } - // Silently skip broken titles - if ($result->isBrokenTitle()) continue; + // Silently skip broken and missing titles + if ($result->isBrokenTitle() || $result->isMissingRevision()) + continue; $title = $result->getTitle(); if (is_null($resultPageSet)) { Modified: branches/visual_diff/phase3/includes/parser/CoreParserFunctions.php =================================================================== --- branches/visual_diff/phase3/includes/parser/CoreParserFunctions.php 2008-08-17 23:32:07 UTC (rev 39562) +++ branches/visual_diff/phase3/includes/parser/CoreParserFunctions.php 2008-08-18 00:10:23 UTC (rev 39563) @@ -56,7 +56,10 @@ static function intFunction( $parser, $part1 = '' /*, ... */ ) { if ( strval( $part1 ) !== '' ) { $args = array_slice( func_get_args(), 2 ); - return wfMsgReal( $part1, $args, true ); + $message = wfMsgGetKey( $part1, true, false, false ); + $message = $parser->replaceVariables( $message ); // like $wgMessageCache->transform() + $message = wfMsgReplaceArgs( $message, $args ); + return $message; } else { return array( 'found' => false ); } @@ -167,10 +170,16 @@ * @return string */ static function displaytitle( $parser, $text = '' ) { + global $wgRestrictDisplayTitle; $text = trim( Sanitizer::decodeCharReferences( $text ) ); - $title = Title::newFromText( $text ); - if( $title instanceof Title && $title->getFragment() == '' && $title->equals( $parser->mTitle ) ) + + if ( !$wgRestrictDisplayTitle ) { $parser->mOutput->setDisplayTitle( $text ); + } else { + $title = Title::newFromText( $text ); + if( $title instanceof Title && $title->getFragment() == '' && $title->equals( $parser->mTitle ) ) + $parser->mOutput->setDisplayTitle( $text ); + } return ''; } Copied: branches/visual_diff/phase3/includes/parser/LinkHolderArray.php (from rev 39562, trunk/phase3/includes/parser/LinkHolderArray.php) =================================================================== --- branches/visual_diff/phase3/includes/parser/LinkHolderArray.php (rev 0) +++ branches/visual_diff/phase3/includes/parser/LinkHolderArray.php 2008-08-18 00:10:23 UTC (rev 39563) @@ -0,0 +1,406 @@ +<?php + +class LinkHolderArray { + var $batchSize = 1000; + + var $internals = array(), $interwikis = array(); + var $size = 0; + var $parent; + + function __construct( $parent ) { + $this->parent = $parent; + } + + /** + * Merge another LinkHolderArray into this one + */ + function merge( $other ) { + foreach ( $other->internals as $ns => $entries ) { + $this->size += count( $entries ); + if ( !isset( $this->internals[$ns] ) ) { + $this->internals[$ns] = $entries; + } else { + $this->internals[$ns] += $entries; + } + } + $this->interwikis += $other->interwikis; + } + + /** + * Returns true if the memory requirements of this object are getting large + */ + function isBig() { + return $this->size > $this->batchSize; + } + + /** + * Clear all stored link holders. + * Make sure you don't have any text left using these link holders, before you call this + */ + function clear() { + $this->internals = array(); + $this->interwikis = array(); + $this->size = 0; + } + + /** + * Make a link placeholder. The text returned can be later resolved to a real link with + * replaceLinkHolders(). This is done for two reasons: firstly to avoid further + * parsing of interwiki links, and secondly to allow all existence checks and + * article length checks (for stub links) to be bundled into a single query. + * + */ + function makeHolder( $nt, $text = '', $query = '', $trail = '', $prefix = '' ) { + wfProfileIn( __METHOD__ ); + if ( ! is_object($nt) ) { + # Fail gracefully + $retVal = "<!-- ERROR -->{$prefix}{$text}{$trail}"; + } else { + # Separate the link trail from the rest of the link + list( $inside, $trail ) = Linker::splitTrail( $trail ); + + $entry = array( + 'title' => $nt, + 'text' => $prefix.$text.$inside, + 'pdbk' => $nt->getPrefixedDBkey(), + ); + if ( $query !== '' ) { + $entry['query'] = $query; + } + + if ( $nt->isExternal() ) { + // Use a globally unique ID to keep the objects mergable + $key = $this->parent->nextLinkID(); + $this->interwikis[$key] = $entry; + $retVal = "<!--IWLINK $key-->{$trail}"; + } else { + $key = $this->parent->nextLinkID(); + $ns = $nt->getNamespace(); + $this->internals[$ns][$key] = $entry; + $retVal = "<!--LINK $ns:$key-->{$trail}"; + } + $this->size++; + } + wfProfileOut( __METHOD__ ); + return $retVal; + } + + /** + * Replace <!--LINK--> link placeholders with actual links, in the buffer + * Placeholders created in Skin::makeLinkObj() + * Returns an array of link CSS classes, indexed by PDBK. + */ + function replace( &$text ) { + wfProfileIn( __METHOD__ ); + + $colours = $this->replaceInternal( $text ); + $this->replaceInterwiki( $text ); + + wfProfileOut( __METHOD__ ); + return $colours; + } + + /** + * Replace internal links + */ + protected function replaceInternal( &$text ) { + if ( !$this->internals ) { + return; + } + + wfProfileIn( __METHOD__ ); + global $wgUser, $wgContLang; + + $pdbks = array(); + $colours = array(); + $linkcolour_ids = array(); + $sk = $this->parent->getOptions()->getSkin(); + $linkCache = LinkCache::singleton(); + $output = $this->parent->getOutput(); + + wfProfileIn( __METHOD__.'-check' ); + $dbr = wfGetDB( DB_SLAVE ); + $page = $dbr->tableName( 'page' ); + $threshold = $wgUser->getOption('stubthreshold'); + + # Sort by namespace + ksort( $this->internals ); + + # Generate query + $query = false; + $current = null; + foreach ( $this->internals as $ns => $entries ) { + foreach ( $entries as $index => $entry ) { + $key = "$ns:$index"; + $title = $entry['title']; + $pdbk = $entry['pdbk']; + + # Skip invalid entries. + # Result will be ugly, but prevents crash. + if ( is_null( $title ) ) { + continue; + } + + # Check if it's a static known link, e.g. interwiki + if ( $title->isAlwaysKnown() ) { + $colours[$pdbk] = ''; + } elseif ( ( $id = $linkCache->getGoodLinkID( $pdbk ) ) != 0 ) { + $colours[$pdbk] = ''; + $output->addLink( $title, $id ); + } elseif ( $linkCache->isBadLink( $pdbk ) ) { + $colours[$pdbk] = 'new'; + } elseif ( $title->getNamespace() == NS_SPECIAL && !SpecialPage::exists( $pdbk ) ) { + $colours[$pdbk] = 'new'; + } else { + # Not in the link cache, add it to the query + if ( !isset( $current ) ) { + $current = $ns; + $query = "SELECT page_id, page_namespace, page_title, page_is_redirect, page_len"; + $query .= " FROM $page WHERE (page_namespace=$ns AND page_title IN("; + } elseif ( $current != $ns ) { + $current = $ns; + $query .= ")) OR (page_namespace=$ns AND page_title IN("; + } else { + $query .= ', '; + } + + $query .= $dbr->addQuotes( $title->getDBkey() ); + } + } + } + if ( $query ) { + $query .= '))'; + + $res = $dbr->query( $query, __METHOD__ ); + + # Fetch data and form into an associative array + # non-existent = broken + while ( $s = $dbr->fetchObject($res) ) { + $title = Title::makeTitle( $s->page_namespace, $s->page_title ); + $pdbk = $title->getPrefixedDBkey(); + $linkCache->addGoodLinkObj( $s->page_id, $title, $s->page_len, $s->page_is_redirect ); + $output->addLink( $title, $s->page_id ); + $colours[$pdbk] = $sk->getLinkColour( $title, $threshold ); + //add id to the extension todolist + $linkcolour_ids[$s->page_id] = $pdbk; + } + unset( $res ); + //pass an array of page_ids to an extension + wfRunHooks( 'GetLinkColours', array( $linkcolour_ids, &$colours ) ); + } + wfProfileOut( __METHOD__.'-check' ); + + # Do a second query for different language variants of links and categories + if($wgContLang->hasVariants()){ + $linkBatch = new LinkBatch(); + $variantMap = array(); // maps $pdbkey_Variant => $keys (of link holders) + $categoryMap = array(); // maps $category_variant => $category (dbkeys) + $varCategories = array(); // category replacements oldDBkey => newDBkey + + $categories = $output->getCategoryLinks(); + + // Add variants of links to link batch + foreach ( $this->internals as $ns => $entries ) { + foreach ( $entries as $index => $entry ) { + $key = "$ns:$index"; + $pdbk = $entry['pdbk']; + $title = $entry['title']; + $titleText = $title->getText(); + + // generate all variants of the link title text + $allTextVariants = $wgContLang->convertLinkToAllVariants($titleText); + + // if link was not found (in first query), add all variants to query + if ( !isset($colours[$pdbk]) ){ + foreach($allTextVariants as $textVariant){ + if($textVariant != $titleText){ + $variantTitle = Title::makeTitle( $ns, $textVariant ); + if(is_null($variantTitle)) continue; + $linkBatch->addObj( $variantTitle ); + $variantMap[$variantTitle->getPrefixedDBkey()][] = $key; + } + } + } + } + } + + // process categories, check if a category exists in some variant + foreach( $categories as $category ){ + $variants = $wgContLang->convertLinkToAllVariants($category); + foreach($variants as $variant){ + if($variant != $category){ + $variantTitle = Title::newFromDBkey( Title::makeName(NS_CATEGORY,$variant) ); + if(is_null($variantTitle)) continue; + $linkBatch->addObj( $variantTitle ); + $categoryMap[$variant] = $category; + } + } + } + + + if(!$linkBatch->isEmpty()){ + // construct query + $titleClause = $linkBatch->constructSet('page', $dbr); + + $variantQuery = "SELECT page_id, page_namespace, page_title, page_is_redirect, page_len"; + + $variantQuery .= " FROM $page WHERE $titleClause"; + + $varRes = $dbr->query( $variantQuery, __METHOD__ ); + + // for each found variants, figure out link holders and replace + while ( $s = $dbr->fetchObject($varRes) ) { + + $variantTitle = Title::makeTitle( $s->page_namespace, $s->page_title ); + $varPdbk = $variantTitle->getPrefixedDBkey(); + $vardbk = $variantTitle->getDBkey(); + + $holderKeys = array(); + if(isset($variantMap[$varPdbk])){ + $holderKeys = $variantMap[$varPdbk]; + $linkCache->addGoodLinkObj( $s->page_id, $variantTitle, $s->page_len, $s->page_is_redirect ); + $output->addLink( $variantTitle, $s->page_id ); + } + + // loop over link holders + foreach($holderKeys as $key){ + list( $ns, $index ) = explode( ':', $key, 2 ); + $entry =& $this->internals[$ns][$index]; + $pdbk = $entry['pdbk']; + + if(!isset($colours[$pdbk])){ + // found link in some of the variants, replace the link holder data + $entry['title'] = $variantTitle; + $entry['pdbk'] = $varPdbk; + + // set pdbk and colour + $colours[$varPdbk] = $sk->getLinkColour( $variantTitle, $threshold ); + $linkcolour_ids[$s->page_id] = $pdbk; + } + wfRunHooks( 'GetLinkColours', array( $linkcolour_ids, &$colours ) ); + } + + // check if the object is a variant of a category + if(isset($categoryMap[$vardbk])){ + $oldkey = $categoryMap[$vardbk]; + if($oldkey != $vardbk) + $varCategories[$oldkey]=$vardbk; + } + } + + // rebuild the categories in original order (if there are replacements) + if(count($varCategories)>0){ + $newCats = array(); + $originalCats = $output->getCategories(); + foreach($originalCats as $cat => $sortkey){ + // make the replacement + if( array_key_exists($cat,$varCategories) ) + $newCats[$varCategories[$cat]] = $sortkey; + else $newCats[$cat] = $sortkey; + } + $this->mOutput->parent->setCategoryLinks($newCats); + } + } + } + + # Construct search and replace arrays + wfProfileIn( __METHOD__.'-construct' ); + $replacePairs = array(); + foreach ( $this->internals as $ns => $entries ) { + foreach ( $entries as $index => $entry ) { + $pdbk = $entry['pdbk']; + $title = $entry['title']; + $query = isset( $entry['query'] ) ? $entry['query'] : ''; + $key = "$ns:$index"; + $searchkey = "<!--LINK $key-->"; + if ( !isset( $colours[$pdbk] ) || $colours[$pdbk] == 'new' ) { + $linkCache->addBadLinkObj( $title ); + $colours[$pdbk] = 'new'; + $output->addLink( $title, 0 ); + $replacePairs[$searchkey] = $sk->makeBrokenLinkObj( $title, + $entry['text'], + $query ); + } else { + $replacePairs[$searchkey] = $sk->makeColouredLinkObj( $title, $colours[$pdbk], + $entry['text'], + $query ); + } + } + } + $replacer = new HashtableReplacer( $replacePairs, 1 ); + wfProfileOut( __METHOD__.'-construct' ); + + # Do the thing + wfProfileIn( __METHOD__.'-replace' ); + $text = preg_replace_callback( + '/(<!--LINK .*?-->)/', + $replacer->cb(), + $text); + + wfProfileOut( __METHOD__.'-replace' ); + wfProfileOut( __METHOD__ ); + } + + /** + * Replace interwiki links + */ + protected function replaceInterwiki( &$text ) { + if ( empty( $this->interwikis ) ) { + return; + } + + wfProfileIn( __METHOD__ ); + # Make interwiki link HTML + $sk = $this->parent->getOptions()->getSkin(); + $replacePairs = array(); + foreach( $this->interwikis as $key => $link ) { + $replacePairs[$key] = $sk->link( $link['title'], $link['text'] ); + } + $replacer = new HashtableReplacer( $replacePairs, 1 ); + + $text = preg_replace_callback( + '/<!--IWLINK (.*?)-->/', + $replacer->cb(), + $text ); + wfProfileOut( __METHOD__ ); + } + + /** + * Replace <!--LINK--> link placeholders with plain text of links + * (not HTML-formatted). + * @param string $text + * @return string + */ + function replaceText( $text ) { + wfProfileIn( __METHOD__ ); + + $text = preg_replace_callback( + '/<!--(LINK|IWLINK) (.*?)-->/', + array( &$this, 'replaceTextCallback' ), + $text ); + + wfProfileOut( __METHOD__ ); + return $text; + } + + /** + * @param array $matches + * @return string + * @private + */ + function replaceTextCallback( $matches ) { + $type = $matches[1]; + $key = $matches[2]; + if( $type == 'LINK' ) { + list( $ns, $index ) = explode( ':', $key, 2 ); + if( isset( $this->internals[$ns][$index]['text'] ) ) { + return $this->internals[$ns][$index]['text']; + } + } elseif( $type == 'IWLINK' ) { + if( isset( $this->interwikis[$key]['text'] ) ) { + return $this->interwikis[$key]['text']; + } + } + return $matches[0]; + } +} Modified: branches/visual_diff/phase3/includes/parser/Parser.php =================================================================== --- branches/visual_diff/phase3/includes/parser/Parser.php 2008-08-17 23:32:07 UTC (rev 39562) +++ branches/visual_diff/phase3/includes/parser/Parser.php 2008-08-18 00:10:23 UTC (rev 39563) @@ -98,7 +98,7 @@ # Cleared with clearState(): var $mOutput, $mAutonumber, $mDTopen, $mStripState; var $mIncludeCount, $mArgStack, $mLastSection, $mInPre; - var $mInterwikiLinkHolders, $mLinkHolders; + var $mLinkHolders, $mLinkID; var $mIncludeSizes, $mPPNodeCount, $mDefaultSort; var $mTplExpandCache; // empty-frame expansion cache var $mTplRedirCache, $mTplDomCache, $mHeadings, $mDoubleUnderscores; @@ -179,17 +179,8 @@ $this->mStripState = new StripState; $this->mArgStack = false; $this->mInPre = false; - $this->mInterwikiLinkHolders = array( - 'texts' => array(), - 'titles' => array() - ); - $this->mLinkHolders = array( - 'namespaces' => array(), - 'dbkeys' => array(), - 'queries' => array(), - 'texts' => array(), - 'titles' => array() - ); + $this->mLinkHolders = new LinkHolderArray( $this ); + $this->mLinkID = 0; $this->mRevisionTimestamp = $this->mRevisionId = null; /** @@ -204,7 +195,7 @@ */ #$this->mUniqPrefix = "\x07UNIQ" . Parser::getRandomString(); # Changed to \x7f to allow XML double-parsing -- TS - $this->mUniqPrefix = "\x7fUNIQ" . Parser::getRandomString(); + $this->mUniqPrefix = "\x7fUNIQ" . self::getRandomString(); # Clear these on every parse, bug 4549 @@ -294,7 +285,7 @@ */ global $wgUseTidy, $wgAlwaysUseTidy, $wgContLang; - $fname = 'Parser::parse-' . wfGetCaller(); + $fname = __METHOD__.'-' . wfGetCaller(); wfProfileIn( __METHOD__ ); wfProfileIn( $fname ); @@ -328,7 +319,6 @@ ); $text = preg_replace( array_keys($fixtags), array_values($fixtags), $text ); - # only once and last $text = $this->doBlockLevels( $text, $linestart ); $this->replaceLinkHolders( $text ); @@ -348,7 +338,7 @@ $uniq_prefix = $this->mUniqPrefix; $matches = array(); $elements = array_keys( $this->mTransparentTagHooks ); - $text = Parser::extractTagsAndParams( $elements, $text, $matches, $uniq_prefix ); + $text = self::extractTagsAndParams( $elements, $text, $matches, $uniq_prefix ); foreach( $matches as $marker => $data ) { list( $element, $content, $params, $tag ) = $data; @@ -366,7 +356,7 @@ $text = Sanitizer::normalizeCharReferences( $text ); if (($wgUseTidy and $this->mOptions->mTidy) or $wgAlwaysUseTidy) { - $text = Parser::tidy($text); + $text = self::tidy($text); } else { # attempt to sanitize at least some nesting problems # (bug #2702 and quite a few others) @@ -471,6 +461,8 @@ function &getTitle() { return $this->mTitle; } function getOptions() { return $this->mOptions; } function getRevisionId() { return $this->mRevisionId; } + function getOutput() { return $this->mOutput; } + function nextLinkID() { return $this->mLinkID++; } function getFunctionLang() { global $wgLang, $wgContLang; @@ -658,9 +650,9 @@ ' "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html>'. '<head><title>test</title></head><body>'.$text.'</body></html>'; if( $wgTidyInternal ) { - $correctedtext = Parser::internalTidy( $wrappedtext ); + $correctedtext = self::internalTidy( $wrappedtext ); } else { - $correctedtext = Parser::externalTidy( $wrappedtext ); + $correctedtext = self::externalTidy( $wrappedtext ); } if( is_null( $correctedtext ) ) { wfDebug( "Tidy error detected!\n" ); @@ -677,8 +669,7 @@ */ function externalTidy( $text ) { global $wgTidyConf, $wgTidyBin, $wgTidyOpts; - $fname = 'Parser::externalTidy'; - wfProfileIn( $fname ); + wfProfileIn( __METHOD__ ); $cleansource = ''; $opts = ' -utf8'; @@ -707,7 +698,7 @@ } } - wfProfileOut( $fname ); + wfProfileOut( __METHOD__ ); if( $cleansource == '' && $text != '') { // Some kind of error happened, so we couldn't get the corrected text. @@ -729,8 +720,7 @@ */ function internalTidy( $text ) { global $wgTidyConf, $IP, $wgDebugTidy; - $fname = 'Parser::internalTidy'; - wfProfileIn( $fname ); + wfProfileIn( __METHOD__ ); $tidy = new tidy; $tidy->parseString( $text, $wgTidyConf, 'utf8' ); @@ -748,7 +738,7 @@ "\n-->"; } - wfProfileOut( $fname ); + wfProfileOut( __METHOD__ ); return $cleansource; } @@ -758,34 +748,35 @@ * @private */ function doTableStuff ( $text ) { - $fname = 'Parser::doTableStuff'; - wfProfileIn( $fname ); + wfProfileIn( __METHOD__ ); - $lines = explode ( "\n" , $text ); + $lines = StringUtils::explode( "\n", $text ); + $out = ''; $td_history = array (); // Is currently a td tag open? $last_tag_history = array (); // Save history of last lag activated (td, th or caption) $tr_history = array (); // Is currently a tr tag open? $tr_attributes = array (); // history of tr attributes $has_opened_tr = array(); // Did this table open a <tr> element? $indent_level = 0; // indent level of the table - foreach ( $lines as $key => $line ) - { - $line = trim ( $line ); + foreach ( $lines as $outLine ) { + $line = trim( $outLine ); + if( $line == '' ) { // empty line, go to next line + $out .= "\n"; continue; } - $first_character = $line{0}; + $first_character = $line[0]; $matches = array(); - if ( preg_match( '/^(:*)\{\|(.*)$/' , $line , $matches ) ) { + if ( preg_match( '/^(:*)\{\|(.*)$/', $line , $matches ) ) { // First check if we are starting a new table $indent_level = strlen( $matches[1] ); $attributes = $this->mStripState->unstripBoth( $matches[2] ); $attributes = Sanitizer::fixTagAttributes ( $attributes , 'table' ); - $lines[$key] = str_repeat( '<dl><dd>' , $indent_level ) . "<table{$attributes}>"; + $outLine = str_repeat( '<dl><dd>' , $indent_level ) . "<table{$attributes}>"; array_push ( $td_history , false ); array_push ( $last_tag_history , '' ); array_push ( $tr_history , false ); @@ -793,6 +784,7 @@ array_push ( $has_opened_tr , false ); } else if ( count ( $td_history ) == 0 ) { // Don't do any of the following + $out .= $outLine."\n"; continue; } else if ( substr ( $line , 0 , 2 ) == '|}' ) { // We are ending a table @@ -811,7 +803,7 @@ $line = "</{$last_tag}>{$line}"; } array_pop ( $tr_attributes ); - $lines[$key] = $line . str_repeat( '</dd></dl>' , $indent_level ); + $outLine = $line . str_repeat( '</dd></dl>' , $indent_level ); } else if ( substr ( $line , 0 , 2 ) == '|-' ) { // Now we have a table row $line = preg_replace( '#^\|-+#', '', $line ); @@ -835,7 +827,7 @@ $line = "</{$last_tag}>{$line}"; } - $lines[$key] = $line; + $outLine = $line; array_push ( $tr_history , false ); array_push ( $td_history , false ); array_push ( $last_tag_history , '' ); @@ -859,7 +851,7 @@ // attribute values containing literal "||". $cells = StringUtils::explodeMarkup( '||' , $line ); - $lines[$key] = ''; + $outLine = ''; // Loop through each table cell foreach ( $cells as $cell ) @@ -910,38 +902,42 @@ $cell = "{$previous}<{$last_tag}{$attributes}>{$cell_data[1]}"; } - $lines[$key] .= $cell; + $outLine .= $cell; array_push ( $td_history , true ); } } + $out .= $outLine . "\n"; } // Closing open td, tr && table while ( count ( $td_history ) > 0 ) { if ( array_pop ( $td_history ) ) { - $lines[] = '</td>' ; + $out .= "</td>\n"; } if ( array_pop ( $tr_history ) ) { - $lines[] = '</tr>' ; + $out .= "</tr>\n"; } if ( !array_pop ( $has_opened_tr ) ) { - $lines[] = "<tr><td></td></tr>" ; + $out .= "<tr><td></td></tr>\n" ; } - $lines[] = '</table>' ; + $out .= "</table>\n"; } - $output = implode ( "\n" , $lines ) ; + // Remove trailing line-ending (b/c) + if ( substr( $out, -1 ) == "\n" ) { + $out = substr( $out, 0, -1 ); + } // special case: don't return empty table - if( $output == "<table>\n<tr><td></td></tr>\n</table>" ) { - $output = ''; + if( $out == "<table>\n<tr><td></td></tr>\n</table>" ) { + $out = ''; } - wfProfileOut( $fname ); + wfProfileOut( __METHOD__ ); - return $output; + return $out; } /** @@ -952,12 +948,11 @@ */ function internalParse( $text ) { $isMain = true; - $fname = 'Parser::internalParse'; - wfProfileIn( $fname ); + wfProfileIn( __METHOD__ ); # Hook to suspend the parser in this state if ( !wfRunHooks( 'ParserBeforeInternalParse', array( &$this, &$text, &$this->mStripState ) ) ) { - wfProfileOut( $fname ); + wfProfileOut( __METHOD__ ); return $text ; } @@ -990,7 +985,7 @@ $text = $this->doMagicLinks( $text ); $text = $this->formatHeadings( $text, $isMain ); - wfProfileOut( $fname ); + wfProfileOut( __METHOD__ ); return $text; } @@ -1060,14 +1055,13 @@ * @private */ function doHeadings( $text ) { - $fname = 'Parser::doHeadings'; - wfProfileIn( $fname ); + wfProfileIn( __METHOD__ ); for ( $i = 6; $i >= 1; --$i ) { $h = str_repeat( '=', $i ); $text = preg_replace( "/^$h(.+)$h\\s*$/m", "<h$i>\\1</h$i>", $text ); } - wfProfileOut( $fname ); + wfProfileOut( __METHOD__ ); return $text; } @@ -1077,15 +1071,14 @@ * @return string the altered text */ function doAllQuotes( $text ) { - $fname = 'Parser::doAllQuotes'; - wfProfileIn( $fname ); + wfProfileIn( __METHOD__ ); $outtext = ''; - $lines = explode( "\n", $text ); + $lines = StringUtils::explode( "\n", $text ); foreach ( $lines as $line ) { - $outtext .= $this->doQuotes ( $line ) . "\n"; + $outtext .= $this->doQuotes( $line ) . "\n"; } $outtext = substr($outtext, 0,-1); - wfProfileOut( $fname ); + wfProfileOut( __METHOD__ ); return $outtext; } @@ -1264,8 +1257,7 @@ */ function replaceExternalLinks( $text ) { global $wgContLang; - $fname = 'Parser::replaceExternalLinks'; - wfProfileIn( $fname ); + wfProfileIn( __METHOD__ ); $sk = $this->mOptions->getSkin(); @@ -1335,11 +1327,11 @@ # Register link in the output object. # Replace unnecessary URL escape codes with the referenced character # This prevents spammers from hiding links from the filters - $pasteurized = Parser::replaceUnusualEscapes( $url ); + $pasteurized = self::replaceUnusualEscapes( $url ); $this->mOutput->addExternalLink( $pasteurized ); } - wfProfileOut( $fname ); + wfProfileOut( __METHOD__ ); return $s; } @@ -1349,8 +1341,7 @@ */ function replaceFreeExternalLinks( $text ) { global $wgContLang; - $fname = 'Parser::replaceFreeExternalLinks'; - wfProfileIn( $fname ); + wfProfileIn( __METHOD__ ); $bits = preg_split( '/(\b(?:' . wfUrlProtocols() . '))/S', $text, -1, PREG_SPLIT_DELIM_CAPTURE ); $s = array_shift( $bits ); @@ -1412,7 +1403,7 @@ $text = $sk->makeExternalLink( $url, $wgContLang->markNoConversion($url), true, 'free', $this->mTitle->getNamespace() ); # Register it in the output object... # Replace unnecessary URL escape codes with their equivalent characters - $pasteurized = Parser::replaceUnusualEscapes( $url ); + $pasteurized = self::replaceUnusualEscapes( $url ); $this->mOutput->addExternalLink( $pasteurized ); } $s .= $text . $trail; @@ -1420,7 +1411,7 @@ $s .= $protocol . $remainder; } } - wfProfileOut( $fname ); + wfProfileOut( __METHOD__ ); return $s; } @@ -1436,7 +1427,7 @@ */ static function replaceUnusualEscapes( $url ) { return preg_replace_callback( '/%[0-9A-Fa-f]{2}/', - array( 'Parser', 'replaceUnusualEscapesCallback' ), $url ); + array( __CLASS__, 'replaceUnusualEscapesCallback' ), $url ); } /** @@ -1480,35 +1471,48 @@ /** * Process [[ ]] wikilinks + * @return processed text * * @private */ function replaceInternalLinks( $s ) { + $this->mLinkHolders->merge( $this->replaceInternalLinks2( $s ) ); + return $s; + } + + /** + * Process [[ ]] wikilinks + * @return LinkHolderArray + * + * @private + */ + function replaceInternalLinks2( &$s ) { global $wgContLang; - static $fname = 'Parser::replaceInternalLinks' ; - wfProfileIn( $fname ); + wfProfileIn( __METHOD__ ); - wfProfileIn( $fname.'-setup' ); - static $tc = FALSE; + wfProfileIn( __METHOD__.'-setup' ); + static $tc = FALSE, $e1, $e1_img; # the % is needed to support urlencoded titles as well - if ( !$tc ) { $tc = Title::legalChars() . '#%'; } + if ( !$tc ) { + $tc = Title::legalChars() . '#%'; + # Match a link having the form [[namespace:link|alternate]]trail + $e1 = "/^([{$tc}]+)(?:\\|(.+?))?]](.*)\$/sD"; + # Match cases where there is no "]]", which might still be images + $e1_img = "/^([{$tc}]+)\\|(.*)\$/sD"; + } $sk = $this->mOptions->getSkin(); + $holders = new LinkHolderArray( $this ); #split the entire text string on occurences of [.[. - $a = explode( '[.[.', ' ' . $s ); + $a = StringUtils::explode( '[.[.', ' ' . $s ); #get the first element (all text up to first [.[.), and remove the space we added - $s = array_shift( $a ); + $s = $a->current(); + $a->next(); + $line = $a->current(); # Workaround for broken ArrayIterator::next() that returns "void" $s = substr( $s, 1 ); - # Match a link having the form [[namespace:link|alternate]]trail - static $e1 = FALSE; - if ( !$e1 ) { $e1 = "/^([{$tc}]+)(?:\\|(.+?))?]](.*)\$/sD"; } - # Match cases where there is no "]]", which might still be images - static $e1_img = FALSE; - if ( !$e1_img ) { $e1_img = "/^([{$tc}]+)\\|(.*)\$/sD"; } - $useLinkPrefixExtension = $wgContLang->linkPrefixExtension(); $e2 = null; if ( $useLinkPrefixExtension ) { @@ -1518,8 +1522,8 @@ } if( is_null( $this->mTitle ) ) { - wfProfileOut( $fname ); - wfProfileOut( $fname.'-setup' ); + wfProfileOut( __METHOD__ ); + wfProfileOut( __METHOD__.'-setup' ); throw new MWException( __METHOD__.": \$this->mTitle is null\n" ); } $nottalk = !$this->mTitle->isTalkPage(); @@ -1541,13 +1545,20 @@ $selflink = array($this->mTitle->getPrefixedText()); } $useSubpages = $this->areSubpagesAllowed(); - wfProfileOut( $fname.'-setup' ); + wfProfileOut( __METHOD__.'-setup' ); # Loop for each link - for ($k = 0; isset( $a[$k] ); $k++) { - $line = $a[$k]; + for ( ; $line !== false && $line !== null ; $a->next(), $line = $a->current() ) { + # Check for excessive memory usage + if ( $holders->isBig() ) { + # Too big + # Do the existence check, replace the link holders and clear the array + $holders->replace( $s ); + $holders->clear(); + } + if ( $useLinkPrefixExtension ) { - wfProfileIn( $fname.'-prefixhandling' ); + wfProfileIn( __METHOD__.'-prefixhandling' ); if ( preg_match( $e2, $s, $m ) ) { $prefix = $m[2]; $s = $m[1]; @@ -1559,12 +1570,12 @@ $prefix = $first_prefix; $first_prefix = false; } - wfProfileOut( $fname.'-prefixhandling' ); + wfProfileOut( __METHOD__.'-prefixhandling' ); } $might_be_img = false; - wfProfileIn( "$fname-e1" ); + wfProfileIn( __METHOD__."-e1" ); if ( preg_match( $e1, $line, $m ) ) { # page with normal text or alt $text = $m[2]; # If we get a ] at the beginning of $m[3] that means we have a link that's something like: @@ -1598,18 +1609,18 @@ $trail = ""; } else { # Invalid form; output directly $s .= $prefix . '[.[.' . $line ; - wfProfileOut( "$fname-e1" ); + wfProfileOut( __METHOD__."-e1" ); continue; } - wfProfileOut( "$fname-e1" ); - wfProfileIn( "$fname-misc" ); + wfProfileOut( __METHOD__."-e1" ); + wfProfileIn( __METHOD__."-misc" ); # Don't allow internal links to pages containing # PROTO: where PROTO is a valid URL protocol; these # should be external links. if (preg_match('/^\b(?:' . wfUrlProtocols() . ')/', $m[1])) { $s .= $prefix . '[.[.' . $line ; - wfProfileOut( "$fname-misc" ); + wfProfileOut( __METHOD__."-misc" ); continue; } @@ -1626,27 +1637,30 @@ $link = substr($link, 1); } - wfProfileOut( "$fname-misc" ); - wfProfileIn( "$fname-title" ); + wfProfileOut( __METHOD__."-misc" ); + wfProfileIn( __METHOD__."-title" ); $nt = Title::newFromText( $this->mStripState->unstripNoWiki($link) ); if( !$nt ) { $s .= $prefix . '[.[.' . $line; - wfProfileOut( "$fname-title" ); + wfProfileOut( __METHOD__."-title" ); continue; } $ns = $nt->getNamespace(); $iw = $nt->getInterWiki(); - wfProfileOut( "$fname-title" ); + wfProfileOut( __METHOD__."-title" ); if ($might_be_img) { # if this is actually an invalid link - wfProfileIn( "$fname-might_be_img" ); + wfProfileIn( __METHOD__."-might_be_img" ); if ($ns == NS_IMAGE && $noforce) { #but might be an image $found = false; - while (isset ($a[$k+1]) ) { + while ( true ) { #look at the next 'line' to see if we can close it there - $spliced = array_splice( $a, $k + 1, 1 ); - $next_line = array_shift( $spliced ); + $a->next(); + $next_line = $a->current(); + if ( $next_line === false || $next_line === null ) { + break; + } $m = explode( ']]', $next_line, 3 ); if ( count( $m ) == 3 ) { # the first ]] closes the inner link, the second the image @@ -1666,19 +1680,19 @@ if ( !$found ) { # we couldn't find the end of this imageLink, so output it raw #but don't ignore what might be perfectly normal links in the text we've examined - $text = $this->replaceInternalLinks($text); + $holders->merge( $this->replaceInternalLinks2( $text ) ); $s .= "{$prefix}[[$link|$text"; # note: no $trail, because without an end, there *is* no trail - wfProfileOut( "$fname-might_be_img" ); + wfProfileOut( __METHOD__."-might_be_img" ); continue; } } else { #it's not an image, so output it raw $s .= "{$prefix}[[$link|$text"; # note: no $trail, because without an end, there *is* no trail - wfProfileOut( "$fname-might_be_img" ); + wfProfileOut( __METHOD__."-might_be_img" ); continue; } - wfProfileOut( "$fname-might_be_img" ); + wfProfileOut( __METHOD__."-might_be_img" ); } $wasblank = ( '' == $text ); @@ -1688,41 +1702,38 @@ if( $noforce ) { # Interwikis - wfProfileIn( "$fname-interwiki" ); + wfProfileIn( __METHOD__."-interwiki" ); if( $iw && $this->mOptions->getInterwikiMagic() && $nottalk && $wgContLang->getLanguageName( $iw ) ) { $this->mOutput->addLanguageLink( $nt->getFullText() ); $s = rtrim($s . $prefix); $s .= trim($trail, "\n") == '' ? '': $prefix . $trail; - wfProfileOut( "$fname-interwiki" ); + wfProfileOut( __METHOD__."-interwiki" ); continue; } - wfProfileOut( "$fname-interwiki" ); + wfProfileOut( __METHOD__."-interwiki" ); if ( $ns == NS_IMAGE ) { - wfProfileIn( "$fname-image" ); + wfProfileIn( __METHOD__."-image" ); if ( !wfIsBadImage( $nt->getDBkey(), $this->mTitle ) ) { # recursively parse links inside the image caption # actually, this will parse them in any other parameters, too, # but it might be hard to fix that, and it doesn't matter ATM $text = $this->replaceExternalLinks($text); - $text = $this->replaceInternalLinks($text); + $holders->merge( $this->replaceInternalLinks2( $text ) ); # cloak any absolute URLs inside the image markup, so replaceExternalLinks() won't touch them - $s .= $prefix . $this->armorLinks( $this->makeImage( $nt, $text ) ) . $trail; - $this->mOutput->addImage( $nt->getDBkey() ); + $s .= $prefix . $this->armorLinks( $this->makeImage( $nt, $text, $holders ) ) . $trail; - wfProfileOut( "$fname-image" ); - continue; - } else { - # We still need to record the image's presence on the page - $this->mOutput->addImage( $nt->getDBkey() ); + wfProfileOut( __METHOD__."-image" ); } - wfProfileOut( "$fname-image" ); + $this->mOutput->addImage( $nt->getDBkey() ); + wfProfileOut( __METHOD__."-image" ); + continue; } if ( $ns == NS_CATEGORY ) { - wfProfileIn( "$fname-category" ); + wfProfileIn( __METHOD__."-category" ); $s = rtrim($s . "\n"); # bug 87 if ( $wasblank ) { @@ -1741,7 +1752,7 @@ */ $s .= trim($prefix . $trail, "\n") == '' ? '': $prefix . $trail; - wfProfileOut( "$fname-category" ); + wfProfileOut( __METHOD__."-category" ); continue; } } @@ -1772,7 +1783,7 @@ if( SpecialPage::exists( $nt->getDBkey() ) ) { $s .= $this->makeKnownLinkHolder( $nt, $text, '', $trail, $prefix ); } else { - $s .= $this->makeLinkHolder( $nt, $text, '', $trail, $prefix ); + $s .= $holders->makeHolder( $nt, $text, '', $trail, $prefix ); } continue; } elseif( $ns == NS_IMAGE ) { @@ -1786,10 +1797,10 @@ continue; } } - $s .= $this->makeLinkHolder( $nt, $text, '', $trail, $prefix ); + $s .= $holders->makeHolder( $nt, $text, '', $trail, $prefix ); } - wfProfileOut( $fname ); - return $s; + wfProfileOut( __METHOD__ ); + return $holders; } /** @@ -1798,32 +1809,10 @@ * parsing of interwiki links, and secondly to allow all existence checks and * article length checks (for stub links) to be bundled into a single query. * + * @deprecated */ function makeLinkHolder( &$nt, $text = '', $query = '', $trail = '', $prefix = '' ) { - wfProfileIn( __METHOD__ ); - if ( ! is_object($nt) ) { - # Fail gracefully - $retVal = "<!-- ERROR -->{$prefix}{$text}{$trail}"; - } else { - # Separate the link trail from the rest of the link - list( $inside, $trail ) = Linker::splitTrail( $trail ); - - if ( $nt->isExternal() ) { - $nr = array_push( $this->mInterwikiLinkHolders['texts'], $prefix.$text.$inside ); - $this->mInterwikiLinkHolders['titles'][] = $nt; - $retVal = '<!--IWLINK '. ($nr-1) ."-->{$trail}"; - } else { - $nr = array_push( $this->mLinkHolders['namespaces'], $nt->getNamespace() ); - $this->mLinkHolders['dbkeys'][] = $nt->getDBkey(); - $this->mLinkHolders['queries'][] = $query; - $this->mLinkHolders['texts'][] = $prefix.$text.$inside; - $this->mLinkHolders['titles'][] = $nt; - - $retVal = '<!--LINK '. ($nr-1) ."-->{$trail}"; - } - } - wfProfileOut( __METHOD__ ); - return $retVal; + return $this->mLinkHolders->makeHolder( $nt, $text, $query, $trail, $prefix ); } /** @@ -1889,8 +1878,7 @@ # ../ -- convert to CurrentPage, from CurrentPage/CurrentSubPage # ../Foobar -- convert to CurrentPage/Foobar, from CurrentPage/CurrentSubPage - $fname = 'Parser::maybeDoSubpageLink'; - wfProfileIn( $fname ); + wfProfileIn( __METHOD__ ); $ret = $target; # default return value is no change # Some namespaces don't allow subpages, @@ -1949,7 +1937,7 @@ } } - wfProfileOut( $fname ); + wfProfileOut( __METHOD__ ); return $ret; } @@ -2036,50 +2024,53 @@ * @return string the lists rendered as HTML */ function doBlockLevels( $text, $linestart ) { - $fname = 'Parser::doBlockLevels'; - wfProfileIn( $fname ); + wfProfileIn( __METHOD__ ); # Parsing through the text line by line. The main thing # happening here is handling of block-level elements p, pre, # and making lists from lines starting with * # : etc. # - $textLines = explode( "\n", $text ); + $textLines = StringUtils::explode( "\n", $text ); $lastPrefix = $output = ''; $this->mDTopen = $inBlockElem = false; $prefixLength = 0; $paragraphStack = false; - if ( !$linestart ) { - $output .= array_shift( $textLines ); - } foreach ( $textLines as $oLine ) { + # Fix up $linestart + if ( !$linestart ) { + $output .= $oLine; + $linestart = true; + continue; + } + $lastPrefixLength = strlen( $lastPrefix ); $preCloseMatch = preg_match('/<\\/pre/i', $oLine ); $preOpenMatch = preg_match('/<pre/i', $oLine ); if ( !$this->mInPre ) { # Multiple prefixes may abut each other for nested lists. $prefixLength = strspn( $oLine, '*#:;' ); - $pref = substr( $oLine, 0, $prefixLength ); + $prefix = substr( $oLine, 0, $prefixLength ); # eh? - $pref2 = str_replace( ';', ':', $pref ); + $prefix2 = str_replace( ';', ':', $prefix ); $t = substr( $oLine, $prefixLength ); - $this->mInPre = !empty($preOpenMatch); + $this->mInPre = (bool)$preOpenMatch; } else { # Don't interpret any other prefixes in preformatted text $prefixLength = 0; - $pref = $pref2 = ''; + $prefix = $prefix2 = ''; $t = $oLine; } # List generation - if( $prefixLength && 0 == strcmp( $lastPrefix, $pref2 ) ) { + if( $prefixLength && $lastPrefix === $prefix2 ) { # Same as the last item, so no need to deal with nesting or opening stuff - $output .= $this->nextItem( substr( $pref, -1 ) ); + $output .= $this->nextItem( substr( $prefix, -1 ) ); $paragraphStack = false; - if ( substr( $pref, -1 ) == ';') { + if ( substr( $prefix, -1 ) == ';') { # The one nasty exception: definition lists work like this: # ; title : definition text # So we check for : in the remainder text to split up the @@ -2092,18 +2083,18 @@ } } elseif( $prefixLength || $lastPrefixLength ) { # Either open or close a level... - $commonPrefixLength = $this->getCommon( $pref, $lastPrefix ); + $commonPrefixLength = $this->getCommon( $prefix, $lastPrefix ); $paragraphStack = false; while( $commonPrefixLength < $lastPrefixLength ) { - $output .= $this->closeList( $lastPrefix{$lastPrefixLength-1} ); + $output .= $this->closeList( $lastPrefix[$lastPrefixLength-1] ); --$lastPrefixLength; } if ( $prefixLength <= $commonPrefixLength && $commonPrefixLength > 0 ) { - $output .= $this->nextItem( $pref{$commonPrefixLength-1} ); + $output .= $this->nextItem( $prefix[$commonPrefixLength-1] ); } while ( $prefixLength > $commonPrefixLength ) { - $char = substr( $pref, $commonPrefixLength, 1 ); + $char = substr( $prefix, $commonPrefixLength, 1 ); $output .= $this->openList( $char ); if ( ';' == $char ) { @@ -2115,10 +2106,10 @@ } ++$commonPrefixLength; } - $lastPrefix = $pref2; + $lastPrefix = $prefix2; } if( 0 == $prefixLength ) { - wfProfileIn( "$fname-paragraph" ); + wfProfileIn( __METHOD__."-paragraph" ); # No prefix (not in list)--go to paragraph mode // XXX: use a stack for nestable elements like span, table and div $openmatch = preg_match('/(?:<table|<blockquote|<h1|<h2|<h3|<h4|<h5|<h6|<pre|<tr|<p|<ul|<ol|<li|<\\/tr|<\\/td|<\\/th)/iS', $t ); @@ -2174,7 +2165,7 @@ } } } - wfProfileOut( "$fname-paragraph" ); + wfProfileOut( __METHOD__."-paragraph" ); } // somewhere above we forget to get out of pre block (bug 785) if($preCloseMatch && $this->mInPre) { @@ -2185,7 +2176,7 @@ } } while ( $prefixLength ) { - $output .= $this->closeList( $pref2{$prefixLength-1} ); + $output .= $this->closeList( $prefix2[$prefixLength-1] ); --$prefixLength; } if ( '' != $this->mLastSection ) { @@ -2193,7 +2184,7 @@ $this->mLastSection = ''; } - wfProfileOut( $fname ); + wfProfileOut( __METHOD__ ); return $output; } @@ -2206,13 +2197,12 @@ * return string the position of the ':', or false if none found */ function findColonNoLinks($str, &$before, &$after) { - $fname = 'Parser::findColonNoLinks'; - wfProfileIn( $fname ); + wfProfileIn( __METHOD__ ); $pos = strpos( $str, ':' ); if( $pos === false ) { // Nothing to find! - wfProfileOut( $fname ); + wfProfileOut( __METHOD__ ); return false; } @@ -2221,7 +2211,7 @@ // Easy; no tag nesting to worry about $before = substr( $str, 0, $pos ); $after = substr( $str, $pos+1 ); - wfProfileOut( $fname ); + wfProfileOut( __METHOD__ ); return $pos; } @@ -2245,7 +2235,7 @@ // We found it! $before = substr( $str, 0, $i ); $after = substr( $str, $i + 1 ); - wfProfileOut( $fname ); + wfProfileOut( __METHOD__ ); return $i; } // Embedded in a tag; don't break it. @@ -2255,7 +2245,7 @@ $colon = strpos( $str, ':', $i ); if( $colon === false ) { // Nothing else interesting - wfProfileOut( $fname ); + wfProfileOut( __METHOD__ ); return false; } $lt = strpos( $str, '<', $i ); @@ -2264,7 +2254,7 @@ // We found it! $before = substr( $str, 0, $colon ); $after = substr( $str, $colon + 1 ); - wfProfileOut( $fname ); + wfProfileOut( __METHOD__ ); return $i; } } @@ -2314,8 +2304,8 @@ if( $c == ">" ) { $stack--; if( $stack < 0 ) { - wfDebug( "Invalid input in $fname; too many close tags\n" ); - wfProfileOut( $fname ); + wfDebug( __METHOD__.": Invalid input; too many close tags\n" ); + wfProfileOut( __METHOD__ ); return false; } $state = self::COLON_STATE_TEXT; @@ -2350,14 +2340,14 @@ } break; default: - throw new MWException( "State machine error in $fname" ); + throw new MWException( "State machine error in " . __METHOD__ ); } } if( $stack > 0 ) { - wfDebug( "Invalid input in $fname; not enough close tags (stack $stack, state $state)\n" ); + wfDebug( __METHOD__.": Invalid input; not enough close tags (stack $stack, state $state)\n" ); return false; } - wfProfileOut( $fname ); + wfProfileOut( __METHOD__ ); return false; } @@ -2587,12 +2577,11 @@ * @private */ function initialiseVariables() { - $fname = 'Parser::initialiseVariables'; - wfProfileIn( $fname ); + wfProfileIn( __METHOD__ ); $variableIDs = MagicWord::getVariableIDs(); $this->mVariables = new MagicWordArray( $variableIDs ); - wfProfileOut( $fname ); + wfProfileOut( __METHOD__ ); } /** @@ -2661,8 +2650,7 @@ return $text; } - $fname = __METHOD__; - wfProfileIn( $fname ); + wfProfileIn( __METHOD__ ); if ( $frame === false ) { $frame = $this->getPreprocessor()->newFrame(); @@ -2675,7 +2663,7 @@ $flags = $argsOnly ? PPFrame::NO_TEMPLATES : 0; $text = $frame->expand( $dom, $flags ); - wfProfileOut( $fname ); + wfProfileOut( __METHOD__ ); return $text; } @@ -2738,8 +2726,7 @@ */ function braceSubstitution( $piece, $frame ) { global $wgContLang, $wgLang, $wgAllowDisplayTitle, $wgNonincludableNamespaces; - $fname = __METHOD__; - wfProfileIn( $fname ); + wfProfileIn( __METHOD__ ); wfProfileIn( __METHOD__.'-setup' ); # Flags @@ -2926,7 +2913,7 @@ } } else if ( $wgNonincludableNamespaces && in_array( $title->getNamespace(), $wgNonincludableNamespaces ) ) { $found = false; //access denied - wfDebug( "$fname: template inclusion denied for " . $title->getPrefixedDBkey() ); + wfDebug( __METHOD__.": template inclusion denied for " . $title->getPrefixedDBkey() ); } else { list( $text, $title ) = $this->getTemplateDom( $title ); if ( $text !== false ) { @@ -2960,7 +2947,7 @@ # Recover the source wikitext and return it if ( !$found ) { $text = $frame->virtualBracketedImplode( '{{', '|', '}}', $titleWithSpaces, $args ); - wfProfileOut( $fname ); + wfProfileOut( __METHOD__ ); return array( 'object' => $text ); } @@ -3019,7 +3006,7 @@ $ret = array( 'text' => $text ); } - wfProfileOut( $fname ); + wfProfileOut( __METHOD__ ); return $ret; } @@ -3562,12 +3549,7 @@ # <!--LINK number--> # turns into # link text with suffix - $safeHeadline = preg_replace( '/<!--LINK ([0-9]*)-->/e', - "\$this->mLinkHolders['texts'][\$1]", - $safeHeadline ); - $safeHeadline = preg_replace( '/<!--IWLINK ([0-9]*)-->/e', - "\$this->mInterwikiLinkHolders['texts'][\$1]", - $safeHeadline ); + $safeHeadline = $this->replaceLinkHoldersText( $safeHeadline ); # Strip out HTML (other than plain <sup> and <sub>: bug 8393) $tocline = preg_replace( @@ -3795,7 +3777,7 @@ } else { # Failed to validate; fall back to the default $nickname = $username; - wfDebug( "Parser::getUserSig: $username has bad XML tags in signature.\n" ); + wfDebug( __METHOD__.": $username has bad XML tags in signature.\n" ); } } @@ -3901,19 +3883,17 @@ global $wgTitle; static $executing = false; - $fname = "Parser::transformMsg"; - # Guard against infinite recursion if ( $executing ) { return $text; } $executing = true; - wfProfileIn($fname); + wfProfileIn(__METHOD__); $text = $this->preprocess( $text, $wgTitle, $options ); $executing = false; - wfProfileOut($fname); + wfProfileOut(__METHOD__); return $text; } @@ -4010,7 +3990,7 @@ # Add to function cache $mw = MagicWord::get( $id ); if( !$mw ) - throw new MWException( 'Parser::setFunctionHook() expecting a magic word identifier.' ); + throw new MWException( __METHOD__.'() expecting a magic word identifier.' ); $synonyms = $mw->getSynonyms(); $sensitive = intval( $mw->isCaseSensitive() ); @@ -4046,266 +4026,9 @@ * Replace <!--LINK--> link placeholders with actual links, in the buffer * Placeholders created in Skin::makeLinkObj() * Returns an array of link CSS classes, indexed by PDBK. - * $options is a bit field, RLH_FOR_UPDATE to select for update */ function replaceLinkHolders( &$text, $options = 0 ) { - global $wgUser; - global $wgContLang; - - $fname = 'Parser::replaceLinkHolders'; - wfProfileIn( $fname ); - - $pdbks = array(); - $colours = array(); - $linkcolour_ids = array(); - $sk = $this->mOptions->getSkin(); - $linkCache = LinkCache::singleton(); - - if ( !empty( $this->mLinkHolders['namespaces'] ) ) { - wfProfileIn( $fname.'-check' ); - $dbr = wfGetDB( DB_SLAVE ); - $page = $dbr->tableName( 'page' ); - $threshold = $wgUser->getOption('stubthreshold'); - - # Sort by namespace - asort( $this->mLinkHolders['namespaces'] ); - - # Generate query - $query = false; - $current = null; - foreach ( $this->mLinkHolders['namespaces'] as $key => $ns ) { - # Make title object - $title = $this->mLinkHolders['titles'][$key]; - - # Skip invalid entries. - # Result will be ugly, but prevents crash. - if ( is_null( $title ) ) { - continue; - } - $pdbk = $pdbks[$key] = $title->getPrefixedDBkey(); - - # Check if it's a static known link, e.g. interwiki - if ( $title->isAlwaysKnown() ) { - $colours[$pdbk] = ''; - } elseif ( ( $id = $linkCache->getGoodLinkID( $pdbk ) ) != 0 ) { - $colours[$pdbk] = ''; - $this->mOutput->addLink( $title, $id ); - } elseif ( $linkCache->isBadLink( $pdbk ) ) { - $colours[$pdbk] = 'new'; - } elseif ( $title->getNamespace() == NS_SPECIAL && !SpecialPage::exists( $pdbk ) ) { - $colours[$pdbk] = 'new'; - } else { - # Not in the link cache, add it to the query - if ( !isset( $current ) ) { - $current = $ns; - $query = "SELECT page_id, page_namespace, page_title, page_is_redirect, page_len"; - $query .= " FROM $page WHERE (page_namespace=$ns AND page_title IN("; - } elseif ( $current != $ns ) { - $current = $ns; - $query .= ")) OR (page_namespace=$ns AND page_title IN("; - } else { - $query .= ', '; - } - - $query .= $dbr->addQuotes( $this->mLinkHolders['dbkeys'][$key] ); - } - } - if ( $query ) { - $query .= '))'; - if ( $options & RLH_FOR_UPDATE ) { - $query .= ' FOR UPDATE'; - } - - $res = $dbr->query( $query, $fname ); - - # Fetch data and form into an associative array - # non-existent = broken - while ( $s = $dbr->fetchObject($res) ) { - $title = Title::makeTitle( $s->page_namespace, $s->page_title ); - $pdbk = $title->getPrefixedDBkey(); - $linkCache->addGoodLinkObj( $s->page_id, $title, $s->page_len, $s->page_is_redirect ); - $this->mOutput->addLink( $title, $s->page_id ); - $colours[$pdbk] = $sk->getLinkColour( $title, $threshold ); - //add id to the extension todolist - $linkcolour_ids[$s->page_id] = $pdbk; - } - //pass an array of page_ids to an extension - wfRunHooks( 'GetLinkColours', array( $linkcolour_ids, &$colours ) ); - } - wfProfileOut( $fname.'-check' ); - - # Do a second query for different language variants of links and categories - if($wgContLang->hasVariants()){ - $linkBatch = new LinkBatch(); - $variantMap = array(); // maps $pdbkey_Variant => $keys (of link holders) - $categoryMap = array(); // maps $category_variant => $category (dbkeys) - $varCategories = array(); // category replacements oldDBkey => newDBkey - - $categories = $this->mOutput->getCategoryLinks(); - - // Add variants of links to link batch - foreach ( $this->mLinkHolders['namespaces'] as $key => $ns ) { - $title = $this->mLinkHolders['titles'][$key]; - if ( is_null( $title ) ) - continue; - - $pdbk = $title->getPrefixedDBkey(); - $titleText = $title->getText(); - - // generate all variants of the link title text - $allTextVariants = $wgContLang->convertLinkToAllVariants($titleText); - - // if link was not found (in first query), add all variants to query - if ( !isset($colours[$pdbk]) ){ - foreach($allTextVariants as $textVariant){ - if($textVariant != $titleText){ - $variantTitle = Title::makeTitle( $ns, $textVariant ); - if(is_null($variantTitle)) continue; - $linkBatch->addObj( $variantTitle ); - $variantMap[$variantTitle->getPrefixedDBkey()][] = $key; - } - } - } - } - - // process categories, check if a category exists in some variant - foreach( $categories as $category ){ - $variants = $wgContLang->convertLinkToAllVariants($category); - foreach($variants as $variant){ - if($variant != $category){ - $variantTitle = Title::newFromDBkey( Title::makeName(NS_CATEGORY,$variant) ); - if(is_null($variantTitle)) continue; - $linkBatch->addObj( $variantTitle ); - $categoryMap[$variant] = $category; - } - } - } - - - if(!$linkBatch->isEmpty()){ - // construct query - $titleClause = $linkBatch->constructSet('page', $dbr); - - $variantQuery = "SELECT page_id, page_namespace, page_title, page_is_redirect, page_len"; - - $variantQuery .= " FROM $page WHERE $titleClause"; - if ( $options & RLH_FOR_UPDATE ) { - $variantQuery .= ' FOR UPDATE'; - } - - $varRes = $dbr->query( $variantQuery, $fname ); - - // for each found variants, figure out link holders and replace - while ( $s = $dbr->fetchObject($varRes) ) { - - $variantTitle = Title::makeTitle( $s->page_namespace, $s->page_title ); - $varPdbk = $variantTitle->getPrefixedDBkey(); - $vardbk = $variantTitle->getDBkey(); - - $holderKeys = array(); - if(isset($variantMap[$varPdbk])){ - $holderKeys = $variantMap[$varPdbk]; - $linkCache->addGoodLinkObj( $s->page_id, $variantTitle, $s->page_len, $s->page_is_redirect ); - $this->mOutput->addLink( $variantTitle, $s->page_id ); - } - - // loop over link holders - foreach($holderKeys as $key){ - $title = $this->mLinkHolders['titles'][$key]; - if ( is_null( $title ) ) continue; - - $pdbk = $title->getPrefixedDBkey(); - - if(!isset($colours[$pdbk])){ - // found link in some of the variants, replace the link holder data - $this->mLinkHolders['titles'][$key] = $variantTitle; - $this->mLinkHolders['dbkeys'][$key] = $variantTitle->getDBkey(); - - // set pdbk and colour - $pdbks[$key] = $varPdbk; - $colours[$varPdbk] = $sk->getLinkColour( $variantTitle, $threshold ); - $linkcolour_ids[$s->page_id] = $pdbk; - } - wfRunHooks( 'GetLinkColours', array( $linkcolour_ids, &$colours ) ); - } - - // check if the object is a variant of a category - if(isset($categoryMap[$vardbk])){ - $oldkey = $categoryMap[$vardbk]; - if($oldkey != $vardbk) - $varCategories[$oldkey]=$vardbk; - } - } - - // rebuild the categories in original order (if there are replacements) - if(count($varCategories)>0){ - $newCats = array(); - $originalCats = $this->mOutput->getCategories(); - foreach($originalCats as $cat => $sortkey){ - // make the replacement - if( array_key_exists($cat,$varCategories) ) - $newCats[$varCategories[$cat]] = $sortkey; - else $newCats[$cat] = $sortkey; - } - $this->mOutput->setCategoryLinks($newCats); - } - } - } - - # Construct search and replace arrays - wfProfileIn( $fname.'-construct' ); - $replacePairs = array(); - foreach ( $this->mLinkHolders['namespaces'] as $key => $ns ) { - $pdbk = $pdbks[$key]; - $searchkey = "<!--LINK $key-->"; - $title = $this->mLinkHolders['titles'][$key]; - if ( !isset( $colours[$pdbk] ) || $colours[$pdbk] == 'new' ) { - $linkCache->addBadLinkObj( $title ); - $colours[$pdbk] = 'new'; - $this->mOutput->addLink( $title, 0 ); - $replacePairs[$searchkey] = $sk->makeBrokenLinkObj( $title, - $this->mLinkHolders['texts'][$key], - $this->mLinkHolders['queries'][$key] ); - } else { - $replacePairs[$searchkey] = $sk->makeColouredLinkObj( $title, $colours[$pdbk], - $this->mLinkHolders['texts'][$key], - $this->mLinkHolders['queries'][$key] ); - } - } - $replacer = new HashtableReplacer( $replacePairs, 1 ); - wfProfileOut( $fname.'-construct' ); - - # Do the thing - wfProfileIn( $fname.'-replace' ); - $text = preg_replace_callback( - '/(<!--LINK .*?-->)/', - $replacer->cb(), - $text); - - wfProfileOut( $fname.'-replace' ); - } - - # Now process interwiki link holders - # This is quite a bit simpler than internal links - if ( !empty( $this->mInterwikiLinkHolders['texts'] ) ) { - wfProfileIn( $fname.'-interwiki' ); - # Make interwiki link HTML - $replacePairs = array(); - foreach( $this->mInterwikiLinkHolders['texts'] as $key => $link ) { - $title = $this->mInterwikiLinkHolders['titles'][$key]; - $replacePairs[$key] = $sk->link( $title, $link ); - } - $replacer = new HashtableReplacer( $replacePairs, 1 ); - - $text = preg_replace_callback( - '/<!--IWLINK (.*?)-->/', - $replacer->cb(), - $text ); - wfProfileOut( $fname.'-interwiki' ); - } - - wfProfileOut( $fname ); - return $colours; + return $this->mLinkHolders->replace( $text ); } /** @@ -4315,39 +4038,10 @@ * @return string */ function replaceLinkHoldersText( $text ) { - $fname = 'Parser::replaceLinkHoldersText'; - wfProfileIn( $fname ); - - $text = preg_replace_callback( - '/<!--(LINK|IWLINK) (.*?)-->/', - array( &$this, 'replaceLinkHoldersTextCallback' ), - $text ); - - wfProfileOut( $fname ); - return $text; + return $this->mLinkHolders->replaceText( $text ); } /** - * @param array $matches - * @return string - * @private - */ - function replaceLinkHoldersTextCallback( $matches ) { - $type = $matches[1]; - $key = $matches[2]; - if( $type == 'LINK' ) { - if( isset( $this->mLinkHolders['texts'][$key] ) ) { - return $this->mLinkHolders['texts'][$key]; - } - } elseif( $type == 'IWLINK' ) { - if( isset( $this->mInterwikiLinkHolders['texts'][$key] ) ) { - return $this->mInterwikiLinkHolders['texts'][$key]; - } - } - return $matches[0]; - } - - /** * Tag hook handler for 'pre'. */ function renderPreTag( $text, $attribs ) { @@ -4398,7 +4092,7 @@ wfRunHooks( 'BeforeParserrenderImageGallery', array( &$this, &$ig ) ); - $lines = explode( "\n", $text ); + $lines = StringUtils::explode( "\n", $text ); foreach ( $lines as $line ) { # match lines like these: # Image:someimage.jpg|This is some image @@ -4411,7 +4105,7 @@ if ( strpos( $matches[0], '%' ) !== false ) $matches[1] = urldecode( $matches[1] ); - $tp = Title::newFromText( $matches[1] ); + $tp = Title::newFromText( $matches[1], NS_IMAGE ); $nt =& $tp; if( is_null( $nt ) ) { # Bogus title. Ignore these so we don't bomb out later. @@ -4477,8 +4171,11 @@ /** * Parse image options text and use it to make an image + * @param Title $title + * @param string $options + * @param LinkHolderArray $holders */ - function makeImage( $title, $options ) { + function makeImage( $title, $options, $holders = false ) { # Check if the options text is of the form "options|alt text" # Options are: # * thumbnail make a thumbnail with enlarge-icon and caption, alignment depends on lang @@ -4501,7 +4198,7 @@ # * bottom # * text-bottom - $parts = array_map( 'trim', explode( '|', $options) ); + $parts = StringUtils::explode( "|", $options ); $sk = $this->mOptions->getSkin(); # Give extensions a chance to select the file revision for us @@ -4588,7 +4285,13 @@ } # Strip bad stuff out of the alt text - $alt = $this->replaceLinkHoldersText( $caption ); + # We can't just use replaceLinkHoldersText() here, because if this function + # is called from replaceInternalLinks2(), mLinkHolders won't be up to date. + if ( $holders ) { + $alt = $holders->replaceText( $caption ); + } else { + $alt = $this->replaceLinkHoldersText( $caption ); + } # make sure there are no placeholders in thumbnail attributes # that are later expanded to html- so expand them now and Modified: branches/visual_diff/phase3/includes/parser/Parser_DiffTest.php =================================================================== --- branches/visual_diff/phase3/includes/parser/Parser_DiffTest.php 2008-08-17 23:32:07 UTC (rev 39562) +++ branches/visual_diff/phase3/includes/parser/Parser_DiffTest.php 2008-08-18 00:10:23 UTC (rev 39563) @@ -6,6 +6,7 @@ class Parser_DiffTest { var $parsers, $conf; + var $shortOutput = false; var $dfUniqPrefix; @@ -28,6 +29,9 @@ $doneHook = true; $wgHooks['ParserClearState'][] = array( $this, 'onClearState' ); } + if ( isset( $this->conf['shortOutput'] ) ) { + $this->shortOutput = $this->conf['shortOutput']; + } foreach ( $this->conf['parsers'] as $i => $parserConf ) { if ( !is_array( $parserConf ) ) { @@ -66,12 +70,23 @@ } if ( $mismatch ) { throw new MWException( "Parser_DiffTest: results mismatch on call to $name\n" . - 'Arguments: ' . var_export( $args, true ) . "\n" . - 'Results: ' . var_export( $results, true ) . "\n" ); + 'Arguments: ' . $this->formatArray( $args ) . "\n" . + 'Results: ' . $this->formatArray( $results ) . "\n" ); } return $lastResult; } + function formatArray( $array ) { + if ( $this->shortOutput ) { + foreach ( $array as $key => $value ) { + if ( $value instanceof ParserOutput ) { + $array[$key] = "ParserOutput: {$value->getText()}"; + } + } + } + return var_export( $array, true ); + } + function setFunctionHook( $id, $callback, $flags = 0 ) { $this->init(); foreach ( $this->parsers as $i => $parser ) { Modified: branches/visual_diff/phase3/includes/specials/SpecialAllpages.php =================================================================== --- branches/visual_diff/phase3/includes/specials/SpecialAllpages.php 2008-08-17 23:32:07 UTC (rev 39562) +++ branches/visual_diff/phase3/includes/specials/SpecialAllpages.php 2008-08-18 00:10:23 UTC (rev 39563) @@ -2,6 +2,7 @@ /** * @file * @ingroup SpecialPage + * Note that Special:Prefixindex.php depends on this */ /** @@ -13,24 +14,23 @@ global $wgRequest, $wgOut, $wgContLang; # GET values - $from = $wgRequest->getVal( 'from' ); + $from = $wgRequest->getVal( 'from', '' ); + $to = $wgRequest->getVal( 'to', '' ); $namespace = $wgRequest->getInt( 'namespace' ); $namespaces = $wgContLang->getNamespaces(); - $indexPage = new SpecialAllpages(); - $wgOut->setPagetitle( ( $namespace > 0 && in_array( $namespace, array_keys( $namespaces) ) ) ? wfMsg( 'allinnamespace', str_replace( '_', ' ', $namespaces[$namespace] ) ) : wfMsg( 'allarticles' ) ); - - if ( isset($par) ) { - $indexPage->showChunk( $namespace, $par, $specialPage->including() ); - } elseif ( isset($from) ) { - $indexPage->showChunk( $namespace, $from, $specialPage->including() ); + + if( isset($par) ) { + $indexPage = new SpecialPrefixIndex(); + $indexPage->showPrefixChunk( $namespace, $par, $specialPage->including(), $from ); } else { - $indexPage->showToplevel ( $namespace, $specialPage->including() ); + $indexPage = new SpecialAllpages(); + $indexPage->showToplevel( $namespace, $from, $to, $specialPage->including() ); } } @@ -40,9 +40,19 @@ */ class SpecialAllpages { /** - * Maximum number of pages to show on single subpage. + * Maximum number of pages to show on single list subpage. */ - protected $maxPerPage = 960; + protected $maxPerPage = 345; + + /** + * Maximum number of pages to show on single index subpage. + */ + protected $maxLineCount = 200; + + /** + * Maximum number of chars to show for an entry. + */ + protected $maxPageLength = 70; /** * Name of this special page. Used to make title objects that reference back @@ -50,17 +60,13 @@ */ protected $name = 'Allpages'; - /** - * Determines, which message describes the input field 'nsfrom'. - */ - protected $nsfromMsg = 'allpagesfrom'; - /** * HTML for the top form * @param integer $namespace A namespace constant (default NS_MAIN). - * @param string $from Article name we are starting listing at. + * @param string $from dbKey we are starting listing at. + * @param string $to dbKey we are ending listing at. */ -function namespaceForm ( $namespace = NS_MAIN, $from = '' ) { +function namespaceForm( $namespace = NS_MAIN, $from = '', $to = '' ) { global $wgScript; $t = SpecialPage::getTitleFor( $this->name ); @@ -72,14 +78,22 @@ $out .= Xml::openElement( 'table', array( 'id' => 'nsselect', 'class' => 'allpages' ) ); $out .= "<tr> <td class='mw-label'>" . - Xml::label( wfMsg( $this->nsfromMsg ), 'nsfrom' ) . + Xml::label( wfMsg( 'allpagesfrom' ), 'nsfrom' ) . "</td> <td class='mw-input'>" . - Xml::input( 'from', 20, $from, array( 'id' => 'nsfrom' ) ) . + Xml::input( 'from', 30, str_replace('_',' ',$from), array( 'id' => 'nsfrom' ) ) . "</td> </tr> <tr> <td class='mw-label'>" . + Xml::label( wfMsg( 'allpagesto' ), 'nsto' ) . + "</td> + <td class='mw-input'>" . + Xml::input( 'to', 30, str_replace('_',' ',$to), array( 'id' => 'nsto' ) ) . + "</td> + </tr> + <tr> + <td class='mw-label'>" . Xml::label( wfMsg( 'namespace' ), 'namespace' ) . "</td> <td class='mw-input'>" . @@ -97,7 +111,7 @@ /** * @param integer $namespace (default NS_MAIN) */ -function showToplevel ( $namespace = NS_MAIN, $including = false ) { +function showToplevel( $namespace = NS_MAIN, $from = '', $to = '', $including = false ) { global $wgOut, $wgContLang; $align = $wgContLang->isRtl() ? 'left' : 'right'; @@ -107,45 +121,54 @@ $dbr = wfGetDB( DB_SLAVE ); $out = ""; $where = array( 'page_namespace' => $namespace ); + + $from = Title::makeTitleSafe( $namespace, $from ); + $to = Title::makeTitleSafe( $namespace, $to ); + $from = ( $from && $from->isLocal() ) ? $from->getDBKey() : null; + $to = ( $to && $to->isLocal() ) ? $to->getDBKey() : null; + + if( isset($from) ) + $where[] = 'page_title >= '.$dbr->addQuotes( $from ); + if( isset($to) ) + $where[] = 'page_title <= '.$dbr->addQuotes( $to ); global $wgMemc; - $key = wfMemcKey( 'allpages', 'ns', $namespace ); + $key = wfMemcKey( 'allpages', 'ns', $namespace, $from, $to ); $lines = $wgMemc->get( $key ); + + $count = $dbr->estimateRowCount( 'page', '*', $where, __METHOD__ ); + $maxPerSubpage = intval($count/$this->maxLineCount); + $maxPerSubpage = max($maxPerSubpage,$this->maxPerPage); if( !is_array( $lines ) ) { $options = array( 'LIMIT' => 1 ); - if ( ! $dbr->implicitOrderby() ) { - $options['ORDER BY'] = 'page_title'; - } + $options['ORDER BY'] = 'page_title ASC'; $firstTitle = $dbr->selectField( 'page', 'page_title', $where, __METHOD__, $options ); $lastTitle = $firstTitle; - # This array is going to hold the page_titles in order. $lines = array( $firstTitle ); - # If we are going to show n rows, we need n+1 queries to find the relevant titles. $done = false; - for( $i = 0; !$done; ++$i ) { + while( !$done ) { // Fetch the last title of this chunk and the first of the next $chunk = is_null( $lastTitle ) ? '' : 'page_title >= ' . $dbr->addQuotes( $lastTitle ); - $res = $dbr->select( - 'page', /* FROM */ + $chunk = array($chunk); + $res = $dbr->select( 'page', /* FROM */ 'page_title', /* WHAT */ - $where + array($chunk), + array_merge($where,$chunk), __METHOD__, - array ('LIMIT' => 2, 'OFFSET' => $this->maxPerPage - 1, 'ORDER BY' => 'page_title') ); + array ('LIMIT' => 2, 'OFFSET' => $maxPerSubpage - 1, 'ORDER BY' => 'page_title ASC') + ); - if ( $s = $dbr->fetchObject( $res ) ) { + if( $s = $dbr->fetchObject( $res ) ) { array_push( $lines, $s->page_title ); } else { // Final chunk, but ended prematurely. Go back and find the end. $endTitle = $dbr->selectField( 'page', 'MAX(page_title)', - array( - 'page_namespace' => $namespace, - $chunk - ), __METHOD__ ); + array_merge($where,$chunk), + __METHOD__ ); array_push( $lines, $endTitle ); $done = true; } @@ -165,35 +188,39 @@ // If there are only two or less sections, don't even display them. // Instead, display the first section directly. if( count( $lines ) <= 2 ) { - $this->showChunk( $namespace, '', $including ); + if( !empty($lines) ) { + $this->showChunk( $namespace, $lines[0], $lines[count($lines)-1], $including ); + } else { + $wgOut->addHtml( $this->namespaceForm( $namespace, $from, $to ) ); + } return; } # At this point, $lines should contain an even number of elements. $out .= "<table class='allpageslist' style='background: inherit;'>"; - while ( count ( $lines ) > 0 ) { - $inpoint = array_shift ( $lines ); - $outpoint = array_shift ( $lines ); - $out .= $this->showline ( $inpoint, $outpoint, $namespace, false ); + while( count ( $lines ) > 0 ) { + $inpoint = array_shift( $lines ); + $outpoint = array_shift( $lines ); + $out .= $this->showline( $inpoint, $outpoint, $namespace ); } $out .= '</table>'; - $nsForm = $this->namespaceForm( $namespace, '', false ); + $nsForm = $this->namespaceForm( $namespace, $from, $to ); # Is there more? - if ( $including ) { + if( $including ) { $out2 = ''; } else { - $morelinks = ''; - if ( $morelinks != '' ) { + if( isset($from) || isset($to) ) { + global $wgUser; $out2 = '<table style="background: inherit;" width="100%" cellpadding="0" cellspacing="0" border="0">'; $out2 .= '<tr valign="top"><td>' . $nsForm; - $out2 .= '</td><td align="' . $align . '" style="font-size: smaller; margin-bottom: 1em;">'; - $out2 .= $morelinks . '</td></tr></table><hr />'; + $out2 .= '</td><td align="' . $align . '" style="font-size: smaller; margin-bottom: 1em;">' . + $wgUser->getSkin()->makeKnownLink( $wgContLang->specialPage( "Allpages" ), wfMsgHtml ( 'allpages' ) ); + $out2 .= "</td></tr></table><hr />"; } else { $out2 = $nsForm . '<hr />'; } } - $wgOut->addHtml( $out2 . $out ); } @@ -207,14 +234,17 @@ $align = $wgContLang->isRtl() ? 'left' : 'right'; $inpointf = htmlspecialchars( str_replace( '_', ' ', $inpoint ) ); $outpointf = htmlspecialchars( str_replace( '_', ' ', $outpoint ) ); - $queryparams = ($namespace ? "namespace=$namespace" : ''); - $special = SpecialPage::getTitleFor( $this->name, $inpoint ); - $link = $special->escapeLocalUrl( $queryparams ); + // Don't let the length runaway + $inpointf = $wgContLang->truncate( $inpointf, $this->maxPageLength, '...' ); + $outpointf = $wgContLang->truncate( $outpointf, $this->maxPageLength, '...' ); - $out = wfMsgHtml( - 'alphaindexline', - "<a href=\"$link\">$inpointf</a></td><td><a href=\"$link\">", - "</a></td><td><a href=\"$link\">$outpointf</a>" + $queryparams = $namespace ? "namespace=$namespace&" : ''; + $special = SpecialPage::getTitleFor( $this->name ); + $link = $special->escapeLocalUrl( $queryparams . 'from=' . urlencode($inpoint) . '&to=' . urlencode($outpoint) ); + + $out = wfMsgHtml( 'alphaindexline', + "<a href=\"$link\">$inpointf</a></td><td>", + "</td><td><a href=\"$link\">$outpointf</a>" ); return '<tr><td align="' . $align . '">'.$out.'</td></tr>'; } @@ -222,19 +252,22 @@ /** * @param integer $namespace (Default NS_MAIN) * @param string $from list all pages from this name (default FALSE) + * @param string $from list all pages to this name (default FALSE) */ -function showChunk( $namespace = NS_MAIN, $from, $including = false ) { +function showChunk( $namespace = NS_MAIN, $from = false, $to = false, $including = false ) { global $wgOut, $wgUser, $wgContLang; $sk = $wgUser->getSkin(); - $fromList = $this->getNamespaceKeyAndText($namespace, $from); + $fromList = $this->getNamespaceKeyAndText( $namespace, $from ); + $toList = $this->getNamespaceKeyAndText( $namespace, $to ); + $namespaces = $wgContLang->getNamespaces(); $align = $wgContLang->isRtl() ? 'left' : 'right'; $n = 0; - if ( !$fromList ) { + if ( !$fromList || !$toList ) { $out = wfMsgWikiHtml( 'allpagesbadtitle' ); } elseif ( !in_array( $namespace, array_keys( $namespaces ) ) ) { // Show errormessage and reset to NS_MAIN @@ -242,17 +275,19 @@ $namespace = NS_MAIN; } else { list( $namespace, $fromKey, $from ) = $fromList; + list( $namespace, $toKey, $to ) = $toList; $dbr = wfGetDB( DB_SLAVE ); $res = $dbr->select( 'page', array( 'page_namespace', 'page_title', 'page_is_redirect' ), array( 'page_namespace' => $namespace, - 'page_title >= ' . $dbr->addQuotes( $fromKey ) + 'page_title >= ' . $dbr->addQuotes( $fromKey ), + 'page_title <= ' . $dbr->addQuotes( $toKey ), ), __METHOD__, array( - 'ORDER BY' => 'page_title', + 'ORDER BY' => 'page_title ASC', 'LIMIT' => $this->maxPerPage + 1, 'USE INDEX' => 'name_title', ) @@ -291,87 +326,15 @@ if ( $including ) { $out2 = ''; } else { - if( $from == '' ) { - // First chunk; no previous link. - $prevTitle = null; - } else { - # Get the last title from previous chunk - $dbr = wfGetDB( DB_SLAVE ); - $res_prev = $dbr->select( - 'page', - 'page_title', - array( 'page_namespace' => $namespace, 'page_title < '.$dbr->addQuotes($from) ), - __METHOD__, - array( 'ORDER BY' => 'page_title DESC', 'LIMIT' => $this->maxPerPage, 'OFFSET' => ($this->maxPerPage - 1 ) ) - ); - - # Get first title of previous complete chunk - if( $dbr->numrows( $res_prev ) >= $this->maxPerPage ) { - $pt = $dbr->fetchObject( $res_prev ); - $prevTitle = Title::makeTitle( $namespace, $pt->page_title ); - } else { - # The previous chunk is not complete, need to link to the very first title - # available in the database - $options = array( 'LIMIT' => 1 ); - if ( ! $dbr->implicitOrderby() ) { - $options['ORDER BY'] = 'page_title'; - } - $reallyFirstPage_title = $dbr->selectField( 'page', 'page_title', array( 'page_namespace' => $namespace ), __METHOD__, $options ); - # Show the previous link if it s not the current requested chunk - if( $from != $reallyFirstPage_title ) { - $prevTitle = Title::makeTitle( $namespace, $reallyFirstPage_title ); - } else { - $prevTitle = null; - } - } - } - - $nsForm = $this->namespaceForm( $namespace, $from ); + $nsForm = $this->namespaceForm( $namespace, $from, $to ); $out2 = '<table style="background: inherit;" width="100%" cellpadding="0" cellspacing="0" border="0">'; $out2 .= '<tr valign="top"><td>' . $nsForm; $out2 .= '</td><td align="' . $align . '" style="font-size: smaller; margin-bottom: 1em;">' . - $sk->makeKnownLink( $wgContLang->specialPage( "Allpages" ), - wfMsgHtml ( 'allpages' ) ); - - $self = SpecialPage::getTitleFor( 'Allpages' ); - - # Do we put a previous link ? - if( isset( $prevTitle ) && $pt = $prevTitle->getText() ) { - $q = 'from=' . $prevTitle->getPartialUrl() - . ( $namespace ? '&namespace=' . $namespace : '' ); - $prevLink = $sk->makeKnownLinkObj( $self, - wfMsgHTML( 'prevpage', htmlspecialchars( $pt ) ), $q ); - $out2 .= ' | ' . $prevLink; - } - - if( $n == $this->maxPerPage && $s = $dbr->fetchObject($res) ) { - # $s is the first link of the next chunk - $t = Title::MakeTitle($namespace, $s->page_title); - $q = 'from=' . $t->getPartialUrl() - . ( $namespace ? '&namespace=' . $namespace : '' ); - $nextLink = $sk->makeKnownLinkObj( $self, - wfMsgHtml( 'nextpage', htmlspecialchars( $t->getText() ) ), $q ); - $out2 .= ' | ' . $nextLink; - } + $sk->makeKnownLink( $wgContLang->specialPage( "Allpages" ), wfMsgHtml ( 'allpages' ) ); $out2 .= "</td></tr></table><hr />"; } $wgOut->addHtml( $out2 . $out ); - if( isset($prevLink) or isset($nextLink) ) { - $wgOut->addHtml( '<hr /><p style="font-size: smaller; float: ' . $align . '">' ); - if( isset( $prevLink ) ) { - $wgOut->addHTML( $prevLink ); - } - if( isset( $prevLink ) && isset( $nextLink ) ) { - $wgOut->addHTML( ' | ' ); - } - if( isset( $nextLink ) ) { - $wgOut->addHTML( $nextLink ); - } - $wgOut->addHTML( '</p>' ); - - } - } /** @@ -381,7 +344,7 @@ * @static (sort of) * @access private */ -function getNamespaceKeyAndText ($ns, $text) { +function getNamespaceKeyAndText( $ns, $text ) { if ( $text == '' ) return array( $ns, '', '' ); # shortcut for common case @@ -401,4 +364,5 @@ return NULL; } } + } Modified: branches/visual_diff/phase3/includes/specials/SpecialLog.php =================================================================== --- branches/visual_diff/phase3/includes/specials/SpecialLog.php 2008-08-17 23:32:07 UTC (rev 39562) +++ branches/visual_diff/phase3/includes/specials/SpecialLog.php 2008-08-18 00:10:23 UTC (rev 39563) @@ -26,10 +26,21 @@ * constructor */ function wfSpecialLog( $par = '' ) { - global $wgRequest, $wgOut, $wgUser; + global $wgRequest, $wgOut, $wgUser, $wgLogTypes; + # Get parameters - $type = $wgRequest->getVal( 'type', $par ); - $user = $wgRequest->getText( 'user' ); + $parms = explode( '/', ($par = ( $par !== null ) ? $par : '' ) ); + $symsForAll = array( '*', 'all' ); + if ( $parms[0] != '' && ( in_array( $par, $wgLogTypes ) || in_array( $par, $symsForAll ) ) ) { + $type = $par; + $user = $wgRequest->getText( 'user' ); + } else if ( count( $parms ) == 2 ) { + $type = $parms[0]; + $user = $parms[1]; + } else { + $type = $wgRequest->getVal( 'group' ); + $user = ( $par != '' ) ? $par : $wgRequest->getText( 'user' ); + } $title = $wgRequest->getText( 'page' ); $pattern = $wgRequest->getBool( 'pattern' ); $y = $wgRequest->getIntOrNull( 'year' ); Modified: branches/visual_diff/phase3/includes/specials/SpecialPreferences.php =================================================================== --- branches/visual_diff/phase3/includes/specials/SpecialPreferences.php 2008-08-17 23:32:07 UTC (rev 39562) +++ branches/visual_diff/phase3/includes/specials/SpecialPreferences.php 2008-08-18 00:10:23 UTC (rev 39563) @@ -511,13 +511,13 @@ * @access private */ function mainPrefsForm( $status , $message = '' ) { - global $wgUser, $wgOut, $wgLang, $wgContLang; + global $wgUser, $wgOut, $wgLang, $wgContLang, $wgAuth; global $wgAllowRealName, $wgImageLimits, $wgThumbLimits; global $wgDisableLangConversion, $wgDisableTitleConversion; global $wgEnotifWatchlist, $wgEnotifUserTalk,$wgEnotifMinorEdits; global $wgRCShowWatchingUsers, $wgEnotifRevealEditorAddress; global $wgEnableEmail, $wgEnableUserEmail, $wgEmailAuthentication; - global $wgContLanguageCode, $wgDefaultSkin, $wgAuth; + global $wgContLanguageCode, $wgDefaultSkin, $wgEnablePersistentCookies; global $wgEmailConfirmToEdit, $wgAjaxSearch, $wgEnableMWSuggest; $wgOut->setPageTitle( wfMsg( 'preferences' ) ); @@ -762,13 +762,19 @@ $this->tableRow( Xml::label( wfMsg( 'retypenew' ), 'wpRetypePass' ), Xml::password( 'wpRetypePass', 25, $this->mRetypePass, array( 'id' => 'wpRetypePass' ) ) - ) . - Xml::tags( 'tr', null, - Xml::tags( 'td', array( 'colspan' => '2' ), - $this->getToggle( "rememberpassword" ) - ) ) ); + if( $wgEnablePersistentCookies ){ + $wgOut->addHTML( + Xml::tags( 'tr', null, + Xml::tags( 'td', array( 'colspan' => '2' ), + $this->getToggle( "rememberpassword" ) + ) + ) + ); + } else { + $this->mUsedToggles['rememberpassword'] = true; + } } # <FIXME> Modified: branches/visual_diff/phase3/includes/specials/SpecialPrefixindex.php =================================================================== --- branches/visual_diff/phase3/includes/specials/SpecialPrefixindex.php 2008-08-17 23:32:07 UTC (rev 39562) +++ branches/visual_diff/phase3/includes/specials/SpecialPrefixindex.php 2008-08-18 00:10:23 UTC (rev 39563) @@ -26,13 +26,13 @@ ); if ( isset($par) ) { - $indexPage->showChunk( $namespace, $par, $specialPage->including(), $from ); + $indexPage->showPrefixChunk( $namespace, $par, $specialPage->including(), $from ); } elseif ( isset($prefix) ) { - $indexPage->showChunk( $namespace, $prefix, $specialPage->including(), $from ); + $indexPage->showPrefixChunk( $namespace, $prefix, $specialPage->including(), $from ); } elseif ( isset($from) ) { - $indexPage->showChunk( $namespace, $from, $specialPage->including(), $from ); + $indexPage->showPrefixChunk( $namespace, $from, $specialPage->including(), $from ); } else { - $wgOut->addHtml($indexPage->namespaceForm ( $namespace, null )); + $wgOut->addHtml( $indexPage->namespacePrefixForm( $namespace, null ) ); } } @@ -46,12 +46,51 @@ // Define other properties protected $name = 'Prefixindex'; protected $nsfromMsg = 'allpagesprefix'; + + /** + * HTML for the top form + * @param integer $namespace A namespace constant (default NS_MAIN). + * @param string $from dbKey we are starting listing at. + */ + function namespacePrefixForm( $namespace = NS_MAIN, $from = '' ) { + global $wgScript; + $t = SpecialPage::getTitleFor( $this->name ); + $out = Xml::openElement( 'div', array( 'class' => 'namespaceoptions' ) ); + $out .= Xml::openElement( 'form', array( 'method' => 'get', 'action' => $wgScript ) ); + $out .= Xml::hidden( 'title', $t->getPrefixedText() ); + $out .= Xml::openElement( 'fieldset' ); + $out .= Xml::element( 'legend', null, wfMsg( 'allpages' ) ); + $out .= Xml::openElement( 'table', array( 'id' => 'nsselect', 'class' => 'allpages' ) ); + $out .= "<tr> + <td class='mw-label'>" . + Xml::label( wfMsg( 'allpagesfrom' ), 'nsfrom' ) . + "</td> + <td class='mw-input'>" . + Xml::input( 'from', 30, str_replace('_',' ',$from), array( 'id' => 'nsfrom' ) ) . + "</td> + </tr> + <tr> + <td class='mw-label'>" . + Xml::label( wfMsg( 'namespace' ), 'namespace' ) . + "</td> + <td class='mw-input'>" . + Xml::namespaceSelector( $namespace, null ) . ' ' . + Xml::submitButton( wfMsg( 'allpagessubmit' ) ) . + "</td> + </tr>"; + $out .= Xml::closeElement( 'table' ); + $out .= Xml::closeElement( 'fieldset' ); + $out .= Xml::closeElement( 'form' ); + $out .= Xml::closeElement( 'div' ); + return $out; + } + /** * @param integer $namespace (Default NS_MAIN) * @param string $from list all pages from this name (default FALSE) */ - function showChunk( $namespace = NS_MAIN, $prefix, $including = false, $from = null ) { + function showPrefixChunk( $namespace = NS_MAIN, $prefix, $including = false, $from = null ) { global $wgOut, $wgUser, $wgContLang; $fname = 'indexShowChunk'; @@ -130,7 +169,7 @@ if ( $including ) { $out2 = ''; } else { - $nsForm = $this->namespaceForm ( $namespace, $prefix ); + $nsForm = $this->namespacePrefixForm( $namespace, $prefix ); $out2 = '<table style="background: inherit;" width="100%" cellpadding="0" cellspacing="0" border="0">'; $out2 .= '<tr valign="top"><td>' . $nsForm; $out2 .= '</td><td align="' . $align . '" style="font-size: smaller; margin-bottom: 1em;">' . Modified: branches/visual_diff/phase3/includes/specials/SpecialRecentchanges.php =================================================================== --- branches/visual_diff/phase3/includes/specials/SpecialRecentchanges.php 2008-08-17 23:32:07 UTC (rev 39562) +++ branches/visual_diff/phase3/includes/specials/SpecialRecentchanges.php 2008-08-18 00:10:23 UTC (rev 39563) @@ -378,7 +378,7 @@ } $rc->numberofWatchingusers = $watcherCache[$obj->rc_namespace][$obj->rc_title]; } - $s .= $list->recentChangesLine( $rc, !empty( $obj->wl_user ) ); + $s .= $list->recentChangesLine( $rc, !empty( $obj->wl_user ), $counter ); --$limit; } } Modified: branches/visual_diff/phase3/includes/specials/SpecialUserlogin.php =================================================================== --- branches/visual_diff/phase3/includes/specials/SpecialUserlogin.php 2008-08-17 23:32:07 UTC (rev 39562) +++ branches/visual_diff/phase3/includes/specials/SpecialUserlogin.php 2008-08-18 00:10:23 UTC (rev 39563) @@ -738,7 +738,7 @@ function mainLoginForm( $msg, $msgtype = 'error' ) { global $wgUser, $wgOut, $wgAllowRealName, $wgEnableEmail; global $wgCookiePrefix, $wgAuth, $wgLoginLanguageSelector; - global $wgAuth, $wgEmailConfirmToEdit; + global $wgAuth, $wgEmailConfirmToEdit, $wgEnablePersistentCookies; $titleObj = SpecialPage::getTitleFor( 'Userlogin' ); @@ -816,6 +816,7 @@ $template->set( 'useemail', $wgEnableEmail ); $template->set( 'emailrequired', $wgEmailConfirmToEdit ); $template->set( 'canreset', $wgAuth->allowPasswordChange() ); + $template->set( 'canremember', $wgEnablePersistentCookies ); $template->set( 'remember', $wgUser->getOption( 'rememberpassword' ) or $this->mRemember ); # Prepare language selection links as needed Modified: branches/visual_diff/phase3/includes/specials/SpecialWatchlist.php =================================================================== --- branches/visual_diff/phase3/includes/specials/SpecialWatchlist.php 2008-08-17 23:32:07 UTC (rev 39562) +++ branches/visual_diff/phase3/includes/specials/SpecialWatchlist.php 2008-08-18 00:10:23 UTC (rev 39563) @@ -342,7 +342,7 @@ $rc->numberofWatchingusers = 0; } - $s .= $list->recentChangesLine( $rc, $updated ); + $s .= $list->recentChangesLine( $rc, $updated, $counter ); } $s .= $list->endRecentChangesList(); Modified: branches/visual_diff/phase3/includes/templates/Userlogin.php =================================================================== --- branches/visual_diff/phase3/includes/templates/Userlogin.php 2008-08-17 23:32:07 UTC (rev 39562) +++ branches/visual_diff/phase3/includes/templates/Userlogin.php 2008-08-18 00:10:23 UTC (rev 39563) @@ -63,7 +63,8 @@ </select> </td> </tr> - <?php } ?> + <?php } + if( $this->data['canremember'] ) { ?> <tr> <td></td> <td class="mw-input"> @@ -74,10 +75,11 @@ /> <label for="wpRemember"><?php $this->msg('remembermypassword') ?></label> </td> </tr> + <?php } ?> <tr> <td></td> <td class="mw-submit"> - <input type='submit' name="wpLoginattempt" id="wpLoginattempt" tabindex="5" value="<?php $this->msg('login') ?>" /> <?php if( $this->data['useemail'] && $this->data['canreset']) { ?><input type='submit' name="wpMailmypassword" id="wpMailmypassword" + <input type='submit' class="mw-loginbutton" name="wpLoginattempt" id="wpLoginattempt" tabindex="5" value="<?php $this->msg('login') ?>" /> <?php if( $this->data['useemail'] && $this->data['canreset']) { ?><input type='submit' class="mw-mailmypasswordbutton" name="wpMailmypassword" id="wpMailmypassword" tabindex="6" value="<?php $this->msg('mailmypassword') ?>" /> <?php } ?> @@ -196,6 +198,7 @@ </td> <?php } ?> </tr> + <?php if( $this->data['canremember'] ) { ?> <tr> <td></td> <td class="mw-input"> @@ -206,7 +209,8 @@ /> <label for="wpRemember"><?php $this->msg('remembermypassword') ?></label> </td> </tr> -<?php +<?php } + $tabIndex = 8; if ( isset( $this->data['extraInput'] ) && is_array( $this->data['extraInput'] ) ) { foreach ( $this->data['extraInput'] as $inputItem ) { ?> Modified: branches/visual_diff/phase3/includes/zhtable/toCN.manual =================================================================== --- branches/visual_diff/phase3/includes/zhtable/toCN.manual 2008-08-17 23:32:07 UTC (rev 39562) +++ branches/visual_diff/phase3/includes/zhtable/toCN.manual 2008-08-18 00:10:23 UTC (rev 39563) @@ -109,150 +109,95 @@ 簡訊 短信 烏茲別克 乌兹别克斯坦 查德 乍得 -乍得 乍得 -也門 葉門 也门 伯利茲 伯利兹 貝里斯 伯利兹 維德角 佛得角 -佛得角 佛得角 -克羅地亞 克罗地亚 克羅埃西亞 克罗地亚 -岡比亞 冈比亚 甘比亞 冈比亚 -幾內亞比紹 几内亚比绍 幾內亞比索 几内亚比绍 列支敦斯登 列支敦士登 -列支敦士登 列支敦士登 -利比里亞 利比里亚 賴比瑞亞 利比里亚 -加納 加纳 迦納 加纳 加彭 加蓬 -加蓬 加蓬 -博茨瓦納 博茨瓦纳 波札那 博茨瓦纳 -卡塔爾 卡塔尔 卡達 卡塔尔 -盧旺達 卢旺达 盧安達 卢旺达 -危地馬拉 危地马拉 瓜地馬拉 危地马拉 厄瓜多爾 厄瓜多尔 +厄瓜多尔 厄瓜多尔 厄瓜多 厄瓜多尔 -厄立特里亞 厄立特里亚 厄利垂亞 厄立特里亚 -吉布堤 吉布提 吉布地 吉布提 哈薩克 哈萨克斯坦 -哥斯達黎加 哥斯达黎加 哥斯大黎加 哥斯达黎加 -圖瓦盧 图瓦卢 吐瓦魯 图瓦卢 土庫曼 土库曼斯坦 -聖盧西亞 圣卢西亚 聖露西亞 圣卢西亚 聖吉斯納域斯 圣基茨和尼维斯 聖克里斯多福及尼維斯 圣基茨和尼维斯 -聖文森特和格林納丁斯 圣文森特和格林纳丁斯 聖文森及格瑞那丁 圣文森特和格林纳丁斯 -聖馬力諾 圣马力诺 聖馬利諾 圣马力诺 -圭亞那 圭亚那 蓋亞那 圭亚那 -坦桑尼亞 坦桑尼亚 坦尚尼亞 坦桑尼亚 -埃塞俄比亞 埃塞俄比亚 衣索匹亞 埃塞俄比亚 衣索比亞 埃塞俄比亚 吉里巴斯 基里巴斯 -基里巴斯 基里巴斯 塔吉克 塔吉克斯坦 塞拉利昂 塞拉利昂 塞普勒斯 塞浦路斯 -塞浦路斯 塞浦路斯 -塞舌爾 塞舌尔 塞席爾 塞舌尔 多明尼加共和國 多米尼加 多明尼加 多米尼加 多明尼加聯邦 多米尼加联邦 多米尼克 多米尼加联邦 -安提瓜和巴布達 安提瓜和巴布达 安地卡及巴布達 安提瓜和巴布达 尼日利亞 尼日利亚 +尼日利亚 尼日利亚 奈及利亞 尼日利亚 尼日爾 尼日尔 +尼日尔 尼日尔 尼日 尼日尔 巴貝多 巴巴多斯 -巴巴多斯 巴巴多斯 -巴布亞新畿內亞 巴布亚新几内亚 巴布亞紐幾內亞 巴布亚新几内亚 布基納法索 布基纳法索 布吉納法索 布基纳法索 蒲隆地 布隆迪 -布隆迪 布隆迪 -希臘 希腊 帛琉 帕劳 義大利 意大利 -意大利 意大利 -所羅門群島 所罗门群岛 索羅門群島 所罗门群岛 汶萊 文莱 -斯威士蘭 斯威士兰 史瓦濟蘭 斯威士兰 -斯洛文尼亞 斯洛文尼亚 斯洛維尼亞 斯洛文尼亚 -新西蘭 新西兰 紐西蘭 新西兰 -格林納達 格林纳达 格瑞那達 格林纳达 -格魯吉亞 乔治亚 -喬治亞 乔治亚 -梵蒂岡 梵蒂冈 -毛里塔尼亞 毛里塔尼亚 茅利塔尼亞 毛里塔尼亚 毛里裘斯 毛里求斯 模里西斯 毛里求斯 沙地阿拉伯 沙特阿拉伯 沙烏地阿拉伯 沙特阿拉伯 -波斯尼亞黑塞哥維那 波斯尼亚和黑塞哥维那 波士尼亞赫塞哥維納 波斯尼亚和黑塞哥维那 -津巴布韋 津巴布韦 辛巴威 津巴布韦 宏都拉斯 洪都拉斯 -洪都拉斯 洪都拉斯 -特立尼達和多巴哥 特立尼达和托巴哥 千里達托貝哥 特立尼达和托巴哥 -瑙魯 瑙鲁 諾魯 瑙鲁 -瓦努阿圖 瓦努阿图 萬那杜 瓦努阿图 溫納圖 瓦努阿图 -科摩羅 科摩罗 葛摩 科摩罗 象牙海岸 科特迪瓦 突尼西亞 突尼斯 -索馬里 索马里 索馬利亞 索马里 -老撾 老挝 寮國 老挝 肯雅 肯尼亚 肯亞 肯尼亚 蘇利南 苏里南 莫三比克 莫桑比克 -莫桑比克 莫桑比克 -萊索托 莱索托 賴索托 莱索托 -貝寧 贝宁 貝南 贝宁 -贊比亞 赞比亚 尚比亞 赞比亚 亞塞拜然 阿塞拜疆 -阿塞拜疆 阿塞拜疆 -阿拉伯聯合酋長國 阿拉伯联合酋长国 阿拉伯聯合大公國 阿拉伯联合酋长国 南韓 韩国 -馬爾代夫 马尔代夫 馬爾地夫 马尔代夫 馬爾他 马耳他 馬利共和國 马里共和国 @@ -262,7 +207,7 @@ 泡麵 方便面 笨豬跳 蹦极跳 绑紧跳 蹦极跳 -冷盤 凉菜 +冷盤 凉菜 冷菜 凉菜 散钱 零钱 谐星 笑星 @@ -290,16 +235,12 @@ 積架 捷豹 福斯 大众 福士 大众 -雪鐵龍 雪铁龙 萬事得 马自达 -馬自達 马自达 寶獅 标志 拿破崙 拿破仑 布殊 布什 布希 布什 柯林頓 克林顿 -克林頓 克林顿 -薩達姆 萨达姆 海珊 萨达姆 梵谷 凡高 大衛碧咸 大卫·贝克汉姆 Modified: branches/visual_diff/phase3/includes/zhtable/toHK.manual =================================================================== --- branches/visual_diff/phase3/includes/zhtable/toHK.manual 2008-08-17 23:32:07 UTC (rev 39562) +++ branches/visual_diff/phase3/includes/zhtable/toHK.manual 2008-08-18 00:10:23 UTC (rev 39563) @@ -2,29 +2,17 @@ “ 「 ‘ 『 ’ 』 -凶殺 兇殺 -凶殘 兇殘 -緝凶 緝兇 -買凶 買兇 -打印机 打印機 印表機 打印機 字节 位元組 字節 位元組 -打印 打印 列印 打印 硬件 硬件 硬體 硬件 -二极管 二極管 二極體 二極管 -三极管 三極管 三極體 三極管 -数码 數碼 數位 數碼 -软件 軟件 軟體 軟件 -网络 網絡 網路 網絡 -人工智能 人工智能 人工智慧 人工智能 航天飞机 穿梭機 太空梭 穿梭機 @@ -34,141 +22,88 @@ 機器人 機械人 移动电话 流動電話 行動電話 流動電話 -调制解调器 調制解調器 數據機 調制解調器 短信 短訊 簡訊 短訊 -乍得 乍得 查德 乍得 -也门 也門 葉門 也門 -伯利兹 伯利茲 貝里斯 伯利茲 -佛得角 佛得角 維德角 佛得角 -克罗地亚 克羅地亞 克羅埃西亞 克羅地亞 -冈比亚 岡比亞 甘比亞 岡比亞 -几内亚比绍 幾內亞比紹 幾內亞比索 幾內亞比紹 -列支敦士登 列支敦士登 列支敦斯登 列支敦士登 -利比里亚 利比里亞 賴比瑞亞 利比里亞 -加纳 加納 迦納 加納 -加蓬 加蓬 加彭 加蓬 -博茨瓦纳 博茨瓦納 波札那 博茨瓦納 -卡塔尔 卡塔爾 卡達 卡塔爾 -卢旺达 盧旺達 盧安達 盧旺達 -危地马拉 危地馬拉 瓜地馬拉 危地馬拉 厄瓜多尔 厄瓜多爾 +厄瓜多爾 厄瓜多爾 厄瓜多 厄瓜多爾 -厄立特里亚 厄立特里亞 厄利垂亞 厄立特里亞 -吉布提 吉布堤 吉布地 吉布堤 -哥斯达黎加 哥斯達黎加 哥斯大黎加 哥斯達黎加 -图瓦卢 圖瓦盧 吐瓦魯 圖瓦盧 -圣卢西亚 聖盧西亞 聖露西亞 聖盧西亞 圣基茨和尼维斯 聖吉斯納域斯 聖克里斯多福及尼維斯 聖吉斯納域斯 -圣文森特和格林纳丁斯 聖文森特和格林納丁斯 聖文森及格瑞那丁 聖文森特和格林納丁斯 -圣马力诺 聖馬力諾 聖馬利諾 聖馬力諾 -圭亚那 圭亞那 蓋亞那 圭亞那 -坦桑尼亚 坦桑尼亞 坦尚尼亞 坦桑尼亞 -埃塞俄比亚 埃塞俄比亞 衣索匹亞 埃塞俄比亞 衣索比亞 埃塞俄比亞 -基里巴斯 基里巴斯 吉里巴斯 基里巴斯 -狮子山 獅子山 塞普勒斯 塞浦路斯 -塞舌尔 塞舌爾 塞席爾 塞舌爾 多米尼加 多明尼加共和國 多明尼加 多明尼加共和國 多米尼加联邦 多明尼加聯邦 多米尼克 多明尼加聯邦 -安提瓜和巴布达 安提瓜和巴布達 安地卡及巴布達 安提瓜和巴布達 尼日利亚 尼日利亞 +尼日利亞 尼日利亞 奈及利亞 尼日利亞 尼日尔 尼日爾 +尼日爾 尼日爾 尼日 尼日爾 -巴巴多斯 巴巴多斯 巴貝多 巴巴多斯 -巴布亚新几内亚 巴布亞新畿內亞 巴布亞紐幾內亞 巴布亞新畿內亞 -布基纳法索 布基納法索 布吉納法索 布基納法索 -布隆迪 布隆迪 蒲隆地 布隆迪 +帕劳 帛琉 義大利 意大利 -所罗门群岛 所羅門群島 索羅門群島 所羅門群島 -斯威士兰 斯威士蘭 +文莱 汶萊 史瓦濟蘭 斯威士蘭 -斯洛文尼亚 斯洛文尼亞 斯洛維尼亞 斯洛文尼亞 -新西兰 新西蘭 紐西蘭 新西蘭 -格林纳达 格林納達 格瑞那達 格林納達 -格鲁吉亚 喬治亞 -格魯吉亞 喬治亞 -梵蒂冈 梵蒂岡 -毛里塔尼亚 毛里塔尼亞 茅利塔尼亞 毛里塔尼亞 毛里求斯 毛里裘斯 模里西斯 毛里裘斯 +沙地阿拉伯 沙特阿拉伯 沙烏地阿拉伯 沙特阿拉伯 -波斯尼亚和黑塞哥维那 波斯尼亞黑塞哥維那 波士尼亞赫塞哥維納 波斯尼亞黑塞哥維那 -津巴布韦 津巴布韋 辛巴威 津巴布韋 -洪都拉斯 洪都拉斯 宏都拉斯 洪都拉斯 -特立尼达和托巴哥 特立尼達和多巴哥 千里達托貝哥 特立尼達和多巴哥 -瑙鲁 瑙魯 諾魯 瑙魯 -瓦努阿图 瓦努阿圖 萬那杜 瓦努阿圖 -科摩罗 科摩羅 葛摩 科摩羅 -索马里 索馬里 索馬利亞 索馬里 -老挝 老撾 寮國 老撾 肯尼亚 肯雅 肯亞 肯雅 -莫桑比克 莫桑比克 莫三比克 莫桑比克 -莱索托 萊索托 賴索托 萊索托 -贝宁 貝寧 貝南 貝寧 -赞比亚 贊比亞 尚比亞 贊比亞 -阿塞拜疆 阿塞拜疆 亞塞拜然 阿塞拜疆 -阿拉伯联合酋长国 阿拉伯聯合酋長國 阿拉伯聯合大公國 阿拉伯聯合酋長國 -马尔代夫 馬爾代夫 馬爾地夫 馬爾代夫 馬利共和國 馬里共和國 方便面 即食麵 @@ -200,11 +135,9 @@ 拿破崙 拿破侖 布什 布殊 布希 布殊 -克林顿 克林頓 柯林頓 克林頓 萨达姆 薩達姆 海珊 侯賽因 -侯赛因 侯賽因 大卫·贝克汉姆 大衛碧咸 迈克尔·欧文 米高奧雲 珍妮弗·卡普里亚蒂 卡佩雅蒂 Modified: branches/visual_diff/phase3/includes/zhtable/toSG.manual =================================================================== --- branches/visual_diff/phase3/includes/zhtable/toSG.manual 2008-08-17 23:32:07 UTC (rev 39562) +++ branches/visual_diff/phase3/includes/zhtable/toSG.manual 2008-08-18 00:10:23 UTC (rev 39563) @@ -5,6 +5,7 @@ 方便面 快速面 速食麵 快速面 即食麵 快速面 +泡麵 快速面 蹦极跳 绑紧跳 笨豬跳 绑紧跳 凉菜 冷菜 @@ -16,4 +17,3 @@ 民乐 华乐 住房 住屋 房价 屋价 -泡麵 快速面 Modified: branches/visual_diff/phase3/includes/zhtable/toTW.manual =================================================================== --- branches/visual_diff/phase3/includes/zhtable/toTW.manual 2008-08-17 23:32:07 UTC (rev 39562) +++ branches/visual_diff/phase3/includes/zhtable/toTW.manual 2008-08-18 00:10:23 UTC (rev 39563) @@ -85,7 +85,6 @@ 服务器 伺服器 等于 等於 局域网 區域網 -计算机 電腦 扫瞄仪 掃瞄器 宽带 寬頻 数据库 資料庫 @@ -143,7 +142,6 @@ 伯利兹 貝里斯 伯利茲 貝里斯 佛得角 維德角 -佛得角 維德角 克罗地亚 克羅埃西亞 克羅地亞 克羅埃西亞 冈比亚 甘比亞 @@ -212,17 +210,14 @@ 尼日尔 尼日 尼日爾 尼日 巴巴多斯 巴貝多 -巴巴多斯 巴貝多 巴布亚新几内亚 巴布亞紐幾內亞 巴布亞新畿內亞 巴布亞紐幾內亞 布基纳法索 布吉納法索 布基納法索 布吉納法索 布隆迪 蒲隆地 布隆迪 蒲隆地 -希腊 希臘 帕劳 帛琉 意大利 義大利 -意大利 義大利 所罗门群岛 索羅門群島 所羅門群島 索羅門群島 文莱 汶萊 @@ -276,7 +271,6 @@ 赞比亚 尚比亞 贊比亞 尚比亞 阿塞拜疆 亞塞拜然 -阿塞拜疆 亞塞拜然 阿拉伯联合酋长国 阿拉伯聯合大公國 阿拉伯聯合酋長國 阿拉伯聯合大公國 马尔代夫 馬爾地夫 @@ -307,7 +301,6 @@ 積架 捷豹 福士 福斯 雪铁龙 雪鐵龍 -马自达 馬自達 萬事得 馬自達 拿破仑 拿破崙 拿破侖 拿破崙 Modified: branches/visual_diff/phase3/includes/zhtable/tradphrases.manual =================================================================== --- branches/visual_diff/phase3/includes/zhtable/tradphrases.manual 2008-08-17 23:32:07 UTC (rev 39562) +++ branches/visual_diff/phase3/includes/zhtable/tradphrases.manual 2008-08-18 00:10:23 UTC (rev 39563) @@ -308,7 +308,6 @@ 豐濱 豐濱鄉 象徵著 -這么著 這麼著 那麼著 配合著 @@ -327,7 +326,6 @@ 披頭散髮 髮禁 鬥著 -鬧著玩儿 鬧著玩兒 鯰魚 世界盃 Modified: branches/visual_diff/phase3/languages/LanguageConverter.php =================================================================== --- branches/visual_diff/phase3/languages/LanguageConverter.php 2008-08-17 23:32:07 UTC (rev 39562) +++ branches/visual_diff/phase3/languages/LanguageConverter.php 2008-08-18 00:10:23 UTC (rev 39563) @@ -392,7 +392,7 @@ $isredir = $wgRequest->getText( 'redirect', 'yes' ); $action = $wgRequest->getText( 'action' ); $linkconvert = $wgRequest->getText( 'linkconvert', 'yes' ); - if ( $isredir == 'no' || $action == 'edit' || $linkconvert == 'no' ) { + if ( $isredir == 'no' || $action == 'edit' || $action == 'submit' || $linkconvert == 'no' ) { return $text; } else { $this->mTitleDisplay = $this->convert($text); @@ -479,7 +479,7 @@ $ns=NS_MAIN; - if ( $disableLinkConversion || $isredir == 'no' || $action == 'edit' + if ( $disableLinkConversion || $isredir == 'no' || $action == 'edit' || $action == 'submit' || $linkconvert == 'no' || $wgUser->getOption('noconvertlink') == 1 ) { return; } Modified: branches/visual_diff/phase3/languages/messages/MessagesAf.php =================================================================== --- branches/visual_diff/phase3/languages/messages/MessagesAf.php 2008-08-17 23:32:07 UTC (rev 39562) +++ branches/visual_diff/phase3/languages/messages/MessagesAf.php 2008-08-18 00:10:23 UTC (rev 39563) @@ -544,14 +544,17 @@ 'blockedtitle' => 'Gebruiker is geblokkeer', 'blockedtext' => "<big>'''U gebruikersnaam of IP-adres is geblokkeer.'''</big> -Die blokkering is deur $1 gedoen. Die rede gegee is ''$2''. +Die blokkering is deur $1 gedoen. +Die rede gegee is ''$2''. -* Begin van blokkering: $8 -* Verval van blokkering: $6 +* Begin van blokkade: $8 +* Blokkade eindig: $6 * Blokkering gemik op: $7 U mag $1 of een van die ander [[{{MediaWiki:Grouppage-sysop}}|administreerders]] kontak om dit te bespreek. -U kan nie die 'e-pos hierdie gebruiker' opsie gebruik tensy 'n geldige e-pos adres gespesifiseer is in U [[Special:Preferences|rekening voorkeure]] en U is nie geblokkeer om dit te gebruik nie. U huidige IP-adres is $3, en die blokkering ID is #$5. Sluit asseblief een of albei hierdie verwysings in by enige navrae.", +U kan nie die 'e-pos hierdie gebruiker' opsie gebruik tensy 'n geldige e-pos adres gespesifiseer is in U [[Special:Preferences|rekening voorkeure]] en U is nie geblokkeer om dit te gebruik nie. +U huidige IP-adres is $3, en die blokkering ID is #$5. +Sluit asseblief een of albei hierdie verwysings in by enige navrae.", 'autoblockedtext' => "U IP-adres is outomaties geblok omdat dit deur 'n gebruiker gebruik was, wat deur $1 geblokkeer is. Die rede verskaf is: @@ -1527,7 +1530,7 @@ # What links here 'whatlinkshere' => 'Skakels hierheen', -'whatlinkshere-title' => 'Bladsye die skakel na $1', +'whatlinkshere-title' => 'Bladsye wat verwys na "$1"', 'whatlinkshere-page' => 'Bladsy:', 'linkshere' => "Die volgende bladsye skakel na '''[[:$1]]''':", 'nolinkshere' => "Geen bladsye skakel na '''[[:$1]]'''.", @@ -1585,7 +1588,7 @@ 'ipusubmit' => 'Maak hierdie adres oop', 'unblocked' => 'Blokkade van [[User:$1|$1]] is opgehef', 'unblocked-id' => 'Blokkade $1 is opgehef', -'ipblocklist' => 'Lys van geblokkeerde IP-adresse', +'ipblocklist' => 'Geblokkeerde IP-adresse en gebruikers', 'ipblocklist-legend' => "Soek 'n geblokkeerde gebruiker", 'ipblocklist-username' => 'Gebruikersnaam of IP adres:', 'ipblocklist-submit' => 'Soek', Modified: branches/visual_diff/phase3/languages/messages/MessagesAr.php =================================================================== --- branches/visual_diff/phase3/languages/messages/MessagesAr.php 2008-08-17 23:32:07 UTC (rev 39562) +++ branches/visual_diff/phase3/languages/messages/MessagesAr.php 2008-08-18 00:10:23 UTC (rev 39563) @@ -412,6 +412,8 @@ 'tog-watchlisthideown' => 'أخف تعديلاتي من قائمة المراقبة', 'tog-watchlisthidebots' => 'أخف تعديلات البوت من قائمة المراقبة', 'tog-watchlisthideminor' => 'أخف التعديلات الطفيفة من قائمة المراقبة', +'tog-watchlisthideliu' => 'أخف تعديلات المستخدمين المسجلين من قائمة المراقبة', +'tog-watchlisthideanons' => 'أخف تعديلات المستخدمين المجهولين من قائمة المراقبة', 'tog-nolangconversion' => 'عطل تحويل اللهجات', 'tog-ccmeonemails' => 'أرسل لي نسخا من رسائل البريد الإلكتروني التي أرسلها للمستخدمين الآخرين', 'tog-diffonly' => 'لا تعرض محتوى الصفحة أسفل الفروقات', @@ -1101,7 +1103,7 @@ 'revdelete-text' => 'المراجعات والأحداث المحذوفة ستظل تظهر في تاريخ الصفحة والسجلات، لكن أجزاء من محتواهم لن يكون مسموحا للعامة برؤيتها. -الإداريون الآخرون في {{SITENAME}}سيظل بإمكانهم رؤية المحتوى المخفي ويمكنهم استرجاعه مجددا من خلال هذه الواجهة نفسها، مالم يتم وضع قيود إضافية.', +الإداريون الآخرون في {{SITENAME}} سيظل بإمكانهم رؤية المحتوى المخفي ويمكنهم استرجاعه مجددا من خلال هذه الواجهة نفسها، مالم يتم وضع قيود إضافية.', 'revdelete-legend' => 'وضع ضوابط رؤية', 'revdelete-hide-text' => 'إخفاء نص المراجعة', 'revdelete-hide-name' => 'إخفاء الفعل والهدف', @@ -1782,6 +1784,7 @@ 'nextpage' => 'الصفحة التالية ($1)', 'prevpage' => 'الصفحة السابقة ($1)', 'allpagesfrom' => 'عرض الصفحات بدءا من:', +'allpagesto' => 'اعرض الصفحات المنتهية عند:', 'allarticles' => 'كل الصفحات', 'allinnamespace' => 'كل الصفحات (في نطاق $1)', 'allnotinnamespace' => 'كل الصفحات (ليست في نطاق $1)', @@ -1875,6 +1878,10 @@ 'watchlist-hide-own' => 'إخفاء تعديلاتي', 'watchlist-show-minor' => 'عرض التعديلات الطفيفة', 'watchlist-hide-minor' => 'إخفاء التعديلات الطفيفة', +'watchlist-show-anons' => 'إظهار تعديلات المجهولين', +'watchlist-hide-anons' => 'إخفاء تعديلات المجهولين', +'watchlist-show-liu' => 'أظهر تعديلات المستخدمين المسجلين', +'watchlist-hide-liu' => 'أخف تعديلات المستخدمين المسجلين', # Displayed when you click the "watch" button and it is in the process of watching 'watching' => 'مراقبة...', Modified: branches/visual_diff/phase3/languages/messages/MessagesArn.php =================================================================== --- branches/visual_diff/phase3/languages/messages/MessagesArn.php 2008-08-17 23:32:07 UTC (rev 39562) +++ branches/visual_diff/phase3/languages/messages/MessagesArn.php 2008-08-18 00:10:23 UTC (rev 39563) @@ -79,6 +79,7 @@ 'moredotdotdot' => 'Doy...', 'mypage' => 'tañi nütramkawe', 'mytalk' => 'Tañi nütramkawe', +'anontalk' => 'Tüfachi IP ñi nütramkawe', 'and' => 'ka', 'returnto' => 'Amutun $1 püle.', @@ -93,6 +94,7 @@ 'edit' => 'Wirin', 'create' => 'Llitun', 'editthispage' => 'Wirin tüfachi página', +'create-this-page' => 'Llitun tüfachi pakina', 'delete' => 'Ñamümün', 'deletethispage' => 'Ñamümün tüfachi pakina', 'protect' => 'Elulan ñi wiriael', @@ -104,7 +106,7 @@ 'toolbox' => 'Küdawpeyüm', 'userpage' => 'adkintun página de usuario', 'projectpage' => 'adkintun página meta', -'imagepage' => 'adkintun pakina imagen', +'imagepage' => 'Adkintun ad pakina', 'mediawikipage' => 'adkintun página de mensaje', 'templatepage' => 'adkintun página de plantilla', 'viewhelppage' => 'adkintun página de ayuda', @@ -130,6 +132,7 @@ 'viewdeleted' => 'Küpaadkintuymi $1 am?', # Short words for each namespace, by default used in the namespace tab in monobook +'nstab-main' => 'pakina', 'nstab-user' => 'Lludüchi', 'nstab-special' => 'Kangelu', 'nstab-mediawiki' => 'Dungu', @@ -145,7 +148,7 @@ 'yourname' => 'Tami lludüchi üy', 'yourpassword' => 'Tami kondungu', 'login' => 'Konün', -'nav-login-createaccount' => 'Registrarse/Konün', +'nav-login-createaccount' => 'Konün', 'userlogin' => 'Konün', 'logout' => 'Tripan', 'userlogout' => 'Tripan', @@ -158,16 +161,18 @@ 'loginlanguagelabel' => 'Dungun: $1', # Edit pages -'subject' => 'Dungu/üy', -'showpreview' => 'Pen chum müley', -'loginreqlink' => 'Koni', -'newarticle' => '(We)', -'editing' => 'Wirimekey $1', -'yourtext' => 'Tami wirin', +'subject' => 'Dungu/üy', +'showpreview' => 'Pen chum müley', +'loginreqlink' => 'Koni', +'newarticle' => '(We)', +'editing' => 'Wirimekey $1', +'yourtext' => 'Tami wirin', +'template-protected' => '(Ngünaytun)', # History pages 'page_first' => 'wünen', 'history-search' => 'Kintun pünon', +'deletedrev' => '[ñamümüngelu]', 'historyempty' => '(welli)', # Revision feed @@ -175,6 +180,8 @@ # Revision deletion 'rev-delundel' => 'pengelün/ellkan', +'pagehist' => 'pünon pakina', +'deletedhist' => 'Ñamümüngelu pünon', 'revdelete-hid' => 'Ellkan $1', # Diffs @@ -200,10 +207,17 @@ 'group-sysop' => 'Pu ngünefe', 'group-all' => '(kom pu che)', +# Rights +'right-edit' => 'Wirin pakina', +'right-createpage' => 'Llitun pakina (nütramkayam pakinanongelu)', +'right-createtalk' => 'Llitun nütramkayam pakina', +'right-delete' => 'Ñamümün pakina', + # User rights log 'rightsnone' => 'chemnorume', # Recent changes +'rcshowhidemine' => '$1 tañi wirin', 'hide' => 'Ellkan', 'minoreditletter' => 'p', 'newpageletter' => 'W', @@ -215,7 +229,7 @@ # Image description page 'filehist-deleteall' => 'kom ñamümün', -'filehist-deleteone' => 'tüfa ñamümün', +'filehist-deleteone' => 'ñamümün tüfa', # File deletion 'filedelete' => '$1 ñamümün', @@ -254,7 +268,12 @@ 'unwatch' => 'Llaytuwelan', 'unwatchthispage' => 'Llaytuwelan', +'created' => 'Llituy', + # Delete/protect/revert +'deletepage' => 'Ñamümün tüfachi pakina', +'delete-legend' => 'Ñamümün', +'deletedarticle' => '«[[$1]]» Ñamümün', 'protectexpiry' => 'Afi:', 'protect-level-sysop' => 'Pu ngünefe müṯen', 'protect-summary-cascade' => 'Trayengko', @@ -274,6 +293,7 @@ # Block/unblock 'ipbexpiry' => 'Afi', +'ipbotheroption' => 'Kakelu', 'ipblocklist-submit' => 'Kintun', 'expiringblock' => 'afi $1', @@ -287,6 +307,7 @@ # Tooltip help for the actions 'tooltip-pt-mytalk' => 'Tañi nütramkawe', 'tooltip-pt-logout' => 'Tripan', +'tooltip-ca-delete' => 'Ñamümün tüfachi pakina', # Patrol log 'patrol-log-diff' => 'ng$1', @@ -300,7 +321,8 @@ # EXIF tags 'exif-exposuretime-format' => '$1 sek ($2)', -'exif-meteringmode-0' => 'Kimnoelchi', +'exif-meteringmode-0' => 'Kimnoelchi', +'exif-meteringmode-255' => 'Kakelu', 'exif-lightsource-0' => 'Kimnoelchi', @@ -311,9 +333,13 @@ # 'all' in various places, this might be different for inflected languages 'recentchangesall' => 'kom', 'imagelistall' => 'kom', +'watchlistall2' => 'Fill', 'namespacesall' => 'kom', 'monthsall' => '(kom)', +# Trackbacks +'trackbackremove' => ' ([$1 Ñamümün])', + # action=purge 'confirm_purge_button' => 'Feley may', @@ -329,6 +355,12 @@ 'size-megabytes' => '$1 Mb', 'size-gigabytes' => '$1 Gb', +# Special:Version +'version-other' => 'Kakelu', + +# Special:FileDuplicateSearch +'fileduplicatesearch-submit' => 'Kintun', + # Special:SpecialPages 'specialpages-group-login' => 'Konün', Modified: branches/visual_diff/phase3/languages/messages/MessagesArz.php =================================================================== --- branches/visual_diff/phase3/languages/messages/MessagesArz.php 2008-08-17 23:32:07 UTC (rev 39562) +++ branches/visual_diff/phase3/languages/messages/MessagesArz.php 2008-08-18 00:10:23 UTC (rev 39563) @@ -298,6 +298,9 @@ 'tog-watchlisthideown' => ' خبي التعديلات بتاعتي من لستة المراقبة', 'tog-watchlisthidebots' => 'خبي التعديلات بتاعة البوت من لستة المراقبة', 'tog-watchlisthideminor' => 'خبي التعديلات البسيطة من لستة المراقبة', +'tog-watchlisthideliu' => 'خبي التعديلات بتاعة اليوزرز المتسجل دخولهم دلوقتى من لستة المراقبة', +'tog-watchlisthideanons' => 'خبى التعديلات بتاعة اليوزرز المجهولين من لستة المراقبة', +'tog-nolangconversion' => 'عطل تحويل اللهجات', 'tog-ccmeonemails' => 'ابعتلى نسخ من رسايل الايميل اللى بابعتها لليوزرز التانيين', 'tog-diffonly' => 'ما تبين ش محتوى الصفحة تحت الفروقات', 'tog-showhiddencats' => 'بين التّصنيفات المستخبية', @@ -1454,7 +1457,7 @@ 'filedelete-comment' => 'سبب المسح:', 'filedelete-submit' => 'مسح', 'filedelete-success' => "'''$1''' خلاص اتمسح.", -'filedelete-success-old' => '<span class="plainlinks">نسخة \'\'\'[[Media:$1|$1]]\'\'\' اللي بتاريخ $3، $2 اتمسحت.</span>', +'filedelete-success-old' => "نسخة الـ'''[[Media:$1|$1]]''' اللي بتاريخ $3، $2 اتمسحت.", 'filedelete-nofile' => "'''$1''' مش موجود في {{SITENAME}}.", 'filedelete-nofile-old' => "مافيش نسخة في الارشيف من '''$1''' بالعناصر المتحددة.", 'filedelete-otherreason' => 'سبب زيادة/تاني:', @@ -1566,6 +1569,7 @@ 'deadendpagestext' => 'الصفحات دي مابتوصلش لصفحات تانية في {{SITENAME}}.', 'protectedpages' => 'صفحات محميه', 'protectedpages-indef' => 'عمليات الحماية اللي مش متحددة بس', +'protectedpages-cascade' => 'الحماية المتضمنة بس', 'protectedpagestext' => 'الصفحات دي محمية من النقل أو التعديل', 'protectedpagesempty' => 'مافيش صفحات محمية دلوقتي على حسب المحددات دي.', 'protectedtitles' => 'عناوين محمية', @@ -1612,6 +1616,7 @@ 'nextpage' => 'الصفحه اللى بعد كده ($1)', 'prevpage' => 'الصفحه اللى قبل كده ($1)', 'allpagesfrom' => 'عرض الصفحات بدايه من:', +'allpagesto' => 'اعرض الصفحات اللي بتنتهي عند:', 'allarticles' => 'كل المقالات', 'allinnamespace' => 'كل الصفحات (في نطاق $1)', 'allnotinnamespace' => 'كل الصفحات (مش في نطاق $1)', @@ -1709,6 +1714,10 @@ 'watchlist-hide-own' => 'اخفاء تعديلاتى', 'watchlist-show-minor' => 'عرض التعديلات الطفيفة', 'watchlist-hide-minor' => 'خبى التعديلات الصغيره', +'watchlist-show-anons' => 'اعرض التعديلات بتاعة اليوزرز المجهولين', +'watchlist-hide-anons' => 'خبي التعديلات بتاعة اليوزرز المجهولين', +'watchlist-show-liu' => 'اعرض التعديلات بتاعة اليوزرز المسجلين دخولهم', +'watchlist-hide-liu' => 'خبي التعديلات بتاعة اليوزرز المسجلين دخولهم', # Displayed when you click the "watch" button and it is in the process of watching 'watching' => 'راقب...', Modified: branches/visual_diff/phase3/languages/messages/MessagesAst.php =================================================================== --- branches/visual_diff/phase3/languages/messages/MessagesAst.php 2008-08-17 23:32:07 UTC (rev 39562) +++ branches/visual_diff/phase3/languages/messages/MessagesAst.php 2008-08-18 00:10:23 UTC (rev 39563) @@ -82,6 +82,8 @@ 'tog-watchlisthideown' => 'Esconder les mios ediciones na llista de vixilancia', 'tog-watchlisthidebots' => 'Esconder les ediciones de bots na llista de vixilancia', 'tog-watchlisthideminor' => 'Esconder les ediciones menores na llista de vixilancia', +'tog-watchlisthideliu' => "Ocultar ediciones d'usuarios rexistraos na llista de vixilancia", +'tog-watchlisthideanons' => "Ocultar ediciones d'usuarios anónimos na llista de vixilancia", 'tog-nolangconversion' => 'Deshabilitar la conversión de variantes de llingua', 'tog-ccmeonemails' => 'Mandame copies de los correos que mando a otros usuarios', 'tog-diffonly' => 'Nun amosar el conteníu de la páxina embaxo de les diferencies', @@ -1331,6 +1333,7 @@ 'deadendpagestext' => 'Les páxines siguientes nun enllacien a páxina dala de {{SITENAME}}.', 'protectedpages' => 'Páxines protexíes', 'protectedpages-indef' => 'Namái les proteiciones permanentes', +'protectedpages-cascade' => 'Namái proteiciones en cascada', 'protectedpagestext' => "Les páxines siguientes tán protexíes escontra'l treslláu y la edición", 'protectedpagesempty' => 'Nun hai páxines protexíes anguaño con estos parámetros.', 'protectedtitles' => 'Títulos protexíos', @@ -1375,6 +1378,7 @@ 'nextpage' => 'Páxina siguiente ($1)', 'prevpage' => 'Páxina anterior ($1)', 'allpagesfrom' => "Amosar páxines qu'entamen por:", +'allpagesto' => 'Amosar páxines que finen por:', 'allarticles' => 'Toles páxines', 'allinnamespace' => 'Toles páxines (espaciu de nomes $1)', 'allnotinnamespace' => 'Toles páxines (sacantes les del espaciu de nomes $1)', @@ -1387,7 +1391,8 @@ # Special:Categories 'categories' => 'Categoríes', -'categoriespagetext' => 'Les categoríes que vienen darréu contienen páxines o archivos multimedia.', +'categoriespagetext' => "Les categoríes que vienen darréu contienen páxines o archivos multimedia. +Les [[Special:UnusedCategories|categoríes non usaes]] y les [[Special:WantedCategories|categoríes más buscaes]] nun s'amuesen equí.", 'categoriesfrom' => "Amosar categoríes qu'emprimen por:", 'special-categories-sort-count' => 'ordenar por tamañu', 'special-categories-sort-abc' => 'ordenar alfabéticamente', @@ -1470,6 +1475,10 @@ 'watchlist-hide-own' => 'Esconder les mios ediciones', 'watchlist-show-minor' => 'Amosar ediciones menores', 'watchlist-hide-minor' => 'Esconder ediciones menores', +'watchlist-show-anons' => 'Amosar ediciones anónimes', +'watchlist-hide-anons' => 'Ocultar ediciones anónimes', +'watchlist-show-liu' => "Amosar ediciones d'usuarios rexistraos", +'watchlist-hide-liu' => "Ocultar ediciones d'usuarios rexistraos", # Displayed when you click the "watch" button and it is in the process of watching 'watching' => 'Vixilando...', Modified: branches/visual_diff/phase3/languages/messages/MessagesBcc.php =================================================================== --- branches/visual_diff/phase3/languages/messages/MessagesBcc.php 2008-08-17 23:32:07 UTC (rev 39562) +++ branches/visual_diff/phase3/languages/messages/MessagesBcc.php 2008-08-18 00:10:23 UTC (rev 39563) @@ -144,6 +144,8 @@ 'tog-watchlisthideown' => 'منی اصلاحات آ چه لیست چارگ پناه کن', 'tog-watchlisthidebots' => 'اصلاحات بوت چه لیست چارگ پناه کن', 'tog-watchlisthideminor' => 'هوردین اصلاحات چه لیست چارگ پناه کن', +'tog-watchlisthideliu' => 'اصلاحات چه وارد بوتگین کاربران چه لیست چارگان پناه کن', +'tog-watchlisthideanons' => 'اصلاحات ناشناسین کاربرانء چه لیست چارگ پناه کن', 'tog-nolangconversion' => 'غیر فعال کتن بدل کتن مغایرت آن', 'tog-ccmeonemails' => 'په من یک کپی چه ایمیل آنی که من په دگه کاربران راه داته دیم دی', 'tog-diffonly' => 'چیر تفاوت محتوای صفحه ی پیش مدار', @@ -252,7 +254,7 @@ 'errorpagetitle' => 'حطا', 'returnto' => 'تررگ به $1.', -'tagline' => 'چه {{sitename}}', +'tagline' => 'چه {{SITENAME}}', 'help' => 'کمک', 'search' => 'گردگ', 'searchbutton' => 'گردگ', @@ -1495,6 +1497,7 @@ 'nextpage' => 'صفحه ی بعدی ($1)', 'prevpage' => ' ($1)پیشگین صفحه', 'allpagesfrom' => 'پیش در صفحات شروع بنت ته:', +'allpagesto' => 'پیش بدار صفحاتی که هلنت گون:', 'allarticles' => 'کل صفحات', 'allinnamespace' => 'کل صفحات($1 نام فضا)', 'allnotinnamespace' => 'صفحات کل (ته نام فضا $1 نه)', @@ -1588,6 +1591,10 @@ 'watchlist-hide-own' => 'منی اصلاحات آ پناه کن', 'watchlist-show-minor' => 'پیش دار هوردین اصلاحاتء', 'watchlist-hide-minor' => 'هوردین تغییرات پناه کن', +'watchlist-show-anons' => 'اصلاحات نشاسناس پیش دار', +'watchlist-hide-anons' => 'نشاشناسین اصلاحات پناه کن', +'watchlist-show-liu' => 'پیش دار اصلاحات کاربرانی که وارد بوتگن', +'watchlist-hide-liu' => 'پناه کن اصلاحات کاربرانی که وارد بوتگن', # Displayed when you click the "watch" button and it is in the process of watching 'watching' => 'چارگ بین', Modified: branches/visual_diff/phase3/languages/messages/MessagesBe_tarask.php =================================================================== --- branches/visual_diff/phase3/languages/messages/MessagesBe_tarask.php 2008-08-17 23:32:07 UTC (rev 39562) +++ branches/visual_diff/phase3/languages/messages/MessagesBe_tarask.php 2008-08-18 00:10:23 UTC (rev 39563) @@ -278,6 +278,8 @@ 'tog-watchlisthideown' => 'Хаваць мае праўкі ў сьпісе назіраньня', 'tog-watchlisthidebots' => 'Хаваць праўкі робатаў у сьпісе назіраньня', 'tog-watchlisthideminor' => 'Хаваць дробныя праўкі ў сьпісе назіраньня', +'tog-watchlisthideliu' => 'Хаваць праўкі зарэгістраваных удзельнікаў і ўдзельніц у сьпісе назіраньня', +'tog-watchlisthideanons' => 'Хаваць праўкі ананімаў у сьпісе назіраньня', 'tog-ccmeonemails' => 'Дасылаць мне копіі лістоў, якія я дасылаю іншым удзельнікам і ўдзельніцам', 'tog-diffonly' => 'Не паказваць зьмест старонкі пад параўнаньнем зьменаў', 'tog-showhiddencats' => 'Паказваць схаваныя катэгорыі', @@ -1687,12 +1689,16 @@ 'iteminvalidname' => 'Праблема з элемэнтам «$1», няслушная назва…', 'wlnote' => "Ніжэй {{PLURAL:$1|паказаная '''$1''' апошняя зьмена|паказаныя '''$1''' апошнія зьмены|паказаныя '''$1''' апошніх зьменаў}} за '''$2''' {{PLURAL:$2|гадзіну|гадзіны|гадзінаў}}.", 'wlshowlast' => 'Паказваць за апошнія $1 гадзінаў $2 дзён $3', -'watchlist-show-bots' => 'паказаць праўкі робатаў', -'watchlist-hide-bots' => 'схаваць праўкі робатаў', +'watchlist-show-bots' => 'паказаць робатаў', +'watchlist-hide-bots' => 'схаваць робатаў', 'watchlist-show-own' => 'паказаць мае праўкі', 'watchlist-hide-own' => 'схаваць мае праўкі', 'watchlist-show-minor' => 'паказаць дробныя праўкі', 'watchlist-hide-minor' => 'схаваць дробныя праўкі', +'watchlist-show-anons' => 'паказаць ананімаў', +'watchlist-hide-anons' => 'схаваць ананімаў', +'watchlist-show-liu' => 'паказаць зарэгістраваных', +'watchlist-hide-liu' => 'схаваць зарэгістраваных', # Displayed when you click the "watch" button and it is in the process of watching 'watching' => 'Дадаецца ў сьпіс назіраньня…', @@ -2420,7 +2426,7 @@ 'exif-sensingmethod' => 'Тып сэнсару', 'exif-filesource' => 'Крыніца файла', 'exif-scenetype' => 'Тып сцэны', -'exif-cfapattern' => 'Тып колеравага фільтра', +'exif-cfapattern' => 'Тып колеравага фільтру', 'exif-customrendered' => 'Дадатковая апрацоўка', 'exif-exposuremode' => 'Лад насьвятленьня', 'exif-saturation' => 'Насычанасьць', Modified: branches/visual_diff/phase3/languages/messages/MessagesBg.php =================================================================== --- branches/visual_diff/phase3/languages/messages/MessagesBg.php 2008-08-17 23:32:07 UTC (rev 39562) +++ branches/visual_diff/phase3/languages/messages/MessagesBg.php 2008-08-18 00:10:23 UTC (rev 39563) @@ -260,6 +260,8 @@ 'tog-watchlisthideown' => 'Скриване на моите редакции в списъка ми за наблюдение', 'tog-watchlisthidebots' => 'Скриване на редакциите на ботове в списъка ми за наблюдение', 'tog-watchlisthideminor' => 'Скриване на малките промени в списъка ми за наблюдение', +'tog-watchlisthideliu' => 'Скриване на редакциите от влезли потребители от списъка за наблюдение', +'tog-watchlisthideanons' => 'Скриване на редакциите от анонимни потребители в списъка за наблюдение', 'tog-nolangconversion' => 'Без преобразувания при различни езикови варианти', 'tog-ccmeonemails' => 'Получаване на копия на писмата, които пращам на другите потребители', 'tog-diffonly' => 'Без показване на съдържанието на страницата при преглед на разлики', @@ -449,7 +451,7 @@ 'badaccess' => 'Грешка при достъп', 'badaccess-group0' => 'Нямате права да извършите исканото действие', -'badaccess-groups' => 'Исканото действие могат да изпълнят само потребители от групите $1.', +'badaccess-groups' => 'Исканото действие могат да изпълнят само потребители от {{PLURAL:$2|група|някоя от следните групи:}} $1.', 'versionrequired' => 'Изисква се версия $1 на МедияУики', 'versionrequiredtext' => 'Използването на тази страница изисква версия $1 на софтуера МедияУики. Вижте [[Special:Version|текущата използвана версия]].', @@ -610,7 +612,7 @@ 'yourrealname' => 'Истинско име:', 'yourlanguage' => 'Език:', 'yourvariant' => 'Вариант', -'yournick' => 'Псевдоним', +'yournick' => 'Подпис:', 'badsig' => 'Избраният подпис не е валиден. Проверете HTML-етикетите!', 'badsiglength' => 'Подписът е твърде дълъг. Максимално допустимата дължина на подпис е $1 {{PLURAL:$1|знак|знака}}.', @@ -836,7 +838,7 @@ # Parser/template warnings 'expensive-parserfunction-warning' => 'Внимание: Тази страница прекалено много пъти използва ресурсоемки парсерни функции. -В момента има $1, трябва да са по-малко от $2.', +В момента има {{PLURAL:$1|$1 обръщение|$1 обръщения}} към такива функции, а трябва да {{PLURAL:$1|е|са}} по-малко от $2.', 'expensive-parserfunction-category' => 'Страници, които прекалено много пъти използват ресурсоемки парсерни функции', 'post-expand-template-inclusion-warning' => 'Внимание: Размерът за включване на този шаблон е твърде голям. Някои шаблони няма да бъдат включени.', @@ -1372,7 +1374,7 @@ 'filedelete-comment' => 'Коментар:', 'filedelete-submit' => 'Изтриване', 'filedelete-success' => "Файлът '''$1''' беше изтрит.", -'filedelete-success-old' => '<span class="plainlinks">Версията на \'\'\'[[Media:$1|$1]]\'\'\' към $3, $2 е била изтрита.</span>', +'filedelete-success-old' => "Версията на '''[[Media:$1|$1]]''' към $3, $2 е била изтрита.", 'filedelete-nofile' => "Файлът '''$1''' не съществува в {{SITENAME}}.", 'filedelete-nofile-old' => "Не съществува архивна версия на '''$1''' с указаните параметри.", 'filedelete-otherreason' => 'Друга/допълнителна причина:', @@ -1477,6 +1479,7 @@ 'deadendpagestext' => 'Следните страници нямат препратки към други страници от {{SITENAME}}.', 'protectedpages' => 'Защитени страници', 'protectedpages-indef' => 'Само безсрочни защити', +'protectedpages-cascade' => 'Само каскадни защити', 'protectedpagestext' => 'Следните страници са защитени против редактиране или преместване', 'protectedpagesempty' => 'В момента няма защитени страници с тези параметри.', 'protectedtitles' => 'Защитени заглавия', @@ -1612,6 +1615,10 @@ 'watchlist-hide-own' => 'Скриване на моите приноси', 'watchlist-show-minor' => 'Показване на малки промени', 'watchlist-hide-minor' => 'Скриване на малки промени', +'watchlist-show-anons' => 'Показване на анонимните редакции', +'watchlist-hide-anons' => 'Скриване на анонимните редакции', +'watchlist-show-liu' => 'Показване на редакциите на влезли потребители', +'watchlist-hide-liu' => 'Скриване на редакциите на влезли потребители', # Displayed when you click the "watch" button and it is in the process of watching 'watching' => 'Наблюдаване…', @@ -2577,8 +2584,8 @@ 'livepreview-error' => 'Връзката не сполучи: $1 „$2“ Опитайте нормален предварителен преглед.', # Friendlier slave lag warnings -'lag-warn-normal' => 'Промените от последните $1 секунди вероятно не са показани в списъка.', -'lag-warn-high' => 'Поради голямото изоставане в сървърната синхронизация, промените от последните $1 секунди вероятно не са показани в списъка.', +'lag-warn-normal' => 'Промените от {{PLURAL:$1|последната $1 секунда|последните $1 секунди}} вероятно не са показани в списъка.', +'lag-warn-high' => 'Поради голямото изоставане в сървърната синхронизация, промените от {{PLURAL:$1|последната $1 секунда|последните $1 секунди}} вероятно не са показани в списъка.', # Watchlist editor 'watchlistedit-numitems' => 'Списъкът ви за наблюдение съдържа {{PLURAL:$1|1 страница |$1 страници}} (без беседите).', Modified: branches/visual_diff/phase3/languages/messages/MessagesBs.php =================================================================== --- branches/visual_diff/phase3/languages/messages/MessagesBs.php 2008-08-17 23:32:07 UTC (rev 39562) +++ branches/visual_diff/phase3/languages/messages/MessagesBs.php 2008-08-18 00:10:23 UTC (rev 39563) @@ -122,12 +122,17 @@ 'tog-enotifminoredits' => 'Pošalji mi e-poštu takođe za male izmjene stranica', 'tog-enotifrevealaddr' => 'Otkrij adresu moje e-pošte u porukama obaviještenja', 'tog-shownumberswatching' => 'Prikaži broj korisnika koji prate', +'tog-fancysig' => 'Jednostavan potpis (bez automatskog linka)', 'tog-externaleditor' => 'Po potrebi koristite vanjski program za uređivanje (samo za naprednije korisnike, potrebne su promjene na računaru)', +'tog-externaldiff' => 'Koristi vanjski (diff) program za prikaz razlika', 'tog-showjumplinks' => 'Omogući "skoči na" poveznice', +'tog-uselivepreview' => 'Koristite pregled uživo (JavaScript) (Eksperimentalno)', 'tog-forceeditsummary' => 'Opomeni me pri unosu praznog sažetka', 'tog-watchlisthideown' => 'Sakrij moje izmjene sa spiska praćenih članaka', 'tog-watchlisthidebots' => 'Sakrij izmjene botova sa spiska praćenih članaka', 'tog-watchlisthideminor' => 'Sakrij zanemarljive izmjene sa spiska mojih praćenja', +'tog-watchlisthideliu' => 'Sakrij promjene prijavljenih korisnika sa liste praćenja', +'tog-watchlisthideanons' => 'Sakrij promjene anonimnih korisnika sa liste praćenja', 'tog-ccmeonemails' => 'Pošalji mi kopije emailova koje pošaljem drugim korisnicima', 'tog-diffonly' => 'Ne prikazuj sadržaj stranice ispod prikaza razlika', 'tog-showhiddencats' => 'Prikaži skrivene kategorije', @@ -189,19 +194,29 @@ 'dec' => 'dec', # Categories related messages -'pagecategories' => 'Kategorije', -'category_header' => 'Članaka u kategoriji "$1"', -'subcategories' => 'Potkategorije', -'category-media-header' => 'Mediji u kategoriji "$1"', -'category-empty' => "''Ova kategorija trenutno ne sadrži članke ni medije.''", -'hidden-categories' => '{{PLURAL:$1|Sakrivena karegorija|Sakrivene kategorije}}', -'hidden-category-category' => 'Skrivene kategorije', # Name of the category where hidden categories will be listed -'category-subcat-count' => '{{PLURAL:$2|Ova kategorija ima samo sljedeću podkategoriju.|Ova kategorija ima sljedeću {{PLURAL:$1|podkategoriju|$1 podkategorije}}, od $2 ukupno.}}', -'category-subcat-count-limited' => 'Ova kategorija sadrži {{PLURAL:$1|podkategoriju|$1 podkategorije|$1 podkategorija}}.', -'listingcontinuesabbrev' => 'nast.', +'pagecategories' => '{{PLURAL:$1|Kategorija|Kategorije}}', +'category_header' => 'Članaka u kategoriji "$1"', +'subcategories' => 'Potkategorije', +'category-media-header' => 'Mediji u kategoriji "$1"', +'category-empty' => "''Ova kategorija trenutno ne sadrži članke ni medije.''", +'hidden-categories' => '{{PLURAL:$1|Sakrivena kategorija|Sakrivene kategorije}}', +'hidden-category-category' => 'Skrivene kategorije', # Name of the category where hidden categories will be listed +'category-subcat-count' => '{{PLURAL:$2|Ova kategorija ima samo sljedeću podkategoriju.|Ova kategorija ima sljedeću {{PLURAL:$1|podkategoriju|$1 podkategorije}}, od $2 ukupno.}}', +'category-subcat-count-limited' => 'Ova kategorija sadrži {{PLURAL:$1|podkategoriju|$1 podkategorije|$1 podkategorija}}.', +'category-article-count' => '{{PLURAL:$2|U ovoj kategoriji se nalazi ovaj članak.|Prikazano je {{PLURAL:$1|članak|$1 članka|$1 članaka}} od ukupno $2 u ovoj kategoriji.}}', +'category-article-count-limited' => '{{PLURAL:$1|Slijedeća stranica|Slijedećih $1 stranica}} je u ovoj kategoriji.', +'category-file-count' => '{{PLURAL:$2|Ova kategorija ima samo slijedeću datoteku.|Prikazano je {{PLURAL:$1|$1 datoteka|$1 datoteke|$1 datoteka}} u ovoj kategoriji, od ukupno $2.}}', +'category-file-count-limited' => '{{PLURAL:$1|Slijedeća datoteka je|Slijedeće $1 datoteke su|Slijedećih $1 datoteka je}} u ovoj kategoriji.', +'listingcontinuesabbrev' => 'nast.', -'mainpagetext' => 'Viki softver is uspješno instaliran.', +'mainpagetext' => 'Viki softver is uspješno instaliran.', +'mainpagedocfooter' => 'Kontaktirajte [http://meta.wikimedia.org/wiki/Help:Contents uputstva za korisnike] za informacije o upotrebi wiki programa. +== Početak == +* [http://www.mediawiki.org/wiki/Manual:Configuration_settings Lista postavki] +* [http://www.mediawiki.org/wiki/Manual:FAQ MediaWiki najčešće postavljana pitanja] +* [http://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Lista E-Mail adresa MediaWiki]', + 'about' => 'O...', 'article' => 'Članak', 'newwindow' => '(otvara se u novom prozoru)', @@ -220,6 +235,9 @@ 'navigation' => 'Navigacija', 'and' => 'i', +# Metadata in edit box +'metadata_help' => 'Metadata:', + 'errorpagetitle' => 'Greška', 'returnto' => 'Povratak na $1.', 'tagline' => 'Izvor: {{SITENAME}}', @@ -230,6 +248,7 @@ 'searcharticle' => 'Idi', 'history' => 'Historija stranice', 'history_short' => 'Historija', +'updatedmarker' => 'promjene od moje zadnje posjete', 'info_short' => 'Informacija', 'printableversion' => 'Prilagođeno štampanju', 'permalink' => 'Trajni link', @@ -240,7 +259,7 @@ 'create-this-page' => 'Napravi ovu stranicu', 'delete' => 'Obriši', 'deletethispage' => 'Obriši ovu stranicu', -'undelete_short' => 'Vrati $1 obrisanih izmjena', +'undelete_short' => 'Vrati obrisanih {{PLURAL:$1|jednu izmjenu|$1 izmjena}}', 'protect' => 'Zaštitite', 'protect_change' => 'promijeni zaštitu', 'protectthispage' => 'Zaštitite ovu stranicu', @@ -259,12 +278,16 @@ 'userpage' => 'Pogledaj korisničku stranicu', 'projectpage' => 'Pogledaj stranu o ovoj strani', 'imagepage' => 'Pogledajte stranicu slike', +'mediawikipage' => 'Pogledaj stranicu sa porukama', +'templatepage' => 'Pogledajte stranicu za šablone', +'viewhelppage' => 'Pogledajte stranicu za pomoć', +'categorypage' => 'Pogledaj stranicu kategorije', 'viewtalkpage' => 'Pogledaj raspravu', 'otherlanguages' => 'Ostali jezici', 'redirectedfrom' => '(Preusmjereno sa $1)', 'redirectpagesub' => 'Preusmjeri stranicu', 'lastmodifiedat' => 'Ova stranica je posljednji put izmijenjena $2, $1', # $1 date, $2 time -'viewcount' => 'Ovoj stranici je pristupljeno $1 puta.', +'viewcount' => 'Ovoj stranici je pristupljeno {{PLURAL:$1|jednom|$1 puta}}.', 'protectedpage' => 'Zaštićena stranica', 'jumpto' => 'Idi na:', 'jumptonavigation' => 'navigacija', @@ -289,11 +312,16 @@ 'helppage' => 'Help:Sadržaj', 'mainpage' => 'Početna strana', 'mainpage-description' => 'Početna strana', +'policy-url' => 'Projekt:Pravila', 'portal' => 'Portal zajednice', 'portal-url' => 'Project:Portal_zajednice', 'privacy' => 'Pravila o anonimnosti', 'privacypage' => 'Project:Pravila o anonimnosti', +'badaccess' => 'Greška pri odobrenju', +'badaccess-group0' => 'Nije vam dozvoljeno izvršiti akciju koju ste zahtjevali.', +'badaccess-groups' => 'Akcija koju ste zahtjevali je ograničena na korisnike iz {{PLURAL:$2|ove grupe|jedne od grupa}}: $1.', + 'versionrequired' => 'Potrebna je verzija $1 MediaWikija', 'versionrequiredtext' => 'Potrebna je verzija $1 MediaWikija da bi se koristila ova strana. Pogledaj [[Special:Version|verziju]].', @@ -305,6 +333,7 @@ 'youhavenewmessagesmulti' => 'Imate nove poruke na $1', 'editsection' => 'uredi', 'editold' => 'uredi', +'viewsourceold' => 'pogledaj izvor', 'editsectionhint' => 'Uredi sekciju: $1', 'toc' => 'Sadržaj', 'showtoc' => 'prikaži', @@ -313,9 +342,12 @@ 'viewdeleted' => 'Pogledaj $1?', 'restorelink' => '{{PLURAL:$1|jedna izbrisana izmjena|$1 izbrisanih izmjena}}', 'feedlinks' => 'Fid:', +'feed-invalid' => 'Nedozvoljen tip potpisa', +'feed-unavailable' => 'RSS izvori se ne nalaze na {{SITENAME}}', 'site-rss-feed' => '$1 RSS izvor', 'site-atom-feed' => '$1 Atom izvor', 'page-rss-feed' => '"$1" RSS izvor', +'page-atom-feed' => '"$1" Atom izvor', 'red-link-title' => '$1 (nije još napisan)', # Short words for each namespace, by default used in the namespace tab in monobook @@ -354,17 +386,31 @@ $1', 'nodb' => 'Ne mogu da izaberem bazu $1', 'cachederror' => 'Ovo je keširana kopija zahtjevane stranice, i možda nije najnovija.', +'laggedslavemode' => "'''Upozorenje''': Stranica, možda, nije ažurirana.", 'readonly' => 'Baza je zaključana', 'enterlockreason' => 'Unesite razlog za zaključavanje, uključujući procijenu vremena otključavanja', 'readonlytext' => 'Baza je trenutno zaključana za nove unose i ostale izmjene, vjerovatno zbog rutinskog održavanja, posle čega će biti vraćena u uobičajeno stanje. Administrator koji ju je zaključao je ponudio ovo objašnjenje: $1', +'missing-article' => 'U bazi podataka nije pronađen tekst stranice tražen pod nazivom "$1" $2. + +Do ovoga dolazi kada se prati premještaj ili historija linka za stranicu koja je pobrisana. + + +U slučaju da se ne radi o gore navedenom, moguće je da ste pronašli grešku u programu. +Molimo Vas da ovo prijavite [[Special:ListUsers/sysop|administratoru]] sa navođenjem tačne adrese stranice', +'missingarticle-rev' => '(revizija#: $1)', +'missingarticle-diff' => '(Razlika: $1, $2)', +'readonly_lag' => 'Baza podataka je zaključana dok se sekundarne baze podataka na serveru ne sastave sa glavnom.', 'internalerror' => 'Interna greška', +'internalerror_info' => 'Interna greška: $1', 'filecopyerror' => 'Ne može se kopirati "$1" na "$2".', 'filerenameerror' => 'Ne može se promjeniti ime fajla "$1" to "$2".', 'filedeleteerror' => 'Ne može se izbrisati fajl "$1".', +'directorycreateerror' => 'Nije moguće napraviti direkciju "$1".', 'filenotfound' => 'Ne može se naći fajl "$1".', +'fileexistserror' => 'Nemoguće je napisati fajl "$1": fajl već postoji', 'unexpected' => 'Neočekivana vrijednost: "$1"="$2".', 'formerror' => 'Greška: ne može se poslati upitnik', 'badarticleerror' => 'Ova akcija ne može biti izvršena na ovoj stranici.', @@ -373,11 +419,19 @@ 'badtitletext' => 'Zahtjevani naslov stranice je bio neispravan, prazan ili neispravno povezan međujezički ili interviki naslov.', 'perfdisabled' => 'Žao nam je! Ova mogućnost je privremeno onemogućena jer usporava bazu do te mjere da više niko ne može da koristi viki.', 'perfcached' => 'Sledeći podaci su keširani i možda neće biti u potpunosti ažurirani:', +'perfcachedts' => 'Sljedeći podaci se nalaze u memoriji i zadnji put su ažurirani $1.', +'querypage-no-updates' => 'Ažuriranje ove stranice je isključeno. +Podaci koji se ovdje nalaze ne moraju biti aktualni.', 'wrong_wfQuery_params' => 'Netačni parametri za wfQuery()<br /> Funkcija: $1<br /> Pretraga: $2', 'viewsource' => 'pogledaj kod', 'viewsourcefor' => 'za $1', +'actionthrottled' => 'Akcija je usporena', +'actionthrottledtext' => 'Kao anti-spam mjera, ograničene su vam izmjene u određenom vremenu, i trenutačno ste dostigli to ograničenje. Pokušajte ponovo poslije nekoliko minuta.', +'protectedpagetext' => 'Ova stranica je zaključana da bi se spriječile izmjene.', +'viewsourcetext' => 'Možete vidjeti i kopirati izvorni tekst ove stranice:', +'protectedinterface' => 'Ova stranica je zaštićena jer sadrži tekst MediaWiki programa.', 'sqlhidden' => '(SQL pretraga sakrivena)', # Login and logout pages @@ -483,8 +537,21 @@ 'showdiff' => 'Prikaži izmjene', 'anoneditwarning' => 'Niste prijavljeni. Vaša IP adresa će biti zapisana.', 'blockedtitle' => 'Korisnik je blokiran', -'blockedtext' => "Vaše korisničko ime ili IP adresa je blokirana od strane $1. -Dati razlog je sledeći:<br />''$2''<p>Možete kontaktirati $1 ili nekog drugog [[{{MediaWiki:Grouppage-sysop}}|administratora]] da biste razgovarili o blokadi.", +'blockedtext' => "<big>'''Vaše korisničko ime ili IP adresa je blokirana.'''</big> + +Blokada izvršena od strane $1. +Dati razlog je slijedeći: ''$2''. + +*Početak blokade: $8 +*Kraj perioda blokade: $6 +*Ime blokiranog korisnika: $7 + +Možete kontaktirati $1 ili nekog drugog [[{{MediaWiki:Grouppage-sysop}}|administratora]] da biste razgovarali o blokadi. + +Ne možete koristiti opciju ''Pošalji e-mail korisniku'' osim ako niste unijeli e-mail adresu u [[Special:Preferences|Vaše postavke]]. +Vaša trenutna IP adresa je $3, a oznaka blokade je #$5. +Molimo Vas da navedete gornje podatke pri zahtjevu za deblokadu.", +'blockednoreason' => 'razlog nije naveden', 'whitelistedittitle' => 'Obavezno je prijavljivanje za uređivanje', 'whitelistedittext' => 'Morate da se [[Special:UserLogin|prijavite]] da bi ste uređivali stranice.', 'loginreqtitle' => 'Potrebno je prijavljivanje', @@ -565,6 +632,7 @@ (posl) = razlika sa prethodnom verziom, M = mala izmjena', 'histfirst' => 'Najstarije', 'histlast' => 'Najnovije', +'historyempty' => '(prazno)', # Diffs 'history-title' => 'Historija izmjena stranice "$1"', @@ -659,7 +727,7 @@ 'recentchanges' => 'Nedavne izmjene', 'recentchangestext' => 'Na ovoj stranici možete pratiti nedavne izmjene.', 'recentchanges-feed-description' => 'Na ovoj stranici možete pratiti nedavne izmjene.', -'rcnote' => "Ispod {{PLURAL:$1|je '''1''' promjena|su '''$1''' zadnje promjene|su '''$1''' zadnjih promjena}} u {{PLURAL:$2|posljednjem '''$2''' danu|posljednja '''$2''' dana|posljednjih '''$2''' dana}}, od $3.", +'rcnote' => "Ispod {{PLURAL:$1|je '''1''' promjena|su '''$1''' zadnje promjene|su '''$1''' zadnjih promjena}} u {{PLURAL:$2|posljednjem '''$2''' danu|posljednja '''$2''' dana|posljednjih '''$2''' dana}}, od $4, $5.", 'rcnotefrom' => 'Ispod su izmjene od <b>$2</b> (do <b>$1</b> prikazano).', 'rclistfrom' => 'Prikaži nove izmjene počev od $1', 'rcshowhideminor' => '$1 male izmjene', @@ -752,8 +820,7 @@ To izađe u prosjeku oko '''$5''' izmjena po stranici, i '''$6''' pogleda po izmjeni. The [http://www.mediawiki.org/wiki/Manual:Job_queue job queue] length is '''$7'''.", -'userstatstext' => "Postoji '''$1''' registrovanih korisnika, od kojih -su '''$2''' (ili '''$4%''') administratori.", +'userstatstext' => "Postoji {{PLURAL:$1| '''1''' rigistrovan [[Special:ListUsers|korisnik]]| '''$1''' registriranih [[Special:ListUsers|korisnika]]}}, od kojih '''$2''' (ili '''$4%''') {{PLURAL:$2|ima|imaju}} $5 prava.", 'disambiguations' => 'Stranice za višeznačne odrednice', 'disambiguationspage' => '{{ns:template}}:Višeznačna odrednica', @@ -976,7 +1043,7 @@ 'whatlinkshere' => 'Šta je povezano ovdje', 'whatlinkshere-title' => 'Stranice koje vode na $1', 'linkshere' => "Sljedeći članci vode na '''[[:$1]]''':", -'nolinkshere' => 'Ništa nije povezano ovdje.', +'nolinkshere' => "Nema linkova na '''[[:$1]]'''.", 'isredirect' => 'preusmjerivač', 'istemplate' => 'kao šablon', 'whatlinkshere-prev' => '{{PLURAL:$1|prethodni|prethodna|prethodnih}} $1', @@ -1007,7 +1074,7 @@ 'contribslink' => 'doprinosi', 'autoblocker' => 'Automatski ste blokirani jer dijelite IP adresu sa "$1". Razlog za blokiranje je: "\'\'\'$2\'\'\'"', 'blocklogpage' => 'Evidencija blokiranja', -'blocklogentry' => 'je blokirao "$1" sa vremenom isticanja blokade od $2', +'blocklogentry' => 'je blokirao [[$1]] sa vremenom isticanja blokade od $2 $3', 'blocklogtext' => 'Ovo je istorija blokiranja i deblokiranja korisnika. Automatsko blokirane IP adrese nisu uspisane ovde. Pogledajte [[Special:IPBlockList|blokirane IP adrese]] za spisak trenutnih zabrana i blokiranja.', 'unblocklogentry' => 'deblokiran $1', 'range_block_disabled' => 'Administratorska mogućnost da blokira grupe je isključena.', @@ -1049,8 +1116,7 @@ starim imenom neće biti preusmjereni. Vaša je dužnost da se pobrinete da svi linkovi koji vode na članak sa starim imenom budu adekvatno preusmjereni (stranica posebne namjene za -održavanje je korisna za obavještenje -o mrtvim i duplim preusmjerenjima). +održavanje je korisna za obavještenje o [[Special:BrokenRedirects|mrtvim]] i [[Special:DoubleRedirects|duplim]] preusmjerenjima). Imajte na umu da članak '''neće''' biti preusmjeren ukoliko već postoji članak pod imenom na koje namjeravate da @@ -1240,7 +1306,9 @@ 'confirmemail_text' => 'Ova viki zahtjeva da potvrdite adresu Vaše e-pošte prije nego što koristite mogućnosti e-pošte. Aktivirajte dugme ispod kako bi ste poslali poštu za potvrdu na Vašu adresu. Pošta uključuje poveznicu koja sadrži kod; učitajte poveznicu u Vaš brauzer da bi ste potvrdili da je adresa Vaše e-pošte validna.', 'confirmemail_send' => 'Pošaljite kod za potvrdu', 'confirmemail_sent' => 'E-pošta za potvrđivanje poslata.', -'confirmemail_sendfailed' => 'Pošta za potvrđivanje nije poslata. Provjerite adresu zbog nepravilnih karaktera.', +'confirmemail_sendfailed' => 'Pošta za potvrđivanje nije poslata. Provjerite adresu zbog nepravilnih karaktera. + +Povratna pošta: $1', 'confirmemail_invalid' => 'Netačan kod za potvrdu. Moguće je da je kod istekao.', 'confirmemail_success' => 'Adresa vaše e-pošte je potvrđena. Možete sad da se prijavite i uživate u viki.', 'confirmemail_loggedin' => 'Adresa Vaše e-pošte je potvrđena.', @@ -1248,12 +1316,15 @@ 'confirmemail_subject' => 'Vikiriječnik adresa e-pošte za potvrđivanje', 'confirmemail_body' => 'Neko, vjerovatno Vi, je sa IP adrese $1 registrovao nalog "$2" sa ovom adresom e-pošte na {{SITENAME}}. -Da potvrdite da ovaj nalog stvarno pripada vama i da aktivirate mogućnost e-pošte na {{SITENAME}}, otvorite ovu poveznicu u vašem brauzeru: +Da potvrdite da ovaj nalog stvarno pripada vama i da aktivirate mogućnost e-pošte na {{SITENAME}}, otvorite ovu poveznicu u vašem pretraživaču: $3 -Ako ovo niste vi, ne pratite poveznicu. Ovaj kod za potvrdu će isteći u $4.', +Ako ovo niste vi, pratite ovaj link da prekinete prijavu: +$5 +Ovaj kod za potvrdu će isteći u $4.', + # Delete conflict 'confirmrecreate' => "Korisnik [[User:$1|$1]] ([[User talk:$1|razgovor]]) je obrisao ovaj članak pošto ste počeli uređivanje sa razlogom: : ''$2'' Modified: branches/visual_diff/phase3/languages/messages/MessagesCa.php =================================================================== --- branches/visual_diff/phase3/languages/messages/MessagesCa.php 2008-08-17 23:32:07 UTC (rev 39562) +++ branches/visual_diff/phase3/languages/messages/MessagesCa.php 2008-08-18 00:10:23 UTC (rev 39563) @@ -452,12 +452,12 @@ 'readonlytext' => "La base de dades està temporalment bloquejada segurament per tasques de manteniment, després de les quals es tornarà a la normalitat. L'administrador que l'ha bloquejada ha donat aquesta explicació: $1", -'missing-article' => "La base de dades no ha pogut trobar el text de la pàgina que hauria d'aparèixer, anomenada «$1» $2. +'missing-article' => "La base de dades no ha trobat el text d'una pàgina que hauria d'haver trobat, anomenada «$1» $2. -Segurament això passa perquè s'ha seguit un enllaç trencat o a una pàgina que ha estat eliminada. +Normalment això passa perquè s'ha seguit una diferència desactualitzada o un enllaç d'historial a una pàgina que s'ha suprimit. -Si esteu segurs que no és aquest el cas, podeu haver trobat un error al programari. -Aviseu-ho a un administrador, deixant-li clar l'adreça URL causant del problema.", +Si no fos el cas, podríeu haver trobat un error en el programari. +Aviseu-ho llavors a un [[Special:ListUsers/sysop|administrador]], deixant-li clar l'adreça URL causant del problema.", 'missingarticle-rev' => '(revisió#: $1)', 'missingarticle-diff' => '(dif: $1, $2)', 'readonly_lag' => "La base de dades s'ha bloquejat automàticament mentre els servidors esclaus se sincronitzen amb el mestre", @@ -507,10 +507,12 @@ # Login and logout pages 'logouttitle' => 'Fi de la sessió', 'logouttext' => '<strong>Heu finalitzat la vostra sessió.</strong><br /> -Podeu continuar utilitzant {{SITENAME}} de forma anònima, o podeu iniciar una sessió una altra vegada amb el mateix o un altre usuari. Tingueu en compte que algunes pàgines poden continuar mostrant-se com si encara estiguéssiu en una sessió, fins que buideu la memòria cau del vostre navegador.', +Podeu continuar utilitzant {{SITENAME}} de forma anònima, o podeu [[Special:UserLogin|iniciar una sessió una altra vegada]] amb el mateix o un altre usuari. +Tingueu en compte que algunes pàgines poden continuar mostrant-se com si encara estiguéssiu en una sessió, fins que buideu la memòria cau del vostre navegador.', 'welcomecreation' => "== Us donem la benvinguda, $1! == -S'ha creat el vostre compte. No oblideu de canviar les vostres preferències.", +S'ha creat el vostre compte. +No oblideu de canviar les vostres [[Special:Preferences|preferències de {{SITENAME}}]].", 'loginpagetitle' => 'Inici de sessió', 'yourname' => "Nom d'usuari", 'yourpassword' => 'Contrasenya', @@ -521,7 +523,7 @@ 'loginproblem' => "<strong>S'ha produït un problema en iniciar la sessió.</strong><br />Proveu-ho de nou!", 'login' => 'Inici de sessió', 'nav-login-createaccount' => 'Inicia una sessió / crea un compte', -'loginprompt' => 'Heu de tenir les galetes activades per a poder-vos registar.', +'loginprompt' => 'Heu de tenir les galetes habilitades per a poder iniciar una sessió a {{SITENAME}}.', 'userlogin' => 'Inicia una sessió / crea un compte', 'logout' => 'Finalitza la sessió', 'userlogout' => 'Finalitza la sessió', @@ -645,19 +647,21 @@ 'summary-preview' => 'Previsualització del resum', 'subject-preview' => 'Previsualització de tema/capçalera', 'blockedtitle' => "L'usuari està blocat", -'blockedtext' => "<big>'''S'ha procedit al bloqueig del vostre compte d'usuari o la vostra adreça IP.'''</big> +'blockedtext' => "<big>'''S'ha procedit al blocatge del vostre compte d'usuari o la vostra adreça IP.'''</big> -El bloqueig l'ha dut a terme l'usuari $1, amb el següent motiu: ''$2'' +El blocatge l'ha dut a terme l'usuari $1. +El motiu donat és ''$2''. -* Inici del bloqueig: $8 -* Final del bloqueig: $6 +* Inici del blocatge: $8 +* Final del blocatge: $6 * Compte blocat: $7 -Podeu contactar $1 o un dels [[{{MediaWiki:Grouppage-sysop}}|administradors]] per a discutir el bloqueig. +Podeu contactar amb $1 o un dels [[{{MediaWiki:Grouppage-sysop}}|administradors]] per a discutir-ho. -Tingueu en compte que no podeu fer servir el formulari d'enviament de missatges de correu electrònic a cap usuari, fins que no tingueu una adreça de correu vàlida registrada a les vostres [[Special:Preferences|preferències d'usuari]]. +Tingueu en compte que no podeu fer servir el formulari d'enviament de missatges de correu electrònic a cap usuari, a menys que tingueu una adreça de correu vàlida registrada a les vostres [[Special:Preferences|preferències d'usuari]] i no ho tingueu tampoc blocat. -La vostra adreça IP és $3, i el núm. ID del bloqueig és #$5. Si us plau, incloeu aquestes dades en totes les consultes que feu.", +La vostra adreça IP actual és $3, i el número d'identificació del blocatge és #$5. +Si us plau, incloeu aquestes dades en totes les consultes que feu.", 'autoblockedtext' => "La vostra adreça IP ha estat blocada automàticament perquè va ser usada per un usuari actualment bloquejat. Aquest usuari va ser blocat per l'administrador $1. El motiu donat per al bloqueig ha estat: :''$2'' @@ -673,7 +677,7 @@ 'blockednoreason' => "no s'ha donat cap motiu", 'blockedoriginalsource' => "La font de '''$1''' es mostra a sota:", 'blockededitsource' => "El text de les vostres edicions a '''$1''' es mostra a continuació:", -'whitelistedittitle' => 'Cal iniciar una sessió per a poder editar', +'whitelistedittitle' => 'Cal iniciar una sessió per a poder editar-hi', 'whitelistedittext' => 'Heu de $1 per editar pàgines.', 'confirmedittitle' => "Cal una confirmació de l'adreça electrònica per a poder editar", 'confirmedittext' => "Heu de confirmar la vostra adreça electrònica abans de poder editar pàgines. Definiu i valideu la vostra adreça electrònica a través de les vostres [[Special:Preferences|preferències d'usuari]].", @@ -1958,7 +1962,7 @@ 'imagenocrossnamespace' => 'No es pot moure la imatge a un espai de noms on no li correspon', 'imagetypemismatch' => 'La nova extensió de fitxer no coincideix amb el seu tipus', 'imageinvalidfilename' => 'El nom de fitxer indicat no és vàlid', -'fix-double-redirects' => "Actualitza també redireccions que apuntin a l'article original", +'fix-double-redirects' => "Actualitza també les redireccions que apuntin a l'article original", # Export 'export' => 'Exporta les pàgines', @@ -2004,7 +2008,8 @@ 'import-interwiki-history' => "Copia totes les versions de l'historial d'aquesta pàgina", 'import-interwiki-submit' => 'Importa', 'import-interwiki-namespace' => "Transfereix les pàgines a l'espai de noms:", -'importtext' => "Exporteu el fitxer des del wiki d'origen utilitzant l'eina Special:Export, deseu-lo al vostre disc dur i carregueu-ne una còpia ací.", +'importtext' => "Exporteu el fitxer des del wiki d'origen utilitzant l'[[Special:Export|eina d'exportació]]. +Deseu-lo al vostre ordinador i carregueu-ne una còpia ací.", 'importstart' => "S'estan important pàgines...", 'import-revision-count' => '$1 {{PLURAL:$1|revisió|revisions}}', 'importnopages' => 'No hi ha cap pàgina per importar.', Modified: branches/visual_diff/phase3/languages/messages/MessagesCs.php =================================================================== --- branches/visual_diff/phase3/languages/messages/MessagesCs.php 2008-08-17 23:32:07 UTC (rev 39562) +++ branches/visual_diff/phase3/languages/messages/MessagesCs.php 2008-08-18 00:10:23 UTC (rev 39563) @@ -351,6 +351,8 @@ 'tog-watchlisthideown' => 'Na seznamu sledovaných stránek skrýt moje editace', 'tog-watchlisthidebots' => 'Na seznamu sledovaných stránek skrýt editace botů', 'tog-watchlisthideminor' => 'Skrýt malé editace z mých sledovaných stránek', +'tog-watchlisthideliu' => 'Na seznamu sledovaných stránek skrýt editace přihlášených uživatelů', +'tog-watchlisthideanons' => 'Na seznamu sledovaných stránek skrýt editace nepřihlášených uživatelů', 'tog-nolangconversion' => 'Vypnout konverzi variant', 'tog-ccmeonemails' => 'Zasílat mi kopie e-mailů, které pošlu jiným uživatelům', 'tog-diffonly' => 'Nezobrazovat obsah stránky pod rozdílem verzí', @@ -1193,7 +1195,7 @@ # Groups 'group' => 'Skupina:', 'group-user' => 'Uživatelé', -'group-autoconfirmed' => 'schválení uživatelé', +'group-autoconfirmed' => 'Schválení uživatelé', 'group-bot' => 'Boti', 'group-sysop' => 'Správci', 'group-bureaucrat' => 'Byrokraté', @@ -1201,7 +1203,7 @@ 'group-all' => '(všechny)', 'group-user-member' => 'Uživatel', -'group-autoconfirmed-member' => 'schválený uživatel', +'group-autoconfirmed-member' => 'Schválený uživatel', 'group-bot-member' => 'Bot', 'group-sysop-member' => 'Správce', 'group-bureaucrat-member' => 'Byrokrat', @@ -1618,7 +1620,8 @@ 'alphaindexline' => 'od $1 do $2', 'nextpage' => 'Další stránka ($1)', 'prevpage' => 'Předchozí stránka ($1)', -'allpagesfrom' => 'Všechny stránky počínaje od:', +'allpagesfrom' => 'Zobrazit stránky počínaje od:', +'allpagesto' => 'Zobrazit stránky do:', 'allarticles' => 'Všechny stránky', 'allinnamespace' => 'Všechny stránky (jmenný prostor $1)', 'allnotinnamespace' => 'Všechny stránky (mimo jmenný prostor $1)', @@ -1651,7 +1654,7 @@ 'listgrouprights-helppage' => 'Help:Práva skupiny', 'listgrouprights-members' => '(seznam členů)', 'listgrouprights-addgroup' => 'Přidávání uživatelů do {{PLURAL:$2|skupiny|skupin}} $1', -'listgrouprights-removegroup' => 'Vyřazování uživatelů ze {{PLURAL:$2|skupiny|skupin}}: $1', +'listgrouprights-removegroup' => 'Vyřazování uživatelů ze {{PLURAL:$2|skupiny|skupin}} $1', 'listgrouprights-addgroup-all' => 'Přidávání uživatelů do libovolné skupiny', 'listgrouprights-removegroup-all' => 'Vyřazování uživatelů z libovolné skupiny', @@ -1710,6 +1713,10 @@ 'watchlist-hide-own' => 'skrýt mé editace', 'watchlist-show-minor' => 'ukázat malé editace', 'watchlist-hide-minor' => 'skrýt malé editace', +'watchlist-show-anons' => 'zobrazit anonymní uživatele', +'watchlist-hide-anons' => 'skrýt anonymní uživatele', +'watchlist-show-liu' => 'zobrazit přihlášené uživatele', +'watchlist-hide-liu' => 'skrýt přihlášené uživatele', # Displayed when you click the "watch" button and it is in the process of watching 'watching' => 'Přidávám na seznam sledovaných stránek…', @@ -2069,7 +2076,7 @@ # Export 'export' => 'Exportovat stránky', -'exporttext' => 'Můžete exportovat text a historii editací některé stránky nebo sady stránek zabalené v XML. Výsledný soubor lze naimportovat do jiné wiki, která běží na software MediaWiki, pomocí [[Special:Import|stránky importů]]. +'exporttext' => 'Můžete exportovat text a historii editací některé stránky nebo sady stránek zabalené v XML. Výsledný soubor lze naimportovat do jiné wiki, která běží na software MediaWiki, pomocí [[Special:Import|importovací stránky]]. Do níže uvedeného editačního pole zadejte názvy stránek, které chcete exportovat; každý řádek jeden název. Zvolte také, zda se mají exportovat i starší verze stránky včetně informací v historii editací, nebo jen aktuální verze s informací o poslední editaci. Modified: branches/visual_diff/phase3/languages/messages/MessagesCu.php =================================================================== --- branches/visual_diff/phase3/languages/messages/MessagesCu.php 2008-08-17 23:32:07 UTC (rev 39562) +++ branches/visual_diff/phase3/languages/messages/MessagesCu.php 2008-08-18 00:10:23 UTC (rev 39563) @@ -291,6 +291,7 @@ 'recentchanges' => 'послѣ́дьнѩ мѣ́нꙑ', 'rcshowhideminor' => '$1 ма́лꙑ мѣ́нꙑ', 'rcshowhidebots' => '$1 аѵтома́тъ', +'rcshowhidemine' => '$1 моꙗ́ мѣ́нꙑ', 'diff' => 'ра҃ꙁн', 'hist' => 'їс҃т', 'hide' => 'съкрꙑи', @@ -343,17 +344,20 @@ [http://www.mediawiki.org/wiki/Manual:Job_queue Дѣ́иствъ чрѣ́дꙑ] дльгота '''$7''' ѥ́стъ", -'disambiguations' => 'мъногосъмꙑ́слиꙗ', +'disambiguations' => 'мъногосъмꙑ́слиꙗ', +'disambiguationspage' => 'Template:мъногосъмꙑ́слиѥ', 'brokenredirects-edit' => '(испра́ви)', 'brokenredirects-delete' => '(поничьжє́ниѥ)', # Miscellaneous special pages 'nbytes' => '$1 {{PLURAL:$1|ба́итъ|ба́ита|ба́итъ}}', +'nlinks' => '$1 {{PLURAL:$1|съвѧ́ꙁь|съвѧ́ꙁѧ|съвѧ́ꙁи}}', 'listusers' => 'по́льꙃєватєлъ катало́гъ', 'newpages' => 'но́ви члѣ́ни', 'newpages-username' => 'по́льꙃєватєлꙗ и́мѧ :', 'move' => 'прѣимєнова́ниѥ', +'movethispage' => 'си страни́цѧ прѣимєнова́ниѥ', # Book sources 'booksources-go' => 'прѣиди́', @@ -453,11 +457,17 @@ # Tooltip help for the actions 'tooltip-pt-mytalk' => 'моꙗ́ бєсѣ́дꙑ страни́ца', 'tooltip-pt-logout' => 'ис̾хо́дъ', +'tooltip-ca-protect' => 'си страни́цѧ ꙁабранє́ниѥ', +'tooltip-ca-delete' => 'си страни́цѧ поничьжє́ниѥ', +'tooltip-ca-move' => 'си страни́цѧ прѣимєнова́ниѥ', +'tooltip-ca-watch' => 'си страни́цѧ блюдє́ниѥ', 'tooltip-p-logo' => 'гла́вьна страни́ца', 'tooltip-n-recentchanges' => 'послѣ́дьнъ мѣ́нъ катало́гъ', +'tooltip-watch' => 'си страни́цѧ блюдє́ниѥ', # Media information 'file-info-size' => '($1 × $2 п҃ѯ · дѣ́ла мѣ́ра : $3 · MIME тѵ́пъ : $4)', +'svg-long-desc' => '(дѣ́ло SVG · обꙑ́чьнъ о́браꙁъ : $1 × $2 п҃ѯ · дѣ́ла мѣ́ра : $3)', # Special:NewImages 'ilsubmit' => 'ищи́', @@ -468,6 +478,7 @@ # 'all' in various places, this might be different for inflected languages 'watchlistall2' => 'вьсꙗ́', 'namespacesall' => 'вьсꙗ́', +'monthsall' => 'вьсѩ́', 'unit-pixel' => 'п҃ѯ', Modified: branches/visual_diff/phase3/languages/messages/MessagesCy.php =================================================================== --- branches/visual_diff/phase3/languages/messages/MessagesCy.php 2008-08-17 23:32:07 UTC (rev 39562) +++ branches/visual_diff/phase3/languages/messages/MessagesCy.php 2008-08-18 00:10:23 UTC (rev 39563) @@ -593,8 +593,9 @@ 'summary-preview' => "Rhagolwg o'r crynodeb", 'subject-preview' => 'Rhagolwg pwnc/pennawd', 'blockedtitle' => "Mae'r defnyddiwr hwn wedi cael ei flocio", -'blockedtext' => "<big>'''Mae eich enw defnyddiwr neu gyfeiriad IP wedi cael ei flocio gan $1.'''</big> +'blockedtext' => "<big>'''Mae eich enw defnyddiwr neu gyfeiriad IP wedi cael ei flocio.'''</big> +$1 a osododd y bloc. Y rheswm a roddwyd dros y blocio yw: ''$2''. *Dechreuodd y bloc am: $8 @@ -602,22 +603,23 @@ *Bwriadwyd blocio: $7 Gallwch gysylltu â $1 neu un arall o'r [[{{MediaWiki:Grouppage-sysop}}|gweinyddwyr]] i drafod y bloc. - Sylwch mai dim ond y rhai sydd wedi gosod cyfeiriad e-bost yn eu [[Special:Preferences|dewisiadau defnyddiwr]], a hwnnw heb ei flocio, sydd yn gallu 'anfon e-bost at ddefnyddiwr' trwy'r wici. -$3 yw eich cyfeiriad IP. Cyfeirnod y bloc yw #$5. Pan yn ysgrifennu at weinyddwr, cofiwch gynnwys naill ai eich cyfeiriad neu gyfeirnod y bloc, neu'r ddau, os gwelwch yn dda.", +$3 yw eich cyfeiriad IP presennol. Cyfeirnod y bloc yw #$5. +Pan yn ysgrifennu at weinyddwr, cofiwch gynnwys yr holl fanylion uchod, os gwelwch yn dda.", 'autoblockedtext' => "Rhoddwyd bloc yn awtomatig ar eich cyfeiriad IP oherwydd iddo gael ei ddefnyddio gan ddefnyddiwr arall, a bod bloc wedi ei roi ar hwnnw gan $1. Y rheswm a roddwyd dros y bloc oedd: :''$2'' *Dechreuodd y bloc am: $8 -*Bydd y bloc yn dod i ben am: $6 +*Daw'r bloc i ben am: $6 +*Bwriadwyd blocio: $7 Gallwch gysylltu â $1 neu un arall o'r [[{{MediaWiki:Grouppage-sysop}}|gweinyddwyr]] i drafod y bloc. Sylwch mai dim ond y rhai sydd wedi gosod cyfeiriad e-bost yn eu [[Special:Preferences|dewisiadau defnyddiwr]], a hwnnw heb ei flocio, sydd yn gallu 'anfon e-bost at ddefnyddiwr' trwy'r wici. -Cyfeirnod y bloc yw $5. Nodwch hwn wrth drafod y bloc.", +Eich cyfeiriad IP presennol yw $3. Cyfeirnod y bloc yw $5. Nodwch y manylion hyn wrth drafod y bloc.", 'blockednoreason' => 'dim rheswm wedi ei roi', 'blockedoriginalsource' => "Dangosir côd '''$1''' isod:", 'whitelistedittitle' => 'Rhaid mewngofnodi i golygu', @@ -1048,11 +1050,11 @@ 'upload_directory_read_only' => "Ni all y gweinydd ysgrifennu i'r cyfeiriadur uwchlwytho ($1).", 'uploaderror' => "Gwall tra'n uwchlwytho ffeil", 'uploadtext' => "Defnyddiwch y ffurflen isod i uwchlwytho ffeiliau. -I weld a chwilio am ffeiliau sydd eisoes wedi eu huwchlwytho ewch at y [[Special:ImageList|rhestr o'r ffeiliau sydd wedi eu huwchlwytho]]. I weld cofnodion uwchlwytho a dileu ffeiliau ewch at y [[Special:Log/upload|lòg uwchlwytho]]. +I weld a chwilio am ffeiliau sydd eisoes wedi eu huwchlwytho ewch at y [[Special:ImageList|rhestr o'r ffeiliau sydd wedi eu huwchlwytho]]. I weld cofnodion uwchlwytho a dileu ffeiliau ewch at y [[Special:Log/upload|lòg uwchlwytho]] neu'r [[Special:Log/delete|lòg dileu]]. I osod ffeil mewn tudalen defnyddiwch gyswllt wici, ar un o'r ffurfiau canlynol: *'''<tt><nowiki>[[</nowiki>{{ns:image}}<nowiki>:Ffeil.jpg]]</nowiki><tt>''', er mwyn defnyddio fersiwn llawn y ffeil -*'''<tt><nowiki>[[</nowiki>{{ns:image}}<nowiki>:Ffeil.png|200px|bawd|chwith|testun amgen]]</nowiki><tt>''' a wnaiff dangos llun 200 picsel o led mewn bocs ar yr ochr chwith a'r testun 'testun amgen' wrth ei odre +*'''<tt><nowiki>[[</nowiki>{{ns:image}}<nowiki>:Ffeil.png|200px|bawd|chwith|testun amgen]]</nowiki><tt>''' a wnaiff dangos llun 200 picsel o led mewn bocs ar yr ochr chwith, a'r testun 'testun amgen' wrth ei odre *'''<tt><nowiki>[[</nowiki>{{ns:media}}<nowiki>:Ffeil.ogg]]</nowiki><tt>''' a fydd yn arwain yn syth at y ffeil heb arddangos y ffeil.", 'upload-permitted' => 'Mathau o ffeiliau a ganiateir: $1', 'upload-preferred' => 'Mathau ffeil dewisol: $1.', @@ -1186,9 +1188,11 @@ 'filedelete' => 'Dileu $1', 'filedelete-legend' => "Dileu'r ffeil", 'filedelete-intro' => "Rydych ar fin dileu '''[[Media:$1|$1]]'''.", +'filedelete-intro-old' => "You are deleting the version of '''[[Media:$1|$1]]''' as of [$4 $3, $2].", 'filedelete-comment' => 'Sylw:', 'filedelete-submit' => 'Dileer', 'filedelete-success' => "Mae '''$1''' wedi cael ei dileu.", +'filedelete-success-old' => "The version of '''[[Media:$1|$1]]''' as of $3, $2 has been deleted.", 'filedelete-nofile' => "Nid oes '''$1''' ar y wefan {{SITENAME}}.", 'filedelete-nofile-old' => "Nid oes fersiwn o '''$1''' gyda'r priodoleddau a enwir yn yr archif.", 'filedelete-otherreason' => 'Rheswm arall/ychwanegol:', @@ -1616,7 +1620,7 @@ # What links here 'whatlinkshere' => "Beth sy'n cysylltu yma", -'whatlinkshere-title' => "Tudalennau sy'n cysylltu â $1", +'whatlinkshere-title' => 'Tudalennau sy\'n cysylltu â "$1"', 'whatlinkshere-page' => 'Tudalen:', 'linkshere' => "Mae'r tudalennau isod yn cysylltu â '''[[:$1]]''':", 'nolinkshere' => "Nid oes cyswllt ar unrhyw dudalen arall yn arwain at '''[[:$1]]'''.", @@ -1670,7 +1674,7 @@ 'unblockiptext' => "Defnyddiwch y ffurflen isod i ail-alluogi golygiadau gan ddefnyddiwr neu o gyfeiriad IP a fu gynt wedi'i flocio.", 'ipusubmit' => 'Datflociwch y cyfeiriad hwn', 'unblocked-id' => 'Tynnwyd y bloc $1', -'ipblocklist' => "Rhestr o'r cyfeiriadau IP ac enwau defnyddwyr sydd wedi'u blocio", +'ipblocklist' => "Cyfeiriadau IP ac enwau defnyddwyr sydd wedi'u blocio", 'ipblocklist-legend' => 'Dod o hyd i ddefnyddiwr sydd wedi ei blocio', 'ipblocklist-username' => "Enw'r defnyddiwr neu ei gyfeiriad IP:", 'ipblocklist-submit' => 'Chwilier', @@ -1723,13 +1727,15 @@ 'lockdbsuccesstext' => "Mae'r databas wedi'i gloi.<br /> Cofiwch [[Special:UnlockDB|ddatgloi'r]] databas pan fydd y gwaith cynnal ar ben.", 'unlockdbsuccesstext' => "Mae'r databas wedi'i ddatgloi.", +'databasenotlocked' => "Nid yw'r databas ar glo.", # Move page 'move-page' => 'Symud $1', 'move-page-legend' => 'Symud tudalen', 'movepagetext' => "Wrth ddefnyddio'r ffurflen isod byddwch yn ail-enwi tudalen, gan symud ei hanes gyfan i'r enw newydd. Bydd yr hen deitl yn troi'n dudalen ail-gyfeirio i'r teitl newydd. -Ni fydd cysylltiadau i'r hen deitl yn newid; rhaid cywiro [[Special:DoubleRedirects|ail-gyfeiriadau dwbl]] ac [[Special:BrokenRedirects|ail-gyfeiriadau tor]] eich hunan. +Gallwch ddewis bod y meddalwedd yn cywiro tudalennau ailgyfeirio oedd yn arwain at yr hen deitl yn awtomatig. +Os nad ydych yn dewis hyn, yna byddwch gystal â thrwsio [[Special:DoubleRedirects|ail-gyfeiriadau dwbl]] ac [[Special:BrokenRedirects|ail-gyfeiriadau tor]] eich hunan. Eich cyfrifoldeb chi yw sicrhau bod cysylltiadau wici'n dal i arwain at y man iawn! Sylwch '''na fydd''' y dudalen yn symud os oes yna dudalen o'r enw newydd yn bodoli'n barod ar y databas (heblaw ei bod hi'n wag neu'n ail-gyfeiriad heb unrhyw hanes golygu). @@ -1738,7 +1744,7 @@ '''DALIER SYLW!''' Gall hwn fod yn newid sydyn a llym i dudalen boblogaidd; -byddwch yn siwr eich bod chi'n deall y canlyniadau cyn mynd ati.", +gnewch yn siwr eich bod chi'n deall y canlyniadau cyn mynd ati.", 'movepagetalktext' => "Bydd y dudalen sgwrs yn symud gyda'r dudalen hon '''onibai:''' *bod tudalen sgwrs wrth yr enw newydd yn bodoli'n barod *bod y blwch isod heb ei farcio. @@ -2232,6 +2238,7 @@ # Auto-summaries 'autosumm-blank' => "Yn gwacau'r dudalen yn llwyr", +'autosumm-replace' => "Gwacawyd y dudalen a gosod y canlynol yn ei le: '$1'", 'autoredircomment' => 'Yn ailgyfeirio at [[$1]]', 'autosumm-new' => 'Tudalen newydd: $1', Modified: branches/visual_diff/phase3/languages/messages/MessagesDa.php =================================================================== --- branches/visual_diff/phase3/languages/messages/MessagesDa.php 2008-08-17 23:32:07 UTC (rev 39562) +++ branches/visual_diff/phase3/languages/messages/MessagesDa.php 2008-08-18 00:10:23 UTC (rev 39563) @@ -760,7 +760,7 @@ 'undo-success' => 'Ændringen er nu annulleret. Kontroller venligst bearbejdningen i sammenligningen og klik så på „Gem side“, for at gemme den.', 'undo-failure' => '<span class="error">Ændringen kunne ikke annulleres, da det pågældende afsnit i mellemtiden er ændret.</span>', 'undo-norev' => 'Ændringen kunne ikke annuleres fordi den ikke eksisterer eller er blevet slettet.', -'undo-summary' => 'Ændring af $1 [[{{ns:special}}:Contributions/$2|$2]] ([[User_talk:$2|Diskussion]]) blev annulleret.', +'undo-summary' => 'Fjerner version $1 af [[Special:Contributions/$2|$2]] ([[User_talk:$2|diskussion]])', # Account creation failure 'cantcreateaccounttitle' => 'Brugerkontoen kan ikke oprettes.', @@ -2589,7 +2589,7 @@ 'specialpages-note' => '---- * Normale specialsider. * <span class="mw-specialpagerestricted">Specialsider med begrænset adgang.</span>', -'specialpages-group-maintenance' => 'Vedligeholdesessider', +'specialpages-group-maintenance' => 'Vedligeholdelsesside', 'specialpages-group-other' => 'Andre specialsider', 'specialpages-group-login' => 'Opret bruger / logon', 'specialpages-group-changes' => 'Seneste ændringer og loglister', @@ -2597,7 +2597,7 @@ 'specialpages-group-users' => 'Brugere og rettigheder', 'specialpages-group-highuse' => 'Højt profilerede sider', 'specialpages-group-pages' => 'Sidelister', -'specialpages-group-pagetools' => 'Sideærktøjer', +'specialpages-group-pagetools' => 'Sideværktøjer', 'specialpages-group-wiki' => 'Wikidata og værktøjer', 'specialpages-group-redirects' => 'Specialsider der viderestiller', 'specialpages-group-spam' => 'Spamværktøjer', Modified: branches/visual_diff/phase3/languages/messages/MessagesDe.php =================================================================== --- branches/visual_diff/phase3/languages/messages/MessagesDe.php 2008-08-17 23:32:07 UTC (rev 39562) +++ branches/visual_diff/phase3/languages/messages/MessagesDe.php 2008-08-18 00:10:23 UTC (rev 39563) @@ -225,6 +225,8 @@ 'tog-watchlisthideown' => 'Eigene Bearbeitungen in der Beobachtungsliste ausblenden', 'tog-watchlisthidebots' => 'Bearbeitungen durch Bots in der Beobachtungsliste ausblenden', 'tog-watchlisthideminor' => 'Kleine Bearbeitungen in der Beobachtungsliste ausblenden', +'tog-watchlisthideliu' => 'Bearbeitungen durch angemeldete Benutzer in der Beobachtungsliste ausblenden', +'tog-watchlisthideanons' => 'Bearbeitungen durch anonyme Benutzer (IP) in der Beobachtungsliste ausblenden', 'tog-nolangconversion' => 'Konvertierung von Sprachvarianten deaktivieren', 'tog-ccmeonemails' => 'Schicke mir Kopien der E-Mails, die ich anderen Benutzern sende', 'tog-diffonly' => 'Zeige beim Versionsvergleich nur die Unterschiede, nicht die vollständige Seite', @@ -1533,6 +1535,7 @@ 'nextpage' => 'Nächste Seite ($1)', 'prevpage' => 'Vorherige Seite ($1)', 'allpagesfrom' => 'Seiten anzeigen ab:', +'allpagesto' => 'Seiten anzeigen bis:', 'allarticles' => 'Alle Seiten', 'allinnamespace' => 'Alle Seiten (Namensraum: $1)', 'allnotinnamespace' => 'Alle Seiten (nicht im $1 Namensraum)', @@ -1624,10 +1627,14 @@ 'wlshowlast' => 'Zeige die Änderungen der letzten $1 Stunden, $2 Tage oder $3 (in den letzten 30 Tagen).', 'watchlist-show-bots' => 'Bot-Änderungen einblenden', 'watchlist-hide-bots' => 'Bot-Änderungen ausblenden', -'watchlist-show-own' => 'eigene Änderungen einblenden', -'watchlist-hide-own' => 'eigene Änderungen ausblenden', -'watchlist-show-minor' => 'kleine Änderungen einblenden', -'watchlist-hide-minor' => 'kleine Änderungen ausblenden', +'watchlist-show-own' => 'Eigene Änderungen einblenden', +'watchlist-hide-own' => 'Eigene Änderungen ausblenden', +'watchlist-show-minor' => 'Kleine Änderungen einblenden', +'watchlist-hide-minor' => 'Kleine Änderungen ausblenden', +'watchlist-show-anons' => 'Anonyme Benutzer einblenden', +'watchlist-hide-anons' => 'Anonyme Benutzer ausblenden', +'watchlist-show-liu' => 'Angemeldete Benutzer einblenden', +'watchlist-hide-liu' => 'Angemeldete Benutzer ausblenden', # Displayed when you click the "watch" button and it is in the process of watching 'watching' => 'Beobachten …', Modified: branches/visual_diff/phase3/languages/messages/MessagesEn.php =================================================================== --- branches/visual_diff/phase3/languages/messages/MessagesEn.php 2008-08-17 23:32:07 UTC (rev 39562) +++ branches/visual_diff/phase3/languages/messages/MessagesEn.php 2008-08-18 00:10:23 UTC (rev 39563) @@ -2004,6 +2004,7 @@ 'nextpage' => 'Next page ($1)', 'prevpage' => 'Previous page ($1)', 'allpagesfrom' => 'Display pages starting at:', +'allpagesto' => 'Display pages ending at:', 'allarticles' => 'All pages', 'allinnamespace' => 'All pages ($1 namespace)', 'allnotinnamespace' => 'All pages (not in $1 namespace)', @@ -2018,7 +2019,9 @@ # Special:Categories 'categories' => 'Categories', 'categories-summary' => '', # do not translate or duplicate this message to other languages -'categoriespagetext' => 'The following categories contain pages or media.', +'categoriespagetext' => 'The following categories contain pages or media. +[[Special:UnusedCategories|Unused categories]] are not shown here. +Also see [[Special:WantedCategories|wanted categories]].', 'categoriesfrom' => 'Display categories starting at:', 'special-categories-sort-count' => 'sort by count', 'special-categories-sort-abc' => 'sort alphabetically', @@ -2755,7 +2758,7 @@ 'lastmodifiedatby' => 'This page was last modified $2, $1 by $3.', # $1 date, $2 time, $3 user 'othercontribs' => 'Based on work by $1.', 'others' => 'others', -'siteusers' => '{{SITENAME}} user(s) $1', +'siteusers' => '{{SITENAME}} {{PLURAL:$2|user|users}} $1', 'creditspage' => 'Page credits', 'nocredits' => 'There is no credits info available for this page.', Modified: branches/visual_diff/phase3/languages/messages/MessagesEs.php =================================================================== --- branches/visual_diff/phase3/languages/messages/MessagesEs.php 2008-08-17 23:32:07 UTC (rev 39562) +++ branches/visual_diff/phase3/languages/messages/MessagesEs.php 2008-08-18 00:10:23 UTC (rev 39563) @@ -107,6 +107,8 @@ 'tog-watchlisthideown' => 'Ocultar mis ediciones en la lista de seguimiento', 'tog-watchlisthidebots' => 'Ocultar ediciones de bots en la lista de seguimiento', 'tog-watchlisthideminor' => 'Ocultar ediciones menores en la lista de seguimiento', +'tog-watchlisthideliu' => 'Ocultar ediciones de usuarios registrados en la lista de seguimiento', +'tog-watchlisthideanons' => 'Ocultar ediciones de usuarios anónimos en la lista de seguimiento', 'tog-nolangconversion' => 'Deshabilitar conversión de lenguajes', 'tog-ccmeonemails' => 'Recibir copias de los correos que envío a otros usuarios', 'tog-diffonly' => 'No mostrar el contenido de la página bajo las diferencias', @@ -1232,11 +1234,11 @@ # File reversion 'filerevert' => 'Revertir $1', 'filerevert-legend' => 'Reversión de archivos', -'filerevert-intro' => "Estás revirtiendo '''[[Media:$1|$1]]''' a la [version $4 desde la $3, $2].", +'filerevert-intro' => "Estás revirtiendo '''[[Media:$1|$1]]''' a la [$4 version del $2 a las $3].", 'filerevert-comment' => 'Comentario:', 'filerevert-defaultcomment' => 'Revirtiendo a la versión subida el $1 a las $2', 'filerevert-submit' => 'Revertir', -'filerevert-success' => "'''[[Media:$1|$1]]''' ha sido revertido a la [version $4 desde la $3, $2].", +'filerevert-success' => "'''[[Media:$1|$1]]''' ha sido revertido a la [$4 version del $2 a las $3].", 'filerevert-badversion' => 'No existe version local previa de este archivo con esa marca de tiempo.', # File deletion @@ -1247,7 +1249,7 @@ 'filedelete-comment' => 'Motivo:', 'filedelete-submit' => 'Borrar', 'filedelete-success' => "'''$1''' ha sido borrado.", -'filedelete-success-old' => '<span class="plainlinks">La version de \'\'\'[[Media:$1|$1]]\'\'\' del $2 a las $3 ha sido borrada.</span>', +'filedelete-success-old' => "La version de '''[[Media:$1|$1]]''' del $2 a las $3 ha sido borrada.", 'filedelete-nofile' => "El archivo '''$1''' no existe en {{SITENAME}}.", 'filedelete-nofile-old' => "No existe una versión guardada de '''$1''' con los atributos especificados.", 'filedelete-otherreason' => 'Otra razón:', @@ -1285,7 +1287,7 @@ # Statistics 'statistics' => 'Estadísticas', -'sitestats' => 'Estadísticas del sitio', +'sitestats' => 'Estadísticas de {{SITENAME}}', 'userstats' => 'Estadísticas de usuario', 'sitestatstext' => "Hay un total de {{PLURAL:$1|'''1''' página|'''$1''' páginas}} en la base de datos. Esto incluye páginas de discusión, páginas sobre {{SITENAME}}, esbozos mínimos, redirecciones y otras que probablemente no puedan ser consideradas páginas de contenidos. @@ -1357,7 +1359,8 @@ 'deadendpages' => 'Páginas sin salida', 'deadendpagestext' => 'Las siguientes páginas no enlazan a otras páginas de {{SITENAME}}.', 'protectedpages' => 'Páginas protegidas', -'protectedpages-indef' => 'Solamente protecciones infinitas', +'protectedpages-indef' => 'Sólo protecciones infinitas', +'protectedpages-cascade' => 'Sólo protecciones en cascada', 'protectedpagestext' => 'Las siguientes páginas están protegidas para su edición o traslado', 'protectedpagesempty' => 'Actualmente no hay ninguna página protegida con esos parámetros.', 'protectedtitles' => 'Títulos protegidos', @@ -1411,7 +1414,7 @@ 'allpagessubmit' => 'Mostrar', 'allpagesprefix' => 'Mostrar páginas con el prefijo:', 'allpagesbadtitle' => 'El título dado era inválido o tenía un prefijo de enlace inter-idioma o inter-wiki. Puede contener uno o más caracteres que no se pueden usar en títulos.', -'allpages-bad-ns' => '{{SITENAME}} no tiene un espacio de nombres llamado "$1".', +'allpages-bad-ns' => '{{SITENAME}} no tiene un espacio de nombres llamado «$1».', # Special:Categories 'categories' => 'Categorías', @@ -1427,7 +1430,7 @@ # Special:ListGroupRights 'listgrouprights' => 'Permisos del grupo de usuarios', -'listgrouprights-summary' => 'La siguiente es una lista de los grupos de usuario definidos en esta wiki, y de sus privilegios de acceso asociados. +'listgrouprights-summary' => 'La siguiente es una lista de los grupos de usuario definidos en esta wiki y de sus privilegios de acceso asociados. Puede haber información adicional sobre privilegios individuales en [[{{MediaWiki:Listgrouprights-helppage}}]]', 'listgrouprights-group' => 'Grupo', 'listgrouprights-rights' => 'Derechos', @@ -1471,7 +1474,7 @@ 'addedwatch' => 'Añadido a la lista de seguimiento', 'addedwatchtext' => "La página «[[:\$1]]» ha sido añadida a tu [[Special:Watchlist|lista se seguimiento]]. Cambios futuros en esta página y su página de discusión asociada se indicarán ahí, y la página aparecerá '''en negritas''' en la [[Special:RecentChanges|lista de cambios recientes]] para hacerla más fácil de detectar. <p>Cuando quieras eliminar la página de tu lista de seguimiento, presiona \"Dejar de vigilar\" en el menú.", 'removedwatch' => 'Eliminada de la lista de seguimiento', -'removedwatchtext' => 'La página "[[:$1]]" ha sido eliminada de su lista de seguimiento.', +'removedwatchtext' => 'La página «[[:$1]]» ha sido eliminada de tu [[Special:Watchlist|lista de seguimiento]].', 'watch' => 'Vigilar', 'watchthispage' => 'Vigilar esta página', 'unwatch' => 'Dejar de vigilar', @@ -1494,6 +1497,10 @@ 'watchlist-hide-own' => 'Ocultar mis ediciones', 'watchlist-show-minor' => 'Mostrar ediciones menores', 'watchlist-hide-minor' => 'Esconder ediciones menores', +'watchlist-show-anons' => 'Mostrar ediciones anónimas', +'watchlist-hide-anons' => 'Ocultar ediciones anónimas', +'watchlist-show-liu' => 'Mostrar ediciones de usuarios registrados', +'watchlist-hide-liu' => 'Ocultar ediciones de usuarios registrados', # Displayed when you click the "watch" button and it is in the process of watching 'watching' => 'Vigilando...', @@ -1537,7 +1544,7 @@ 'deletepage' => 'Borrar esta página', 'confirm' => 'Confirmar', 'excontent' => "El contenido era: '$1'", -'excontentauthor' => "El contenido era: '$1' (y el único autor fue '$2')", +'excontentauthor' => "El contenido era: '$1' (y el único autor fue '[[Special:Contributions/$2|$2]]')", 'exbeforeblank' => "El contenido antes de blanquear era: '$1'", 'exblank' => 'página estaba vacía', 'delete-confirm' => 'Borrar "$1"', @@ -1551,7 +1558,7 @@ 'actioncomplete' => 'Acción completa', 'deletedtext' => '"<nowiki>$1</nowiki>" ha sido borrado. Véase $2 para un registro de los borrados recientes.', -'deletedarticle' => 'borró "$1"', +'deletedarticle' => '«[[$1]]» borrado', 'suppressedarticle' => 'se ha suprimido «[[$1]]»', 'dellogpage' => 'Registro de borrados', 'dellogpagetext' => 'A continuación se muestra una lista de los borrados más recientes. Todos los tiempos se muestran en hora del servidor (UTC).', @@ -1583,10 +1590,10 @@ Por favor, pulsa "Atrás", recarga la página de la que viniste e inténtalo de nuevo.', 'protectlogpage' => 'Protecciones de páginas', 'protectlogtext' => 'Abajo se presenta una lista de protección y desprotección de página. Véase [[Special:ProtectedPages|Esta página está protegida]] para más información.', -'protectedarticle' => 'protegió [[$1]]', -'modifiedarticleprotection' => 'Cambiado el nivel de protección de "[[$1]]"', +'protectedarticle' => '«[[$1]]» protegido', +'modifiedarticleprotection' => 'cambiado el nivel de protección de «[[$1]]»', 'unprotectedarticle' => 'desprotegió [[$1]]', -'protect-title' => 'Protegiendo "$1"', +'protect-title' => 'Cambiando el nivel de protección de «$1»', 'protect-legend' => 'Confirmar protección', 'protectcomment' => 'Motivo de la protección', 'protectexpiry' => 'Caducidad:', @@ -1601,7 +1608,7 @@ A continuación se muestran las opciones actuales de la página <strong>$1</strong>:', 'protect-cascadeon' => 'Actualmente esta página está protegida porque está incluida en {{PLURAL:$1|la siguiente página|las siguientes páginas}}, que tienen activada la opción de protección en cascada. Puedes cambiar el nivel de protección de esta página, pero no afectará a la protección en cascada.', 'protect-default' => '(por defecto)', -'protect-fallback' => 'Necesita permiso: "$1"', +'protect-fallback' => 'Necesita el permiso «$1»', 'protect-level-autoconfirmed' => 'Bloquear usuarios no registrados', 'protect-level-sysop' => 'Sólo administradores', 'protect-summary-cascade' => 'en cascada', @@ -1823,7 +1830,7 @@ 'movepagetext' => "Usando el siguiente formulario se renombrará una página, moviendo todo su historial al nuevo nombre. El título anterior se convertirá en una redirección al nuevo título. Los enlaces al antiguo título de la página no se cambiarán. -Asegúrate de no dejar redirecciones dobles o rotas. +Asegúrate de no dejar [[Special:DoubleRedirects|redirecciones dobles]] o [[Special:BrokenRedirects|rotas]]. Tú eres responsable de hacer que los enlaces sigan apuntando adonde se supone que deberían hacerlo. @@ -1920,7 +1927,7 @@ 'import-interwiki-history' => 'Copiar todas las versiones históricas para esta página', 'import-interwiki-submit' => 'Importar', 'import-interwiki-namespace' => 'Transferir páginas al espacio de nombres:', -'importtext' => 'Por favor, exporte el archivo desde el wiki de origen usando la utilidad Special:Export, guárdelo en su ordenador y súbalo aquí.', +'importtext' => 'Por favor, exporte el archivo desde el wiki de origen usando la [[Special:Export|herramienta de exportación]], guárdelo en su ordenador y súbalo aquí.', 'importstart' => 'Importando páginas...', 'import-revision-count' => '$1 {{PLURAL:$1|revisión|revisiones}}', 'importnopages' => 'No hay páginas que importar.', @@ -2402,9 +2409,9 @@ 'monthsall' => '(todos)', # E-mail address confirmation -'confirmemail' => 'Confirmar dirección E-mail', +'confirmemail' => 'Confirmar dirección de correo electrónico', 'confirmemail_noemail' => 'No tienes una dirección de correo electrónico válida en tus [[Special:Preferences|preferencias de usuario]].', -'confirmemail_text' => 'Este wiki requiere que valide su dirección de correo antes de usarlo. Pulse el botón de abajo para enviar la confirmación. +'confirmemail_text' => '{{SITENAME}} requiere que valide su dirección de correo antes de usarlo. Pulse el botón de abajo para enviar la confirmación. El correo incluirá un enlace con un código. Introdúzcalo para confirmar la validez de su dirección.', 'confirmemail_pending' => '<div class="error"> Ya se te ha enviado un código de confirmación; si creaste una cuenta recientemente, puede que tengas que esperar unos minutos para que te llegue antes de intentar pedir un nuevo código. @@ -2418,8 +2425,9 @@ Correo devuelto: $1', 'confirmemail_invalid' => 'Código de confirmación incorrecto. El código debe haber expirado.', 'confirmemail_needlogin' => 'Necesitas $1 para confirmar tu dirección electrónica.', -'confirmemail_success' => 'Su dirección de correo ha sido confirmada. Ahora puedes registrarse y colaborar en el wiki.', -'confirmemail_loggedin' => 'Tu dirección e-mail ha sido confirmada.', +'confirmemail_success' => 'Su dirección de correo ha sido confirmada +Ahora puedes [[Special:UserLogin|identificarte]] y colaborar en el wiki.', +'confirmemail_loggedin' => 'Tu dirección de correo electrónico ha sido confirmada.', 'confirmemail_error' => 'Algo salió mal al guardar su confirmación.', 'confirmemail_subject' => 'confirmación de la dirección de correo de {{SITENAME}}', 'confirmemail_body' => 'Alguien, probablemente usted mismo, ha registrado una cuenta "$2" con esta dirección de correo en {{SITENAME}}, desde la dirección IP $1. Modified: branches/visual_diff/phase3/languages/messages/MessagesFa.php =================================================================== --- branches/visual_diff/phase3/languages/messages/MessagesFa.php 2008-08-17 23:32:07 UTC (rev 39562) +++ branches/visual_diff/phase3/languages/messages/MessagesFa.php 2008-08-18 00:10:23 UTC (rev 39563) @@ -274,7 +274,7 @@ 'tog-highlightbroken' => 'قالببندی پیوندهای ناقص <a href="" class="new">به این شکل</a> (امکان دیگر: به این شکل<a href="" class="internal">؟</a>).', 'tog-justify' => 'تمامچینکردن بندها', 'tog-hideminor' => 'نشان ندادن تغییرات جزئی در فهرست تغییرات اخیر', -'tog-extendwatchlist' => 'گسترش فهرست پیگیریها برای نشاندادن همهٔ تغییرات مربوط', +'tog-extendwatchlist' => 'گسترش فهرست پیگیریها برای نشاندادن همهٔ تغییرات مربوط.', 'tog-usenewrc' => 'تغییرات اخیر گسترشیافته (برای هر مرورگری نیست)', 'tog-numberheadings' => 'شمارهگذاری خودکار عناوین', 'tog-showtoolbar' => 'نمایش نوار ابزار جعبهٔ ویرایش', @@ -284,7 +284,7 @@ 'tog-showtoc' => 'نمایش فهرست مندرجات<br />(برای مقالههای با بیش از ۳ سرفصل)', 'tog-rememberpassword' => 'گذرواژه برای نشستهای بعدی بماند', 'tog-editwidth' => 'عرض جعبهٔ ویرایش کامل باشد', -'tog-watchcreations' => 'افزودن صفحههای ایجادشده توسط من به فهرست پیگیریها', +'tog-watchcreations' => 'افزودن صفحههای ایجادشده توسط من به فهرست پیگیریها.', 'tog-watchdefault' => 'افزودن صفحههایی که ویرایش میکنم به فهرست پیگیریها', 'tog-watchmoves' => 'افزودن صفحههایی که منتقل میکنم به فهرست پیگیریها', 'tog-watchdeletion' => 'افزودن صفحههایی که حذف میکنم به فهرست پیگیریهای من', @@ -299,7 +299,7 @@ 'tog-shownumberswatching' => 'نشاندادن شمار کاربران پیگیریکننده', 'tog-fancysig' => 'امضای خام (بدون درج خودکار پیوند)', 'tog-externaleditor' => 'بهطور پیشفرض از ویرایشگر خارجی استفاده شود', -'tog-externaldiff' => 'استفاده از تفاوتگیر (diff) خارجی بهطور پیشفرض', +'tog-externaldiff' => 'استفاده از تفاوتگیر (diff) خارجی بهطور پیشفرض.', 'tog-showjumplinks' => 'نمایش پیوندهای پرشی در فهرست مندرجات', 'tog-uselivepreview' => 'استفاده از پیشنمایش زنده (جاوااسکریپت) (آزمایشی)', 'tog-forceeditsummary' => 'هنگامی که خلاصهٔ ویرایش ننوشتهام به من اطلاع بده', @@ -491,8 +491,8 @@ 'mainpage' => 'صفحهٔ اصلی', 'mainpage-description' => 'صفحهٔ اصلی', 'policy-url' => 'Project:سیاستها', -'portal' => 'درگاه کاربران', -'portal-url' => 'Project:درگاه کاربران', +'portal' => 'ورودی کاربران', +'portal-url' => 'Project:ورودی کاربران', 'privacy' => 'سیاست حفظ اسرار', 'privacypage' => 'Project:سیاست_حفظ_اسرار', @@ -626,7 +626,7 @@ # Login and logout pages 'logouttitle' => 'خروج کاربر از سیستم', -'logouttext' => 'اکنون از سیستم خارج شدید. شما میتوانید به استفادهٔ ناشناس از {{SITENAME}} ادامه دهید، یا میتوانید با همین کاربر یا کاربر دیگری به سیستم وارد شوید. توجه کنید که تا زمانی که cache مرورگرتان را پاک کنید، +'logouttext' => 'اکنون از سیستم خارج شدید. شما میتوانید به استفادهٔ گمنام از {{SITENAME}} ادامه دهید، یا میتوانید با همین کاربر یا کاربر دیگری به سیستم وارد شوید. توجه کنید که تا زمانی که cache مرورگرتان را پاک کنید، بعضی صفحهها ممکن است به شکلی نمایش یابند که انگار هنوز وارد سیستم هستید.', 'welcomecreation' => '<h2>$1، خوش آمدید!</h2><p>حساب شما ایجاد شد. @@ -833,11 +833,11 @@ 'newarticletext' => 'شما پیوندی را دنبال کردهاید و به صفحهای رسیدهاید که هنوز وجود ندارد. برای ایجاد صفحه، در مستطیل زیر شروع به تایپ کنید (برای اطلاعات بیشتر به [[{{ns:project}}:راهنما|صفحهٔ راهنما]] مراجعه کنید). اگر به اشتباه اینجا آمدهاید، دکمهٔ «بازگشت» مرورگرتان را بزنید.', -'anontalkpagetext' => "---- ''این صفحهی بحث برای کاربر ناشناسی است که هنوز حسابی درست نکرده است یا از آن استفاده نمیکند. +'anontalkpagetext' => "---- ''این صفحهی بحث برای کاربر گمنامی است که هنوز حسابی درست نکرده است یا از آن استفاده نمیکند. بنابراین برای شناساییاش مجبوریم از نشانی IP عددی استفاده کنیم. چنین نشانیهای IPای ممکن است توسط چندین کاربر به شکل مشترک استفاده شود. -اگر شما کاربر ناشناسی هستید و تصور میکنید اظهار نظرات نامربوط به شما صورت گرفته است، -لطفاً برای پیشگیری از اشتباه گرفته شدن با کاربران ناشناس دیگر در آیند [[Special:UserLogin|حسابی ایجاد کنید یا به سیستم وارد شوید]].''", +اگر شما کاربر گمنامی هستید و تصور میکنید اظهار نظرات نامربوط به شما صورت گرفته است، +لطفاً برای پیشگیری از اشتباه گرفته شدن با کاربران گمنام دیگر در آیند [[Special:UserLogin|حسابی ایجاد کنید یا به سیستم وارد شوید]].''", 'noarticletext' => 'در حال حاضر این صفحه متنی ندارد، شما میتوانید [[Special:Search/{{PAGENAME}}|عنوان این صفحه را در صفحههای دیگر جستجو کنید]] یا [{{fullurl:{{FULLPAGENAME}}|action=edit}} این صفحه را ویرایش کنید].', 'userpage-userdoesnotexist' => 'حساب کاربر «$1» ثبت نشده است. اطمینان حاصلی کنید که میخواهید این صفحه را ایجاد یا ویرایش کنید.', 'clearyourcache' => "'''نکته:''' پس از ذخیرهسازی ممکن است برای دیدن تغییرات نیاز باشد که حافظهٔ نهانی مرورگر خود را خالی کنید. '''موزیلا / فایرفاکس / Safari:''' کلید '''Shift''' را نگهدارید و روی دکمهٔ '''Reload''' کلیک کنید، یا کلیدهای '''Ctrl-Shift-R''' را با هم فشار دهید (در رایانههای اپل مکینتاش کلیدهای '''Cmd-Shift-R''')؛ '''اینترنت اکسپلورر:''' کلید '''Ctrl''' نگهدارید و روی دکمهٔ '''Refresh''' کلیک کنید، یا کلیدهای '''Ctrl-F5''' را با هم فشار دهید؛ '''Konqueror:''' روی دکمهٔ '''Reload''' کلیک کنید و یا کلید '''F5''' را فشار دهید؛ '''اُپرا:''' کاربران اُپرا ممکن است لازم باشد که بطور کامل حافظهٔ نهانی مرورگر را در منوی ''Tools→Preferences'' خالی کنند.", @@ -1460,7 +1460,7 @@ 'filedelete-comment' => 'توضیح:', 'filedelete-submit' => 'حذف', 'filedelete-success' => "'''$1''' حذف شد.", -'filedelete-success-old' => '<span class="plainlinks">نسخه \'\'\'[[Media:$1|$1]]\'\'\' به تاریخ $3، $2 حذف شد.</span>', +'filedelete-success-old' => "نسخهٔ '''[[Media:$1|$1]]''' به تاریخ $3، $2 حذف شد.", 'filedelete-nofile' => "'''$1''' در این وبگاه وجود ندارد.", 'filedelete-nofile-old' => "نسخه بایگانی شدهای از '''$1''' با مشخصات داده شده، وجود ندارد..", 'filedelete-otherreason' => 'دلایل دیگر/اضافی:', @@ -1616,6 +1616,7 @@ 'nextpage' => 'صفحهٔ بعد ($1)', 'prevpage' => 'صفحهٔ قبلی ($1)', 'allpagesfrom' => 'نمایش صفحهها با شروع از:', +'allpagesto' => 'نمایش صفحهها با پایان در:', 'allarticles' => 'همهٔ مقالهها', 'allinnamespace' => 'همهٔ صفحهها (فضای نام $1)', 'allnotinnamespace' => 'همهٔ صفحهها (که در فضای نام $1 است)', @@ -1628,7 +1629,8 @@ # Special:Categories 'categories' => 'ردههای صفحه', -'categoriespagetext' => 'ردههای زیر حاوی صفحه یا پرونده هستند.', +'categoriespagetext' => 'ردههای زیر حاوی صفحه یا پرونده هستند. +[[Special:UnusedCategories|ردههای استفاده نشده]] و [[Special:WantedCategories|ردههای مورد نیاز]] در اینجا نمایش داده نشدهاند.', 'categoriesfrom' => 'نمایش ردهها با شروع از:', 'special-categories-sort-count' => 'مرتب کردن بر اساس تعداد', 'special-categories-sort-abc' => 'مرتب کردن الفبایی', @@ -1933,10 +1935,10 @@ 'whatlinkshere-prev' => '{{PLURAL:$1|قبلی|$1 مورد قبلی}}', 'whatlinkshere-next' => '{{PLURAL:$1|بعدی|$1 مورد بعدی}}', 'whatlinkshere-links' => '← پیوندها', -'whatlinkshere-hideredirs' => 'تغییرمسیرها $1', -'whatlinkshere-hidetrans' => 'تراگنجانشها $1', -'whatlinkshere-hidelinks' => 'پیوندها $1', -'whatlinkshere-hideimages' => 'پیوند به تصاویر $1', +'whatlinkshere-hideredirs' => '$1 تغییرمسیر', +'whatlinkshere-hidetrans' => '$1 تراگنجانش', +'whatlinkshere-hidelinks' => '$1 پیوند', +'whatlinkshere-hideimages' => '$1 پیوند به تصویر', 'whatlinkshere-filters' => 'صافیها', # Block/unblock @@ -2276,7 +2278,7 @@ 'mw_math_simple' => 'اگر خیلی ساده بود HTML وگرنه PNG', 'mw_math_html' => 'اگر ممکن بود HTML وگرنه PNG', 'mw_math_source' => 'در قالب TeX باقی بماند (برای مرورگرهای متنی)', -'mw_math_modern' => 'توصیهشده برای مرورگرهای امروزی', +'mw_math_modern' => 'توصیه برای مرورگرهای امروزی', 'mw_math_mathml' => 'استفاده از MathML در صورت امکان (آزمایشی)', # Patrolling @@ -2315,7 +2317,7 @@ # Media information 'mediawarning' => "'''هشدار''': این پرونده ممکن است حاوی کدهای مخربی باشد که با اجرای آن رایانهٔ شما آسیب ببیند.", 'imagemaxsize' => 'محدودکردن ابعاد تصویر نمایشدادهشده در صفحهٔ توصیف تصویر، به ابعاد:', -'thumbsize' => 'اندازهٔ تصویر بندانگشتی', +'thumbsize' => 'اندازهٔ Thumbnail:', 'widthheight' => '$1 در $2', 'widthheightpage' => '$1×$2، $3 {{PLURAL:$3|صفحه|صفحه}}', 'file-info' => 'اندازهٔ پرونده: $1، نوع MIME $2', Modified: branches/visual_diff/phase3/languages/messages/MessagesFi.php =================================================================== --- branches/visual_diff/phase3/languages/messages/MessagesFi.php 2008-08-17 23:32:07 UTC (rev 39562) +++ branches/visual_diff/phase3/languages/messages/MessagesFi.php 2008-08-18 00:10:23 UTC (rev 39563) @@ -218,6 +218,8 @@ 'tog-watchlisthideown' => 'Piilota omat muokkaukset', 'tog-watchlisthidebots' => 'Piilota bottien muokkaukset', 'tog-watchlisthideminor' => 'Piilota pienet muokkaukset', +'tog-watchlisthideliu' => 'Piilota kirjautuneiden käyttäjien muokkaukset tarkkailulistalta', +'tog-watchlisthideanons' => 'Piilota anonyymien käyttäjien muokkaukset tarkkailulistalta', 'tog-nolangconversion' => 'Älä tee muunnoksia kielivarianttien välillä', 'tog-ccmeonemails' => 'Lähetä minulle kopio MediaWikin kautta lähetetyistä sähköposteista', 'tog-diffonly' => 'Älä näytä sivun sisältöä versioita vertailtaessa', @@ -1288,7 +1290,7 @@ 'filedelete-comment' => 'Poiston syy', 'filedelete-submit' => 'Poista', 'filedelete-success' => "Tiedosto '''$1''' on poistettu.", -'filedelete-success-old' => '<span class="plainlinks">Tiedoston \'\'\'[[Media:$1|$1]]\'\'\' $3 kello $2 luotu versio on poistettu.</span>', +'filedelete-success-old' => "Tiedoston '''[[Media:$1|$1]]''' $3 kello $2 luotu versio on poistettu.", 'filedelete-nofile' => "Tiedostoa '''$1''' ei ole.", 'filedelete-nofile-old' => "Tiedostosta '''$1''' ei ole olemassa pyydettyä versiota.", 'filedelete-otherreason' => 'Muu syy tai tarkennus', @@ -1391,6 +1393,7 @@ 'deadendpagestext' => 'Seuraavat sivut eivät linkitä muihin sivuihin wikissä.', 'protectedpages' => 'Suojatut sivut', 'protectedpages-indef' => 'Vain ikuiset estot', +'protectedpages-cascade' => 'Vain laajennetusti suojatut', 'protectedpagestext' => 'Seuraavat sivut ovat suojattuja siirtämiseltä tai muutoksilta', 'protectedpagesempty' => 'Ei suojattu sivuja.', 'protectedtitles' => 'Suojatut sivunimet', @@ -1526,6 +1529,10 @@ 'watchlist-hide-own' => 'Piilota omat muokkaukset', 'watchlist-show-minor' => 'Näytä pienet muokkaukset', 'watchlist-hide-minor' => 'Piilota pienet muokkaukset', +'watchlist-show-anons' => 'Näytä anonyymit muokkaukset', +'watchlist-hide-anons' => 'Piilota anonyymit muokkaukset', +'watchlist-show-liu' => 'Näytä kirjautuneiden muokkaukset', +'watchlist-hide-liu' => 'Piilota kirjautuneiden muokkaukset', # Displayed when you click the "watch" button and it is in the process of watching 'watching' => 'Lisätään tarkkailulistalle...', Modified: branches/visual_diff/phase3/languages/messages/MessagesFr.php =================================================================== --- branches/visual_diff/phase3/languages/messages/MessagesFr.php 2008-08-17 23:32:07 UTC (rev 39562) +++ branches/visual_diff/phase3/languages/messages/MessagesFr.php 2008-08-18 00:10:23 UTC (rev 39563) @@ -261,6 +261,8 @@ 'tog-watchlisthideown' => 'Masquer mes propres modifications dans la liste de suivi', 'tog-watchlisthidebots' => 'Masquer les modifications faites par les bots dans la liste de suivi', 'tog-watchlisthideminor' => 'Masquer les modifications mineures dans la liste de suivi', +'tog-watchlisthideliu' => 'Cache, de la liste, les modifications par les utilisateurs connectés', +'tog-watchlisthideanons' => 'Cache, de la liste, les modifications anonymes', 'tog-nolangconversion' => 'Désactiver la conversion des variantes de langue', 'tog-ccmeonemails' => 'M’envoyer une copie des courriels que j’envoie aux autres utilisateurs', 'tog-diffonly' => 'Ne pas montrer le contenu des pages sous les diffs', @@ -1489,6 +1491,7 @@ 'deadendpagestext' => 'Les pages suivantes ne contiennent aucun lien vers d’autres pages du wiki.', 'protectedpages' => 'Pages protégées', 'protectedpages-indef' => 'Uniquement les protections permanentes', +'protectedpages-cascade' => 'Uniquement les protections en cascade', 'protectedpagestext' => 'Les pages suivantes sont protégées contre les modifications et/ou le renommage :', 'protectedpagesempty' => 'Aucune page n’est protégée actuellement.', 'protectedtitles' => 'Titres protégés', @@ -1533,6 +1536,7 @@ 'nextpage' => 'Page suivante ($1)', 'prevpage' => 'Page précédente ($1)', 'allpagesfrom' => 'Afficher les pages à partir de :', +'allpagesto' => "Afficher les pages jusqu'à :", 'allarticles' => 'Toutes les pages', 'allinnamespace' => 'Toutes les pages (espace de noms $1)', 'allnotinnamespace' => 'Toutes les pages (n’étant pas dans l’espace de noms $1)', @@ -1626,6 +1630,10 @@ 'watchlist-hide-own' => 'Masquer mes modifications', 'watchlist-show-minor' => 'Afficher les modifications mineures', 'watchlist-hide-minor' => 'Masquer les modifications mineures', +'watchlist-show-anons' => 'Affiche les modifications anonymes', +'watchlist-hide-anons' => 'Cache les modifications anonymes', +'watchlist-show-liu' => 'Affiche les modifications des utilisateurs connectés', +'watchlist-hide-liu' => 'Cache les modifications des utilisateurs connectés', # Displayed when you click the "watch" button and it is in the process of watching 'watching' => 'Suivi...', @@ -1886,7 +1894,7 @@ 'ipusubmit' => 'Débloquer cette adresse', 'unblocked' => '[[User:$1|$1]] a été débloqué', 'unblocked-id' => 'Le blocage $1 a été enlevé', -'ipblocklist' => 'Liste adresses IP et des utilisateurs bloqués', +'ipblocklist' => 'Adresses IP et des utilisateurs bloqués', 'ipblocklist-legend' => 'Chercher un utilisateur bloqué', 'ipblocklist-username' => 'Nom de l’utilisateur ou adresse IP :', 'ipblocklist-submit' => 'Chercher', Modified: branches/visual_diff/phase3/languages/messages/MessagesFur.php =================================================================== --- branches/visual_diff/phase3/languages/messages/MessagesFur.php 2008-08-17 23:32:07 UTC (rev 39562) +++ branches/visual_diff/phase3/languages/messages/MessagesFur.php 2008-08-18 00:10:23 UTC (rev 39563) @@ -4,9 +4,9 @@ * @ingroup Language * @file * + * @author Helix84 * @author Klenje * @author לערי ריינהארט - * @author Helix84 */ $fallback = 'it'; Modified: branches/visual_diff/phase3/languages/messages/MessagesFy.php =================================================================== --- branches/visual_diff/phase3/languages/messages/MessagesFy.php 2008-08-17 23:32:07 UTC (rev 39562) +++ branches/visual_diff/phase3/languages/messages/MessagesFy.php 2008-08-18 00:10:23 UTC (rev 39563) @@ -70,39 +70,39 @@ 'tog-underline' => 'Keppelings ûnderstreekje:', 'tog-highlightbroken' => 'Keppelings nei lege siden ta <a href="" class="new">read</a> (oars mei in fraachteken<a href="" class="internal">?</a>).', 'tog-justify' => 'Paragrafen útfolje', -'tog-hideminor' => "Tekstwizigings wei litte út 'Koarts feroare'", -'tog-extendwatchlist' => 'Utwreide folchlist', -'tog-usenewrc' => "Utwreide ferzje fan 'Koarts feroare' brûke (net mei alle blêders mooglik)", +'tog-hideminor' => "Tekstwizigings wei litte út 'Koartlyn feroare'", +'tog-extendwatchlist' => 'Wreidzje folchlist út om alle wizigings sjen te litten', +'tog-usenewrc' => "Utwreide ferzje fan 'Koartlyn feroare' brûke (net mei alle blêdzjers mooglik)", 'tog-numberheadings' => 'Koppen fansels nûmerje', -'tog-showtoolbar' => 'Show edit toolbar', +'tog-showtoolbar' => 'Brûk arkbalke by bewurkjen', 'tog-editondblclick' => 'Dûbelklik jout bewurkingsside (freget JavaScript)', 'tog-editsection' => 'Jou [bewurk]-keppelings foar seksjebewurking', 'tog-editsectiononrightclick' => 'Rjochtsklik op sekjsetitels jout seksjebewurking (freget JavaScript)', 'tog-showtoc' => 'Ynhâldsopjefte, foar siden mei mear as twa koppen', 'tog-rememberpassword' => 'Oare kear fansels oanmelde', 'tog-editwidth' => 'Bewurkingsfjild sa breed as de side', -'tog-watchcreations' => "Sides dy't jo makke hawwe folgje", +'tog-watchcreations' => "Set siden dy't jo begjinne yn jo folchlist", 'tog-watchdefault' => "Sides dy't jo feroare hawwe folgje", -'tog-watchmoves' => "Siden dy't ik fersko automatysk folgje", -'tog-watchdeletion' => "Siden dy't ik fuorthelje automatysk folgje", +'tog-watchmoves' => "Siden dy't jo werneamd hawwe folgje", +'tog-watchdeletion' => "Siden dy't jo wiske hawwe folgje", 'tog-minordefault' => 'Feroarings yn it earst oanjaan as tekstwizigings.', 'tog-previewontop' => 'By it neisjen, bewurkingsfjild ûnderoan sette', -'tog-previewonfirst' => 'Proefbyld by earste bewurking sjen litte', -'tog-nocache' => 'Gjin oerslag brûke', +'tog-previewonfirst' => 'Lit foarbyld sjen by earste wiziging', +'tog-nocache' => 'Gjin oerslach brûke', 'tog-enotifwatchlistpages' => 'E-mail my as in side op myn folchlist feroare is.', 'tog-enotifusertalkpages' => 'E-mail my as myn oerlisside feroare wurdt', 'tog-enotifminoredits' => 'E-mail my ek by lytse feroarings fan siden op myn folchlist', 'tog-enotifrevealaddr' => 'Myn e-mailadres sjen litte yn e-mailberjochten', 'tog-shownumberswatching' => 'It tal brûkers sjen litte dat dizze side folget', -'tog-fancysig' => 'Undertekenje sûnder link nei brûkersside', +'tog-fancysig' => 'Sinjatuer sûnder automatyske ferwizing nei dyn Meidoggerside', 'tog-externaleditor' => 'Standert in eksterne tekstbewurker brûke (allinne foar experts - foar dizze funksje binne spesjale ynstellings nedich)', 'tog-externaldiff' => 'Standert in ekstern ferlikingsprogramma brûke (allinne foar experts - foar dizze funksje binne spesjale ynstellings nedich)', 'tog-showjumplinks' => '"gean nei"-tapaslikens-links ynskeakelje', 'tog-uselivepreview' => '"live proefbyld" brûke (JavaScript nedich - eksperimenteel)', -'tog-forceeditsummary' => 'Warskôgje my by in lege gearfetting', +'tog-forceeditsummary' => 'Warskôgje at ik de gearfetting leech lit.', 'tog-watchlisthideown' => 'Eigen bewurkings op myn folchlist ferbergje', -'tog-watchlisthidebots' => 'Bot-bewurkings op myn folchlist ferbergje', -'tog-watchlisthideminor' => 'Lytse bewurkings op myn folchlist ferbergje', +'tog-watchlisthidebots' => 'Lit gjin bot wizigings sjen yn de folchlist', +'tog-watchlisthideminor' => 'Lit gjin tekstwizigings sjen yn de folchlist', 'tog-ccmeonemails' => "Stjoer my in kopy fan e-mails dy't ik nei oare brûkers stjoer", 'tog-diffonly' => "Side-ynhâld dy't feroare wurdt net sjen litte", 'tog-showhiddencats' => 'Ferburgen kategoryen werjaan', @@ -154,7 +154,7 @@ 'feb' => 'feb', 'mar' => 'mrt', 'apr' => 'apr', -'may' => 'mai', +'may' => 'maaie', 'jun' => 'jun', 'jul' => 'jul', 'aug' => 'aug', @@ -165,10 +165,10 @@ # Categories related messages 'pagecategories' => '{{PLURAL:$1|Kategory|Kategoryen}}', -'category_header' => 'Siden yn kategory "$1"', -'subcategories' => 'Underkategoryen', -'category-media-header' => 'Media yn kategory "$1"', -'category-empty' => "''Dizze kategory befettet gjin siden of media.''", +'category_header' => 'Siden yn de kategory "$1"', +'subcategories' => 'Subkategoryen', +'category-media-header' => 'Media yn de kategory "$1"', +'category-empty' => "''Yn dizze kategory binne gjin siden of triemmen opnaam.''", 'hidden-categories' => 'Ferburgen {{PLURAL:$1|kategory|kategoryen}}', 'hidden-category-category' => 'Ferburgen kategoryen', # Name of the category where hidden categories will be listed 'category-subcat-count' => '{{PLURAL:$2|Dizze kategory hat allinne de folgjende ûnderkategory.|Dizze kategory hat de folgjende {{PLURAL:$1|ûnderkategory|$1 ûnderkategoryen}}, fan in totaal fan $2.}}', @@ -177,9 +177,9 @@ 'category-article-count-limited' => 'De folgjende {{PLURAL:$1|side is|$1 siden binne}} yn dizze kategory.', 'category-file-count' => '{{PLURAL:$2|Dizze kategory befettet de folgjende triem.|Dizze kategory befettet {{PLURAL:$1|de folgjende triem|$1 de folgjende triemmen}}, fan yn totaal $2.}}', 'category-file-count-limited' => 'Dizze kategory befettet {{PLURAL:$1|de folgjende triem|de folgjende $1 triemmen}}.', -'listingcontinuesabbrev' => 'mear', +'listingcontinuesabbrev' => '(ferfolch)', -'mainpagetext' => 'Wiki-programma goed installearre.', +'mainpagetext' => 'Wiki-program goed ynstallearre.', 'mainpagedocfooter' => "Rieplachtsje de [http://meta.wikimedia.org/wiki/Help:Ynhâldsopjefte hantlieding] foar ynformaasje oer it gebrûk fan 'e wikisoftware. == Mear help oer Mediawiki == @@ -189,8 +189,8 @@ * [http://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailinglist foar oankundigings fan nije ferzjes]", 'about' => 'Ynfo', -'article' => 'Side', -'newwindow' => '(iepent yn in nij finster)', +'article' => 'Ynhâld side', +'newwindow' => '(nij finster)', 'cancel' => 'Ferlitte', 'qbfind' => 'Sykje', 'qbbrowse' => 'Blêdzje', @@ -198,12 +198,12 @@ 'qbpageoptions' => 'Side-opsjes', 'qbpageinfo' => 'Side-ynfo', 'qbmyoptions' => 'Myn Opsjes', -'qbspecialpages' => 'Spesjale siden', +'qbspecialpages' => 'Bysûndere siden', 'moredotdotdot' => 'Mear...', 'mypage' => 'Myn side', 'mytalk' => 'Myn oerlis', 'anontalk' => 'Oerlisside foar dit IP-adres', -'navigation' => 'navigaasje', +'navigation' => 'Navigaasje', 'and' => 'en', # Metadata in edit box @@ -222,44 +222,44 @@ 'updatedmarker' => 'bewurke sûnt myn lêste besite', 'info_short' => 'Ynformaasje', 'printableversion' => 'Ofdruk-ferzje', -'permalink' => 'Permaninte link', +'permalink' => 'Fêste keppeling', 'print' => 'Ofdrukke', 'edit' => 'Wizigje', 'create' => 'Oanmeitsje', 'editthispage' => 'Side bewurkje', 'create-this-page' => 'Dizze side oanmeitsje', -'delete' => 'Derút helje', +'delete' => 'Wiskje', 'deletethispage' => 'Side wiskje', -'undelete_short' => '$1 {{PLURAL:$1|bewurking|bewurkings}} weromsette', -'protect' => 'Befeiligje', -'protect_change' => 'befeiligingsstatus feroarje', -'protectthispage' => 'Side beskermje', -'unprotect' => 'Befeiliging opheffe', -'unprotectthispage' => 'Befeiliging fan dizze side opheffe', +'undelete_short' => '$1 {{PLURAL:$1|ferzje|ferzjes}} weromsette', +'protect' => 'Skoattel', +'protect_change' => 'feroarje nivo fan skoatteljen', +'protectthispage' => 'Side skoattelje', +'unprotect' => 'Jou frij', +'unprotectthispage' => 'Side frij jaan', 'newpage' => 'Nije side', 'talkpage' => 'Sideoerlis', 'talkpagelinktext' => 'Oerlis', -'specialpage' => 'Spesjale side', +'specialpage' => 'Bysûndere side', 'personaltools' => 'Persoanlike ynstellings', 'postcomment' => 'Skriuw in opmerking', 'articlepage' => 'Side lêze', 'talk' => 'Oerlis', 'views' => 'Aspekten/aksjes', 'toolbox' => 'Arkkiste', -'userpage' => 'Brûkerside', +'userpage' => 'Meidoggerside', 'projectpage' => 'Metaside', 'imagepage' => 'Ofbyldside', 'mediawikipage' => 'Berjochtside sjen litte', -'templatepage' => 'Sjabloanside sjen litte', +'templatepage' => 'Berjochtside lêze', 'viewhelppage' => 'Helpside sjen litte', -'categorypage' => 'Kategoryside sjen litte', +'categorypage' => 'Besjoch kategoryside', 'viewtalkpage' => 'Oerlisside', 'otherlanguages' => 'Oare talen', 'redirectedfrom' => '(Trochwiisd fan "$1")', 'redirectpagesub' => 'Trochferwiis-side', 'lastmodifiedat' => 'Lêste kear bewurke op $2, $1.', # $1 date, $2 time 'viewcount' => 'Disse side is {{PLURAL:$1|ienris|$1 kear}} iepenslein.', -'protectedpage' => 'Beskerme side', +'protectedpage' => 'Skoattele side', 'jumpto' => 'Gean nei:', 'jumptonavigation' => 'navigaasje', 'jumptosearch' => 'sykje', @@ -269,14 +269,14 @@ 'aboutpage' => 'Project:Ynfo', 'bugreports' => 'Brekmelding', 'bugreportspage' => 'Project:Brekmelding', -'copyright' => 'De ynhâld is beskikber ûnder de $1.', +'copyright' => 'Ynhâld is beskikber ûnder de $1.', 'copyrightpagename' => '{{SITENAME}} auteursrjocht', 'copyrightpage' => '{{ns:project}}:Auteursrjocht', 'currentevents' => 'Hjoeddeis', 'currentevents-url' => 'Project:Rinnende saken', 'disclaimers' => 'Foarbehâld', 'disclaimerpage' => 'Project:Algemien foarbehâld', -'edithelp' => 'Siden bewurkje', +'edithelp' => 'Bewurk-help', 'edithelppage' => 'Help:Bewurk-rie', 'faq' => 'FAQ (faak stelde fragen)', 'faqpage' => 'Project:Faak stelde fragen', @@ -300,7 +300,7 @@ 'retrievedfrom' => 'Untfongen fan "$1"', 'youhavenewmessages' => 'Jo hawwe $1 ($2).', 'newmessageslink' => 'nije berjochten', -'newmessagesdifflink' => 'de bewurking sjen litte', +'newmessagesdifflink' => 'ferskil mei foarlêste ferzje', 'youhavenewmessagesmulti' => 'Jo hawwe nije berjochten op $1', 'editsection' => 'bewurkje', 'editold' => 'bewurkje', @@ -309,7 +309,7 @@ 'toc' => 'Ynhâld', 'showtoc' => 'sjen litte', 'hidetoc' => 'net sjen litte', -'thisisdeleted' => '"$1" lêze of werombringje?', +'thisisdeleted' => '"$1" lêze of werombringe?', 'viewdeleted' => '$1 sjen litte?', 'restorelink' => '$1 wiske {{PLURAL:$1|ferzje|ferzjes}}', 'feedlinks' => 'Feed:', @@ -319,23 +319,23 @@ 'site-atom-feed' => '$1 Atom-Feed', 'page-rss-feed' => '"$1" RSS Feed', 'page-atom-feed' => '"$1" Atom Feed', -'red-link-title' => '$1 (bestiet noch net)', +'red-link-title' => '$1 (noch net skreaun)', # Short words for each namespace, by default used in the namespace tab in monobook 'nstab-main' => 'Side', -'nstab-user' => 'Brûkersside', +'nstab-user' => 'Meidogger', 'nstab-media' => 'Mediaside', 'nstab-special' => 'Spesjaal', 'nstab-project' => 'Projektside', 'nstab-image' => 'Triem', 'nstab-mediawiki' => 'Berjocht', -'nstab-template' => 'Sjabloan', +'nstab-template' => 'Berjocht', 'nstab-help' => 'Helpside', 'nstab-category' => 'Kategory', # Main script and global functions 'nosuchaction' => 'Unbekende aksje.', -'nosuchactiontext' => "De aksje dy't jo oanjoegen fia de URL is net bekind by it Wiki-programma", +'nosuchactiontext' => "De aksje dy't jo oanjoegen fia de URL is net bekind by it Wiki-program", 'nosuchspecialpage' => 'Unbekende side', 'nospecialpagetext' => "Jo hawwe in Wiki-side opfrege dy't net bekind is by it Wiki-programma.", @@ -355,14 +355,13 @@ 'noconnect' => 'Sorry! Troch in fout yn de technyk, kin de Wiki gjin ferbining meitsje mei de databanktsjinner. <br /> $1', 'nodb' => 'Kin databank "$1" net berikke.', -'cachederror' => 'Dit is in ferzje út de oerslag, mar it kin wêze dat dy ferâldere is.', -'laggedslavemode' => 'Warskôging: de side kin ferâldere wêze.', -'readonly' => 'Databank is Net-skriuwe', -'enterlockreason' => "Skriuw wêrom de databank net-skriuwe makke is, -en sawat hoenear't de men wêr skriuwe kin", +'cachederror' => "Dit is in bewarre ferzje dy't mooglik ferâldere is.", +'laggedslavemode' => 'Warskôging: Mûglik binne resinte bewurkings noch net trochfierd.', +'readonly' => "Databank is 'Net-skriuwe'.", +'enterlockreason' => "Skriuw wêrom de databank 'net-skriuwe' makke is, en hoenear't men wêr nei alle gedachten wer skriuwe kin.", 'readonlytext' => 'De {{SITENAME}} databank is ôfsletten foar nije siden en oare wizigings, nei alle gedachten is it foar ûnderhâld, en kinne jo der letter gewoan wer brûk fan meitsje. -De behearder hat dizze útlis joen: +De behearder hat dizze útlis jûn: <p>$1</p>', 'missing-article' => 'Yn de database is gjin ynhâld oantroffen foar de side "$1" dy\'t der wol wêze moatte soe ($2). @@ -373,29 +372,29 @@ 'missingarticle-rev' => '(ferzjenûmer: $1)', 'missingarticle-diff' => '(Feroaring: $1, $2)', 'readonly_lag' => 'De database is automatysk beskoattele wylst de ûndergeskikte databaseservers syngronisearje mei de haadserver.', -'internalerror' => 'Ynwindige fout', +'internalerror' => 'Ynterne fout', 'internalerror_info' => 'Ynterne fout: $1', -'filecopyerror' => 'Koe bestân "$1" net kopiearje as "$2".', -'filerenameerror' => 'Koe bestân "$1" net werneame as "$2".', -'filedeleteerror' => 'Koe bestân "$1" net wiskje.', +'filecopyerror' => 'Koe triem "$1" net kopiearje as "$2".', +'filerenameerror' => 'Koe triem "$1" net werneame as "$2".', +'filedeleteerror' => 'Koe triem "$1" net wiskje.', 'directorycreateerror' => 'Map "$1" koe net oanmakke wurde.', -'filenotfound' => 'Koe bestân "$1" net fine.', +'filenotfound' => 'Koe triem "$1" net fine.', 'fileexistserror' => 'Skriuwen nei triem "$1" ûnmûglik: de triem bestiet al', 'unexpected' => 'Hommelse wearde: "$1"="$2".', 'formerror' => 'Fout: koe formulier net oerlizze', 'badarticleerror' => 'Dat kin op dizze side net dien wurden.', -'cannotdelete' => 'Koe de oantsjutte side of ôfbyld net wiskje. (Faaks hat in oar dat al dien.)', +'cannotdelete' => 'Koe de oantsjutte side of it oantsjutte ôfbyld net wiskje. (Faaks hat in oar dat al dien.)', 'badtitle' => 'Misse titel', 'badtitletext' => 'De opfrege sidetitel wie ûnjildich, leech, of in miskeppele yntertaal of ynterwiki titel.', 'perfdisabled' => "Sorry! Dit ûnderdiel is tydlik út set om't it de databank sa starich makket dat gjinien de wiki brûke kin.", -'perfcached' => 'De sjen littene gegevens komme út in cache en binne mûglik net by de tiid.', -'perfcachedts' => 'De folgjende gegevens komme út in cache en binne foar it lêst bywurke op $1.', +'perfcached' => "Dit is bewarre ynformaasje dy't mooglik ferâldere is.", +'perfcachedts' => 'De neikommende gegevens komme út de bewarre ynformaasje, dizze is it lêst fernijd op $1.', 'querypage-no-updates' => 'Dizze side kin net bywurke wurde. Dizze gegevens wurde net ferfarske.', 'wrong_wfQuery_params' => 'Ferkearde parameters foar wfQuery()<br /> Funksje: $1<br /> Query: $2', -'viewsource' => 'Boarnetekst sjen litte', +'viewsource' => 'Besjoch de boarne', 'viewsourcefor' => 'fan $1', 'actionthrottled' => 'Hanneling opkeard', 'actionthrottledtext' => 'As maatregel tsjin spam is it tal kearen per tiidsienheid beheind dat jo dizze hanneling ferrjochtsje kinne. Jo binne oer de limyt. Besykje it in tal minuten letter wer.', @@ -404,7 +403,7 @@ 'protectedinterface' => "Dizze side befettet tekst foar berjochten fan 'e software en is befeilige om misbrûk tefoaren te kommen.", 'editinginterface' => "'''Warskôging;''' Jo bewurkje in side dy't brûkt wurdt troch software. Bewurkings op dizze side beynfloedzje de gebrûksynterface fan elkenien. Oerweagje foar oersettings [http://translatewiki.net/wiki/Main_Page?setlang=fy Betawiki] te brûken, it oersetprojekt foar MediaWiki.", 'sqlhidden' => '(SQL query ferburgen)', -'cascadeprotected' => "Dizze side kin net bewurke wurde, om't er opnommen is yn 'e folgjende {{PLURAL:$1|side|siden}}, dy 't befeilige {{PLURAL:$1|is|binne}} mei de kaskade-opsje: $2", +'cascadeprotected' => 'Dizze side is skoattele tsjin wizigjen, om\'t der in ûnderdiel útmakket fan de neikommende {{PLURAL:$1|side|siden}}, dy\'t skoattele {{PLURAL:$1|is|binne}} mei de "ûnderlizzende siden" opsje ynskeakele: $2', 'namespaceprotected' => "Jo hawwe gjin rjochten om siden yn'e nammerûmte '''$1''' te bewurkjen.", 'customcssjsprotected' => "Jo kinne dizze side net bewurkje, om't er persoanlike ynstellings fan in oare brûker befettet.", 'ns-specialprotected' => "Siden yn'e nammerûmte {{ns:special}} kinne net bewurke wurde.", @@ -423,10 +422,10 @@ Jo kinne de {{SITENAME}} fierders anonym brûke, of jo op 'e [[Special:UserLogin|nij oanmelde]] ûnder deselde of in oare namme. Mûglik wurdt noch in tal siden werjûn as wiene Jo oanmeld, oant Jo de cache fan Jo browser leegje.", -'welcomecreation' => '<h2>Wolkom, $1!</h2><p>Jo ynstellings bin oanmakke. +'welcomecreation' => '<h2>Wolkom, $1!</h2><p>Jo ynstellings binne oanmakke. Ferjit net se oan jo foarkar oan te passen.', 'loginpagetitle' => 'Oanmelde', -'yourname' => 'Jo brûkersnamme:', +'yourname' => 'Jo meidochnamme:', 'yourpassword' => 'Jo wachtwurd', 'yourpasswordagain' => 'Jo wachtwurd (nochris)', 'remembermypassword' => 'Oare kear fansels oanmelde.', @@ -435,47 +434,45 @@ 'loginproblem' => '<b>Der wie wat mis mei jo oanmelden.</b><br />Besykje it nochris, a.j.w.', 'login' => 'Oanmelde', 'nav-login-createaccount' => 'Oanmelde', -'loginprompt' => 'Jo moatte cookies ynskeakele hawwe om jo oanmelde te kinnen by {{SITENAME}}.', +'loginprompt' => "Jo moatte 'cookies' oanstean hawwe om yn jo oan te melden by {{SITENAME}}.", 'userlogin' => 'Oanmelde', 'logout' => 'Ofmelde', 'userlogout' => 'Ofmelde', 'notloggedin' => 'Net oanmelde', -'nologin' => 'Hawwe jo noch gjin brûkersnamme? $1.', +'nologin' => 'Noch net oanmelden as meidogger? $1.', 'nologinlink' => 'Meitsje in brûker oan', 'createaccount' => 'Nije ynstellings oanmeitsje', -'gotaccount' => 'Hawwe jo al in brûkersnamme? $1.', +'gotaccount' => 'Hawwe jo jo al as meidogger oanmelde? $1.', 'gotaccountlink' => 'Oanmelde', 'createaccountmail' => 'troch e-mail', 'badretype' => 'De ynfierde wachtwurden binne net lyk.', -'userexists' => 'Dy brûkersname wurdt al brûkt. Besykje in oarenien.', +'userexists' => 'Dy meidochnamme wurdt al brûkt. Besykje in oarenien.', 'youremail' => 'Jo e-postadres (*).', -'username' => 'Brûkersnamme:', -'uid' => 'Brûkersnamme:', +'username' => 'Meidochnamme:', +'uid' => 'Wikinûmer:', 'prefs-memberingroups' => 'Lid fan {{PLURAL:$1|groep|groepen}}:', -'yourrealname' => 'Jo echte namme:', +'yourrealname' => 'Jo wiere namme:', 'yourlanguage' => 'Taal:', 'yournick' => 'Jo alias (foar sinjaturen)', 'badsig' => 'Unjildige ûndertekening; kontrolearje de HTML-tags.', 'badsiglength' => 'Bynamme is te lang; dy moat koarter as $1 {{PLURAL:$1|teken|tekens}} wêze.', -'email' => 'E-mail', +'email' => 'E-post', 'prefs-help-realname' => 'Echte namme is opsjoneel; as jo dy opjouwe kin dy namme brûkt wurde om jo erkenning te jaan foar jo wurk.', 'loginerror' => 'Oanmeldflater', -'prefs-help-email' => 'E-mailadres is opsjoneel, mar stelt oaren ynsteat kontakt mei jo op te nimmen troch jo brûkers- of oerlisside sûnder dat jo idintiteit bekind wurdt.', +'prefs-help-email' => 'Epost (opsje): Hjirtroch kinne oaren kontakt mei jo opnimme, sûnder dat jo jo identiteit oer hoege te jaan.', 'prefs-help-email-required' => 'Hjir is in e-mailadres foar nedich.', 'nocookiesnew' => 'De brûker is oanmakke mar net oanmeld. {{SITENAME}} brûkt cookies foar it oanmelden fan brûkers. Skeakelje dy yn en meld jo dan oan mei jo nije brûkersnamme en wachtwurd.', 'nocookieslogin' => '{{SITENAME}} brûkt cookies foar it oanmelden fan brûkers. Jo hawwe cookies útskeakele. Skeakelje dy opsje oan en besykje it nochris.', -'noname' => 'Jo moatte in brûkersnamme opjaan.', +'noname' => 'Jo moatte in meidognamme opjaan.', 'loginsuccesstitle' => 'Oanmelden slagge.', -'loginsuccess' => 'Jo binne no oanmelde op de {{SITENAME}} as: $1.', +'loginsuccess' => "'''Jo binne no oanmelden op de {{SITENAME}} as: \"\$1.\"'''", 'nosuchuser' => 'Der is gjin meidogger "$1". Kontrolear de stavering, of meitsje in nije meidogger oan.', -'nosuchusershort' => 'De brûker "<nowiki>$1</nowiki>" bestiet net. Kontrolearje de skriuwwize.', +'nosuchusershort' => 'Der is gjin meidogger mei de namme "$1". It is goed skreaun?', 'nouserspecified' => 'Jo moatte in brûkersnamme opjaan.', -'wrongpassword' => "Brûkersnamme en wachtwurd hearre net by elkoar. -Besykje op 'e nij, of fier it wachtwurd twa kear yn en meitsje neie brûkersynstellings.", +'wrongpassword' => "Meidochnamme en wachtwurd hearre net by elkoar. Besykje op 'e nij, of fier it wachtwurd twa kear yn en meitsje nije meidoggersynstellings.", 'wrongpasswordempty' => 'It opjûne wachtwurd wie leech. Besykje it nochris.', -'passwordtooshort' => 'Jo wachtwurd is ûnjildich of te koart. -It moat minstens út {{PLURAL:$1|1 teken|$1 tekens}} bestean.', +'passwordtooshort' => 'It wachtwurd is te koart. It moat op syn minst {{PLURAL:$1|1 teken|$1 tekens}} wêze.', 'mailmypassword' => 'Stjoer my in nij wachtwurd.', 'passwordremindertitle' => 'Nij wachtwurd foar de {{SITENAME}}', 'passwordremindertext' => 'Immen (nei alle gedachten jo, fan Ynternet-adres $1) @@ -484,19 +481,18 @@ Meld jo no oan, en feroarje jo wachtwurd. As immen oars as Jo dit fersyk dien hat of as it wachtwurd Jo yntuskentiid wer yn\'t sin kommen is en Jo it net langer feroarje wolle, lûk Jo dan neat fan dit berjocht oan en gean troch mei it brûken fan Jo besteand wachtwurd.', -'noemail' => 'Der is gjin e-postadres foar brûker "$1".', -'passwordsent' => 'In nij wachtwurd is tastjoert oan it e-postadres foar "$1". -Please log in again after you receive it.', +'noemail' => 'Der is gjin e-postadres foar meidogger "$1".', +'passwordsent' => 'In nij wachtwurd is tastjoerd oan it e-postadres foar "$1". Jo kinne jo wer oanmelde as jo it wachtwurd ûntfongen hawwe.', 'blocked-mailpassword' => 'Jo IP-adres is blokkearre foar it meitsjen fan feroarings. Om misbrûk tefoaren te kommen is it net mûglik in oar wachtwurd oan te freegjen.', -'eauthentsent' => "In befêstigingsmail is nei it opjûne e-mailadres ferstjoerd. Folgje de ynstruksjes yn'e e-mail om oan te jaan dat it jo e-mailadres is. Oant dy tiid wurdt der gjin e-mail oan it adres stjoerd.", +'eauthentsent' => "Foar befêstiging is jo in netpostberjocht tastjoerd op it adres dat jo ynsteld hawwe. Der wurdt gjin oare netpost stjoerd, oant jo it adres befêstigje sa't it yn it netpostberjocht stiet.", 'throttled-mailpassword' => "Yn {{PLURAL:$1|de lêste oere|de lêste $1 oeren}} is der al in wachtwurdwink ferstjoerd. Om misbrûk tefoaren te kommen wurdt der mar ien wachtwurdwink yn 'e {{PLURAL:$1|oere|$1 oeren}} ferstjoerd.", 'mailerror' => 'Fout by it ferstjoeren fan e-mail: $1', 'acct_creation_throttle_hit' => 'Sorry, jo hawwe al $1 meidochnammen oanmakke; jo kinne net mear oanmeitsje.', -'emailauthenticated' => 'Jo e-mailadres is befêstige op $1.', -'emailnotauthenticated' => 'Jo e-mailadres is <strong>net befêstige</strong>. Jo ûntfange gjin e-mail foar de ûndersteande funksjes.', +'emailauthenticated' => 'Jo netpostadres waard befêstige op $1.', +'emailnotauthenticated' => 'Jo netpostadres is <strong>noch net befêstige</strong>. Jo kinne oare brûkers gjin post stjoere, en foar de neikommende opsjes wurdt jo gjin post stjoerd.', 'noemailprefs' => 'Jou in e-mailadres op om dizze funksjes te brûken.', -'emailconfirmlink' => 'Befêstigje jo e-mailaddres', +'emailconfirmlink' => 'Befêstigje jo netpostadres.', 'invalidemailaddress' => "It e-mailadres is net akseptearre om't it in ûnjildige opmaak hat. Jou beleaven in jildich e-mailadres op of lit it fjild leech.", 'accountcreated' => 'Brûker oanmakke', @@ -518,24 +514,24 @@ 'resetpass_missing' => 'Jo hawwe gjin wachtwurd ynjûn.', # Edit page toolbar -'bold_sample' => 'Tsjûkprinte tekst', -'bold_tip' => 'Tsjûkprinte', -'italic_sample' => 'Skeanprinte tekst', -'italic_tip' => 'skeanprinte', -'link_sample' => 'Underwerp', -'link_tip' => 'Ynterne link', +'bold_sample' => 'Fette tekst', +'bold_tip' => 'Fette tekst', +'italic_sample' => 'Skeane tekst', +'italic_tip' => 'Skeane tekst', +'link_sample' => 'Link titel', +'link_tip' => 'Ynterne ferwizing', 'extlink_sample' => 'http://www.example.com linktekst', 'extlink_tip' => 'Eksterne link (ferjit http:// net)', -'headline_sample' => 'Dielûnderwerp', -'headline_tip' => 'Tuskenkop (heechste plan)', -'math_sample' => 'Formule hjir ynfiere', +'headline_sample' => 'Koptekst', +'headline_tip' => 'Underkopke', +'math_sample' => 'Foechje hjir in formule yn', 'math_tip' => 'Wiskundige formule (LaTeX)', -'nowiki_sample' => 'Fier hjir de net op te meitsjen tekst yn', -'nowiki_tip' => 'Wiki-opmaak net oernimme', +'nowiki_sample' => 'Foechje hjir platte tekst yn', +'nowiki_tip' => 'Negearje it wiki formaat', 'image_tip' => 'Mediatriem', 'media_tip' => 'Link nei triem', -'sig_tip' => 'Jo hanteken mei datum en tiid', -'hr_tip' => 'Horizontale streek (net tefolle brûke)', +'sig_tip' => 'Jo hântekening mei dei en oere', +'hr_tip' => 'Horizontale line (mei ferdrach brûke)', # Edit pages 'summary' => 'Gearfetting', @@ -544,17 +540,17 @@ 'watchthis' => 'Folgje dizze side', 'savearticle' => 'Fêstlizze', 'preview' => 'Oerlêze', -'showpreview' => "Oerlêze foar't de side fêstlein is", +'showpreview' => 'Earst oerlêze', 'showlivepreview' => 'Bewurking foar kontrôle besjen', -'showdiff' => 'Feroarings sjen litte', -'anoneditwarning' => "'''Warskôging:''' Jo binne net oanmeld. Jo IP-adres wurdt opslein as jo feroarings op dizze side meitsje.", +'showdiff' => 'Wizigings', +'anoneditwarning' => "'''Warskôging:''' Jo binne net oanmeld. By it fêstlizzen wurdt jo ynternetadres opnaam yn de sideskiednis.", 'missingsummary' => "'''Wink:''' jo hawwe gjin gearfetting jûn foar jo bewurking. As jo nochris op ''Side opslaan'' klikke wurdt de bewurking sûnder gearfetting opslein.", 'missingcommenttext' => 'Set jo opmerking beleaven hjir ûnder.', 'missingcommentheader' => "'''Tink derom:''' Jo hawwe gjin ûnderwerp/kop foar dizze opmerking opjûn. As jo op 'e nij op \"opslaan\" klikke, wurdt jo feroaring sûnder in ûnderwerp/kop opslein.", -'summary-preview' => 'Gearfetting neisjen', +'summary-preview' => 'Gearfetting sa at dy brûkt wurdt', 'subject-preview' => 'Neisjen ûnderwerp/kop', -'blockedtitle' => 'Brûker is útsletten troch', -'blockedtext' => "<big>'''Jo brûkersname of Ynternet-adres is útsletten.'''</big> +'blockedtitle' => 'Meidogger is útsletten troch', +'blockedtext' => "<big>'''Jo meidoggernamme of Ynternet-adres is útsletten.'''</big> De útsluting is útfierd troch $1. De opjûne reden is ''$2''. @@ -564,22 +560,20 @@ * Bedoeld út te sluten: $7 Jo kinne kontakt opnimme mei $1 of in oare [[{{MediaWiki:Grouppage-sysop}}|behearder]] om de útsluting te besprekken. -Jo kinne gjin gebrûk meitsje fan 'e funksje 'e-mail dizze brûker', of jo moatte in jildich e-mailadres opjûn hawwe yn jo [[Special:Preferences|foarkarren]] en it gebrûk fan dy funksje moat net útsletten wêze. -Jo tsjintwurdich e-mailadres is $3 en it útslútnûmer is #$5. Neam beide gegevens as jo earne op dizze útsluting reagearje.", -'autoblockedtext' => "Jo IP-adres is automatysk blokkearre om't brûkt is troch in oare brûker, dy't blokkearre is troch $1. +Jo kinne gjin gebrûk meitsje fan 'e funksje 'Skriuw meidogger', of jo moatte in jildich e-postadres opjûn hawwe yn jo [[Special:Preferences|foarkarren]] en it gebrûk fan dy funksje moat net útsletten wêze. +Jo tsjintwurdich e-postadres is $3 en it útsletnûmer is #$5. Neam beide gegevens as jo earne op dizze útsluting reagearje.", +'autoblockedtext' => "Jo IP-adres is automatysk útsletten om't brûkt is troch in oare brûker, dy't útsletten is troch $1. De opjûne reden is: :''$2'' -* Begjin blokkade: $8 -* Ein blokkade: $6 +* Begjin útsluting : $8 +* Ein útsluting : $6 +* Bedoeld út te sluten: $7 -Jo kinne dizze blokkade besprekke mei $1 of in oare [[{{MediaWiki:Grouppage-sysop}}|behearder]]. - -U kinne gjin gebrûk meitsje fan 'e funksje 'e-mail dizze brûker', of jo moatte in jildich e-mailadres opjûn hawwe yn jo [[Special:Preferences|foarkarren]] en it gebrûk fan dy funksje moat net blokkearre wêze. - -Jo blokkadenûmer is $5. -Jou beide gegevens op as jo earne oer dizze blokkade reagearje.", +Jo kinne kontakt opnimme mei $1 of in oare [[{{MediaWiki:Grouppage-sysop}}|behearder]] om de útsluting te besprekken. +Jo kinne gjin gebrûk meitsje fan 'e funksje 'Skriuw meidogger', of jo moatte in jildich e-postadres opjûn hawwe yn jo [[Special:Preferences|foarkarren]] en it gebrûk fan dy funksje moat net útsletten wêze. +Jo tsjintwurdich e-postadres is $3 en it útsletnûmer is #$5. Neam beide gegevens as jo earne op dizze útsluting reagearje.", 'blockednoreason' => 'gjin reden opjûn', 'blockedoriginalsource' => "Hjir ûnder stiet de boarnetekst fan '''$1''':", 'blockededitsource' => "Hjir ûnder stiet de tekst fan '''jo bewurkings''' oan '''$1''':", @@ -589,9 +583,9 @@ 'confirmedittext' => "Jo moatte jo e-mailadres befêstichje foar't jo siden feroarje kinne. Fier in e-mailedres yn by jo [[Special:Preferences|ynstellings]] en befêstichje it.", 'nosuchsectiontitle' => 'Dizze subkop bestiet net', 'nosuchsectiontext' => "Jo besochten in subkop te bewurkjen dy't net bestiet. Om't subkop $1 net bestiet, kin jo bewurking ek net opslein wurde.", -'loginreqtitle' => 'Oanmelden ferplichte', +'loginreqtitle' => 'Oanmelding frege', 'loginreqlink' => 'Oanmelde', -'loginreqpagetext' => '$1 is ferplichte om oare siden sjen te kinnen.', +'loginreqpagetext' => 'Jo moatte jo $1 om oare siden besjen te kinnen.', 'accmailtitle' => 'Wachtwurd ferstjoerd.', 'accmailtext' => 'It wachtwurd foar "$1" is ferstjoerd nei $2.', 'newarticle' => '(Nij)', @@ -599,7 +593,7 @@ Om sels tekst te meistjsen kinne jo dy gewoan yntype in dit bewurkingsfjild ([[{{MediaWiki:Helppage}}|Mear ynformaasje oer bewurkjen]].) Oars kinne jo tebek mei de tebek-knop fan jo blêder.", -'anontalkpagetext' => "----''Dit is de oerlisside fan in ûnbekende meidogger; in meidogger dy't him/har net oanmeld hat. Om't der gjin namme bekend is, wurdt it Ynternet-adres brûkt om oan te jaan wa. Mar faak is it sa dat sa'n adres net altyd troch deselde persoan brûkt wurdt. As jo it idee hawwe dat jo as ûnbekende meidogger opmerkings foar in oar krije, dan kinne jo [[Special:UserLogin/signup|in meidogger namme oanmeitsje]], of jo [[Special:UserLogin|oanmelde]], sadat jo allinnich opmerkings foar josels krije.''", +'anontalkpagetext' => "----''Dit is de oerlisside fan in ûnbekende meidogger; in meidogger dy't him/har net oanmeld hat. Om't der gjin namme bekend is, wurdt it ynternet-adres brûkt om oan te jaan wa. Mar faak is it sa dat sa'n adres net altyd troch deselde persoan brûkt wurdt. As jo it idee hawwe dat jo as ûnbekende meidogger opmerkings foar in oar krije, dan kinne jo jo [[Special:UserLogin/signup|registrearje]], of jo [[Special:UserLogin|oanmelde]]. Fan in oanmelde meidogger is it ynternet-adres net sichtber, en as oanmelde meidogger krije jo allinnich opmerkings dy't foar josels bedoeld binne.''", 'noarticletext' => 'Der stjit noch gjin tekst op dizze side. Jo kinne [[Special:Search/{{PAGENAME}}|hjirboppe nei dy tekst sykje]], of [{{fullurl:{{FULLPAGENAME}}|action=edit}} de side skriuwe].', 'userpage-userdoesnotexist' => 'Jo bewurkje in brûkersside fan in brûker dy\'t net bestiet (brûker "$1"). @@ -621,14 +615,10 @@ De bewurking is wegere om skeinen fan 'e sidetekst tefoaren te kommen. Dat bart soms as der in webbasearre proxytsjinst brûkt wurdt dy't flaters befettet.</strong>", 'editing' => 'Bewurkje "$1"', -'editingsection' => 'Dwaande mei bewurkjen fan $1 (dielside)', +'editingsection' => 'Bewurkje $1 (seksje)', 'editingcomment' => 'Dwaande mei bewurkjen fan $1 (opmerking)', 'editconflict' => 'Tagelyk bewurke: "$1"', -'explainconflict' => "In oar hat de side feroare sûnt jo begûn binne mei it bewurkjen. -It earste bewurkingsfjild is hoe't de tekst wilens wurde is. -Jo feroarings stean yn it twadde fjild. -Dy wurde allinnich tapasse safier as jo se yn it earste fjild ynpasse. -<b>Allinnich</b> de tekst út it earste fjild kin fêstlein wurde.<br />", +'explainconflict' => "In oar hat de side feroare sûnt jo begûn binne mei it bewurkjen. It earste bewurkingsfjild is hoe't de tekst wilens wurden is. Jo feroarings stean yn it twadde fjild. Dy wurde allinnich tapast safier as jo se yn it earste fjild ynpasse. <b>Allinnich</b> de tekst út it earste fjild kin fêstlein wurde. <p>", 'yourtext' => 'Jo tekst', 'storedversion' => 'Fêstleine ferzje', 'editingold' => '<strong>Waarskôging: Jo binne dwaande mei in âldere ferzje fan dizze side. @@ -640,20 +630,19 @@ 'longpagewarning' => "<strong>Warskôging: Dizze side is $1 kilobyte lang; der binne blêders dy't problemen hawwe mei siden fan tsjin de 32kb. of langer. Besykje de side yn lytsere stikken te brekken.</strong>", -'readonlywarning' => '<strong>Waarskôging: De databank is ôfsletten foar -ûnderhâld, dus jo kinne jo bewurkings no net fêstlizze. -It wie baas en nim de tekst foar letter oer yn in tekstbestân.</strong>', +'readonlywarning' => '<strong>Warskôging: De databank is ôfsletten foar ûnderhâld, dus jo kinne jo bewurkings no net fêstlizze. Bewarje de tekst foar lettere pleatsing yn in teksttriem.</strong>', 'protectedpagewarning' => '<strong>Waarskôging: Dizze side is beskerme, dat gewoane brûkers dy net bewurkje kinne.</strong>', 'semiprotectedpagewarning' => "'''Tink derom:''' dizze side is befeilige en kin allinne troch registrearre brûkers bewurke wurde.", 'cascadeprotectedwarning' => "'''Warskôging:''' Dizze side is skoattele sadat allinnich behearders de side wizigje kinne, om't der in ûnderdiel útmakket fan de neikommende {{PLURAL:\$1|side|siden}}, dy't skoattele binne mei de \"ûnderlizzende siden\" opsje ynskeakele:", 'titleprotectedwarning' => '<strong>WARSKÔGING: Dizze side is befeilige, dat allinne inkelde brûkers kinne him oanmeitsje.</strong>', -'templatesused' => 'Op dizze side brûkte sjabloanen:', +'templatesused' => 'Berjochten brûkt op dizze side:', 'templatesusedpreview' => 'Yn dit proefbyld sjabloanen:', 'templatesusedsection' => "Sjabloanen dy't brûkt wurde yn dizze subkop:", 'template-protected' => '(befeilige)', 'template-semiprotected' => '(semi-befeilige)', 'hiddencategories' => 'Dizze side falt yn de folgjende ferburgen {{PLURAL:$1|kategory|kategoryen}}:', +'edittools' => '<!-- Tekst hjir stiet ûnder bewurkingsfjilden en oanbringfjilden. -->', 'nocreatetitle' => 'It oanmeitsjen fan siden is beheind', 'nocreatetext' => '{{SITENAME}} hat de mûglikheid beheind om nije siden te meitsjen. Jo kinne al besteande siden feroarje of jo kinne [[Special:UserLogin|jo oanmelde of in brûker oanmeitsje]].', @@ -675,7 +664,7 @@ # "Undo" feature 'undo-success' => 'De feroaring kin werom set wurde. Kontrolearje de ferliking hjirûnder om wis te wêzen dat jo dit feroarje wolle en druk dan op fêstlizze om it werom setten troch te fieren.', -'undo-failure' => 'De feroaring kin net ûngedien makke wurde fanwege oare stridige bewurkings.', +'undo-failure' => 'De feroarings kinne net werom set wurde troch in konflikt mei oare feroarings tuskentroch.', 'undo-norev' => 'De feroaring kin werom set wurde, omdat it net bestiet of is wiske.', 'undo-summary' => 'Werom sette fan ferzje $1 fan [[Special:Contributions/$2|$2]] ([[User talk:$2|Oerlis]])', @@ -688,10 +677,10 @@ 'revnotfound' => 'Ferzje net fûn', 'revnotfoundtext' => "De âlde ferzje fan dizze side dêr't jo om frege hawwe, is der net. Gean nei of de keppeling dy jo brûkt hawwe wol goed is.", -'currentrev' => 'Dizze ferzje', +'currentrev' => 'Aktuele ferzje', 'revisionasof' => 'Ferzje op $1', 'revision-info' => 'Ferzje op $1 fan $2', -'previousrevision' => '←Aldere ferzje', +'previousrevision' => '←Eardere ferskillen', 'nextrevision' => 'Nijere ferzje→', 'currentrevisionlink' => 'Rinnende ferzje', 'cur' => 'no', @@ -703,8 +692,8 @@ (doe) = ferskill mei de side sa't er doe wie, foar de feroaring, T = Tekstwiziging", 'history-search' => 'Besykjen yn skiednis.', 'deletedrev' => '[fuorthelle]', -'histfirst' => 'Aldste', -'histlast' => 'Nijste', +'histfirst' => 'Ierst', +'histlast' => 'Lêst', 'historysize' => '({{PLURAL:$1|1 byte|$1 bytes}})', 'historyempty' => '(leech)', @@ -752,11 +741,11 @@ 'pagemerge-logentry' => '[[$1]] kombinearre mei [[$2]] (maksimaal $3 ferzjes)', # Diffs -'history-title' => 'Skiednis fan "$1"', +'history-title' => 'Sideskiednis fan "$1"', 'difference' => '(Ferskil tusken ferzjes)', 'lineno' => 'Rigel $1:', -'compareselectedversions' => 'Ferlykje keazen ferzjes', -'editundo' => 'oergean litte', +'compareselectedversions' => 'Ferlykje selektearre ferzjes', +'editundo' => 'werom sette', 'diff-multi' => '({{PLURAL:$1|Ien tuskenlizzende ferzje wurdt|$1 tuskenlizzende ferzjes wurde}} net sjen litten.)', # Search results @@ -799,9 +788,7 @@ 'powersearch-ns' => 'Sykje op nammeromten:', 'powersearch-field' => 'Sykje op', 'search-external' => 'Ekstern sykjen', -'searchdisabled' => "<p>Op it stuit stjit it trochsykjen fan tekst net oan, om't de -tsjinner it net oankin. Mei't we nije apparatuer krije wurdt it nei alle gedanken wer -mooglik. Foar now kinne jo sykje fia Google:</p>", +'searchdisabled' => '<p>Op it stuit stiet it trochsykjen fan tekst út omdat dizze funksje tefolle kompjûterkapasiteit ferget. As we nije apparatuer krije, en dy is ûnderweis, dan wurdt dizze funksje wer aktyf. Oant salang kinne jo sykje fia Google:</p>', # Preferences page 'preferences' => 'Ynstellings', @@ -809,7 +796,7 @@ 'prefs-edits' => 'Tal bewurkings:', 'prefsnologin' => 'Net oanmeld', 'prefsnologintext' => 'Jo moatte [[Special:UserLogin|oanmeld]] wêze om jo ynstellings te feroarjen.', -'prefsreset' => "De ynstellings binne tebek set sa't se fêstlein wienen.", +'prefsreset' => "De ynstellings binne werom set sa't se fêstlein wienen.", 'qbsettings' => 'Menu', 'qbsettings-none' => 'Ut', 'qbsettings-fixedleft' => 'Lofts fêst', @@ -838,11 +825,11 @@ 'prefs-watchlist-edits' => 'Tal wizigings om sjen te litten yn de útwreide folchlist:', 'prefs-misc' => 'Ferskaat', 'saveprefs' => 'Ynstellings fêstlizze', -'resetprefs' => 'Ynstellings tebek sette', +'resetprefs' => 'Ynstellings werom sette', 'oldpassword' => 'Ald wachtwurd', 'newpassword' => 'Nij wachtwurd', 'retypenew' => 'Nij wachtwurd (nochris)', -'textboxsize' => 'Tekstfjid-omjittings', +'textboxsize' => 'Siden bewurkje', 'rows' => 'Rigen', 'columns' => 'Kolommen', 'searchresultshead' => 'Sykje', @@ -850,15 +837,15 @@ 'contextlines' => 'Rigels ynhâld de treffer:', 'contextchars' => 'Tekens fan de ynhâld de rigel:', 'recentchangesdays' => 'Dagen om sjen te litten yn Koartlyn feroare:', -'recentchangescount' => "Nûmer of titels op 'Koarts feroare'", +'recentchangescount' => "Tal titels op 'Koartlyn feroare'", 'savedprefs' => 'Jo ynstellings binne fêstlein.', 'timezonelegend' => 'Tiidsône', -'timezonetext' => 'Jou it tal fan oeren dat jo tiidsône ferskilt fan UTC (Greenwich).', +'timezonetext' => 'Jou it tal oeren dat jo tiidsône ferskilt fan UTC (Greenwich).', 'localtime' => 'Jo tiidsône', 'timezoneoffset' => 'Ferskil', 'servertime' => 'UTC', 'guesstimezone' => 'Freegje de blêder', -'allowemail' => 'Netpost fan oare meidoggers tastean', +'allowemail' => 'Lêt my ek e-mail fan oare meidoggers ûntfange', 'prefs-searchoptions' => 'Sykje-ynstellings', 'prefs-namespaces' => 'Nammeromten', 'defaultns' => "Nammeromten dy't normaal trochsocht wurde:", @@ -874,8 +861,8 @@ 'userrights-editusergroup' => 'Wizigje meidoggerrjochten', 'saveusergroups' => 'Meidoggerrjochten fêstlizze', 'userrights-groupsmember' => 'Sit yn group:', -'userrights-reason' => 'Utlis foar wizigjen:', -'userrights-no-interwiki' => "Jo hawwe gjin rjochten om meidoggerrjochten op oare wiki's te wizigjen.", +'userrights-reason' => 'Reden foar wizigjen:', +'userrights-no-interwiki' => 'Jo hawwe gjin foech om rjochten fan meidoggers op oare wikis te wizigjen.', 'userrights-nologin' => 'Jo moatte jo [[Special:UserLogin|oanmelde]] as rjochtenútfurder om rjochten fan meidoggers wizigje te kinnen.', 'userrights-notallowed' => 'Jo hawwe gjin rjochten om rjochten fan meidoggers te wizigjen.', 'userrights-changeable-col' => "Groepen dy't jo beheare kinne", @@ -887,7 +874,7 @@ 'group-bot' => 'Bots', 'group-sysop' => 'Behearders', 'group-bureaucrat' => 'Rjochtenútfurders', -'group-all' => '(alle)', +'group-all' => '(eltsenien)', 'group-user-member' => 'Meidogger', 'group-bot-member' => 'Bot', @@ -917,26 +904,26 @@ 'right-userrights-interwiki' => "Wizigje meidoggerrjochten fan meidoggers yn oare wiki's", # User rights log -'rightslog' => 'Brûkersrjochte-lochboek', -'rightslogtext' => 'Hjirûnder binne de wizigjen fan meidoggerrjochten.', -'rightslogentry' => 'groep is feroare foar meidogger $1 fan $2 no $3', +'rightslog' => 'Rjochten-loch', +'rightslogtext' => 'Dit is in loch fan feroarings fan meidoggerrjochten.', +'rightslogentry' => 'groep foar $1 feroare fan $2 yn $3', 'rightsnone' => '(gjin)', # Recent changes 'nchanges' => '$1 {{PLURAL:$1|bewurking|bewurkings}}', -'recentchanges' => 'Koarts feroare', +'recentchanges' => 'Koartlyn feroare', 'recentchangestext' => 'De lêste feroarings fan de {{SITENAME}}.', 'recentchanges-feed-description' => 'Mei dizze feed kinne jo de nijste feroarings yn dizze wiki besjen.', 'rcnote' => "Dit {{PLURAL:$1|is de lêste feroaring|binne de lêste '''$1''' feroarings}} yn de lêste {{PLURAL:$2|dei|'''$2''' dagen}}, fan $4 $5.", 'rcnotefrom' => 'Dit binne de feroarings sûnt <b>$2</b> (maksimaal <b>$1</b>).', 'rclistfrom' => 'Jou nije feroarings, begjinnende mei $1', -'rcshowhideminor' => 'lytse feroarings $1', +'rcshowhideminor' => '$1 tekstwizigings', 'rcshowhidebots' => 'bots $1', -'rcshowhideliu' => 'oanmelde brûkers $1', -'rcshowhideanons' => 'anonime brûkers $1', +'rcshowhideliu' => '$1 meidoggers', +'rcshowhideanons' => '$1 anonimen', 'rcshowhidepatr' => 'kontrolearre bewurkings $1', -'rcshowhidemine' => 'myn bewurkings $1', -'rclinks' => 'Jou $1 nije feroarings yn de lêste $2 dagen; $3 tekstwiziging', +'rcshowhidemine' => '$1 eigen bewurkings', +'rclinks' => 'Jou $1 nije feroarings yn de lêste $2 dagen<br /> $3', 'diff' => 'ferskil', 'hist' => 'skiednis', 'hide' => 'gjin', @@ -956,14 +943,14 @@ 'recentchangeslinked-page' => 'Sidenamme:', # Upload -'upload' => 'Bied bestân oan', -'uploadbtn' => 'Bied bestân oan', +'upload' => 'Bied triem oan', +'uploadbtn' => 'Bied triem oan', 'reupload' => "Op 'e nij oanbiede", 'reuploaddesc' => 'Werom nei oanbied-side.', 'uploadnologin' => 'Net oanmelde', -'uploadnologintext' => 'Jo moatte [[Special:UserLogin|oanmeld]] wêze om in bestân oanbieden te kinnen.', +'uploadnologintext' => 'Jo moatte [[Special:UserLogin|oanmeld]] wêze om in triem oanbiede te kinnen.', 'upload_directory_read_only' => 'De webserver kin net skriuwe yn de oanbiedpad ($1).', -'uploaderror' => 'Oanbied-fout', +'uploaderror' => 'Oanbiedfout', 'uploadtext' => "Om't nije triemmen oan te bieden, brûke jo de ûndersteande fekjes. Earder oanbeane triemmen, kinne jo fine op de [[Special:ImageList|list of oanbeane ôfbylden]]. Wat oanbean en wat wiske wurdt, wurdt delskreaun yn it [[Special:Log/upload|lochboek]]. @@ -972,23 +959,22 @@ *'''<nowiki>[[</nowiki>{{ns:image}}<nowiki>:jo_logo.png|omskriuwing]]</nowiki>''', of *'''<nowiki>[[</nowiki>{{ns:media}}<nowiki>:jo_lûd.ogg]]</nowiki>''', foar direkt keppeling fan mediatriemmen dy't gjin ôfbylden binne.", 'upload-prohibited' => 'Ferbouden triemtypes: $1.', -'uploadlog' => 'oanbied log', -'uploadlogpage' => 'Oanbied_log', -'uploadlogpagetext' => 'Liste fan de lêst oanbeane bestannen. -(Tiid oanjûn as UTC).', -'filename' => 'Bestânsnamme', +'uploadlog' => 'oanbiedloch', +'uploadlogpage' => 'Oanbiedloch', +'uploadlogpagetext' => 'List fan de lêst oanbeane triemmen. (Tiid oanjûn as UTC).', +'filename' => 'Triemnamme', 'filedesc' => 'Omskriuwing', 'fileuploadsummary' => 'Gearfetting:', 'filestatus' => 'Auteursrjochtensituaasje:', 'filesource' => 'Boarne:', -'uploadedfiles' => 'Oanbeane bestannen', +'uploadedfiles' => 'Oanbeane triemmen', 'ignorewarning' => 'Negearje de warskôging en lis triem dochs fêst.', 'ignorewarnings' => 'Negearje warskôgings', 'minlength1' => 'Triemnammen moatte minstens út ien teken bestean.', 'badfilename' => 'De ôfbyldnamme is feroare nei "$1".', 'successfulupload' => 'Oanbieden slagge.', 'uploadwarning' => 'Oanbied waarskôging', -'savefile' => 'Lis bestân fêst', +'savefile' => 'Lis triem fêst', 'uploadedimage' => ' "[[$1]]" oanbean', 'uploaddisabled' => 'Sorry, op dizze tsjinner kin net oanbean wurde.', 'sourcefilename' => 'Triemnamme boarne:', @@ -996,7 +982,8 @@ 'watchthisupload' => 'Folgje dizze side', 'filename-bad-prefix' => 'De namme fan de triem dy\'t jo oanbied begjint mei <strong>"$1"</strong>, dit wiist op in namme dy\'t automatysk troch in digitale kamera oanmakke wurdt. Feroarje de namme as jo wolle yn ien dy\'t in omskriuwing jout fan de triem.', -'license' => 'Lisinsje:', +'license' => 'Lisinsje:', +'nolicense' => 'Neat keazen', # Special:ImageList 'imgfile' => 'triem', @@ -1004,24 +991,24 @@ 'imagelist_name' => 'Namme', # Image description page -'filehist' => 'Triemskiednis', -'filehist-help' => "Klik op in datum/tiid om de triem te sjen sa't er doedestiids wie.", +'filehist' => 'Triem skiednis', +'filehist-help' => 'Klik op in tiid om de ferzje fan de triem op dat stuit te sjen.', 'filehist-deleteall' => 'wiskje alles', 'filehist-deleteone' => 'wiskje dizze', 'filehist-revert' => 'werom sette', -'filehist-current' => 'rinnend', -'filehist-datetime' => 'Datum/tiid', -'filehist-user' => 'Brûker', +'filehist-current' => 'lêste', +'filehist-datetime' => 'Tiid', +'filehist-user' => 'Meidogger', 'filehist-dimensions' => 'Ofmjittings', -'filehist-filesize' => 'Triemgrutte', -'filehist-comment' => 'Oanmerking', +'filehist-filesize' => 'Triem grutte', +'filehist-comment' => 'Opmerkings', 'imagelinks' => 'Ofbyldkeppelings', 'linkstoimage' => 'Dizze {{PLURAL:$1|side is|$1 siden binne}} keppele oan it ôfbyld:', -'nolinkstoimage' => 'Der binne gjin siden oan dit ôfbyld keppelje.', +'nolinkstoimage' => 'Der binne gjin siden oan dit ôfbyld keppele.', 'sharedupload' => 'Dizze triem is in dielde oplading en kin ek troch oare projektren brûkt wurde.', 'noimage' => 'Der bestiet gjin triem mei dizze namme. Jo kinne it $1.', 'noimage-linktext' => 'oplade', -'uploadnewversion-linktext' => 'In nije ferzje fan dizze triem oplade', +'uploadnewversion-linktext' => 'Bied in nije ferzje fan dizze triem oan', # File reversion 'filerevert' => '$1 weromsette', @@ -1032,6 +1019,7 @@ # File deletion 'filedelete' => 'Wiskje $1', 'filedelete-legend' => 'Wiskje triem', +'filedelete-intro' => "Jo wiskje '''[[Media:$1|$1]]'''.", 'filedelete-intro-old' => "Jo wiskje de ferzje fan '''[[Media:$1|$1]]''' fan [$4 $3, $2].", 'filedelete-comment' => 'Reden foar it wiskjen:', 'filedelete-submit' => 'Wiskje', @@ -1061,7 +1049,7 @@ # Statistics 'statistics' => 'Statistyk', 'sitestats' => 'Side statistyk', -'userstats' => 'Brûker statistyk', +'userstats' => 'Meidogger-statistyk', 'sitestatstext' => "It {{PLURAL:$1|is '''1''' side|binne '''$1''' siden}} yn de databank. Oerlissiden, siden oer de {{SITENAME}}, stobben, trochferwizings, en oare bysûndere siden, binne dêrby meiteld. Sûnder dizze siden, it {{PLURAL:$2|is '''1''' side|binne '''$2''' siden}} mei materiaal en ynhâld. @@ -1073,94 +1061,91 @@ 'userstatstext' => "It tal fan registrearre meidoggers is '''{{PLURAL:$1|1|$1}}'''. It tal fan meidoggers dêrfan mei $5rjochten is '''{{PLURAL:$2|1|$2}}''' (of '''{{PLURAL:$4|1|$4}}''').", -'disambiguations' => 'Trochverwizings', -'disambiguationspage' => 'Project:trochferwizing', +'disambiguations' => 'Betsjuttingssiden', +'disambiguationspage' => 'Template:Neibetsjuttings', 'disambiguations-text' => "De ûndersteande siden keppelje mei in '''Betsjuttingssiden'''. Se soenen mei de side sels keppele wurde moatte.<br /> In side wurdt sjoen as betsjuttingssiden, as de side ien berjocht fan [[MediaWiki:Disambiguationspage]] brûkt.", -'doubleredirects' => 'Dûbele trochferwizings', -'doubleredirectstext' => '<b>Let op!</b> Der kinne missen yn dizze list stean! -Dat komt dan ornaris troch oare keppelings ûnder de "#REDIRECT".<br /> -Eltse rigel jout keppelings nei de earste en twadde trochverwizing, en dan de earste regel fan -de twadde trochferwizing, wat it "echte" doel wêze moat.', +'doubleredirects' => 'Dûbelde synonimen', +'doubleredirectstext' => '<b>Let op!</b> Der kinne missen yn dizze list stean! Dat komt dan ornaris troch oare keppelings ûnder de "#REDIRECT". Eltse rigel jout keppelings nei it earste synonym, it twadde synonym en dan it werklike doel.', -'brokenredirects' => 'Misse trochferwizings', -'brokenredirectstext' => "Dizze trochferwizings ferwize nei siden dy't der net binne.", +'brokenredirects' => 'Misse synonimen', +'brokenredirectstext' => "De siden dêr't dizze titels synonym oan wêze moatte, bestean net.", 'brokenredirects-edit' => '(bewurkje)', 'brokenredirects-delete' => '(wiskje)', -'withoutinterwiki' => 'Siden sûnder links nei oare talen', +'withoutinterwiki' => 'Siden sûnder ferwizings nei oare talen', 'withoutinterwiki-submit' => 'Sjen litte', -'fewestrevisions' => 'Siden mei de minste bewurkings', +'fewestrevisions' => 'Siden mei de minste ferzjes', # Miscellaneous special pages 'nbytes' => '$1 {{PLURAL:$1|byte|bytes}}', 'ncategories' => '$1 {{PLURAL:$1|kategory|kategoryen}}', 'nlinks' => '$1 {{PLURAL:$1|keppeling|keppelings}}', -'nmembers' => '$1 {{PLURAL:$1|ynskriuwing|ynskriuwings}}', +'nmembers' => '$1 {{PLURAL:$1|lid|lea}}', 'nrevisions' => '$1 {{PLURAL:$1|ferzje|ferzjes}}', 'nviews' => '{{PLURAL:$1|1 kear|$1 kear}} sjoen', 'specialpage-empty' => 'Gjin resultaten foar dit rapport.', 'lonelypages' => 'Lossteande siden', -'uncategorizedpages' => 'Net-kategorisearre siden', -'uncategorizedcategories' => 'Net-kategorisearre kategoryen', -'uncategorizedimages' => 'Net-kategorisearre triemen', +'uncategorizedpages' => 'Siden sûnder kategory', +'uncategorizedcategories' => 'Kategoryen sûnder kategory', +'uncategorizedimages' => 'Ofbylden sûnder kategory', 'uncategorizedtemplates' => 'Net-kategorisearre sjabloanen', -'unusedcategories' => 'Net-brûkte kategoryen', +'unusedcategories' => 'Lege kategoryen', 'unusedimages' => 'Lossteande ôfbylden', -'popularpages' => 'Grage siden', -'wantedcategories' => "Net-besteande kategoryen dêr't it meast nei ferwiisd wurdt", +'popularpages' => 'Populêre siden', +'wantedcategories' => 'Nedige kategoryen', 'wantedpages' => 'Nedige siden', -'mostlinked' => "Siden dêr't it meast nei ferwiisd wurdt", -'mostlinkedcategories' => "Kategoryen dêr't it meast nei ferwiisd wurdt", +'mostlinked' => 'Siden wêr it meast mei keppele is', +'mostlinkedcategories' => "Kategoryen dy't it meast brûkt wurde", 'mostlinkedtemplates' => 'Meast brûkte sjabloanen', 'mostcategories' => 'Siden mei de measte kategoryen', -'mostimages' => 'Meast brûkte triemmen', +'mostimages' => "Ofbylden dy't it meast brûkt wurde", 'mostrevisions' => 'Siden mei de measte bewurkings', 'prefixindex' => 'Alle siden neffens foarheaksel', 'shortpages' => 'Koarte siden', 'longpages' => 'Lange siden', -'deadendpages' => 'Siden sûnder links', -'protectedpages' => 'Befeilige siden', +'deadendpages' => 'Siden sûnder ferwizings', +'protectedpages' => 'Skoattele siden', 'protectedpagestext' => 'De neikommende siden binne skoattele foar werneamen of wizigjen', -'listusers' => 'Brûkerlist', +'listusers' => 'Meidoggerlist', 'newpages' => 'Nije siden', 'newpages-username' => 'Meidoggernamme:', 'ancientpages' => 'Alde siden', -'move' => 'Ferskowe nei oare namme', +'move' => 'Werneam', 'movethispage' => 'Werneam dizze side', -'unusedimagestext' => '<p>Tink derom dat ore web sides lykas fan de oare -parten fan it meartaliche projekt mei in keppeling nei in direkte URL nei -an ôfbyld makke hawwe kinne. Dan wurde se noch brûke, mar stean al in dizze list.', +'unusedimagestext' => '<p>Tink derom dat oare websiden fan oare parten fan it meartalige projekt mooglik in keppeling nei it URL fan it ôfbyld makke hawwe. Sokke ôfbylden wurde wol brûkt, mar steane dochs op dizze list.', 'notargettitle' => 'Gjin side', 'notargettext' => 'Jo hawwe net sein oer hokfoar side jo dit witte wolle.', 'pager-older-n' => '{{PLURAL:$1|1 âlder|$1 âlder}}', # Book sources -'booksources' => 'Boekynformaasje', +'booksources' => 'Boekynformaasje', +'booksources-go' => 'Sykje', # Special:Log -'specialloguserlabel' => 'Brûker:', +'specialloguserlabel' => 'Meidogger:', 'speciallogtitlelabel' => 'Sidenamme:', -'log' => 'Logboeken', +'log' => 'Lochs', 'all-logs-page' => 'Alle lochboeken', +'log-search-submit' => 'Sykje', 'alllogstext' => 'Kombinearre loch de {{SITENAME}}. Jo kinne it oersjoch beheine troch in loch, in meidoggernamme of in side oan te jaan.', 'logempty' => 'Gjin treffers yn it loch.', # Special:AllPages 'allpages' => 'Alle siden', -'alphaindexline' => "$1 oan't $2", +'alphaindexline' => '$1 oant $2', 'nextpage' => 'Folgjende side ($1)', 'prevpage' => 'Foargeande side ($1)', -'allpagesfrom' => 'Siden sjen litte, te begjinnen mei:', +'allpagesfrom' => 'Begjin list by', 'allarticles' => 'Alle siden', 'allinnamespace' => 'Alle siden, yn de ($1-nammeromte)', -'allnotinnamespace' => 'Alle siden (útsein de $1-nammeromte)', +'allnotinnamespace' => 'Alle siden, útsein de $1-nammeromte', 'allpagesprev' => 'Eardere', 'allpagesnext' => 'Fierder', -'allpagessubmit' => 'Ynoarder', +'allpagessubmit' => 'Los!', 'allpagesprefix' => "Siden sjen litte dy't begjinne mei:", # Special:Categories @@ -1177,17 +1162,13 @@ # E-mail user 'mailnologin' => 'Gjin adres beskikber', -'mailnologintext' => 'Jo moatte [[Special:UserLogin|oanmeld]] wêze, en in jildich e-postadres [[Special:Preferences|ynsteld]] hawwe, om oan oare brûkers e-post stjoere te kinnen.', -'emailuser' => 'Skriuw dizze brûker', +'mailnologintext' => 'Jo moatte [[Special:UserLogin|oanmelden]] wêze, en in jildich e-postadres [[Special:Preferences|ynsteld]] hawwe, om oan oare meidoggers e-post stjoere te kinnen.', +'emailuser' => 'Skriuw meidogger', 'emailpage' => 'E-post nei meidogger', -'emailpagetext' => "As dizze brûker in jildich e-postadres in ynsteld hat, -dan kinne jo ien berjocht ferstjoere. -It e-postadres dat jo ynsteld hawwe wurdt brûkt as de ôfstjoerder, sa't de ûntfanger -antwurdzje kin.", +'emailpagetext' => "As dizze meidogger in jildich e-postadres ynsteld hat, dan kinne jo in berjocht ferstjoere. It e-postadres dat jo ynsteld hawwe wurdt brûkt as de ôfstjoerder, sa't de ûntfanger antwurdzje kin.", 'defemailsubject' => 'E-post fan {{SITENAME}}', 'noemailtitle' => 'Gjin e-postadres', -'noemailtext' => 'Dizze brûker had gjin jildich e-postadres ynsteld, -of hat oanjaan gjin post fan oare brûkers krije te wollen.', +'noemailtext' => 'Dizze meidogger hat gjin jildich e-postadres ynsteld, of hat oanjûn gjin post fan oare meidoggers krije te wollen.', 'emailfrom' => 'Fan', 'emailto' => 'Oan', 'emailsubject' => 'Oer', @@ -1201,7 +1182,7 @@ 'mywatchlist' => 'Folchlist', 'watchlistfor' => "(foar '''$1''')", 'nowatchlist' => 'Jo hawwe gjin siden op jo folchlist.', -'watchnologin' => 'Not oanmeld in', +'watchnologin' => 'Net oanmeld yn', 'watchnologintext' => 'Jo moatte [[Special:UserLogin|oanmeld]] wêze om jo folchlist te feroarjen.', 'addedwatch' => 'Oan folchlist tafoege', 'addedwatchtext' => "De side \"'''[[:\$1]]'''\" is tafoege oan jo [[Special:Watchlist|folchlist]]. Bewurkings fan dizze side en oerlisside wurde yn de takomst op jo folchlist oanjûn. Hja wurde foar jo ek '''fet''' printe op [[Special:RecentChanges|Koartlyn feroare]]. @@ -1211,17 +1192,17 @@ 'removedwatchtext' => 'De side "<nowiki>$1</nowiki>" stiet net mear op jo folchlist.', 'watch' => 'Folgje', 'watchthispage' => 'Folgje dizze side', -'unwatch' => 'Net folgje', +'unwatch' => 'Ferjit', 'unwatchthispage' => 'Ferjit dizze side', 'notanarticle' => 'Dit kin net folge wurde.', 'watchnochange' => "Fan de siden dy't jo folgje is der yn dizze perioade net ien feroare.", 'watchlist-details' => 'Jo folchlist hat {{PLURAL:$1|$1 side|$1 siden}}, oerlissiden net meiteld.', -'watchmethod-recent' => 'Koarts feroare ...', +'watchmethod-recent' => 'Koartlyn feroare ...', 'watchmethod-list' => 'Folge ...', 'watchlistcontains' => 'Jo folgje op it stuit $1 {{PLURAL:$1|side|siden}}.', 'iteminvalidname' => 'Misse namme: "$1" ...', 'wlnote' => "Dit {{PLURAL:$1|is de lêste feroaring|binne de lêste '''$1''' feroarings}} yn de lêste {{PLURAL:$2|oer|'''$2''' oeren}}.", -'wlshowlast' => 'Lêste $1 oeren, $2 dagen sjen litte ($3)', +'wlshowlast' => 'Lit feroarings sjen fan de lêste $1 oeren $2 dagen $3', 'watchlist-hide-bots' => 'Botbewurkings ferskûlje', 'watchlist-hide-own' => 'Myn bewurkings ferskûlje', 'watchlist-hide-minor' => 'Lytse bewurkings ferskûlje', @@ -1266,7 +1247,7 @@ 'exblank' => 'side wie leech', 'delete-confirm' => '"$1" wiskje', 'delete-legend' => 'Wiskje', -'historywarning' => "Waarskôging: De side dy't jo wiskje wolle hat skiednis:", +'historywarning' => "Warskôging: De side dy't jo wiskje wolle hat skiednis:", 'confirmdeletetext' => 'Jo binne dwaande mei it foar altyd wiskjen fan in side of ôfbyld, tegearre mei alle skiednis, út de databank. Befêstigje dat jo dat wier dwaan wolle. Befêstigje dat dat is wat jo witte wat it gefolch @@ -1275,11 +1256,11 @@ 'deletedtext' => '"<nowiki>$1</nowiki>" is wiske. Sjoch "$2" foar in list fan wat resint wiske is.', 'deletedarticle' => '"[[$1]]" is wiske', -'dellogpage' => 'Wisk_loch', +'dellogpage' => 'Wiskloch', 'dellogpagetext' => 'Dit is wat der resint wiske is. (Tiden oanjûn as UTC).', -'deletionlog' => 'wisk loch', -'reverted' => 'Tebekset nei eardere ferzje', +'deletionlog' => 'wiskloch', +'reverted' => 'Weromset nei eardere ferzje', 'deletecomment' => 'Reden foar it wiskjen', 'deleteotherreason' => 'Oare/eventuele reden:', 'deletereasonotherlist' => 'Oare reden', @@ -1287,44 +1268,44 @@ ** Frege troch de skriuwer ** Skeining fan auteursrjocht ** Fandalisme', -'rollback' => 'Feroarings tebeksette', +'rollback' => 'Feroarings werom sette', 'rollback_short' => 'Werom sette', -'rollbacklink' => 'feroaring tebeksette', -'rollbackfailed' => 'Feroaring tebeksette net slagge', -'cantrollback' => "Disse feroaringt kin net tebek set, om't der mar ien skriuwer is.", +'rollbacklink' => 'feroaring werom sette', +'rollbackfailed' => 'Feroaring werom sette net slagge', +'cantrollback' => "Dizze feroaring kin net werom setten wurde, om't der mar ien skriuwer is.", 'alreadyrolled' => 'Kin de feroaring fan [[:$1]] -troch [[User:$2|$2]] ([[User talk:$2|Oerlis]]) net tebeksette; -inoar hat de feroaring tebekset, of oars wat oan de side feroare. +troch [[User:$2|$2]] ([[User talk:$2|Oerlis]]) net werom sette; +in oar hat de feroaring werom set, of oars wat oan de side feroare. De lêste feroaring wie fan [[User:$3|$3]] ([[User talk:$3|Oerlis]]).', 'editcomment' => 'De gearfetting wie: "<i>$1</i>".', # only shown if there is an edit comment -'revertpage' => 'Feroarings werom set fan [[Special:Contributions/$2|$2]] ([[User talk:$2|Oerlis]]) nei de lêste ferzje fan [[User:$1|$1]]', # Additional available: $3: revid of the revision reverted to, $4: timestamp of the revision reverted to, $5: revid of the revision reverted from, $6: timestamp of the revision reverted from +'revertpage' => 'Bewurkings fan [[Special:Contributions/$2|$2]] ([[User talk:$2|Oerlis]]) werom set ta de ferzje fan [[User:$1|$1]]', # Additional available: $3: revid of the revision reverted to, $4: timestamp of the revision reverted to, $5: revid of the revision reverted from, $6: timestamp of the revision reverted from 'rollback-success' => 'Feroarings werom set fan $1; werom set nei de lêste ferzje fan $2.', -'protectlogpage' => 'Befeiligingslochboek', -'protectlogtext' => 'Hjirûnder wurdt it skoattele en frijjaan fan siden oanjûn. +'protectlogpage' => 'Skoattelloch', +'protectlogtext' => 'Hjirûnder wurdt it skoateljen en frijjaan fan siden oanjûn. Sjoch [[Special:ProtectedPages|Skoattele side]] foar mear ynformaasje.', 'protectedarticle' => '"[[$1]]" skoattele', 'unprotectedarticle' => 'joech "[[$1]]" frij', 'protect-legend' => 'Befeiliging befêstigje', -'protectcomment' => 'Oanmerkings:', -'protectexpiry' => 'Doer:', -'protect_expiry_invalid' => 'De oanjûne doer is ûnjildich.', -'protect_expiry_old' => 'Ferrindatum is yn it ferline', -'protect-unchain' => 'Ferskowen mûglik meitsje', -'protect-text' => 'Hjir kinne jo it befeiligingsnivo foar de side <strong><nowiki>$1</nowiki></strong> besjen en feroarje.', +'protectcomment' => 'Reden foar it skoatteljen', +'protectexpiry' => 'Ferrint nei', +'protect_expiry_invalid' => 'Tiid fan ferrinnen is net jildich.', +'protect_expiry_old' => 'Tiid fan ferrinnen leit yn it ferline.', +'protect-unchain' => 'Keppeling foar werneamen frijjaan.', +'protect-text' => 'Hjir kin jo it nivo fan skoatteljen sjen en oanpasse foar de side <strong><nowiki>$1</nowiki></strong>.', 'protect-locked-access' => "'''Jo brûker hat gjin rjochten om it befeiligingsnivo te feroarjen.''' Dit binne de rinnende ynstellings foar de side <strong>$1</strong>:", 'protect-cascadeon' => "Dizze side is op 't stuit befeilige, om't er yn 'e folgjende {{PLURAL:$1|side|siden}} opnommen is, dy't befeilige {{PLURAL:$1|is|binne}} mei de kaskade-opsje. It befeiligingsnivo feroarje hat alhiel gjin effekt.", 'protect-default' => '(standert)', 'protect-fallback' => 'Hjir is it rjocht "$1" foar nedich', -'protect-level-autoconfirmed' => 'Allinne registrearre brûkers', -'protect-level-sysop' => 'Allinne behearders', +'protect-level-autoconfirmed' => 'Slút anonymen út', +'protect-level-sysop' => 'Allinnich behearders', 'protect-summary-cascade' => 'kaskade', -'protect-expiring' => 'ferrint op $1', -'protect-cascade' => "Kaskadebefeiliging - befeiligje alle siden en sjabloanen dy't yn dizze side opnommen binne (tink derom; dat kin grutte gefolgen hawwe).", +'protect-expiring' => 'ferrint $1 (UTC)', +'protect-cascade' => "Underlizzende siden - skoattelje ek alle siden dy't in ûnderdiel útmeitsje fan dizze side", 'protect-cantedit' => "Jo kinne it befeiligingsnivo fan dizze side net feroarje, om't jo gjin rjochten hawwe om it te bewurkjen.", -'restriction-type' => 'Rjochten:', -'restriction-level' => 'Beheiningsnivo:', +'restriction-type' => 'Permisje:', +'restriction-level' => 'Skoattel nivo:', 'minimum-size' => 'Min. grutte', 'maximum-size' => 'Max. grutte:', 'pagesize' => '(bytes)', @@ -1343,17 +1324,14 @@ 'undelete' => 'Side werom set', 'undeletepage' => 'Side besjen en werom sette', 'viewdeletedpage' => 'Wiske siden besjen', -'undeletepagetext' => 'Dizze siden binne wiske, mar sitte noch yn it argyf en kinne weromset wurde. -(It argyf kin út en troch leechmeitsje wurde.)', +'undeletepagetext' => 'Dizze siden binne wiske, mar sitte noch yn it argyf en kinne weromset wurde. (It argyf kin út en troch leechmakke wurde.)', 'undelete-fieldset-title' => 'Ferzjes werom sette', 'undeleteextrahelp' => "Om in side hielendal werom te setten, lit alle seleksjefakjes iepen en klik '''''Weromsette'''''. Om in bepaalde ferzje werom te setten, klik de fakjes dy't mei de ferzjes oerienkomme, en klik '''''Weromsette'''''. Klik '''''Leechmeitsje''''' om it kommentaar fjild ensafuorthinne leech te meitsjen.", 'undeleterevisions' => '$1 {{PLURAL:$1|ferzje|ferzjes}} in it argyf', -'undeletehistory' => 'Soenen jo dizze side weromsette, dan wurde alle ferzjes weromset as part -fan de skiednis. As der in nije side is mei dizze namme, dan wurd de hjoeddeise ferzje <b>net</b> -troch de lêste ferzje út dy weromsette skiednis ferfangen.', +'undeletehistory' => 'Soenen jo dizze side weromsette, dan wurde alle ferzjes weromset as part fan de skiednis. As der in nije side is mei dizze namme, dan wurdt de hjoeddeiske ferzje <b>net</b> troch de lêste ferzje út dy weromsette skiednis ferfongen.', 'undelete-revision' => 'Wiske ferzje fan $1 (op $2) fan $3:', 'undelete-nodiff' => 'Gjin eardere ferzje fûn.', -'undeletebtn' => 'Weromset!', +'undeletebtn' => 'Weromsette', 'undeletelink' => 'werom sette', 'undeletereset' => 'Leechmeitsje', 'undeletecomment' => 'Utlis foar weromsetten:', @@ -1365,12 +1343,12 @@ 'undelete-no-results' => 'Gjin oerienkommende siden fûn yn it wisk argyf.', # Namespace form on various pages -'namespace' => 'Nammerûmte:', -'invert' => 'Omkearde seleksje', +'namespace' => 'Nammeromte:', +'invert' => 'Seleksje útsein', 'blanknamespace' => '(Haadnammerûmte)', # Contributions -'contributions' => 'Brûker bydragen', +'contributions' => 'Meidogger-bydragen', 'contributions-title' => 'Bydragen fan $1', 'mycontris' => 'Myn bydragen', 'contribsub2' => 'Foar "$1 ($2)"', @@ -1387,30 +1365,30 @@ 'sp-contributions-submit' => 'Sykje', # What links here -'whatlinkshere' => 'Wat is hjirmei keppele', -'whatlinkshere-title' => 'Siden dy\'t ferwize nei "$1"', +'whatlinkshere' => 'Wat is hjirmei keppele?', +'whatlinkshere-title' => 'Siden dy\'t keppele binne mei "$1"', 'whatlinkshere-page' => 'Side:', 'linkshere' => "Dizze siden binne keppele oan '''[[:$1]]''':", 'nolinkshere' => "Der binne gjin siden oan '''[[:$1]]''' keppele.", 'nolinkshere-ns' => "Gjin siden yn de keazen nammeromte keppelje nei '''[[:$1]]'''.", -'isredirect' => 'trochferwizing', -'istemplate' => 'ynfoege as sjabloan', +'isredirect' => 'synonym', +'istemplate' => 'opnaam', 'isimage' => 'byld keppeling', 'whatlinkshere-prev' => '{{PLURAL:$1|foargeande|foargeande $1}}', 'whatlinkshere-next' => '{{PLURAL:$1|folgjende|folgjende $1}}', -'whatlinkshere-links' => '← links dêrnei ta', +'whatlinkshere-links' => '← keppelings', 'whatlinkshere-hideredirs' => '$1 trochferwizings', 'whatlinkshere-hidetrans' => '$1 trânsklúzjes', 'whatlinkshere-hidelinks' => '$1 keppelings', # Block/unblock -'blockip' => 'Slút brûker út', +'blockip' => 'Slút meidogger út', 'blockip-legend' => 'Slút brûker út', -'blockiptext' => "Brûk dizze fjilden om in brûker fan skriuwtagong út te sluten. -Dit soe allinnich omwillens fan fandalisme dwaan wurde moatte, sa't de +'blockiptext' => "Brûk dizze fjilden om in meidogger fan skriuwtagong út te sluten. +Dat soe allinnich fanwege fandalisme dien wurde moatte, sa't de [[{{MediaWiki:Policy-url}}|útslut-rie]] it oanjout. -Meld de krekte reden! Begelyk, neam de siden dy't oantaaste waarden.", -'ipaddress' => 'Brûkernamme of Ynternet-adres', +Meld de krekte reden! Neam bygelyks de siden dy't oantaaste waarden.", +'ipaddress' => 'Meidochnamme of ynternet-adres', 'ipadressorusername' => 'IP Adres of meidoggernamme:', 'ipbexpiry' => 'Ferrint nei:', 'ipbreason' => 'Reden', @@ -1418,32 +1396,32 @@ 'ipbanononly' => 'Slút allinich anonyme meidoggers út', 'ipbcreateaccount' => 'Blokkearje it oanmeitsjen fan in nij profyl', 'ipbenableautoblock' => "Automatysk de lêste IP adressen útslute dy't troch dizze meidogger brûkt binne.", -'ipbsubmit' => 'Slut dizze brûker út', +'ipbsubmit' => 'Slút dizze meidogger út', 'ipbother' => 'In oare tiid:', 'ipboptions' => '15 minuten:15 min,1 oere:1 hour,2 oeren:2 hours,6 oeren:6 hours,12 oeren:12 hours,1 dei:1 day,3 dagen:3 days,1 wike:1 week,2 wiken:2 weeks,1 moanne:1 month,3 moanne:3 months,6 moanne:6 months,1 jier:1 year,ûnbeheind:infinite', # display1:time1,display2:time2,... 'ipbotheroption' => 'oare tiid', 'ipbotherreason' => 'Oare/eventuele reden:', -'badipaddress' => 'Dy brûker bestiet net', +'badipaddress' => 'Gjin jildige IP-adres', 'blockipsuccesssub' => 'Utsluting slagge', -'blockipsuccesstext' => 'Brûker [[Special:Contributions/$1|$1]] is útsletten.<br /> -(List fan [[Special:IPBlockList|útslette brûkers]].)', +'blockipsuccesstext' => 'Meidogger [[Special:Contributions/$1|$1]] is útsletten.<br /> +(List fan [[Special:IPBlockList|útslette meidoggers]].)', 'ipb-unblock-addr' => 'Lit $1 yn', 'ipb-unblock' => 'Lit in meidogger of IP-adres yn', 'ipb-blocklist-addr' => 'Besteande útsluting foar $1 besjen', 'ipb-blocklist' => 'Besteande útslutings besjen', -'unblockip' => 'Lit brûker der wer yn', -'unblockiptext' => 'Brûk dizze fjilden om in brûker wer skriuwtagong te jaan.', -'ipusubmit' => 'Lit dizze brûker der wer yn', -'ipblocklist' => 'List fan útsletten Ynternet-adressen en brûkersnammen', +'unblockip' => 'Lit meidogger wer ta', +'unblockiptext' => 'Brûk dizze fjilden om in meidogger wer skriuwtagong te jaan.', +'ipusubmit' => 'Lit dizze meidogger wer ta.', +'ipblocklist' => 'List fan útsletten ynternet-adressen en meidochnammen', 'ipblocklist-submit' => 'Sykje', 'blocklistline' => '"$3", troch "$2" op $1 ($4)', 'infiniteblock' => 'trochgeand', -'blocklink' => 'slut út', +'blocklink' => 'slút út', 'unblocklink' => 'lit yn', 'contribslink' => 'bydragen', 'autoblocker' => 'Jo wiene útsletten om\'t jo ynternet-adres oerienkomt mei dat fan "[[User:$1|$1]]". Foar it útsluten fan dy meidogger waard dizze reden jûn: "$2".', -'blocklogpage' => 'Blokkearlochboek', -'blocklogentry' => 'blokkearre "[[$1]]" foar de doer fan $2 $3', +'blocklogpage' => 'Utslútloch', +'blocklogentry' => '"[[$1]]" útsletten foar $2 $3', 'blocklogtext' => 'Dit is in loch fan it útsluten en talitten fan meidoggers. Fansels útsletten net-adressen binne net opnaam. Sjoch de [[Special:IPBlockList|útsletlist]] foar de no jildende utslettings.', 'ipb_expiry_invalid' => 'Tiid fan ferrinnen is net goed.', 'ipb_already_blocked' => '"$1" is al útsluten', @@ -1453,13 +1431,10 @@ # Developer tools 'lockdb' => "Meitsje de database 'Net-skriuwe'", 'unlockdb' => 'Meitsje de databank skriuwber', -'lockdbtext' => "Salang as de databank 'Net-skriuwe' is, -is foar brûkers it feroarjen fan siden, ynstellings, folchlisten, ensfh. net mooglik. -Befêstigje dat dit is wat jo wolle, en dat jo de databank wer skriuwber meitsje as -jo ûnderhâld ree is.", -'unlockdbtext' => 'As de databank skriuwber makke wurdt, -is foar brûkers it feroarjen fan siden, ynstelingen, folchlisten, ensfh, wer mooglik. -Befêstigje dat dit is wat jo wolle.', +'lockdbtext' => "Wylst de databank skoattele is, is foar meidoggers it feroarjen fan siden, ynstellings, folchlisten, ensfh. net mooglik. + +Befêstigje dat dit is sa't jo it hawwe wolle, en dat jo de databank wer frijjouwe as jo ûnderhâld ree is.", +'unlockdbtext' => 'As de databank frijjûn wurdt, is foar meidoggers it feroarjen fan siden, ynstellings, folchlisten ensfh. wer mooglik. Befêstigje dat dit is wat jo wolle.', 'lockconfirm' => "Ja, ik wol wier de databank 'Net--skriuwe' meitsje.", 'unlockconfirm' => 'Ja, ik wol wier de databank skriuwber meitsje.', 'lockbtn' => "Meitsje de database 'Net-skriuwe'", @@ -1491,21 +1466,18 @@ In dizze gefallen is it oan jo hoe't jo de oerlisside werneame of ynfoegje wolle.", 'movearticle' => 'Werneam side', 'newtitle' => 'As nij titel', -'move-watch' => 'Dizze side folgje', +'move-watch' => 'Folch dizze side', 'movepagebtn' => 'Werneam side', 'pagemovedsub' => 'Werneamen slagge', 'movepage-moved' => '<big>\'\'\'"$1" hjit no "$2"\'\'\'</big>', # The two titles are passed in plain text as $3 and $4 to allow additional goodies in the message. -'articleexists' => 'In side mei dy namme bestiet al of de sidenamme is ûnjildich. -Kies in oare sidenamme a.j.w.', -'talkexists' => "It werneamen op sich is slagge, mar de eardere oerlisside is -net mear keppele om't der foar de nije namme el al in oerlisside wie. -Gearfoegje de oerlissiden hânmjittig.", -'movedto' => 'werenamd as', -'movetalk' => 'Derby hearrende oerlisside ferskowe', +'articleexists' => "Der is al in side mei dy namme, of oars is de namme dy't jo oanjûn hawwe net tastien. Besykje it op 'e nij.", +'talkexists' => "It werneamen fan de side is slagge, mar de eardere oerlisside is net mear keppele om't der foar de side mei de nije namme al in oerlisside wie. Kopiearje de oerlisside fan de 'âlde' side mei de nije.", +'movedto' => 'werneamd as', +'movetalk' => 'Titel fan oerlisside ek feroarje, as dy der is.', 'movepage-page-moved' => 'De side $1 is werneamd nei $2.', -'1movedto2' => '[[$1]] ferskood nei [[$2]]', -'1movedto2_redir' => '[[$1]] ferskood nei [[$2]], wat in synonym wie', -'movelogpage' => 'Lochboek fan ferskode siden', +'1movedto2' => '[[$1]] feroare ta [[$2]]', +'1movedto2_redir' => '[[$1]] feroare ta [[$2]], wat in synonym wie', +'movelogpage' => 'Werneam-loch', 'movelogpagetext' => 'Dit is in list fan feroare titels.', 'movereason' => 'Reden:', 'revertmove' => 'werom sette', @@ -1527,14 +1499,14 @@ 'allmessages' => 'Alle wikiberjochten', 'allmessagesname' => 'Namme', 'allmessagesdefault' => 'Standerttekst', -'allmessagescurrent' => 'Tekst op it stuit', +'allmessagescurrent' => 'Tekst yn de nijste ferzje', 'allmessagestext' => 'Dit is in list fan alle systeemberjochten beskikber yn de MediaWiki-nammeromte. Sjoch: [http://www.mediawiki.org/wiki/Localisation MediaWiki Localisation], [http://translatewiki.net Betawiki].', 'allmessagesfilter' => 'Berjocht namme filter:', 'allmessagesmodified' => 'Allinne wizige berjochten', # Thumbnails -'thumbnail-more' => 'Grutter', +'thumbnail-more' => 'Fergrutsje', 'filemissing' => 'Triem net fûn', 'thumbnail_error' => 'Flater by it oanmeitsjen fan thumbnail: $1', @@ -1600,15 +1572,19 @@ 'tooltip-preview' => "Oerlêze foar't de side fêstlein is!", 'tooltip-diff' => "Sjen litte hokker feroarings jo yn'e tekst makke hawwe.", 'tooltip-compareselectedversions' => 'Sjoch de ferskillen tusken de twa keazen ferzjes fan dizze side.', -'tooltip-watch' => 'Foegje dizze side ta oan jo folchlist', +'tooltip-watch' => 'Foegje dizze side ta oan jo folchlist [alt-w]', +# Scripts +'common.js' => '/* Alles wat hjir oan JavaScript delset wurdt, wurdt foar alle brûkers laden foar eltse side! */', + # Attribution 'anonymous' => 'Anonime meidogger(s) fan {{SITENAME}}', 'siteuser' => '{{SITENAME}} meidogger $1', 'siteusers' => '{{SITENAME}} meidogger(s) $1', # Spam protection -'spamprotectiontext' => "De side dy't jo fêstlizze woene is blokkearre troch in spam filter. Dit wurdt wierskynlik feroarsake troch in ferwizing nei in ekstern webstee.", +'spamprotectiontext' => "De side dy't jo fêstlizze woene is blokkearre troch in spam filter. Dit wurdt wierskynlik feroarsake troch in ferwizing nei in ekstern webstee.", +'spamprotectionmatch' => 'De neikommende tekst hat it spam filter aktivearre: $1', # Info page 'infosubtitle' => 'Ynformaasje foar side', @@ -1631,8 +1607,8 @@ 'markedaspatrollederror-noautopatrol' => 'Jo meie jo eigen bewurkings net sels markearre.', # Browsing diffs -'previousdiff' => '← Foargeande feroaring', -'nextdiff' => 'Folgjende feroaring →', +'previousdiff' => '← Toan eardere ferskillen', +'nextdiff' => 'Neikommende ferskillen →', # Media information 'imagemaxsize' => 'Behein ôfmjittings fan ôfbyld op beskriuwingsside ta:', @@ -1645,7 +1621,7 @@ 'show-big-image-thumb' => '<small>Grutte fan dizze ôfbylding: $1 × $2 pixels</small>', # Special:NewImages -'newimages' => 'Nije ôfbyldings', +'newimages' => 'Nije ôfbylden', 'imagelisttext' => "Dit is in list fan '''$1''' {{PLURAL:$1|triem|triemen}}, op $2.", 'showhidebots' => '(Bots $1)', 'noimages' => 'Neat te sjen.', @@ -1709,14 +1685,14 @@ 'exif-subjectdistancerange-0' => 'Unbekend', # External editor support -'edit-externally' => 'Dizze triem bewurkje mei in ekstern programma', +'edit-externally' => 'Wizigje dizze triem mei in ekstern programma', 'edit-externally-help' => 'Sjoch de [http://www.mediawiki.org/wiki/Manual:External_editors ynstel-hantlieding] foar mear ynformaasje.', # 'all' in various places, this might be different for inflected languages 'recentchangesall' => 'alle', 'imagelistall' => 'alle', 'watchlistall2' => 'alles', -'namespacesall' => 'alle', +'namespacesall' => 'alles', 'monthsall' => 'alle', # E-mail address confirmation @@ -1732,18 +1708,18 @@ 'confirmemail_success' => 'Jo netpostadres is befêstige. Jo kinne jo no oanmelde en de wiki brûke.', 'confirmemail_loggedin' => 'Jo netpostadres is no befêstige.', 'confirmemail_error' => 'Der is wat skeefgongen by it fêstlizzen fan jo befêstiging.', -'confirmemail_subject' => '{{SITENAME}} netpostbefêstiging', -'confirmemail_body' => 'Immen, nei gedachten jo, hat dit netpostadres ($1) brûkt by de ynskriuwing as meidogger "$2" oan {{SITENAME}}. +'confirmemail_subject' => 'Netpost-befêstigingskoade foar {{SITENAME}}', +'confirmemail_body' => 'Immen, nei gedachten jo, hat him by {{SITENAME}} oanmelde as "$2", mei dit netpostadres ($1). -Jo wurdt frege de neikommende keppeling oer te nimmen yn jo blêder, ta it befêstigjen dat jo dy meidogger binne. Hjirtroch komme ek de netpostfunksjes fan {{SITENAME}} foar jo beskikber. At jo dit *net* west hawwe, brûk de keppeling dan net. +Hjirtroch komme ek de netpostfunksjes fan {{SITENAME}} foar jo beskikber. Iepenje de neikommende keppeling om te befêstigjen dat jo wier josels by {{SITENAME}} mei dit netpostadres oanmelde hawwe: $3 -annulearjen: +At jo dat *net* wienen, brûk dy keppeling dan net, en klik hjir: $5 -Dit berjocht jildt oant $4.', +Dizze befêstigingskoade ferrint dan op $4.', # Delete conflict 'confirmrecreate' => "Sûnt jo begûn binne dizze side te bewurkjen, hat meidogger [[User:$1|$1]] ([[User talk:$1|oerlis]]) de side wiske. De reden dy't derfoar jûn waard wie: @@ -1769,7 +1745,7 @@ 'watchlisttools-raw' => 'Rûge folchlist bewurkje', # Special:Version -'version' => 'Programmatuerferzje', # Not used as normal message but as header for the special page itself +'version' => 'Ferzje', # Not used as normal message but as header for the special page itself 'version-version' => 'Ferzje', 'version-license' => 'Lisinsje', 'version-software-product' => 'Produkt', Modified: branches/visual_diff/phase3/languages/messages/MessagesGrc.php =================================================================== --- branches/visual_diff/phase3/languages/messages/MessagesGrc.php 2008-08-17 23:32:07 UTC (rev 39562) +++ branches/visual_diff/phase3/languages/messages/MessagesGrc.php 2008-08-18 00:10:23 UTC (rev 39563) @@ -53,7 +53,7 @@ 'tog-previewontop' => 'Δεικνύναι τὸ προεπισκοπεῖν πρὸ τοῦ κυτίου μεταγραφῆς', 'tog-previewonfirst' => 'Τῆς πρώτης μεταγραφῆς, δεικνύναι τὸ προεπισκοπεῖν', 'tog-nocache' => 'Ἀπενεργοποιεῖν τὸ κρύπτειν τὰς δέλτους', -'tog-enotifwatchlistpages' => 'Ἄγγειλον μοι ὅτε μία δέλτος ἐν τῇ ἐφοροδιαλογή μου μεταβάλλεται', +'tog-enotifwatchlistpages' => 'Ἄγγειλον μοι ὅτε δέλτος τις ἐν τῇ ἐφοροδιαλογή μου μεταβάλλεται', 'tog-enotifusertalkpages' => 'Ἄγγειλον μοι ὅταν ἡ δέλτος ὁμιλίας χρήστου μου μεταβάλληται', 'tog-enotifminoredits' => 'Ἄγγειλόν μοι ἐπἴσης τὰς ἥττονας ἀλλαγὰς δέλτων', 'tog-enotifrevealaddr' => 'Ἀποκαλύπτειν τὴν ταχυδρομικὴν μου διεύθυνσιν ἐν τῇ εἰδοποιητηρίᾳ ἀλληλογραφίᾳ', @@ -65,7 +65,7 @@ 'tog-uselivepreview' => 'Χρῆσθαι ἄμεσον προθεώρησιν (JavaScript) (Πειραστικόν)', 'tog-forceeditsummary' => 'Προμήνυσόν με εἰ εἰσάγω κενὴ περίληψιν μεταγραφῆς', 'tog-watchlisthideown' => 'Οὐ δηλοῦν τὰς ἐμὰς μεταβολὴς ἐν τὰ ἐφορώμενά μου', -'tog-watchlisthidebots' => 'Ἀποκρύπτειν τὰς αὐτόματας μεταγραφὰς ἐκ τῆς ἐφοροδιαλογῆς', +'tog-watchlisthidebots' => 'Ἀποκρύπτειν τὰς αὐτόματους μεταγραφὰς ἐκ τῆς ἐφοροδιαλογῆς', 'tog-watchlisthideminor' => 'Οὐ δηλοῦν τὰς μικρὰς μεταβολὰς ἐν τὰ ἐφορώμενά μου', 'tog-ccmeonemails' => "Στεῖλον μοι ἀντίγραφα τῶν ἠλ.-ἐπιστολῶν τῶν ἀπεσταλμένων ὑπ'ἐμοῦ πρὸς ἑτέρους χρήστας", 'tog-diffonly' => 'Οὐκ ἐμφανίζειν τὸ τῆς δέλτου περιεχόμενον ὑπὸ τῶν διαφορῶν', @@ -204,7 +204,7 @@ 'talkpagelinktext' => 'Διαλέγεσθαι', 'specialpage' => 'Εἰδικὴ δέλτος', 'personaltools' => 'Ἴδια ἐργαλεῖα', -'postcomment' => 'Ἀποστέλειν ἓν σχόλιον', +'postcomment' => 'Ἀποστελεῖν σχόλιόν τι', 'articlepage' => 'Χρήματος δέλτον ὁρᾶν', 'talk' => 'Διάλεξις', 'views' => 'Ποσάκις ἔσκεπται', @@ -301,9 +301,9 @@ # General errors 'error' => 'Σφάλμα', 'databaseerror' => 'Σφάλμα βάσεως δεδομένων', -'dberrortext' => 'Ἓν σφάλμα συντάξεως τῆς πεύσεως βάσεως δεδομένων ἀπήντησεν, -ὅπερ ὑποδηλοῖ τὴν ὕπαρξιν μίας πλάνης ἐν τῷ λογισμικῷ. -Ἡ ἔσχατη ἀποπειραθεῖσα πεῦσις βάσεως δεδομένων ἦν: +'dberrortext' => 'Σφάλμα τι συντάξεως τῆς πεύσεως βάσεως δεδομένων ἀπήντησεν, +ὅπερ ὑποδηλοῖ τὴν ὕπαρξιν πλάνης τινὸς ἐν τῷ λογισμικῷ. +Ἡ ἐσχάτη ἀποπειραθεῖσα πεῦσις βάσεως δεδομένων ἦν: <blockquote><tt>$1</tt></blockquote> ἐξ ἐντὸς τῆς τελέσεως "<tt>$2</tt>". Ἡ MySQL ἐπέστρεψεν σφάλμα "<tt>$3: $4</tt>".', @@ -383,7 +383,7 @@ Μὴ ἐνεργὰ τὰ πύσματα διέταξας. Ἐνεργὰ ποιήσας αὐτὰ πείρασον πάλιν.', 'noname' => 'Οὐ καθὠρισας ἔγκυρόν τι ὄνομα χρωμένου.', -'loginsuccesstitle' => 'Καλῶς συνδέδεσαι', +'loginsuccesstitle' => 'Ἐπιτυχὼς συνεδέθης', 'loginsuccess' => "'''συνδέδεσαι ἤδη τῷ {{SITENAME}} ὡς \"\$1\".'''", 'nosuchuser' => 'Οὐκ ἐστὶ χρώμενος "$1" ὀνομαστί. Σκόπει τὴν τῶν γραμμάτων ἀκρίβειαν ἢ λογισμὸν νέον ποίει.', @@ -399,7 +399,7 @@ 'passwordremindertitle' => 'Νέον ἐφήμερον σύνθημα διὰ {{SITENAME}}', 'passwordremindertext' => "Τίς (πιθανὼς σύ, ἔχων τὴν IP-διευθύνσιν \$1) ἐζήτησεν τὴν πρὸς σέ ἀποστολὴν νέου συνθήματος διὰ τὸν ἱστότοπον {{SITENAME}} (\$4). Τὸ σύνθημα διὰ τὸν χρήστην \"\$2\" ἐν τῷ παρόντι \"\$3\" ἐστίν. Δεῖ σοι ''νῦν'' συνδεῖσθαι τε καὶ ἀλλάττειν τὸ σύνθημά σου. -Εἰ τὶς ''ἕτερος'' τὴν αἴτησιν ταύτην ὑπέβαλεν ἢ εἰ οὐκ ἀμνηστεῖς τοῦ συνθήματός σου καὶ ''οὐκ'' ἐπιθυμεῖς τὴν ἀλλαγὴν οὗ, δύνασαι ἀγνοῆσαι ταῦτο τὸ μήνυμα καὶ διατηρῆσαι τὸ παλαιὸν σύνθημά σου.", +Εἰ τὶς ''ἕτερος'' τήνδε τὴν αἴτησιν ὑπέβαλεν ἢ εἰ οὐκ ἀμνηστεῖς τοῦ συνθήματός σου καὶ ''οὐκ'' ἐπιθυμεῖς τὴν ἀλλαγὴν οὗ, δύνασαι ἀγνοῆσαι τόδε τὸ μήνυμα καὶ διατηρῆσαι τὸ παλαιὸν σύνθημά σου.", 'noemail' => 'Οὐδεμία ἠλεκτρονικὴ διεύθυνσις ἐγγεγραμμένη διὰ τὸν χρώμενον "$1".', 'passwordsent' => 'Νέον τι σύνθημα πρὸς τὴν τοῦ χρωμένου "$1" ὀνομαστὶ ἠλεκτρονικὴ διεύθυνσιν προσπέπεπται. Τοῦτο δεχόμενος αὖθις συνδεῖσθαι.', @@ -464,7 +464,7 @@ * Ἡ φραγὴ προορίζεται διὰ τὸν χρήστην: $7 Ἀποτάθητι εἰς τὸν/τὴν $1 ἢ ὅντινα ἕτερον [[{{MediaWiki:Grouppage-sysop}}|γέροντα]] διὰ τὸ διαλέγεσθαι περὶ τῆς φραγῆς. -Οὐ δύνασαι χρῆσθαι τὴν δυνατότηταν «αποστολῆς ἠλεκτρονικῆς ἐπιστολῆς τῷδε χρήστη» εἰ οὐχ ὁρίσεις μίαν ἔγκυρον ἠλεκτρονικὴν διεύθυνσιν ἐν ταῖς [[Special:Preferences|προκρίσεσί]] σου. +Οὐ δύνασαι χρῆσθαι τὴν δυνατότητα «αποστολῆς ἠλεκτρονικῆς ἐπιστολῆς τῷδε χρήστη» εἰ οὐχ ὁρίσεις ἔγκυρόν τινα ἠλεκτρονικὴν διεύθυνσιν ἐν ταῖς [[Special:Preferences|προκρίσεσί]] σου. Ἡ τρέχουσα IP-διεύθυνσις σου $3 ἐστίν, καὶ ἡ ἀναγνώρισις τῆς φραγῆς #$5 ἐστίν. Παρακαλοῦμεν σε περιλαμβάνειν οἱανδήποτε ἐξ αὐτῶν ἢ καὶ ἀμφοτέρας ἐν ταῖς ἐρωτήσεσί σου.", 'autoblockedtext' => "Ἡ IP-διεύθυνσις σου ἐφράγη αὐτομάτως ἐπεὶ κεχρησμένη ἦν ὑπὸ ἑτέρου τινὸς χρήστου, ὅπερ ἀποκεκλεισμένος ἐστὶν ἐκ τοῦ/τῆς $1. @@ -487,10 +487,12 @@ 'blockedoriginalsource' => "Ἡ πηγὴ τοῦ '''$1''' δείκνυται κατωτέρω:", 'whitelistedittitle' => 'Ἀπαιτούμενον τὸ συνδεῖσθαι πρὸ τοῦ μεταγράψειν', 'whitelistedittext' => 'Ἀπαιτούμενον τὸ $1 πρὸ τοῦ μεταγράψειν δέλτους.', +'confirmedittitle' => 'Ἐπιβεβαίωσις ἠλ-διευθύνσεως ἀπαραίτητος πρὸ τοῦ μεταγράψειν', 'nosuchsectiontitle' => 'Οὐδὲν τοιοῦτον τμῆμα', 'loginreqtitle' => 'Δεῖ σοι συνδεῖσθαι', 'loginreqlink' => 'συνδεῖσθαι', 'accmailtitle' => 'Σύνθημα ἀπεστάλη.', +'accmailtext' => 'Τὸ σύνθημα διὰ τὸν/τὴν "$1" ἐστάλη τῷ $2.', 'newarticle' => '(νέα)', 'newarticletext' => "Ἀκολούθησας σύνδεμόν τινα πρὸς δέλτον εἰσέτι μὴ ὑπαρκτήν. Δύνασαι δημιουργῆσαι τὴν δέλτον, τυπῶν ἐν τῷ κυτίῳ κατωτέρω (ἰδὲ [[{{MediaWiki:Helppage}}|δέλτος βοηθείας]] διά πλείονας πληροφορίας). @@ -507,7 +509,7 @@ 'yourtext' => 'Τὰ ὑπὸ ἐσοῦ γραφόμενα', 'storedversion' => 'Τεταμιευμένη ἔκδοσις', 'yourdiff' => 'Τὰ διαφέροντα', -'copyrightwarning' => 'Ὅλαι αἱ συμβολαὶ εἰς τὸν {{SITENAME}} θεωροῦνται ὡς σύμφωναι πρὸς τὴν $2 (βλ. $1 διὰ τὰς ἀκριβεῖας). +'copyrightwarning' => 'Ἅπασαι αἱ συμβολαὶ εἰς τὸν {{SITENAME}} θεωροῦνται ὡς σύμφωναι πρὸς τὴν $2 (βλ. $1 διὰ τὰς ἀκριβεῖας). Εἰ οὐκ ἐπιθυμεῖτε τὰ ὑμέτερα κείμενα μεταγράψιμα καὶ διαδόσιμα εἰσὶν ὑπὸ ἄλλων χρωμένων, κατὰ τὴν βούλησίν των, παρακαλοῦμεν ὑμᾶς ἵνα μὴ αὐτὰ ἀναρτῆτε ἐν τούτῳ χώρῳ. Ὅ,τι συνεισφέρετε ἐνθάδε (κείμενα, διαγράμματα, στοιχεῖα ἢ εἰκόνας) δεῖ εἶναι ὑμέτερον ἔργον, ἢ ἀνῆκον τῷ δημοσίῳ τομεῖ, ἢ προερχόμενον ἐξ ἐλευθέρων ἢ ἀνοικτῶν πηγῶν μετὰ ῥητῆς ἀδείας ἀναδημοσιεύσεως. <br /> Βεβαιοῦτε ἡμᾶς περὶ τῆς πρωτοτυπίας ὅτου ἔργου γραφομένου ὑφ’ ὑμᾶς ἐνθάδε. Βεβαιοῦτε ἡμᾶς ἐπἴσης περὶ τῆς μὴ ἐκχωρήσεως αὐτοῦ εἰς ἀλλοτρίους πρὸς ὑμᾶς τοῦ δικαιώματος δημοσιεύσεως καὶ ὀνήσεως του, ἥντινα ἔκτασιν αὐτὸν ἔχει. @@ -567,14 +569,14 @@ 'rev-delundel' => 'δεικνύναι/κρύπτειν', 'revisiondelete' => 'Διαγράφειν/ἐκδιαγράφειν ἀναθεωρήσεις', 'revdelete-nooldid-title' => 'Ἄκυρος ἀναθεώρησις-στόχος', -'revdelete-legend' => 'Θέτειν περιορισμοῦς ὀρατότητος', +'revdelete-legend' => 'Θέτειν περιορισμοῦς ὁρατότητος', 'revdelete-hide-text' => 'Κρύπτειν κείμενον ἀναθεωρήσεως', 'revdelete-hide-name' => 'Κρύπτειν δρᾶσιν τε καὶ στόχον', 'revdelete-hide-comment' => 'Κρύπτειν σχόλιον μεταγραφῆς', 'revdelete-hide-user' => 'Κρύπτειν μεταγραφέως ὄνομα/IP-διεύθυνσιν', 'revdelete-hide-image' => 'Κρύπτειν περιεχόμενον ἀρχείου', 'revdelete-log' => 'Σχόλιον καταλόγου:', -'revdel-restore' => 'Ἀλλάττειν ὀρατότητα', +'revdel-restore' => 'Ἀλλάττειν ὁρατότητα', 'pagehist' => 'Ἱστορία δέλτου', 'deletedhist' => 'Ἱστορία διεγραμμένη', 'revdelete-content' => 'περιεχόμενον', @@ -592,7 +594,7 @@ 'mergehistory-from' => 'Δέλτος πηγῶν:', 'mergehistory-into' => 'Δέλτος προορισμοῦ:', 'mergehistory-list' => 'Συγχωνεύσιμος ἱστορία μεταγραφῶν', -'mergehistory-go' => 'Δεικνύειν συγχωνεύσιμας μεταγραφάς', +'mergehistory-go' => 'Δεικνύναι συγχωνεύσιμους μεταγραφάς', 'mergehistory-submit' => 'Συγχωνεύειν ἀναθεωρήσεις', # Merge log @@ -679,6 +681,7 @@ 'localtime' => 'Τοπικὴ ὥρα', 'timezoneoffset' => 'Ἐκτόπισμα¹', 'servertime' => 'Ὥρα ἐξυπηρετικῆς ὑπολογιστικῆς μηχανῆς', +'guesstimezone' => 'Συμπλήρωσις μέσῳ τοῦ πλοηγοῦ', 'prefs-searchoptions' => 'Ἐπιλογαὶ ζητήσεως', 'prefs-namespaces' => 'Ὄνοματικὸς χῶρος', 'defaultns' => 'Ἀναζήτησις ἐν τοῖσδε ὀνοματικοῖς χώροις κατὰ προεπιλογήν:', @@ -714,15 +717,17 @@ 'grouppage-bureaucrat' => '{{ns:project}}:Ἔφοροι', # Rights -'right-read' => 'Ἀναγιγνώσκειν δέλτους', -'right-edit' => 'Μεταγράφειν δέλτους', -'right-createtalk' => 'Ποεῖν δέλτους διαλέξεως', -'right-move' => 'Μετακινεῖν δέλτους', -'right-upload' => 'Ἐπιφορτίζειν ἀρχεῖα', -'right-delete' => 'Δέλτους σβεννύναι', -'right-undelete' => 'Δέλτον ἐπαναφέρειν', -'right-patrol' => 'Σημαίνειν τὰς μεταγραφὰς ἑτέρων ὡς φρουρουμένας', -'right-trackback' => 'Ὀνασύνδεσμον ὑποβάλλειν', +'right-read' => 'Ἀναγιγνώσκειν δέλτους', +'right-edit' => 'Μεταγράφειν δέλτους', +'right-createtalk' => 'Ποεῖν δέλτους διαλέξεως', +'right-move' => 'Μετακινεῖν δέλτους', +'right-upload' => 'Ἐπιφορτίζειν ἀρχεῖα', +'right-delete' => 'Δέλτους σβεννύναι', +'right-browsearchive' => 'Ζητεῖν διεγραμμένας δέλτους', +'right-undelete' => 'Δέλτον ἐπαναφέρειν', +'right-suppressionlog' => 'Ὁρᾶν ἰδιωτικοὺς καταλόγους', +'right-patrol' => 'Σημαίνειν τὰς μεταγραφὰς ἑτέρων ὡς φρουρουμένας', +'right-trackback' => 'Ὀνασύνδεσμον ὑποβάλλειν', # User rights log 'rightslog' => 'Κατάλογος δικαιωμάτων χρωμένων', @@ -732,9 +737,9 @@ 'nchanges' => '$1 {{PLURAL:$1|μεταβολή|μεταβολαί}}', 'recentchanges' => 'Αἱ νέαι μεταβολαί', 'recentchanges-feed-description' => 'Παρακολουθεῖν τὰς πλείω πρόσφατας ἀλλαγὰς τοῦ οὐίκι ἐν ταύτῃ περιλήψει.', -'rcnote' => "Κατωτέρω εἰσὶ {{PLURAL:$1|'''1''' ἀλλαγὴ|αἱ τελευταίαι '''$1''' ἀλλαγαὶ}} ἐν {{PLURAL:$2|τῇ τελευταίᾳ ἡμέρᾳ|ταῖς τελευταίαις '''$2''' ἡμέραις}}, ὡς καὶ $5, $4.", +'rcnote' => "Κατωτέρω {{PLURAL:$1|ἐστὶ '''1''' ἀλλαγὴ|εἰσὶν αἱ τελευταίαι '''$1''' ἀλλαγαὶ}} ἐν {{PLURAL:$2|τῇ τελευταίᾳ ἡμέρᾳ|ταῖς τελευταίαις '''$2''' ἡμέραις}}, ὡς καὶ $5, $4.", 'rcnotefrom' => "Ἰδοῦ αἱ ἀλλαγαὶ ἐκ τοῦ '''$2''' (ἕως τὸ '''$1''').", -'rclistfrom' => 'Δεικνύειν νέας ἀλλαγάς. Ἐκκίνησις ἐκ τοῦ $1', +'rclistfrom' => 'Δεικνύναι νέας ἀλλαγάς. Ἐκκίνησις ἐκ τοῦ $1', 'rcshowhideminor' => '$1 μικραὶ μεταβολαὶ', 'rcshowhidebots' => '$1 αὐτόματα', 'rcshowhideliu' => '$1 χρωμένους συνδεδεμένους', @@ -790,8 +795,9 @@ 'upload-file-error' => 'Ἐσώτερον σφάλμα', 'upload-misc-error' => 'Ἄγνωτον σφάλμα ἐπιφορτώσεως', -'license' => 'Ἀδειηδότησις:', -'nolicense' => 'Οὐδὲν ἐπιλελεγμένον', +'license' => 'Ἀδειηδότησις:', +'nolicense' => 'Οὐδὲν ἐπιλελεγμένον', +'license-nopreview' => '(Προθεὠρησις μὴ διαθέσιμος)', # Special:ImageList 'imagelist-summary' => 'Ἡδε εἰδικὴ δέλτος δεικνύει ὅλα τὰ ἐπιπεφορτισμένα αρχεῖα. @@ -808,7 +814,7 @@ # Image description page 'filehist' => 'Τοῦ ἀρχείου συγγραφή', -'filehist-help' => 'Πατήσατε ἐπὶ μίας χρονολογίας/ὥρας ἵνα ἴδητε τὸ ἀρχεῖον ὡς ἐμφανισθὲν ἐν ᾗπερ ὥρᾳ ᾗ.', +'filehist-help' => 'Πατήσατε ἐπὶ χρονολογίας/ὥρας τινὸς ἵνα ἴδητε τὸ ἀρχεῖον ὡς ἐμφανισθὲν ἐν ᾗπερ ὥρᾳ ᾗ.', 'filehist-deleteall' => 'διαγράφειν ὅλα', 'filehist-deleteone' => 'διαγράφειν', 'filehist-revert' => 'ἀναστρέφειν', @@ -821,13 +827,14 @@ 'imagelinks' => 'Σύνδεσμοι', 'linkstoimage' => 'Αἱ ἀκόλουθοι/Ἡ ἀκόλουθος {{PLURAL:$1|δέλτοι σύνδεσμοι|$1 δέλτος σύνδεσμος}} πρὸς ταύτην εἰκόναν {{PLURAL:$1|εἰσίν|$1 ἐστίν}}.', 'nolinkstoimage' => 'Οὐδένα ἐστὶ προσάγον τόδε τὸ φορτίον.', -'sharedupload' => 'Τὸ ἀρχεῖον ταῦτο ἐπεφορτίσθη πρὸς κοινὴν χρῆσιν καὶ δύνασθε χρῆσθαι αὐτὸ εἰς ἕτερα σχέδια καὶ δέλτους ἐξἴσου.', +'morelinkstoimage' => 'Ὁρᾶν [[Special:WhatLinksHere/$1|πλείονας συνδέσμους]] πρὸς τήνδε τὴν δέλτον.', +'sharedupload' => 'Τόδε τὸ ἀρχεῖον ἐπεφορτίσθη πρὸς κοινὴν χρῆσιν καὶ δύνασαι χρῆσθαι αὐτὸ εἰς ἕτερα σχέδια καὶ δέλτους ἐξἴσου.', 'shareduploadduplicate' => 'Τόδε τὸ ἀρχεῖον διπλότυπον ἐστὶ τοῦ $1 ἐκ κοινῆς ἀποθήκης.', 'shareduploadduplicate-linktext' => 'ἕτερον ἀρχεῖον', 'shareduploadconflict-linktext' => 'ἕτερον ἀρχεῖον', 'noimage' => 'Οὐδένα ἐστὶ οὕτως ὀνομαστί, ἔξεστι σοὶ $1.', 'noimage-linktext' => 'Ἐντιθέναι', -'uploadnewversion-linktext' => 'Ἐπιφορτίζειν μίαν νέαν ἐκδοχὴν ταύτου τοῦ ἀρχείου', +'uploadnewversion-linktext' => 'Ἐπιφορτίζειν νέαν ἐκδοσίν τινα τοῦδε τοῦ ἀρχείου', 'imagepage-searchdupe' => 'Ζητεῖν διπλότυπα ἀρχεῖα', # File reversion @@ -839,6 +846,7 @@ # File deletion 'filedelete' => 'Διαγράφειν $1', 'filedelete-legend' => 'Διαγράφειν ἀρχεῖον', +'filedelete-comment' => 'Αἰτία διαγραφῆς:', 'filedelete-submit' => 'Διαγράφειν', 'filedelete-reason-otherlist' => 'Ἑτέρα αἰτία', 'filedelete-reason-dropdown' => '*Κοιναὶ αἰτίαι διαγραφῆς @@ -850,6 +858,9 @@ 'mimetype' => 'τύπος MIME:', 'download' => 'καταφορτίζειν', +# Unwatched pages +'unwatchedpages' => 'Μὴ ἐφορωμέναι δέλτοι', + # List redirects 'listredirects' => 'Κατάλογος ἀναδιευθύνσεων', @@ -865,13 +876,15 @@ # Statistics 'statistics' => 'Τὰ περὶ τῶν δεδομένων', +'sitestats' => 'Στατιστικὰ τοῦ {{SITENAME}}', 'userstats' => 'Χρωμένου στατιστικά', 'statistics-mostpopular' => 'Αἱ πλέον θεωρουμέναι δέλτοι', 'disambiguations' => 'Αἱ τινὰ ἱστάναι εἰς τὸ ἀναμφισβήτητον δέλτοι', 'disambiguationspage' => 'Template:ἐκσαφήνισις', -'doubleredirects' => 'Ἀναδιευθύνσεις διπλότυπαι', +'doubleredirects' => 'Ἀναδιευθύνσεις διπλότυπαι', +'double-redirect-fixer' => 'Διορθωτὴς ἀναδιευθύνσεων', 'brokenredirects' => 'Ἀναδιευθύνσεις οὐκέτι προὔργου οὖσαι', 'brokenredirects-edit' => '(μεταγράφειν)', @@ -935,32 +948,42 @@ 'log-search-submit' => 'Ἰέναι', # Special:AllPages -'allpages' => 'Πᾶσαι αἱ δέλτοι', -'alphaindexline' => '$1 ἕως $2', -'nextpage' => 'Ἡ δέλτος ἡ ἐχομένη ($1)', -'prevpage' => 'Ἡ δέλτος ἡ προτέρη ($1)', -'allpagesfrom' => 'Ἐπιδεικνύειν τὰς δέλτους ἐκ:', -'allarticles' => 'Ἅπασαι αἱ ἐγγραφαί', -'allpagesprev' => 'Προηγούμενον', -'allpagesnext' => 'Ἐπόμενον', -'allpagessubmit' => 'Ἰέναι', -'allpagesprefix' => 'Ἐπιδεικνύειν δέλτους ἔχουσας πρόθεμα:', +'allpages' => 'Πᾶσαι αἱ δέλτοι', +'alphaindexline' => '$1 ἕως $2', +'nextpage' => 'Ἡ δέλτος ἡ ἐχομένη ($1)', +'prevpage' => 'Ἡ δέλτος ἡ προτέρη ($1)', +'allpagesfrom' => 'Ἐπιδεικνύναι τὰς δέλτους ἐκ:', +'allarticles' => 'Ἅπασαι αἱ ἐγγραφαί', +'allinnamespace' => 'Ἅπασαι αἱ δέλτοι (ἐν τῷ ὀνοματείῳ $1)', +'allnotinnamespace' => 'Ἅπασαι αἱ δέλτοι (οὐκ ἐν τῷ ὀνοματείῳ $1)', +'allpagesprev' => 'Προηγούμενον', +'allpagesnext' => 'Ἐπόμενον', +'allpagessubmit' => 'Ἰέναι', +'allpagesprefix' => 'Ἐπιδεικνύναι δέλτους ἔχουσας πρόθεμα:', +'allpages-bad-ns' => 'Τὸ {{SITENAME}} οὐκ ἔχει ὀνοματεῖον "$1".', # Special:Categories -'categories' => 'Κατηγορίαι', +'categories' => 'Κατηγορίαι', +'special-categories-sort-count' => 'ἀπαριθμητικὴ ταξινόμησις', +'special-categories-sort-abc' => 'ἀλφαβητικὴ ταξινόμησις', # Special:ListUsers -'listusers-submit' => 'Ἐμφανίζειν', +'listusers-submit' => 'Ἐμφανίζειν', +'listusers-noresult' => 'Οὐδεὶς χρώμενος εὑρεθείς.', # Special:ListGroupRights -'listgrouprights' => 'Δικαιώματα ὁμάδος χρωμένου', -'listgrouprights-group' => 'Ὁμάς', -'listgrouprights-rights' => 'Δικαιώματα', +'listgrouprights' => 'Δικαιώματα ὁμάδος χρωμένου', +'listgrouprights-group' => 'Ὁμάς', +'listgrouprights-rights' => 'Δικαιώματα', +'listgrouprights-helppage' => 'Help:Δικαιώματα ὁμάδων', +'listgrouprights-members' => '(διαλογὴ μελῶν)', # E-mail user +'mailnologin' => 'Οὐδεμία διεύθυνσις παραλήπτου', 'emailuser' => 'Ἠλεκτρονικὴν ἐπιστολὴν τῷδε τῷ χρήστῃ πέμπειν', 'emailpage' => 'Χρώμενος ἠλ.-ταχυδρομείου', 'defemailsubject' => '{{SITENAME}} ἠλ.-ταχυδρομεῖον', +'noemailtitle' => 'Οὐδεμία ἠλ-διεύθυνσις', 'emailfrom' => 'Ἐκ', 'emailto' => 'Πρός', 'emailsubject' => 'Θέμα', @@ -985,7 +1008,7 @@ 'notanarticle' => 'Μὴ δέλτος χρήματος', 'watchlist-details' => '{{PLURAL:$1|$1 δέλτος|$1 δέλτοι}} ἐφορωμέναι, ἄνευ τῶν δέλτων διαλέξεως περιλαμβανομένων.', 'wlshowlast' => 'Ἐμφάνισις τῶν τελευταίων $1 ὡρῶν $2 ἡμερῶν $3', -'watchlist-show-bots' => 'Δεικνύειν τὰς μεταγραφὰς τῶν αὐτομάτων', +'watchlist-show-bots' => 'Δεικνύναι τὰς μεταγραφὰς τῶν αὐτομάτων', 'watchlist-hide-bots' => 'Κρύπτειν τὰς ὑπ᾿ αὐτομάτων μεταβολάς', 'watchlist-show-own' => 'Δεικνύναι τοὺς ἐράνους μου', 'watchlist-hide-own' => 'Κρύπτειν τὰς ὑπ᾿ ἐμοῦ μεταβολάς', @@ -1062,6 +1085,8 @@ 'restriction-level-all' => 'οἵα δήποτε κλῖμαξ περιορισμοῦ', # Undelete +'undelete' => 'Ὁρᾶν τὰς διεγραμμένας δέλτους', +'undeletepage' => 'Ὁρᾶν καὶ ἀποκαθιστᾶν τὰς διεγραμμένας δέλτους', 'viewdeletedpage' => 'Δεικνύναι διαγραφείσας δέλτους', 'undeletebtn' => 'Ἀνορθοῦν', 'undeletelink' => 'ἐπανίσταναι', @@ -1069,6 +1094,7 @@ 'undeletecomment' => 'Σχόλιον:', 'undeletedarticle' => 'ἐπανιστάν "[[$1]]"', 'undelete-search-submit' => 'Ζητεῖν', +'undelete-error-short' => 'Σφαλματικὸν τὸ διαγράφειν τὸ ἀρχεῖον: $1', # Namespace form on various pages 'namespace' => 'Ὀνοματεῖον:', @@ -1084,10 +1110,12 @@ 'month' => 'Μήν:', 'year' => 'Ἔτος:', -'sp-contributions-newbies-sub' => 'Ἔρανοι νέων χρωμένων', -'sp-contributions-blocklog' => 'Τὰ ἀποκλῄειν', -'sp-contributions-username' => 'IP-διεύθυνσις ἢ ὄνομα χρωμένου:', -'sp-contributions-submit' => 'Ζητεῖν', +'sp-contributions-newbies' => 'Δεικνύναι ἐράνους νέων λογισμῶν μόνον', +'sp-contributions-newbies-sub' => 'Ἔρανοι νέων χρωμένων', +'sp-contributions-newbies-title' => 'Ἔρανοι χρωμένου διὰ νέους λογισμούς', +'sp-contributions-blocklog' => 'Τὰ ἀποκλῄειν', +'sp-contributions-username' => 'IP-διεύθυνσις ἢ ὄνομα χρωμένου:', +'sp-contributions-submit' => 'Ζητεῖν', # What links here 'whatlinkshere' => 'Τὰ ἐνθάδε ἄγοντα', @@ -1114,13 +1142,20 @@ 'ipbexpiry' => 'Λῆξις:', 'ipbreason' => 'Αἰτία:', 'ipbreasonotherlist' => 'Ἑτέρα αἰτία', -'ipboptions' => 'βʹ ὥραι:2 hours,αʹ ἡμέρα day:1 day,γʹ ἡμέραι:3 days,ζʹ ἡμέραι:1 week,ιδʹ ἡμέραι:2 weeks,αʹ μήν:1 month,γʹ μήνες:3 months,ϝʹ μήνες:6 months,αʹ ἔτος:1 year,ἄπειρον:infinite', # display1:time1,display2:time2,... +'ipbsubmit' => 'Φράττειν τόνδε τὸν χρώμενον', +'ipbother' => 'Ἄλλη ὥρα:', +'ipboptions' => '2 ὥραι:2 hours,1 ἡμέρα:1 day,3 ἡμέραι:3 days,1 ἑβδομάς:1 week,2 ἑβδομάδες:2 weeks,1 μήν:1 month,3 μῆνες:3 months,6 μῆνες:6 months,1 ἔτος:1 year,ἐπἄπειρον:infinite', # display1:time1,display2:time2,... 'ipbotheroption' => 'ἄλλη', 'ipbotherreason' => 'Πρόσθετος/ἄλλη αἰτία:', +'blockipsuccesssub' => 'Φραγὴ ἐπιτευχθεῖσα', +'ipb-unblock-addr' => 'Ἐκφράττειν $1', +'ipb-blocklist-addr' => 'Ὁρᾶν τὰς ὑπάρχουσας φραγὰς διὰ $1', +'ipb-blocklist' => 'Ὁρᾶν τὰς ὑπάρχουσας φραγὰς', 'unblockip' => 'Ἐκφράττειν χρώμενον', 'ipblocklist' => 'Πεφραγμέναι IP-διευθύνσεις καὶ ὀνόματα τῶν χρωμένων', 'ipblocklist-submit' => 'Ζητεῖν', 'infiniteblock' => 'ἄπειρον', +'expiringblock' => 'λῆξαν $1', 'anononlyblock' => 'ἀνωνύμους μόνον', 'emailblock' => 'ἠλεκτρονικὸν ταχυδρομεῖον πεφραγμένον', 'blocklink' => 'ἀπόκλῃσις', @@ -1131,10 +1166,11 @@ 'proxyblocksuccess' => 'Γενομένη.', # Developer tools -'lockdb' => 'Φράττειν βάσιν δεδομένων', -'unlockdb' => 'Ἐκφράττειν βάσιν δεδομένων', -'lockbtn' => 'Φράττειν βάσιν δεδομένων', -'unlockbtn' => 'Ἐκφράττειν βάσιν δεδομένων', +'lockdb' => 'Φράττειν βάσιν δεδομένων', +'unlockdb' => 'Ἐκφράττειν βάσιν δεδομένων', +'lockbtn' => 'Φράττειν βάσιν δεδομένων', +'unlockbtn' => 'Ἐκφράττειν βάσιν δεδομένων', +'databasenotlocked' => 'Ἡ βάσις δεδομένων οὔκ ἐστιν κεκλῃσμένη.', # Move page 'move-page' => 'Κινεῖν $1', @@ -1170,8 +1206,10 @@ 'movelogpage' => 'Τὰ κινεῖν', 'movereason' => 'Ἀπολογία:', 'revertmove' => 'Ἐπανέρχεσθαι', +'delete_and_move' => 'Διαγράφειν καὶ κινεῖν', 'delete_and_move_text' => '==Διαγραφὴ ἀπαραίτητος== Ἡ ἐγγραφὴ [[:$1]] ὑπάρχει ἤδη. Βούλῃ διαγράψειν τήνδε ἵνα ἐκτελέσηται ἡ μετακίνησις;', +'imageinvalidfilename' => 'Τὸ ὄνομα ἀρχείου - στόχος ἄκυρον ἐστίν', # Export 'export' => 'Δέλτους ἐξάγειν', @@ -1214,7 +1252,7 @@ 'tooltip-pt-anonlogin' => 'Ἐνθαρρυντέον τὸ συνδεῖσθαι, οὐκ ὑποχρεωτικόν.', 'tooltip-pt-logout' => 'Ἐξέρχεσθαι', 'tooltip-ca-talk' => 'Διάλεκτος περὶ τῆς δέλτου', -'tooltip-ca-edit' => 'Ἔξεστι σοι μεταγράφειν τήνδε τὴν δέλτον. Προεπισκοπεῖν πρὶν ἂν γράφῃς τὴν δέλτον.', +'tooltip-ca-edit' => 'Ἔξεστί σοι μεταγράφειν τήνδε τὴν δέλτον. Προθεωρεῖν πρὶν ἂν γράφῃς τὴν δέλτον.', 'tooltip-ca-addsection' => 'Προστιθέναι σχόλιόν τι τῇδε τῇ διαλέξει.', 'tooltip-ca-viewsource' => 'Σῴζεται ἥδε ἡ δέλτος. Ἔξεστι σοὶ τὴν πηγήν ἐπισκοπεῖν.', @@ -1240,8 +1278,10 @@ 'tooltip-t-specialpages' => 'Κατάλογος κατὰ πᾶσας τὰς εἰδικὰς δέλτους', 'tooltip-ca-nstab-main' => 'χρῆμα δέλτον ὁρᾶν', 'tooltip-ca-nstab-user' => 'Δέλτος χρωμένου ὁρᾶν', +'tooltip-ca-nstab-media' => 'Ὁρᾶν τὴν δέλτον μέσων', 'tooltip-ca-nstab-project' => 'Ὁρᾶν τὴν δέλτον τοῦ σχεδίου', 'tooltip-ca-nstab-image' => 'Ὁρᾶν τὴν τοῦ φορτίου δέλτον', +'tooltip-ca-nstab-mediawiki' => 'Ὁρᾶν τὸ μήνυμα τοῦ συστήματος', 'tooltip-ca-nstab-template' => 'Ὁρᾶν πρότυπον', 'tooltip-ca-nstab-help' => 'Ὁρᾶν δέλτον βοηθείας', 'tooltip-ca-nstab-category' => 'Ἐπισκοπεῖν τὴν τῆς κατηγορίας δέλτον', @@ -1291,6 +1331,7 @@ 'newimages' => 'Τὰ νέα φορτία δεῦρο ἀθροίζειν', 'newimages-legend' => 'Διηθητήριον', 'showhidebots' => '($1 αὐτόματα)', +'noimages' => 'Οὐδεμία εἰκών.', 'ilsubmit' => 'Ζητεῖν', 'bydate' => 'κατὰ χρονολογίαν', @@ -1306,7 +1347,7 @@ 'metadata-help' => 'Τόδε ἀρχεῖον περιέχει προσθέτους πληροφορίας, πιθανὼς προστεθειμένας ἐκ τῆς ψηφιακῆς φωτογραφικῆς μηχανῆς ἢ τοῦ σαρωτοῦ χρησθέντος τῇ δημιουργίᾳ ἢ τῇ ἑῇ ψηφιοποιήσει. Εἰ τὸ ἀρχεῖον ἤλλακται ἐκ τῆς ἑῆς ἀρχικῆς καταστάσεως, ἀκρίβειαί τινες πιθανὼς μὴ πλήρως τὸ ἠλλαγμενον ἀρχεῖον ἀνακλοῦσιν.', 'metadata-expand' => 'Δηλοῦν τὰς ἀκριβείας', 'metadata-collapse' => 'Κρύπτειν τὰς ἀκριβείας', -'metadata-fields' => 'Τὰ πεδία μεταδεδομένων EXIF ταύτου τοῦ μηνύματος περιλήψονται ἐν τῇ δέλτῳ ἐμφανίσεως εἰκόνος ὁπηνίκα ὁ πίναξ μεταδεδομένων ἀποκρύψηται. Τὰ ἕτερα πεδία ἔσονται κεκρυμμένα κατὰ προεπιλογήν. +'metadata-fields' => 'Τὰ πεδία μεταδεδομένων EXIF τοῦδε τοῦ μηνύματος περιλήψονται ἐν τῇ δέλτῳ ἐμφανίσεως εἰκόνος ὁπηνίκα ὁ πίναξ μεταδεδομένων ἀποκρύψηται. Τὰ ἕτερα πεδία ἔσονται κεκρυμμένα κατὰ προεπιλογήν. * make * model * datetimeoriginal @@ -1327,6 +1368,7 @@ 'exif-make' => 'Ἐξεργαστὴς τῆς εἰκονοληπτικῆς μηχανῆς', 'exif-model' => 'Πρότυπον τῆς εἰκονοληπτικῆς μηχανῆς', 'exif-artist' => 'Πρωτουργός', +'exif-exifversion' => 'ἔκδοσις Exif', 'exif-colorspace' => 'Χρωματικὸς χῶρος', 'exif-pixelydimension' => 'Ἔγκυρον πλάτος εἰκόνος', 'exif-pixelxdimension' => 'Ἔγκυρον ὕψος εἰκόνος', @@ -1336,24 +1378,35 @@ 'exif-exposuretime' => 'Χρόνος ἐκθέσεως', 'exif-exposuretime-format' => '$1 δευτ. ($2)', 'exif-fnumber' => 'F Ἀριθμός', +'exif-spectralsensitivity' => 'Φασματικὴ εὐαισθητότης', 'exif-oecf' => 'Παράγων ὀπτοηλεκτονικῆς μετατροπῆς', 'exif-aperturevalue' => 'Ἄνοιξις διαφράγματος', 'exif-brightnessvalue' => 'Φωτεινότης', +'exif-subjectdistance' => 'Ἀπόστασις ἀντικειμένου', 'exif-lightsource' => 'Πηγὴ φωτός', 'exif-flash' => 'Ἀστραποβόλον', 'exif-subjectarea' => 'Θεματικὸν πεδίον', 'exif-filesource' => 'Πηγὴ ἀρχείου', 'exif-scenetype' => 'Τύπος σκηνῆς', +'exif-cfapattern' => 'Πρὀτυπον CFA', 'exif-contrast' => 'Ἀντίθεσις', 'exif-saturation' => 'Κορεσμός', 'exif-sharpness' => 'Ὀξύτης', +'exif-subjectdistancerange' => 'Ἐμβέλεια διακύμανσεως τῆς ἀποστάσεως τοῦ ἀντικειμένου', +'exif-imageuniqueid' => 'Μονοσήμαντος ταυτοποίησις εἰκόνος', +'exif-gpsversionid' => 'Ἔκδοσις μετὰ GPS σημάντρου', 'exif-gpslatituderef' => 'Βόρειον ἢ Νότιον γεωγραφικὸν πλάτος', 'exif-gpslatitude' => 'Πλάτος γεωγραφικόν', 'exif-gpslongituderef' => 'Ἀνατολικὸν ἢ Δυτικὸν γεωγραφικὸν μῆκος', 'exif-gpslongitude' => 'Γεωγραφικὸν μῆκος', 'exif-gpsaltituderef' => 'Ἀναφορὰ ὕψους γεωγραφικοῦ', 'exif-gpsaltitude' => 'Γεωγραφικὸν ὕψος', +'exif-gpstimestamp' => 'Χρόνος GPS (ἀτομικὸν ὡρολόγιον)', 'exif-gpsspeedref' => 'Μονὰς ταχύτητος', +'exif-gpsspeed' => 'Ταχύτης τοῦ δέκτου GPS', +'exif-gpsmapdatum' => 'Κεχρησμένα δεδομένα γεωδαιτικῶν μετρήσεων', +'exif-gpsdestlatitude' => 'Γεωγραφικὸν πλάτος προορισμοῦ', +'exif-gpsdestlongitude' => 'Γεωγραφικὸν μῆκος προορισμοῦ', 'exif-gpsdatestamp' => 'Χρονολογία GPS', # EXIF attributes @@ -1362,13 +1415,20 @@ 'exif-unknowndate' => 'Ἄγνωτος χρονολογία', 'exif-orientation-1' => 'Κανονικόν', # 0th row: top; 0th column: left +'exif-orientation-2' => 'Ἀντιστραφεῖσα ὁριζοντίως', # 0th row: top; 0th column: right 'exif-orientation-3' => 'Περιεστραμμένον κατὰ 180°', # 0th row: bottom; 0th column: right +'exif-orientation-4' => 'Ἀντιστραφεῖσα καθέτως', # 0th row: bottom; 0th column: left +'exif-planarconfiguration-1' => 'πεπλατυσμένη μορφοποιία', +'exif-planarconfiguration-2' => 'ἐπίπεδος μορφοποιία', + 'exif-componentsconfiguration-0' => 'Οὐκ ἔστι', 'exif-exposureprogram-0' => 'Ἀκαθόριστον', 'exif-exposureprogram-1' => 'Χειροκίνητον', +'exif-exposureprogram-2' => 'Κανονικὸν πρόγραμμα', 'exif-exposureprogram-3' => 'Προτεραιότης ἀνοἰξεως διαφράγματος', +'exif-exposureprogram-4' => 'Προτεραιότης κλείστρου', 'exif-subjectdistance-value' => '$1 μέτρα', @@ -1385,6 +1445,8 @@ 'exif-lightsource-2' => 'Φθορίζον', 'exif-lightsource-3' => 'Βαρυλίθιον (πυρακτωσικὸν φῶς)', 'exif-lightsource-4' => 'Ἀστραποβόλος συσκευή', +'exif-lightsource-9' => 'Αἴθρια μετέωρα', +'exif-lightsource-10' => 'Συννεφῆ μετέωρα', 'exif-lightsource-11' => 'Σκίασις', 'exif-lightsource-12' => 'Ἡμερινοφωτικὴ φθοριοφάνεια (D 5700 – 7100K)', 'exif-lightsource-13' => 'Ἡμερινὴ λευκὴ φθοριοφάνεια (N 4600 – 5400K)', @@ -1410,6 +1472,9 @@ 'exif-exposuremode-1' => 'Χειροκίνητος ἔκθεσις', 'exif-exposuremode-2' => 'Αὐτόματον ἄγγιστρον', +'exif-whitebalance-0' => 'Αὐτόματος ἰσορροπία λευκῶν', +'exif-whitebalance-1' => 'Χειροκίνητος ἰσορροπία λευκῶν', + 'exif-scenecapturetype-0' => 'Συνήθης', 'exif-scenecapturetype-1' => 'Τοπίον', 'exif-scenecapturetype-2' => 'Παράστασις', @@ -1462,7 +1527,7 @@ 'exif-gpsdirection-m' => 'Μαγνητικὴ διεύθυνσις', # External editor support -'edit-externally' => 'Μεταγράφειν ταῦτο τὸ ἀρχεῖον χρωμένοι μίαν ἐξώτερην ἐφαρμογήν.', +'edit-externally' => 'Μεταγράφειν τόδε τὸ ἀρχεῖον χρώμενος ἐξώτερήν τινα ἐφαρμογήν.', 'edit-externally-help' => 'Εἰ πλείοντα βούλει μαθεῖν, [http://www.mediawiki.org/wiki/Manual:External_editors τὰς περὶ τοῦ σχῆματος διδασκαλίας] λέξε.', # 'all' in various places, this might be different for inflected languages @@ -1473,9 +1538,11 @@ 'monthsall' => 'ἅπαντες', # E-mail address confirmation -'confirmemail' => 'Ἐπιβεβαίωσον διεύθυνσιν ἠλ-ταχυδρομείου', -'confirmemail_subject' => '{{SITENAME}} ἐπιβεβαίωσις διευθύνσεως ἠλ.-ταχυδρομείου', -'confirmemail_body' => 'Τίς (πιθανὼς σύ, ἐκ τῆς IP-διευθύνσέως $1) ἔχων τήνδε τὴν ἠλ-διεύθυνσιν κατέγραψεν λογισμόν τινα "$2" ἐν τω ἱστοτόπω {{SITENAME}}. Διὰ τὸ ἐπιβεβαιώσειν τὴν ἐτεὴ κατοχὴ τοῦ λογισμοῦ χρωμένου ὑπ\' ἐσοῦ καὶ διὰ τὸ ἐνεργοποιἠσειν τὰς δυνατότητας ἠλ-ταχυδρομείου τοῦ {{SITENAME}}, ἀκολούθησον τόνδε τὸν σύνδεσμον: +'confirmemail' => 'Ἐπιβεβαίωσον διεύθυνσιν ἠλ-ταχυδρομείου', +'confirmemail_send' => 'Ταχυδρομήσειν κώδικα ἐπιβεβαιώσεως', +'confirmemail_sent' => 'Ἐπιβεβαίωσις διευθύνσεως ἠλ.-ταχυδρομείου ἐστάλη.', +'confirmemail_subject' => 'ἐπιβεβαίωσις διευθύνσεως ἠλ.-ταχυδρομείου τοῦ {{SITENAME}}', +'confirmemail_body' => 'Τίς (πιθανὼς σύ, ἐκ τῆς IP-διευθύνσέως $1) ἔχων τήνδε τὴν ἠλ-διεύθυνσιν κατέγραψεν λογισμόν τινα "$2" ἐν τω ἱστοτόπω {{SITENAME}}. Διὰ τὸ ἐπιβεβαιώσειν τὴν ἐτεὴ κατοχὴ τοῦ λογισμοῦ χρωμένου ὑπ\' ἐσοῦ καὶ διὰ τὸ ἐνεργοποιἠσειν τὰς δυνατότητας ἠλ-ταχυδρομείου τοῦ {{SITENAME}}, ἀκολούθησον τόνδε τὸν σύνδεσμον: $3 @@ -1484,6 +1551,8 @@ $5 Ὅδε ὁ κῶδιξ ἐπιβεβαιώσεως λεληγμένος ἔσεται ἐν $4.', +'confirmemail_invalidated' => 'Ἀκυρωθεῖσα ἡ ἐπιβεβαίωσις τῆς ἠλ-διευθύνσεως', +'invalidateemail' => 'Ἀκυρώσειν τὴν ἐπιβεβαίωσιν ἠλ-διευθύνσεως', # Scary transclusion 'scarytranscludefailed' => '[Τὸ προσκομίζειν τὸ πρότυπον διὰ τὸ $1 ἀπετεύχθη· συγγνώμην]', @@ -1493,7 +1562,7 @@ 'trackbackbox' => '<div id="mw_trackbacks">Ὀνασύνδεσμοι διὰ τήνδε ἐγγραφήν:<br /> $1 </div>', -'trackbackremove' => ' ([$1 Διαγράφειν])', +'trackbackremove' => ' ([$1 Διαγράφειν])', 'trackbacklink' => 'Ὀνασύνδεσμος', 'trackbackdeleteok' => 'Ὀνασύνδεσμος ἐπιτυχὼς διαγραφείς.', @@ -1523,11 +1592,13 @@ 'table_pager_prev' => 'Δέλτος προτέρα', 'table_pager_first' => 'Δέλτος πρώτη', 'table_pager_last' => 'Δέλτος ἐσχάτη', +'table_pager_limit' => 'Δεικνύναι $1 στοιχεῖα ἀνἀ δέλτον', 'table_pager_limit_submit' => 'Ἰέναι', 'table_pager_empty' => 'Οὐδὲν ἀποτέλεσμα', # Auto-summaries -'autosumm-new' => 'Δέλτος νέα: $1', +'autoredircomment' => 'Ἀναδιευθύνειν πρὸς τὸ [[$1]]', +'autosumm-new' => 'Δέλτος νέα: $1', # Size units 'size-bytes' => '$1 Δ', @@ -1546,6 +1617,9 @@ 'watchlistedit-raw-legend' => 'Μεταγράφειν πρωταρχικὸν κατάλογον ἐφορωμένων', 'watchlistedit-raw-titles' => 'Ἐπιγραφαί:', 'watchlistedit-raw-submit' => 'Ἐκσυγχρονίζειν τὸν κατάλογον ἐφορωμένων', +'watchlistedit-raw-done' => 'Ἡ ἐφοροδιαλογή σου ἐνήμερος ἐστίν.', +'watchlistedit-raw-added' => '{{PLURAL:$1|1 δέλτος|$1 δέλτοι}} προσετέθησαν:', +'watchlistedit-raw-removed' => '{{PLURAL:$1|1 δέλτος|$1 δέλτοι}} ἀφῃρέθησαν:', # Watchlist editing tools 'watchlisttools-view' => 'Ὁρᾶν τὰς πρὸς ταῦτα μεταβολὰς', @@ -1613,6 +1687,6 @@ # Special:BlankPage 'blankpage' => 'Κενὴ δέλτος', -'intentionallyblankpage' => 'Ταῦτη ἡ δέλτος ἀφίεται ἐσκεμμένως κενὴ καὶ ἐστὶ χρήσιμη ὡς σημεῖον ἀναφορᾶς, κτλ.', +'intentionallyblankpage' => 'Ἥδε ἡ δέλτος ἀφίεται ἐσκεμμένως κενὴ οὖσα χρήσιμος ὡς σημεῖον ἀναφορᾶς, κτλ.', ); Modified: branches/visual_diff/phase3/languages/messages/MessagesHe.php =================================================================== --- branches/visual_diff/phase3/languages/messages/MessagesHe.php 2008-08-17 23:32:07 UTC (rev 39562) +++ branches/visual_diff/phase3/languages/messages/MessagesHe.php 2008-08-18 00:10:23 UTC (rev 39563) @@ -1643,6 +1643,7 @@ 'nextpage' => 'הדף הבא ($1)', 'prevpage' => 'הדף הקודם ($1)', 'allpagesfrom' => 'הצגת דפים החל מ:', +'allpagesto' => 'הצגת דפים עד:', 'allarticles' => 'כל הדפים', 'allinnamespace' => 'כל הדפים (מרחב שם $1)', 'allnotinnamespace' => 'כל הדפים (שלא במרחב השם $1)', Modified: branches/visual_diff/phase3/languages/messages/MessagesHif_latn.php =================================================================== --- branches/visual_diff/phase3/languages/messages/MessagesHif_latn.php 2008-08-17 23:32:07 UTC (rev 39562) +++ branches/visual_diff/phase3/languages/messages/MessagesHif_latn.php 2008-08-18 00:10:23 UTC (rev 39563) @@ -45,6 +45,9 @@ 'tog-watchlisthideown' => 'Hamaar badlao ke hamaar dhyaan suchi se lukao', 'tog-watchlisthidebots' => 'Bot waala badlao ke hamaar dhyaan suchi se lukao', 'tog-watchlisthideminor' => 'Mamuli badlao ke hamaar dhyaan suchi se lukao', +'tog-watchlisthideliu' => 'Logged in sadasya ke badlao ke dhyan suchi se lukao', +'tog-watchlisthideanons' => 'Bina naam ke sadasya ke badlao ke dhyan suchi se lukao', +'tog-nolangconversion' => 'Variants conversion ke disable karo', 'tog-ccmeonemails' => 'Jon e-mail ham duusra sadasya ke lage bhejtaa hai uske copy hamaar lage bhi bhejo', 'tog-diffonly' => 'Diff ke niche panna ke content ke nai dekhao', 'tog-showhiddencats' => 'Lukawal waala vibhag ke dekhao', @@ -232,7 +235,7 @@ 'badaccess' => 'Anumati nai hai', 'badaccess-group0' => 'Aap jon chij kare mangta uske ijajat aap ke nai hai.', -'badaccess-groups' => 'Aap jon chij kare mangtaa hai uske khali ii group $1 ke ek sadasya kare sake hai.', +'badaccess-groups' => 'Aap jon chij kare mangtaa hai uske khali ii group $1 {{PLURAL:$2|the group|one of the groups}} ke ek sadasya kare sake hai.', 'versionrequired' => 'MediaWiki ke $1 version ke jaruri hai', 'versionrequiredtext' => 'Ii panna use kare ke khatir MediaWiki ke Version $1 ke jaruri hai. [[Special:Version|version page]] ke dekho.', @@ -459,6 +462,7 @@ 'createaccount-text' => 'Koi aap ke e-mail katir {{SITENAME}} ($4) named "$2" me account banais hai jiske password hai "$3". Aap ke chaahi ki aap login kar ke password ke badal do. Agar ii account galti se banaa hai tab ii sandes ke ignore kar do.', +'login-throttled' => 'Aap bahut jaada dafe ii account ke password ke enter kare ke kosis karaa hai. Thora deri baad fir se kosis karna.', 'loginlanguagelabel' => 'Bhasa: $1', # Password reset dialog @@ -495,28 +499,29 @@ 'hr_tip' => 'Samthar line (bahut jaada nai kaam me laana)', # Edit pages -'summary' => 'Sanchhipt', -'subject' => 'Subject/headline', -'minoredit' => 'Ii chhota badlao hai', -'watchthis' => 'Ii panna ke dhyaan rakho', -'savearticle' => 'Save panna', -'preview' => 'Jhalak dekhao', -'showpreview' => 'Preview dekhao', -'showlivepreview' => 'Abhi ke jhalak', -'showdiff' => 'Badlao dekhao', -'anoneditwarning' => "'''Sawadhaan:''' Aap login nai karaa hai +'summary' => 'Sanchhipt', +'subject' => 'Subject/headline', +'minoredit' => 'Ii chhota badlao hai', +'watchthis' => 'Ii panna ke dhyaan rakho', +'savearticle' => 'Save panna', +'preview' => 'Jhalak dekhao', +'showpreview' => 'Preview dekhao', +'showlivepreview' => 'Abhi ke jhalak', +'showdiff' => 'Badlao dekhao', +'anoneditwarning' => "'''Sawadhaan:''' Aap login nai karaa hai Aap ke IP address ii panna ke edit itihaas me record karaa jaai.", -'missingsummary' => "'''Suchna:''' Aap badlao ke sanchhit me nai likha hai. +'missingsummary' => "'''Suchna:''' Aap badlao ke sanchhit me nai likha hai. Agar aap Save ke fir se click karaa tab, aap ke badlao bina summary ke save kar lewa jaai.", -'missingcommenttext' => 'Meharbani kar ke niche aapan vichar deo.', -'missingcommentheader' => "'''Suchna:''' Aap ii vichar ke vishay nai likha hai. +'missingcommenttext' => 'Meharbani kar ke niche aapan vichar deo.', +'missingcommentheader' => "'''Suchna:''' Aap ii vichar ke vishay nai likha hai. Agar aap Save pe click karaa tab bina vishay ke iske save kar lewa jaai.", -'summary-preview' => 'Sanchhep jhalak', -'subject-preview' => 'Suchi ke jhalak', -'blockedtitle' => 'Sadasya ke rok dewa gais hai', -'blockedtext' => "<big>'''Aapke user name yah IP address ke rok dewa gae hai.'''</big> +'summary-preview' => 'Sanchhep jhalak', +'subject-preview' => 'Suchi ke jhalak', +'blockedtitle' => 'Sadasya ke rok dewa gais hai', +'blockedtext' => "<big>'''Aapke user name nai to IP address ke rok dewa gae hai.'''</big> -Roke waala hai $1. Iske kaaran hai ''$2''. +Roke waala hai $1. +Iske kaaran hai ''$2''. * Roke ke suruu: $8 * Roke kab khatam hoi: $6 @@ -524,14 +529,16 @@ Aap $1 ke mile saktaa hai nai to duusra [[{{MediaWiki:Grouppage-sysop}}|administrator]] se rukawat ke baare me baat karo. Aap ii sadasya ke 'email this user' feature ke kaam me lae ke baat nai kare saktaa hai jab tak ki ek kanuni email address aapke [[Special:Preferences|account preferences]] me nai hai aur aap ke iske kaam me laae ke roka nai gae hai. -Aap ke abhi ke IP address $3 hai, aur roka gae ID hai #$5. Meharbani kar ke chahe ek nai to duno ke aapan sawaal me rakho.", -'autoblockedtext' => "Aap ke IP address ke apne se rok dewa gais hai kahe ki koi duusra sadasya iske kaam me kawat rahaa, jiske $1 rokis hai. +Aap ke abhi ke IP address $3 hai, aur roka gae ID hai #$5. +Meharbani kar ke chahe ek nai to duno ke aapan sawaal me rakho.", +'autoblockedtext' => "Aap ke IP address ke apne se rok dewa gais hai kahe ki koi duusra sadasya iske kaam me kawat rahaa, jiske $1 rokis hai. Iske khatir kaaran hai: :''$2'' * Roke ke suruu: $8 * Roke kab khatam hoi: $6 +*Roke waala: $7 Aap $1 ke mile saktaa hai nai to duusra [[{{MediaWiki:Grouppage-sysop}}|administrator]] se rukawat ke baare me baat karo. @@ -539,55 +546,104 @@ Aap ke abhi ke IP address $3 hai, aur roka gae ID hai #$5. Meharbani kar |