覆盖翻译回退 symfony 2

override translation fallback symfony 2

我有一个 symfony 2 项目,它在后端和前端都支持 2 种语言。而且我在配置中启用了翻译回退,以允许管理员查看所有数据库记录,无论他选择在后端使用哪种语言。但是,对于网站的前端,我希望禁用回退。如何仅在我想要的控制器中覆盖从 true 到 false 的转换回退?

我在我的实体中使用 Gedmo translatable 来翻译特定的列。

谢谢。

当前用户的区域设置存储在请求中,可以通过请求对象访问,如下所示:

use Symfony\Component\HttpFoundation\Request;

public function indexAction(Request $request)
{
    $locale = $request->getLocale();

    $request->setLocale('en_US');
}

更多详情here

我想这就是您要找的。 使用它您可以覆盖语言环境设置。

如果您想设置后备语言环境,您也可以这样做,使用:

$translator->setFallbackLocale(array('en'));

给出了更多详细信息 here

希望对您有所帮助。

我找到了 http://blog.lazycloud.net/symfony2-doctrine2-extentions-translatable/

显然我应该向我的实体添加一个 $locale 属性并在其上方设置注释 * @Gedmo\Locale 。然后我可以通过将语言环境设置为我希望的任何语言然后调用 $em->refresh($entity)

来使用它来覆盖实体的默认回退