Нет способа сделать это напрямую.Вы можете обойти эту проблему, создав вспомогательный метод, который бы соединял два параметра вместе.
class TranslationHelper
{
protected static function countToString($count)
{
if ($count === 1) {
return 'sin';
}
retrun 'plu';
}
public static function joinGenderAndCount($gender, $count)
{
return $gender . '-' . static::countToString($count);
}
}
Затем вы бы использовали его в трансляции с выбором, подобным этому
Yii::t(
'app',
'{genderPl,select,feminine-plu{Approved} feminine-sin{Approved} masculine-plu{Approved} masculine-sin{Approved} other{Approved}',
[
'genderPl' => TranslationHelper::joinGenderAndCount('feminine', 1)
]
);
Если вам нужноболее сложные правила множественного числа, которые вы можете использовать Yii::t
внутри метода countToString
, чтобы применить правильные правила множественного числа.
protected static function countToString($count)
{
return Yii::t(
'other-category',
'{n,plural,=1{sin} one{sin} few{few} many{plu} other{plu}'
['n' => $count]
);
}
Я бы предложил сохранить этот тип «внутреннего» перевода в другой категории, чтобы избежать конфликтовсо стандартными переводами.