Make explicit plural forms work for Russian
authorSanthosh Thottingal <santhosh.thottingal@gmail.com>
Wed, 4 Dec 2013 04:58:07 +0000 (10:28 +0530)
committerNikerabbit <niklas.laxstrom@gmail.com>
Wed, 4 Dec 2013 06:46:57 +0000 (06:46 +0000)
Russian has overridden convertPlural method, that was not
taking care of explicit plural forms.

Follow up: I2a9f93567087babb896999f1214d3c56afc67c96

Bug: 54514
Change-Id: Ia977fa544b1d0e40222c7296b7145dcd6f93ecc2

languages/classes/LanguageRu.php
tests/phpunit/languages/LanguageRuTest.php

index 11b42cf..243a876 100644 (file)
@@ -122,6 +122,10 @@ class LanguageRu extends Language {
         * @return string
         */
        function convertPlural( $count, $forms ) {
+               $forms = $this->handleExplicitPluralForms( $count, $forms );
+               if ( is_string( $forms ) ) {
+                       return $forms;
+               }
                if ( !count( $forms ) ) {
                        return '';
                }
index e938be7..56f8490 100644 (file)
@@ -17,6 +17,17 @@ class LanguageRuTest extends LanguageClassesTestCase {
                $this->assertEquals( $result, $this->getLang()->convertPlural( $value, $forms ) );
        }
 
+       /**
+        * Test explicit plural forms - n=FormN forms
+        * @covers Language::convertPlural
+        */
+       public function testExplicitPlural() {
+               $forms = array( 'one', 'few', 'many', 'other', '12=dozen' );
+               $this->assertEquals( 'dozen', $this->getLang()->convertPlural( 12, $forms ) );
+               $forms = array( 'one', 'few', 'many', '100=hundred', 'other', '12=dozen' );
+               $this->assertEquals( 'hundred', $this->getLang()->convertPlural( 100, $forms ) );
+       }
+
        /**
         * @dataProvider providePlural
         * @covers Language::getPluralRuleType