Mercurial > hg > isophonics-drupal-site
comparison vendor/symfony/translation/PluralizationRules.php @ 17:129ea1e6d783
Update, including to Drupal core 8.6.10
author | Chris Cannam |
---|---|
date | Thu, 28 Feb 2019 13:21:36 +0000 |
parents | c2387f117808 |
children |
comparison
equal
deleted
inserted
replaced
16:c2387f117808 | 17:129ea1e6d783 |
---|---|
16 * | 16 * |
17 * @author Fabien Potencier <fabien@symfony.com> | 17 * @author Fabien Potencier <fabien@symfony.com> |
18 */ | 18 */ |
19 class PluralizationRules | 19 class PluralizationRules |
20 { | 20 { |
21 private static $rules = array(); | 21 private static $rules = []; |
22 | 22 |
23 /** | 23 /** |
24 * Returns the plural position to use for the given locale and number. | 24 * Returns the plural position to use for the given locale and number. |
25 * | 25 * |
26 * @param int $number The number | 26 * @param int $number The number |
33 if ('pt_BR' === $locale) { | 33 if ('pt_BR' === $locale) { |
34 // temporary set a locale for brazilian | 34 // temporary set a locale for brazilian |
35 $locale = 'xbr'; | 35 $locale = 'xbr'; |
36 } | 36 } |
37 | 37 |
38 if (strlen($locale) > 3) { | 38 if (\strlen($locale) > 3) { |
39 $locale = substr($locale, 0, -strlen(strrchr($locale, '_'))); | 39 $locale = substr($locale, 0, -\strlen(strrchr($locale, '_'))); |
40 } | 40 } |
41 | 41 |
42 if (isset(self::$rules[$locale])) { | 42 if (isset(self::$rules[$locale])) { |
43 $return = call_user_func(self::$rules[$locale], $number); | 43 $return = \call_user_func(self::$rules[$locale], $number); |
44 | 44 |
45 if (!is_int($return) || $return < 0) { | 45 if (!\is_int($return) || $return < 0) { |
46 return 0; | 46 return 0; |
47 } | 47 } |
48 | 48 |
49 return $return; | 49 return $return; |
50 } | 50 } |
142 | 142 |
143 case 'be': | 143 case 'be': |
144 case 'bs': | 144 case 'bs': |
145 case 'hr': | 145 case 'hr': |
146 case 'ru': | 146 case 'ru': |
147 case 'sh': | |
147 case 'sr': | 148 case 'sr': |
148 case 'uk': | 149 case 'uk': |
149 return ((1 == $number % 10) && (11 != $number % 100)) ? 0 : ((($number % 10 >= 2) && ($number % 10 <= 4) && (($number % 100 < 10) || ($number % 100 >= 20))) ? 1 : 2); | 150 return ((1 == $number % 10) && (11 != $number % 100)) ? 0 : ((($number % 10 >= 2) && ($number % 10 <= 4) && (($number % 100 < 10) || ($number % 100 >= 20))) ? 1 : 2); |
150 | 151 |
151 case 'cs': | 152 case 'cs': |
198 if ('pt_BR' === $locale) { | 199 if ('pt_BR' === $locale) { |
199 // temporary set a locale for brazilian | 200 // temporary set a locale for brazilian |
200 $locale = 'xbr'; | 201 $locale = 'xbr'; |
201 } | 202 } |
202 | 203 |
203 if (strlen($locale) > 3) { | 204 if (\strlen($locale) > 3) { |
204 $locale = substr($locale, 0, -strlen(strrchr($locale, '_'))); | 205 $locale = substr($locale, 0, -\strlen(strrchr($locale, '_'))); |
205 } | 206 } |
206 | 207 |
207 self::$rules[$locale] = $rule; | 208 self::$rules[$locale] = $rule; |
208 } | 209 } |
209 } | 210 } |