我正在开发一个symfony应用程序,我的目标是无论用户在哪个页面上都会导航到页面的语言环境版本.
例如,如果用户导航到"/"主页,它将重定向到"/ en /"
如果它们位于"/ admin"页面,它将重定向到"/ en/admin",以便_locale从路径设置属性.
此外,如果他们从用户浏览器访问/ admin,则需要确定区域设置,因为没有确定区域设置,因此它知道要重定向到哪个页面.
目前我的默认控制器如下所示,因为我正在测试.我正在使用开发模式和分析器来测试翻译是否正常工作.
<?php
namespace AppBundle\Controller;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Request;
class DefaultController extends Controller
{
/**
* @Route("/", name="homepage")
* @Route("/{_locale}/", name="homepage_locale")
*/
public function indexAction(Request $request)
{
$translated = $this->get('translator')->trans('Symfony is great');
// replace this example code with whatever you need
return $this->render('default/index.html.twig', [
'base_dir' => realpath($this->container->getParameter('kernel.root_dir').'/..'),
'translated' => $translated
]);
}
}
Run Code Online (Sandbox Code Playgroud)
如果用户在那里导航,则此当前方法将使用户保持"/",但我希望将其重定向到"/ en /".这也适用于其他页面,如/ admin,或/ somepath/pathagain/article1(/ en/admin,/ en/somepath/pathagain/article1)
我该怎么做?
我读过的参考文献没有帮助:
Symfony2在路由中使用默认语言环境(一种语言的一个URL)
::更新::
我还没有解决我的问题,但我已经接近并学会了一些提高效率的技巧.
DefaultController.php …