Browse Source

Fixing arabic and welsh plural rules

Jose Lorenzo Rodriguez 11 years ago
parent
commit
99d706c128
2 changed files with 18 additions and 7 deletions
  1. 7 7
      src/I18n/PluralRules.php
  2. 11 0
      tests/TestCase/I18n/PluralRulesTest.php

+ 7 - 7
src/I18n/PluralRules.php

@@ -182,14 +182,14 @@ class PluralRules {
 					($n == 0 || $n % 100 > 0 && $n % 100 < 20 ? 1 : 2);
 			case 13:
 				return $n == 0 ? 0 :
-					$n == 1 ? 1 :
-					$n == 2 ? 2 :
-					$n % 100 >= 3 && $n % 100 <= 10 ? 3 :
-					$n % 100 >= 11 ? 4 : 5;
+					($n == 1 ? 1 :
+					($n == 2 ? 2 :
+					($n % 100 >= 3 && $n % 100 <= 10 ? 3 :
+					($n % 100 >= 11 ? 4 : 5))));
 			case 14:
-				return $n == 1 ? 0 :
-					$n == 2 ? 1 :
-					$n == 8 || $n == 11 ? 2 : 3;
+				return $n ==1  ? 0 :
+					($n == 2 ? 1 :
+					($n != 8 && $n != 11 ? 2 : 3));
 		}
 	}
 

+ 11 - 0
tests/TestCase/I18n/PluralRulesTest.php

@@ -89,6 +89,17 @@ class PluralRulesTest extends TestCase {
 			['ro', 2, 1],
 			['ro', 20, 2],
 			['ro', 101, 1],
+			['ar', 0, 0],
+			['ar', 1, 1],
+			['ar', 2, 2],
+			['ar', 20, 4],
+			['ar', 111, 4],
+			['ar', 1000, 5],
+			['cy', 0, 2],
+			['cy', 1, 0],
+			['cy', 10, 2],
+			['cy', 11, 3],
+			['cy', 8, 3],
 		];
 	}