Internationalization 如何在Yii控制台应用程序中使用翻译?
我已经创建了一个控制台Yii应用程序,它作为一个web应用程序的后台工作者工作——它发送电子邮件,并且需要发送带有翻译的消息 但是,由于某些原因,在使用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::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'