r58802 MediaWiki - Code Review archive

Repository:MediaWiki
Revision:r58801‎ | r58802 | r58803 >
Date:03:16, 9 November 2009
Author:tstarling
Status:deferred
Tags:
Comment:
Merging r58282 through r58801 from trunk for AUSC election tally
Modified paths:
  • /branches/wmf-deployment/extensions/SecurePoll (modified) (history)
  • /branches/wmf-deployment/extensions/SecurePoll/SecurePoll.i18n.php (modified) (history)
  • /branches/wmf-deployment/extensions/SecurePoll/SecurePoll.php (modified) (history)
  • /branches/wmf-deployment/extensions/SecurePoll/cli/cli.inc (modified) (history)
  • /branches/wmf-deployment/extensions/SecurePoll/includes/ballots/Ballot.php (modified) (history)
  • /branches/wmf-deployment/extensions/SecurePoll/includes/ballots/RadioRangeBallot.php (modified) (history)
  • /branches/wmf-deployment/extensions/SecurePoll/includes/crypt/Crypt.php (modified) (history)
  • /branches/wmf-deployment/extensions/SecurePoll/includes/crypt/Random.php (modified) (history)
  • /branches/wmf-deployment/extensions/SecurePoll/includes/entities/Election.php (modified) (history)
  • /branches/wmf-deployment/extensions/SecurePoll/includes/entities/Entity.php (modified) (history)
  • /branches/wmf-deployment/extensions/SecurePoll/includes/entities/Option.php (modified) (history)
  • /branches/wmf-deployment/extensions/SecurePoll/includes/entities/Question.php (modified) (history)
  • /branches/wmf-deployment/extensions/SecurePoll/includes/main/Base.php (modified) (history)
  • /branches/wmf-deployment/extensions/SecurePoll/includes/main/Context.php (modified) (history)
  • /branches/wmf-deployment/extensions/SecurePoll/includes/main/Store.php (modified) (history)
  • /branches/wmf-deployment/extensions/SecurePoll/includes/pages/DetailsPage.php (modified) (history)
  • /branches/wmf-deployment/extensions/SecurePoll/includes/pages/DumpPage.php (modified) (history)
  • /branches/wmf-deployment/extensions/SecurePoll/includes/pages/EntryPage.php (modified) (history)
  • /branches/wmf-deployment/extensions/SecurePoll/includes/pages/ListPage.php (modified) (history)
  • /branches/wmf-deployment/extensions/SecurePoll/includes/pages/LoginPage.php (modified) (history)
  • /branches/wmf-deployment/extensions/SecurePoll/includes/pages/MessageDumpPage.php (modified) (history)
  • /branches/wmf-deployment/extensions/SecurePoll/includes/pages/Page.php (modified) (history)
  • /branches/wmf-deployment/extensions/SecurePoll/includes/pages/TallyPage.php (modified) (history)
  • /branches/wmf-deployment/extensions/SecurePoll/includes/pages/TranslatePage.php (modified) (history)
  • /branches/wmf-deployment/extensions/SecurePoll/includes/pages/VotePage.php (modified) (history)
  • /branches/wmf-deployment/extensions/SecurePoll/includes/talliers/ElectionTallier.php (modified) (history)
  • /branches/wmf-deployment/extensions/SecurePoll/includes/talliers/HistogramRangeTallier.php (added) (history)
  • /branches/wmf-deployment/extensions/SecurePoll/includes/talliers/PairwiseTallier.php (modified) (history)
  • /branches/wmf-deployment/extensions/SecurePoll/includes/talliers/PluralityTallier.php (modified) (history)
  • /branches/wmf-deployment/extensions/SecurePoll/includes/talliers/Tallier.php (modified) (history)
  • /branches/wmf-deployment/extensions/SecurePoll/includes/user/Auth.php (modified) (history)
  • /branches/wmf-deployment/extensions/SecurePoll/includes/user/Voter.php (modified) (history)
  • /branches/wmf-deployment/extensions/SecurePoll/resources/SecurePoll.css (modified) (history)

Diff [purge]

Index: branches/wmf-deployment/extensions/SecurePoll/SecurePoll.php
@@ -89,6 +89,7 @@
9090
9191 # talliers
9292 'SecurePoll_ElectionTallier' => "$dir/includes/talliers/ElectionTallier.php",
 93+ 'SecurePoll_HistogramRangeTallier' => "$dir/includes/talliers/HistogramRangeTallier.php",
9394 'SecurePoll_PairwiseTallier' => "$dir/includes/talliers/PairwiseTallier.php",
9495 'SecurePoll_PluralityTallier' => "$dir/includes/talliers/PluralityTallier.php",
9596 'SecurePoll_SchulzeTallier' => "$dir/includes/talliers/SchulzeTallier.php",
Property changes on: branches/wmf-deployment/extensions/SecurePoll/includes/user/Voter.php
___________________________________________________________________
Modified: svn:mergeinfo
9697 Merged /trunk/extensions/SecurePoll/includes/user/Voter.php:r58282-58801
Property changes on: branches/wmf-deployment/extensions/SecurePoll/includes/user/Auth.php
___________________________________________________________________
Modified: svn:mergeinfo
9798 Merged /trunk/extensions/SecurePoll/includes/user/Auth.php:r58282-58801
Property changes on: branches/wmf-deployment/extensions/SecurePoll/includes/pages/TranslatePage.php
___________________________________________________________________
Modified: svn:mergeinfo
9899 Merged /trunk/extensions/SecurePoll/includes/pages/TranslatePage.php:r58282-58801
Index: branches/wmf-deployment/extensions/SecurePoll/includes/pages/VotePage.php
@@ -67,6 +67,10 @@
6868 $this->showJumpForm();
6969 return;
7070 }
 71+
 72+ // This is when it starts getting all serious; disable JS
 73+ // that might be used to sniff cookies or log voting data.
 74+ $wgOut->disallowUserJs();
7175
7276 // Show welcome
7377 if ( $this->voter->isRemote() ) {
Property changes on: branches/wmf-deployment/extensions/SecurePoll/includes/pages/VotePage.php
___________________________________________________________________
Modified: svn:mergeinfo
7478 Merged /trunk/extensions/SecurePoll/includes/pages/VotePage.php:r58282-58801
Property changes on: branches/wmf-deployment/extensions/SecurePoll/includes/pages/Page.php
___________________________________________________________________
Modified: svn:mergeinfo
7579 Merged /trunk/extensions/SecurePoll/includes/pages/Page.php:r58282-58801
Index: branches/wmf-deployment/extensions/SecurePoll/includes/pages/EntryPage.php
@@ -11,6 +11,7 @@
1212 function execute( $params ) {
1313 global $wgOut;
1414 $pager = new SecurePoll_ElectionPager( $this );
 15+ $wgOut->addWikiMsg( 'securepoll-entry-text' );
1516 $wgOut->addHTML(
1617 $pager->getBody() .
1718 $pager->getNavigationBar()
@@ -30,11 +31,26 @@
3132 */
3233 class SecurePoll_ElectionPager extends TablePager {
3334 var $subpages = array(
34 - 'vote',
35 - 'translate',
36 - 'list',
37 - 'dump',
38 - 'tally'
 35+ 'vote' => array(
 36+ 'public' => true,
 37+ 'visible-after-close' => false,
 38+ ),
 39+ 'translate' => array(
 40+ 'public' => true,
 41+ 'visible-after-close' => true,
 42+ ),
 43+ 'list' => array(
 44+ 'public' => true,
 45+ 'visible-after-close' => true,
 46+ ),
 47+ 'dump' => array(
 48+ 'public' => false,
 49+ 'visible-after-close' => true,
 50+ ),
 51+ 'tally' => array(
 52+ 'public' => false,
 53+ 'visible-after-close' => true,
 54+ ),
3955 );
4056 var $fields = array(
4157 'el_title',
@@ -63,6 +79,18 @@
6480 'el_title', 'el_start_date', 'el_end_date'
6581 ) );
6682 }
 83+
 84+ /**
 85+ * Add classes based on whether the poll is open or closed
 86+ * @param $row database object
 87+ * @return String
 88+ * @see TablePager::getRowClass()
 89+ */
 90+ function getRowClass( $row ) {
 91+ return $row->el_end_date > wfTimestampNow( TS_DB )
 92+ ? 'securepoll-election-open'
 93+ : 'securepoll-election-closed';
 94+ }
6795
6896 function formatValue( $name, $value ) {
6997 global $wgLang;
@@ -76,20 +104,40 @@
77105 return htmlspecialchars( $value );
78106 }
79107 }
 108+
 109+ function formatRow( $row ) {
 110+ global $wgUser;
 111+ $id = $row->el_entity;
 112+ $this->election = $this->entryPage->context->getElection( $id );
 113+ if( !$this->election ) {
 114+ $this->isAdmin = false;
 115+ } else {
 116+ $this->isAdmin = $this->election->isAdmin( $wgUser );
 117+ }
 118+ return parent::formatRow( $row );
 119+ }
80120
81121 function getLinks() {
82122 global $wgUser;
83123 $id = $this->mCurrentRow->el_entity;
 124+
84125 $s = '';
85126 $sep = wfMsg( 'pipe-separator' );
86127 $skin = $wgUser->getSkin();
87 - foreach ( $this->subpages as $subpage ) {
88 - $title = $this->entryPage->parent->getTitle( "$subpage/$id" );
89 - $linkText = wfMsg( "securepoll-subpage-$subpage" );
 128+ foreach ( $this->subpages as $subpage => $props ) {
 129+ $linkText = wfMsgExt( "securepoll-subpage-$subpage", 'parseinline' );
90130 if ( $s !== '' ) {
91131 $s .= $sep;
92132 }
93 - $s .= $skin->makeKnownLinkObj( $title, $linkText );
 133+ if( ( $this->isAdmin || $props['public'] )
 134+ && ( !$this->election->isFinished() || $props['visible-after-close'] ) )
 135+ {
 136+ $title = $this->entryPage->parent->getTitle( "$subpage/$id" );
 137+ $s .= $skin->makeKnownLinkObj( $title, $linkText );
 138+ } else {
 139+ $s .= "<span class=\"securepoll-link-disabled\">" .
 140+ $linkText . "</span>";
 141+ }
94142 }
95143 return $s;
96144 }
Property changes on: branches/wmf-deployment/extensions/SecurePoll/includes/pages/EntryPage.php
___________________________________________________________________
Modified: svn:mergeinfo
97145 Merged /trunk/extensions/SecurePoll/includes/pages/EntryPage.php:r58282-58801
Property changes on: branches/wmf-deployment/extensions/SecurePoll/includes/pages/DetailsPage.php
___________________________________________________________________
Modified: svn:mergeinfo
98146 Merged /trunk/extensions/SecurePoll/includes/pages/DetailsPage.php:r58282-58801
Property changes on: branches/wmf-deployment/extensions/SecurePoll/includes/pages/DumpPage.php
___________________________________________________________________
Modified: svn:mergeinfo
99147 Merged /trunk/extensions/SecurePoll/includes/pages/DumpPage.php:r58282-58801
Property changes on: branches/wmf-deployment/extensions/SecurePoll/includes/pages/TallyPage.php
___________________________________________________________________
Modified: svn:mergeinfo
100148 Merged /trunk/extensions/SecurePoll/includes/pages/TallyPage.php:r58282-58801
Property changes on: branches/wmf-deployment/extensions/SecurePoll/includes/pages/LoginPage.php
___________________________________________________________________
Modified: svn:mergeinfo
101149 Merged /trunk/extensions/SecurePoll/includes/pages/LoginPage.php:r58282-58801
Property changes on: branches/wmf-deployment/extensions/SecurePoll/includes/pages/MessageDumpPage.php
___________________________________________________________________
Modified: svn:mergeinfo
102150 Merged /trunk/extensions/SecurePoll/includes/pages/MessageDumpPage.php:r58282-58801
Index: branches/wmf-deployment/extensions/SecurePoll/includes/pages/ListPage.php
@@ -175,7 +175,6 @@
176176 var $listPage, $isAdmin, $election;
177177
178178 static $publicFields = array(
179 - 'details',
180179 'vote_timestamp',
181180 'vote_voter_name',
182181 'vote_voter_domain',
@@ -220,10 +219,14 @@
221220 }
222221
223222 function formatValue( $name, $value ) {
224 - global $wgLang;
225 - $critical = Xml::element( 'img',
226 - array( 'src' => $GLOBALS['wgScriptPath'] . '/extensions/SecurePoll/resources/critical-32.png' )
 223+ global $wgLang, $wgScriptPath;
 224+ $critical = Xml::element( 'img', array(
 225+ 'src' => "$wgScriptPath/extensions/SecurePoll/resources/critical-32.png" )
227226 );
 227+ $voter = SecurePoll_Voter::newFromId(
 228+ $this->listPage->context,
 229+ $this->mCurrentRow->vote_voter
 230+ );
228231
229232 switch ( $name ) {
230233 case 'vote_timestamp':
@@ -264,6 +267,15 @@
265268 'value' => $label,
266269 'onclick' => "securepoll_strike_popup(event, $action, $voteId)"
267270 ) );
 271+ case 'vote_voter_name':
 272+ $msg = $voter->isRemote()
 273+ ? 'securepoll-voter-name-remote'
 274+ : 'securepoll-voter-name-local';
 275+ return wfMsgExt(
 276+ $msg,
 277+ 'parseinline',
 278+ array( $value )
 279+ );
268280 default:
269281 return htmlspecialchars( $value );
270282 }
Property changes on: branches/wmf-deployment/extensions/SecurePoll/includes/pages/ListPage.php
___________________________________________________________________
Modified: svn:mergeinfo
271283 Merged /trunk/extensions/SecurePoll/includes/pages/ListPage.php:r58282-58801
Index: branches/wmf-deployment/extensions/SecurePoll/includes/talliers/Tallier.php
@@ -6,7 +6,7 @@
77 * questions.
88 */
99 abstract class SecurePoll_Tallier {
10 - var $context, $question, $optionsById;
 10+ var $context, $question, $electionTallier, $election, $optionsById;
1111
1212 abstract function addVote( $scores );
1313 abstract function getHtmlResult();
@@ -14,20 +14,24 @@
1515
1616 abstract function finishTally();
1717
18 - static function factory( $context, $type, $question ) {
 18+ static function factory( $context, $type, $electionTallier, $question ) {
1919 switch ( $type ) {
2020 case 'plurality':
21 - return new SecurePoll_PluralityTallier( $context, $question );
 21+ return new SecurePoll_PluralityTallier( $context, $electionTallier, $question );
2222 case 'schulze':
23 - return new SecurePoll_SchulzeTallier( $context, $question );
 23+ return new SecurePoll_SchulzeTallier( $context, $electionTallier, $question );
 24+ case 'histogram-range':
 25+ return new SecurePoll_HistogramRangeTallier( $context, $electionTallier, $question );
2426 default:
2527 throw new MWException( "Invalid tallier type: $type" );
2628 }
2729 }
2830
29 - function __construct( $context, $question ) {
 31+ function __construct( $context, $electionTallier, $question ) {
3032 $this->context = $context;
3133 $this->question = $question;
 34+ $this->electionTallier = $electionTallier;
 35+ $this->election = $electionTallier->election;
3236 foreach ( $this->question->getOptions() as $option ) {
3337 $this->optionsById[$option->getId()] = $option;
3438 }
Property changes on: branches/wmf-deployment/extensions/SecurePoll/includes/talliers/Tallier.php
___________________________________________________________________
Modified: svn:mergeinfo
3539 Merged /trunk/extensions/SecurePoll/includes/talliers/Tallier.php:r58282-58801
Index: branches/wmf-deployment/extensions/SecurePoll/includes/talliers/ElectionTallier.php
@@ -32,7 +32,7 @@
3333 $this->talliers = array();
3434 $tallyType = $this->election->getTallyType();
3535 foreach ( $questions as $question ) {
36 - $tallier = $this->context->newTallier( $tallyType, $question );
 36+ $tallier = $this->context->newTallier( $tallyType, $this, $question );
3737 if ( !$tallier ) {
3838 throw new MWException( 'Invalid tally type' );
3939 }
Property changes on: branches/wmf-deployment/extensions/SecurePoll/includes/talliers/ElectionTallier.php
___________________________________________________________________
Modified: svn:mergeinfo
4040 Merged /trunk/extensions/SecurePoll/includes/talliers/ElectionTallier.php:r58282-58801
Index: branches/wmf-deployment/extensions/SecurePoll/includes/talliers/PairwiseTallier.php
@@ -10,8 +10,8 @@
1111 var $abbrevs;
1212 var $rowLabels = array();
1313
14 - function __construct( $context, $question ) {
15 - parent::__construct( $context, $question );
 14+ function __construct( $context, $electionTallier, $question ) {
 15+ parent::__construct( $context, $electionTallier, $question );
1616 $this->optionIds = array();
1717 foreach ( $question->getOptions() as $option ) {
1818 $this->optionIds[] = $option->getId();
Index: branches/wmf-deployment/extensions/SecurePoll/includes/talliers/PluralityTallier.php
@@ -6,8 +6,8 @@
77 class SecurePoll_PluralityTallier extends SecurePoll_Tallier {
88 var $tally = array();
99
10 - function __construct( $context, $question ) {
11 - parent::__construct( $context, $question );
 10+ function __construct( $context, $electionTallier, $question ) {
 11+ parent::__construct( $context, $electionTallier, $question );
1212 foreach ( $question->getOptions() as $option ) {
1313 $this->tally[$option->getId()] = 0;
1414 }
Index: branches/wmf-deployment/extensions/SecurePoll/includes/talliers/HistogramRangeTallier.php
@@ -0,0 +1,86 @@
 2+<?php
 3+
 4+class SecurePoll_HistogramRangeTallier extends SecurePoll_Tallier {
 5+ var $histogram = array();
 6+ var $sums = array();
 7+ var $counts = array();
 8+ var $averages;
 9+ var $minScore, $maxScore;
 10+
 11+ function __construct( $context, $electionTallier, $question ) {
 12+ parent::__construct( $context, $electionTallier, $question );
 13+ $this->minScore = intval( $question->getProperty( 'min-score' ) );
 14+ $this->maxScore = intval( $question->getProperty( 'max-score' ) );
 15+ if ( $this->minScore >= $this->maxScore ) {
 16+ throw new MWException( __METHOD__.': min-score/max-score configured incorrectly' );
 17+ }
 18+
 19+ foreach ( $question->getOptions() as $option ) {
 20+ $this->histogram[$option->getId()] =
 21+ array_fill( $this->minScore, $this->maxScore - $this->minScore + 1, 0 );
 22+ $this->sums[$option->getId()] = 0;
 23+ $this->counts[$option->getId()] = 0;
 24+ }
 25+ }
 26+
 27+ function addVote( $scores ) {
 28+ foreach ( $scores as $oid => $score ) {
 29+ $this->histogram[$oid][$score] ++;
 30+ $this->sums[$oid] += $score;
 31+ $this->counts[$oid] ++;
 32+ }
 33+ return true;
 34+ }
 35+
 36+ function finishTally() {
 37+ $this->averages = array();
 38+ foreach ( $this->sums as $oid => $sum ) {
 39+ if ( $this->counts[$oid] === 0 ) {
 40+ $this->averages[$oid] = 'N/A';
 41+ break;
 42+ }
 43+ $this->averages[$oid] = $sum / $this->counts[$oid];
 44+ }
 45+ arsort( $this->averages );
 46+ }
 47+
 48+ function getHtmlResult() {
 49+ $ballot = $this->election->getBallot();
 50+ if ( !is_callable( array( $ballot, 'getColumnLabels' ) ) ) {
 51+ throw new MWException( __METHOD__.': ballot type not supported by this tallier' );
 52+ }
 53+ $optionLabels = array();
 54+ foreach ( $this->question->getOptions() as $option ) {
 55+ $optionLabels[$option->getId()] = $option->getMessage( 'text' );
 56+ }
 57+
 58+ $labels = $ballot->getColumnLabels( $this->question );
 59+ $s = "<table class=\"securepoll-table\">\n" .
 60+ "<tr>\n" .
 61+ "<th>&nbsp;</th>\n";
 62+ foreach ( $labels as $label ) {
 63+ $s .= Xml::element( 'th', array(), $label ) . "\n";
 64+ }
 65+ $s .= Xml::element( 'th', array(), wfMsg( 'securepoll-average-score' ) );
 66+ $s .= "</tr>\n";
 67+
 68+ foreach ( $this->averages as $oid => $average ) {
 69+ $s .= "<tr>\n" .
 70+ Xml::element( 'td', array( 'class' => 'securepoll-results-row-heading' ),
 71+ $optionLabels[$oid] ) .
 72+ "\n";
 73+ foreach ( $labels as $score => $label ) {
 74+ $s .= Xml::element( 'td', array(), $this->histogram[$oid][$score] ) . "\n";
 75+ }
 76+ $s .= Xml::element( 'td', array(), $average ) . "\n";
 77+ $s .= "</tr>\n";
 78+ }
 79+ $s .= "</table>\n";
 80+ return $s;
 81+ }
 82+
 83+ function getTextResult() {
 84+ throw new MWException( __METHOD__.': not yet implemented' );
 85+ }
 86+}
 87+
Property changes on: branches/wmf-deployment/extensions/SecurePoll/includes/talliers/HistogramRangeTallier.php
___________________________________________________________________
Added: svn:eol-style
188 + native
Index: branches/wmf-deployment/extensions/SecurePoll/includes/ballots/RadioRangeBallot.php
@@ -86,6 +86,7 @@
8787 foreach ( $labels as $label ) {
8888 $s .= Xml::element( 'th', array(), $label ) . "\n";
8989 }
 90+ $s .= "</tr>\n";
9091 $defaultScore = $question->getProperty( 'default-score' );
9192
9293 foreach ( $options as $option ) {
@@ -179,6 +180,7 @@
180181 list( $min, $max ) = $this->getMinMax( $questions[$qid] );
181182 if ( $score < $min || $score > $max ) {
182183 wfDebug( __METHOD__.": score out of range\n" );
 184+ return false;
183185 }
184186 $scores[$qid][$oid] = $score;
185187 }
Property changes on: branches/wmf-deployment/extensions/SecurePoll/includes/ballots/Ballot.php
___________________________________________________________________
Modified: svn:mergeinfo
186188 Merged /trunk/extensions/SecurePoll/includes/ballots/Ballot.php:r58282-58801
Property changes on: branches/wmf-deployment/extensions/SecurePoll/includes/crypt/Random.php
___________________________________________________________________
Modified: svn:mergeinfo
187189 Merged /trunk/extensions/SecurePoll/includes/crypt/Random.php:r58282-58801
Property changes on: branches/wmf-deployment/extensions/SecurePoll/includes/crypt/Crypt.php
___________________________________________________________________
Modified: svn:mergeinfo
188190 Merged /trunk/extensions/SecurePoll/includes/crypt/Crypt.php:r58282-58801
Property changes on: branches/wmf-deployment/extensions/SecurePoll/includes/entities/Option.php
___________________________________________________________________
Modified: svn:mergeinfo
189191 Merged /trunk/extensions/SecurePoll/includes/entities/Option.php:r58282-58801
Property changes on: branches/wmf-deployment/extensions/SecurePoll/includes/entities/Entity.php
___________________________________________________________________
Modified: svn:mergeinfo
190192 Merged /trunk/extensions/SecurePoll/includes/entities/Entity.php:r58282-58801
Property changes on: branches/wmf-deployment/extensions/SecurePoll/includes/entities/Election.php
___________________________________________________________________
Modified: svn:mergeinfo
191193 Merged /trunk/extensions/SecurePoll/includes/entities/Election.php:r58282-58801
Property changes on: branches/wmf-deployment/extensions/SecurePoll/includes/entities/Question.php
___________________________________________________________________
Modified: svn:mergeinfo
192194 Merged /trunk/extensions/SecurePoll/includes/entities/Question.php:r58282-58801
Property changes on: branches/wmf-deployment/extensions/SecurePoll/includes/main/Store.php
___________________________________________________________________
Modified: svn:mergeinfo
193195 Merged /trunk/extensions/SecurePoll/includes/main/Store.php:r58282-58801
Index: branches/wmf-deployment/extensions/SecurePoll/includes/main/Context.php
@@ -251,8 +251,8 @@
252252 return SecurePoll_Crypt::factory( $this, $type, $election );
253253 }
254254
255 - function newTallier( $type, $question ) {
256 - return SecurePoll_Tallier::factory( $this, $type, $question );
 255+ function newTallier( $type, $electionTallier, $question ) {
 256+ return SecurePoll_Tallier::factory( $this, $type, $electionTallier, $question );
257257 }
258258
259259 function newBallot( $type, $election ) {
Property changes on: branches/wmf-deployment/extensions/SecurePoll/includes/main/Context.php
___________________________________________________________________
Modified: svn:mergeinfo
260260 Merged /trunk/extensions/SecurePoll/includes/main/Context.php:r58282-58801
Index: branches/wmf-deployment/extensions/SecurePoll/includes/main/Base.php
@@ -1,5 +1,10 @@
22 <?php
33
 4+/**
 5+ * The page that's initially called by MediaWiki when navigating to
 6+ * Special:SecurePoll. The actual pages are not actually subclasses of
 7+ * this or of SpecialPage, they're subclassed from SecurePoll_Page.
 8+ */
49 class SecurePoll_BasePage extends UnlistedSpecialPage {
510 static $pages = array(
611 'details' => 'SecurePoll_DetailsPage',
Property changes on: branches/wmf-deployment/extensions/SecurePoll/includes/main/Base.php
___________________________________________________________________
Modified: svn:mergeinfo
712 Merged /trunk/extensions/SecurePoll/includes/main/Base.php:r58282-58801
Index: branches/wmf-deployment/extensions/SecurePoll/cli/cli.inc
@@ -14,3 +14,5 @@
1515
1616 require( $IP . '/maintenance/commandLine.inc' );
1717
 18+wfLoadExtensionMessages( 'SecurePoll' );
 19+
Index: branches/wmf-deployment/extensions/SecurePoll/resources/SecurePoll.css
@@ -94,3 +94,6 @@
9595 .securepoll-error-jump {
9696 margin-right: 0.5em;
9797 }
 98+.securepoll-election-closed {
 99+ color: #aaa;
 100+}
Index: branches/wmf-deployment/extensions/SecurePoll/SecurePoll.i18n.php
@@ -100,6 +100,8 @@
101101 'securepoll-strike-error' => 'Error performing strike/unstrike: $1',
102102 'securepoll-strike-token-mismatch' => 'Session data lost',
103103 'securepoll-details-link' => 'Details',
 104+ 'securepoll-voter-name-local' => '[[User:$1|$1]]',
 105+ 'securepoll-voter-name-remote' => '$1',
104106
105107 # Details page
106108 # Mostly for admins
@@ -133,6 +135,7 @@
134136 'securepoll-submit-select-lang' => 'Translate',
135137
136138 # Entry page
 139+ 'securepoll-entry-text' => 'Below is the list of polls.',
137140 'securepoll-header-title' => 'Name',
138141 'securepoll-header-start-date' => 'Start date',
139142 'securepoll-header-end-date' => 'End date',
@@ -159,6 +162,7 @@
160163 'securepoll-pairwise-victories' => 'Pairwise victory matrix',
161164 'securepoll-strength-matrix' => 'Path strength matrix',
162165 'securepoll-ranks' => 'Final ranking',
 166+ 'securepoll-average-score' => 'Average score',
163167 );
164168
165169 /** Message documentation (Message documentation)
@@ -234,6 +238,7 @@
235239 * @author Naudefj
236240 */
237241 $messages['af'] = array(
 242+ 'securepoll-submit' => 'Dien stem in',
238243 'securepoll-return' => 'Keer terug na $1',
239244 'securepoll-list-title' => 'Wys stemme: $1',
240245 'securepoll-header-timestamp' => 'Tyd',
@@ -493,6 +498,7 @@
494499 'securepoll-submit-translate' => 'Абнавіць',
495500 'securepoll-language-label' => 'Выбар мовы:',
496501 'securepoll-submit-select-lang' => 'Перакласьці',
 502+ 'securepoll-entry-text' => 'Ніжэй пададзены сьпіс апытаньняў.',
497503 'securepoll-header-title' => 'Назва',
498504 'securepoll-header-start-date' => 'Дата пачатку',
499505 'securepoll-header-end-date' => 'Дата заканчэньня',
@@ -672,6 +678,7 @@
673679 'securepoll-submit-translate' => 'Hizivaat',
674680 'securepoll-language-label' => 'Dibab ar yezh :',
675681 'securepoll-submit-select-lang' => 'Treiñ',
 682+ 'securepoll-entry-text' => 'A-is emañ roll ar mouezhiadegoù.',
676683 'securepoll-header-title' => 'Anv',
677684 'securepoll-header-start-date' => 'Deiziad kregiñ',
678685 'securepoll-header-end-date' => 'Deiziad termen',
@@ -798,6 +805,7 @@
799806 'securepoll-submit-translate' => 'Ažuriranje',
800807 'securepoll-language-label' => 'Izaberi jezik:',
801808 'securepoll-submit-select-lang' => 'Prevedi',
 809+ 'securepoll-entry-text' => 'Ispod je spisak glasanja.',
802810 'securepoll-header-title' => 'Ime',
803811 'securepoll-header-start-date' => 'Datum početka',
804812 'securepoll-header-end-date' => 'Datum završetka',
@@ -1052,6 +1060,7 @@
10531061 'securepoll-submit-translate' => 'Uložit',
10541062 'securepoll-language-label' => 'Zvolte jazyk:',
10551063 'securepoll-submit-select-lang' => 'Překládat',
 1064+ 'securepoll-entry-text' => 'Níže je zobrazen seznam hlasování.',
10561065 'securepoll-header-title' => 'Název',
10571066 'securepoll-header-start-date' => 'Datum začátku',
10581067 'securepoll-header-end-date' => 'Datum ukončení',
@@ -1129,6 +1138,8 @@
11301139 'securepoll-invalid-rank' => "Gradd annilys yn y drefn restrol. Rhaid ichi roi gradd rhwng 1 a 999 i'r ymgeiswyr.",
11311140 'securepoll-unranked-options' => 'Gadawyd rhai dewisiadau heb eu rhestru.
11321141 Rhaid ichi roi gradd rhwng 1 a 999 i bob dewis.',
 1142+ 'securepoll-invalid-score' => "Rhaid i'r sgôr fod yn rif rhwng $1 a $2.",
 1143+ 'securepoll-unanswered-options' => 'Rhaid ateb pob cwestiwn.',
11331144 'securepoll-remote-auth-error' => "Cafwyd gwall wrth nôl gwybodaeth eich cyfrif o'r gweinydd.",
11341145 'securepoll-remote-parse-error' => "Cafwyd gwall wrth ddehongli ymateb y gweinydd i'r cais awdurdodi.",
11351146 'securepoll-api-invalid-params' => 'Paramedrau annilys.',
@@ -1176,6 +1187,7 @@
11771188 'securepoll-submit-translate' => 'Diweddaru',
11781189 'securepoll-language-label' => 'Dewis iaith:',
11791190 'securepoll-submit-select-lang' => 'Cyfieithu',
 1191+ 'securepoll-entry-text' => 'Dyma restr yr etholiadau.',
11801192 'securepoll-header-title' => 'Enw',
11811193 'securepoll-header-start-date' => 'Dyddiad dechrau',
11821194 'securepoll-header-end-date' => 'Dyddiad gorffen',
@@ -1429,6 +1441,7 @@
14301442 'securepoll-submit-translate' => 'Aktualisieren',
14311443 'securepoll-language-label' => 'Sprache auswählen:',
14321444 'securepoll-submit-select-lang' => 'Übersetzen',
 1445+ 'securepoll-entry-text' => 'Nachfolgend die Liste der Wahlen.',
14331446 'securepoll-header-title' => 'Name',
14341447 'securepoll-header-start-date' => 'Beginn',
14351448 'securepoll-header-end-date' => 'Ende',
@@ -1722,6 +1735,7 @@
17231736 'securepoll-submit-translate' => 'Aktualizěrowaś',
17241737 'securepoll-language-label' => 'Rěc wubraś:',
17251738 'securepoll-submit-select-lang' => 'Přełožyś',
 1739+ 'securepoll-entry-text' => 'Dołojce jo lisćina wótgłosowanjow.',
17261740 'securepoll-header-title' => 'Mě',
17271741 'securepoll-header-start-date' => 'Zachopny datum',
17281742 'securepoll-header-end-date' => 'Kóńcny datum',
@@ -2462,6 +2476,7 @@
24632477 /** French (Français)
24642478 * @author Crochet.david
24652479 * @author IAlex
 2480+ * @author Jean-Frédéric
24662481 * @author Louperivois
24672482 * @author Omnipaedista
24682483 * @author PieRRoMaN
@@ -2565,6 +2580,7 @@
25662581 'securepoll-submit-translate' => 'Mettre à jour',
25672582 'securepoll-language-label' => 'Sélectionner la langue :',
25682583 'securepoll-submit-select-lang' => 'Traduire',
 2584+ 'securepoll-entry-text' => 'Ci-dessous la liste des sondages.',
25692585 'securepoll-header-title' => 'Nom',
25702586 'securepoll-header-start-date' => 'Date de début',
25712587 'securepoll-header-end-date' => 'Date de fin',
@@ -2736,6 +2752,7 @@
27372753 'securepoll-submit-translate' => 'Actualizar',
27382754 'securepoll-language-label' => 'Seleccione a lingua:',
27392755 'securepoll-submit-select-lang' => 'Traducir',
 2756+ 'securepoll-entry-text' => 'A continuación hai unha lista coas enquisas.',
27402757 'securepoll-header-title' => 'Nome',
27412758 'securepoll-header-start-date' => 'Data de inicio',
27422759 'securepoll-header-end-date' => 'Data de fin',
@@ -2888,6 +2905,7 @@
28892906 'securepoll-submit-translate' => 'Aktualisiere',
28902907 'securepoll-language-label' => 'Sproch uuswehle:',
28912908 'securepoll-submit-select-lang' => 'Ibersetze',
 2909+ 'securepoll-entry-text' => 'Do unte het s e Lischt mit Abstimmige.',
28922910 'securepoll-header-title' => 'Name',
28932911 'securepoll-header-start-date' => 'Aafangsdatum',
28942912 'securepoll-header-end-date' => 'Änddatum',
@@ -3408,6 +3426,7 @@
34093427 'securepoll-submit-translate' => 'Aktualizować',
34103428 'securepoll-language-label' => 'Rěč wubrać:',
34113429 'securepoll-submit-select-lang' => 'Přełožić',
 3430+ 'securepoll-entry-text' => 'Deleka je lisćina wothłosowanjow.',
34123431 'securepoll-header-title' => 'Mjeno',
34133432 'securepoll-header-start-date' => 'Spočatny datum',
34143433 'securepoll-header-end-date' => 'Kónčny datum',
@@ -3539,6 +3558,7 @@
35403559 'securepoll-submit-translate' => 'Frissítés',
35413560 'securepoll-language-label' => 'Nyelv kiválasztása:',
35423561 'securepoll-submit-select-lang' => 'Fordítás',
 3562+ 'securepoll-entry-text' => 'Alább látható a szavazások listája.',
35433563 'securepoll-header-title' => 'Név',
35443564 'securepoll-header-start-date' => 'Kezdődátum',
35453565 'securepoll-header-end-date' => 'Záródátum',
@@ -3665,6 +3685,7 @@
36663686 'securepoll-submit-translate' => 'Actualisar',
36673687 'securepoll-language-label' => 'Selige lingua:',
36683688 'securepoll-submit-select-lang' => 'Traducer',
 3689+ 'securepoll-entry-text' => 'Ci infra es le lista de votationes.',
36693690 'securepoll-header-title' => 'Nomine',
36703691 'securepoll-header-start-date' => 'Data de initio',
36713692 'securepoll-header-end-date' => 'Data de fin',
@@ -3694,6 +3715,7 @@
36953716 /** Indonesian (Bahasa Indonesia)
36963717 * @author Bennylin
36973718 * @author Irwangatot
 3719+ * @author IvanLanin
36983720 * @author Rex
36993721 */
37003722 $messages['id'] = array(
@@ -3792,6 +3814,7 @@
37933815 'securepoll-submit-translate' => 'Perbarui',
37943816 'securepoll-language-label' => 'Pilih bahasa:',
37953817 'securepoll-submit-select-lang' => 'Terjemahkan',
 3818+ 'securepoll-entry-text' => 'Berikut adalah daftar pemungutan suara',
37963819 'securepoll-header-title' => 'Nama',
37973820 'securepoll-header-start-date' => 'Tanggal mulai',
37983821 'securepoll-header-end-date' => 'Tanggal selesai',
@@ -4063,6 +4086,7 @@
40644087 'securepoll-submit-translate' => '更新',
40654088 'securepoll-language-label' => '言語を選択:',
40664089 'securepoll-submit-select-lang' => '翻訳',
 4090+ 'securepoll-entry-text' => '以下は投票の一覧です。',
40674091 'securepoll-header-title' => '名前',
40684092 'securepoll-header-start-date' => '開始日時',
40694093 'securepoll-header-end-date' => '終了日時',
@@ -4446,6 +4470,7 @@
44474471 'securepoll-submit-translate' => 'Neu maache!',
44484472 'securepoll-language-label' => 'Shprooch ußwähle:',
44494473 'securepoll-submit-select-lang' => 'Övversätze!',
 4474+ 'securepoll-entry-text' => 'Heh dronger kütt en Leß met de Afschtemmunge.',
44504475 'securepoll-header-title' => 'Name',
44514476 'securepoll-header-start-date' => 'Aanfangsdattum',
44524477 'securepoll-header-end-date' => 'Et Dattum vum Engk',
@@ -4573,6 +4598,7 @@
45744599 'securepoll-submit-translate' => 'Aktualiséieren',
45754600 'securepoll-language-label' => 'Sprooch eraussichen:',
45764601 'securepoll-submit-select-lang' => 'Iwwersetzen',
 4602+ 'securepoll-entry-text' => "Ënnedrèenner ass d'L!escht vun den Ëmfroen.",
45774603 'securepoll-header-title' => 'Numm',
45784604 'securepoll-header-start-date' => 'Ufanksdatum',
45794605 'securepoll-header-end-date' => 'Schlussdatum',
@@ -4921,6 +4947,7 @@
49224948 'securepoll-submit-translate' => 'Ажурирање',
49234949 'securepoll-language-label' => 'Избери јазик:',
49244950 'securepoll-submit-select-lang' => 'Преведување',
 4951+ 'securepoll-entry-text' => 'Подолу е наведена листата на гласањата.',
49254952 'securepoll-header-title' => 'Име',
49264953 'securepoll-header-start-date' => 'Почетен датум',
49274954 'securepoll-header-end-date' => 'Завршен датум',
@@ -4984,6 +5011,7 @@
49855012
49865013 പിശക്:
49875014 <pre>$2</pre>',
 5015+ 'securepoll-gpg-config-error' => 'GPG താക്കോലുകൾ തെറ്റായാണ് ക്രമീകരിക്കപ്പെട്ടിരിക്കുന്നത്.',
49885016 'securepoll-jump' => 'വോട്ടിങ് സെർവറിലേയ്ക്ക് പോവുക',
49895017 'securepoll-bad-ballot-submission' => 'താങ്കളുടെ വോട്ട് അസാധുവാണ്: $1',
49905018 'securepoll-unanswered-questions' => 'താങ്കൾ എല്ലാ ചോദ്യങ്ങൾക്കും ഉത്തരം നൽകേണ്ടതാണ്.',
@@ -4992,8 +5020,10 @@
49935021 താങ്കൾ 1 മുതൽ 999 വരെയുള്ളതിനിടയ്ക്കുള്ള റാങ്ക് എല്ലാത്തിനും നൽകേണ്ടതാണ്.',
49945022 'securepoll-invalid-score' => 'നൽകുന്ന വില $1, $2 എന്നിവയുടെ ഇടയിലുള്ളതായിരിക്കണം.',
49955023 'securepoll-unanswered-options' => 'എല്ലാ ചോദ്യങ്ങൾക്കും താങ്കൾ പ്രതികരിക്കേണ്ടതാണ്.',
 5024+ 'securepoll-remote-auth-error' => 'താങ്കളുടെ അംഗത്വ വിവരങ്ങൾ സെർവറിൽ നിന്ന് ശേഖരിക്കുമ്പോൾ പിശക് സംഭവിച്ചിരിക്കുന്നു.',
49965025 'securepoll-api-invalid-params' => 'അസാധുവായ ചരങ്ങൾ.',
49975026 'securepoll-api-no-user' => 'ലഭ്യമാക്കിയ ഐ.ഡി.യിൽ ഉപയോക്താക്കളെ ഒന്നും കണ്ടെത്താനായില്ല.',
 5027+ 'securepoll-api-token-mismatch' => 'സുരക്ഷാ ചീട്ട് ഒത്തുപോകുന്നില്ല, പ്രവേശിക്കാൻ കഴിയില്ല.',
49985028 'securepoll-not-logged-in' => 'ഈ തിരഞ്ഞെടുപ്പിൽ വോട്ട് ചെയ്യാൻ താങ്കൾ ലോഗിൻ ചെയ്യേണ്ടതാകുന്നു',
49995029 'securepoll-too-few-edits' => 'ക്ഷമിക്കുക, താങ്കൾക്ക് വോട്ട് ചെയ്യാനാവില്ല. ഈ തിരഞ്ഞെടുപ്പിൽ വോട്ട് ചെയ്യാൻ താങ്കൾക്ക് $1 {{PLURAL:$1|തിരുത്തൽ|തിരുത്തലുകൾ}} ആവശ്യമാണ്, താങ്കൾക്ക് $2 എണ്ണമേയുള്ളു.',
50005030 'securepoll-blocked' => 'ക്ഷമിക്കുക, താങ്കളെ ഇപ്പോൾ തിരുത്തുന്നതിൽ നിന്നും തടഞ്ഞിരിക്കുന്നതിനാൽ താങ്കൾക്ക് വോട്ട് ചെയ്യാൻ കഴിയില്ല.',
@@ -5003,31 +5033,44 @@
50045034 'securepoll-list-title' => 'വോട്ടുകളുടെ പട്ടിക: $1',
50055035 'securepoll-header-timestamp' => 'സമയം',
50065036 'securepoll-header-voter-name' => 'പേര്',
 5037+ 'securepoll-header-voter-domain' => 'ഡൊമൈൻ',
 5038+ 'securepoll-header-ua' => 'ഉപയോക്തൃ പ്രതിനിധി',
 5039+ 'securepoll-header-cookie-dup' => 'അപര(ൻ)',
 5040+ 'securepoll-header-strike' => 'വെട്ടുക',
50075041 'securepoll-header-details' => 'വിവരങ്ങൾ',
 5042+ 'securepoll-strike-button' => 'വെട്ടുക',
 5043+ 'securepoll-unstrike-button' => 'വെട്ടൽ നീക്കുക',
50085044 'securepoll-strike-reason' => 'കാരണം:',
50095045 'securepoll-strike-cancel' => 'റദ്ദാക്കുക',
 5046+ 'securepoll-strike-error' => 'വെട്ടൽ/അതൊഴിവാക്കൽ ചെയ്തതിൽ പിശക്: $1',
50105047 'securepoll-strike-token-mismatch' => 'സെഷൻ വിവരങ്ങൾ നഷ്ടപ്പെട്ടിരിക്കുന്നു',
50115048 'securepoll-details-link' => 'വിശദവിവരങ്ങൾ',
50125049 'securepoll-details-title' => 'വോട്ടിന്റെ വിവരങ്ങൾ: #$1',
50135050 'securepoll-invalid-vote' => '"$1" ഒരു സാധുവായ വോട്ട് ഐ.ഡി. അല്ല',
50145051 'securepoll-header-voter-type' => 'വോട്ടർ തരം',
50155052 'securepoll-voter-properties' => 'വോട്ടർ വിശേഷതകൾ',
 5053+ 'securepoll-strike-log' => 'വെട്ടലുകൾ ചെയ്തതിന്റെ രേഖ',
50165054 'securepoll-header-action' => 'പ്രവൃത്തി',
50175055 'securepoll-header-reason' => 'കാരണം',
50185056 'securepoll-header-admin' => 'കാര്യനിർവാഹകൻ',
 5057+ 'securepoll-dump-no-crypt' => 'തിരഞ്ഞെടുപ്പിൽ ഗൂഢീകരണം ക്രമീകരിച്ചിട്ടില്ലാത്തതിനാൽ, ഈ തിരഞ്ഞെടുപ്പിൽ ഗൂഢീകരിച്ച തിരഞ്ഞെടുപ്പ് വിവരങ്ങളൊന്നും ലഭ്യമല്ല.',
50195058 'securepoll-dump-not-finished' => 'നിഗൂഢമാക്കപ്പെട്ട തിരഞ്ഞെടുപ്പ് രേഖകൾ തിരഞ്ഞെടുപ്പ് പൂർണ്ണമാകുന്ന $1 $2 -വിനു ശേഷം മാത്രമേ ലഭ്യമാവുകയുള്ളു',
50205059 'securepoll-dump-no-urandom' => '/dev/urandom തുറക്കാൻ കഴിഞ്ഞില്ല.
50215060 വോട്ടു ചെയ്യുന്നയാളുടെ സ്വകാര്യത സൂക്ഷിക്കാനായി, നിഗൂഢമാക്കപ്പെട്ട തിരഞ്ഞെടുപ്പ് രേഖകൾ സുരക്ഷിത ക്രമരഹിത സംഖ്യാ ശ്രേണിയുമായി കശക്കിയ ശേഷം മാത്രമേ പൊതു ലഭ്യമാവുകയുള്ളു.',
 5061+ 'securepoll-urandom-not-supported' => 'ഈ സെർവർ ഗൂഢീകരിച്ച ക്രമരഹിത സംഖ്യാ സൃഷ്ടി പിന്തുണയ്ക്കുന്നില്ല.
 5062+വോട്ട് ചെയ്യുന്നയാളിന്റെ സ്വകാര്യത സംരക്ഷിക്കാനായി, സുരക്ഷിതമായ ഒരു ക്രമരഹിത സംഖ്യാ ശ്രേണിയുമായി കശക്കി ഗൂഢീകരിച്ച വോട്ടെടുപ്പ് വിവരങ്ങൾ മാത്രമേ പുറത്തു വിടുകയുള്ളു.',
50225063 'securepoll-translate-title' => 'തർജ്ജമ ചെയ്യുക:$1',
5023 - 'securepoll-invalid-language' => 'അസാധുവാന ഭാഷാ കോഡ് "$1"',
 5064+ 'securepoll-invalid-language' => 'അസാധുവായ ഭാഷാ കോഡ് "$1"',
50245065 'securepoll-submit-translate' => 'പുതുക്കുക',
50255066 'securepoll-language-label' => 'ഭാഷ തിരഞ്ഞെടുക്കുക:',
50265067 'securepoll-submit-select-lang' => 'തർജ്ജമ ചെയ്യുക',
 5068+ 'securepoll-entry-text' => 'വോട്ടെടുപ്പുകളുടെ പട്ടികയാണ് താഴെ.',
50275069 'securepoll-header-title' => 'പേര്',
50285070 'securepoll-header-start-date' => 'തുടങ്ങുന്ന തീയതി',
50295071 'securepoll-header-end-date' => 'അവസാനിക്കുന്ന തീയതി',
50305072 'securepoll-subpage-vote' => 'വോട്ട്',
50315073 'securepoll-subpage-translate' => 'തർജ്ജമ ചെയ്യുക',
 5074+ 'securepoll-ranks' => 'അന്തിമ റാങ്കിങ്',
50325075 );
50335076
50345077 /** Malay (Bahasa Melayu)
@@ -5162,7 +5205,7 @@
51635206 'securepoll' => 'SecurePoll',
51645207 'securepoll-desc' => 'Estensjoni għall-elezzjonijiet u s-sondaġġi',
51655208 'securepoll-invalid-page' => 'Sottopaġna invalida "<nowiki>$1</nowiki>"',
5166 - 'securepoll-need-admin' => 'Trid tkun amministratur biex tesegwixxi din l-azzjoni.',
 5209+ 'securepoll-need-admin' => 'Trid tkun amministratur tal-elezzjoni biex tesegwixxi din l-azzjoni.',
51675210 'securepoll-too-few-params' => 'Parametri mhux biżżejjed tas-sottopaġna (ħolqa invalida)0.',
51685211 'securepoll-invalid-election' => '"$1" mhijiex ID valida għall-elezzjoni.',
51695212 'securepoll-welcome' => '<strong>Merħba $1!</strong>',
@@ -5495,6 +5538,7 @@
54965539 'securepoll-submit-translate' => 'Bijwerken',
54975540 'securepoll-language-label' => 'Taal selecteren:',
54985541 'securepoll-submit-select-lang' => 'Vertalen',
 5542+ 'securepoll-entry-text' => 'Hieronder wordt een lijst met stemmingen weergegeven.',
54995543 'securepoll-header-title' => 'Naam',
55005544 'securepoll-header-start-date' => 'Begindatum',
55015545 'securepoll-header-end-date' => 'Einddatum',
@@ -5858,6 +5902,7 @@
58595903 'securepoll-submit-translate' => 'Metre a jorn',
58605904 'securepoll-language-label' => 'Seleccionar la lenga :',
58615905 'securepoll-submit-select-lang' => 'Traduire',
 5906+ 'securepoll-entry-text' => 'Çaijós la lista dels sondatges.',
58625907 'securepoll-header-title' => 'Nom',
58635908 'securepoll-header-start-date' => 'Data de començament',
58645909 'securepoll-header-end-date' => 'Data de fin',
@@ -6008,6 +6053,8 @@
60096054 'securepoll-header-voter-name' => 'Naame',
60106055 'securepoll-strike-reason' => 'Grund:',
60116056 'securepoll-header-reason' => 'Grund',
 6057+ 'securepoll-header-admin' => 'Verwalter',
 6058+ 'securepoll-translate-title' => 'Iwwersetze: $1',
60126059 'securepoll-submit-select-lang' => 'Iwwersetze',
60136060 'securepoll-header-title' => 'Naame',
60146061 'securepoll-subpage-translate' => 'Iwwersetze',
@@ -6143,6 +6190,7 @@
61446191 );
61456192
61466193 /** Piedmontese (Piemontèis)
 6194+ * @author Borichèt
61476195 * @author Dragonòt
61486196 */
61496197 $messages['pms'] = array(
@@ -6193,6 +6241,8 @@
61946242 'securepoll-invalid-rank' => 'Vot pa bon. It deuve dé ai candidà un vot tra 1 e 999.',
61956243 'securepoll-unranked-options' => 'Cheich opsion a son pa stàite votà.
61966244 It deuve deje a minca vos un vot tra 1 e 999.',
 6245+ 'securepoll-invalid-score' => 'Ël pontegi a deuv esse un nùmer an tra $1 e $2.',
 6246+ 'securepoll-unanswered-options' => "A dev dé n'arspòsta për minca chestion.",
61976247 'securepoll-remote-auth-error' => 'Eror an lesend le anformassion ëd tò cont dal server.',
61986248 'securepoll-remote-parse-error' => "Eror an antërpretand l'arspòsta d'autorisassion dal server.",
61996249 'securepoll-api-invalid-params' => 'Paràmetr pa vàlid.',
@@ -6240,6 +6290,7 @@
62416291 'securepoll-submit-translate' => 'Agiorna',
62426292 'securepoll-language-label' => 'Sern lenga:',
62436293 'securepoll-submit-select-lang' => 'Traduv',
 6294+ 'securepoll-entry-text' => 'Sota a-i é la lista dij sondagi.',
62446295 'securepoll-header-title' => 'Nòm',
62456296 'securepoll-header-start-date' => 'Data inissi',
62466297 'securepoll-header-end-date' => 'Data fin',
@@ -6286,6 +6337,7 @@
62876338 * @author Capmo
62886339 * @author Crazymadlover
62896340 * @author Everton137
 6341+ * @author Hamilton Abreu
62906342 * @author Lijealso
62916343 * @author Malafaya
62926344 * @author Waldir
@@ -6348,7 +6400,7 @@
63496401 'securepoll-blocked' => 'Desculpe, você não pode votar nesta eleição, se você está atualmente bloqueado de editar.',
63506402 'securepoll-bot' => 'Desculpe, contas com a marca de robô não estão autorizadas a votar nesta eleição.',
63516403 'securepoll-not-in-group' => 'Só os membros do grupo "$1" podem votar nesta eleição.',
6352 - 'securepoll-not-in-list' => 'Desculpe, você não está na lista de usuários previamente autorizados a votar nesta eleição.',
 6404+ 'securepoll-not-in-list' => 'Desculpe, não consta da lista de utilizadores previamente autorizados a votar nesta eleição.',
63536405 'securepoll-list-title' => 'Listar votos: $1',
63546406 'securepoll-header-timestamp' => 'Hora',
63556407 'securepoll-header-voter-name' => 'Nome',
@@ -6690,6 +6742,7 @@
66916743 'securepoll-submit-translate' => 'Обновить',
66926744 'securepoll-language-label' => 'Выбор языка:',
66936745 'securepoll-submit-select-lang' => 'Перевести',
 6746+ 'securepoll-entry-text' => 'Ниже приведён список голосований.',
66946747 'securepoll-header-title' => 'Имя',
66956748 'securepoll-header-start-date' => 'Дата начала',
66966749 'securepoll-header-end-date' => 'Дата окончания',
@@ -6914,6 +6967,8 @@
69156968 'securepoll-invalid-rank' => 'Neplatné hodnotenie. Musíte zadať kandidátov s hodnotením medzi 1 a 999.',
69166969 'securepoll-unranked-options' => 'Niektoré možnosti neboli ohodnotené.
69176970 Musíte dať každej možnosti hodnotenie medzi 1 a 999.',
 6971+ 'securepoll-invalid-score' => 'Skóre musí byť číslo medzi $1 a $2.',
 6972+ 'securepoll-unanswered-options' => 'Musíte dať odpoveď na každú otázku.',
69186973 'securepoll-remote-auth-error' => 'Pri zisťovaní vašich prihlasovacích informácií zo servera nastala chyba.',
69196974 'securepoll-remote-parse-error' => 'Pri interpretácii odpovede o autorizácii od servera nastala chyba.',
69206975 'securepoll-api-invalid-params' => 'Neplatné parametre.',
@@ -7312,6 +7367,7 @@
73137368 );
73147369
73157370 /** Thai (ไทย)
 7371+ * @author Ans
73167372 * @author Octahedron80
73177373 * @author Passawuth
73187374 * @author Watcharakorn
@@ -7320,7 +7376,7 @@
73217377 $messages['th'] = array(
73227378 'securepoll-desc' => 'ส่วนขยายสำหรับการลงคะแนนและการสำรวจ',
73237379 'securepoll-invalid-page' => 'ไม่มีหน้าย่อย "<nowiki>$1</nowiki>"',
7324 - 'securepoll-need-admin' => 'คุณต้องเป็นผู้ดูแลระบบในการกระทำสิ่งนี้',
 7380+ 'securepoll-need-admin' => 'คุณต้องเป็นผู้ดูแลระบบการเลือกตั้งในการกระทำสิ่งนี้',
73257381 'securepoll-too-few-params' => 'พารามิเตอร์ของหน้าย่อยไม่เพียงพอ (ไม่มีลิงก์ดังกล่าว)',
73267382 'securepoll-invalid-election' => '"$1" ไม่ใช่ไอดีลงคะแนนที่ถูกต้อง',
73277383 'securepoll-welcome' => '<strong>ยินดีต้อนรับ $1!</strong>',
@@ -7602,6 +7658,7 @@
76037659 'securepoll-submit-translate' => 'Güncelle',
76047660 'securepoll-language-label' => 'Dili seç:',
76057661 'securepoll-submit-select-lang' => 'Çevir',
 7662+ 'securepoll-entry-text' => 'Aşağıdaki, anketlerin listesidir.',
76067663 'securepoll-header-title' => 'Ad',
76077664 'securepoll-header-start-date' => 'Başlangıç tarihi',
76087665 'securepoll-header-end-date' => 'Bitiş tarihi',
@@ -7642,12 +7699,14 @@
76437700 * @author AS
76447701 * @author Ahonc
76457702 * @author Ilyaroz
 7703+ * @author NickK
 7704+ * @author Prima klasy4na
76467705 */
76477706 $messages['uk'] = array(
76487707 'securepoll' => 'Безпечне голосування',
76497708 'securepoll-desc' => 'Розширення для проведення виборів і опитувань',
76507709 'securepoll-invalid-page' => 'Помилкова підсторінка "<nowiki>$1</nowiki>"',
7651 - 'securepoll-need-admin' => 'Вам потрібно бути адміністртором, щоб виконати цю дію.',
 7710+ 'securepoll-need-admin' => 'Вам потрібно бути адміністратором виборів, щоб виконати цю дію.',
76527711 'securepoll-too-few-params' => 'Не вистачає параметрів підсторінки (помилкове посилання).',
76537712 'securepoll-invalid-election' => '«$1» не є допустимим виборчим ідентифікатором.',
76547713 'securepoll-welcome' => '<strong>Ласкаво просимо, $1!</strong>',
@@ -7691,6 +7750,8 @@
76927751 'securepoll-invalid-rank' => 'Неправильне місце. Ви повинні вказати для кандидата місце від 1 до 999.',
76937752 'securepoll-unranked-options' => 'Для деяких записів не зазначені місця.
76947753 Вам слід вказати місця від 1 до 999 для кожного запису.',
 7754+ 'securepoll-invalid-score' => 'Оцінка повинна бути числом від $1 до $2.',
 7755+ 'securepoll-unanswered-options' => 'Ви повинні дати відповідь на кожне питання.',
76957756 'securepoll-remote-auth-error' => 'Помилка отримання інформації з сервера про ваш обліковий запис.',
76967757 'securepoll-remote-parse-error' => 'Помилка інтерпретації відповіді від авторизації з сервера.',
76977758 'securepoll-api-invalid-params' => 'Помилкові параметри.',
@@ -7738,6 +7799,7 @@
77397800 'securepoll-submit-translate' => 'Оновити',
77407801 'securepoll-language-label' => 'Вибір мови:',
77417802 'securepoll-submit-select-lang' => 'Перекласти',
 7803+ 'securepoll-entry-text' => 'Нижче наведений список голосувань.',
77427804 'securepoll-header-title' => "Ім'я",
77437805 'securepoll-header-start-date' => 'Дата початку',
77447806 'securepoll-header-end-date' => 'Дата закінчення',
@@ -7759,6 +7821,9 @@
77607822 'securepoll-no-upload' => 'Файл не був завантажений, неможливо підрахувати результати.',
77617823 'securepoll-dump-corrupt' => 'Файл скиду (дампу) пошкоджений і не може бути обробленим.',
77627824 'securepoll-tally-upload-error' => 'Помилка під час підрахунків у файлі скиду (дампу): $1',
 7825+ 'securepoll-pairwise-victories' => 'Матриця попарних перемог',
 7826+ 'securepoll-strength-matrix' => 'Матриця сил шляхів',
 7827+ 'securepoll-ranks' => 'Остаточний рейтинг',
77637828 );
77647829
77657830 /** Urdu (اردو)
@@ -7981,6 +8046,8 @@
79828047 'securepoll-invalid-rank' => 'Xếp hạng không hợp lệ. Bạn phải xếp hạng cho ứng viên trong khoảng từ 1 đến 999.',
79838048 'securepoll-unranked-options' => 'Một số ứng viên chưa được xếp hạng.
79848049 Bạn phải xếp hạng từ 1 đến 999 cho tất cả các ứng viên.',
 8050+ 'securepoll-invalid-score' => 'Số điểm phải nằm giữa $1 và $2.',
 8051+ 'securepoll-unanswered-options' => 'Bạn phải cung cấp phản hồi cho mỗi câu hỏi.',
79858052 'securepoll-remote-auth-error' => 'Lỗi khi truy xuất thông tin tài khoản của bạn từ máy chủ.',
79868053 'securepoll-remote-parse-error' => 'Lỗi khi thông dịch phản hồi ủy quyền từ máy chủ.',
79878054 'securepoll-api-invalid-params' => 'Thông số không hợp lệ.',
@@ -8234,7 +8301,7 @@
82358302 'securepoll' => '安全投票',
82368303 'securepoll-desc' => '选举和投票扩展',
82378304 'securepoll-invalid-page' => '无效的子页面「<nowiki>$1</nowiki>」',
8238 - 'securepoll-need-admin' => '您必须是管理员才能进行此操作。',
 8305+ 'securepoll-need-admin' => '您必须是选举管理员才能进行此操作。',
82398306 'securepoll-too-few-params' => '缺少子页面参数(无效链接)。',
82408307 'securepoll-invalid-election' => '「$1」不是有效的选举投票编号。',
82418308 'securepoll-welcome' => '<strong>欢迎$1!</strong>',
@@ -8274,6 +8341,8 @@
82758342 'securepoll-unanswered-questions' => '您必须回答所有问题。',
82768343 'securepoll-invalid-rank' => '评级无效。给候选人的评级分数必须在1到999之间。',
82778344 'securepoll-unranked-options' => '部分选项尚未评级。所有选项均应评级,且分数应在1到999之间。',
 8345+ 'securepoll-invalid-score' => '分数必须介于$1和$2之间。',
 8346+ 'securepoll-unanswered-options' => '您必须回答每一个问题。',
82788347 'securepoll-remote-auth-error' => '从服务器提取您的用户信息时出错。',
82798348 'securepoll-remote-parse-error' => '服务器验证出错。',
82808349 'securepoll-api-invalid-params' => '参数无效。',
@@ -8320,6 +8389,7 @@
83218390 'securepoll-submit-translate' => '更新',
83228391 'securepoll-language-label' => '选择语言:',
83238392 'securepoll-submit-select-lang' => '翻译',
 8393+ 'securepoll-entry-text' => '下面是所有选举的列表。',
83248394 'securepoll-header-title' => '名称',
83258395 'securepoll-header-start-date' => '开始日期',
83268396 'securepoll-header-end-date' => '结束日期',
Property changes on: branches/wmf-deployment/extensions/SecurePoll
___________________________________________________________________
Modified: svn:mergeinfo
83278397 Merged /trunk/extensions/SecurePoll:r58282-58801

Past revisions this follows-up on

RevisionCommit summaryAuthorDate
r58282Merging r57450 through r58281 for arbcom election deployment.tstarling20:54, 28 October 2009
r58801* Added histogram/range tallier...tstarling03:11, 9 November 2009

Status & tagging log