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 }