В транк Yii попала ещё одна интересная возможность, которая облегчит жизнь всем, кто имеет дело с мультиязычными проектами, а именно поддержка перевода множественных форм слова по правилам CLDR в Yii::t.
Теперь для человеческого перевода строк вроде «10 яблок», «51 яблоко» не нужно писать страшные правила, а процесс будет выглядеть как показано ниже.
В коде делаем всё как обычно:
echo '10 '.Yii::t('app', 'apple', array(10));
echo '51 '.Yii::t('app', 'apple', array(51));
В файле перевода для Русского записываем:
return array(
'apple' => 'яблоко|яблока|яблок',
);
Для Английского, соответственно будет:
return array(
'apple' => 'apple|apples',
);
Полный список правил доступен на сайте CLDR.