如何解决Symfony-通过IP将用户重定向到国家/地区路由
在网站上,我有很多公开页面。网站有几种语言。 页面网址是这样的: / about-us(英语) / de / about-us(德国) ....
但是,当用户访问该网站(例如,来自德国)时,如果他是第一次访问我的网站,则输入浏览器地址首页或/ about-us,我需要显示/ de / about-us。
我该怎么做。
我有订阅者
public static function getSubscribedEvents(): array
{
return [
KernelEvents::REQUEST => [
['setTranslationsLocale',self::TRANSLATIONS_PRIORITY],],KernelEvents::CONTROLLER => 'setCountrySpecificLocale',];
}
public function setTranslationsLocale(RequestEvent $event): void
{
...
$request->setLocale($routeLocale);
$session->set('_locale',$routeLocale);
// and locale set correctly
}
但是因为地址/ about-us(不是/ de / about-us)语言是英语。我如何重定向到/ de / about-us网址(网址可以不同)
解决方法
如果配置正确,则可以在控制器上配置所有@Route注释,如下所示:
* @Route(
* path={
* "fr_FR": "/locations",* "en_US": "/rentals",* },* ......
* )
根据在请求上设置的语言环境,将相应的uri分配给响应。
更多信息在这里:https://symfony.com/doc/current/routing.html#localized-routes-i18n
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。