Symfony2のFOSユーザーバンドルが使用するラベルを上書きするのに苦労しています。
すでにFormクラスを上書きしていますが、「setOption」のような要素のオプションはなく、ゲッターのみです。
要素を削除して、適切なラベルを付けて再度追加することもできますが、これはやり過ぎのようです。フォーム要素のオプション、または単に翻訳キーを上書きする良い方法はありますか?
Symfony2のFOSユーザーバンドルが使用するラベルを上書きするのに苦労しています。
すでにFormクラスを上書きしていますが、「setOption」のような要素のオプションはなく、ゲッターのみです。
要素を削除して、適切なラベルを付けて再度追加することもできますが、これはやり過ぎのようです。フォーム要素のオプション、または単に翻訳キーを上書きする良い方法はありますか?
フォームクラスを上書きする必要はありません。
(同じディレクトリ構造と同じファイル名で)ディレクトリ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を参照してください。
すでに述べたように、翻訳ファイルを次の場所に置くことができます。
app/Resources/translations
ただし、親バンドル( )またはその他のバンドルでオーバーライドする場合は、カーネルでオーバーライドされた バンドルの後src/MyAppBundle/Resources/translations
に必ずバンドルをロードしてください。
public function registerBundles()
{
$bundles = [
...
new FOS\UserBundle\FOSUserBundle(),
new MyAppBundle\MyAppBundle(),
...
];
...
}