New plural rules
authorNiklas Laxström <nikerabbit@users.mediawiki.org>
Sat, 18 Dec 2010 14:34:43 +0000 (14:34 +0000)
committerNiklas Laxström <nikerabbit@users.mediawiki.org>
Sat, 18 Dec 2010 14:34:43 +0000 (14:34 +0000)
languages/classes/LanguageGd.php

index 1b1b278..2a11fd7 100644 (file)
@@ -4,32 +4,39 @@
  * @ingroup Language
  *
  * @author Raimond Spekking
+ * @author Niklas Laxström
  */
 class LanguageGd extends Language {
 
        /**
         * Plural form transformations
-        * Based on this discussion: http://translatewiki.net/w/i.php?title=Portal_talk:Gd&oldid=1094065#%C3%80ireamhan
+        * Based on this discussion: http://translatewiki.net/wiki/Thread:Support/New_plural_rules_for_Scots_Gaelic_(gd)
         *
-        * $forms[0] - singular form (for 1)
-        * $forms[1] - dual form (for 2)
-        * $forms[2] - plural form 1 (for 3-10)
-        * $forms[3] - plural form 2 (for >= 11)
+        * $forms[0] - 1
+        * $forms[1] - 2
+        * $forms[2] - 11
+        * $forms[3] - 12
+        * $forms[4] - 3-10, 13-19
+        * $forms[5] - 0, 20, rest
         *
         */
        function convertPlural( $count, $forms ) {
                if ( !count( $forms ) ) { return ''; }
-               $forms = $this->preConvertPlural( $forms, 4 );
+               $forms = $this->preConvertPlural( $forms, 6 );
 
                $count = abs( $count );
                if ( $count === 1 ) {
                        return $forms[0];
                } elseif ( $count === 2 ) {
                        return $forms[1];
-               } elseif ( $count >= 3 && $count <= 10 ) {
+               } elseif ( $count === 11 ) {
                        return $forms[2];
-               } else {
+               } elseif ( $count === 12 ) {
                        return $forms[3];
+               } elseif ( ($count >= 3 && $count <= 10) || ($count >= 13 && $count <= 19) ) {
+                       return $forms[4];
+               } else {
+                       return $forms[5];
                }
        }
 }