2010-03-15 4 views
3

J'ai ce widget:de i18n de forme Symfony et add_empty

$this->setWidget('slug', new sfWidgetFormDoctrineChoice(array('model' 
=> 'MyTable', 'method' => 'myMethod', 'key_method' => 'myMethod', 
'add_empty' => 'Select option'))); 

Ok, que dois-je faire pour traduire le "Sélectionnez l'option"?

Je ne peux pas utiliser l'assistant __() dans le formulaire, et l'ajout de cette chaîne dans mon fichier XLIFF ne le traduit pas automatiquement.

Si cela ne peut pas être fait, quelle solution de contournement dois-je mettre en œuvre? Je ne peux pas trouver de toute façon, et aucun ne peut trouver aucun conseil dans la documentation officielle.

Merci!

Répondre

5

Je pense que je l'ai résolu:

$translated_text = $this->widgetSchema->getFormFormatter()->translate('String to translate'); 
0

Vous pouvez utiliser aide dans la forme, essayez ceci:

public function setup() 
{ 
    sfContext::getInstance()->getConfiguration()->loadHelpers(array('I18n')); 

    $this->setWidget('slug', new sfWidgetFormDoctrineChoice(array('model' 
    => 'MyTable', 'method' => 'myMethod', 'key_method' => 'myMethod', 
    'add_empty' => __('Select option'))); 
    ... 
} 
+1

C'est une solution très laid et ne fonctionnera pas dans les tests. Lisez [Pourquoi sfContext :: getInstance() est incorrect] (http://webmozarts.com/2009/07/01/why-sfcontextgetinstance-is-bad/). – Maerlyn