Merge "Support explicit 0 and 1 forms for plural in PHP"
authorSiebrand <siebrand@wikimedia.org>
Thu, 4 Oct 2012 07:04:23 +0000 (07:04 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Thu, 4 Oct 2012 07:04:23 +0000 (07:04 +0000)
1  2 
languages/Language.php

diff --combined languages/Language.php
@@@ -48,7 -48,7 +48,7 @@@ class FakeConverter 
        /**
         * @var Language
         */
 -      var $mLang;
 +      public $mLang;
        function __construct( $langobj ) { $this->mLang = $langobj; }
        function autoConvertToAllVariants( $text ) { return array( $this->mLang->getCode() => $text ); }
        function convert( $t ) { return $t; }
@@@ -77,21 -77,21 +77,21 @@@ class Language 
        /**
         * @var LanguageConverter
         */
 -      var $mConverter;
 +      public $mConverter;
  
 -      var $mVariants, $mCode, $mLoaded = false;
 -      var $mMagicExtensions = array(), $mMagicHookDone = false;
 +      public $mVariants, $mCode, $mLoaded = false;
 +      public $mMagicExtensions = array(), $mMagicHookDone = false;
        private $mHtmlCode = null;
  
 -      var $dateFormatStrings = array();
 -      var $mExtendedSpecialPageAliases;
 +      public $dateFormatStrings = array();
 +      public $mExtendedSpecialPageAliases;
  
        protected $namespaceNames, $mNamespaceIds, $namespaceAliases;
  
        /**
         * ReplacementArray object caches
         */
 -      var $transformData = array();
 +      public $transformData = array();
  
        /**
         * @var LocalisationCache
                if ( !count( $forms ) ) {
                        return '';
                }
+               // Handle explicit 0= and 1= forms
+               foreach ( $forms as $index => $form ) {
+                       if ( isset( $form[1] ) && $form[1] === '=' ) {
+                               if ( $form[0] === (string) $count ) {
+                                       return substr( $form, 2 );
+                               }
+                               unset( $forms[$index] );
+                       }
+               }
+               $forms = array_values( $forms );
                $pluralForm = $this->getPluralForm( $count );
                $pluralForm = min( $pluralForm, count( $forms ) - 1 );
                return $forms[$pluralForm];