ar_TN.php
6 years ago
ca_ES.php
6 years ago
cs_CZ.php
6 years ago
da_DK.php
6 years ago
de_DE.php
6 years ago
en_GB.php
6 years ago
en_US.php
6 years ago
es_ES.php
6 years ago
fr_FR.php
6 years ago
hu_HU.php
6 years ago
id_ID.php
6 years ago
it_IT.php
6 years ago
ja_JP.php
6 years ago
ko_KR.php
6 years ago
lv_LV.php
6 years ago
nl_NL.php
6 years ago
no_NO.php
6 years ago
oc_LNC.php
6 years ago
pl_PL.php
6 years ago
pt_BR.php
6 years ago
pt_PT.php
6 years ago
ro_RO.php
6 years ago
ru_RU.php
6 years ago
se_SV.php
6 years ago
th_TH.php
6 years ago
tr_TR.php
6 years ago
uk_UA.php
6 years ago
vi_VN.php
6 years ago
zh_CN.php
6 years ago
zh_TW.php
6 years ago
ru_RU.php
103 lines
| 1 | <?php |
| 2 | |
| 3 | // locale: Русский (Russia) (ru_RU) |
| 4 | // author: Oleg Bogdanov https://github.com/wormen |
| 5 | |
| 6 | /** |
| 7 | * returns ending for plural form of word by number and array of variants (1, 4, 5) |
| 8 | * example variants for apples ['яблоко', 'яблока', 'яблок'] |
| 9 | */ |
| 10 | |
| 11 | /** |
| 12 | * @param int $number |
| 13 | * @param array $endingArray |
| 14 | * |
| 15 | * @return string |
| 16 | */ |
| 17 | $getNumEnding = function ($number, array $endingArray) |
| 18 | { |
| 19 | $number = $number % 100; |
| 20 | |
| 21 | if ($number >= 11 && $number <= 19) |
| 22 | { |
| 23 | return $endingArray[2]; |
| 24 | } |
| 25 | |
| 26 | $i = $number % 10; |
| 27 | |
| 28 | switch ($i) |
| 29 | { |
| 30 | case (1): |
| 31 | $ending = $endingArray[0]; |
| 32 | break; |
| 33 | case (2): |
| 34 | case (3): |
| 35 | case (4): |
| 36 | $ending = $endingArray[1]; |
| 37 | break; |
| 38 | default: |
| 39 | $ending = $endingArray[2]; |
| 40 | } |
| 41 | |
| 42 | return $ending; |
| 43 | }; |
| 44 | |
| 45 | return array( |
| 46 | 'months' => explode('_', 'января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря'), |
| 47 | 'monthsNominative' => explode('_', 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'), |
| 48 | 'monthsShort' => explode('_', 'янв_фев_мрт_апр_май_июн_июл_авг_сен_окт_нбр_дек'), |
| 49 | 'weekdays' => explode('_', 'понедельник_вторник_среда_четверг_пятница_суббота_воскресенье'), |
| 50 | 'weekdaysShort' => explode('_', 'пн_вт_ср_чт_пт_сб_вс'), |
| 51 | 'calendar' => array( |
| 52 | 'sameDay' => '[сегодня]', |
| 53 | 'nextDay' => '[завтра]', |
| 54 | 'lastDay' => '[вчера]', |
| 55 | 'lastWeek' => 'l', |
| 56 | 'sameElse' => 'l', |
| 57 | 'withTime' => '[в] H:i', |
| 58 | 'default' => 'd/m/Y', |
| 59 | ), |
| 60 | 'relativeTime' => array( |
| 61 | 'future' => 'через %s', |
| 62 | 'past' => '%s назад', |
| 63 | 's' => 'несколько секунд', |
| 64 | 'ss' => function ($number) use ($getNumEnding) |
| 65 | { |
| 66 | return $getNumEnding($number, array('%d секунду', '%d секунды', '%d секунд')); |
| 67 | }, |
| 68 | 'm' => 'минуту', |
| 69 | 'mm' => function ($number) use ($getNumEnding) |
| 70 | { |
| 71 | return $getNumEnding($number, array('%d минуту', '%d минуты', '%d минут')); |
| 72 | }, |
| 73 | 'h' => 'час', |
| 74 | 'hh' => function ($number) use ($getNumEnding) |
| 75 | { |
| 76 | return $getNumEnding($number, array('%d час', '%d часа', '%d часов')); |
| 77 | }, |
| 78 | 'd' => 'день', |
| 79 | 'dd' => function ($number) use ($getNumEnding) |
| 80 | { |
| 81 | return $getNumEnding($number, array('%d день', '%d дня', '%d дней')); |
| 82 | }, |
| 83 | 'M' => 'месяц', |
| 84 | 'MM' => function ($number) use ($getNumEnding) |
| 85 | { |
| 86 | return $getNumEnding($number, array('%d месяц', '%d месяца', '%d месяцев')); |
| 87 | }, |
| 88 | 'y' => 'год', |
| 89 | 'yy' => function ($number) use ($getNumEnding) |
| 90 | { |
| 91 | return $getNumEnding($number, array('%d год', '%d года', '%d лет')); |
| 92 | }, |
| 93 | ), |
| 94 | 'ordinal' => function ($number) |
| 95 | { |
| 96 | return $number . 'е'; |
| 97 | }, |
| 98 | 'week' => array( |
| 99 | 'dow' => 1, // Monday is the first day of the week. |
| 100 | 'doy' => 4 // The week that contains Jan 4th is the first week of the year. |
| 101 | ), |
| 102 | ); |
| 103 |