12

Symfony2のFOSユーザーバンドルが使用するラベルを上書きするのに苦労しています。

すでにFormクラスを上書きしていますが、「setOption」のような要素のオプションはなく、ゲッターのみです。

要素を削除して、適切なラベルを付けて再度追加することもできますが、これはやり過ぎのようです。フォーム要素のオプション、または単に翻訳キーを上書きする良い方法はありますか?

4

2 に答える 2

33

フォームクラスを上書きする必要はありません。

(同じディレクトリ構造と同じファイル名で)ディレクトリ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を参照してください。

于 2012-11-20T12:58:52.200 に答える
1

すでに述べたように、翻訳ファイルを次の場所に置くことができます。
app/Resources/translations

ただし、親バンドル( )またはその他のバンドルでオーバーライドする場合は、カーネルでオーバーライドされた バンドルの後src/MyAppBundle/Resources/translationsに必ずバンドルをロードしてください。

public function registerBundles()
{
    $bundles = [
        ...
        new FOS\UserBundle\FOSUserBundle(),
        new MyAppBundle\MyAppBundle(),
        ...
    ];
...
}
于 2017-08-10T10:20:24.587 に答える