Прикручиваю мультиязычность к сайту. Застрял на на одной интересной штуке, множественный перевод
В yii в языковых файлах (vendor/yiisoft/yii2/messages/ru/yii.php)
Есть такие переводы:
{delta, plural, =1{день} one{день} few{дня} many{дней} other{дня}}
Которые у меня в упор не хотят работать, не переводятся. И отображаются на экране как есть (как написал выше)
Капнул глубже. Проблема оказалась со стандартным php классом MessageFormatter, который стал доступен с php >= 5.3.0
Он в упор не хочет воспринимать =1{день}, если переписать сие конструкцию на:
{delta, plural, one{день} few{дня} many{дней} other{дня}} все нормально заведется.
Вопрос, почему во всех трансляционных файлах(ru, uk и тд), есть строчки с таким множественным переводом, если он нефига не работает ?
Может быть проблема у меня в пыхе и в доп. модулях ?
Я использую:
PHP Version 5.6.6
intl version 1.1.0
intl ICU version 4.2.1
Тут даже можно попробовать завести эту конструкцию в обход движка, для тестирования:
Код: Выделить всё
$lng = 'ru';
$pattern = '{delta, plural, =1{день} one{# день} few{# дня} many{# дней} other{# дня}}';
$MessageFormatter = new MessageFormatter($lng, $pattern);
var_dump($MessageFormatter)
Так как я на yii перешел несколько дней назад, прошу вашего мнения, может быть, мыслей каких-нибудь. По этому поводу. Забить ли мне на это? Это косяк с моим софтом? Или неужели с yii что-то не так.