Как перевести текущий же язык?

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
crows
Сообщения: 289
Зарегистрирован: 2012.03.03, 10:37

Как перевести текущий же язык?

Сообщение crows »

Здравствуйте.

Текущий язык приложения (Yii::$app->language) en-US. В папке /messages имеются подпапки:

- en-US
- ru-RU

Если в коде использовать:

Код: Выделить всё

Yii::t('app','Your account has been deleted.')
То текст выведется как есть (Your account has been deleted). Даже, если в /messages/en-US/app.php сделать так:

Код: Выделить всё

'Your account has been deleted.' => 'Custom text.'
Почему? Нужно переводить большие тексты и в качестве ключа массива нужно указывать короткий ключ. ЧТо-то типа:

Код: Выделить всё

'short-translation-key' => 'Your account has been deleted.'

Код: Выделить всё

Yii::t('app','short-translation-key')
// Здесь должно быть 'Your account has been deleted.', а не 'short-translation-key', даже если текущий язык приложения en-US

Спасибо.
yiiliveext
Сообщения: 910
Зарегистрирован: 2019.08.13, 01:49

Re: Как перевести текущий же язык?

Сообщение yiiliveext »

Установите forceTranslation у MessageSource в true.
crows
Сообщения: 289
Зарегистрирован: 2012.03.03, 10:37

Re: Как перевести текущий же язык?

Сообщение crows »

yiiliveext писал(а): 2020.01.31, 03:33 Установите forceTranslation у MessageSource в true.
Спасибо большое.
crows
Сообщения: 289
Зарегистрирован: 2012.03.03, 10:37

Re: Как перевести текущий же язык?

Сообщение crows »

Еще вопросик по архитектуре мультиязычных проектов. Как лучше сделать:

1) для каждого языка создавать отдельный view?
2) или один view, но в нем выводить тексты по ключам (как описано в вопросе выше)?
yiiliveext
Сообщения: 910
Зарегистрирован: 2019.08.13, 01:49

Re: Как перевести текущий же язык?

Сообщение yiiliveext »

crows писал(а): 2020.01.31, 10:31 Еще вопросик по архитектуре мультиязычных проектов. Как лучше сделать:

1) для каждого языка создавать отдельный view?
2) или один view, но в нем выводить тексты по ключам (как описано в вопросе выше)?
Первый способ быстрее, но дольше по изменениям, вносимым в шаблон представления.
Второй способ медленнее, но легче менять шаблоны представлений.
Если не будете часто менять шаблоны, если у вас не много языков и если у вас много статического текста, то предпочтительнее первый, иначе - второй.
crows
Сообщения: 289
Зарегистрирован: 2012.03.03, 10:37

Re: Как перевести текущий же язык?

Сообщение crows »

yiiliveext писал(а): 2020.01.31, 11:18
crows писал(а): 2020.01.31, 10:31 Еще вопросик по архитектуре мультиязычных проектов. Как лучше сделать:

1) для каждого языка создавать отдельный view?
2) или один view, но в нем выводить тексты по ключам (как описано в вопросе выше)?
Первый способ быстрее, но дольше по изменениям, вносимым в шаблон представления.
Второй способ медленнее, но легче менять шаблоны представлений.
Если не будете часто менять шаблоны, если у вас не много языков и если у вас много статического текста, то предпочтительнее первый, иначе - второй.
Спасибо
Ответить