Internationalization 如何在Yii控制台应用程序中使用翻译?

Internationalization 如何在Yii控制台应用程序中使用翻译?,internationalization,yii,console-application,Internationalization,Yii,Console Application,我已经创建了一个控制台Yii应用程序,它作为一个web应用程序的后台工作者工作——它发送电子邮件,并且需要发送带有翻译的消息 但是,由于某些原因,在使用Yii::t 如果我使用Yii::app->setLanguage('et_ee')将语言设置为英语以外的其他语言,并使用Yii::app->getLanguage()检查是否确实更改了语言,则文本始终为英语 当我从web运行相同的命令时,文本被正确翻译 我想我必须做一些特殊的事情才能让translatiosn在控制台应用程序中工作?我有这个错误

我已经创建了一个控制台Yii应用程序,它作为一个web应用程序的后台工作者工作——它发送电子邮件,并且需要发送带有翻译的消息

但是,由于某些原因,在使用
Yii::t

如果我使用
Yii::app->setLanguage('et_ee')
将语言设置为英语以外的其他语言,并使用
Yii::app->getLanguage()
检查是否确实更改了语言,则文本始终为英语

当我从web运行相同的命令时,文本被正确翻译


我想我必须做一些特殊的事情才能让translatiosn在控制台应用程序中工作?

我有这个错误。我不知道该怎么修。我将lang数组trow require('path/to/message/ru/message.php')放入var并使用它。这是错误的,但对我来说是可行的。

您需要在
console.php
配置中指定
messages
组件

'messages' => array(
  'class' => 'CDbMessageSource',
  'forceTranslation'=>true,
  'sourceMessageTable' => 'source_message',
  'translatedMessageTable' => 'translated_message',
),
只需添加字符串(例如,俄语):

在config/console.php中

'language' => 'ru'