我正在使用Symfony2翻譯以便在窗體中顯示錯誤消息。我的郵件在位於我的包的Ressources/translations
子文件夾中的validators.fr.yml
中定義。我還使用註釋來設置要使用的消息。Twig form_errors函數不會在validators.lang.yml中加載翻譯消息
問題是郵件沒有顯示在我的模板中。我只能得到我在註釋中定義的關鍵。
的代碼從我的實體樣本:
/**
* Nom du site de travail.
*
* @var string le nom du site de travail.
*
* @ORM\Column(
* name = "nom",
* type = "string",
* length = 255
*)
*
* @Assert\NotBlank(message = "structure.siteTravail.nom.notnull")
*/
private $nom;
在我的表單類,我已經實現了getDefaultOptions
方法與data_class
選項(真的不知道,如果有幫助):
public function getDefaultOptions(array $options)
{
return array(
'data_class' => 'My\FreakingBundle\Entity\SiteTravail'
);
}
這裏是validators.fr.yml
內容:
structure:
siteTravail:
nom:
notnull: Le nom est obligatoire.
在我的樹枝模板我使用這個代碼渲染領域的錯誤:
{{ form_errors(form.nom) }}
此外,翻譯app/config/config.yml
被激活:
framework:
translator: { fallback: fr }
所有我的翻譯是完全在messages.fr.yml
這個工作捆綁和我已經有另一個使用messages.fr.yml
和validators.fr.yml
捆綁。
最奇怪的部分是,當我把validators.fr.yml
的內容放在我的其他包中時,它的工作原理。
翻譯文件加載**只有在註冊捆綁**。你有沒有在你的AppKernel中註冊你的2個包? – Florian 2012-02-25 12:30:30
無論如何,驗證器消息的默認翻譯位置在這裏:https://github.com/symfony/symfony/blob/master/src/Symfony/Bridge/Twig/Resources/views/Form/form_div_layout.html.twig# L262。你確定你沒有壓倒一個樹枝塊嗎? – Florian 2012-02-25 12:32:46