http://www.mediawiki.org/wiki/Special:Code/MediaWiki/100297
Revision: 100297
Author: reedy
Date: 2011-10-19 23:52:10 +0000 (Wed, 19 Oct 2011)
Log Message:
-----------
1.18wmf1 MFT r100251, r100255, r100258, r100259, r100274, r100276, r100278
Modified Paths:
--------------
branches/wmf/1.18wmf1/extensions/Contest/Contest.i18n.php
branches/wmf/1.18wmf1/extensions/Contest/Contest.php
branches/wmf/1.18wmf1/extensions/Contest/INSTALL
branches/wmf/1.18wmf1/extensions/Contest/README
branches/wmf/1.18wmf1/extensions/Contest/RELEASE-NOTES
branches/wmf/1.18wmf1/extensions/Contest/api/ApiMailContestants.php
branches/wmf/1.18wmf1/extensions/Contest/includes/Contest.class.php
branches/wmf/1.18wmf1/extensions/Contest/specials/SpecialContest.php
branches/wmf/1.18wmf1/extensions/Contest/specials/SpecialEditContest.php
Added Paths:
-----------
branches/wmf/1.18wmf1/extensions/Contest/resources/contest.special.contest.js
Property Changed:
----------------
branches/wmf/1.18wmf1/extensions/Contest/
Property changes on: branches/wmf/1.18wmf1/extensions/Contest
___________________________________________________________________
Modified: svn:mergeinfo
- /branches/REL1_15/phase3/extensions/Contest:51646
/branches/REL1_17/phase3/extensions/Contest:81445,81448
/branches/new-installer/phase3/extensions/Contest:43664-66004
/branches/sqlite/extensions/Contest:58211-58321
/trunk/extensions/Contest:99592,99653,100190-100191,100193,100198,100200,100240,100245,100252,100255,100261,100287,100292
/trunk/phase3/extensions/Contest:92580,92634,92713,92762,92765,92791,92854,92884,92886-92887,92894,92898,92907,92932,92958,93141,93149,93151,93233-93234,93258,93266,93303,93516-93518,93520,93818-93822,93847,93858,93891,93935-93936,94058,94062,94068,94107,94155,94235,94277,94346,94372,94422,94425,94444,94448,94456,94498,94517,94601,94630,94728,94738,94825,94862,94995-94997,95023,95042,95072-95073,95155,95327,95332,95410,95422,95426,95442,95468,95601,95812,98578,98598,98656
+ /branches/REL1_15/phase3/extensions/Contest:51646
/branches/REL1_17/phase3/extensions/Contest:81445,81448
/branches/new-installer/phase3/extensions/Contest:43664-66004
/branches/sqlite/extensions/Contest:58211-58321
/trunk/extensions/Contest:99592,99653,100190-100191,100193,100198,100200,100240,100245,100251-100252,100255,100258-100259,100261,100274,100276,100278,100287,100292,100295
/trunk/phase3/extensions/Contest:92580,92634,92713,92762,92765,92791,92854,92884,92886-92887,92894,92898,92907,92932,92958,93141,93149,93151,93233-93234,93258,93266,93303,93516-93518,93520,93818-93822,93847,93858,93891,93935-93936,94058,94062,94068,94107,94155,94235,94277,94346,94372,94422,94425,94444,94448,94456,94498,94517,94601,94630,94728,94738,94825,94862,94995-94997,95023,95042,95072-95073,95155,95327,95332,95410,95422,95426,95442,95468,95601,95812,98578,98598,98656
Modified: branches/wmf/1.18wmf1/extensions/Contest/Contest.i18n.php
===================================================================
--- branches/wmf/1.18wmf1/extensions/Contest/Contest.i18n.php 2011-10-19
23:40:31 UTC (rev 100296)
+++ branches/wmf/1.18wmf1/extensions/Contest/Contest.i18n.php 2011-10-19
23:52:10 UTC (rev 100297)
@@ -30,16 +30,16 @@
// Groups
'group-contestadmin' => 'Contest admins',
- 'group-contestadmin-member' => '{{GENDER:$1|contest admin}}',
- 'grouppage-contestadmin' => 'Project:Contest_admins',
+ 'group-contestadmin-member' => '{{GENDER:$1|contest administrator}}',
+ 'grouppage-contestadmin' => '{{ns:project}}:Contest_administrators',
'group-contestant' => 'Contestant',
'group-contestant-member' => '{{GENDER:$1|Contestant}}',
- 'grouppage-contestant' => 'Project:Contestant',
+ 'grouppage-contestant' => '{{ns:project}}:Contestants',
'group-contestjudge' => 'Contest judges',
'group-contestjudge-member' => '{{GENDER:$1|contest judge}}',
- 'grouppage-contestjudge' => 'Project:Contest_judges',
+ 'grouppage-contestjudge' => '{{ns:project}}:Contest_judges',
// Preferences
'prefs-contest' => 'Contests',
@@ -69,7 +69,7 @@
// Special:Contests
'contest-special-addnew' => 'Add a new contest',
- 'contest-special-namedoc' => 'The name of the contest is the identifier
used in URLs. ie "name" in Special:Contest/name',
+ 'contest-special-namedoc' => 'The name of the contest is the identifier
used in URLs (i.e. "name" in {{#Special:Contest}}/name).',
'contest-special-newname' => 'Contest name',
'contest-special-add' => 'Add contest',
'contest-special-existing' => 'Existing contests',
@@ -81,7 +81,7 @@
'contest-special-delete' => 'Delete',
'contest-special-confirm-delete' => 'Are you sure you want to delete
this contest?',
- 'contest-special-delete-failed' => 'Failed to delete the contest.',
+ 'contest-special-delete-failed' => 'It was not possible to delete the
contest.',
// Special:EditContest
'editcontest-text' => 'You are editing a contest.',
@@ -95,7 +95,7 @@
'contest-edit-signup' => 'Signup e-mail page',
'contest-edit-reminder' => 'Reminder e-mail page',
'contest-edit-end' => 'Contest end',
- 'contest-edit-exists-already' => 'Note: you are editing an already
existing contest, not creating a new one.',
+ 'contest-edit-exists-already' => 'You are editing an existing contest.',
'contest-edit-submit' => 'Submit',
'contest-edit-challenges' => 'Contest challenges',
@@ -112,7 +112,7 @@
'contest-welcome-rules' => 'In order to participate, you are required
to agree to', // js i18n
'contest-welcome-rules-link' => 'the contest rules', // js i18n
'contest-welcome-signup' => 'Signup now',
- 'contest-welcome-js-off' => 'The contest user interface uses JavaScript
for an improved interface. Your browser either does not support JavaScript or
has JavaScript turned off.',
+ 'contest-welcome-js-off' => 'The contest user interface uses
JavaScript. Your browser does not support JavaScript or JavaScript is
disabled.',
'contest-welcome-accept-challenge' => 'Challenge accepted',
'contest-welcome-select-header' => 'Select your challenge:',
@@ -123,31 +123,49 @@
'contest-signup-header' => 'Please fill out the form to complete your
registration for $1.',
'contest-signup-email' => 'Your e-mail address',
'contest-signup-realname' => 'Your real name',
- 'contest-signup-volunteer' => 'I am interested in volunteer
opportunities',
- 'contest-signup-wmf' => 'I am interested in working for the Wikimedia
Foundation',
+ 'contest-signup-volunteer' => 'I am interested in receiving email about
volunteer opportunities',
+ 'contest-signup-wmf' => 'I am interested in being contacted about
working for the Wikimedia Foundation',
'contest-signup-cv' => 'Link to your CV',
- 'contest-signup-readrules' => 'I confirm that I have read, and agree
to, [[$1|the contest rules]]',
+ 'contest-signup-readrules' => 'I confirm that I have read [[$1|the
contest rules]] and agree to them',
'contest-signup-challenge' => 'What challenge do you want to take on?',
- 'contest-signup-finished' => 'This contest has ended. Thanks for your
participation!',
- 'contest-signup-draft' => 'This contest has not started yet. Please be
patient.',
+ 'contest-signup-finished' => 'This contest has ended. Thank you for
your participation!',
+ 'contest-signup-draft' => 'This contest has not yet started. Please be
patient.',
'contest-signup-country' => 'Your country',
- 'contest-signup-require-rules' => 'You need to agree to the contest
rules.',
- 'contest-signup-require-country' => 'You need to provide your country
of residence.',
+ 'contest-signup-require-rules' => 'You must agree to the contest
rules.',
+ 'contest-signup-require-country' => 'You must provide your country of
residence.',
'contest-signup-invalid-email' => 'The e-mail address you provided is
not valid.',
'contest-signup-invalid-name' => 'The name you provided is too short.',
'contest-signup-require-challenge' => 'You must select a challenge.',
- 'contest-signup-invalid-cv' => 'You entered an invalid URL.',
+ 'contest-signup-invalid-cv' => 'You have entered an invalid URL.',
// Special:Contest
'contest-contest-title' => 'Contest: $1',
'contest-contest-no-results' => 'There are no contestants to display.',
'contest-contest-name' => 'Name',
'contest-contest-status' => 'Status',
- 'contest-contest-submissioncount' => 'Amount of participants',
- 'contest-contest-contestants' => 'Contest contestants',
- 'contest-contest-contestants-text' => 'To judge an individual entry,
click on the entry ID in the left column.',
+ 'contest-contest-submissioncount' => 'Number of participants',
+ 'contest-contest-end' => 'Contest end',
+ 'contest-contest-days-ago' => '$1, $2 {{PLURAL:$2|day|days}} ago',
+ 'contest-contest-days-left' => '$1, in $2 {{PLURAL:$2|day|days}}',
+ 'contest-contest-contestants' => 'Contestants',
+ 'contest-contest-contestants-text' => 'Click on the entry ID in the
left column to judge an individual entry.',
+ 'contest-contest-reminder-mail' => 'Reminder e-mail',
+ 'contest-contest-reminder-page' => 'The content for the reminder e-mail
comes from [[$1|this page]].',
+ 'contest-contest-send-reminder' => 'Send reminder',
+ // Special:Contest, reminder email JS
+ 'contest-contest-reminder-preview' => 'Preview of the reminder e-mail:',
+ 'contest-contest-reminder-title' => 'Reminder e-mail',
+ 'contest-contest-reminder-send' => 'Send reminder',
+ 'contest-contest-reminder-cancel' => 'Cancel',
+ 'contest-contest-reminder-sending' => 'Sending...',
+ // We really want // {{PLURAL:$1|contestant|contestants}} here, but the
JS i18n shizzle does not support it yet :/
+ 'contest-contest-reminder-success' => 'Successfully send the reminder
email to $1 contestants',
+ 'contest-contest-reminder-close' => 'Close',
+ 'contest-contest-reminder-retry' => 'Retry sending',
+ 'contest-contest-reminder-failed' => 'Could not send the reminder
emails.',
+
// Contestant pager
'contest-contestant-id' => 'ID',
'contest-contestant-challenge-name' => 'Challenge name',
@@ -169,7 +187,7 @@
'contest-contestant-header-wmf' => 'Interested in WMF job',
'contest-contestant-header-volunteer' => 'Interested in volunteer
opportunities',
'contest-contestant-header-rating' => 'Rating',
- 'contest-contestant-header-comments' => 'Amount of comments',
+ 'contest-contestant-header-comments' => 'Number of comments',
'contest-contestant-submission-url' => 'Submission',
'contest-contestant-notsubmitted' => 'Not submitted yet',
'contest-contestant-comments' => 'Comments',
@@ -177,11 +195,11 @@
'contest-contestant-comment-by' => 'Comment by $1',
'contest-contestant-rate' => 'Rate this contestant',
'contest-contestant-not-voted' => 'You have not voted on this
participant yet.',
- 'contest-contestant-voted' => 'Your current vote is $1.',
+ 'contest-contestant-voted' => 'Your current vote is "$1".',
'contest-contestant-permalink' => 'Permalink',
// Emails
- 'contest-email-signup-title' => 'Thanks for joining the challenge!',
+ 'contest-email-signup-title' => 'Thank you for joining the challenge!',
'contest-email-reminder-title' => 'Only $1 {{PLURAL:$1|day|days}} until
the end of the challenge!',
// Special:MyContests
@@ -189,19 +207,19 @@
'contest-mycontests-no-contests' => 'You are not participating in any
contest.',
'contest-mycontests-active-header' => 'Running contests',
'contest-mycontests-finished-header' => 'Passed contests',
- 'contest-mycontests-active-text' => 'These are the contests you are
currently participating in:',
- 'contest-mycontests-finished-text' => 'These are the past contests you
have participated in:',
+ 'contest-mycontests-active-text' => 'You are currently participating in
these contests:',
+ 'contest-mycontests-finished-text' => 'You have have participated in
these contests:',
'contest-mycontests-header-contest' => 'Contest',
'contest-mycontests-header-challenge' => 'Challenge',
- 'contest-mycontests-signup-success' => 'You have successfully signed up
for the $1 contest.',
- 'contest-mycontests-addition-success' => 'You have successfully posted
your submission! Thanks for participating in this contest.',
- 'contest-mycontests-updated-success' => 'You have successfully modified
your submission.',
+ 'contest-mycontests-signup-success' => 'You have successfully signed up
for the "$1" contest.',
+ 'contest-mycontests-addition-success' => 'You have successfully posted
your submission! Thank you for participating in this contest.',
+ 'contest-mycontests-updated-success' => 'You have modified your
submission.',
'contest-mycontests-sessionfail' => 'Your submission could not be saved
due to loss of session data. Please try again.',
'contest-submission-submit' => 'Submit',
'contest-submission-unknown' => 'There is no contest with the provided
name.',
- 'contest-submission-header' => 'Thanks for participating in this
contest! Once you have completed the challenge, you can add a link to your
submission below.',
- 'contest-submission-finished' => 'This contest has ended. Thanks for
your participation!',
+ 'contest-submission-header' => 'Thank you for participating in this
contest! Once you have completed the challenge, you can add a link to your
submission below.',
+ 'contest-submission-finished' => 'This contest has ended. Thank you for
your participation!',
'contest-submission-submission' => 'Link to your submission',
'contest-submission-invalid-url' => 'This URL does not match one of the
allowed formats.',
@@ -247,7 +265,10 @@
'contest-contest-name' => 'Table row header',
'contest-contest-status' => 'Table row header',
'contest-contest-submissioncount' => 'Table row header',
+ 'contest-contest-end' => 'Table row header',
'contest-contest-contestants' => 'Page section header',
+ 'contest-contest-days-ago' => '$1 is a date, $2 is an integer, the
amount of days',
+ 'contest-contest-days-left' => '$1 is a date, $2 is an integer, the
amount of days',
'contest-contestant-id' => 'Table column header',
'contest-contestant-volunteer' => 'Table column header',
'contest-contestant-wmf' => 'Table column header',
@@ -276,6 +297,20 @@
'contest-email-signup-title' => 'Title for signup e-mails',
'contest-email-reminder-title' => 'Title for reminder e-mails',
+ // Special:Contest, reminder email
+ 'contest-contest-reminder-mail' => 'Reminder email',
+ 'contest-contest-reminder-page' => 'Text explaining the email content
is pulled from a page, $1 is the page name.',
+ 'contest-contest-send-reminder' => 'Send reminder button text',
+ 'contest-contest-reminder-preview' => 'Text indicating that the
following content is the preview for the reminder email.',
+ 'contest-contest-reminder-title' => 'Dialog title',
+ 'contest-contest-reminder-send' => 'Send button text',
+ 'contest-contest-reminder-cancel' => 'Cancel button text',
+ 'contest-contest-reminder-sending' => 'Send button text after clicking
it',
+ 'contest-contest-reminder-success' => 'Success message, $1 is the
amount of contesnats. No PLURAL for now, just assume there are multiple untill
MWs JS supports plural.',
+ 'contest-contest-reminder-close' => 'Close button text',
+ 'contest-contest-reminder-retry' => 'Retry button text',
+ 'contest-contest-reminder-failed' => 'Failiure message, displayed in an
alert box',
+
// Special:MyContests
'contest-mycontests-toplink' => 'Text for link in the user menu (i.e.
where watchlist and preferences are linked)',
'contest-mycontests-no-contests' => 'Message indicating there are no
contests for the user, displayed instead of a list.',
@@ -289,13 +324,13 @@
'contest-mycontests-addition-success' => 'Message shown when a user has
added a submission',
'contest-mycontests-updated-success' => 'Message shown when a user has
editied a submission',
'contest-mycontests-sessionfail' => 'Session failure',
-
'contest-submission-challenge' => 'Tells the user which challenge they
are part of. $1 is the challenge name',
'contest-submission-challenge-description' => 'Output of challenge name
and description. $1 is the challenge name, $2 is the challenge description',
);
/** German (Deutsch)
* @author Kghbln
+ * @author Reedy
*/
$messages['de'] = array(
'contest-desc' => 'Ermöglicht Wettbewerbe sowie die anschließende
Ermittlung der Gewinner durch Juroren',
@@ -394,8 +429,18 @@
'contest-contest-name' => 'Name',
'contest-contest-status' => 'Status',
'contest-contest-submissioncount' => 'Anzahl der Teilnehmer',
+ 'contest-contest-end' => 'Wettbewerbsende',
+ 'contest-contest-days-ago' => '$1, vor $2 {{PLURAL:$2|Tag|Tagen}}',
+ 'contest-contest-days-left' => '$1, in $2 {{PLURAL:$2|Tag|Tagen}}',
'contest-contest-contestants' => 'Wettbewerbsteilnehmer',
'contest-contest-contestants-text' => 'Um einen bestimmten
Wettbewerbsbeitrag zu beurteilen, bitte auf die entsprechende Beitragskennung
in der linken Spalte klicken.',
+ 'contest-contest-reminder-mail' => 'Erinnerungs-E-Mail',
+ 'contest-contest-reminder-page' => 'Der Inhalt der Erinnerungs-E-Mail
wird [[$1|dieser Seite]] entnommen.',
+ 'contest-contest-send-reminder' => 'Erinnerung senden',
+ 'contest-contest-reminder-preview' => 'Vorschau der
Erinnerungs-E-Mail:',
+ 'contest-contest-reminder-title' => 'Erinnerungs-E-Mail',
+ 'contest-contest-reminder-send' => 'Erinnerung senden',
+ 'contest-contest-reminder-cancel' => 'Abbrechen',
'contest-contestant-id' => 'Kennung',
'contest-contestant-challenge-name' => 'Name der Herausforderung',
'contest-contestant-volunteer' => 'Freiwilliger',
@@ -430,11 +475,11 @@
'contest-mycontests-no-contests' => 'Du nimmst an keinem Wettbewerb
teil.',
'contest-mycontests-active-header' => 'Laufende Wettbewerbe',
'contest-mycontests-finished-header' => 'Beendete Wettbewerbe',
- 'contest-mycontests-active-text' => 'Dies sind die Wettbewerbe, an
denen du derzeit teilnimmst.',
- 'contest-mycontests-finished-text' => 'Dies sind die beendeten
Wettbewerbe an denen du teilgenommen hast.',
+ 'contest-mycontests-active-text' => 'Dies sind die Wettbewerbe, an
denen du derzeit teilnimmst:',
+ 'contest-mycontests-finished-text' => 'Dies sind die beendeten
Wettbewerbe an denen du teilgenommen hast:',
'contest-mycontests-header-contest' => 'Wettbewerb',
'contest-mycontests-header-challenge' => 'Herausforderung',
- 'contest-mycontests-signup-success' => 'Du hast dich erfolgreich für
diesen Wettbewerb angemeldet.',
+ 'contest-mycontests-signup-success' => 'Du hast dich erfolgreich für
den Wettbewerb $1 angemeldet.',
'contest-mycontests-addition-success' => 'Du hast deinen Beitrag
erfolgreich eingereicht. Vielen Dank für die Teilnehme an diesem Wettbewerb.',
'contest-mycontests-updated-success' => 'Du hast deinen Beitrag
erfolgreich geändert.',
'contest-mycontests-sessionfail' => 'Dein Beitrag konnte aufgrund
verlorengegangener Sitzungsdaten nicht gespeichert werden. Bitte versuche es
erneut.',
@@ -446,6 +491,8 @@
'contest-submission-invalid-url' => 'Diese URL entspricht nicht einem
der zulässigen Formate.',
'contest-submission-new-submission' => 'Du musst noch den Link zu
deinem Beitrag hinzufügen. Dies muss noch vor Ablauf der Wettbewerbsfrist
erfolgen.',
'contest-submission-current-submission' => 'Dies ist die URL zu deinem
Beitrag. Du kannst ihn noch bis zum Ende der Wettbewerbsfrist ändern.',
+ 'contest-submission-challenge' => 'Du stellst dich gerade der
Herausforderung $1',
+ 'contest-submission-challenge-description' => "'''Aktuelle
Herausforderung: $1''' -- $2",
'contest-submission-domains' => 'Beiträge sind auf diese Websites
beschränkt: $1',
);
@@ -466,9 +513,9 @@
'contest-contestant-not-voted' => 'Sie haben noch nicht bezüglich
dieses Teilnehmers abgestimmt.',
'contest-contestant-voted' => 'Ihre aktuelle Stimmenanzahl beträgt $1.',
'contest-mycontests-no-contests' => 'Sie nehmen an keinem Wettbewerb
teil.',
- 'contest-mycontests-active-text' => 'Dies sind die Wettbewerbe, an
denen Sie derzeit teilnehmen.',
- 'contest-mycontests-finished-text' => 'Dies sind die beendeten
Wettbewerbe an denen Sie teilgenommen haben.',
- 'contest-mycontests-signup-success' => 'Sie haben sich erfolgreich für
diesen Wettbewerb angemeldet.',
+ 'contest-mycontests-active-text' => 'Dies sind die Wettbewerbe, an
denen Sie derzeit teilnehmen:',
+ 'contest-mycontests-finished-text' => 'Dies sind die beendeten
Wettbewerbe an denen Sie teilgenommen haben:',
+ 'contest-mycontests-signup-success' => 'Sie haben sich erfolgreich für
den Wettbewerb $1 angemeldet.',
'contest-mycontests-addition-success' => 'Sie haben Ihren Beitrag
erfolgreich eingereicht. Vielen Dank für die Teilnehme an diesem Wettbewerb.',
'contest-mycontests-updated-success' => 'Sie haben Ihren Beitrag
erfolgreich geändert.',
'contest-mycontests-sessionfail' => 'Ihr Beitrag konnte aufgrund
verlorengegangener Sitzungsdaten nicht gespeichert werden. Bitte versuchen Sie
es erneut.',
@@ -476,10 +523,12 @@
'contest-submission-submission' => 'Link zu Ihrem Beitrag',
'contest-submission-new-submission' => 'Sie müssen noch den Link zu
Ihrem Beitrag hinzufügen. Dies muss noch vor Ablauf der Wettbewerbsfrist
erfolgen.',
'contest-submission-current-submission' => 'Dies ist die URL zu Ihrem
Beitrag. Sie können ihn noch bis zum Ende der Wettbewerbsfrist ändern.',
+ 'contest-submission-challenge' => 'Sie stellen sich gerade der
Herausforderung $1',
);
/** French (Français)
* @author Gomoko
+ * @author Reedy
*/
$messages['fr'] = array(
'contest-desc' => 'Extension de concours qui permet aux utilisateurs de
participer à des défis de concours organisés par un administrateur. Via une
interface de jugement, les juges peuvent discuter et voter sur les
propositions.',
@@ -614,11 +663,11 @@
'contest-mycontests-no-contests' => 'Vous ne participez à aucun
concours.',
'contest-mycontests-active-header' => 'Concours en cours',
'contest-mycontests-finished-header' => 'Concours terminés',
- 'contest-mycontests-active-text' => 'Voici les concours auxquels vous
participez actuellement.',
- 'contest-mycontests-finished-text' => 'Voici les concours terminés
auxquels vous avez participé.',
+ 'contest-mycontests-active-text' => 'Voici les concours auxquels vous
participez actuellement:',
+ 'contest-mycontests-finished-text' => 'Voici les concours terminés
auxquels vous avez participé:',
'contest-mycontests-header-contest' => 'Concours',
'contest-mycontests-header-challenge' => 'Défi',
- 'contest-mycontests-signup-success' => 'Vous avez réussi à vous
inscrire à ce concours.',
+ 'contest-mycontests-signup-success' => 'Vous avez réussi à vous
inscrire au concours $1.',
'contest-mycontests-addition-success' => 'Vous avez réussi à envoyer
votre réponse! Merci de votre participation à ce concours.',
'contest-mycontests-updated-success' => 'Vous avez réussi à modifier
votre réponse.',
'contest-mycontests-sessionfail' => "Votre réponse n'a pas pu être
enregistrée à cause d'une perte des données de session. Merci d'essayer de
nouveau.",
@@ -630,11 +679,13 @@
'contest-submission-invalid-url' => 'Cette URL ne correspond pas à un
des formats autorisés.',
'contest-submission-new-submission' => "Vous devez encore entrer l'URL
de votre réponse. Cela doit être fait avant la date limite.",
'contest-submission-current-submission' => "Voici l'URL de votre
réponse, que vous pouvez modifier jusqu'à la date limite.",
+ 'contest-submission-challenge' => 'Vous êtes actuellement sur le défi
$1',
'contest-submission-domains' => 'Les réponses sont limitées à ces
sites: $1',
);
/** Interlingua (Interlingua)
* @author McDutchie
+ * @author Reedy
*/
$messages['ia'] = array(
'contest-desc' => 'Permitte al usatores de participar in concursos
definite per administratores. Via un interfacie de judicamento, le judices pote
discuter e votar sur submissiones.',
@@ -790,6 +841,7 @@
/** Macedonian (Македонски)
* @author Bjankuloski06
+ * @author Reedy
*/
$messages['mk'] = array(
'contest-desc' => 'Додаток што им овозможува на корисниците да
учествуваат во конкурси (задачи) приредени од администраторите. Жири комисијата
има свој посредник за дискутирање и гласање за поднесеното.',
@@ -844,7 +896,7 @@
'contest-edit-opportunities' => 'Страница за можности',
'contest-edit-rulespage' => 'Страница со правила',
'contest-edit-help' => 'Страница за помош',
- 'contest-edit-signup' => 'Страниз на е-пошта за пријава',
+ 'contest-edit-signup' => 'Страница на е-пошта за пријава',
'contest-edit-reminder' => 'Страница за потсетник на е-пошта',
'contest-edit-end' => 'Крај на конкурсот',
'contest-edit-exists-already' => 'Напомена: уредувате веќе постоечки
конкурс - не создавате нов.',
@@ -852,7 +904,7 @@
'contest-edit-challenges' => 'Задачи на конкурсот',
'contest-edit-delete' => 'Избриши задача',
'contest-edit-add-first' => 'Додај задача',
- 'contest-edit-add-another' => 'одај друга задача',
+ 'contest-edit-add-another' => 'Додај друга задача',
'contest-edit-confirm-delete' => 'Дали сте сигурни дека сакате да го
избришете конкурсов?',
'contest-edit-challenge-title' => 'Наслов на задачата',
'contest-edit-challenge-text' => 'Текст на задачата',
@@ -924,11 +976,11 @@
'contest-mycontests-no-contests' => 'Не учествувате во ниеден конкурс.',
'contest-mycontests-active-header' => 'Тековни конкурси',
'contest-mycontests-finished-header' => 'Минати конкурси',
- 'contest-mycontests-active-text' => 'Моментално учествувате во
наведениве конкурси.',
- 'contest-mycontests-finished-text' => 'Ова се конкурсите во кои имате
учествувано.',
+ 'contest-mycontests-active-text' => 'Моментално учествувате во следниве
конкурси:',
+ 'contest-mycontests-finished-text' => 'Ова се конкурсите во кои имате
учествувано:',
'contest-mycontests-header-contest' => 'Конкурс',
'contest-mycontests-header-challenge' => 'Задача',
- 'contest-mycontests-signup-success' => 'Успешно се пријавивте за овој
конкурс.',
+ 'contest-mycontests-signup-success' => 'Успешно се пријавивте за овој
конкурсот $1.',
'contest-mycontests-addition-success' => 'Успешно поднесено! Ви
благодариме за учеството.',
'contest-mycontests-updated-success' => 'Поднесеното е успешно
изменето.',
'contest-mycontests-sessionfail' => 'Поднесеното не е зачувано поради
загуба на сесиски податоци. Обидете се повторно.',
@@ -940,10 +992,12 @@
'contest-submission-invalid-url' => 'Оваа URL-адреса не одговара на
допуштените формати.',
'contest-submission-new-submission' => 'Преостанува да наведете
URL-адреса во поднесеното. Ова мора да го сторите пред истекот на рокот.',
'contest-submission-current-submission' => 'Ова е URL-адресата на
поднесеното, кое можете да го менувате додека не истече рокот.',
+ 'contest-submission-challenge' => 'Моментално сте на задачата $1',
'contest-submission-domains' => 'Поднесувањето е ограничено на следниве
мрежни места: $1',
);
/** Dutch (Nederlands)
+ * @author Reedy
* @author SPQRobin
*/
$messages['nl'] = array(
@@ -1062,3 +1116,19 @@
'contest-submission-submission' => 'Verwijzing naar uw inzending',
);
+/** Telugu (తెలుగు)
+ * @author Veeven
+ */
+$messages['te'] = array(
+ 'contest-special-name' => 'పేరు',
+ 'contest-special-status' => 'స్థితి',
+ 'contest-edit-rulespage' => 'నియమాల పుట',
+ 'contest-edit-help' => 'సహాయపు పుట',
+ 'contest-signup-country' => 'మీ దేశం',
+ 'contest-contest-name' => 'పేరు',
+ 'contest-contest-status' => 'స్థితి',
+ 'contest-contestant-comments' => 'వ్యాఖ్యలు',
+ 'contest-contestant-permalink' => 'స్థిరలంకె',
+ 'contest-submission-submit' => 'దాఖలుచెయ్యి',
+);
+
Modified: branches/wmf/1.18wmf1/extensions/Contest/Contest.php
===================================================================
--- branches/wmf/1.18wmf1/extensions/Contest/Contest.php 2011-10-19
23:40:31 UTC (rev 100296)
+++ branches/wmf/1.18wmf1/extensions/Contest/Contest.php 2011-10-19
23:52:10 UTC (rev 100297)
@@ -28,7 +28,7 @@
die( '<b>Error:</b> Contest requires MediaWiki 1.18 or above.' );
}
-define( 'CONTEST_VERSION', '0.1alpha' );
+define( 'CONTEST_VERSION', '0.1' );
$wgExtensionCredits['other'][] = array(
'path' => __FILE__,
@@ -156,6 +156,26 @@
)
);
+$wgResourceModules['contest.special.contest'] = $moduleTemplate + array(
+ 'scripts' => array(
+ 'contest.special.contest.js'
+ ),
+ 'messages' => array(
+ 'contest-contest-reminder-title',
+ 'contest-contest-reminder-cancel',
+ 'contest-contest-reminder-send',
+ 'contest-contest-reminder-preview',
+ 'contest-contest-reminder-sending',
+ 'contest-contest-reminder-success',
+ 'contest-contest-reminder-close',
+ 'contest-contest-reminder-retry',
+ 'contest-contest-reminder-failed',
+ ),
+ 'dependencies' => array(
+ 'jquery.ui.button', 'jquery.ui.dialog',
+ )
+);
+
$wgResourceModules['jquery.ui.timepicker'] = $moduleTemplate + array(
'scripts' => array(
'jquery.ui.timepicker.js',
Modified: branches/wmf/1.18wmf1/extensions/Contest/INSTALL
===================================================================
--- branches/wmf/1.18wmf1/extensions/Contest/INSTALL 2011-10-19 23:40:31 UTC
(rev 100296)
+++ branches/wmf/1.18wmf1/extensions/Contest/INSTALL 2011-10-19 23:52:10 UTC
(rev 100297)
@@ -58,7 +58,12 @@
|-
| submissionDomains
| array of string
-| array( 'github.com', 'gitorious.org' )
+| array( 'mediawiki.org', 'github.com', 'gitorious.org' )
| Domains on which submissions can be placed
+|-
+| reminderJobSize
+| integer
+| 50
+| Max size of the reminder email jobs (in emails to send)
|}
Modified: branches/wmf/1.18wmf1/extensions/Contest/README
===================================================================
--- branches/wmf/1.18wmf1/extensions/Contest/README 2011-10-19 23:40:31 UTC
(rev 100296)
+++ branches/wmf/1.18wmf1/extensions/Contest/README 2011-10-19 23:52:10 UTC
(rev 100297)
@@ -15,6 +15,7 @@
* Summary pages per contest listing contestants, which can be filtered and
sorted.
* Judging interface that allows for rating and commenting on each participant.
* All contests, challenges, contestants, comments and votes can be queried and
exported via the API.
+* Signup and reminder emails.
== Credits to other projects ==
Modified: branches/wmf/1.18wmf1/extensions/Contest/RELEASE-NOTES
===================================================================
--- branches/wmf/1.18wmf1/extensions/Contest/RELEASE-NOTES 2011-10-19
23:40:31 UTC (rev 100296)
+++ branches/wmf/1.18wmf1/extensions/Contest/RELEASE-NOTES 2011-10-19
23:52:10 UTC (rev 100297)
@@ -14,4 +14,5 @@
* Personal contest list and submission interface for each user.
* Summary pages per contest listing contestants, which can be filtered and
sorted.
* Judging interface that allows for rating and commenting on each participant.
-* All contests, challenges, contestants, comments and votes can be queried and
exported via the API.
\ No newline at end of file
+* All contests, challenges, contestants, comments and votes can be queried and
exported via the API.
+* Signup and reminder emails.
\ No newline at end of file
Modified: branches/wmf/1.18wmf1/extensions/Contest/api/ApiMailContestants.php
===================================================================
--- branches/wmf/1.18wmf1/extensions/Contest/api/ApiMailContestants.php
2011-10-19 23:40:31 UTC (rev 100296)
+++ branches/wmf/1.18wmf1/extensions/Contest/api/ApiMailContestants.php
2011-10-19 23:52:10 UTC (rev 100297)
@@ -18,7 +18,6 @@
parent::__construct( $main, $action );
}
- // TODO
public function execute() {
global $wgUser;
@@ -71,11 +70,11 @@
$conditions['id'] = $params['ids'];
}
- $contestants = ContestContestant::s()->select( 'email',
$conditions );
+ $contestants = ContestContestant::s()->select( array(
'contest_id', 'email' ), $conditions );
if ( $contestants !== false && count( $contestants ) > 0 ) {
$setSize = ContestSettings::get( 'reminderJobSize' );
- $limit = count( $contestants ) - $setSize;
+ $limit = count( $contestants );
for ( $i = 0; $i <= $limit; $i += $setSize ) {
$this->createReminderJob( array_splice(
$contestants, $i, $setSize ) );
Modified: branches/wmf/1.18wmf1/extensions/Contest/includes/Contest.class.php
===================================================================
--- branches/wmf/1.18wmf1/extensions/Contest/includes/Contest.class.php
2011-10-19 23:40:31 UTC (rev 100296)
+++ branches/wmf/1.18wmf1/extensions/Contest/includes/Contest.class.php
2011-10-19 23:52:10 UTC (rev 100297)
@@ -16,8 +16,8 @@
// Constants representing the states a contest can have.
const STATUS_DRAFT = 0;
const STATUS_ACTIVE = 1;
- const STATUS_FINISHED = 2; // manually stopped by contest manager
- const STATUS_EXPIRED = 3; // past configured contest end date
+ const STATUS_FINISHED = 2; // Manually stopped by contest manager.
+ const STATUS_EXPIRED = 3; // Past configured contest end date.
/**
* List of challenges for this contest.
@@ -138,6 +138,7 @@
*/
public function getDefaults() {
$defaultPage = 'MediaWiki:Contests/';
+
return array(
'name' => '',
'status' => self::STATUS_DRAFT,
@@ -188,14 +189,18 @@
wfMsg( 'contest-status-draft' ) =>
self::STATUS_DRAFT,
wfMsg( 'contest-status-active' ) =>
self::STATUS_ACTIVE,
wfMsg( 'contest-status-finished' ) =>
self::STATUS_FINISHED,
+ wfMsg( 'contest-status-expired' ) =>
self::STATUS_EXPIRED,
);
}
- if ( !$onlySettable ) {
- $map[wfMsg( 'contest-status-expired')] =
self::STATUS_EXPIRED;
+ if ( $onlySettable ) {
+ $messages = $map;
+ unset( $messages[wfMsg( 'contest-status-expired' )] );
+ return $messages;
}
-
- return $map;
+ else {
+ return $map;
+ }
}
/**
Copied:
branches/wmf/1.18wmf1/extensions/Contest/resources/contest.special.contest.js
(from rev 100259, trunk/extensions/Contest/resources/contest.special.contest.js)
===================================================================
---
branches/wmf/1.18wmf1/extensions/Contest/resources/contest.special.contest.js
(rev 0)
+++
branches/wmf/1.18wmf1/extensions/Contest/resources/contest.special.contest.js
2011-10-19 23:52:10 UTC (rev 100297)
@@ -0,0 +1,78 @@
+/**
+ * JavasSript for the Contest MediaWiki extension.
+ * @see https://www.mediawiki.org/wiki/Extension:Contest
+ *
+ * @licence GNU GPL v3 or later
+ * @author Jeroen De Dauw <jeroendedauw at gmail dot com>
+ */
+
+(function( $, mw ) { $( document ).ready( function() {
+
+ var _this = this;
+
+ this.sendReminder = function( callback ) {
+ var requestArgs = {
+ 'action': 'mailcontestants',
+ 'format': 'json',
+ 'token': $( '#send-reminder' ).attr( 'data-token' ),
+ 'contestids': $( '#send-reminder' ).attr(
'data-contest-id' )
+ };
+
+ $.post(
+ wgScriptPath + '/api.php',
+ requestArgs,
+ function( data ) {
+ callback( data );
+ }
+ );
+ };
+
+ this.showReminderDialog = function() {
+ var $dialog = null;
+
+ $dialog = $( '<div />' ).html( '' ).dialog( {
+ 'title': mw.msg( 'contest-contest-reminder-title' ),
+ 'buttons': [
+ {
+ 'text': mw.msg(
'contest-contest-reminder-send' ),
+ 'id': 'reminder-send-button',
+ 'click': function() {
+ var $send = $(
'#reminder-send-button' );
+ var $cancel = $(
'#reminder-cancel-button' );
+
+ $send.button( 'option',
'disabled', true );
+ $send.button( 'option',
'label', mw.msg( 'contest-contest-reminder-sending' ) );
+
+ _this.sendReminder( function(
data ) {
+ if ( data.success ) {
+ $dialog.text(
mw.msg( 'contest-contest-reminder-success', data.contestantcount ) );
+ $send.remove();
+ $cancel.button(
'option', 'label', mw.msg( 'contest-contest-reminder-close' ) );
+ }
+ else {
+ $send.button(
'option', 'label', mw.msg( 'contest-contest-reminder-retry' ) );
+ $send.button(
'option', 'disabled', false );
+
+ alert( mw.msg(
'contest-contest-reminder-failed' ) );
+ }
+ } );
+ }
+ },
+ {
+ 'text': mw.msg(
'contest-contest-reminder-cancel' ),
+ 'id': 'reminder-cancel-button',
+ 'click': function() {
+ $dialog.dialog( 'close' );
+ }
+ }
+ ]
+ } );
+
+ $dialog.append( $( '<p />' ).text( mw.msg(
'contest-contest-reminder-preview' ) ) ).append( '<hr />' );
+
+ $dialog.append( $( '#reminder-content' ).html() );
+ };
+
+ $( '#send-reminder' ).button().click( this.showReminderDialog );
+
+} ); })( window.jQuery, window.mediaWiki );
\ No newline at end of file
Modified: branches/wmf/1.18wmf1/extensions/Contest/specials/SpecialContest.php
===================================================================
--- branches/wmf/1.18wmf1/extensions/Contest/specials/SpecialContest.php
2011-10-19 23:40:31 UTC (rev 100296)
+++ branches/wmf/1.18wmf1/extensions/Contest/specials/SpecialContest.php
2011-10-19 23:52:10 UTC (rev 100297)
@@ -53,9 +53,13 @@
}
else {
$out->setPageTitle( wfMsgExt( 'contest-contest-title',
'parseinline', $contest->getField( 'name' ) ) );
+
$this->displayNavigation();
$this->showGeneralInfo( $contest );
+ $this->showMailFunctionality( $contest );
$this->showContestants( $contest, $challengeTitle );
+
+ $out->addModules( 'contest.special.contest' );
}
}
@@ -107,11 +111,52 @@
$stats['name'] = $contest->getField( 'name' );
$stats['status'] = Contest::getStatusMessage(
$contest->getStatus() );
$stats['submissioncount'] = $this->getLang()->formatNum(
$contest->getField( 'submission_count' ) );
-
+
+ $stats['end'] = wfMsgExt(
+ $contest->getDaysLeft() < 0 ?
'contest-contest-days-ago' : 'contest-contest-days-left',
+ 'parsemag',
+ $this->getLang()->timeanddate( $contest->getField(
'end' ), true ),
+ $this->getLang()->formatNum( abs(
$contest->getDaysLeft() ) )
+ );
+
return $stats;
}
/**
+ *
+ *
+ * @since 0.1
+ *
+ * @param Contest $contest
+ */
+ protected function showMailFunctionality( Contest $contest ) {
+ $out = $this->getOutput();
+
+ $out->addHTML( Html::element( 'h3', array(), wfMsg(
'contest-contest-reminder-mail' ) ) );
+
+ $out->addWikiMsg( 'contest-contest-reminder-page',
$contest->getField( 'reminder_email' ) );
+
+ $out->addHTML( Html::element(
+ 'button',
+ array(
+ 'id' => 'send-reminder',
+ 'data-token' => $this->getUser()->editToken(),
+ 'data-contest-id' => $contest->getId()
+ ),
+ wfMsg( 'contest-contest-send-reminder' )
+ ) );
+
+ $out->addHTML( Html::rawElement(
+ 'div',
+ array(
+ 'id' => 'reminder-content',
+ 'style' => 'display:none'
+ ),
+ ContestUtils::getParsedArticleContent(
$contest->getField( 'reminder_email' ) )
+ ) );
+ }
+
+ /**
* Show a paged list of the contestants foe this contest.
*
* @since 0.1
Modified:
branches/wmf/1.18wmf1/extensions/Contest/specials/SpecialEditContest.php
===================================================================
--- branches/wmf/1.18wmf1/extensions/Contest/specials/SpecialEditContest.php
2011-10-19 23:40:31 UTC (rev 100296)
+++ branches/wmf/1.18wmf1/extensions/Contest/specials/SpecialEditContest.php
2011-10-19 23:52:10 UTC (rev 100297)
@@ -278,7 +278,7 @@
$fields['id'] = $contest === false ? null :
$contest->getField( 'id' );
}
- $contest = new Contest( $fields, true );
+ $contest = new Contest( $fields, is_null( $fields['id'] ) );
$contest->setChallenges( $this->getSubmittedChallenges() );
$success = $contest->writeAllToDB();
_______________________________________________
MediaWiki-CVS mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs