r108174 MediaWiki - Code Review archive

Repository:MediaWiki
Revision:r108173‎ | r108174 | r108175 >
Date:20:05, 5 January 2012
Author:yaron
Status:deferred
Tags:
Comment:
Tag for version 0.6
Modified paths:
  • /tags/extensions/ApprovedRevs/REL_0_6 (added) (history)
  • /tags/extensions/ApprovedRevs/REL_0_6/ApprovedRevs.i18n.php (replaced) (history)
  • /tags/extensions/ApprovedRevs/REL_0_6/ApprovedRevs.php (replaced) (history)
  • /tags/extensions/ApprovedRevs/REL_0_6/README (replaced) (history)
  • /tags/extensions/ApprovedRevs/REL_0_6/SpecialApprovedRevs.php (replaced) (history)

Diff [purge]

Index: tags/extensions/ApprovedRevs/REL_0_6/maintenance/approveAllPages.php
@@ -0,0 +1,72 @@
 2+<?php
 3+
 4+/**
 5+ * This script approves the current revision of all pages that are in an
 6+ * approvable namespace, and do not already have an approved revision.
 7+ *
 8+ * Usage:
 9+ * no parameters
 10+ *
 11+ * This program is free software; you can redistribute it and/or modify
 12+ * it under the terms of the GNU General Public License as published by
 13+ * the Free Software Foundation; either version 2 of the License, or
 14+ * (at your option) any later version.
 15+ *
 16+ * This program is distributed in the hope that it will be useful,
 17+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
 18+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 19+ * GNU General Public License for more details.
 20+ *
 21+ * You should have received a copy of the GNU General Public License along
 22+ * with this program; if not, write to the Free Software Foundation, Inc.,
 23+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 24+ * http://www.gnu.org/copyleft/gpl.html
 25+ *
 26+ * @author Jeroen De Dauw
 27+ * @author Yaron Koren
 28+ * @ingroup Maintenance
 29+ */
 30+
 31+require_once( dirname( __FILE__ ) . '/../../../maintenance/Maintenance.php' );
 32+
 33+class ApproveAllPages extends Maintenance {
 34+
 35+ public function __construct() {
 36+ parent::__construct();
 37+
 38+ $this->mDescription = "Approve the current revision of all pages that do not yet have an approved revision.";
 39+ }
 40+
 41+ public function execute() {
 42+ global $wgTitle;
 43+
 44+ $dbr = wfGetDB( DB_SLAVE );
 45+
 46+ $pages = $dbr->select(
 47+ 'page',
 48+ array(
 49+ 'page_id',
 50+ 'page_latest'
 51+ )
 52+ );
 53+
 54+ while ( $page = $pages->fetchObject() ) {
 55+ $title = Title::newFromID( $page->page_id );
 56+ // some extensions, like Semantic Forms, need $wgTitle
 57+ // set as well
 58+ $wgTitle = $title;
 59+ if ( ApprovedRevs::pageIsApprovable( $title ) &&
 60+ ! ApprovedRevs::hasApprovedRevision( $title ) ) {
 61+ ApprovedRevs::setApprovedRevID( $title, $page->page_latest, true );
 62+ $this->output( wfTimestamp( TS_DB ) . ' Approved the last revision of page "' . $title->getFullText() . '".' );
 63+ }
 64+ }
 65+
 66+
 67+ $this->output( "\n Finished setting all current revisions to approved. \n" );
 68+ }
 69+
 70+}
 71+
 72+$maintClass = "ApproveAllPages";
 73+require_once( DO_MAINTENANCE );
Property changes on: tags/extensions/ApprovedRevs/REL_0_6/maintenance/approveAllPages.php
___________________________________________________________________
Added: svn:eol-style
174 + native
Index: tags/extensions/ApprovedRevs/REL_0_6/ApprovedRevs_body.php
@@ -0,0 +1,236 @@
 2+<?php
 3+
 4+/**
 5+ * Main class for the Approved Revs extension.
 6+ *
 7+ * @file
 8+ * @ingroup Extensions
 9+ *
 10+ * @author Yaron Koren
 11+ */
 12+class ApprovedRevs {
 13+
 14+ // Static arrays to prevent querying the database more than necessary.
 15+ static $mApprovedContentForPage = array();
 16+ static $mApprovedRevIDForPage = array();
 17+
 18+ /**
 19+ * Gets the approved revision ID for this page, or null if there isn't
 20+ * one.
 21+ */
 22+ public static function getApprovedRevID( $title ) {
 23+ $pageID = $title->getArticleId();
 24+ if ( array_key_exists( $pageID, self::$mApprovedRevIDForPage ) ) {
 25+ return self::$mApprovedRevIDForPage[$pageID];
 26+ }
 27+
 28+ if ( ! self::pageIsApprovable( $title ) ) {
 29+ return null;
 30+ }
 31+
 32+ $dbr = wfGetDB( DB_SLAVE );
 33+ $revID = $dbr->selectField( 'approved_revs', 'rev_id', array( 'page_id' => $pageID ) );
 34+ self::$mApprovedRevIDForPage[$pageID] = $revID;
 35+ return $revID;
 36+ }
 37+
 38+ /**
 39+ * Returns whether or not this page has a revision ID.
 40+ */
 41+ public static function hasApprovedRevision( $title ) {
 42+ $revision_id = self::getApprovedRevID( $title );
 43+ return ( ! empty( $revision_id ) );
 44+ }
 45+
 46+ /**
 47+ * Returns the content of the approved revision of this page, or null
 48+ * if there isn't one.
 49+ */
 50+ public static function getApprovedContent( $title ) {
 51+ $pageID = $title->getArticleId();
 52+ if ( array_key_exists( $pageID, self::$mApprovedContentForPage ) ) {
 53+ return self::$mApprovedContentForPage[$pageID];
 54+ }
 55+
 56+ $revision_id = self::getApprovedRevID( $title );
 57+ if ( empty( $revision_id ) ) {
 58+ return null;
 59+ }
 60+ $article = new Article( $title, $revision_id );
 61+ $text = $article->getContent();
 62+ self::$mApprovedContentForPage[$pageID] = $text;
 63+ return $text;
 64+ }
 65+
 66+ /**
 67+ * Helper function - returns whether the user is currently requesting
 68+ * a page via the simple URL for it - not specfying a version number,
 69+ * not editing the page, etc.
 70+ */
 71+ public static function isDefaultPageRequest() {
 72+ // this first test seems to no longer work with MW 1.16
 73+ /*
 74+ if ( $title->mArticleID > -1 ) {
 75+ return true;
 76+ }
 77+ */
 78+ global $wgRequest;
 79+ if ( $wgRequest->getCheck( 'oldid' ) ) {
 80+ return false;
 81+ }
 82+ // check if it's an action other than viewing
 83+ global $wgRequest;
 84+ if ( $wgRequest->getCheck( 'action' ) &&
 85+ $wgRequest->getVal( 'action' ) != 'view' &&
 86+ $wgRequest->getVal( 'action' ) != 'purge' &&
 87+ $wgRequest->getVal( 'action' ) != 'render' ) {
 88+ return false;
 89+ }
 90+ return true;
 91+ }
 92+
 93+ /**
 94+ * Returns whether this page can be approved - either because it's in
 95+ * a supported namespace, or because it's been specially marked as
 96+ * approvable. Also stores the boolean answer as a field in the page
 97+ * object, to speed up processing if it's called more than once.
 98+ */
 99+ public static function pageIsApprovable( Title $title ) {
 100+ // if this function was already called for this page, the
 101+ // value should have been stored as a field in the $title object
 102+ if ( isset( $title->isApprovable ) ) {
 103+ return $title->isApprovable;
 104+ }
 105+
 106+ if ( !$title->exists() ) {
 107+ $title->isApprovable = false;
 108+ return $title->isApprovable;
 109+ }
 110+
 111+ // check the namespace
 112+ global $egApprovedRevsNamespaces;
 113+ if ( in_array( $title->getNamespace(), $egApprovedRevsNamespaces ) ) {
 114+ $title->isApprovable = true;
 115+ return $title->isApprovable;
 116+ }
 117+
 118+ // it's not in an included namespace, so check for the page
 119+ // property - for some reason, calling the standard
 120+ // getProperty() function doesn't work, so we just do a DB
 121+ // query on the page_props table
 122+ $dbr = wfGetDB( DB_SLAVE );
 123+ $res = $dbr->select( 'page_props', 'COUNT(*)',
 124+ array(
 125+ 'pp_page' => $title->getArticleID(),
 126+ 'pp_propname' => 'approvedrevs',
 127+ 'pp_value' => 'y'
 128+ )
 129+ );
 130+ $row = $dbr->fetchRow( $res );
 131+ $isApprovable = ( $row[0] == '1' );
 132+ $title->isApprovable = $isApprovable;
 133+ return $isApprovable;
 134+ }
 135+
 136+ public static function saveApprovedRevIDInDB( $title, $rev_id ) {
 137+ $dbr = wfGetDB( DB_MASTER );
 138+ $page_id = $title->getArticleId();
 139+ $old_rev_id = $dbr->selectField( 'approved_revs', 'rev_id', array( 'page_id' => $page_id ) );
 140+ if ( $old_rev_id ) {
 141+ $dbr->update( 'approved_revs', array( 'rev_id' => $rev_id ), array( 'page_id' => $page_id ) );
 142+ } else {
 143+ $dbr->insert( 'approved_revs', array( 'page_id' => $page_id, 'rev_id' => $rev_id ) );
 144+ }
 145+ }
 146+
 147+ /**
 148+ * Sets a certain revision as the approved one for this page in the
 149+ * approved_revs DB table; calls a "links update" on this revision
 150+ * so that category information can be stored correctly, as well as
 151+ * info for extensions such as Semantic MediaWiki; and logs the action.
 152+ */
 153+ public static function setApprovedRevID( $title, $rev_id, $is_latest = false ) {
 154+ self::saveApprovedRevIDInDB( $title, $rev_id );
 155+ $parser = new Parser();
 156+
 157+ // If the revision being approved is definitely the latest
 158+ // one, there's no need to call the parser on it.
 159+ if ( !$is_latest ) {
 160+ $parser->setTitle( $title );
 161+ $article = new Article( $title, $rev_id );
 162+ $text = $article->getContent();
 163+ $options = new ParserOptions();
 164+ $parser->parse( $text, $title, $options, true, true, $rev_id );
 165+ $u = new LinksUpdate( $title, $parser->getOutput() );
 166+ $u->doUpdate();
 167+ }
 168+
 169+ $log = new LogPage( 'approval' );
 170+ $rev_url = $title->getFullURL( array( 'old_id' => $rev_id ) );
 171+ $rev_link = Xml::element(
 172+ 'a',
 173+ array( 'href' => $rev_url ),
 174+ $rev_id
 175+ );
 176+ $logParams = array( $rev_link );
 177+ $log->addEntry(
 178+ 'approve',
 179+ $title,
 180+ '',
 181+ $logParams
 182+ );
 183+
 184+ wfRunHooks( 'ApprovedRevsRevisionApproved', array( $parser, $title, $rev_id ) );
 185+ }
 186+
 187+ public static function deleteRevisionApproval( $title ) {
 188+ $dbr = wfGetDB( DB_MASTER );
 189+ $page_id = $title->getArticleId();
 190+ $dbr->delete( 'approved_revs', array( 'page_id' => $page_id ) );
 191+ }
 192+
 193+ /**
 194+ * Unsets the approved revision for this page in the approved_revs DB
 195+ * table; calls a "links update" on this page so that category
 196+ * information can be stored correctly, as well as info for
 197+ * extensions such as Semantic MediaWiki; and logs the action.
 198+ */
 199+ public static function unsetApproval( $title ) {
 200+ global $egApprovedRevsBlankIfUnapproved;
 201+
 202+ self::deleteRevisionApproval( $title );
 203+
 204+ $parser = new Parser();
 205+ $parser->setTitle( $title );
 206+ if ( $egApprovedRevsBlankIfUnapproved ) {
 207+ $text = '';
 208+ } else {
 209+ $article = new Article( $title );
 210+ $text = $article->getContent();
 211+ }
 212+ $options = new ParserOptions();
 213+ $parser->parse( $text, $title, $options );
 214+ $u = new LinksUpdate( $title, $parser->getOutput() );
 215+ $u->doUpdate();
 216+
 217+ $log = new LogPage( 'approval' );
 218+ $log->addEntry(
 219+ 'unapprove',
 220+ $title,
 221+ ''
 222+ );
 223+
 224+ wfRunHooks( 'ApprovedRevsRevisionUnapproved', array( $parser, $title ) );
 225+ }
 226+
 227+ public static function addCSS() {
 228+ global $wgOut, $egApprovedRevsScriptPath;
 229+ $link = array(
 230+ 'rel' => 'stylesheet',
 231+ 'type' => 'text/css',
 232+ 'media' => "screen",
 233+ 'href' => "$egApprovedRevsScriptPath/ApprovedRevs.css"
 234+ );
 235+ $wgOut->addLink( $link );
 236+ }
 237+}
Property changes on: tags/extensions/ApprovedRevs/REL_0_6/ApprovedRevs_body.php
___________________________________________________________________
Added: svn:eol-style
1238 + native
Index: tags/extensions/ApprovedRevs/REL_0_6/ApprovedRevs.i18n.php
@@ -0,0 +1,1770 @@
 2+<?php
 3+/**
 4+ * Internationalization file for the Approved Revs extension.
 5+ *
 6+ * @file
 7+ * @ingroup Extensions
 8+*/
 9+
 10+$messages = array();
 11+
 12+/** English
 13+ * @author Yaron Koren
 14+ */
 15+$messages['en'] = array(
 16+ // user messages
 17+ 'approvedrevs-desc' => 'Set a single revision of a page as approved',
 18+ 'approvedrevs-logname' => 'Revision approval log',
 19+ 'approvedrevs-logdesc' => 'This is the log of revisions that have been approved.',
 20+ 'approvedrevs-approve' => 'approve',
 21+ 'approvedrevs-unapprove' => 'unapprove',
 22+ 'approvedrevs-approvesuccess' => 'This revision of the page has been set as the approved version.',
 23+ 'approvedrevs-unapprovesuccess' => 'There is no longer an approved version for this page.
 24+Instead, the most recent revision will be shown.',
 25+ 'approvedrevs-unapprovesuccess2' => 'There is no longer an approved version for this page.
 26+Instead, a blank page will be shown.',
 27+ 'approvedrevs-approveaction' => 'set $2 as the approved revision for "[[$1]]"',
 28+ 'approvedrevs-unapproveaction' => 'unset approved revision for "[[$1]]"',
 29+ 'approvedrevs-notlatest' => 'This is the approved revision of this page; it is not the most recent.',
 30+ 'approvedrevs-approvedandlatest' => 'This is the approved revision of this page, as well as being the most recent.',
 31+ 'approvedrevs-blankpageshown' => 'No revision has been approved for this page.',
 32+ 'approvedrevs-editwarning' => 'Please note that you are now editing the latest revision of this page, which is not the approved one shown by default.',
 33+ 'approvedrevs' => 'Approved revisions',
 34+ 'approvedrevs-approvedpages' => 'All pages with an approved revision',
 35+ 'approvedrevs-notlatestpages' => 'Pages whose approved revision is not their latest',
 36+ 'approvedrevs-unapprovedpages' => 'Unapproved pages',
 37+ 'approvedrevs-view' => 'View:',
 38+ 'approvedrevs-revisionnumber' => 'revision $1',
 39+ 'approvedrevs-approvedby' => 'approved by $1 on $2',
 40+ 'approvedrevs-difffromlatest' => 'diff from latest',
 41+ 'approvedrevs-approvelatest' => 'approve latest',
 42+ 'approvedrevs-approvethisrev' => 'Approve this revision.',
 43+ 'approvedrevs-viewlatestrev' => 'View the most recent revision.',
 44+ 'right-approverevisions' => 'Set a certain revision of a wiki page as approved',
 45+ 'right-viewlinktolatest' => 'View explanatory text at the top of pages that have an approved revision',
 46+);
 47+
 48+/** Message documentation (Message documentation)
 49+ * @author EugeneZelenko
 50+ * @author Purodha
 51+ * @author Umherirrender
 52+ */
 53+$messages['qqq'] = array(
 54+ 'approvedrevs-desc' => '{{desc}}',
 55+ 'approvedrevs-approve' => '{{Identical|Approve}}',
 56+ 'approvedrevs-view' => '{{Identical|View}}',
 57+ 'approvedrevs-revisionnumber' => '{{Identical|Revision}}',
 58+ 'right-approverevisions' => '{{doc-right|approverevisions}}',
 59+ 'right-viewlinktolatest' => '{{doc-right|viewlinktolatest}}',
 60+);
 61+
 62+/** Afrikaans (Afrikaans)
 63+ * @author Naudefj
 64+ */
 65+$messages['af'] = array(
 66+ 'approvedrevs-approve' => 'keur goed',
 67+ 'approvedrevs-approvedpages' => 'Goedgekeurde bladsye',
 68+ 'approvedrevs-view' => 'Weergawe:',
 69+ 'approvedrevs-revisionnumber' => 'weergawe $1',
 70+);
 71+
 72+/** Arabic (العربية)
 73+ * @author Moemin05
 74+ * @author روخو
 75+ */
 76+$messages['ar'] = array(
 77+ 'approvedrevs-approve' => 'موافقة',
 78+ 'approvedrevs-unapprove' => 'إزالة موافقة',
 79+ 'approvedrevs' => 'أقر المراجعات',
 80+ 'approvedrevs-approvedpages' => 'صفحات تمّت الموافقة عليها',
 81+ 'approvedrevs-unapprovedpages' => 'صفحات لم تتم الموافقة عليها',
 82+ 'approvedrevs-view' => 'عرض:',
 83+ 'approvedrevs-revisionnumber' => 'تنقيح $1',
 84+ 'approvedrevs-approvedby' => 'وافق لكل $1 على $2',
 85+);
 86+
 87+/** Aramaic (ܐܪܡܝܐ)
 88+ * @author Basharh
 89+ */
 90+$messages['arc'] = array(
 91+ 'approvedrevs-approve' => 'ܩܘܒܠܐ',
 92+ 'approvedrevs-unapprove' => 'ܠܐ ܩܘܒܠܐ',
 93+ 'approvedrevs-approvedpages' => 'ܕܦ̈ܐ ܩܒܝܠ̈ܐ',
 94+ 'approvedrevs-unapprovedpages' => 'ܕܦ̈ܐ ܠܐ ܩܒܝܠ̈ܐ',
 95+);
 96+
 97+/** Azerbaijani (Azərbaycanca)
 98+ * @author Cekli829
 99+ * @author Vago
 100+ */
 101+$messages['az'] = array(
 102+ 'approvedrevs-approve' => 'təsdiq etmək',
 103+ 'approvedrevs-unapprove' => 'təsdiq etmənin ləğvi',
 104+ 'approvedrevs-view' => 'Görünüş:',
 105+);
 106+
 107+/** Bashkir (Башҡортса)
 108+ * @author Assele
 109+ * @author Comp1089
 110+ * @author Haqmar
 111+ */
 112+$messages['ba'] = array(
 113+ 'approvedrevs-desc' => 'Биттең бер өлгөһөн раҫланған тип билдәләү',
 114+ 'approvedrevs-logname' => 'Өлгөләрҙе раҫлау яҙмалары журналы',
 115+ 'approvedrevs-logdesc' => 'Был — биттәрҙең раҫланған өлгөләре журналы.',
 116+ 'approvedrevs-approve' => 'раҫларға',
 117+ 'approvedrevs-unapprove' => 'раҫлауҙы алырға',
 118+ 'approvedrevs-approvesuccess' => 'Биттең был өлгөһө раҫланған тип билдәләнде.',
 119+ 'approvedrevs-unapprovesuccess' => 'Был биттең раҫланған өлгөһө юҡ.
 120+Уның урынына һуңғы өлгө күрһәтеләсәк.',
 121+ 'approvedrevs-unapprovesuccess2' => 'Был биттең башҡа раҫланған өлгөһө юҡ.
 122+Уның урынына буш бит күрһәтеләсәк.',
 123+ 'approvedrevs-approveaction' => '$2 өлгөһөн "[[$1]]" битенең раҫланған өлгөһө тип билдәләргә',
 124+ 'approvedrevs-unapproveaction' => '"[[$1]]" битенең раҫланған өлгөһөнөң раҫланыуын алырға',
 125+ 'approvedrevs-notlatest' => 'Был — биттең раҫланған өлгөһө. Яңыраҡ өлгөләр бар.',
 126+ 'approvedrevs-approvedandlatest' => 'Был — биттең раҫланған өлгөһө, ул — шулай уҡ биттең яңы өлгөһө.',
 127+ 'approvedrevs-blankpageshown' => 'Был бит өсөн раҫланған өлгөләр юҡ.',
 128+ 'approvedrevs-editwarning' => 'Зинһар, иғтибар итегеҙ, һеҙ хәҙер был биттең һуңғы өлгөһөн мөхәррирләйһегеҙ, әммә ул күрһәтелмәй, сөнки ул раҫланмаған.',
 129+ 'approvedrevs' => 'Раҫланған өлгөләр',
 130+ 'approvedrevs-approvedpages' => 'Раҫланған биттәр',
 131+ 'approvedrevs-notlatestpages' => 'Был — биттең раҫланған өлгөһө. Яңыраҡ өлгөләр бар.',
 132+ 'approvedrevs-unapprovedpages' => 'Раҫланмаған биттәр',
 133+ 'approvedrevs-view' => 'Ҡарап сығыу:',
 134+ 'approvedrevs-revisionnumber' => '$1 өлгө',
 135+ 'approvedrevs-approvedby' => '$2 $1 тарафынан раҫланған',
 136+ 'approvedrevs-difffromlatest' => 'һуңғы менән айырма',
 137+ 'approvedrevs-approvelatest' => 'иң һуңғыһын раҫларға',
 138+ 'approvedrevs-approvethisrev' => 'Был өлгөнө раҫларға.',
 139+ 'approvedrevs-viewlatestrev' => 'Иң һуңғы өлгөнө ҡарау',
 140+ 'right-approverevisions' => 'Вики-биттәрҙең ҡайһы бер өлгөләрен раҫланған тип билдәләү',
 141+ 'right-viewlinktolatest' => 'Раҫланған өлгөләре булған биттәрҙең өҫкө өлөшөндә аңлатманы ҡарау',
 142+);
 143+
 144+/** Belarusian (Taraškievica orthography) (‪Беларуская (тарашкевіца)‬)
 145+ * @author EugeneZelenko
 146+ * @author Jim-by
 147+ * @author Wizardist
 148+ */
 149+$messages['be-tarask'] = array(
 150+ 'approvedrevs-desc' => 'Зацьвердзіць адну вэрсію старонкі',
 151+ 'approvedrevs-logname' => 'Журнал зацьверджаньня вэрсіяў',
 152+ 'approvedrevs-logdesc' => 'Гэта журнал зацьверджаных вэрсіяў.',
 153+ 'approvedrevs-approve' => 'зацьвердзіць',
 154+ 'approvedrevs-unapprove' => 'адхіліць',
 155+ 'approvedrevs-approvesuccess' => 'Гэтая вэрсія старонкі была зацьверджаная.',
 156+ 'approvedrevs-unapprovesuccess' => 'Болей не існуе зацьверджанай вэрсіі гэтай старонкі.
 157+Замест яе будзе паказаная апошняя вэрсія.',
 158+ 'approvedrevs-unapprovesuccess2' => 'Болей не існуе зацьверджанай вэрсіі гэтай старонкі.
 159+Замест яе будзе паказаная пустая старонка.',
 160+ 'approvedrevs-approveaction' => 'зацьвердзіць $2 як зацьверджаную вэрсію старонкі «[[$1]]»',
 161+ 'approvedrevs-unapproveaction' => 'зьняць зацьверджаньне з вэрсіі старонкі «[[$1]]»',
 162+ 'approvedrevs-notlatest' => 'Гэта зацьверджаная вэрсія гэтай старонкі; гэта не апошняя вэрсія.',
 163+ 'approvedrevs-approvedandlatest' => 'Гэта зацьверджаная вэрсія гэтай старонкі, адначасова яна зьяўляецца апошняй вэрсіяй.',
 164+ 'approvedrevs-blankpageshown' => 'Для гэтай старонкі няма зацьверджанай вэрсіі.',
 165+ 'approvedrevs-editwarning' => 'Калі ласка, памятайце, што зараз Вы рэдагуеце апошнюю вэрсію гэтай старонкі, якая яшчэ не зьяўляецца зацьверджанай і не паказваецца па змоўчваньні.',
 166+ 'approvedrevs' => 'Зацьверджаныя вэрсіі',
 167+ 'approvedrevs-approvedpages' => 'Зацьверджаныя старонкі',
 168+ 'approvedrevs-notlatestpages' => 'Старонкі, зацьверджаныя вэрсіі якіх не зьяўляюцца апошнімі',
 169+ 'approvedrevs-unapprovedpages' => 'Незацьверджаныя старонкі',
 170+ 'approvedrevs-view' => 'Прагляд:',
 171+ 'approvedrevs-revisionnumber' => 'вэрсія $1',
 172+ 'approvedrevs-approvedby' => 'зацьверджаная $1 $2',
 173+ 'approvedrevs-difffromlatest' => 'адрозьненьне з апошняй',
 174+ 'approvedrevs-approvelatest' => 'зацьвердзіць апошнюю',
 175+ 'approvedrevs-approvethisrev' => 'Зацьвердзіць гэтую вэрсію.',
 176+ 'approvedrevs-viewlatestrev' => 'Паказаць апошнюю вэрсію.',
 177+ 'right-approverevisions' => 'зацьверджаньне вызначаных вэрсіяў вікі-старонак',
 178+ 'right-viewlinktolatest' => 'прагляд тлумачальнага тэксту ў версе старонак, якія маюць зацьверджаныя вэрсіі',
 179+);
 180+
 181+/** Bulgarian (Български)
 182+ * @author DCLXVI
 183+ */
 184+$messages['bg'] = array(
 185+ 'approvedrevs' => 'Одобрени редакции',
 186+);
 187+
 188+/** Bengali (বাংলা)
 189+ * @author Bellayet
 190+ * @author Wikitanvir
 191+ */
 192+$messages['bn'] = array(
 193+ 'approvedrevs-approve' => 'অনুমোদন',
 194+ 'approvedrevs-unapprove' => 'অনুনমোদন',
 195+ 'approvedrevs' => 'গ্রহণকৃত সংস্করণ',
 196+ 'approvedrevs-approvedpages' => 'গ্রহণকৃত সংস্করণসহ সকল পাতা',
 197+ 'approvedrevs-notlatestpages' => 'যেসকল পাতার গ্রহণকৃত সংস্করণসমূহ তাদের সাম্প্রতিকতম নয় সেই পাতাগুলি',
 198+ 'approvedrevs-unapprovedpages' => 'অগ্রহণকৃত পাতাসমূহ',
 199+ 'approvedrevs-view' => 'দেখাও:',
 200+ 'approvedrevs-revisionnumber' => 'সংস্করণ $1',
 201+ 'approvedrevs-approvedby' => '$1 দ্বারা $2 তারিখে গৃহীত হয়েছে',
 202+ 'approvedrevs-difffromlatest' => 'সাম্প্রতিকতম সংস্করণ থেকে পার্থক্য',
 203+ 'approvedrevs-approvelatest' => 'সাম্প্রতিককালে গৃহীত',
 204+ 'approvedrevs-approvethisrev' => 'এই সংস্করণটি গ্রহণ করো।',
 205+ 'approvedrevs-viewlatestrev' => 'সবচেয়ে সাম্প্রতিকতম সংস্করণটি দেখাও।',
 206+);
 207+
 208+/** Breton (Brezhoneg)
 209+ * @author Fulup
 210+ * @author Y-M D
 211+ */
 212+$messages['br'] = array(
 213+ 'approvedrevs-desc' => 'Na verkañ nemet un adweladenn eus ur bajenn evel aprouet',
 214+ 'approvedrevs-logname' => 'Marilh aprouadennoù an adweladennoù',
 215+ 'approvedrevs-logdesc' => 'Hemañ eo Marilh an adweladennoù bet aprouet.',
 216+ 'approvedrevs-approve' => 'aprouiñ',
 217+ 'approvedrevs-unapprove' => 'dizaprouiñ',
 218+ 'approvedrevs-approvesuccess' => 'An adweladenn-mañ eus ar bajenn eo zo bet merket evel ar stumm aprouet.',
 219+ 'approvedrevs-unapprovesuccess' => "N'eus stumm aprouet ebet ken eus ar bajenn-mañ.
 220+En e lec'h e vo lakaet an adweladenn nevesañ.",
 221+ 'approvedrevs-unapprovesuccess2' => "N'eus stumm aprouet ebet ken eus ar bajenn-mañ.
 222+En e lec'h e vo lakaet ur bajenn wenn.",
 223+ 'approvedrevs-approveaction' => 'en deus merket $2 evel adweladenn aprouet "[[$1]]"',
 224+ 'approvedrevs-unapproveaction' => 'en deus nullet merkadur un adweladenn aprouet evit "[[$1]]"',
 225+ 'approvedrevs-notlatest' => "Homañ eo an adweladenn aprouet evit ar bajenn-mañ; n'eo ket ar stumm nevesañ.",
 226+ 'approvedrevs-approvedandlatest' => "Homañ eo an adweladenn aprouet evit ar bajenn-mañ; bez' eo ivez ar stumm nevesañ.",
 227+ 'approvedrevs-blankpageshown' => "N'eus bet aprouet adweladenn ebet evit ar bajenn-mañ.",
 228+ 'approvedrevs-editwarning' => "Taolit evezh emaoc'h o tegas kemmoù e stumm diwezhañ ar bajenn-mañ; n'eo ket hemañ ar stumm aprouet zo lakaet war wel dre ziouer.",
 229+ 'approvedrevs' => 'Adweladennoù degemeret',
 230+ 'approvedrevs-approvedpages' => 'Pajennoù aprouet',
 231+ 'approvedrevs-notlatestpages' => "Pajennoù n'eo ket an adweladennoù aprouet evito ar stumm nevesañ anezho.",
 232+ 'approvedrevs-unapprovedpages' => "Pajennoù n'int ket bet aprouet",
 233+ 'approvedrevs-view' => 'Gwelet :',
 234+ 'approvedrevs-revisionnumber' => 'Adweladenn $1',
 235+ 'approvedrevs-approvedby' => "aprouet gant $1 d'an $2",
 236+ 'approvedrevs-difffromlatest' => "diforc'h e-keñver ar stumm a-vremañ",
 237+ 'approvedrevs-approvelatest' => 'Aprouiñ an hini diwezhañ',
 238+ 'approvedrevs-approvethisrev' => 'Aprouiñ an adweladenn-mañ.',
 239+ 'approvedrevs-viewlatestrev' => 'Gwelet an adweladenn ziwezhañ.',
 240+ 'right-approverevisions' => 'Merkañ un adweladenn bennak eus ur bajenn wiki evel aprouet',
 241+ 'right-viewlinktolatest' => 'Gwelet an destenn displegañ e penn uhelañ ar pajennoù zo bet aprouet un adweladenn anezho',
 242+);
 243+
 244+/** Bosnian (Bosanski)
 245+ * @author CERminator
 246+ * @author Palapa
 247+ */
 248+$messages['bs'] = array(
 249+ 'approvedrevs-desc' => 'Postavljanje jedne revizije stranice kao odobrene',
 250+ 'approvedrevs-logname' => 'Zapisnik odobravanje revizija',
 251+ 'approvedrevs-logdesc' => 'Ovo je zapis revizija koje su odobrene.',
 252+ 'approvedrevs-approve' => 'odobri',
 253+ 'approvedrevs-unapprove' => 'neodobreno',
 254+ 'approvedrevs-approvesuccess' => 'Ova revizija stranice je postavljena kao odobrena verzija.',
 255+ 'approvedrevs-unapprovesuccess' => 'Više ne postoji odobrena verzija ove stranice.
 256+Umjesto toga, zadnja revizija će biti prikazana.',
 257+ 'approvedrevs-unapprovesuccess2' => 'Više ne postoji odobrena verzija ove stranice.
 258+Umjesto toga, bit će prikazana prazna stranica.',
 259+ 'approvedrevs-approveaction' => 'postavi $2 kao odobrenu reviziju za "[[$1]]"',
 260+ 'approvedrevs-unapproveaction' => 'ukloni odobrenu reviziju za "[[$1]]"',
 261+ 'approvedrevs-notlatest' => 'Ovo je odobrena verzija ove stranice; to nije najnovija verzija.',
 262+ 'approvedrevs-approvedandlatest' => 'Ovo je odobrena verzija ove stranice, a ujedno i najnovija.',
 263+ 'approvedrevs-blankpageshown' => 'Nijedna revizija nije odobrena za ovu stranicu.',
 264+ 'approvedrevs-editwarning' => 'Molimo vas da imate u vidu da sada uređujete posljednju reviziju ove stranice, koja nije odobrena što je prikazano po postavkama.',
 265+ 'approvedrevs' => 'Odobrene revizije',
 266+ 'approvedrevs-approvedpages' => 'Odobrene stranice',
 267+ 'approvedrevs-notlatestpages' => 'Stranice čija odobrena revizija nije njihova najnovija',
 268+ 'approvedrevs-unapprovedpages' => 'Neodobrene stranice',
 269+ 'approvedrevs-view' => 'Pregled:',
 270+ 'approvedrevs-revisionnumber' => 'revizija $1',
 271+ 'approvedrevs-approvedby' => 'odobreno od strane $1 dana $2',
 272+ 'approvedrevs-difffromlatest' => 'razl od posljednje',
 273+ 'approvedrevs-approvelatest' => 'odobri posljednju',
 274+ 'approvedrevs-approvethisrev' => 'Odobri ovu reviziju',
 275+ 'approvedrevs-viewlatestrev' => 'Pogledaj posljednju reviziju',
 276+ 'right-approverevisions' => 'Postavi određenu reviziju wiki stranice kao odobrenu',
 277+ 'right-viewlinktolatest' => 'Vidi tekst objašnjenja na vrhu stranica koje imaju odobrenu reviziju',
 278+);
 279+
 280+/** Catalan (Català)
 281+ * @author El libre
 282+ * @author SMP
 283+ * @author Toniher
 284+ */
 285+$messages['ca'] = array(
 286+ 'approvedrevs-desc' => "Estableix una única revisió d'una pàgina com aprovada",
 287+ 'approvedrevs-logname' => 'Registre de revisions aprovades',
 288+ 'approvedrevs-logdesc' => 'Aquest és el registre de les revisions que han estat aprovades.',
 289+ 'approvedrevs-approve' => 'aprova',
 290+ 'approvedrevs-unapprove' => 'desaprova',
 291+ 'approvedrevs-approvesuccess' => 'Aquesta revisió de la pàgina ha estat establerta com la versió aprovada.',
 292+ 'approvedrevs-unapprovesuccess' => 'Ja no hi ha una versió aprovada de la pàgina.
 293+Com a alternativa, es mostrarà la versió més recent.',
 294+ 'approvedrevs-unapprovesuccess2' => 'Ja no hi ha una versió aprovada de la pàgina.
 295+Com a alternativa, es mostrarà una pàgina en blanc.',
 296+ 'approvedrevs-approveaction' => 'estableix $2 com la revisió aprovada per a «[[$1]]»',
 297+ 'approvedrevs-unapproveaction' => "deixa d'establir la revisió aprovada per a «[[$1]]»",
 298+ 'approvedrevs-notlatest' => "Aquesta és la revisió aprovada d'aquesta pàgina, no la més recent.",
 299+ 'approvedrevs-approvedandlatest' => "Aquesta és la revisió aprovada d'aquesta pàgina, així com la més recent.",
 300+ 'approvedrevs-blankpageshown' => "No s'ha aprovat cap revisió d'aquesta pàgina.",
 301+ 'approvedrevs-editwarning' => "Tingueu en compte que esteu editant la darrera revisió d'aquesta pàgina, que no és l'aprovada que es mostra per defecte.",
 302+ 'approvedrevs' => 'Revisions aprovades',
 303+ 'approvedrevs-approvedpages' => 'Totes les pàgines amb una revisió aprovada',
 304+ 'approvedrevs-notlatestpages' => 'Pàgines les quals llur versió aprovada no és la més recent',
 305+ 'approvedrevs-unapprovedpages' => 'Pàgines no aprovades',
 306+ 'approvedrevs-view' => 'Mostra:',
 307+ 'approvedrevs-revisionnumber' => 'revisió $1',
 308+ 'approvedrevs-approvedby' => 'aprovat per $1 el $2',
 309+ 'approvedrevs-difffromlatest' => 'difereix del darrer',
 310+ 'approvedrevs-approvelatest' => 'aprova la darrera',
 311+ 'approvedrevs-approvethisrev' => 'Aprova aquesta revisió.',
 312+ 'approvedrevs-viewlatestrev' => 'Mostra la revisió més recent.',
 313+ 'right-approverevisions' => "Marca com aprovada una certa revisió d'una pàgina wiki",
 314+ 'right-viewlinktolatest' => 'Mostra un text explicatiu en la part superior de les pàgines que tenen una revisió aprovada',
 315+);
 316+
 317+/** Chechen (Нохчийн)
 318+ * @author Sasan700
 319+ */
 320+$messages['ce'] = array(
 321+ 'approvedrevs-view' => 'Хьажа:',
 322+);
 323+
 324+/** Czech (Česky) */
 325+$messages['cs'] = array(
 326+ 'approvedrevs-approve' => 'schválit',
 327+);
 328+
 329+/** German (Deutsch)
 330+ * @author Kghbln
 331+ * @author Purodha
 332+ */
 333+$messages['de'] = array(
 334+ 'approvedrevs-desc' => 'Ermöglicht es, stets eine bestimmte Version einer Seite als bestätigte Version anzuzeigen',
 335+ 'approvedrevs-logname' => 'Versionsbestätigungs-Logbuch',
 336+ 'approvedrevs-logdesc' => 'In diesem Logbuch werden die Versionsbestätigungen von Seiten protokolliert.',
 337+ 'approvedrevs-approve' => 'bestätigen',
 338+ 'approvedrevs-unapprove' => 'ablehnen',
 339+ 'approvedrevs-approvesuccess' => 'Diese Version der Seite wurde als bestätigte Version festgelegt.',
 340+ 'approvedrevs-unapprovesuccess' => 'Nunmehr gibt es keine bestätigte Version dieser Seite.
 341+Stattdessen wird die neueste Version angezeigt.',
 342+ 'approvedrevs-unapprovesuccess2' => 'Nunmehr gibt es keine bestätigte Version dieser Seite.
 343+Stattdessen wird eine leere Seite angezeigt.',
 344+ 'approvedrevs-approveaction' => '$2 als bestätigte Version für „[[$1]]“ festlegen',
 345+ 'approvedrevs-unapproveaction' => 'bestätigte Version für „[[$1]]“ zurücknehmen',
 346+ 'approvedrevs-notlatest' => 'Dies ist die bestätigte Version dieser Seite, allerdings nicht deren neueste Version.',
 347+ 'approvedrevs-approvedandlatest' => 'Dies ist die bestätigte sowie die neueste Version dieser Seite.',
 348+ 'approvedrevs-blankpageshown' => 'Keine Version dieser Seite ist bestätigt worden.',
 349+ 'approvedrevs-editwarning' => 'Beachte bitte, dass du gerade die neueste Version dieser Seite bearbeitest. Sie entspricht nicht der bestätigten Version, die standardmäßig angezeigt wird.',
 350+ 'approvedrevs' => 'Bestätigte Versionen',
 351+ 'approvedrevs-approvedpages' => 'Bestätigte Seiten',
 352+ 'approvedrevs-notlatestpages' => 'Seiten, deren bestätigte Version nicht die Neueste ist',
 353+ 'approvedrevs-unapprovedpages' => 'Nicht bestätigte Seiten',
 354+ 'approvedrevs-view' => 'Ansehen:',
 355+ 'approvedrevs-revisionnumber' => 'Version $1',
 356+ 'approvedrevs-approvedby' => 'von $1 am $2 bestätigt',
 357+ 'approvedrevs-difffromlatest' => 'Unterschied zur neuesten Version',
 358+ 'approvedrevs-approvelatest' => 'neueste Version bestätigen',
 359+ 'approvedrevs-approvethisrev' => 'Diese Version bestätigen.',
 360+ 'approvedrevs-viewlatestrev' => 'Die neueste Version ansehen.',
 361+ 'right-approverevisions' => 'Eine bestimmte Version einer Seite als bestätigt festlegen',
 362+ 'right-viewlinktolatest' => 'Erläuternde Hinweise im Kopfbereich der Seiten anzeigen, die eine bestätigte Version haben',
 363+);
 364+
 365+/** German (formal address) (‪Deutsch (Sie-Form)‬)
 366+ * @author Kghbln
 367+ */
 368+$messages['de-formal'] = array(
 369+ 'approvedrevs-editwarning' => 'Beachten Sie bitte, dass Sie gerade die neueste Version dieser Seite bearbeiten. Sie entspricht nicht der bestätigten Version, die standardmäßig angezeigt wird.',
 370+);
 371+
 372+/** Lower Sorbian (Dolnoserbski)
 373+ * @author Michawiki
 374+ */
 375+$messages['dsb'] = array(
 376+ 'approvedrevs-desc' => 'Wěstu wersiju boka ako pśizwólonu nastajiś',
 377+ 'approvedrevs-logname' => 'Protokol pśizwólonych wersijow',
 378+ 'approvedrevs-logdesc' => 'To jo protokol wersijow, kótarež su se pśizwólili.',
 379+ 'approvedrevs-approve' => 'pśizwóliś',
 380+ 'approvedrevs-unapprove' => 'zakazaś',
 381+ 'approvedrevs-approvesuccess' => 'Toś ta wersija boka jo se ako pśizwólona wersija nastajiła.',
 382+ 'approvedrevs-unapprovesuccess' => 'Njejo wěcej pśizwólona wersija za toś ten bok.
 383+Město togo nejnowša wersija se pokažo.',
 384+ 'approvedrevs-unapprovesuccess2' => 'Njejo wěcej wobkšuśona wersija za toś ten bok.
 385+Město togo prozna wersija se pokažo.',
 386+ 'approvedrevs-approveaction' => '$2 ako pśizwólonu wersiju za "[[$1]]" nastajiś',
 387+ 'approvedrevs-unapproveaction' => 'Pśizwólonu wersiju za "[[$1]]" anulěrowaś',
 388+ 'approvedrevs-notlatest' => 'To jo pśizwólona wersija toś togo boka; njejo nejnowša.',
 389+ 'approvedrevs-approvedandlatest' => 'To jo pśizwólona wersija toś togo boka a teke nejnowša.',
 390+ 'approvedrevs-blankpageshown' => 'Za toś ten bok njejo se žedna wersija wobkšuśiła.',
 391+ 'approvedrevs-editwarning' => 'Pšosym źiwaj na to, až wobźěłujoš něnto nejnowšu wersiju toś togo boka, kótaraž njejo wobkšuśona, kotraž so pó standarźe pokazujo.',
 392+ 'approvedrevs' => 'Wobkšuśone wersije',
 393+ 'approvedrevs-approvedpages' => 'Pśizwólone boki',
 394+ 'approvedrevs-notlatestpages' => 'Boki, kótarychž pśizwólona wersija jo nejnowša',
 395+ 'approvedrevs-unapprovedpages' => 'Njewobkšuśone boki',
 396+ 'approvedrevs-view' => 'Naglěd:',
 397+ 'approvedrevs-revisionnumber' => 'wersija $1',
 398+ 'approvedrevs-approvedby' => 'wót $1 dnja $2 wobkšuśona',
 399+ 'approvedrevs-difffromlatest' => 'Rozdźěl k nejnowšej wersiji',
 400+ 'approvedrevs-approvelatest' => 'nejnowšu wersiju wobkšuśiś',
 401+ 'approvedrevs-approvethisrev' => 'Toś tu wersiju wobkšuśiś.',
 402+ 'approvedrevs-viewlatestrev' => 'Nejnowšu wersiju pokazaś.',
 403+ 'right-approverevisions' => 'Wěstu wersiju wikiboka ako pśizwólonu nastajiś',
 404+ 'right-viewlinktolatest' => 'Tekst wujasnjenja górjejce na bokach pokazaś, kótarež maju pśizwólonu wersiju',
 405+);
 406+
 407+/** Greek (Ελληνικά)
 408+ * @author Aral
 409+ * @author Glavkos
 410+ * @author Περίεργος
 411+ */
 412+$messages['el'] = array(
 413+ 'approvedrevs-desc' => 'Καθορίζει μια ενιαία αναθεώρηση μιας σελίδας όπως έχει εγκριθεί',
 414+ 'approvedrevs-logname' => 'Ημερολόγιο καταγραφής της αποδοχής των αναθεωρήσεων',
 415+ 'approvedrevs-logdesc' => 'Αυτό είναι το ημερολόγιο των αναθεωρήσεων που έχουν εγκριθεί.',
 416+ 'approvedrevs-approve' => 'έγκριση',
 417+ 'approvedrevs-unapprove' => 'μη έγκριση',
 418+ 'approvedrevs-approvesuccess' => 'Αυτή η αναθεώρηση της σελίδας έχει οριστεί ως η εγκεκριμένη έκδοση.',
 419+ 'approvedrevs-unapprovesuccess' => 'Δεν υπάρχει πλέον μια εγκεκριμένη έκδοση για αυτή τη σελίδα.
 420+Σε αντικατάσταση, θα εμφανιστεί η πιο πρόσφατη αναθεώρηση.',
 421+ 'approvedrevs-unapprovesuccess2' => 'Δεν υπάρχει πλέον εγκεκριμένη έκδοση για αυτή τη σελίδα.
 422+Αντί για αυτό, θα εμφανίζεται μια κενή σελίδα.',
 423+ 'approvedrevs-approveaction' => 'Ορίστε $2 ως την εγκεκριμένη αναθεώρηση για "[[$1]]"',
 424+ 'approvedrevs-unapproveaction' => 'Ακυρώστε την εγκεκριμένη θεώρηση για [[$1]]',
 425+ 'approvedrevs-notlatest' => 'Αυτή είναι η εγκεκριμένη αναθεώρηση αυτής της σελίδας· δεν είναι η πιο πρόσφατη.',
 426+ 'approvedrevs-approvedandlatest' => 'Αυτή είναι η εγκεκριμένη αναθεώρηση αυτής της σελίδας, καθώς και η πιο πρόσφατη.',
 427+ 'approvedrevs-blankpageshown' => 'Καμία αναθεώρηση δεν έχει εγκριθεί για αυτή τη σελίδα.',
 428+ 'approvedrevs-editwarning' => 'Παρακαλώ λάβετε υπόχη σας ότι τώρα επεξεργάζεστε την τελευταία αναθεώρηση αυτή της σελίδας, η οποία δεν είναι η εγκεκριμένη να εμφανίζεται, από προεπιλογή.',
 429+ 'approvedrevs' => 'Εγκεκριμένες αναθεωρήσεις',
 430+ 'approvedrevs-approvedpages' => 'Εγκεκριμένες σελίδες',
 431+ 'approvedrevs-notlatestpages' => 'Σελίδες των οποίων οι εγκεκριμένες αναθεωρήσεις δεν είναι οι πιο πρόσφατες',
 432+ 'approvedrevs-unapprovedpages' => 'Μη εγκεκριμένες σελίδες',
 433+ 'approvedrevs-view' => 'Προβολή',
 434+ 'approvedrevs-revisionnumber' => 'αναθεώρηση $1',
 435+ 'approvedrevs-approvedby' => 'εγκρίθηκε από $1 στη $2',
 436+ 'approvedrevs-difffromlatest' => 'diff από το τελευταίο',
 437+ 'approvedrevs-approvelatest' => 'εγκρίνετε την πιο πρόσφατη',
 438+ 'approvedrevs-approvethisrev' => 'Εγκρίνετε αυτή την αναθεώρηση.',
 439+ 'approvedrevs-viewlatestrev' => 'Δείτε την πιο πρόσφατη αναθεώρηση.',
 440+ 'right-approverevisions' => 'Ορίστε μια συγκεκριμένη αναθεώρηση μιας σελίδας wiki ως εγκεκριμένη',
 441+ 'right-viewlinktolatest' => 'Προβολή επεξηγηματικού κειμένου στο επάνω μέρος των σελίδων που έχουν εγκεκριμένη αναθεώρηση',
 442+);
 443+
 444+/** Esperanto (Esperanto)
 445+ * @author Yekrats
 446+ */
 447+$messages['eo'] = array(
 448+ 'approvedrevs-desc' => 'Marki solan revizion de paĝo kiel aprobita',
 449+ 'approvedrevs-logname' => 'Protokolo pri aprobado de revizioj',
 450+ 'approvedrevs-logdesc' => 'Jen protokolo de revizioj aprobitaj.',
 451+ 'approvedrevs-approve' => 'aprobi',
 452+ 'approvedrevs-unapprove' => 'malaprobi',
 453+ 'approvedrevs-approvesuccess' => 'Ĉi tiu revizio de la paĝo estis aprobita kiel la aprobita versio.',
 454+ 'approvedrevs-unapprovesuccess' => 'Ne plu estas aprobita versio por ĉi tiu paĝo.
 455+Anstataŭe, la plej lasta revizio estos montrita.',
 456+ 'approvedrevs-unapprovesuccess2' => 'Ne plu estas aprobita verzio de ĉi tiu paĝo.
 457+Anstataŭe, nula paĝo estos montrita.',
 458+ 'approvedrevs-approveaction' => 'Establi $2 kiel la aprobita revizio por "[[$1]]"',
 459+ 'approvedrevs-unapproveaction' => 'malestabli apbrobitan revizion por "[[$1]]"',
 460+ 'approvedrevs-notlatest' => 'Jen la aprobita revizio de ĉi tiu paĝo; ĝi ne estas la plej lastatempa.',
 461+ 'approvedrevs-approvedandlatest' => 'Jen la aprobita revizio de ĉi tiu paĝo, kaj ankaŭ estis la plej lastatempa.',
 462+ 'approvedrevs-blankpageshown' => 'Neniu revizio estis aprobita por ĉi tiu paĝo.',
 463+ 'approvedrevs-editwarning' => 'Bonvolu noti ke vi nun redaktas la lastan revizion de ĉi tiu paĝo, kiu ne estas la aprobita revizio montrita defaŭlte.',
 464+ 'approvedrevs' => 'Aprobitaj revizioj',
 465+ 'approvedrevs-approvedpages' => 'Aprobitaj paĝoj',
 466+ 'approvedrevs-notlatestpages' => 'Paĝoj kies aprobita revizio ne estas la plej lasta.',
 467+ 'approvedrevs-unapprovedpages' => 'Malaprobitaj paĝoj',
 468+ 'approvedrevs-view' => 'Vidi:',
 469+ 'approvedrevs-revisionnumber' => 'revizio $1',
 470+ 'approvedrevs-approvedby' => 'aprobita de $1 je $2',
 471+ 'approvedrevs-difffromlatest' => 'Diferenco de la lasta revizio',
 472+ 'approvedrevs-approvelatest' => 'aprobi lastan revizion',
 473+ 'approvedrevs-approvethisrev' => 'Aprobi ĉi tiun revizion.',
 474+ 'approvedrevs-viewlatestrev' => 'Vidi la plej lastan revizion.',
 475+ 'right-approverevisions' => 'Marki certan revizion de vikipaĝo kiel aprobita',
 476+ 'right-viewlinktolatest' => 'Vidi eksplikantan tekston ĉe la paĝo-kapo kiu havas aprobitan revizion',
 477+);
 478+
 479+/** Spanish (Español)
 480+ * @author Crazymadlover
 481+ * @author DJ Nietzsche
 482+ * @author Dferg
 483+ * @author Jurock
 484+ * @author Locos epraix
 485+ * @author Mashandy
 486+ * @author Mor
 487+ * @author Translationista
 488+ */
 489+$messages['es'] = array(
 490+ 'approvedrevs-desc' => 'Establecer una revisión única de una página como aprovada',
 491+ 'approvedrevs-logname' => 'Registro de revisiones aprobadas',
 492+ 'approvedrevs-logdesc' => 'Este es el registro de las revisiones que han sido aprobadas.',
 493+ 'approvedrevs-approve' => 'aprobar',
 494+ 'approvedrevs-unapprove' => 'desaprobar',
 495+ 'approvedrevs-approvesuccess' => 'Esta revisión de la página ha sido establecida como la versión aprobada.',
 496+ 'approvedrevs-unapprovesuccess' => 'Ya no hay una versión aprobada para esta página.
 497+En su lugar, se muestra la revisión más reciente.',
 498+ 'approvedrevs-unapprovesuccess2' => 'Ya no hay una versión aprobada para esta página.
 499+En su lugar, se mostrará una página en blanco.',
 500+ 'approvedrevs-approveaction' => 'establecer $2 como la revisión aprobada para para "[[$1]]"',
 501+ 'approvedrevs-unapproveaction' => 'desestablecer la revisión aprobada para "[[$1]]"',
 502+ 'approvedrevs-notlatest' => 'Esta es la revisión aprobada de esta página, no es la más reciente.',
 503+ 'approvedrevs-approvedandlatest' => 'Esta es la revisión aprobada de esta página, siendo también la más reciente.',
 504+ 'approvedrevs-blankpageshown' => 'No se ha aprobado una revisión de esta página.',
 505+ 'approvedrevs-editwarning' => 'Tenga en cuenta que ahora está editando la última revisión de esta página, que no es la aprobada, que es la que se muestra de forma predeterminada.',
 506+ 'approvedrevs' => 'Revisiones aprobadas',
 507+ 'approvedrevs-approvedpages' => 'Páginas aprobadas',
 508+ 'approvedrevs-notlatestpages' => 'Páginas cuya revisión aprobada no es la más reciente',
 509+ 'approvedrevs-unapprovedpages' => 'Páginas reprobadas',
 510+ 'approvedrevs-view' => 'Ver:',
 511+ 'approvedrevs-revisionnumber' => 'revisión $1',
 512+ 'approvedrevs-approvedby' => 'autorizada por $1 a las $2',
 513+ 'approvedrevs-difffromlatest' => 'diff con la última revisión',
 514+ 'approvedrevs-approvelatest' => 'aprueba última',
 515+ 'approvedrevs-approvethisrev' => 'Aprobar esta revisión.',
 516+ 'approvedrevs-viewlatestrev' => 'Ver la revisión más reciente.',
 517+ 'right-approverevisions' => 'Establecer una cierta revisión de una página wiki como aprobada',
 518+ 'right-viewlinktolatest' => 'Ver texto explicativo en la parte superior de las páginas que tienen una revisión aprobada',
 519+);
 520+
 521+/** Persian (فارسی)
 522+ * @author Leyth
 523+ * @author Mjbmr
 524+ */
 525+$messages['fa'] = array(
 526+ 'approvedrevs-view' => 'مشاهده:',
 527+ 'approvedrevs-revisionnumber' => 'نسخهٔ $1',
 528+);
 529+
 530+/** Finnish (Suomi)
 531+ * @author Centerlink
 532+ * @author Crt
 533+ * @author Nike
 534+ */
 535+$messages['fi'] = array(
 536+ 'approvedrevs-desc' => 'Aseta yksittäinen sivuversio hyväksytyksi',
 537+ 'approvedrevs-logname' => 'Versiohyväksynnän loki',
 538+ 'approvedrevs-logdesc' => 'Tämä on hyväksyttyjen versioiden loki.',
 539+ 'approvedrevs-approve' => 'hyväksy',
 540+ 'approvedrevs-unapprove' => 'älä hyväksy',
 541+ 'approvedrevs-approvesuccess' => 'Tämä sivuversio on asetettu hyväksytyksi versioksi.',
 542+ 'approvedrevs-unapprovesuccess' => 'Tästä sivusta ei ole enää hyväksyttyä versiota.
 543+Sen sijaan, viimeisin versio näytetään.',
 544+ 'approvedrevs-notlatest' => 'Tämä on tämän sivun hyväksytty versio; se ei ole viimeisin.',
 545+ 'approvedrevs-approvedandlatest' => 'Tämä on tämän sivun hyväksytty ja samalla viimeisin versio.',
 546+ 'approvedrevs-approvedpages' => 'Hyväksytyt sivut',
 547+ 'approvedrevs-notlatestpages' => 'Sivut, joiden hyväksytty versio ei ole viimeisin',
 548+ 'right-approverevisions' => 'Asettaa wikisivun tietty versio hyväksytyksi',
 549+ 'right-viewlinktolatest' => 'Nähdä selittävä teksti niiden sivujen yläosassa, joilla on hyväksytty versio',
 550+);
 551+
 552+/** French (Français)
 553+ * @author IAlex
 554+ * @author Peter17
 555+ */
 556+$messages['fr'] = array(
 557+ 'approvedrevs-desc' => 'Marquer une seule révision d’une page comme approuvée',
 558+ 'approvedrevs-logname' => 'Journal des approbations de révisions',
 559+ 'approvedrevs-logdesc' => 'Ceci est le journal des révisions qui ont été marquées comme approuvées.',
 560+ 'approvedrevs-approve' => 'approuver',
 561+ 'approvedrevs-unapprove' => 'désapprouver',
 562+ 'approvedrevs-approvesuccess' => 'Cette révision de la page a été marquée comme étant la version approuvée.',
 563+ 'approvedrevs-unapprovesuccess' => 'Il n’y a plus de version approuvée de cette page.
 564+À la place, la révision la plus récente sera affichée.',
 565+ 'approvedrevs-unapprovesuccess2' => 'Il n’y a plus de version approuvée de cette page.
 566+À la place, une page vide sera affichée.',
 567+ 'approvedrevs-approveaction' => 'a marqué $2 comme la révision approuvée de « [[$1]] »',
 568+ 'approvedrevs-unapproveaction' => 'a annulé le marquage d’une révision approuvée pour « [[$1]] »',
 569+ 'approvedrevs-notlatest' => 'Ceci est la révision approuvée de cette page. Ce n’est pas la plus récente.',
 570+ 'approvedrevs-approvedandlatest' => 'Ceci est la révision approuvée de la page, et aussi la plus récente.',
 571+ 'approvedrevs-blankpageshown' => 'Aucune version n’a été approuvée pour cette page.',
 572+ 'approvedrevs-editwarning' => "Veuillez noter que vous modifiez actuellement la dernière version de cette page, qui n'est pas celle approuvée affichée par défaut.",
 573+ 'approvedrevs' => 'Révisions approuvées',
 574+ 'approvedrevs-approvedpages' => 'Pages approuvées',
 575+ 'approvedrevs-notlatestpages' => 'Pages dont la révision approuvée n’est pas la plus récente',
 576+ 'approvedrevs-unapprovedpages' => 'Pages non approuvées',
 577+ 'approvedrevs-view' => 'Voir :',
 578+ 'approvedrevs-revisionnumber' => 'modification $1',
 579+ 'approvedrevs-approvedby' => 'approuvé par $1 le $2',
 580+ 'approvedrevs-difffromlatest' => 'diff par rapport à actuel',
 581+ 'approvedrevs-approvelatest' => 'approuver la plus récente',
 582+ 'approvedrevs-approvethisrev' => 'Approuver cette révision.',
 583+ 'approvedrevs-viewlatestrev' => 'Voir la dernière révision.',
 584+ 'right-approverevisions' => 'Marquer une révision précise d’une page comme approuvée',
 585+ 'right-viewlinktolatest' => 'Voir le texte explicatif en haut des pages qui ont une révision approuvée',
 586+);
 587+
 588+/** Franco-Provençal (Arpetan)
 589+ * @author ChrisPtDe
 590+ */
 591+$messages['frp'] = array(
 592+ 'approvedrevs-desc' => 'Mârque una solèta vèrsion d’una pâge coment aprovâ.',
 593+ 'approvedrevs-logname' => 'Jornal de les aprobacions de vèrsions',
 594+ 'approvedrevs-logdesc' => 'O est lo jornal de les vèrsions qu’ont étâ marcâs coment aprovâs.',
 595+ 'approvedrevs-approve' => 'aprovar',
 596+ 'approvedrevs-unapprove' => 'dèsaprovar',
 597+ 'approvedrevs-approvesuccess' => 'Ceta vèrsion de la pâge at étâ marcâ coment la vèrsion aprovâ.',
 598+ 'approvedrevs-unapprovesuccess' => 'Y at gins de vèrsion aprovâ de ceta pâge.
 599+A la place, la vèrsion la ples novèla serat montrâ.',
 600+ 'approvedrevs-unapprovesuccess2' => 'Y at gins de vèrsion aprovâ de ceta pâge.
 601+A la place, una pâge voueda serat montrâ.',
 602+ 'approvedrevs-approveaction' => 'at marcâ $2 coment la vèrsion aprovâ de « [[$1]] »',
 603+ 'approvedrevs-unapproveaction' => 'at anulâ lo marcâjo d’una vèrsion aprovâ por « [[$1]] »',
 604+ 'approvedrevs-notlatest' => 'O est la vèrsion aprovâ de cela pâge ; o est pas la ples novèla.',
 605+ 'approvedrevs-approvedandlatest' => 'O est la vèrsion aprovâ de cela pâge, et pués la ples novèla.',
 606+ 'approvedrevs-blankpageshown' => 'Niona vèrsion at étâ aprovâ por cela pâge.',
 607+ 'approvedrevs-editwarning' => 'Volyéd notar que vos éte ora aprés changiér la dèrriére vèrsion de cela pâge, qu’est pas cela aprovâ montrâ per dèfôt.',
 608+ 'approvedrevs' => 'Vèrsions aprovâs',
 609+ 'approvedrevs-approvedpages' => 'Pâges aprovâs',
 610+ 'approvedrevs-notlatestpages' => 'Pâges que la vèrsion aprovâ est pas la ples novèla',
 611+ 'approvedrevs-unapprovedpages' => 'Pâges pas aprovâs',
 612+ 'approvedrevs-view' => 'Vêre :',
 613+ 'approvedrevs-revisionnumber' => 'vèrsion $1',
 614+ 'approvedrevs-approvedby' => 'aprovâ per $1 lo $2',
 615+ 'approvedrevs-difffromlatest' => 'dif per rapôrt a la ples novèla',
 616+ 'approvedrevs-approvelatest' => 'aprovar la ples novèla',
 617+ 'approvedrevs-approvethisrev' => 'Aprovar cela vèrsion.',
 618+ 'approvedrevs-viewlatestrev' => 'Vêre la vèrsion la ples novèla.',
 619+ 'right-approverevisions' => 'Marcar una vèrsion cllâra d’una pâge coment aprovâ',
 620+ 'right-viewlinktolatest' => 'Vêre lo tèxto èxplicatif d’amont les pâges qu’ont una vèrsion aprovâ',
 621+);
 622+
 623+/** Galician (Galego)
 624+ * @author Toliño
 625+ */
 626+$messages['gl'] = array(
 627+ 'approvedrevs-desc' => 'Marcar como aprobada unha única revisión dunha páxina',
 628+ 'approvedrevs-logname' => 'Rexistro de aprobación de revisións',
 629+ 'approvedrevs-logdesc' => 'Este é o rexistro das revisións aprobadas.',
 630+ 'approvedrevs-approve' => 'aprobar',
 631+ 'approvedrevs-unapprove' => 'desaprobar',
 632+ 'approvedrevs-approvesuccess' => 'Esta é a revisión aprobada da páxina.',
 633+ 'approvedrevs-unapprovesuccess' => 'Esta páxina xa non ten ningunha versión aprobada.
 634+No canto dela, móstrase a revisión máis recente.',
 635+ 'approvedrevs-unapprovesuccess2' => 'Esta páxina xa non ten ningunha versión aprobada.
 636+No canto dela, móstrase unha páxina en branco.',
 637+ 'approvedrevs-approveaction' => 'marcou $2 como a revisión aprobada de "[[$1]]"',
 638+ 'approvedrevs-unapproveaction' => 'anulou unha revisión aprobada de "[[$1]]"',
 639+ 'approvedrevs-notlatest' => 'Esta é a revisión aprobada da páxina, pero non é a máis recente.',
 640+ 'approvedrevs-approvedandlatest' => 'Esta é a revisión aprobada da páxina, e tamén a máis recente.',
 641+ 'approvedrevs-blankpageshown' => 'Esta páxina non ten ningunha revisión aprobada.',
 642+ 'approvedrevs-editwarning' => 'Teña en conta que está a editar a última revisión desta páxina, e non a aprobada que se mostra por defecto.',
 643+ 'approvedrevs' => 'Revisións aprobadas',
 644+ 'approvedrevs-approvedpages' => 'Todas as páxinas cunha revisión aprobada',
 645+ 'approvedrevs-notlatestpages' => 'Páxinas cuxa revisión aprobada non é a máis recente',
 646+ 'approvedrevs-unapprovedpages' => 'Páxinas suspendidas',
 647+ 'approvedrevs-view' => 'Ver:',
 648+ 'approvedrevs-revisionnumber' => 'revisión $1',
 649+ 'approvedrevs-approvedby' => 'aprobada por $1 o $2',
 650+ 'approvedrevs-difffromlatest' => 'diferenzas coa última',
 651+ 'approvedrevs-approvelatest' => 'aprobar a última',
 652+ 'approvedrevs-approvethisrev' => 'Aprobar esta revisión.',
 653+ 'approvedrevs-viewlatestrev' => 'Ollar a última revisión.',
 654+ 'right-approverevisions' => 'Marcar como aprobada unha revisión específica dunha páxina do wiki',
 655+ 'right-viewlinktolatest' => 'Ollar o texto explicativo ao comezo das páxinas que posúen unha revisión aprobada',
 656+);
 657+
 658+/** Swiss German (Alemannisch)
 659+ * @author Als-Holder
 660+ */
 661+$messages['gsw'] = array(
 662+ 'approvedrevs-desc' => 'E Version vun eree Syte as „aagluegt“ markiere',
 663+ 'approvedrevs-logname' => 'Versions-Markierigs-Logbuech',
 664+ 'approvedrevs-logdesc' => 'Des isch s Logbuech vu dr aagluegte Version',
 665+ 'approvedrevs-approve' => "As ''aagluegt'' markiere",
 666+ 'approvedrevs-unapprove' => 'nit frejgee',
 667+ 'approvedrevs-approvesuccess' => 'Die Version vu dr Syte isch as „aagluegti Version“ gsetzt wore.',
 668+ 'approvedrevs-unapprovesuccess' => 'S git kei bstetigti Version me vu däre Syte.
 669+Statt däm wird di nejscht Version aazeigt.',
 670+ 'approvedrevs-unapprovesuccess2' => 'S git kei bstetigti Version me vu däre Syte.
 671+Statt däm wird e lääri Syte aazeigt.',
 672+ 'approvedrevs-approveaction' => '$2 as aaglugti Version fir „[[$1]]“ setze',
 673+ 'approvedrevs-unapproveaction' => 'd Markierig as aagluegti Version fir „[[$1]]“ uuseneh',
 674+ 'approvedrevs-notlatest' => 'Des isch di aagluegt Version vu däre Syte; s isch nit di nejscht Version.',
 675+ 'approvedrevs-approvedandlatest' => 'Des isch di aagluegt Version vu däre Syte un au di nejscht.',
 676+ 'approvedrevs-blankpageshown' => 'Kei Version vu däre Syte isch bishär bstetigt wore.',
 677+ 'approvedrevs-editwarning' => 'Bitte gib Acht, ass Du grad an dr nejschte Version vu däre Syte schaffsch. Des isch nit di bstetigt Version, wu standardmäßig aazeigt wird.',
 678+ 'approvedrevs' => 'Aagluegti Versione',
 679+ 'approvedrevs-approvedpages' => 'Aagluegti Syte',
 680+ 'approvedrevs-notlatestpages' => 'Syte, wu di aagluegt Version nit di nejscht isch',
 681+ 'approvedrevs-unapprovedpages' => 'Nit bstetigti Syte',
 682+ 'approvedrevs-view' => 'Aaluege:',
 683+ 'approvedrevs-revisionnumber' => 'Version $1',
 684+ 'approvedrevs-approvedby' => 'vu $1 am $2 bstetigt',
 685+ 'approvedrevs-difffromlatest' => 'Unterschid zue dr nejschte Version',
 686+ 'approvedrevs-approvelatest' => 'nejschti Version bstetige',
 687+ 'approvedrevs-approvethisrev' => 'Die Version bstetige.',
 688+ 'approvedrevs-viewlatestrev' => 'Di nejscht Version aaluege.',
 689+ 'right-approverevisions' => 'E sicheri Version vun ere Wikisyte as aagluegt markiere',
 690+ 'right-viewlinktolatest' => 'Dr Erklerigstext aaluege obe uf Syte, wu s e aagluegti Version git',
 691+);
 692+
 693+/** Hebrew (עברית)
 694+ * @author Amire80
 695+ */
 696+$messages['he'] = array(
 697+ 'approvedrevs-desc' => 'הגדרת גרסה אחת של דף כגרסה מאושרת',
 698+ 'approvedrevs-logname' => 'יומן אישור גרסאות',
 699+ 'approvedrevs-logdesc' => 'זהו יומן של גרסאות שאושרו.',
 700+ 'approvedrevs-approve' => 'לאשר',
 701+ 'approvedrevs-unapprove' => 'לבטל אישור',
 702+ 'approvedrevs-approvesuccess' => 'הגרסה הזאת של הדף הוגדרה כגרסה מאושרת.',
 703+ 'approvedrevs-unapprovesuccess' => 'אין עוד גרסה מאושרת לדף זה.
 704+במקום זאת תוצג הגרסה העדכנית ביותר.',
 705+ 'approvedrevs-unapprovesuccess2' => 'אין עוד גרסה מאושרת לדף זה.
 706+במקום זאת יוצג דף ריק.',
 707+ 'approvedrevs-approveaction' => 'להגדיר את $2 בתור הגרסה המאושרת עבור "[[$1]]"',
 708+ 'approvedrevs-unapproveaction' => 'לבטל אישור גרסה עבור "[[$1]]"',
 709+ 'approvedrevs-notlatest' => 'זוהי הגרסה המאושרת של הדף הזה; היא לא העדכנית ביותר.',
 710+ 'approvedrevs-approvedandlatest' => 'זוהי הגרסה המאושרת של הדף הזה, והיא גם העדכנית ביותר.',
 711+ 'approvedrevs-blankpageshown' => 'שום גרסה של דף זה לא אושרה.',
 712+ 'approvedrevs-editwarning' => 'יש לשים לב לכך שעכשיו נערכת הגרסה העדכנית ביותר של הדף הזה, ולא המאושרת שמוצגת כבררת מחדל.',
 713+ 'approvedrevs' => 'גרסאות מאושרות',
 714+ 'approvedrevs-approvedpages' => 'כל הדפים עם גרסה מאושרת',
 715+ 'approvedrevs-notlatestpages' => 'דפים שהגרסה המאושרת שלהם אינה הגרסה העדכנית ביותר',
 716+ 'approvedrevs-unapprovedpages' => 'דפים לא מאושרים',
 717+ 'approvedrevs-view' => 'תצוגה:',
 718+ 'approvedrevs-revisionnumber' => 'גרסה $1',
 719+ 'approvedrevs-approvedby' => 'אושר על־ידי $1 ב־$2',
 720+ 'approvedrevs-difffromlatest' => 'השוואה עם הגרסה האחרונה',
 721+ 'approvedrevs-approvelatest' => 'לאשר את האחרונה',
 722+ 'approvedrevs-approvethisrev' => 'לאשר את הגרסה הזאת.',
 723+ 'approvedrevs-viewlatestrev' => 'להציג את הגרסה האחרונה.',
 724+ 'right-approverevisions' => 'הגדר גרסה מסוימת של דף הוויקי כמאושרת',
 725+ 'right-viewlinktolatest' => 'הצגת הסבר בחלק העליון של העמודים שיש להם גרסה מאושרת',
 726+);
 727+
 728+/** Upper Sorbian (Hornjoserbsce)
 729+ * @author Michawiki
 730+ */
 731+$messages['hsb'] = array(
 732+ 'approvedrevs-desc' => 'Jednotliwu wersiju strony jako schwalenu stajić',
 733+ 'approvedrevs-logname' => 'Protokol schwalenja wersijow',
 734+ 'approvedrevs-logdesc' => 'To je protokol wersije, kotrež buchu schwalene.',
 735+ 'approvedrevs-approve' => 'schwalić',
 736+ 'approvedrevs-unapprove' => 'zakazać',
 737+ 'approvedrevs-approvesuccess' => 'Tuta wersija strony je so jako schwalena wersija stajiła.',
 738+ 'approvedrevs-unapprovesuccess' => 'Schwalena wersija za tutu stronu wjace njeje.
 739+Město toho so najnowša wersija pokaza.',
 740+ 'approvedrevs-unapprovesuccess2' => 'Schwalena wersija za tutu stronu wjace njeje.
 741+Město toho so prózdna strona pokaza.',
 742+ 'approvedrevs-approveaction' => 'je $2 jako schwalenu wersiju za "[[$1]]" nastajił',
 743+ 'approvedrevs-unapproveaction' => 'je status schwalena wersija za "[[$1]]" wotstronił',
 744+ 'approvedrevs-notlatest' => 'To je schwalena wersija tuteje strony; njeje najnowša.',
 745+ 'approvedrevs-approvedandlatest' => 'To je schwalena wersija tuteje strony, kotraž je tež najnowša.',
 746+ 'approvedrevs-blankpageshown' => 'Za tutu stronu njeje so žana wersija schwaliła.',
 747+ 'approvedrevs-editwarning' => 'Prošu dźiwaj na to, zo nětko wobdźěłuješ najnowšu wersiju strony, kotraž schwalenej, kotraž so jako standard pokazuje, njewotpowěduje.',
 748+ 'approvedrevs' => 'Schwalene wersije',
 749+ 'approvedrevs-approvedpages' => 'Schwalene wersije',
 750+ 'approvedrevs-notlatestpages' => 'Strony, kotrychž wersija njeje jich najnowša',
 751+ 'approvedrevs-unapprovedpages' => 'Njeschwalene strony',
 752+ 'approvedrevs-view' => 'Wobhladać sej',
 753+ 'approvedrevs-revisionnumber' => 'wersija $1',
 754+ 'approvedrevs-approvedby' => 'wot $1 dnja $2 schwalena',
 755+ 'approvedrevs-difffromlatest' => 'rozdźěl k najnowšej wersiji',
 756+ 'approvedrevs-approvelatest' => 'najnowšu wersiju schwalić',
 757+ 'approvedrevs-approvethisrev' => 'Tutu wersiju schwalić.',
 758+ 'approvedrevs-viewlatestrev' => 'Najnowšu wersiju pokazać.',
 759+ 'right-approverevisions' => 'Wěstu wersiju wikistrony jako schwalenu nastajić',
 760+ 'right-viewlinktolatest' => 'Rozłožowacy tekst horjeka na stronach pokazać, kotrež maja schwalenu wersiju.',
 761+);
 762+
 763+/** Hungarian (Magyar)
 764+ * @author Misibacsi
 765+ */
 766+$messages['hu'] = array(
 767+ 'approvedrevs-approve' => 'elfogadás',
 768+ 'approvedrevs-approvedpages' => 'Ellenőrzött lapok',
 769+);
 770+
 771+/** Interlingua (Interlingua)
 772+ * @author McDutchie
 773+ */
 774+$messages['ia'] = array(
 775+ 'approvedrevs-desc' => 'Marcar un sol version de un pagina como approbate',
 776+ 'approvedrevs-logname' => 'Registro de approbation de versiones',
 777+ 'approvedrevs-logdesc' => 'Isto es le registro del versiones que ha essite approbate.',
 778+ 'approvedrevs-approve' => 'approbar',
 779+ 'approvedrevs-unapprove' => 'disapprobar',
 780+ 'approvedrevs-approvesuccess' => 'Iste version del pagina ha essite marcate como le version approbate.',
 781+ 'approvedrevs-unapprovesuccess' => 'Il non ha plus un version approbate de iste pagina.
 782+In loco de illo, le version le plus recente essera monstrate.',
 783+ 'approvedrevs-unapprovesuccess2' => 'Il non ha plus un version approbate de iste pagina.
 784+In loco de illo, un pagina vacue essera monstrate.',
 785+ 'approvedrevs-approveaction' => 'marcava $2 como le version approbate de "[[$1]]"',
 786+ 'approvedrevs-unapproveaction' => 'dismarcava le version approbate de "[[$1]]"',
 787+ 'approvedrevs-notlatest' => 'Isto es le version approbate de iste pagina; non es le plus recente.',
 788+ 'approvedrevs-approvedandlatest' => 'Isto es le version approbate de iste pagina, e tamben le plus recente.',
 789+ 'approvedrevs-blankpageshown' => 'Nulle version de iste pagina ha essite approbate.',
 790+ 'approvedrevs-editwarning' => 'Nota ben que tu modifica ora le ultime version de iste pagina, le qual non es le version approbate que es monstrate normalmente.',
 791+ 'approvedrevs' => 'Versiones approbate',
 792+ 'approvedrevs-approvedpages' => 'Paginas approbate',
 793+ 'approvedrevs-notlatestpages' => 'Paginas del quales le version approbate non es lor ultime',
 794+ 'approvedrevs-unapprovedpages' => 'Paginas non approbate',
 795+ 'approvedrevs-view' => 'Vider:',
 796+ 'approvedrevs-revisionnumber' => 'version $1',
 797+ 'approvedrevs-approvedby' => 'approbate per $1 le $2',
 798+ 'approvedrevs-difffromlatest' => 'differentias del ultime version',
 799+ 'approvedrevs-approvelatest' => 'approbar le plus recente',
 800+ 'approvedrevs-approvethisrev' => 'Approbar iste version.',
 801+ 'approvedrevs-viewlatestrev' => 'Vider le version le plus recente.',
 802+ 'right-approverevisions' => 'Marcar un certe version de un pagina wiki como approbate',
 803+ 'right-viewlinktolatest' => 'Vider le texto explicative in alto del paginas que ha un version approbate',
 804+);
 805+
 806+/** Indonesian (Bahasa Indonesia)
 807+ * @author Farras
 808+ * @author IvanLanin
 809+ */
 810+$messages['id'] = array(
 811+ 'approvedrevs-desc' => 'Tetapkan revisi tunggal halaman ini sebagai disetujui',
 812+ 'approvedrevs-logname' => 'Log penyetujuan revisi',
 813+ 'approvedrevs-logdesc' => 'Ini adalah log revisi yang telah disetujui.',
 814+ 'approvedrevs-approve' => 'setujui',
 815+ 'approvedrevs-unapprove' => 'tidak setujui',
 816+ 'approvedrevs-approvesuccess' => 'Revisi halaman ini telah ditetapkan sebagai revisi disetujui.',
 817+ 'approvedrevs-unapprovesuccess' => 'Tidak ada lagi versi disetujui untuk halaman ini.
 818+Revisi terkini akan ditampilkan.',
 819+ 'approvedrevs-unapprovesuccess2' => 'Tidak ada lagi versi disetujui untuk halaman ini.
 820+Halaman kosong akan ditampilkan.',
 821+ 'approvedrevs-approveaction' => 'tetapkan $2 sebagai revisi disetujui untuk "[[$1]]"',
 822+ 'approvedrevs-unapproveaction' => 'jangan tetapkan revisi disetujui untuk "[[$1]]"',
 823+ 'approvedrevs-notlatest' => 'Ini adalah revisi disetujui dari halaman ini; bukan revisi terkini.',
 824+ 'approvedrevs-approvedandlatest' => 'Ini adalah revisi disetujui dari halaman ini, juga revisi terkini.',
 825+ 'approvedrevs-blankpageshown' => 'Tidak ada revisi yang disetujui untuk halaman ini.',
 826+ 'approvedrevs-editwarning' => 'Harap perhatikan bahwa Anda sekarang menyunting revisi terbaru halaman ini, yang secara bawaan bukan merupakan revisi yang disetujui.',
 827+ 'approvedrevs' => 'Revisi yang disetujui',
 828+ 'approvedrevs-approvedpages' => 'Halaman yang disetujui',
 829+ 'approvedrevs-notlatestpages' => 'Halaman yang revisi disetujuinya bukanlah revisi terakhir',
 830+ 'approvedrevs-unapprovedpages' => 'Halaman tidak disetujui',
 831+ 'approvedrevs-view' => 'Lihat:',
 832+ 'approvedrevs-revisionnumber' => 'revisi $1',
 833+ 'approvedrevs-approvedby' => 'disetujui oleh $1 pada $2',
 834+ 'approvedrevs-difffromlatest' => 'perbedaan dengan yang terbaru',
 835+ 'approvedrevs-approvelatest' => 'setujui yang terbaru',
 836+ 'approvedrevs-approvethisrev' => 'Setujui revisi ini.',
 837+ 'approvedrevs-viewlatestrev' => 'Lihat revisi terbaru.',
 838+ 'right-approverevisions' => 'Tetapkan revisi tertentu dari halaman wiki sebagai disetujui',
 839+ 'right-viewlinktolatest' => 'Lihat penjelasan di atas halaman yang memiliki revisi disetujui',
 840+);
 841+
 842+/** Igbo (Igbo)
 843+ * @author Ukabia
 844+ */
 845+$messages['ig'] = array(
 846+ 'approvedrevs-approve' => 'kwé',
 847+ 'approvedrevs-unapprove' => 'ékwèkwàlà',
 848+ 'approvedrevs-approvedpages' => 'Ihü hé kwèrè',
 849+);
 850+
 851+/** Italian (Italiano)
 852+ * @author Rippitippi
 853+ */
 854+$messages['it'] = array(
 855+ 'approvedrevs-approve' => 'approva',
 856+ 'approvedrevs-unapprove' => 'non approvare',
 857+ 'approvedrevs-approvesuccess' => 'Questa revisione della pagina è stata impostata come la versione approvata.',
 858+ 'approvedrevs-approveaction' => 'impostare $2 come la revisione approvata per "[[$1]]"',
 859+ 'approvedrevs-notlatest' => 'Questa è la revisione approvata di questa pagina, non è la più recente.',
 860+ 'approvedrevs-approvedandlatest' => 'Questa è la revisione approvata di questa pagina, oltre ad essere la più recente.',
 861+ 'approvedrevs-blankpageshown' => 'Nessuna revisione è stata approvata per questa pagina.',
 862+ 'approvedrevs' => 'Revisioni approvate',
 863+ 'approvedrevs-approvedpages' => 'Tutte le pagine con una revisione approvata',
 864+ 'approvedrevs-unapprovedpages' => 'Pagine non approvate',
 865+ 'approvedrevs-view' => 'Visualizzare:',
 866+ 'approvedrevs-revisionnumber' => 'revisione $1',
 867+ 'approvedrevs-approvedby' => 'approvato da $1 su $2',
 868+ 'approvedrevs-difffromlatest' => 'differenza dal più recente',
 869+ 'approvedrevs-approvelatest' => 'approvare i più recenti',
 870+ 'approvedrevs-approvethisrev' => 'Approva questa revisione.',
 871+ 'approvedrevs-viewlatestrev' => 'Visualizzare la revisione più recente.',
 872+);
 873+
 874+/** Japanese (日本語)
 875+ * @author Iwai.masaharu
 876+ * @author Ohgi
 877+ * @author W.CC
 878+ * @author 青子守歌
 879+ */
 880+$messages['ja'] = array(
 881+ 'approvedrevs-desc' => 'ページから版を1つだけ選んで、承認済みに設定する',
 882+ 'approvedrevs-logname' => '版承認の記録',
 883+ 'approvedrevs-logdesc' => '以下は、承認された版の記録です。',
 884+ 'approvedrevs-approve' => '承認',
 885+ 'approvedrevs-unapprove' => '非承認',
 886+ 'approvedrevs-approvesuccess' => 'この版は承認済みの版として設定されました。',
 887+ 'approvedrevs-unapprovesuccess' => 'このページには承認済みの版がなくなりました。
 888+代わりに、最新版が表示されます。',
 889+ 'approvedrevs-unapprovesuccess2' => 'このページには承認済みの版がなくなりました。
 890+代わりに、空白のページが表示されます。',
 891+ 'approvedrevs-approveaction' => '$2を「[[$1]]」の承認済み版として設定',
 892+ 'approvedrevs-unapproveaction' => '「[[$1]]」の承認版を取り消し',
 893+ 'approvedrevs-notlatest' => 'これは、このページの承認済み版です。最新版ではありません。',
 894+ 'approvedrevs-approvedandlatest' => 'これは、このページの承認済み版で、また、最新版です。',
 895+ 'approvedrevs-blankpageshown' => 'このページには、承認済みの版がありません。',
 896+ 'approvedrevs-editwarning' => '現在編集中のものは、このページの最新版であり、既定で表示されている承認済みの版ではありません。',
 897+ 'approvedrevs' => '承認済み版',
 898+ 'approvedrevs-approvedpages' => '承認されたページ',
 899+ 'approvedrevs-notlatestpages' => '承認済み版が、最新版でないページ',
 900+ 'approvedrevs-unapprovedpages' => '未承認ページ',
 901+ 'approvedrevs-view' => '表示:',
 902+ 'approvedrevs-revisionnumber' => '版$1',
 903+ 'approvedrevs-approvedby' => '$2 の $1 によって承認されています',
 904+ 'approvedrevs-difffromlatest' => '最新版との差分',
 905+ 'approvedrevs-approvelatest' => '最新版を承認',
 906+ 'approvedrevs-approvethisrev' => 'この版を承認',
 907+ 'approvedrevs-viewlatestrev' => '最新版を閲覧',
 908+ 'right-approverevisions' => 'ウィキページの特定の版を承認済みに設定',
 909+ 'right-viewlinktolatest' => '承認済みの版があるページの冒頭に説明文を表示',
 910+);
 911+
 912+/** Khmer (ភាសាខ្មែរ)
 913+ * @author គីមស៊្រុន
 914+ */
 915+$messages['km'] = array(
 916+ 'approvedrevs-approve' => 'អនុម័ត',
 917+ 'approvedrevs-unapprove' => 'មិនអនុម័ត',
 918+);
 919+
 920+/** Colognian (Ripoarisch)
 921+ * @author Purodha
 922+ */
 923+$messages['ksh'] = array(
 924+ 'approvedrevs-desc' => 'Määd et müjjelesch, vun ener Sigg en beshtemmpte Version jood_ze_heiße.',
 925+ 'approvedrevs-logname' => 'Logbooch vum Versione vun Sigge Joodheiße',
 926+ 'approvedrevs-logdesc' => 'En heh däm Logbooch wääde de joodjeheiße Versione vun Sigge faßjehallde.',
 927+ 'approvedrevs-approve' => 'joodheiße',
 928+ 'approvedrevs-unapprove' => 'nit joodheiße',
 929+ 'approvedrevs-approvesuccess' => 'Heh di Version vun dä Sigge wood joodjeheiße.',
 930+ 'approvedrevs-unapprovesuccess' => 'Jäz jidd_et kein joodjeheiße Version vun dä Sigg mieh.
 931+Doför kritt mer de neuste Version aanjezeish.',
 932+ 'approvedrevs-unapprovesuccess2' => 'Jäz jidd_et kein joodjeheiße Version vun dä Sigg mieh.
 933+Doför kritt mer en läddije Sigg aanjezeish.',
 934+ 'approvedrevs-approveaction' => 'hät $2 vun dä Sigg „[[$1]]“ joodjeheiße',
 935+ 'approvedrevs-unapproveaction' => 'donn kein Version vun dä Sigg „[[$1]]“ mieh joodheiße',
 936+ 'approvedrevs-notlatest' => 'Dat heh es de joodjeheiße Version vun dä Sigg, es ävver nit de neuste Version.',
 937+ 'approvedrevs-approvedandlatest' => 'Dat heh es de joodjeheiße Version vun dä Sigg, un och de Neuste.',
 938+ 'approvedrevs-blankpageshown' => 'Vun heh dä Sigg jidd_et kein joodjeheiße Version.',
 939+ 'approvedrevs-editwarning' => 'Opjepaß: Do bes de neuste Version vun heh dä Sigg aam ändere. Dat es nit de joodjeheiße Version, di mer shtandmääßesch aanjezeish kritt.',
 940+ 'approvedrevs' => 'Joodjeheiße Versione',
 941+ 'approvedrevs-approvedpages' => 'All de Sigge med ene joodjeheiße Version',
 942+ 'approvedrevs-notlatestpages' => 'Sigge, woh de joodjeheiße Version nit de neuste es.',
 943+ 'approvedrevs-unapprovedpages' => 'De nit joodjeheiße Sigge',
 944+ 'approvedrevs-view' => 'Aanloore:',
 945+ 'approvedrevs-revisionnumber' => 'Version $1',
 946+ 'approvedrevs-approvedby' => 'joodjeheiße {{GENDER:$1|vum|vum|vum Metmaacher|vun dä|vum}} $1 aam $2',
 947+ 'approvedrevs-difffromlatest' => 'der Ongerscheid zor neuste Version',
 948+ 'approvedrevs-approvelatest' => 'de neuste Verson joodheiße',
 949+ 'approvedrevs-approvethisrev' => 'Heh di Version joodheiße',
 950+ 'approvedrevs-viewlatestrev' => 'De neuste Version aanloore',
 951+ 'right-approverevisions' => 'En beshtemmpte Version vun ene Sigg em Wiki jooheiße',
 952+ 'right-viewlinktolatest' => 'Täx met Henwies drövver op Sigge met joodjeheiße Version aanzeije',
 953+);
 954+
 955+/** Luxembourgish (Lëtzebuergesch)
 956+ * @author Les Meloures
 957+ * @author Robby
 958+ */
 959+$messages['lb'] = array(
 960+ 'approvedrevs-desc' => 'Eng eenzel Versioun vun enger Säit als nogekuckt markéieren',
 961+ 'approvedrevs-logname' => 'Logbuch vun den nogekuckte Säiten déi fräigi sinn',
 962+ 'approvedrevs-logdesc' => "Dëst ass d'Logbuch vun de Versiounen déi nogekuckt sinn.",
 963+ 'approvedrevs-approve' => 'zoustëmmen',
 964+ 'approvedrevs-unapprove' => 'Zoustëmmung zréckzéien',
 965+ 'approvedrevs-approvesuccess' => 'Dës Versioun vun der Säit gouf als nogekuckte Versioun fräiginn.',
 966+ 'approvedrevs-unapprovesuccess' => 'Et gëtt vun dëser Säit keng nogekuckte Versioun méi.
 967+Dofir gëtt déi rezentst Versioun gewisen.',
 968+ 'approvedrevs-unapprovesuccess2' => 'Et gëtt vun dëser Säit keng nogekuckte Versioun méi.
 969+Aplaz, gëtt eng eidel Säit gewisen.',
 970+ 'approvedrevs-approveaction' => '$2 als nogekuckt Versioun fir "[[$1]]" festleeën',
 971+ 'approvedrevs-unapproveaction' => 'nogekuckt Versioun fir "[[$1]]" zréckzéien',
 972+ 'approvedrevs-notlatest' => 'Dëst ass déi nogekuckte Versioun vun dëser Säit; et ass net déi rezentst.',
 973+ 'approvedrevs-approvedandlatest' => 'Dëst ass esouwuel déi nogekuckt wéi och déi rezentst Versioun vun dëser Säit.',
 974+ 'approvedrevs-blankpageshown' => 'Keng Versioun vun dëser Säit gouf nogekuckt.',
 975+ 'approvedrevs-editwarning' => 'Informatioun: Dir ännert déi lescht Versioun vun dëser Säit, déi net déi nogekuckten ass déi standardméisseg gewise gëtt.',
 976+ 'approvedrevs' => 'Nogekuckte Versiounen',
 977+ 'approvedrevs-approvedpages' => 'Nogekuckte Säiten',
 978+ 'approvedrevs-notlatestpages' => 'Säiten deenen hir nogekuckte Versioun net déi rezentst ass',
 979+ 'approvedrevs-unapprovedpages' => 'Net nogekuckte Säiten',
 980+ 'approvedrevs-view' => 'Weisen:',
 981+ 'approvedrevs-revisionnumber' => 'Versioun $1',
 982+ 'approvedrevs-approvedby' => 'confirméiert vum $1 de(n) $2',
 983+ 'approvedrevs-difffromlatest' => 'Ënnerscheed vun der rezenster',
 984+ 'approvedrevs-approvelatest' => 'lescht Versioun confirméieren',
 985+ 'approvedrevs-approvethisrev' => 'Dës Versioun confirméieren.',
 986+ 'approvedrevs-viewlatestrev' => 'Déi lescht Versioun weisen.',
 987+ 'right-approverevisions' => 'Eng bestëmmte Versioun vun enger Säit als nogekuckt markéieren',
 988+ 'right-viewlinktolatest' => 'Kuckt den Erklärungstext uewen op de Säiten déi nogekuckt Versiounen hunn',
 989+);
 990+
 991+/** Lithuanian (Lietuvių)
 992+ * @author Eitvys200
 993+ * @author Ignas693
 994+ */
 995+$messages['lt'] = array(
 996+ 'approvedrevs-desc' => 'Nustatyti vieną puslapį su patvirtinta peržiūros',
 997+ 'approvedrevs-logname' => 'Pakeitimo patvirtinimo žurnalas',
 998+ 'approvedrevs-logdesc' => 'Tai yra pataisymų, kurie buvo patvirtinti žurnalą.',
 999+ 'approvedrevs-approve' => 'Patvirtinti',
 1000+ 'approvedrevs-unapprove' => 'Patvirtinti',
 1001+ 'approvedrevs-approvesuccess' => 'Puslapio peržiūros yra nustatytas kaip patvirtintą versiją.',
 1002+ 'approvedrevs-unapprovesuccess' => 'Nebėra patvirtintų versija šio puslapio.
 1003+Vietoj to, rodoma paskutinio peržiūrėjimo.',
 1004+ 'approvedrevs-unapprovesuccess2' => 'Nebėra patvirtintų versija šio puslapio.
 1005+Vietoj to, rodoma paskutinio peržiūrėjimo.',
 1006+ 'approvedrevs-approveaction' => 'nustatyti $2 kaip patvirtinta peržiūros dėl "[[ $1 ]]"',
 1007+ 'approvedrevs-unapproveaction' => 'nustatyti $2 kaip patvirtinta peržiūros dėl "[[ $1 ]]"',
 1008+ 'approvedrevs-notlatest' => 'Tai yra patvirtintos peržiūrėjimo šio puslapio; tai ne pačius naujausius.',
 1009+ 'approvedrevs-approvedandlatest' => 'Tai yra patvirtintos peržiūrėjimo šio puslapio; tai ne pačius naujausius.',
 1010+ 'approvedrevs-blankpageshown' => 'Nr peržiūros buvo patvirtintas šio puslapio.',
 1011+ 'approvedrevs-editwarning' => 'Atkreipkite dėmesį, kad dabar redaguojate šiame puslapyje, kurie nėra patvirtinti vėliausios peržiūros vienas rodomi pagal numatytuosius parametrus.',
 1012+ 'approvedrevs' => 'Patvirtintų pataisymai',
 1013+ 'approvedrevs-approvedpages' => 'Visi puslapiai su patvirtinta peržiūros',
 1014+ 'approvedrevs-notlatestpages' => 'Puslapiai, kurių patvirtinto pakeitimo nėra jų naujausia',
 1015+ 'approvedrevs-unapprovedpages' => 'Nepatvirtintas puslapių',
 1016+ 'approvedrevs-view' => 'Žiūrėti:',
 1017+ 'approvedrevs-revisionnumber' => 'versija $1',
 1018+ 'approvedrevs-approvedby' => 'patvirtintas $1 dėl$2',
 1019+ 'approvedrevs-difffromlatest' => 'diff iš vėliau kaip',
 1020+ 'approvedrevs-approvelatest' => 'patvirtinti naujausią',
 1021+ 'approvedrevs-approvethisrev' => 'Patvirtinti šios peržiūros.',
 1022+ 'approvedrevs-viewlatestrev' => 'Peržiūrėti naujausių peržiūrėjimo.',
 1023+ 'right-approverevisions' => 'Nustatyti vieną puslapį su patvirtinta peržiūros',
 1024+ 'right-viewlinktolatest' => 'Peržiūrėti paaiškinamasis tekstas viršuje, puslapiai, kurie patvirtintų peržiūros',
 1025+);
 1026+
 1027+/** Macedonian (Македонски)
 1028+ * @author Bjankuloski06
 1029+ */
 1030+$messages['mk'] = array(
 1031+ 'approvedrevs-desc' => 'Поставање на една единствена ревизија на страницата како одобрена',
 1032+ 'approvedrevs-logname' => 'Дневник на одобрени ревизии',
 1033+ 'approvedrevs-logdesc' => 'Ова е дневникот на одобрени ревизии.',
 1034+ 'approvedrevs-approve' => 'одобри',
 1035+ 'approvedrevs-unapprove' => 'неодобрена',
 1036+ 'approvedrevs-approvesuccess' => 'Оваа ревизија на страницата е поставена како одобрена.',
 1037+ 'approvedrevs-unapprovesuccess' => 'Оваа страница повеќе нема одобрена верзија.
 1038+Наместо тоа ќе се прикажува најновата верзија.',
 1039+ 'approvedrevs-unapprovesuccess2' => 'Оваа страница повеќе нема одобрена верзија.
 1040+Наместо тоа ќе се прикажува празна страница.',
 1041+ 'approvedrevs-approveaction' => 'постави ја $2 за одобрена верзија на „[[$1]]“',
 1042+ 'approvedrevs-unapproveaction' => 'отстрани одобрена верзија на „[[$1]]“',
 1043+ 'approvedrevs-notlatest' => 'Ова е одобрената ревизија на страницава, но не е најновата.',
 1044+ 'approvedrevs-approvedandlatest' => 'Ова е одобрената ревизија на страницава, а воедно и најновата.',
 1045+ 'approvedrevs-blankpageshown' => 'Нема одобрена ревизија за страницава.',
 1046+ 'approvedrevs-editwarning' => 'Имајте предвид дека сега ја уредувате најновата верзија на страницава, која не е одобрената што се прикажува по основно.',
 1047+ 'approvedrevs' => 'Одобрени ревизии',
 1048+ 'approvedrevs-approvedpages' => 'Одобрени страници',
 1049+ 'approvedrevs-notlatestpages' => 'Страници чиишто одобрени ревизии не се најновите',
 1050+ 'approvedrevs-unapprovedpages' => 'Неодобрени страници',
 1051+ 'approvedrevs-view' => 'Преглед:',
 1052+ 'approvedrevs-revisionnumber' => 'ревизија $1',
 1053+ 'approvedrevs-approvedby' => 'одобрено од $1 на $2',
 1054+ 'approvedrevs-difffromlatest' => 'разл. од послед.',
 1055+ 'approvedrevs-approvelatest' => 'одобри најнова',
 1056+ 'approvedrevs-approvethisrev' => 'Одобри ја ревизијава.',
 1057+ 'approvedrevs-viewlatestrev' => 'Најнова ревизија.',
 1058+ 'right-approverevisions' => 'Поставете извесна ревизија на вики-страница како одобрена',
 1059+ 'right-viewlinktolatest' => 'Погледајте го образложението на врвот од страниците што имаат одобрена верзија',
 1060+);
 1061+
 1062+/** Malayalam (മലയാളം)
 1063+ * @author Junaidpv
 1064+ * @author Praveenp
 1065+ */
 1066+$messages['ml'] = array(
 1067+ 'approvedrevs-desc' => 'ഒരു താളിന്റെ ഒരൊറ്റ നാൾപ്പതിപ്പ് അംഗീകരിച്ചതായി സജ്ജീകരിക്കുക',
 1068+ 'approvedrevs-logname' => 'നാൾപ്പതിപ്പ് അംഗീകരണ രേഖ',
 1069+ 'approvedrevs-logdesc' => 'ഇത് നാൾപ്പതിപ്പുകൾ അംഗീകരിച്ചതിന്റെ രേഖയാണ്.',
 1070+ 'approvedrevs-approve' => 'അംഗീകരിക്കുക',
 1071+ 'approvedrevs-unapprove' => 'അംഗീകാരം നീക്കുക',
 1072+ 'approvedrevs-approvesuccess' => 'താളിന്റെ ഈ നാൾപ്പതിപ്പ് അംഗീകരിച്ച പതിപ്പായി സജ്ജീകരിച്ചിരിക്കുന്നു.',
 1073+ 'approvedrevs-unapprovesuccess' => 'ഈ താളിൽ അംഗീകരിച്ച പതിപ്പ് ഇല്ല.
 1074+പകരം, ഏറ്റവും പുതിയ നാൾപ്പതിപ്പ് പ്രദർശിപ്പിക്കുന്നു.',
 1075+ 'approvedrevs-unapprovesuccess2' => 'ഈ താളിന് അംഗീകരിച്ച പതിപ്പ് ഇല്ല.
 1076+പകരം, ശൂന്യമായ താൾ പ്രദർശിപ്പിക്കുന്നു.',
 1077+ 'approvedrevs-approveaction' => '"[[$1]]" താളിന്റെ അംഗീകരിച്ച പതിപ്പായി $2 സജ്ജീകരിക്കുക',
 1078+ 'approvedrevs-unapproveaction' => '"[[$1]]" എന്നതിന്റെ അംഗീകൃത നാൾപ്പതിപ്പ് സജ്ജീകരണം നീക്കുക',
 1079+ 'approvedrevs-notlatest' => 'ഇത് ഈ താളിന്റെ അംഗീകരിച്ച നാൾപ്പതിപ്പ് ആണ്; ഇത് ഏറ്റവും പുതിയത് അല്ല.',
 1080+ 'approvedrevs-approvedandlatest' => 'ഇത് ഈ താളിന്റെ അംഗീകരിച്ച പതിപ്പ് ആണ്, അതേ പോലെ ഏറ്റവും പുതിയതുമാണ്.',
 1081+ 'approvedrevs-blankpageshown' => 'ഈ താളിന്റെ ഒരു നാൾപ്പതിപ്പും അംഗീകരിച്ചിട്ടില്ല.',
 1082+ 'approvedrevs-editwarning' => 'ഈ താളിന്റെ ഏറ്റവും പുതിയ നാൾപ്പതിപ്പ് അല്ല താങ്കൾ തിരുത്തുന്നതെന്ന് ശ്രദ്ധിക്കുക, അത് സ്വതേ പ്രദർശിപ്പിച്ചിരിക്കുന്ന പതിപ്പ് അല്ല.',
 1083+ 'approvedrevs' => 'അംഗീകരിച്ച നാൾപ്പതിപ്പുകൾ',
 1084+ 'approvedrevs-approvedpages' => 'അംഗീകരിച്ച താളുകൾ',
 1085+ 'approvedrevs-notlatestpages' => 'താളിന്റെ ഏറ്റവും പുതിയ നാൾപ്പതിപ്പ് അംഗീകരിച്ചതല്ലാത്ത താളുകൾ',
 1086+ 'approvedrevs-unapprovedpages' => 'അംഗീകരിച്ചിട്ടില്ലാത്ത താളുകൾ',
 1087+ 'approvedrevs-view' => 'കാണുക:',
 1088+ 'approvedrevs-revisionnumber' => 'നാൾപ്പതിപ്പ് $1',
 1089+ 'approvedrevs-approvedby' => '$2-നു $1 അംഗീകരിച്ചത്',
 1090+ 'approvedrevs-difffromlatest' => 'ഏറ്റവും പുതിയ പതിപ്പിൽ നിന്നുള്ള വ്യത്യാസം',
 1091+ 'approvedrevs-approvelatest' => 'ഒടുവിലേത്തത് അംഗീകരിക്കുക',
 1092+ 'approvedrevs-approvethisrev' => 'ഈ നാൾപ്പതിപ്പ് അംഗീകരിക്കുക.',
 1093+ 'approvedrevs-viewlatestrev' => 'ഏറ്റവും പുതിയ നാൾപ്പതിപ്പ് കാണുക.',
 1094+ 'right-approverevisions' => 'വിക്കി താളിന്റെ ഒരു പ്രത്യേക നാൾപ്പതിപ്പ് അംഗീകരിച്ചതായി സജ്ജീകരിക്കുക',
 1095+ 'right-viewlinktolatest' => 'അംഗീകരിച്ച നാൾപ്പതിപ്പുള്ള താളുകളുടെ മുകളിലായി ഒരു വിശദീകരണ കുറിപ്പ് പ്രദർശിപ്പിക്കുക',
 1096+);
 1097+
 1098+/** Malay (Bahasa Melayu)
 1099+ * @author Anakmalaysia
 1100+ */
 1101+$messages['ms'] = array(
 1102+ 'approvedrevs-desc' => 'Tetapkan satu semakan laman sebagai diluluskan',
 1103+ 'approvedrevs-logname' => 'Log pelulusan semakan',
 1104+ 'approvedrevs-logdesc' => 'Inilah log semakan yang diluluskan.',
 1105+ 'approvedrevs-approve' => 'luluskan',
 1106+ 'approvedrevs-unapprove' => 'tarik balik kelulusan',
 1107+ 'approvedrevs-approvesuccess' => 'Semakan ini telah disetkan sebagai versi yang diluluskan bagi laman ini.',
 1108+ 'approvedrevs-unapprovesuccess' => 'Tiada lagi versi yang diluluskan bagi laman ini.
 1109+Sebaliknya, semakan terkini ditunjukkan.',
 1110+ 'approvedrevs-unapprovesuccess2' => 'Tiada lagi versi yang diluluskan bagi laman ini.
 1111+Sebaliknya, laman kosong ditunjukkan.',
 1112+ 'approvedrevs-approveaction' => 'tetapkan $2 sebagai semakan yang diluluskan untuk "[[$1]]"',
 1113+ 'approvedrevs-unapproveaction' => 'tarik balik semakan yang diluluskan untuk "[[$1]]"',
 1114+ 'approvedrevs-notlatest' => 'Inilah semakan yang diluluskan untuk laman ini, tetapi bukan yang terkini.',
 1115+ 'approvedrevs-approvedandlatest' => 'Inilah semakan yang diluluskan untuk laman ini, dan juga yang terkini.',
 1116+ 'approvedrevs-blankpageshown' => 'Tiada semakan yang diluluskan untuk laman ini.',
 1117+ 'approvedrevs-editwarning' => 'Sila ambil perhatian bahawa anda sedang menyunting semakan terkini bagi laman ini yang bukan versi diluluskan yang ditunjukkan secara asali.',
 1118+ 'approvedrevs' => 'Semakan yang diluluskan',
 1119+ 'approvedrevs-approvedpages' => 'Semua laman yang mempunyai semakan yang diluluskan',
 1120+ 'approvedrevs-notlatestpages' => 'Laman yang semakan diluluskannya bukan semakan terkini',
 1121+ 'approvedrevs-unapprovedpages' => 'Laman yang tidak diluluskan',
 1122+ 'approvedrevs-view' => 'Lihat:',
 1123+ 'approvedrevs-revisionnumber' => 'semakan $1',
 1124+ 'approvedrevs-approvedby' => 'diluluskan oleh $1 pada $2',
 1125+ 'approvedrevs-difffromlatest' => 'perbezaan daripada semakan terkini',
 1126+ 'approvedrevs-approvelatest' => 'luluskan semakan terkini',
 1127+ 'approvedrevs-approvethisrev' => 'Luluskan semakan ini.',
 1128+ 'approvedrevs-viewlatestrev' => 'Lihat semakan terkini.',
 1129+ 'right-approverevisions' => 'Memberikan kelulusan kepada semakan dalam laman wiki',
 1130+ 'right-viewlinktolatest' => 'Melihat teks penjelasan di bahagian atas laman yang mempunyai semakan diluluskan',
 1131+);
 1132+
 1133+/** Norwegian (bokmål)‬ (‪Norsk (bokmål)‬)
 1134+ * @author Nghtwlkr
 1135+ */
 1136+$messages['nb'] = array(
 1137+ 'approvedrevs-desc' => 'Sett en enkelt revisjon av en side som godkjent',
 1138+ 'approvedrevs-logname' => 'Godkjenningslogg for revisjoner',
 1139+ 'approvedrevs-logdesc' => 'Dette er loggen over revisjoner som har blitt godkjent.',
 1140+ 'approvedrevs-approve' => 'godkjenn',
 1141+ 'approvedrevs-unapprove' => 'ikke godkjenn',
 1142+ 'approvedrevs-approvesuccess' => 'Denne revisjonen av siden har blitt satt som den godkjente versjonen.',
 1143+ 'approvedrevs-unapprovesuccess' => 'Det er ikke lenger en godkjent versjon av denne siden.
 1144+I stedet vil den nyeste revisjonen bli vist.',
 1145+ 'approvedrevs-unapprovesuccess2' => 'Det er ikke lenger en godkjent versjon av denne siden.
 1146+I stedet vil en blank side bli vist.',
 1147+ 'approvedrevs-approveaction' => 'sett $2 som den godkjente revisjonen for «[[$1]]»',
 1148+ 'approvedrevs-unapproveaction' => 'fjern godkjenning av revisjon for «[[$1]]»',
 1149+ 'approvedrevs-notlatest' => 'Dette er den godkjente revisjonen av denne siden; det er ikke den nyeste.',
 1150+ 'approvedrevs-approvedandlatest' => 'Dette er den godkjente revisjonen av denne siden, samt den nyeste.',
 1151+ 'approvedrevs-blankpageshown' => 'Ingen revisjon har blitt godkjent for denne siden.',
 1152+ 'approvedrevs-editwarning' => 'Merk at du nå redigerer den nyeste revisjonen av denne siden, som ikke er den godkjente siden som vises som standard.',
 1153+ 'approvedrevs' => 'Godkjente revisjoner',
 1154+ 'approvedrevs-approvedpages' => 'Godkjente sider',
 1155+ 'approvedrevs-notlatestpages' => 'Sider der den godkjente revisjonen ikke er deres nyeste.',
 1156+ 'approvedrevs-unapprovedpages' => 'Ikke-godkjente sider',
 1157+ 'approvedrevs-view' => 'Vis:',
 1158+ 'approvedrevs-revisionnumber' => 'revisjon $1',
 1159+ 'approvedrevs-approvedby' => 'godkjent av $1, $2',
 1160+ 'approvedrevs-difffromlatest' => 'diff fra siste',
 1161+ 'approvedrevs-approvelatest' => 'godkjenn siste',
 1162+ 'approvedrevs-approvethisrev' => 'Godkjenn denne revisjonen.',
 1163+ 'approvedrevs-viewlatestrev' => 'Vis den nyeste revisjonen.',
 1164+ 'right-approverevisions' => 'Sett en viss revisjon av en wikiside som godkjent',
 1165+ 'right-viewlinktolatest' => 'Vis forklarende tekst på toppen av sider som har en godkjent revisjon',
 1166+);
 1167+
 1168+/** Dutch (Nederlands)
 1169+ * @author Siebrand
 1170+ */
 1171+$messages['nl'] = array(
 1172+ 'approvedrevs-desc' => 'Een versie van een pagina als goedgekeurd instellen',
 1173+ 'approvedrevs-logname' => 'Logboek versiegoedkeuring',
 1174+ 'approvedrevs-logdesc' => 'Dit is het logboek met de versies die zijn goedgekeurd.',
 1175+ 'approvedrevs-approve' => 'goedkeuren',
 1176+ 'approvedrevs-unapprove' => 'afkeuren',
 1177+ 'approvedrevs-approvesuccess' => 'Deze versie van de pagina is ingesteld als de goedgekeurde versie.',
 1178+ 'approvedrevs-unapprovesuccess' => 'Deze pagina heeft niet langer een goedgekeurde versie.
 1179+Daarom wordt de laatste versie weergegeven.',
 1180+ 'approvedrevs-unapprovesuccess2' => 'Er is niet langer een goedgekeurde versie voor deze pagina.
 1181+Er wordt een lege pagina weergegeven.',
 1182+ 'approvedrevs-approveaction' => 'heeft $2 ingesteld als de goedgekeurde versie voor "[[$1]]"',
 1183+ 'approvedrevs-unapproveaction' => 'heeft de goedgekeurde versie verwijderd voor "[[$1]]"',
 1184+ 'approvedrevs-notlatest' => 'Dit is de goedgekeurde versie van deze pagina.
 1185+Het is niet de meeste recente versie.',
 1186+ 'approvedrevs-approvedandlatest' => 'Dit is de goedgekeurde versie van deze pagina. Er is geen nieuwere versie.',
 1187+ 'approvedrevs-blankpageshown' => 'Deze pagina heeft geen goedgekeurde versie.',
 1188+ 'approvedrevs-editwarning' => 'U bewerkt de meest recente versie van deze pagina die nog niet goedgekeurd is en standaard niet wordt weergegeven.',
 1189+ 'approvedrevs' => 'Goedgekeurde versies',
 1190+ 'approvedrevs-approvedpages' => "Goedgekeurde pagina's",
 1191+ 'approvedrevs-notlatestpages' => "Pagina's waarvan de goedgekeurde versie niet de laatste versie is",
 1192+ 'approvedrevs-unapprovedpages' => "Niet-goedgekeurde pagina's",
 1193+ 'approvedrevs-view' => 'Weergave:',
 1194+ 'approvedrevs-revisionnumber' => 'versie $1',
 1195+ 'approvedrevs-approvedby' => 'goedgekeurd door $1 op $2',
 1196+ 'approvedrevs-difffromlatest' => 'verschil met de meest recente versie',
 1197+ 'approvedrevs-approvelatest' => 'laatste versie goedkeuren',
 1198+ 'approvedrevs-approvethisrev' => 'Deze versie goedkeuren',
 1199+ 'approvedrevs-viewlatestrev' => 'Laatste versie bekijken',
 1200+ 'right-approverevisions' => 'Een versie van een wikipagina markeren als goedgekeurd.',
 1201+ 'right-viewlinktolatest' => "De verklarende tekst bovenaan pagina's zien die die een goedgekeurde versie hebben",
 1202+);
 1203+
 1204+/** ‪Nederlands (informeel)‬ (‪Nederlands (informeel)‬)
 1205+ * @author Siebrand
 1206+ */
 1207+$messages['nl-informal'] = array(
 1208+ 'approvedrevs-editwarning' => 'Je bewerkt de meest recente versie van deze pagina die nog niet goedgekeurd is en standaard niet wordt weergegeven.',
 1209+);
 1210+
 1211+/** Oriya (ଓଡ଼ିଆ)
 1212+ * @author Odisha1
 1213+ */
 1214+$messages['or'] = array(
 1215+ 'approvedrevs-view' => 'ଦେଖଣା',
 1216+);
 1217+
 1218+/** Polish (Polski)
 1219+ * @author Sp5uhe
 1220+ * @author Woytecr
 1221+ */
 1222+$messages['pl'] = array(
 1223+ 'approvedrevs-desc' => 'Pozwala na zatwierdzenie pojedynczej wersji strony',
 1224+ 'approvedrevs-logname' => 'Rejestr zatwierdzonych wersji',
 1225+ 'approvedrevs-logdesc' => 'To jest rejestr wersji, które zostały zatwierdzone.',
 1226+ 'approvedrevs-approve' => 'zatwierdź',
 1227+ 'approvedrevs-unapprove' => 'cofnij zatwierdzenie',
 1228+ 'approvedrevs-approvesuccess' => 'Ta wersja strony została zatwierdzona.',
 1229+ 'approvedrevs-unapprovesuccess' => 'Dla tej strony brak jest wersji zatwierdzonej.
 1230+W zamian prezentowana będzie ostatnia wersja.',
 1231+ 'approvedrevs-unapprovesuccess2' => 'Nie ma już zatwierdzonej wersji tej strony.
 1232+W zamian zostanie wyświetlona pusta strona.',
 1233+ 'approvedrevs-approveaction' => 'zatwierdził wersję $2 strony „[[$1]]”',
 1234+ 'approvedrevs-unapproveaction' => 'usunął zatwierdzenie strony „[[$1]]”',
 1235+ 'approvedrevs-notlatest' => 'To jest zatwierdzona wersja strony. To nie jest ostatnia jej wersja.',
 1236+ 'approvedrevs-approvedandlatest' => 'To jest nie tylko zatwierdzona wersja strony, ale również ostatnia jej wersja.',
 1237+ 'approvedrevs-blankpageshown' => 'Żadna wersja tej strony nie została zatwierdzona.',
 1238+ 'approvedrevs-editwarning' => 'Zauważ, że edytujesz ostatnią wersję strony. Wersję, która nie została zatwierdzona i nie jest pokazywana domyślnie.',
 1239+ 'approvedrevs' => 'Zatwierdzone wersje',
 1240+ 'approvedrevs-approvedpages' => 'Zatwierdzone strony',
 1241+ 'approvedrevs-notlatestpages' => 'Strony, których zatwierdzona wersja nie jest ich ostatnią',
 1242+ 'approvedrevs-unapprovedpages' => 'Niezatwierdzone strony',
 1243+ 'approvedrevs-view' => 'Widok',
 1244+ 'approvedrevs-revisionnumber' => 'wersja $1',
 1245+ 'approvedrevs-approvedby' => 'zatwierdzone $2 przez $1',
 1246+ 'approvedrevs-difffromlatest' => 'porównaj z najnowszą',
 1247+ 'approvedrevs-approvelatest' => 'zatwierdź ostatnią',
 1248+ 'approvedrevs-approvethisrev' => 'Zatwierdź te zmiany.',
 1249+ 'approvedrevs-viewlatestrev' => 'Zobacz najnowszą wersję.',
 1250+ 'right-approverevisions' => 'Zatwierdzenie wybranych wersji stron wiki',
 1251+ 'right-viewlinktolatest' => 'Pokazuj tekst wyjaśniający w górnej części tych stron, które mają zatwierdzoną wersję',
 1252+);
 1253+
 1254+/** Piedmontese (Piemontèis)
 1255+ * @author Borichèt
 1256+ * @author Dragonòt
 1257+ */
 1258+$messages['pms'] = array(
 1259+ 'approvedrevs-desc' => 'Ampòsta na sola revision ëd na pàgina com aprovà',
 1260+ 'approvedrevs-logname' => "Registr d'aprovassion dle revision",
 1261+ 'approvedrevs-logdesc' => "Sto-sì a l'é ël registr dle revision ch'a son ëstàite aprovà.",
 1262+ 'approvedrevs-approve' => 'apreuva',
 1263+ 'approvedrevs-unapprove' => 'apreuva pa',
 1264+ 'approvedrevs-approvesuccess' => "Costa revision-sì ëd la pàgina a l'é stàita ampostà com la version aprovà.",
 1265+ 'approvedrevs-unapprovesuccess' => 'A-i é pa pi na version aprovà për sta pàgina-sì.
 1266+Al pòst, a sarà mostrà la revision pi recenta.',
 1267+ 'approvedrevs-unapprovesuccess2' => 'A-i é pa pi na version aprovà për sta pàgina-sì.
 1268+Al pòst, a sarà mostrà na pàgina bianca.',
 1269+ 'approvedrevs-approveaction' => 'a l\'ha marcà $2 tanme revision aprovà për "[[$1]]"',
 1270+ 'approvedrevs-unapproveaction' => 'gava ampostassion ëd la revision aprovà për "[[$1]]"',
 1271+ 'approvedrevs-notlatest' => "Costa a l'é la revision aprovà ëd sa pàgina; a l'é pa la pi recenta.",
 1272+ 'approvedrevs-approvedandlatest' => "Costa a l'é la revision aprovà ëd sa pàgina, e a l'é ëdcò la pi recenta.",
 1273+ 'approvedrevs-blankpageshown' => 'Gnun-e revision a son ëstàite aprovà për sta pàgina.',
 1274+ 'approvedrevs-editwarning' => "Për piasì, ch'a nòta ch'a l'é an camin ch'a modìfica l'ùltima revision ëd la pàgina, ch'a l'é pa cola aprovà smonùa për stàndard.",
 1275+ 'approvedrevs' => 'Revision aprovà',
 1276+ 'approvedrevs-approvedpages' => 'Pàgine aprovà',
 1277+ 'approvedrevs-notlatestpages' => "Pàgine dont la revision aprovà a l'é pa l'ùltima",
 1278+ 'approvedrevs-unapprovedpages' => 'Pàgine pa aprovà',
 1279+ 'approvedrevs-view' => 'Vardé:',
 1280+ 'approvedrevs-revisionnumber' => 'revision $1',
 1281+ 'approvedrevs-approvedby' => 'aprovà da $1 su $2',
 1282+ 'approvedrevs-difffromlatest' => "diferense da l'ùltima",
 1283+ 'approvedrevs-approvelatest' => "aprové l'ùltima",
 1284+ 'approvedrevs-approvethisrev' => 'Aprové sta revision.',
 1285+ 'approvedrevs-viewlatestrev' => "Vardé l'ùltima revision.",
 1286+ 'right-approverevisions' => 'Ampòsta na certa revision ëd na pàgina wiki com aprovà',
 1287+ 'right-viewlinktolatest' => "Vëdde ël test dë spiegassion an cò dle pàgine ch'a l'han na revision aprovà",
 1288+);
 1289+
 1290+/** Pashto (پښتو)
 1291+ * @author Ahmed-Najib-Biabani-Ibrahimkhel
 1292+ */
 1293+$messages['ps'] = array(
 1294+ 'approvedrevs-view' => 'کتل:',
 1295+);
 1296+
 1297+/** Portuguese (Português)
 1298+ * @author Alchimista
 1299+ * @author GoEThe
 1300+ * @author Hamilton Abreu
 1301+ */
 1302+$messages['pt'] = array(
 1303+ 'approvedrevs-desc' => 'Marcar como aprovada uma das revisões de uma página',
 1304+ 'approvedrevs-logname' => 'Registo de revisões aprovadas',
 1305+ 'approvedrevs-logdesc' => 'Este é o registo das revisões que foram aprovadas.',
 1306+ 'approvedrevs-approve' => 'aprovar',
 1307+ 'approvedrevs-unapprove' => 'reprovar',
 1308+ 'approvedrevs-approvesuccess' => 'Esta revisão da página foi definida como a versão aprovada.',
 1309+ 'approvedrevs-unapprovesuccess' => 'Deixou de existir uma versão aprovada para esta página.
 1310+Em vez dela, será apresentada a revisão mais recente.',
 1311+ 'approvedrevs-unapprovesuccess2' => 'Deixou de existir uma versão aprovada para esta página.
 1312+Em vez dela, será apresentada uma página em branco.',
 1313+ 'approvedrevs-approveaction' => 'definir $2 como a revisão aprovada de "[[$1]]"',
 1314+ 'approvedrevs-unapproveaction' => 'desfazer a aprovação da revisão aprovada de "[[$1]]"',
 1315+ 'approvedrevs-notlatest' => 'Esta é a revisão aprovada desta página; não é a revisão mais recente.',
 1316+ 'approvedrevs-approvedandlatest' => 'Esta é a revisão aprovada desta página e também a revisão mais recente.',
 1317+ 'approvedrevs-blankpageshown' => 'Esta página não tem nenhuma revisão aprovada.',
 1318+ 'approvedrevs-editwarning' => 'Note, por favor, que está agora a editar a revisão mais recente desta página e não a versão aprovada que é mostrada por omissão.',
 1319+ 'approvedrevs' => 'Revisões aprovadas',
 1320+ 'approvedrevs-approvedpages' => 'Páginas aprovadas',
 1321+ 'approvedrevs-notlatestpages' => 'Páginas cuja revisão aprovada não é a revisão mais recente',
 1322+ 'approvedrevs-unapprovedpages' => 'Páginas reprovadas',
 1323+ 'approvedrevs-view' => 'Ver:',
 1324+ 'approvedrevs-revisionnumber' => 'revisão $1',
 1325+ 'approvedrevs-approvedby' => 'aprovada por $1 a $2',
 1326+ 'approvedrevs-difffromlatest' => 'diferenças para a revisão mais recente',
 1327+ 'approvedrevs-approvelatest' => 'aprovar a mais recente',
 1328+ 'approvedrevs-approvethisrev' => 'Aprovar esta revisão.',
 1329+ 'approvedrevs-viewlatestrev' => 'Ver a revisão mais recente.',
 1330+ 'right-approverevisions' => 'Definir como aprovada uma revisão específica de uma página da wiki',
 1331+ 'right-viewlinktolatest' => 'Ver um texto explicativo no topo das páginas que têm uma revisão aprovada',
 1332+);
 1333+
 1334+/** Brazilian Portuguese (Português do Brasil)
 1335+ * @author Giro720
 1336+ * @author Pedroca cerebral
 1337+ */
 1338+$messages['pt-br'] = array(
 1339+ 'approvedrevs-desc' => 'Marcar como aprovada uma das revisões de uma página',
 1340+ 'approvedrevs-logname' => 'Registro de revisões aprovadas',
 1341+ 'approvedrevs-logdesc' => 'Este é o registro das revisões que foram aprovadas.',
 1342+ 'approvedrevs-approve' => 'aprovar',
 1343+ 'approvedrevs-unapprove' => 'desaprovar',
 1344+ 'approvedrevs-approvesuccess' => 'Esta revisão da página foi definida como a versão aprovada.',
 1345+ 'approvedrevs-unapprovesuccess' => 'Não há mais uma versão aprovada para esta página.
 1346+Em vez dela, será apresentada a revisão mais recente.',
 1347+ 'approvedrevs-unapprovesuccess2' => 'Não há mais uma versão aprovada para esta página.
 1348+Em vez dela, será apresentada uma página em branco.',
 1349+ 'approvedrevs-approveaction' => 'definir $2 como a revisão aprovada de "[[$1]]"',
 1350+ 'approvedrevs-unapproveaction' => 'desfazer a definição da revisão aprovada de "[[$1]]"',
 1351+ 'approvedrevs-notlatest' => 'Esta é a revisão aprovada desta página; não é a revisão mais recente.',
 1352+ 'approvedrevs-approvedandlatest' => 'Esta é a revisão aprovada desta página e também a revisão mais recente.',
 1353+ 'approvedrevs-blankpageshown' => 'Esta página não tem nenhuma revisão aprovada.',
 1354+ 'approvedrevs-editwarning' => 'Note, por favor, que agora você está editando a revisão mais recente desta página e não a versão aprovada que é mostrada por padrão.',
 1355+ 'approvedrevs' => 'Revisões aprovadas',
 1356+ 'approvedrevs-approvedpages' => 'Páginas aprovadas',
 1357+ 'approvedrevs-notlatestpages' => 'Páginas cuja revisão aprovada não é a revisão mais recente',
 1358+ 'approvedrevs-unapprovedpages' => 'Páginas não aprovadas',
 1359+ 'approvedrevs-view' => 'Ver:',
 1360+ 'approvedrevs-revisionnumber' => 'revisão $1',
 1361+ 'approvedrevs-approvedby' => 'aprovada por $1 em $2',
 1362+ 'approvedrevs-difffromlatest' => 'diff da última versão',
 1363+ 'approvedrevs-approvelatest' => 'aprovar a mais recente',
 1364+ 'approvedrevs-approvethisrev' => 'Aprovar esta revisão.',
 1365+ 'approvedrevs-viewlatestrev' => 'Ver a revisão mais recente.',
 1366+ 'right-approverevisions' => 'Definir como aprovada uma revisão específica de uma página da wiki',
 1367+ 'right-viewlinktolatest' => 'Ver um texto explicativo no topo das páginas que têm uma revisão aprovada',
 1368+);
 1369+
 1370+/** Romanian (Română)
 1371+ * @author Stelistcristi
 1372+ */
 1373+$messages['ro'] = array(
 1374+ 'approvedrevs-approve' => 'aprobă',
 1375+ 'approvedrevs-unapprove' => 'dezaprobă',
 1376+ 'approvedrevs-approvesuccess' => 'Această revizie a paginii a fost stabilită ca versiunea aprobată.',
 1377+ 'approvedrevs-approvedpages' => 'Pagini aprobate',
 1378+ 'approvedrevs-unapprovedpages' => 'Pagini neaprobate',
 1379+);
 1380+
 1381+/** Tarandíne (Tarandíne)
 1382+ * @author Joetaras
 1383+ */
 1384+$messages['roa-tara'] = array(
 1385+ 'approvedrevs-approve' => 'approve',
 1386+ 'approvedrevs-unapprove' => 'scitte',
 1387+ 'approvedrevs' => 'Revisiune approvate',
 1388+ 'approvedrevs-unapprovedpages' => 'Pàggene none approvate',
 1389+ 'approvedrevs-view' => 'Vide:',
 1390+ 'approvedrevs-revisionnumber' => 'revisione $1',
 1391+ 'approvedrevs-approvedby' => "approvate da $1 'u $2",
 1392+);
 1393+
 1394+/** Russian (Русский)
 1395+ * @author MaxSem
 1396+ * @author Александр Сигачёв
 1397+ */
 1398+$messages['ru'] = array(
 1399+ 'approvedrevs-desc' => 'Установка одной из версий страниц как подтверждённой',
 1400+ 'approvedrevs-logname' => 'Журнал подтверждения версий',
 1401+ 'approvedrevs-logdesc' => 'Это журнал версий страниц, которые были подтверждены.',
 1402+ 'approvedrevs-approve' => 'подтвердить',
 1403+ 'approvedrevs-unapprove' => 'снять подтверждение',
 1404+ 'approvedrevs-approvesuccess' => 'Это версия страницы была отмечена как подтверждённая.',
 1405+ 'approvedrevs-unapprovesuccess' => 'Не существует подтверждённой версии этой страницы.
 1406+Вместо неё будет показана последняя версия.',
 1407+ 'approvedrevs-unapprovesuccess2' => 'Больше не существует подтверждённой версии этой страницы.
 1408+Вместо неё будет показана пустая страница.',
 1409+ 'approvedrevs-approveaction' => 'установить $2 как подтверждённую версию «[[$1]]»',
 1410+ 'approvedrevs-unapproveaction' => 'снять утверждённую версию для «[[$1]]»',
 1411+ 'approvedrevs-notlatest' => 'Это утверждённая версия страницы. Существуют более свежие версии.',
 1412+ 'approvedrevs-approvedandlatest' => 'Это утверждённая версия страницы. Она же является наиболее свежей версией.',
 1413+ 'approvedrevs-blankpageshown' => 'Для этой страницы нет подтверждённых версий.',
 1414+ 'approvedrevs-editwarning' => 'Пожалуйста, обратите внимание, сейчас вы редактируете последнюю версию этой страницы, но она не показывается по умолчанию, так как не подтверждена.',
 1415+ 'approvedrevs' => 'Подтверждённые версии',
 1416+ 'approvedrevs-approvedpages' => 'Подтверждённые страницы',
 1417+ 'approvedrevs-notlatestpages' => 'Страницы, чьи подтверждённые версии не являются последними',
 1418+ 'approvedrevs-unapprovedpages' => 'Неутверждённые страницы',
 1419+ 'approvedrevs-view' => 'Просмотр:',
 1420+ 'approvedrevs-revisionnumber' => 'версия $1',
 1421+ 'approvedrevs-approvedby' => 'подтверждена $1 $2',
 1422+ 'approvedrevs-difffromlatest' => 'разн. с последней',
 1423+ 'approvedrevs-approvelatest' => 'подтвердить последнюю',
 1424+ 'approvedrevs-approvethisrev' => 'Подтвердить эту версию.',
 1425+ 'approvedrevs-viewlatestrev' => 'Просмотр последней версии.',
 1426+ 'right-approverevisions' => 'отметка определённых версий вики-страниц как подтверждённых',
 1427+ 'right-viewlinktolatest' => 'просмотр пояснительного текста в верхней части страниц, имеющих утверждённые версии',
 1428+);
 1429+
 1430+/** Slovak (Slovenčina)
 1431+ * @author Helix84
 1432+ */
 1433+$messages['sk'] = array(
 1434+ 'approvedrevs-desc' => 'Stanoviť jedinú revíziu stránky ako schválenú',
 1435+ 'approvedrevs-logname' => 'Záznam schválení revízií',
 1436+ 'approvedrevs-logdesc' => 'Toto je záznam revízií, ktoré boli schválené.',
 1437+ 'approvedrevs-approve' => 'schváliť',
 1438+ 'approvedrevs-unapprove' => 'neschváliť',
 1439+ 'approvedrevs' => 'Schválené revízie',
 1440+ 'approvedrevs-unapprovedpages' => 'Neschválené stránky',
 1441+ 'approvedrevs-view' => 'Zobraziť:',
 1442+ 'approvedrevs-revisionnumber' => 'revízia $1',
 1443+ 'approvedrevs-approvedby' => 'schválil $1 $2',
 1444+ 'approvedrevs-difffromlatest' => 'rozdiel od najnovších',
 1445+ 'approvedrevs-approvelatest' => 'schváliť najnovšie',
 1446+ 'approvedrevs-approvethisrev' => 'Schváliť túto revíziu.',
 1447+ 'approvedrevs-viewlatestrev' => 'Zobraziť najnovšiu revíziu.',
 1448+);
 1449+
 1450+/** Slovenian (Slovenščina)
 1451+ * @author Dbc334
 1452+ */
 1453+$messages['sl'] = array(
 1454+ 'approvedrevs-desc' => 'Označi eno redakcijo strani kot odobreno',
 1455+ 'approvedrevs-logname' => 'Dnevnik odobritev redakcij',
 1456+ 'approvedrevs-logdesc' => 'To je dnevnik redakcij, ki so bile odobrene.',
 1457+ 'approvedrevs-approve' => 'odobri',
 1458+ 'approvedrevs-unapprove' => 'zavrni',
 1459+ 'approvedrevs-approvesuccess' => 'Ta redakcija strani je bila označena kot odobrena različica.',
 1460+ 'approvedrevs-unapprovesuccess' => 'Ni več odobrene različice te strani.
 1461+Namesto tega bo prikazana najnovejša redakcija.',
 1462+ 'approvedrevs-unapprovesuccess2' => 'Ni več odobrene različice te strani.
 1463+Namesto tega bo prikazana prazna stran.',
 1464+ 'approvedrevs-approveaction' => 'označil(-a) $2 kot odobreno redakcijo »[[$1]]«',
 1465+ 'approvedrevs-unapproveaction' => 'odznačil(-a) odobreno redakcijo »[[$1]]«',
 1466+ 'approvedrevs-notlatest' => 'To je odobrena redakcija te strani; ni najnovejša.',
 1467+ 'approvedrevs-approvedandlatest' => 'To je odobrena redakcija te strani, prav tako tudi najnovejša.',
 1468+ 'approvedrevs-blankpageshown' => 'Za to stran ni bila odobrena nobena redakcija.',
 1469+ 'approvedrevs-editwarning' => 'Pomnite, da sedaj urejate najnovejšo redakcijo te strani, ki ni odobrena, po privzetem prikazana.',
 1470+ 'approvedrevs' => 'Odobrene redakcije',
 1471+ 'approvedrevs-approvedpages' => 'vse strani z odobrenimi redakcijami',
 1472+ 'approvedrevs-notlatestpages' => 'Strani, katerih odobrena redakcija ni njihova najnovejša',
 1473+ 'approvedrevs-unapprovedpages' => 'Neodobrene strani',
 1474+ 'approvedrevs-view' => 'Pogled:',
 1475+ 'approvedrevs-revisionnumber' => 'redakcija $1',
 1476+ 'approvedrevs-approvedby' => 'odobril(-a) $1 dne $2',
 1477+ 'approvedrevs-difffromlatest' => 'spremembe od najnovejše',
 1478+ 'approvedrevs-approvelatest' => 'odobri najnovejšo',
 1479+ 'approvedrevs-approvethisrev' => 'Odobri to redakcijo.',
 1480+ 'approvedrevs-viewlatestrev' => 'Ogled najnovejše redakcije.',
 1481+ 'right-approverevisions' => 'Označevanje določenih redakcij wikistrani kot odobrene',
 1482+ 'right-viewlinktolatest' => 'Ogled pojasnjevalnega besedila na vrhu strani, ki imajo odobrene redakcije',
 1483+);
 1484+
 1485+/** Swedish (Svenska)
 1486+ * @author Ainali
 1487+ * @author Cohan
 1488+ * @author Lokal Profil
 1489+ * @author Tobulos1
 1490+ */
 1491+$messages['sv'] = array(
 1492+ 'approvedrevs-desc' => 'Sätt en enskild version av en sida till godkänd',
 1493+ 'approvedrevs-logname' => 'Godkänningslogg för revisioner',
 1494+ 'approvedrevs-logdesc' => 'Detta är loggen över revisioner som har godkänts.',
 1495+ 'approvedrevs-approve' => 'godkänn',
 1496+ 'approvedrevs-unapprove' => 'godkänn ej',
 1497+ 'approvedrevs-approvesuccess' => 'Denna version av sidan har ställts in som den godkända versionen.',
 1498+ 'approvedrevs-unapprovesuccess' => 'Det finns inte längre en godkänd version för den här sidan.
 1499+ Istället kommer den senaste redigeringen att visas.',
 1500+ 'approvedrevs-unapprovesuccess2' => 'Det finns inte längre en godkänd version av den här sidan.
 1501+Istället kommer en tom sida att visas.',
 1502+ 'approvedrevs-approveaction' => 'sätt $2 som den godkända revisionen av "[[$1]]"',
 1503+ 'approvedrevs-notlatest' => 'Detta är den godkända version av denna sida; det är inte den senaste.',
 1504+ 'approvedrevs-approvedandlatest' => 'Detta är den godkända version av denna sida, samt den senaste.',
 1505+ 'approvedrevs-blankpageshown' => 'Ingen revidering har godkänts för denna sida.',
 1506+ 'approvedrevs-editwarning' => 'Observera att du nu redigerar den senaste versionen av denna sida, vilket inte är den godkända som visas som standard.',
 1507+ 'approvedrevs' => 'Godkända revideringar',
 1508+ 'approvedrevs-approvedpages' => 'Godkända sidor',
 1509+ 'approvedrevs-notlatestpages' => 'Sidor vars godkända version inte är den senaste.',
 1510+ 'approvedrevs-unapprovedpages' => 'Icke godkända sidor',
 1511+ 'approvedrevs-view' => 'Visa:',
 1512+ 'approvedrevs-revisionnumber' => 'version $1',
 1513+ 'approvedrevs-approvedby' => 'godkänd av $1, $2',
 1514+ 'approvedrevs-difffromlatest' => 'diff från senaste',
 1515+ 'approvedrevs-approvelatest' => 'godkänn senaste',
 1516+ 'approvedrevs-approvethisrev' => 'Godkänn denna versionen.',
 1517+ 'approvedrevs-viewlatestrev' => 'Visa den senaste versionen.',
 1518+ 'right-approverevisions' => 'Sätt en viss revidering av en wiki-sida som godkänd',
 1519+ 'right-viewlinktolatest' => 'Se förklarande text högst upp på sidor som har en godkänd revision',
 1520+);
 1521+
 1522+/** Tamil (தமிழ்)
 1523+ * @author TRYPPN
 1524+ */
 1525+$messages['ta'] = array(
 1526+ 'approvedrevs-approve' => 'அனுமதிக்கவும்',
 1527+ 'approvedrevs-unapprove' => 'அனுமதிக்க வேண்டாம்',
 1528+ 'approvedrevs-approvedpages' => 'ஏற்றுக் கொள்ளப்பட்ட பக்கங்கள்',
 1529+ 'approvedrevs-unapprovedpages' => 'ஏற்றுக் கொள்ளப்படாத பக்கங்கள்',
 1530+ 'right-approverevisions' => 'விக்கி பக்கத்தில் ஒரு சில மாற்றங்களை அனுமதிக்கப்பட்டதாக குறித்துக்கொள்ளவும்',
 1531+);
 1532+
 1533+/** Telugu (తెలుగు)
 1534+ * @author Chaduvari
 1535+ * @author Veeven
 1536+ */
 1537+$messages['te'] = array(
 1538+ 'approvedrevs-logname' => 'కూర్పుల అనుమతులు చిట్టా',
 1539+ 'approvedrevs-logdesc' => 'ఇది ఆమోదం పొందని కూర్పుల లాగ్.',
 1540+ 'approvedrevs-approve' => 'అనుమతించు',
 1541+ 'approvedrevs-unapprove' => 'ఆమోదించవద్దు',
 1542+ 'approvedrevs-approvesuccess' => 'ఈ పేజీ యొక్క ఈ కూర్పు ఆమోదింపబడిన కూర్పుగా సెట్ చేసి ఉంది.',
 1543+ 'approvedrevs-unapprovesuccess' => 'ఇక ఈ పేజీకి ఆమోదించబడిన కూర్పేదీ లేదు.
 1544+దాని బదులు, ఇట్టీవలి కూర్పును చూపిస్తాం.',
 1545+ 'approvedrevs-unapprovesuccess2' => 'ఇక ఈ పేజీకి ఆమోదించబడిన కూర్పేదీ లేదు.
 1546+దాని బదులు, ఖాళీ పేజీని చూపిస్తాం.',
 1547+ 'approvedrevs-approveaction' => '"[[$1]]" కోసం $2 ను ఆమోదించబడిన కూర్పుగా చూపించు',
 1548+ 'approvedrevs-unapproveaction' => '"[[$1]]" కోసం సెట్ చేసిన ఆమోదించబడిన కూర్పును తీసెయ్యి',
 1549+ 'approvedrevs-notlatest' => 'ఇది ఈ పేజీ యొక్క ఆమోదించబడిన కూర్పు; ఇది అన్నిటి కంటే కొత్త కూర్పు కాదు.',
 1550+ 'approvedrevs-approvedandlatest' => 'ఇది ఈ పేజీ యొక్క ఆమోదించబడిన కూర్పు, అన్నిటి కంటే కొత్త కూర్పు కూడా.',
 1551+ 'approvedrevs-blankpageshown' => 'ఈ పేజీ కూర్పుల్లో ఏది కూడా ఆమోదించబడి లేదు.',
 1552+ 'approvedrevs-editwarning' => 'మీరు మారుస్తున్నది ఈ పేజీ యొక్క ఇట్టీవలి కూర్పునని గమనించండి. డిఫాల్టుగా ఆమోదించబడినట్లు చూపించినది ఈ కూర్పు కాదు.',
 1553+ 'approvedrevs' => 'ఆమోదించబడిన కూర్పులు',
 1554+ 'approvedrevs-approvedpages' => 'అనుమతించిన పుటలు',
 1555+ 'approvedrevs-notlatestpages' => 'పేజీలు - ఆమోదించబడిన కూర్పులు ఇట్టీవలివి కానివి',
 1556+ 'approvedrevs-unapprovedpages' => 'ఆమోదించబడని పేజీలు',
 1557+ 'approvedrevs-revisionnumber' => 'కూర్పు $1',
 1558+ 'approvedrevs-approvedby' => '$2 న, $1 ఆమోదించినది',
 1559+ 'approvedrevs-difffromlatest' => 'ఇట్టీవలి కూర్పుతో తేడాలు',
 1560+);
 1561+
 1562+/** Tagalog (Tagalog)
 1563+ * @author AnakngAraw
 1564+ */
 1565+$messages['tl'] = array(
 1566+ 'approvedrevs-desc' => 'Itakda ang isang nagiisang rebisyon ng isang pahina bilang pinayagan',
 1567+ 'approvedrevs-logname' => 'Tala ng pagpayag sa rebisyon',
 1568+ 'approvedrevs-logdesc' => 'Ito ang tala ng mga rebisyon na pinayagan na.',
 1569+ 'approvedrevs-approve' => 'payagan',
 1570+ 'approvedrevs-unapprove' => 'huwag payagan',
 1571+ 'approvedrevs-approvesuccess' => 'Ang rebisyon ng pahina ay naitakda bilang pinayagang bersyon.',
 1572+ 'approvedrevs-unapprovesuccess' => 'Wala nang isang pinayagang bersyon para sa pahinang ito.
 1573+Sa halip, ang pinaka kamakailang rebisyon ang ipapakita.',
 1574+ 'approvedrevs-unapprovesuccess2' => 'Wala na ngayong isang pinayagang bersyon ng pahinang ito.
 1575+Sa halip, ipapakita ang isang pahinang walang laman.',
 1576+ 'approvedrevs-approveaction' => 'itakda ang $2 bilang pinayagang rebisyon para sa "[[$1]]"',
 1577+ 'approvedrevs-unapproveaction' => 'huwag itakda ang rebisyon para sa "[[$1]]"',
 1578+ 'approvedrevs-notlatest' => 'Ito ang pinayagang rebisyon ng pahinang ito; hindi ito ang pinaka kamakailan.',
 1579+ 'approvedrevs-approvedandlatest' => 'Ito ang pinayagang rebisyon ng pahinang ito, pati na ang pagiging pinaka kamakailan.',
 1580+ 'approvedrevs-blankpageshown' => 'Wala pang rebisyong pinayagan para sa pahinang ito.',
 1581+ 'approvedrevs-editwarning' => 'Pakitandaan na binabago mo na sa ngayon ang pinakahuling rebisyon ng pahinang ito, na hindi ang pinayagang likas na nakatakda.',
 1582+ 'approvedrevs' => 'Pinayagang mga rebisyon',
 1583+ 'approvedrevs-approvedpages' => 'Mga pahinang pinayagan',
 1584+ 'approvedrevs-notlatestpages' => 'Mga pahinang ang pinayagang rebisyon ay hindi ang kanilang pinaka kamakailan',
 1585+ 'approvedrevs-unapprovedpages' => 'Hindi pinayagang mga pahina',
 1586+ 'approvedrevs-view' => 'Tingnan:',
 1587+ 'approvedrevs-revisionnumber' => 'rebisyong $1',
 1588+ 'approvedrevs-approvedby' => 'pinayagan ni $1 noong $2',
 1589+ 'approvedrevs-difffromlatest' => 'pagkakaiba mula sa pinakakamakailan',
 1590+ 'approvedrevs-approvelatest' => 'payagan ang pinaka kamakailan',
 1591+ 'approvedrevs-approvethisrev' => 'Payagan ang rebisyong ito.',
 1592+ 'approvedrevs-viewlatestrev' => 'Tingnan ang pinaka kamakailang rebisyon.',
 1593+ 'right-approverevisions' => 'Itakda ang isang partikular na rebisyon ng isang pahina ng wiki bilang pinayagan',
 1594+ 'right-viewlinktolatest' => 'Tingnan ang teksto ng paliwanag na nasa itaas ng mga pahina na may pinayagang rebisyon',
 1595+);
 1596+
 1597+/** Turkish (Türkçe)
 1598+ * @author Emperyan
 1599+ * @author Khutuck
 1600+ * @author Srhat
 1601+ */
 1602+$messages['tr'] = array(
 1603+ 'approvedrevs-desc' => 'Bir sayfanın belirli bir revizyonunu onaylanmış olarak ayarla',
 1604+ 'approvedrevs-logname' => 'Revizyon onay günlüğü',
 1605+ 'approvedrevs-logdesc' => 'Bu liste onaylanmış revizyon günlüğüdür.',
 1606+ 'approvedrevs-approve' => 'onayla',
 1607+ 'approvedrevs-unapprove' => 'onayı kaldır',
 1608+ 'approvedrevs-approvesuccess' => 'Sayfaya ait bu revizyon onaylanmış revizyon olarak ayarlandı.',
 1609+ 'approvedrevs-unapprovesuccess' => 'Bu sayfanın artık onaylanmış sürümü yok.
 1610+Onun yerine, en son revizyon gösterilecektir.',
 1611+ 'approvedrevs-unapprovesuccess2' => 'Bu sayfanın artık onaylanmış sürümü yok.
 1612+Onun yerine, boş bir sayfa gösterilecektir.',
 1613+ 'approvedrevs-approveaction' => '$2 revizyonunu "[[$1]]" sayfasının onaylanmış revizyonu olarak ayarladı',
 1614+ 'approvedrevs-unapproveaction' => '"[[$1]]" sayfasının onaylanmış revizyonunun onayını kaldırdı.',
 1615+ 'approvedrevs-notlatest' => 'Bu sayfanın onaylanmış revizyonudur; en son revizyon değildir.',
 1616+ 'approvedrevs-approvedandlatest' => 'Bu revizyon, sayfanın hem onaylanmış hem de en son revizyonudur.',
 1617+ 'approvedrevs-blankpageshown' => 'Bu sayfa için onaylanmış sürüm yok.',
 1618+ 'approvedrevs-editwarning' => 'Lütfen dikkat: Şu an onaylanmış sürümü değil, son sürümü değitirmektesiniz.',
 1619+ 'approvedrevs' => 'Onaylanan düzeltmeler',
 1620+ 'approvedrevs-approvedpages' => 'Onaylanmış sayfalar',
 1621+ 'approvedrevs-notlatestpages' => 'Bu sayfanın onaylanmış revizyonudur; en son revizyon değildir.',
 1622+ 'approvedrevs-unapprovedpages' => 'Onaylanmamış sayfalar',
 1623+ 'approvedrevs-view' => 'Görüntüle:',
 1624+ 'approvedrevs-revisionnumber' => 'Revizyon: $1',
 1625+ 'approvedrevs-approvedby' => "$1 tarafından $2'de onaylandı.",
 1626+ 'approvedrevs-difffromlatest' => 'öncekiyle fark',
 1627+ 'approvedrevs-approvelatest' => 'en günceli onayla',
 1628+ 'approvedrevs-approvethisrev' => 'Bu sürümü onayla.',
 1629+ 'approvedrevs-viewlatestrev' => 'En son sürümü görüntüleyin.',
 1630+ 'right-approverevisions' => 'Bir viki sayfasının belirli bir revizyonunu onaylanmış olarak ayarla',
 1631+ 'right-viewlinktolatest' => 'Onaylanmış revizyonu bulunan sayfaların başındaki açıklayıcı metni görüntüle',
 1632+);
 1633+
 1634+/** Ukrainian (Українська)
 1635+ * @author Alex Khimich
 1636+ * @author Sodmy
 1637+ * @author Vox
 1638+ * @author Тест
 1639+ */
 1640+$messages['uk'] = array(
 1641+ 'approvedrevs-desc' => 'Встановити єдиний перегляд сторінки як затверджуючий',
 1642+ 'approvedrevs-logname' => 'Журнал одобрень та переглядів',
 1643+ 'approvedrevs-logdesc' => 'Це протокол переглядів, які були затверджуючими.',
 1644+ 'approvedrevs-approve' => 'Затвердити',
 1645+ 'approvedrevs-unapprove' => 'Відхилити',
 1646+ 'approvedrevs-approvesuccess' => 'Цей перегляд сторінки був встановлений як затверджуючий.',
 1647+ 'approvedrevs-unapprovesuccess' => 'Існує не затверджений варіант для цієї сторінки.
 1648+Замість цього, самий останній затверджений варіант буде показаний.',
 1649+ 'approvedrevs-unapprovesuccess2' => 'Існує не затверджений варіант для цієї сторінки.
 1650+Замість цього буде показано порожню сторінку.',
 1651+ 'approvedrevs-approveaction' => 'встановити $2 як затверджену версію для «[[$1]]»',
 1652+ 'approvedrevs-unapproveaction' => 'відкликати стверджену версію для "[[$1]]"',
 1653+ 'approvedrevs-notlatest' => 'Це затверджена версія цієї сторінки; вона не є останньою.',
 1654+ 'approvedrevs-approvedandlatest' => 'Це затверджений перегляд цієї сторінки, вын э найновішим.',
 1655+ 'approvedrevs-blankpageshown' => 'Не було знайдено схвалювальних переглядів для цієї сторінки.',
 1656+ 'approvedrevs-editwarning' => 'Зверніть увагу, що в даний час ви редагуєте найновіший перегляд цієї сторінки, який не є схваленим і відображатися за замовчуванням.',
 1657+ 'approvedrevs' => 'Затверджені версії',
 1658+ 'approvedrevs-approvedpages' => 'Затверджені сторінки',
 1659+ 'approvedrevs-notlatestpages' => 'Сторінки, чиї затверджені версії не є останніми',
 1660+ 'approvedrevs-unapprovedpages' => 'Несхвалені сторінки',
 1661+ 'approvedrevs-view' => 'Перегляд:',
 1662+ 'approvedrevs-revisionnumber' => 'версія $1',
 1663+ 'approvedrevs-approvedby' => 'затверджена $1 $2',
 1664+ 'approvedrevs-difffromlatest' => 'різниця з останньою',
 1665+ 'approvedrevs-approvelatest' => 'затвердити останній',
 1666+ 'approvedrevs-approvethisrev' => 'Затвердити цю версію.',
 1667+ 'approvedrevs-viewlatestrev' => 'Перегляд останньої версії.',
 1668+ 'right-approverevisions' => 'Встановити єдиний перегляд сторінки як затверджуючий',
 1669+ 'right-viewlinktolatest' => 'Переглянути пояснювальний текст у верхній частині сторінки яка має схвалену версію.',
 1670+);
 1671+
 1672+/** Vietnamese (Tiếng Việt)
 1673+ * @author Minh Nguyen
 1674+ */
 1675+$messages['vi'] = array(
 1676+ 'approvedrevs-logname' => 'Nhật trình chấp nhận phiên bản',
 1677+ 'approvedrevs-approve' => 'chấp nhận',
 1678+ 'approvedrevs-unapprove' => 'bỏ chấp nhận',
 1679+ 'approvedrevs-approveaction' => 'đặt $2 là phiên bản chấp nhận của “[[$1]]”',
 1680+ 'approvedrevs-unapproveaction' => 'bỏ phiên bản chấp nhận của “[[$1]]”',
 1681+ 'approvedrevs' => 'Phiên bản được chấp nhận',
 1682+ 'approvedrevs-approvedpages' => 'Các trang đã chấp nhận',
 1683+ 'approvedrevs-unapprovedpages' => 'Trang chưa được chấp nhận',
 1684+ 'approvedrevs-view' => 'Xem:',
 1685+ 'approvedrevs-revisionnumber' => 'phiên bản $1',
 1686+ 'approvedrevs-approvedby' => 'được $1 chấp nhận vào $2',
 1687+ 'approvedrevs-difffromlatest' => 'so với phiên bản hiện tại',
 1688+ 'approvedrevs-approvelatest' => 'chấp nhận mới nhất',
 1689+ 'approvedrevs-approvethisrev' => 'Chấp nhận phiên bản này.',
 1690+ 'approvedrevs-viewlatestrev' => 'Xem phiên bản gần đây nhất.',
 1691+ 'right-approverevisions' => 'Đặt một phiên bản của trang wiki là phiên bản chấp nhận',
 1692+ 'right-viewlinktolatest' => 'Xem văn bản giải thích ở đầu các trang có phiên bản chấp nhận',
 1693+);
 1694+
 1695+/** Simplified Chinese (‪中文(简体)‬)
 1696+ * @author Hydra
 1697+ * @author PhiLiP
 1698+ * @author Xiaomingyan
 1699+ */
 1700+$messages['zh-hans'] = array(
 1701+ 'approvedrevs-desc' => '设置单个页所批准的修订',
 1702+ 'approvedrevs-logname' => '修订批准日志',
 1703+ 'approvedrevs-logdesc' => '这是已获批准的修订的日志。',
 1704+ 'approvedrevs-approve' => '批准',
 1705+ 'approvedrevs-unapprove' => '不批准',
 1706+ 'approvedrevs-approvesuccess' => '此版本的页面已被设为批准的版本。',
 1707+ 'approvedrevs-unapprovesuccess' => '此页不再有一个批准的版本。
 1708+相反,将显示最新的修订版。',
 1709+ 'approvedrevs-unapprovesuccess2' => '此页不再是一个批准的版本。
 1710+相反,将显示一个空白页。',
 1711+ 'approvedrevs-approveaction' => '将把 $2 作为"[[$1]]"批准修订',
 1712+ 'approvedrevs-unapproveaction' => '取消"[[$1]]"的设置批准的修订',
 1713+ 'approvedrevs-notlatest' => '这是此页 批准的修订; 它不是最新的。',
 1714+ 'approvedrevs-approvedandlatest' => '这是此页批准,以及是最近的修订。',
 1715+ 'approvedrevs-blankpageshown' => '没有修订已获批准的此页。',
 1716+ 'approvedrevs-editwarning' => '请注意现在正在编辑的此页,不是核准的最新版本默认情况下显示的其中一个。',
 1717+ 'approvedrevs' => '获批准的修订',
 1718+ 'approvedrevs-approvedpages' => '被批准的页面',
 1719+ 'approvedrevs-notlatestpages' => '其核准的修订不是他们最新的页面',
 1720+ 'approvedrevs-unapprovedpages' => '不备批准的页面',
 1721+ 'approvedrevs-view' => '查看:',
 1722+ 'approvedrevs-revisionnumber' => '版本$1',
 1723+ 'approvedrevs-approvedby' => '在 $2 时被 $1 批准',
 1724+ 'approvedrevs-difffromlatest' => '最新的比较',
 1725+ 'approvedrevs-approvelatest' => '最新批准',
 1726+ 'approvedrevs-approvethisrev' => '批准这项修订',
 1727+ 'approvedrevs-viewlatestrev' => '查看最新版本',
 1728+ 'right-approverevisions' => '通过wiki页面的单个修订',
 1729+ 'right-viewlinktolatest' => '视图中的解释性文本在具有一个已批准的修订页面的顶部',
 1730+);
 1731+
 1732+/** Traditional Chinese (‪中文(繁體)‬) */
 1733+$messages['zh-hant'] = array(
 1734+ 'approvedrevs-desc' => '設置單個頁所批准的修訂',
 1735+ 'approvedrevs-logname' => '修訂批准日誌',
 1736+ 'approvedrevs-logdesc' => '這是已獲批准的修訂的日誌。',
 1737+ 'approvedrevs-approve' => '批准',
 1738+ 'approvedrevs-unapprove' => '不批准',
 1739+ 'approvedrevs-approvesuccess' => '此版本的頁面已被設為批准的版本。',
 1740+ 'approvedrevs-unapprovesuccess' => '此頁不再有一個批准的版本。
 1741+相反,將顯示最新的修訂版。',
 1742+ 'approvedrevs-unapprovesuccess2' => '此頁不再是一個批准的版本。
 1743+相反,將顯示一個空白頁。',
 1744+ 'approvedrevs-approveaction' => '將把 $2 作為"[[$1]]"批准修訂',
 1745+ 'approvedrevs-unapproveaction' => '取消"[[$1]]"的設置批准的修訂',
 1746+ 'approvedrevs-notlatest' => '這是此頁 批准的修訂; 它不是最新的。',
 1747+ 'approvedrevs-approvedandlatest' => '這是此頁批准,以及是最近的修訂。',
 1748+ 'approvedrevs-blankpageshown' => '沒有修訂已獲批准的此頁。',
 1749+ 'approvedrevs-editwarning' => '請注意現在正在編輯的此頁,不是核准的最新版本默認情況下顯示的其中一個。',
 1750+ 'approvedrevs' => '獲批准的修訂',
 1751+ 'approvedrevs-approvedpages' => '被批准的頁面',
 1752+ 'approvedrevs-notlatestpages' => '其核准的修訂不是他們最新的頁面',
 1753+ 'approvedrevs-unapprovedpages' => '不備批准的頁面',
 1754+ 'approvedrevs-view' => '查看:',
 1755+ 'approvedrevs-revisionnumber' => '版本$1',
 1756+ 'approvedrevs-approvedby' => '在 $2 時被 $1 批准',
 1757+ 'approvedrevs-difffromlatest' => '最新的比較',
 1758+ 'approvedrevs-approvelatest' => '最新批准',
 1759+ 'approvedrevs-approvethisrev' => '批准這項修訂',
 1760+ 'approvedrevs-viewlatestrev' => '查看最新版本',
 1761+ 'right-approverevisions' => '通過wiki頁面的單個修訂',
 1762+ 'right-viewlinktolatest' => '視圖中的解釋性文本在具有一個已批准的修訂頁面的頂部',
 1763+);
 1764+
 1765+/** Chinese (Hong Kong) (‪中文(香港)‬)
 1766+ * @author Oapbtommy
 1767+ */
 1768+$messages['zh-hk'] = array(
 1769+ 'approvedrevs-view' => '檢視:',
 1770+);
 1771+
Property changes on: tags/extensions/ApprovedRevs/REL_0_6/ApprovedRevs.i18n.php
___________________________________________________________________
Added: svn:eol-style
11772 + native
Index: tags/extensions/ApprovedRevs/REL_0_6/ApprovedRevs.php
@@ -0,0 +1,83 @@
 2+<?php
 3+
 4+if ( !defined( 'MEDIAWIKI' ) ) die();
 5+
 6+/**
 7+ * @file
 8+ * @ingroup Extensions
 9+ *
 10+ * @author Yaron Koren
 11+ */
 12+
 13+define( 'APPROVED_REVS_VERSION', '0.6' );
 14+
 15+// credits
 16+$wgExtensionCredits['other'][] = array(
 17+ 'path' => __FILE__,
 18+ 'name' => 'Approved Revs',
 19+ 'version' => APPROVED_REVS_VERSION,
 20+ 'author' => 'Yaron Koren',
 21+ 'url' => 'https://www.mediawiki.org/wiki/Extension:Approved_Revs',
 22+ 'descriptionmsg' => 'approvedrevs-desc'
 23+);
 24+
 25+// global variables
 26+$egApprovedRevsIP = dirname( __FILE__ ) . '/';
 27+$egApprovedRevsScriptPath = $wgScriptPath . '/extensions/ApprovedRevs';
 28+$egApprovedRevsNamespaces = array( NS_MAIN, NS_TEMPLATE, NS_HELP, NS_PROJECT );
 29+$egApprovedRevsBlankIfUnapproved = false;
 30+$egApprovedRevsAutomaticApprovals = true;
 31+$egApprovedRevsShowApproveLatest = false;
 32+
 33+// internationalization
 34+$wgExtensionMessagesFiles['ApprovedRevs'] = $egApprovedRevsIP . 'ApprovedRevs.i18n.php';
 35+$wgExtensionMessagesFiles['ApprovedRevsAlias'] = $egApprovedRevsIP . 'ApprovedRevs.alias.php';
 36+
 37+// register all classes
 38+$wgAutoloadClasses['ApprovedRevs'] = $egApprovedRevsIP . 'ApprovedRevs_body.php';
 39+$wgAutoloadClasses['ApprovedRevsHooks'] = $egApprovedRevsIP . 'ApprovedRevs.hooks.php';
 40+$wgSpecialPages['ApprovedRevs'] = 'SpecialApprovedRevs';
 41+$wgAutoloadClasses['SpecialApprovedRevs'] = $egApprovedRevsIP . 'SpecialApprovedRevs.php';
 42+$wgSpecialPageGroups['ApprovedRevs'] = 'pages';
 43+
 44+// hooks
 45+$wgHooks['ParserBeforeInternalParse'][] = 'ApprovedRevsHooks::setApprovedRevForParsing';
 46+$wgHooks['ArticleSaveComplete'][] = 'ApprovedRevsHooks::setLatestAsApproved';
 47+$wgHooks['PersonalUrls'][] = 'ApprovedRevsHooks::removeRobotsTag';
 48+$wgHooks['ArticleFromTitle'][] = 'ApprovedRevsHooks::showApprovedRevision';
 49+$wgHooks['ArticleAfterFetchContent'][] = 'ApprovedRevsHooks::showBlankIfUnapproved';
 50+$wgHooks['DisplayOldSubtitle'][] = 'ApprovedRevsHooks::setSubtitle';
 51+// it's 'SkinTemplateNavigation' for the Vector skin, 'SkinTemplateTabs' for
 52+// most other skins
 53+$wgHooks['SkinTemplateTabs'][] = 'ApprovedRevsHooks::changeEditLink';
 54+$wgHooks['SkinTemplateNavigation'][] = 'ApprovedRevsHooks::changeEditLinkVector';
 55+$wgHooks['PageHistoryBeforeList'][] = 'ApprovedRevsHooks::storeApprovedRevisionForHistoryPage';
 56+$wgHooks['PageHistoryLineEnding'][] = 'ApprovedRevsHooks::addApprovalLink';
 57+$wgHooks['UnknownAction'][] = 'ApprovedRevsHooks::setAsApproved';
 58+$wgHooks['UnknownAction'][] = 'ApprovedRevsHooks::unsetAsApproved';
 59+$wgHooks['BeforeParserFetchTemplateAndtitle'][] = 'ApprovedRevsHooks::setTranscludedPageRev';
 60+$wgHooks['ArticleDeleteComplete'][] = 'ApprovedRevsHooks::deleteRevisionApproval';
 61+$wgHooks['MagicWordwgVariableIDs'][] = 'ApprovedRevsHooks::addMagicWordVariableIDs';
 62+$wgHooks['LanguageGetMagic'][] = 'ApprovedRevsHooks::addMagicWordLanguage';
 63+$wgHooks['ParserBeforeTidy'][] = 'ApprovedRevsHooks::handleMagicWords';
 64+$wgHooks['AdminLinks'][] = 'ApprovedRevsHooks::addToAdminLinks';
 65+$wgHooks['LoadExtensionSchemaUpdates'][] = 'ApprovedRevsHooks::describeDBSchema';
 66+$wgHooks['EditPage::showEditForm:initial'][] = 'ApprovedRevsHooks::addWarningToEditPage';
 67+$wgHooks['sfHTMLBeforeForm'][] = 'ApprovedRevsHooks::addWarningToSFForm';
 68+$wgHooks['ArticleViewHeader'][] = 'ApprovedRevsHooks::onArticleViewHeader';
 69+
 70+// logging
 71+$wgLogTypes['approval'] = 'approval';
 72+$wgLogNames['approval'] = 'approvedrevs-logname';
 73+$wgLogHeaders['approval'] = 'approvedrevs-logdesc';
 74+$wgLogActions['approval/approve'] = 'approvedrevs-approveaction';
 75+$wgLogActions['approval/unapprove'] = 'approvedrevs-unapproveaction';
 76+
 77+// user rights
 78+$wgAvailableRights[] = 'approverevisions';
 79+$wgGroupPermissions['sysop']['approverevisions'] = true;
 80+$wgAvailableRights[] = 'viewlinktolatest';
 81+$wgGroupPermissions['*']['viewlinktolatest'] = true;
 82+
 83+// page properties
 84+$wgPageProps['approvedrevs'] = 'Whether or not the page is approvable';
Property changes on: tags/extensions/ApprovedRevs/REL_0_6/ApprovedRevs.php
___________________________________________________________________
Added: svn:eol-style
185 + native
Index: tags/extensions/ApprovedRevs/REL_0_6/ApprovedRevs.css
@@ -0,0 +1,15 @@
 2+/**
 3+ * CSS definitions for the Approved Revs extension
 4+ */
 5+p.approvedRevsEditWarning {
 6+ font-weight: bold;
 7+}
 8+span.approvedAndLatestMsg {
 9+}
 10+span.notLatestMsg {
 11+}
 12+span.approvedRevIsLatest {
 13+}
 14+span.approvedRevNotLatest {
 15+ font-style: italic;
 16+}
Property changes on: tags/extensions/ApprovedRevs/REL_0_6/ApprovedRevs.css
___________________________________________________________________
Added: svn:eol-style
117 + native
Index: tags/extensions/ApprovedRevs/REL_0_6/SpecialApprovedRevs.php
@@ -0,0 +1,333 @@
 2+<?php
 3+
 4+/**
 5+ * Special page that displays various lists of pages that either do or do
 6+ * not have an approved revision.
 7+ *
 8+ * @author Yaron Koren
 9+ */
 10+class SpecialApprovedRevs extends SpecialPage {
 11+
 12+ /**
 13+ * Constructor
 14+ */
 15+ function __construct() {
 16+ parent::__construct( 'ApprovedRevs' );
 17+ }
 18+
 19+ function execute( $query ) {
 20+ global $wgRequest;
 21+
 22+ ApprovedRevs::addCSS();
 23+ $this->setHeaders();
 24+ list( $limit, $offset ) = wfCheckLimits();
 25+
 26+ $mode = $wgRequest->getVal( 'show' );
 27+ $rep = new SpecialApprovedRevsPage( $mode );
 28+
 29+ if ( method_exists( $rep, 'execute' ) ) {
 30+ return $rep->execute( $query );
 31+ } else {
 32+ return $rep->doQuery( $offset, $limit );
 33+ }
 34+ }
 35+
 36+}
 37+
 38+class SpecialApprovedRevsPage extends QueryPage {
 39+
 40+ protected $mMode;
 41+
 42+ public function __construct( $mode ) {
 43+ if ( $this instanceof SpecialPage ) {
 44+ parent::__construct( 'ApprovedRevs' );
 45+ }
 46+ $this->mMode = $mode;
 47+ }
 48+
 49+ function getName() {
 50+ return 'ApprovedRevs';
 51+ }
 52+
 53+ function isExpensive() { return false; }
 54+
 55+ function isSyndicated() { return false; }
 56+
 57+ function getPageHeader() {
 58+ // show the names of the three lists of pages, with the one
 59+ // corresponding to the current "mode" not being linked
 60+ $approvedPagesTitle = SpecialPage::getTitleFor( 'ApprovedRevs' );
 61+ $navLine = wfMsg( 'approvedrevs-view' ) . ' ';
 62+
 63+ if ( $this->mMode == '' ) {
 64+ $navLine .= Xml::element( 'strong',
 65+ null,
 66+ wfMsg( 'approvedrevs-approvedpages' )
 67+ );
 68+ } else {
 69+ $navLine .= Xml::element( 'a',
 70+ array( 'href' => $approvedPagesTitle->getLocalURL() ),
 71+ wfMsg( 'approvedrevs-approvedpages' )
 72+ );
 73+ }
 74+
 75+ $navLine .= ' | ';
 76+
 77+ if ( $this->mMode == 'notlatest' ) {
 78+ $navLine .= Xml::element( 'strong',
 79+ null,
 80+ wfMsg( 'approvedrevs-notlatestpages' )
 81+ );
 82+ } else {
 83+ $navLine .= Xml::element( 'a',
 84+ array( 'href' => $approvedPagesTitle->getLocalURL( array( 'show' => 'notlatest' ) ) ),
 85+ wfMsg( 'approvedrevs-notlatestpages' )
 86+ );
 87+ }
 88+
 89+ $navLine .= ' | ';
 90+
 91+ if ( $this->mMode == 'unapproved' ) {
 92+ $navLine .= Xml::element( 'strong',
 93+ null,
 94+ wfMsg( 'approvedrevs-unapprovedpages' )
 95+ );
 96+ } else {
 97+ $navLine .= Xml::element( 'a',
 98+ array( 'href' => $approvedPagesTitle->getLocalURL( array( 'show' => 'unapproved' ) ) ),
 99+ wfMsg( 'approvedrevs-unapprovedpages' )
 100+ );
 101+ }
 102+
 103+ return Xml::tags( 'p', null, $navLine ) . "\n";
 104+ }
 105+
 106+ /**
 107+ * Set parameters for standard navigation links.
 108+ */
 109+ function linkParameters() {
 110+ $params = array();
 111+
 112+ if ( $this->mMode == 'notlatest' ) {
 113+ $params['show'] = 'notlatest';
 114+ } elseif ( $this->mMode == 'unapproved' ) {
 115+ $params['show'] = 'unapproved';
 116+ } else { // all approved pages
 117+ }
 118+
 119+ return $params;
 120+ }
 121+
 122+ function getPageFooter() {
 123+ }
 124+
 125+ public static function getNsConditionPart( $ns ) {
 126+ return 'p.page_namespace = ' . $ns;
 127+ }
 128+
 129+ /**
 130+ * For compatibility with MW < 1.17.
 131+ *
 132+ * (non-PHPdoc)
 133+ * @see QueryPage::getSQL()
 134+ */
 135+ function getSQL() {
 136+ global $egApprovedRevsNamespaces;
 137+
 138+ $nsCond = '(' . implode( ' OR ', array_map( array( __CLASS__, 'getNsConditionPart' ), $egApprovedRevsNamespaces ) ) . ')';
 139+
 140+ $dbr = wfGetDB( DB_SLAVE );
 141+ $approved_revs = $dbr->tableName( 'approved_revs' );
 142+ $page = $dbr->tableName( 'page' );
 143+ $page_props = $dbr->tableName( 'page_props' );
 144+
 145+ if ( $this->mMode == 'notlatest' ) {
 146+ return "SELECT 'Page' AS type,
 147+ p.page_id AS id,
 148+ ar.rev_id AS rev_id,
 149+ p.page_latest AS latest_id
 150+ FROM $approved_revs ar JOIN $page p
 151+ ON ar.page_id = p.page_id
 152+ LEFT OUTER JOIN $page_props pp
 153+ ON ar.page_id = pp_page
 154+ WHERE p.page_latest != ar.rev_id
 155+ AND ($nsCond OR (pp_propname = 'approvedrevs' AND pp_value = 'y'))";
 156+ } elseif ( $this->mMode == 'unapproved' ) {
 157+ return "SELECT 'Page' AS type,
 158+ p.page_id AS id,
 159+ p.page_latest AS latest_id
 160+ FROM $approved_revs ar RIGHT OUTER JOIN $page p
 161+ ON ar.page_id = p.page_id
 162+ LEFT OUTER JOIN $page_props pp
 163+ ON p.page_id = pp_page
 164+ WHERE ar.page_id IS NULL
 165+ AND ($nsCond OR (pp_propname = 'approvedrevs' AND pp_value = 'y'))";
 166+ } else { // all approved pages
 167+ return "SELECT 'Page' AS type,
 168+ p.page_id AS id,
 169+ ar.rev_id AS rev_id,
 170+ p.page_latest AS latest_id
 171+ FROM $approved_revs ar JOIN $page p
 172+ ON ar.page_id = p.page_id
 173+ LEFT OUTER JOIN $page_props pp
 174+ ON ar.page_id = pp_page
 175+ WHERE ($nsCond OR (pp_propname = 'approvedrevs' AND pp_value = 'y'))";
 176+ }
 177+ }
 178+
 179+ /**
 180+ * Used as of MW 1.17.
 181+ *
 182+ * (non-PHPdoc)
 183+ * @see QueryPage::getSQL()
 184+ */
 185+ function getQueryInfo() {
 186+ global $egApprovedRevsNamespaces;
 187+
 188+ $namespacesString = '(' . implode( ',', $egApprovedRevsNamespaces ) . ')';
 189+ if ( $this->mMode == 'notlatest' ) {
 190+ return array(
 191+ 'tables' => array(
 192+ 'ar' => 'approved_revs',
 193+ 'p' => 'page',
 194+ 'pp' => 'page_props',
 195+ ),
 196+ 'fields' => array(
 197+ 'p.page_id AS id',
 198+ 'ar.rev_id AS rev_id',
 199+ 'p.page_latest AS latest_id',
 200+ ),
 201+ 'join_conds' => array(
 202+ 'p' => array(
 203+ 'JOIN', 'ar.page_id=p.page_id'
 204+ ),
 205+ 'pp' => array(
 206+ 'LEFT OUTER JOIN', 'ar.page_id=pp_page'
 207+ ),
 208+ ),
 209+ 'conds' => "p.page_latest != ar.rev_id AND ((p.page_namespace IN $namespacesString) OR (pp_propname = 'approvedrevs' AND pp_value = 'y'))",
 210+ );
 211+ } elseif ( $this->mMode == 'unapproved' ) {
 212+ return array(
 213+ 'tables' => array(
 214+ 'ar' => 'approved_revs',
 215+ 'p' => 'page',
 216+ 'pp' => 'page_props',
 217+ ),
 218+ 'fields' => array(
 219+ 'p.page_id AS id',
 220+ 'p.page_latest AS latest_id'
 221+ ),
 222+ 'join_conds' => array(
 223+ 'p' => array(
 224+ 'RIGHT OUTER JOIN', 'ar.page_id=p.page_id'
 225+ ),
 226+ 'pp' => array(
 227+ 'LEFT OUTER JOIN', 'ar.page_id=pp_page'
 228+ ),
 229+ ),
 230+ 'conds' => "ar.page_id IS NULL AND ((p.page_namespace IN $namespacesString) OR (pp_propname = 'approvedrevs' AND pp_value = 'y'))",
 231+ );
 232+ } else { // all approved pages
 233+ return array(
 234+ 'tables' => array(
 235+ 'ar' => 'approved_revs',
 236+ 'p' => 'page',
 237+ 'pp' => 'page_props',
 238+ ),
 239+ 'fields' => array(
 240+ 'p.page_id AS id',
 241+ 'ar.rev_id AS rev_id',
 242+ 'p.page_latest AS latest_id',
 243+ ),
 244+ 'join_conds' => array(
 245+ 'p' => array(
 246+ 'JOIN', 'ar.page_id=p.page_id',
 247+ ),
 248+ 'pp' => array(
 249+ 'LEFT OUTER JOIN', 'ar.page_id=pp_page'
 250+ ),
 251+ ),
 252+ 'conds' => "(p.page_namespace IN $namespacesString) OR (pp_propname = 'approvedrevs' AND pp_value = 'y')",
 253+ );
 254+ }
 255+ }
 256+
 257+ function getOrder() {
 258+ return ' ORDER BY p.page_namespace, p.page_title ASC';
 259+ }
 260+
 261+ function getOrderFields() {
 262+ return array( 'p.page_namespace', 'p.page_title' );
 263+ }
 264+
 265+ function sortDescending() {
 266+ return false;
 267+ }
 268+
 269+ function formatResult( $skin, $result ) {
 270+ $title = Title::newFromId( $result->id );
 271+
 272+ // link introduced in 1.16, where makeLinkObj got deprecated
 273+ $pageLink = is_callable( array( $skin, 'link' ) ) ? $skin->link( $title ) : $skin->makeLinkObj( $title );
 274+
 275+ if ( $this->mMode == 'unapproved' ) {
 276+ global $egApprovedRevsShowApproveLatest;
 277+
 278+ $line = $pageLink;
 279+ if ( $egApprovedRevsShowApproveLatest &&
 280+ $title->userCan( 'approverevisions' ) ) {
 281+ $line .= ' (' . Xml::element( 'a',
 282+ array( 'href' => $title->getLocalUrl(
 283+ array(
 284+ 'action' => 'approve',
 285+ 'oldid' => $result->latest_id
 286+ )
 287+ ) ),
 288+ wfMsg( 'approvedrevs-approvelatest' )
 289+ ) . ')';
 290+ }
 291+
 292+ return $line;
 293+ } elseif ( $this->mMode == 'notlatest' ) {
 294+ $diffLink = Xml::element( 'a',
 295+ array( 'href' => $title->getLocalUrl(
 296+ array(
 297+ 'diff' => $result->latest_id,
 298+ 'oldid' => $result->rev_id
 299+ )
 300+ ) ),
 301+ wfMsg( 'approvedrevs-difffromlatest' )
 302+ );
 303+
 304+ return "$pageLink ($diffLink)";
 305+ } else { // main mode (pages with an approved revision)
 306+ global $wgUser, $wgOut, $wgLang;
 307+
 308+ $additionalInfo = Xml::element( 'span',
 309+ array (
 310+ 'class' => $result->rev_id == $result->latest_id ? 'approvedRevIsLatest' : 'approvedRevNotLatest'
 311+ ),
 312+ wfMsg( 'approvedrevs-revisionnumber', $result->rev_id )
 313+ );
 314+
 315+ // Get data on the most recent approval from the
 316+ // 'approval' log, and display it if it's there.
 317+ $sk = $wgUser->getSkin();
 318+ $loglist = new LogEventsList( $sk, $wgOut );
 319+ $pager = new LogPager( $loglist, 'approval', '', $title->getText() );
 320+ $pager->mLimit = 1;
 321+ $pager->doQuery();
 322+ $row = $pager->mResult->fetchObject();
 323+
 324+ if ( !empty( $row ) ) {
 325+ $time = $wgLang->timeanddate( wfTimestamp( TS_MW, $row->log_timestamp ), true );
 326+ $userLink = $sk->userLink( $row->log_user, $row->user_name );
 327+ $additionalInfo .= ', ' . wfMsg( 'approvedrevs-approvedby', $userLink, $time );
 328+ }
 329+
 330+ return "$pageLink ($additionalInfo)";
 331+ }
 332+ }
 333+
 334+}
Property changes on: tags/extensions/ApprovedRevs/REL_0_6/SpecialApprovedRevs.php
___________________________________________________________________
Added: svn:eol-style
1335 + native
Index: tags/extensions/ApprovedRevs/REL_0_6/ApprovedRevs.hooks.php
@@ -0,0 +1,644 @@
 2+<?php
 3+
 4+/**
 5+ * Functions for the Approved Revs extension called by hooks in the MediaWiki
 6+ * code.
 7+ *
 8+ * @file
 9+ * @ingroup Extensions
 10+ *
 11+ * @author Yaron Koren
 12+ */
 13+class ApprovedRevsHooks {
 14+
 15+ static $mNoSaveOccurring = false;
 16+
 17+ static public function userRevsApprovedAutomatically( $title ) {
 18+ global $egApprovedRevsAutomaticApprovals;
 19+ return ( $title->userCan( 'approverevisions' ) && $egApprovedRevsAutomaticApprovals );
 20+ }
 21+
 22+ /**
 23+ * "noindex" and "nofollow" meta-tags are added to every revision page,
 24+ * so that search engines won't index them - remove those if this is
 25+ * the approved revision.
 26+ * There doesn't seem to be an ideal MediaWiki hook to use for this
 27+ * function - it currently uses 'PersonalUrls', which works.
 28+ */
 29+ static public function removeRobotsTag( &$personal_urls, &$title ) {
 30+ if ( ! ApprovedRevs::isDefaultPageRequest() ) {
 31+ return true;
 32+ }
 33+
 34+ $revisionID = ApprovedRevs::getApprovedRevID( $title );
 35+ if ( ! empty( $revisionID ) ) {
 36+ global $wgOut;
 37+ $wgOut->setRobotPolicy( 'index,follow' );
 38+ }
 39+ return true;
 40+ }
 41+
 42+ /**
 43+ * If the page is being saved, set the text of the approved revision
 44+ * as the text to be parsed, for correct saving of categories,
 45+ * Semantic MediaWiki properties, etc.
 46+ */
 47+ static public function setApprovedRevForParsing( &$parser, &$text, &$stripState ) {
 48+ global $wgRequest;
 49+
 50+ // Static variable to prevent recursive calls to this method.
 51+ static $alreadyCalled = false;
 52+
 53+ if ( $wgRequest->getCheck( 'wpSave' ) ) {
 54+ if ( $alreadyCalled ) {
 55+ return true;
 56+ }
 57+ $alreadyCalled = true;
 58+
 59+ // @HACK ? If the ConfirmEdit extension is installed
 60+ // and kicks in for this save (i.e., prompting the
 61+ // user for a CAPTCHA test), it will lead to bad
 62+ // behavior - for some reason, the hook for this
 63+ // function will get called about seven times, and
 64+ // each time, the contents of the page will get
 65+ // displayed on the screen. Instead we check for a
 66+ // specific field of the parser, because the first
 67+ // of those seven times, that field is not set -
 68+ // whereas, apparently, it always is when a save is
 69+ // actually happening. Then we set a static variable,
 70+ // to be checked the next six times.
 71+ if ( self::$mNoSaveOccurring ) {
 72+ return true;
 73+ }
 74+ if ( empty( $parser->mPreprocessor) ) {
 75+ self::$mNoSaveOccurring = true;
 76+ return true;
 77+ }
 78+
 79+ // @HACK !! If the Semantic Forms extension is being
 80+ // used, the form will be parsed right before the page
 81+ // is parsed, and there doesn't seem to be any way
 82+ // to determine, from within this hook function,
 83+ // which one is being parsed at the moment - we only
 84+ // want to modify the parsing of the main page, not
 85+ // of the form page. So look for a string that should
 86+ // appear in every form page, but should really never
 87+ // appear in non-form pages - '{{{for template'.
 88+ if ( strpos( $text, '{{{for template' ) !== false ) {
 89+ return true;
 90+ }
 91+ $title = $parser->getTitle();
 92+ if ( ! ApprovedRevs::pageIsApprovable( $title ) ) {
 93+ return true;
 94+ }
 95+ // If this user's revisions get approved automatically,
 96+ // exit now, because this will become the approved
 97+ // revision anyway.
 98+ if ( self::userRevsApprovedAutomatically( $title ) ) {
 99+ return true;
 100+ }
 101+ $approvedText = ApprovedRevs::getApprovedContent( $title );
 102+ if ( !is_null( $approvedText ) ) {
 103+ $text = $approvedText;
 104+ }
 105+ // If there's no approved revision, and 'blank if
 106+ // unapproved' is set to true, set the text to blank.
 107+ if ( is_null( $approvedText ) ) {
 108+ global $egApprovedRevsBlankIfUnapproved;
 109+ if ( $egApprovedRevsBlankIfUnapproved ) {
 110+ $text = '';
 111+ }
 112+ }
 113+ }
 114+ return true;
 115+ }
 116+
 117+ /**
 118+ * If the user saving this page has approval power, and automatic
 119+ * approvals are enabled, and the page is approvable, and either
 120+ * (a) this page already has an approved revision, or (b) unapproved
 121+ * pages are shown as blank on this wiki, automatically set this
 122+ * latest revision to be the approved one - don't bother logging
 123+ * the approval, though; the log is reserved for manual approvals.
 124+ */
 125+ static public function setLatestAsApproved( &$article , &$user, $text,
 126+ $summary, $flags, $unused1, $unused2, &$flags, $revision,
 127+ &$status, $baseRevId ) {
 128+
 129+ if ( is_null( $revision ) ) {
 130+ return true;
 131+ }
 132+
 133+ $title = $article->getTitle();
 134+ if ( ! self::userRevsApprovedAutomatically( $title ) ) {
 135+ return true;
 136+ }
 137+
 138+ if ( !ApprovedRevs::pageIsApprovable( $title ) ) {
 139+ return true;
 140+ }
 141+
 142+ global $egApprovedRevsBlankIfUnapproved;
 143+ if ( !$egApprovedRevsBlankIfUnapproved ) {
 144+ $approvedRevID = ApprovedRevs::getApprovedRevID( $title );
 145+ if ( empty( $approvedRevID ) ) {
 146+ return true;
 147+ }
 148+ }
 149+
 150+ // save approval without logging
 151+ ApprovedRevs::saveApprovedRevIDInDB( $title, $revision->getID() );
 152+ return true;
 153+ }
 154+
 155+ /**
 156+ * Return the approved revision of the page, if there is one, and if
 157+ * the page is simply being viewed, and if no specific revision has
 158+ * been requested.
 159+ */
 160+ static function showApprovedRevision( &$title, &$article ) {
 161+ if ( ! ApprovedRevs::isDefaultPageRequest() ) {
 162+ return true;
 163+ }
 164+
 165+ $revisionID = ApprovedRevs::getApprovedRevID( $title );
 166+ if ( ! empty( $revisionID ) ) {
 167+ $article = new Article( $title, $revisionID );
 168+ }
 169+ return true;
 170+ }
 171+
 172+ public static function showBlankIfUnapproved( &$article, &$content ) {
 173+ global $egApprovedRevsBlankIfUnapproved;
 174+ if ( ! $egApprovedRevsBlankIfUnapproved ) {
 175+ return true;
 176+ }
 177+
 178+ $title = $article->getTitle();
 179+ if ( ! ApprovedRevs::pageIsApprovable( $title ) ) {
 180+ return true;
 181+ }
 182+
 183+ $revisionID = ApprovedRevs::getApprovedRevID( $title );
 184+ if ( !empty( $revisionID ) ) {
 185+ return true;
 186+ }
 187+
 188+ // This looks extreme - disable the cache for every page,
 189+ // if users aren't meant to see pages with no approved
 190+ // revision, and this page has no approved revision - but
 191+ // there doesn't seem to be any other way to distinguish
 192+ // between a user looking at the main view of page, and a
 193+ // user specifically looking at the latest revision of the
 194+ // page (which we don't want to show as blank.)
 195+ global $wgEnableParserCache;
 196+ $wgEnableParserCache = false;
 197+
 198+ if ( ! ApprovedRevs::isDefaultPageRequest() ) {
 199+ return true;
 200+ }
 201+
 202+ ApprovedRevs::addCSS();
 203+
 204+ $content = '';
 205+
 206+ return true;
 207+ }
 208+
 209+ /**
 210+ * If user is viewing the page via its main URL, and what they're
 211+ * seeing is the approved revision of the page, remove the standard
 212+ * subtitle shown for all non-latest revisions, and replace it with
 213+ * either nothing or a message explaining the situation, depending
 214+ * on the user's rights
 215+ */
 216+ static function setSubtitle( &$article, &$revisionID ) {
 217+ if ( ! ApprovedRevs::hasApprovedRevision( $article->getTitle() ) ) {
 218+ return true;
 219+ }
 220+
 221+ global $wgRequest;
 222+ if ( $wgRequest->getCheck( 'oldid' ) ) {
 223+ // If the user is looking at the latest revision,
 224+ // disable caching, to avoid the wiki getting the
 225+ // contents from the cache, and thus getting the
 226+ // approved contents instead (seems to be an issue
 227+ // only for MW >= 1.17).
 228+ if ( $revisionID == $article->getLatest() ) {
 229+ global $wgEnableParserCache;
 230+ $wgEnableParserCache = false;
 231+ }
 232+ return true;
 233+ }
 234+
 235+ if ( ! $article->getTitle()->userCan( 'viewlinktolatest' ) ) {
 236+ return false;
 237+ }
 238+
 239+ ApprovedRevs::addCSS();
 240+ if ( $revisionID == $article->getLatest() ) {
 241+ $text = Xml::element(
 242+ 'span',
 243+ array( 'class' => 'approvedAndLatestMsg' ),
 244+ wfMsg( 'approvedrevs-approvedandlatest' )
 245+ );
 246+ } else {
 247+ $text = wfMsgHtml( 'approvedrevs-notlatest' );
 248+
 249+ global $wgUser;
 250+ $sk = $wgUser->getSkin();
 251+ $text .= ' ' . $sk->link(
 252+ $article->getTitle(),
 253+ wfMsgHtml( 'approvedrevs-viewlatestrev' ),
 254+ array(),
 255+ array( 'oldid' => $article->getLatest() ),
 256+ array( 'known', 'noclasses' )
 257+ );
 258+
 259+ $text = Xml::tags(
 260+ 'span',
 261+ array( 'class' => 'notLatestMsg' ),
 262+ $text
 263+ );
 264+ }
 265+
 266+ global $wgOut;
 267+ if ( $wgOut->getSubtitle() != '' ) {
 268+ $wgOut->appendSubtitle( '<br />' . $text );
 269+ } else {
 270+ $wgOut->setSubtitle( $text );
 271+ }
 272+
 273+ return false;
 274+ }
 275+
 276+ /**
 277+ * Add a warning to the top of the 'edit' page if the approved
 278+ * revision is not the same as the latest one, so that users don't
 279+ * get confused, since they'll be seeing the latest one.
 280+ */
 281+ public static function addWarningToEditPage( &$editPage ) {
 282+ // only show the warning if it's not an old revision
 283+ global $wgRequest;
 284+ if ( $wgRequest->getCheck( 'oldid' ) ) {
 285+ return true;
 286+ }
 287+ $title = $editPage->getArticle()->getTitle();
 288+ $approvedRevID = ApprovedRevs::getApprovedRevID( $title );
 289+ $latestRevID = $title->getLatestRevID();
 290+ if ( ! empty( $approvedRevID ) && $approvedRevID != $latestRevID ) {
 291+ ApprovedRevs::addCSS();
 292+ global $wgOut;
 293+ $wgOut->addHTML( '<p class="approvedRevsEditWarning">' . wfMsg( 'approvedrevs-editwarning' ) . "</p>\n" );
 294+ }
 295+ return true;
 296+ }
 297+
 298+ /**
 299+ * Same as addWarningToEditPage(), but for the Semantic Foms
 300+ * 'edit with form' tab
 301+ */
 302+ public static function addWarningToSFForm( &$pageName, &$preFormHTML ) {
 303+ // The title could be obtained via $pageName in theory - the
 304+ // problem is that, pre-SF 2.0.2, that variable wasn't set
 305+ // correctly.
 306+ global $wgTitle;
 307+ $approvedRevID = ApprovedRevs::getApprovedRevID( $wgTitle );
 308+ $latestRevID = $wgTitle->getLatestRevID();
 309+ if ( ! empty( $approvedRevID ) && $approvedRevID != $latestRevID ) {
 310+ ApprovedRevs::addCSS();
 311+ $preFormHTML .= Xml::element ( 'p',
 312+ array( 'style' => 'font-weight: bold' ),
 313+ wfMsg( 'approvedrevs-editwarning' ) ) . "\n";
 314+ }
 315+ return true;
 316+ }
 317+
 318+ /**
 319+ * If user is looking at a revision through a main 'view' URL (no
 320+ * revision specified), have the 'edit' tab link to the basic
 321+ * 'action=edit' URL (i.e., the latest revision), no matter which
 322+ * revision they're actually on.
 323+ */
 324+ static function changeEditLink( $skin, &$contentActions ) {
 325+ global $wgRequest;
 326+ if ( $wgRequest->getCheck( 'oldid' ) ) {
 327+ return true;
 328+ }
 329+
 330+ $title = $skin->getTitle();
 331+ if ( ApprovedRevs::hasApprovedRevision( $title ) ) {
 332+ // the URL is the same regardless of whether the tab
 333+ // is 'edit' or 'view source', but the "action" is
 334+ // different
 335+ if ( array_key_exists( 'edit', $contentActions ) ) {
 336+ $contentActions['edit']['href'] = $title->getLocalUrl( array( 'action' => 'edit' ) );
 337+ }
 338+ if ( array_key_exists( 'viewsource', $contentActions ) ) {
 339+ $contentActions['viewsource']['href'] = $title->getLocalUrl( array( 'action' => 'edit' ) );
 340+ }
 341+ }
 342+ return true;
 343+ }
 344+
 345+ /**
 346+ * Same as changedEditLink(), but only for the Vector skin (and
 347+ * related skins).
 348+ */
 349+ static function changeEditLinkVector( &$skin, &$links ) {
 350+ // the old '$content_actions' array is thankfully just a
 351+ // sub-array of this one
 352+ self::changeEditLink( $skin, $links['views'] );
 353+ return true;
 354+ }
 355+
 356+ /**
 357+ * Store the approved revision ID, if any, directly in the object
 358+ * for this article - this is called so that a query to the database
 359+ * can be made just once for every view of a history page, instead
 360+ * of for every row.
 361+ */
 362+ static function storeApprovedRevisionForHistoryPage( &$article ) {
 363+ // A bug in some versions of MW 1.19 causes $article to be null.
 364+ if ( is_null( $article ) ) {
 365+ return true;
 366+ }
 367+ // this will be null if there's no ID
 368+ $approvedRevID = ApprovedRevs::getApprovedRevID( $article->getTitle() );
 369+ $article->getTitle()->approvedRevID = $approvedRevID;
 370+
 371+ return true;
 372+ }
 373+
 374+ /**
 375+ * If the user is allowed to make revision approvals, add either an
 376+ * 'approve' or 'unapprove' link to the end of this row in the page
 377+ * history, depending on whether or not this is already the approved
 378+ * revision. If it's the approved revision also add on a "star"
 379+ * icon, regardless of the user.
 380+ */
 381+ static function addApprovalLink( $historyPage, &$row , &$s ) {
 382+ $title = $historyPage->getTitle();
 383+ if ( ! ApprovedRevs::pageIsApprovable( $title ) ) {
 384+ return true;
 385+ }
 386+
 387+ $article = $historyPage->getArticle();
 388+ // use the rev ID field in the $article object, which was
 389+ // stored earlier
 390+ $approvedRevID = $title->approvedRevID;
 391+ if ( $row->rev_id == $approvedRevID ) {
 392+ $s .= '&#9733; ';
 393+ }
 394+ if ( $title->userCan( 'approverevisions' ) ) {
 395+ if ( $row->rev_id == $approvedRevID ) {
 396+ $url = $title->getLocalUrl(
 397+ array( 'action' => 'unapprove' )
 398+ );
 399+ $msg = wfMsg( 'approvedrevs-unapprove' );
 400+ } else {
 401+ $url = $title->getLocalUrl(
 402+ array( 'action' => 'approve', 'oldid' => $row->rev_id )
 403+ );
 404+ $msg = wfMsg( 'approvedrevs-approve' );
 405+ }
 406+ $s .= '(' . Xml::element(
 407+ 'a',
 408+ array( 'href' => $url ),
 409+ $msg
 410+ ) . ')';
 411+ }
 412+ return true;
 413+ }
 414+
 415+ /**
 416+ * Handle the 'approve' action, defined for ApprovedRevs -
 417+ * mark the revision as approved, log it, and show a message to
 418+ * the user.
 419+ */
 420+ static function setAsApproved( $action, $article ) {
 421+ // return "true" if the call failed (meaning, pass on handling
 422+ // of the hook to others), and "false" otherwise
 423+ if ( $action != 'approve' ) {
 424+ return true;
 425+ }
 426+ $title = $article->getTitle();
 427+ if ( ! ApprovedRevs::pageIsApprovable( $title ) ) {
 428+ return true;
 429+ }
 430+ if ( ! $title->userCan( 'approverevisions' ) ) {
 431+ return true;
 432+ }
 433+ global $wgRequest;
 434+ if ( ! $wgRequest->getCheck( 'oldid' ) ) {
 435+ return true;
 436+ }
 437+ $revision_id = $wgRequest->getVal( 'oldid' );
 438+ ApprovedRevs::setApprovedRevID( $title, $revision_id );
 439+
 440+ global $wgOut;
 441+ $wgOut->addHTML( ' ' . Xml::element(
 442+ 'div',
 443+ array( 'class' => 'successbox' ),
 444+ wfMsg( 'approvedrevs-approvesuccess' )
 445+ ) . "\n" );
 446+ $wgOut->addHTML( ' ' . Xml::element(
 447+ 'p',
 448+ array( 'style' => 'clear: both' )
 449+ ) . "\n" );
 450+
 451+ // show the revision, instead of the history page
 452+ $article->doPurge();
 453+ $article->view();
 454+
 455+ return false;
 456+ }
 457+
 458+ /**
 459+ * Handle the 'unapprove' action, defined for ApprovedRevs -
 460+ * unset the previously-approved revision, log the change, and show
 461+ * a message to the user.
 462+ */
 463+ static function unsetAsApproved( $action, $article ) {
 464+ // return "true" if the call failed (meaning, pass on handling
 465+ // of the hook to others), and "false" otherwise
 466+ if ( $action != 'unapprove' ) {
 467+ return true;
 468+ }
 469+ $title = $article->getTitle();
 470+ if ( ! $title->userCan( 'approverevisions' ) ) {
 471+ return true;
 472+ }
 473+
 474+ ApprovedRevs::unsetApproval( $title );
 475+
 476+ // the message depends on whether the page should display
 477+ // a blank right now or not
 478+ global $egApprovedRevsBlankIfUnapproved;
 479+ if ( $egApprovedRevsBlankIfUnapproved ) {
 480+ $successMsg = wfMsg( 'approvedrevs-unapprovesuccess2' );
 481+ } else {
 482+ $successMsg = wfMsg( 'approvedrevs-unapprovesuccess' );
 483+ }
 484+
 485+ global $wgOut;
 486+ $wgOut->addHTML( ' ' . Xml::element(
 487+ 'div',
 488+ array( 'class' => 'successbox' ),
 489+ $successMsg
 490+ ) . "\n" );
 491+ $wgOut->addHTML( ' ' . Xml::element(
 492+ 'p',
 493+ array( 'style' => 'clear: both' )
 494+ ) . "\n" );
 495+
 496+ // show the revision, instead of the history page
 497+ $article->doPurge();
 498+ $article->view();
 499+
 500+ return false;
 501+ }
 502+
 503+ /**
 504+ * Use the approved revision, if it exists, for templates and other
 505+ * transcluded pages.
 506+ */
 507+ static function setTranscludedPageRev( $parser, $title, &$skip, &$id ) {
 508+ $revision_id = ApprovedRevs::getApprovedRevID( $title );
 509+ if ( ! empty( $revision_id ) ) {
 510+ $id = $revision_id;
 511+ }
 512+ return true;
 513+ }
 514+
 515+ /**
 516+ * Delete the approval record in the database if the page itself is
 517+ * deleted.
 518+ */
 519+ static function deleteRevisionApproval( &$article, &$user, $reason, $id ) {
 520+ ApprovedRevs::deleteRevisionApproval( $article->getTitle() );
 521+ return true;
 522+ }
 523+
 524+ /**
 525+ * Register magic-word variable IDs
 526+ */
 527+ static function addMagicWordVariableIDs( &$magicWordVariableIDs ) {
 528+ $magicWordVariableIDs[] = 'MAG_APPROVEDREVS';
 529+ return true;
 530+ }
 531+
 532+ /**
 533+ * Set the actual value of the magic words
 534+ */
 535+ static function addMagicWordLanguage( &$magicWords, $langCode ) {
 536+ switch( $langCode ) {
 537+ default:
 538+ $magicWords['MAG_APPROVEDREVS'] = array( 0, '__APPROVEDREVS__' );
 539+ }
 540+ return true;
 541+ }
 542+
 543+ /**
 544+ * Set values in the page_props table based on the presence of the
 545+ * 'APPROVEDREVS' magic word in a page
 546+ */
 547+ static function handleMagicWords( &$parser, &$text ) {
 548+ $mw_hide = MagicWord::get( 'MAG_APPROVEDREVS' );
 549+ if ( $mw_hide->matchAndRemove( $text ) ) {
 550+ $parser->mOutput->setProperty( 'approvedrevs', 'y' );
 551+ }
 552+ return true;
 553+ }
 554+
 555+ /**
 556+ * Add a link to 'Special:ApprovedPages' to the the page
 557+ * 'Special:AdminLinks', defined by the Admin Links extension.
 558+ */
 559+ static function addToAdminLinks( &$admin_links_tree ) {
 560+ $general_section = $admin_links_tree->getSection( wfMsg( 'adminlinks_general' ) );
 561+ $extensions_row = $general_section->getRow( 'extensions' );
 562+ if ( is_null( $extensions_row ) ) {
 563+ $extensions_row = new ALRow( 'extensions' );
 564+ $general_section->addRow( $extensions_row );
 565+ }
 566+ $extensions_row->addItem( ALItem::newFromSpecialPage( 'ApprovedRevs' ) );
 567+ return true;
 568+ }
 569+
 570+ public static function describeDBSchema( $updater = null ) {
 571+ $dir = dirname( __FILE__ );
 572+
 573+ // DB updates
 574+ // For now, there's just a single SQL file for all DB types.
 575+ if ( $updater === null ) {
 576+ global $wgExtNewTables, $wgDBtype;
 577+ //if ( $wgDBtype == 'mysql' ) {
 578+ $wgExtNewTables[] = array( 'approved_revs', "$dir/ApprovedRevs.sql" );
 579+ //}
 580+ } else {
 581+ //if ( $updater->getDB()->getType() == 'mysql' ) {
 582+ $updater->addExtensionUpdate( array( 'addTable', 'approved_revs', "$dir/ApprovedRevs.sql", true ) );
 583+ //}
 584+ }
 585+ return true;
 586+ }
 587+
 588+ /**
 589+ * Hook to insert things into article headers.
 590+ *
 591+ * @since 0.5.6
 592+ *
 593+ * @param Article &$article
 594+ * @param boolean $outputDone
 595+ * @param boolean $useParserCache
 596+ *
 597+ * @return true
 598+ */
 599+ public static function onArticleViewHeader( Article &$article, &$outputDone, &$useParserCache ) {
 600+ global $wgOut, $wgRequest, $egApprovedRevsBlankIfUnapproved;
 601+
 602+ if ( ApprovedRevs::pageIsApprovable( $article->getTitle() )
 603+ && $article->getTitle()->userCan( 'approverevisions' ) ) {
 604+
 605+ $approvedId = ApprovedRevs::getApprovedRevID( $article->getTitle() );
 606+
 607+ if ( $egApprovedRevsBlankIfUnapproved &&
 608+ ( empty( $approvedId ) || ( $wgRequest->getCheck( 'oldid' ) && $wgRequest->getInt( 'oldid' ) != $approvedId ) ) ) {
 609+ $wgOut->addHTML( '<span style="margin-left:10.75px">' );
 610+
 611+ if ( $wgRequest->getCheck( 'oldid' ) ) {
 612+ $wgOut->addHTML( Xml::tags( 'span', array( 'id' => 'contentSub2' ),
 613+ Xml::element( 'a',
 614+ array( 'href' => $article->getTitle()->getLocalUrl(
 615+ array(
 616+ 'action' => 'approve',
 617+ 'oldid' => $wgRequest->getInt( 'oldid' )
 618+ )
 619+ ) ),
 620+ wfMsg( 'approvedrevs-approvethisrev' )
 621+ ) ) );
 622+
 623+ }
 624+ else {
 625+ $wgOut->appendSubtitle(
 626+ htmlspecialchars( wfMsg( 'approvedrevs-blankpageshown' ) ) . '&#160;' .
 627+ Xml::element( 'a',
 628+ array( 'href' => $article->getTitle()->getLocalUrl(
 629+ array(
 630+ 'oldid' => $article->getRevIdFetched()
 631+ )
 632+ ) ),
 633+ wfMsg( 'approvedrevs-viewlatestrev' )
 634+ )
 635+ );
 636+ }
 637+
 638+ $wgOut->addHTML( '</span>' );
 639+ }
 640+ }
 641+
 642+ return true;
 643+ }
 644+
 645+}
Property changes on: tags/extensions/ApprovedRevs/REL_0_6/ApprovedRevs.hooks.php
___________________________________________________________________
Added: svn:eol-style
1646 + native
Index: tags/extensions/ApprovedRevs/REL_0_6/README
@@ -0,0 +1,35 @@
 2+Approved Revs Extension
 3+
 4+ Version 0.6
 5+ Yaron Koren
 6+
 7+This is free software licensed under the GNU General Public License. Please
 8+see http://www.gnu.org/copyleft/gpl.html for further details, including the
 9+full text and terms of the license.
 10+
 11+== Overview ==
 12+
 13+Approved Revs is an extension to MediaWiki that lets administrators mark a
 14+certain revision of a page as "approved". The approved revision is the one
 15+displayed when users view the page at its main URL.
 16+
 17+For more information, see the extension homepage at:
 18+http://www.mediawiki.org/wiki/Extension:Approved_Revs
 19+
 20+== Requirements ==
 21+
 22+This version of the Approved Revs extension requires MediaWiki 1.16 or
 23+higher.
 24+
 25+== Installation ==
 26+
 27+To install the extension, place the entire 'ApprovedRevs' directory
 28+within your MediaWiki 'extensions' directory, then add the following
 29+line to your 'LocalSettings.php' file:
 30+
 31+ require_once( "$IP/extensions/ApprovedRevs/ApprovedRevs.php" );
 32+
 33+== Contact ==
 34+
 35+Comments, questions, suggestions and bug reports should be sent to Yaron
 36+Koren, at yaron57@gmail.com.
Property changes on: tags/extensions/ApprovedRevs/REL_0_6/README
___________________________________________________________________
Added: svn:eol-style
137 + native
Index: tags/extensions/ApprovedRevs/REL_0_6/ApprovedRevs.alias.php
@@ -0,0 +1,92 @@
 2+<?php
 3+/**
 4+ * Aliases for special pages of Approved Revs extension.
 5+ *
 6+ */
 7+
 8+$specialPageAliases = array();
 9+
 10+/** English (English) */
 11+$specialPageAliases['en'] = array(
 12+ 'ApprovedRevs' => array( 'ApprovedRevs', 'ApprovedPages', 'UnapprovedPages' ),
 13+);
 14+
 15+/** Arabic (العربية) */
 16+$specialPageAliases['ar'] = array(
 17+ 'ApprovedRevs' => array( 'مراجعات_موفقة', 'صفحات_موفقة', 'صفحات_غير_موفقة' ),
 18+);
 19+
 20+/** Esperanto (Esperanto) */
 21+$specialPageAliases['eo'] = array(
 22+ 'ApprovedRevs' => array( 'Aprobitaj_revizioj' ),
 23+);
 24+
 25+/** Persian (فارسی) */
 26+$specialPageAliases['fa'] = array(
 27+ 'ApprovedRevs' => array( 'نسخه‌های_تثبیت‌شده' ),
 28+);
 29+
 30+/** Galician (Galego) */
 31+$specialPageAliases['gl'] = array(
 32+ 'ApprovedRevs' => array( 'Aprobación_de_revisións' ),
 33+);
 34+
 35+/** 湘语 (湘语) */
 36+$specialPageAliases['hsn'] = array(
 37+ 'ApprovedRevs' => array( '受认定版本', '受认定页面', '冇认定个页面' ),
 38+);
 39+
 40+/** Haitian (Kreyòl ayisyen) */
 41+$specialPageAliases['ht'] = array(
 42+ 'ApprovedRevs' => array( 'RevAprouve', 'PajAprouve', 'PajPaAprouve' ),
 43+);
 44+
 45+/** Interlingua (Interlingua) */
 46+$specialPageAliases['ia'] = array(
 47+ 'ApprovedRevs' => array( 'Versiones_approbate' ),
 48+);
 49+
 50+/** Luxembourgish (Lëtzebuergesch) */
 51+$specialPageAliases['lb'] = array(
 52+ 'ApprovedRevs' => array( 'Net_nogekuckte_Säiten' ),
 53+);
 54+
 55+/** Macedonian (Македонски) */
 56+$specialPageAliases['mk'] = array(
 57+ 'ApprovedRevs' => array( 'ОдобрениРевизии' ),
 58+);
 59+
 60+/** Malayalam (മലയാളം) */
 61+$specialPageAliases['ml'] = array(
 62+ 'ApprovedRevs' => array( 'അംഗീകൃതതാളുകൾ', 'അംഗീകൃതമല്ലാത്തതാളുകൾ' ),
 63+);
 64+
 65+/** Norwegian Bokmål (‪Norsk (bokmål)‬) */
 66+$specialPageAliases['nb'] = array(
 67+ 'ApprovedRevs' => array( 'Godkjente_revisjoner' ),
 68+);
 69+
 70+/** Nedersaksisch (Nedersaksisch) */
 71+$specialPageAliases['nds-nl'] = array(
 72+ 'ApprovedRevs' => array( 'Goedekeurden_pagina\'s' ),
 73+);
 74+
 75+/** Dutch (Nederlands) */
 76+$specialPageAliases['nl'] = array(
 77+ 'ApprovedRevs' => array( 'GoedgekeurdePaginas', 'GoedgekeurdePagina\'s' ),
 78+);
 79+
 80+/** Sanskrit (संस्कृतम्) */
 81+$specialPageAliases['sa'] = array(
 82+ 'ApprovedRevs' => array( 'अंगीकृत_पृष्टानि' ),
 83+);
 84+
 85+/** Turkish (Türkçe) */
 86+$specialPageAliases['tr'] = array(
 87+ 'ApprovedRevs' => array( 'OnaylanmışRevizyonlar', 'OnaylanmışSayfalar', 'OnaylanmamışSayfalar' ),
 88+);
 89+
 90+/** Traditional Chinese (‪中文(繁體)‬) */
 91+$specialPageAliases['zh-hant'] = array(
 92+ 'ApprovedRevs' => array( '已通過的版本' ),
 93+);
\ No newline at end of file
Property changes on: tags/extensions/ApprovedRevs/REL_0_6/ApprovedRevs.alias.php
___________________________________________________________________
Added: svn:keywords
194 + Id
Added: svn:eol-style
295 + native
Index: tags/extensions/ApprovedRevs/REL_0_6/ApprovedRevs.sql
@@ -0,0 +1,6 @@
 2+CREATE TABLE /*_*/approved_revs (
 3+ page_id int(8) default NULL,
 4+ rev_id int(8) default NULL
 5+) /*$wgDBTableOptions*/;
 6+
 7+CREATE UNIQUE INDEX approved_revs_page_id ON /*_*/approved_revs (page_id);
Property changes on: tags/extensions/ApprovedRevs/REL_0_6/ApprovedRevs.sql
___________________________________________________________________
Added: svn:eol-style
18 + native

Status & tagging log