我创建了一个控制台 Yii 应用程序,它作为 Web 应用程序的后台工作人员 - 它发送电子邮件,并且需要发送带有翻译消息的电子邮件。
但是由于某种原因,使用时不会翻译消息Yii::t
如果我使用 将语言设置为英语以外的语言Yii::app->setLanguage('et_ee'),并检查它是否真的改变了Yii::app->getLanguage(),文本总是用英语。
当我从 web 运行相同的命令时,文本被正确翻译。
我想我必须做一些特别的事情才能让翻译在控制台应用程序中工作?
我创建了一个控制台 Yii 应用程序,它作为 Web 应用程序的后台工作人员 - 它发送电子邮件,并且需要发送带有翻译消息的电子邮件。
但是由于某种原因,使用时不会翻译消息Yii::t
如果我使用 将语言设置为英语以外的语言Yii::app->setLanguage('et_ee'),并检查它是否真的改变了Yii::app->getLanguage(),文本总是用英语。
当我从 web 运行相同的命令时,文本被正确翻译。
我想我必须做一些特别的事情才能让翻译在控制台应用程序中工作?
You need to specify the messages component in your console.php configuration
'messages' => array(
'class' => 'CDbMessageSource',
'forceTranslation'=>true,
'sourceMessageTable' => 'source_message',
'translatedMessageTable' => 'translated_message',
),
只需添加字符串(例如 - 俄语):
'language' => 'ru'
在 config/console.php 中。
我有这个错误。我不知道如何修复它。我将 lang array trow require('path/to/message/ru/message.php') 放入 var 并使用它。这是错误的,但它对我有用。