12

我很难覆盖 Symfony2 的 FOS 用户包使用的标签。

我已经覆盖了 Form 类,但是像“setOption”这样的元素没有选项,只有 getter。

我可以删除一个元素,然后用正确的标签再次添加它,但这似乎有点过头了。有没有什么好的方法可以覆盖表单元素上的选项,或者只是翻译键?

4

2 回答 2

33

您不需要覆盖 Form 类。

在您的目录中复制/粘贴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 回答