2012-11-20 24 views
11

我很難覆蓋FOS用戶包爲Symfony2使用的標籤。如何覆蓋FOS用戶包表單標籤

我已經覆蓋Form類,但沒有像「setOption」這樣的元素的選項,只有getters。

我可以刪除一個元素,然後再添加一個合適的標籤,但這看起來像是一種矯枉過正。有沒有什麼好的方式來覆蓋表單元素的選項,或者只是翻譯鍵,也許呢?

回答

30

您不需要覆蓋表單類。

複製/粘貼vendor/friendsofsymfony/user-bundle/FOS/UserBundle/Resources/translations/FOSUserBundle.xx.yml文件在您app/Resources/translations目錄(具有相同的目錄結構和文件名相同),並重新翻譯,以方便您使用。

編輯:正如@ mario-johnathan所說,重寫的翻譯不是捆綁繼承的一部分。見http://symfony.com/doc/current/cookbook/bundles/override.html#translations官方文檔

+1

真棒,謝謝老兄! –

+5

其實我不得不將它複製到應用程序/ Resources/FOSUserBundle/translation,而不是我的捆綁軟件目錄中,以使其工作, –

+0

是的你是對的! – AlterPHP

0

前面已經說了,你可以把你的翻譯文件:
app/Resources/translations

但是,如果你在你的父包(src/MyAppBundle/Resources/translations)覆蓋它或以任何其它捆綁,確保負載重寫的包在你的內核後,你的包:

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