Add PLURAL support to benefits
authorMatthew Flaschen <mflaschen@wikimedia.org>
Tue, 30 Apr 2013 20:10:37 +0000 (16:10 -0400)
committerMatthew Flaschen <mflaschen@wikimedia.org>
Tue, 30 Apr 2013 23:32:30 +0000 (19:32 -0400)
Make it a little easier to tweak the number of benefits.

Change-Id: Icbd1f7738197be061b8b9f12c45024902e3bb2b8

includes/specials/SpecialUserlogin.php
includes/templates/UsercreateVForm.php
languages/messages/MessagesEn.php

index bb57e6c..b147b83 100644 (file)
@@ -1105,6 +1105,8 @@ class LoginForm extends SpecialPage {
                                $out->addJsConfigVars( 'wgCreateacctImgcaptchaHelp',
                                        $this->msg( 'createacct-imgcaptcha-help' )->parse() );
                                $out->addModules( 'mediawiki.special.createaccount.vform.js' );
+                               // Must match number of benefits defined in messages
+                               $template->set( 'benefitCount', 3 );
                        } else {
                                $template = new UsercreateTemplate();
                        }
index f379e3a..867e067 100644 (file)
@@ -261,27 +261,21 @@ class UsercreateTemplateVForm extends BaseTemplate {
 <div class="mw-createacct-benefits-container">
        <h2><?php $this->msg( 'createacct-benefit-heading' ); ?></h2>
        <div class="mw-createacct-benefits-list">
+       <?php
+       for ( $benefitIdx = 1; $benefitIdx <= $this->data['benefitCount']; $benefitIdx++ ) {
+               // Pass each benefit's head text (by default a number) as a parameter to the body's message for PLURAL handling.
+               $headUnescaped = $this->getMsg( "createacct-benefit-head$benefitIdx" )->text();
+       ?>
                <div>
-                       <div class="mw-benefits-icon <?php $this->msg( 'createacct-benefit-icon1' ); ?>"></div>
-                       <div class="mw-number-text">
-                               <h3><?php $this->msg( 'createacct-benefit-head1' ); ?></h3>
-                               <p><?php $this->msg( 'createacct-benefit-body1' ); ?></p>
-                       </div>
-               </div>
-               <div>
-                       <div class="mw-benefits-icon <?php $this->msg( 'createacct-benefit-icon2' ); ?>"></div>
-                       <div class="mw-number-text">
-                               <h3><?php $this->msg( 'createacct-benefit-head2' ); ?></h3>
-                               <p><?php $this->msg( 'createacct-benefit-body2' ); ?></p>
-                       </div>
-               </div>
-               <div>
-                       <div class="mw-benefits-icon <?php $this->msg( 'createacct-benefit-icon3' ); ?>"></div>
+                       <div class="mw-benefits-icon <?php $this->msg( "createacct-benefit-icon$benefitIdx" ); ?>"></div>
                        <div class="mw-number-text">
-                               <h3><?php $this->msg( 'createacct-benefit-head3' ); ?></h3>
-                               <p><?php $this->msg( 'createacct-benefit-body3' ); ?></p>
+                               <h3><?php $this->msg( "createacct-benefit-head$benefitIdx" ); ?></h3>
+                               <p><?php echo $this->getMsg( "createacct-benefit-body$benefitIdx" )->params( $headUnescaped )->escaped(); ?></p>
                        </div>
                </div>
+       <?php
+       }
+       ?>
        </div>
 </div>
 </div>
index 3a5d112..d9ad138 100644 (file)
@@ -1132,13 +1132,13 @@ Do not forget to change your [[Special:Preferences|{{SITENAME}} preferences]].',
 'createacct-benefit-heading'      => '{{SITENAME}} is made by people like you.',
 'createacct-benefit-icon1'        => 'icon-edits',
 'createacct-benefit-head1'        => '{{NUMBEROFEDITS}}',
-'createacct-benefit-body1'        => 'edits',
+'createacct-benefit-body1'        => '{{PLURAL:$1|edit|edits}}',
 'createacct-benefit-icon2'        => 'icon-pages',
 'createacct-benefit-head2'        => '{{NUMBEROFARTICLES}}',
-'createacct-benefit-body2'        => 'pages',
+'createacct-benefit-body2'        => '{{PLURAL:$1|page|pages}}',
 'createacct-benefit-icon3'        => 'icon-contributors',
 'createacct-benefit-head3'        => '{{NUMBEROFACTIVEUSERS}}',
-'createacct-benefit-body3'        => 'recent contributors',
+'createacct-benefit-body3'        => 'recent {{PLURAL:$1|contributor|contributors}}',
 'badretype'                    => 'The passwords you entered do not match.',
 'userexists'                   => 'Username entered already in use.
 Please choose a different name.',