<rmcreative>

RSS

Все заметки с тегами «yii2, i18n»

  1. Yii2: перевод сообщений

    17 октября 2013

    Доделали полностью перевод сообщений. В Yii2 он намного лучше, чем в 1.1. Удалось выкинуть мегабайты данных CLDR и использовать вместо всего этого расширение intl. Синтаксис и возможности поразительные. Например, можно вот так:

    echo \Yii::t('app', '{n,number} is spelled as {n, spellout}', array(
        'n' => 42,
    ));

    При переводе эта строка честно выдаст нам 42 проговаривается как сорок два.

    echo \Yii::t('app', '{name} is {gender} and {gender, select, female{she} male{he} other{it}} loves Yii!', array(
        'name' => 'Snoopy',
        'gender' => 'dog',
    ));

    Выдаст без перевода Snoopy is dog and it loves Yii!.

    Множественные формы также никуда не делись:

    echo \Yii::t('app', 'There {n, plural, =0{are no cats} =1{is one cat} other{are # cats}}!', array(
        'n' => 0,
    ));

    Строка перевода будет вот такая:

    Здесь {n, plural, =0{котов нет} =1{есть один кот} one{# кот} few{# кота} many{# котов} other{# кота}}!
    

    Не обошлось, правда, без исследования исходника расширения и исправления найденных багов средствами PHP, но результат радует.

    22 комментария