1111
1212namespace Symfony \Cmf \Bundle \CreateBundle \Controller ;
1313
14+ use Symfony \Cmf \Bundle \CoreBundle \Translatable \TranslatableInterface ;
1415use Symfony \Cmf \Bundle \CreateBundle \Security \AccessCheckerInterface ;
1516use Symfony \Component \HttpFoundation \Request ;
1617use Symfony \Component \HttpKernel \Exception \NotFoundHttpException ;
@@ -54,25 +55,33 @@ class RestController
5455 */
5556 protected $ accessChecker ;
5657
58+ /**
59+ * @var boolean
60+ */
61+ protected $ forceRequestLocale ;
62+
5763 /**
5864 * @param ViewHandlerInterface $viewHandler
5965 * @param RdfMapperInterface $rdfMapper
6066 * @param RdfTypeFactory $typeFactory
6167 * @param RestService $restHandler
6268 * @param AccessCheckerInterface $accessChecker
69+ * @param boolean $forceRequestLocale
6370 */
6471 public function __construct (
6572 ViewHandlerInterface $ viewHandler ,
6673 RdfMapperInterface $ rdfMapper ,
6774 RdfTypeFactory $ typeFactory ,
6875 RestService $ restHandler ,
69- AccessCheckerInterface $ accessChecker
76+ AccessCheckerInterface $ accessChecker ,
77+ $ forceRequestLocale
7078 ) {
7179 $ this ->viewHandler = $ viewHandler ;
7280 $ this ->rdfMapper = $ rdfMapper ;
7381 $ this ->typeFactory = $ typeFactory ;
7482 $ this ->restHandler = $ restHandler ;
7583 $ this ->accessChecker = $ accessChecker ;
84+ $ this ->forceRequestLocale = $ forceRequestLocale ;
7685 }
7786
7887 protected function getModelBySubject (Request $ request , $ subject )
@@ -82,6 +91,10 @@ protected function getModelBySubject(Request $request, $subject)
8291 throw new NotFoundHttpException ($ subject .' not found ' );
8392 }
8493
94+ if ($ this ->forceRequestLocale && $ model instanceof TranslatableInterface) {
95+ $ model ->setLocale ($ request ->getLocale ());
96+ }
97+
8598 return $ model ;
8699 }
87100
0 commit comments