2011-01-09 9 views
3

symfonyで__('text')のコンストラクトを使用していますので、私は国際化することができます。しかし、私はアクション/ actions.class.phpを中symfonyのi18n(国際化)

$this->getUser()->setFlash('error', __('message')); 

を次のようにsetFlashメッセージでそれを使用しようとしましたが、それは誤りに私に

Fatal error: Call to undefined function __() 

を与えるだから私は、私はできないことを前提としていますアクションレベルでテンプレートレベルのみ__()を使用しますか?あなたは、コンテキストを使用して)__を(使用する必要がアクションで

答えて

13

echo $this->getContext()->getI18N()->__('message'); 

ます。また、使用することができます。

sfProjectConfiguration::getActive()->loadHelpers(array('I18N')); 
$this->getUser()->setFlash('error', __('message')); 
1

それは私のために素晴らしい仕事!ありがとう

また、$ this-> loadHelpers(array( 'I18N'));を実行することもできます。あなたにProjectConfigurationクラスまたはフロントエンドで| backendConfigurationクラス

よろしく

+0

はこれを試み、それが壊れますsymfony CLI。 – flocki

3

ベストオプションあなたがこれを行うのであれば、あなたのactions.class.phpに、このメソッドを追加します:

public function preExecute() 
    { 
    sfProjectConfiguration::getActive()->loadHelpers(array('I18N')); 
    parent::preExecute(); 
    }