Fixes for r60599:
[lhc/web/wiklou.git] / languages / classes / LanguageSr.php
index 79a2ec2..693660f 100644 (file)
@@ -76,16 +76,6 @@ class SrConverter extends LanguageConverter {
                return $carray;
        }
 
-       // Do not convert content on talk pages
-       function parserConvert( $text, &$parser ){
-               if(is_object($parser->getTitle() ) && $parser->getTitle()->isTalkPage())
-                       $this->mDoContentConvert=false;
-               else
-                       $this->mDoContentConvert=true;
-
-               return parent::parserConvert($text, $parser );
-       }
-
        /*
         * A function wrapper:
         *   - if there is no selected variant, leave the link
@@ -175,12 +165,34 @@ class LanguageSr extends LanguageSr_ec {
                        'sr-el' => 'sr',
                );
 
-               $marker = array();//don't mess with these, leave them as they are
                $flags = array(
                        'S' => 'S', 'писмо' => 'S', 'pismo' => 'S',
                        'W' => 'W', 'реч'   => 'W', 'reč'   => 'W', 'ријеч' => 'W', 'riječ' => 'W'
                );
-               $this->mConverter = new SrConverter($this, 'sr', $variants, $variantfallbacks, $marker, $flags);
+               $this->mConverter = new SrConverter($this, 'sr', $variants, $variantfallbacks, $flags);
                $wgHooks['ArticleSaveComplete'][] = $this->mConverter;
        }
+
+       function convertPlural( $count, $forms ) {
+               if ( !count($forms) ) { return ''; }
+
+               //if no number with word, then use $form[0] for singular and $form[1] for plural or zero
+               if( count($forms) === 2 ) return $count == 1 ? $forms[0] : $forms[1];
+
+               // FIXME: CLDR defines 4 plural forms. Form with decimals missing.
+               // See http://unicode.org/repos/cldr-tmp/trunk/diff/supplemental/language_plural_rules.html#ru
+               $forms = $this->preConvertPlural( $forms, 3 );
+
+               if ($count > 10 && floor(($count % 100) / 10) == 1) {
+                       return $forms[2];
+               } else {
+                       switch ($count % 10) {
+                               case 1:  return $forms[0];
+                               case 2:
+                               case 3:
+                               case 4:  return $forms[1];
+                               default: return $forms[2];
+                       }
+               }
+       }
 }