2012-11-20 18 views
11

Ich habe eine harte Zeit überschreiben Etiketten, die das FOS-Benutzer-Bundle für Symfony2 verwendet.Wie überschreiben FOS Benutzer Bundle Formular Etiketten

Ich überschreibe bereits die Form-Klasse, aber es gibt keine Option für Elemente wie "setOption", nur getters.

Ich könnte einfach ein Element entfernen und dann wieder mit dem richtigen Etikett hinzufügen, aber das scheint wie ein Overkill. Gibt es eine nette Möglichkeit, Optionen auf Formularelementen oder nur Übersetzungsschlüssel zu überschreiben?

Antwort

30

Sie müssen die Formularklassen nicht überschreiben.

Kopieren/Einfügen vendor/friendsofsymfony/user-bundle/FOS/UserBundle/Resources/translations/FOSUserBundle.xx.yml Dateien in Ihrem Verzeichnis app/Resources/translations (mit der gleichen Verzeichnisstruktur und dem gleichen Dateinamen) und neu definieren Übersetzungen für Ihre Bequemlichkeit.

edit: Wie von @ mario-johnathan erzählt, ist das Überschreiben von Übersetzungen kein Teil der Bündelvererbung. Siehe http://symfony.com/doc/current/cookbook/bundles/override.html#translations für offizielle Dokumentation

+1

Super, danke bro! –

+5

Eigentlich musste ich es in app/Resources/FOSUserBundle/Übersetzung anstelle von meinem Bündel Dir kopieren, damit es funktioniert, –

+0

Ja, du hast Recht! – AlterPHP

0

Wie bereits gesagt, Sie Ihre Übersetzungen Dateien in setzen können:
app/Resources/translations

Aber wenn Sie es in Ihrer Mutter Bündel außer Kraft setzen (src/MyAppBundle/Resources/translations) oder in einem anderen Bündel, stellen Sie sicher, Last Ihr Bundle nach das Overridden Bundle in Ihrem Kernel:

public function registerBundles() 
{ 
    $bundles = [ 
     ... 
     new FOS\UserBundle\FOSUserBundle(), 
     new MyAppBundle\MyAppBundle(), 
     ... 
    ]; 
... 
} 
Verwandte Themen