переводы
-
- Сообщения: 1268
- Зарегистрирован: 2013.07.17, 17:37
Re: переводы
https://github.com/yiisoft/yii2/blob/ma ... rm.php#L42
надо обернуть фразу в Yii::t('filename', 'Incorect....');
надо обернуть фразу в Yii::t('filename', 'Incorect....');
Re: переводы
нашел только одно употребление этой фразы в модели LoginFormRomero писал(а):Привет.Sam Dark писал(а):https://github.com/yiisoft/yii2/blob/ma ... lations.md
Сообщения для Русского уже переведены, но буду рад корректировкам.
Я так понимаю, еще не все валидационные сообщения переведены? В частности: Incorrect username or password. Можно на пальцах объяснить на примере этого сообщения, как сделать его перевод? Добавил соответствующий элемент в vendor/yiisoft/yii2/messages/ru/yii.php - не помогло ('language' => 'ru-RU' в настройках прописан).
$this->addError('password', 'Incorrect username or password.'); - тут оно захардкодено на английском. Исправьте на $this->addError('password', Yii::t('app','Incorrect username or password.')); и переведите используя документацию.
Re: переводы
Спасибо. Вот так работает:lancedevnull писал(а):https://github.com/yiisoft/yii2/blob/ma ... rm.php#L42
надо обернуть фразу в Yii::t('filename', 'Incorect....');
Код: Выделить всё
$this->addError('password', Yii::t('yii', 'Incorrect username or password.'));
Re: переводы
Поставил в настройках language и sourceLanguage на ru_RU, настроил компонент i18n:
Но "перевода из коробки" нет.
Что не так?
Код: Выделить всё
i18n => [
translations => [
yii => [
class => yii\i18n\PhpMessageSource,
basePath => @common/message,
sourceLanguage => en_US,
fileMap => [
yii => yii.php
]
]
]
]
Что не так?
Re: переводы
зачем вам что-то переводить, если у вас язык-источник - русский, и приложение переводить надо на русский. С русского на русский переводить?
Re: переводы
Хм. Поставил язык кода en_US - сообщения валидатора русифицировались, но ведь если не ставить сурсленгвич на русский, то не работают конструкции: Здесь {n, plural, =0{котов нет} =1{есть один кот} one{# кот} few{# кота} many{# котов} other{# кота}}!
Re: переводы
источник должен быть английский. Примите как данность, если хочется делать серьезно.VaNnOrus писал(а):Хм. Поставил язык кода en_US - сообщения валидатора русифицировались, но ведь если не ставить сурсленгвич на русский, то не работают конструкции: Здесь {n, plural, =0{котов нет} =1{есть один кот} one{# кот} few{# кота} many{# котов} other{# кота}}!
А дальше разбирайтесь почему и что у вас не работает.
Re: переводы
Я и не против английского источника, но в какой-то теме был вопрос почему не работает эта конструкция для подстановки окончания и товарищ Сэм Дарк сказал поставить источник русский - действительно все заработало.
Пока писал сообщение дошло, что эта штука будет работать на русском только через файл перевода, да?
И еще вопрос - не перевелись лейблы форм входа/регистрации (по сути вообще любых форм). Как их перевести?
Пока писал сообщение дошло, что эта штука будет работать на русском только через файл перевода, да?
И еще вопрос - не перевелись лейблы форм входа/регистрации (по сути вообще любых форм). Как их перевести?
Re: переводы
в коде приложения у вас должно быть на английском. Все английские фразы должны быть переведены в файлах переводов.VaNnOrus писал(а):Пока писал сообщение дошло, что эта штука будет работать на русском только через файл перевода, да?
это не стандартные фразы фреймворка, поэтому не переводятся.VaNnOrus писал(а):И еще вопрос - не перевелись лейблы форм входа/регистрации (по сути вообще любых форм). Как их перевести?
Почитайте документацию
Можно использовать http://www.yiiframework.ru/forum/viewto ... =9&t=18380
Re: переводы
Поставил Ваш модуль, поигрался с ним. Как все-таки перевести лэйблы актив форм?
Не дело ведь, что все по-русски выводится, кроме названий полей.
Не дело ведь, что все по-русски выводится, кроме названий полей.
Re: переводы
если фраза не переведена, то она выводится в моем модуле и ее можно перевести. если настроили по инструкции то все будет работатьVaNnOrus писал(а):Поставил Ваш модуль, поигрался с ним. Как все-таки перевести лэйблы актив форм?
Не дело ведь, что все по-русски выводится, кроме названий полей.
Re: переводы
Так ведь поля у актив форм видимо не обернуты в yii::t, то что я оборачивал естественно появилось как не переведенное.
Я говорю о переводе $form-> field ($ model,'name').
А какие там настройки? Добавить в конфиг и применить миграцию. Модуль работает.
Я говорю о переводе $form-> field ($ model,'name').
А какие там настройки? Добавить в конфиг и применить миграцию. Модуль работает.
Re: переводы
в $form->field выводятся лейблы из $model->attributeLabels(). Вот тут их и нужно обернуть в Yii::tVaNnOrus писал(а):Так ведь поля у актив форм видимо не обернуты в yii::t, то что я оборачивал естественно появилось как не переведенное.
Я говорю о переводе $form-> field ($ model,'name').
А какие там настройки? Добавить в конфиг и применить миграцию. Модуль работает.
Re: переводы
Спасибо, совсем забыл про attributeLabelszelenin писал(а):в $form->field выводятся лейблы из $model->attributeLabels(). Вот тут их и нужно обернуть в Yii::tVaNnOrus писал(а):Так ведь поля у актив форм видимо не обернуты в yii::t, то что я оборачивал естественно появилось как не переведенное.
Я говорю о переводе $form-> field ($ model,'name').
А какие там настройки? Добавить в конфиг и применить миграцию. Модуль работает.
С yii особо не работал, видел только как проект один писали.
Кстати, чтоб уж тему отдельную не поднимать: в чем разница между
Код: Выделить всё
Yii::t
Код: Выделить всё
\Yii::t
Re: переводы
php-namespaces. Лучше в документацию на php.netVaNnOrus писал(а):Кстати, чтоб уж тему отдельную не поднимать: в чем разница междуиКод: Выделить всё
Yii::t
?Код: Выделить всё
\Yii::t
Re: переводы
Просто в том же сайтКонтроллере в адвансед приложении и со слешем используется и без. И какой-то логики в этом не вижу (да и работает и то, и другое).
Re: переводы
\Yii означает что класс в корневом неймспейсе. Yii означает, что класс либо в том же неймспейсе либо импортирован через use Yii;VaNnOrus писал(а):Просто в том же сайтКонтроллере в адвансед приложении и со слешем используется и без. И какой-то логики в этом не вижу (да и работает и то, и другое).
Re: переводы
Здравствуйте, товарищи.
Случай №1:
Случай №2:
В обоих случаях выводит следующее:
То есть применяется логика английского языка.
Кто прав, кто виноват, как быть?
Случай №1:
Код: Выделить всё
//в конфиге:
'sourceLanguage' => 'ru-RU',
'language' => 'ru-RU',
Код: Выделить всё
//в коде view:
foreach(range(5,0) as $n)
echo '<br>' . \Yii::t('app',
'Здесь {n, plural, =0{котов нет} =1{есть один кот} one{# кот} few{# кота} many{# котов} other{# кота}}!',
['n' => $n]);
Код: Выделить всё
//в конфиге:
'sourceLanguage' => 'en-US',
'language' => 'ru-RU',
Код: Выделить всё
//в коде view:
foreach(range(5,0) as $n)
echo '<br>' . \Yii::t('app',
'There are {n} cat(s)!',
['n' => $n]);
Код: Выделить всё
//в файле messages\ru-RU\app.php :
'There are {n} cat(s)!' =>
'Здесь {n, plural, =0{котов нет} =1{есть один кот} one{# кот} few{# кота} many{# котов} other{# кота}}!',
Код: Выделить всё
Здесь 5 кота!
Здесь 4 кота!
Здесь 3 кота!
Здесь 2 кота!
Здесь 1 кот!
Здесь котов нет!
Кто прав, кто виноват, как быть?
Re: переводы
В общем-то, самым стандартным образом:Sam Dark писал(а):А переводы как настроены?
Код: Выделить всё
'i18n' => [
'translations' => [
'app*' => [
'class' => 'yii\i18n\PhpMessageSource',
'basePath' => '@app/messages',
'sourceLanguage' => 'en-US',
// 'sourceLanguage' => 'ru-RU',
'fileMap' => [
'app' => 'app.php',
// 'app/error' => 'error.php',
],
],
],
],