Manage locale in URL

master
Julien Rosset 1 year ago
parent a9ad001ebc
commit d4fb881087

@ -47,6 +47,7 @@
"symfonycasts/verify-email-bundle": "^1.17", "symfonycasts/verify-email-bundle": "^1.17",
"twbs/bootstrap": "^5.3", "twbs/bootstrap": "^5.3",
"twig/extra-bundle": "^3.0", "twig/extra-bundle": "^3.0",
"twig/string-extra": "^3.10",
"twig/twig": "^3.0" "twig/twig": "^3.0"
}, },
"config": { "config": {

@ -1,5 +1,5 @@
framework: framework:
default_locale: en default_locale: '%locale.default%'
translator: translator:
default_path: '%kernel.project_dir%/translations' default_path: '%kernel.project_dir%/translations'
fallbacks: fallbacks:

@ -1,5 +1,10 @@
core_root_redirect:
path: /
controller: App\Controller\CoreController::root_redirect
controllers: controllers:
resource: resource:
path: ../src/Controller/ path: ../src/Controller/
namespace: App\Controller namespace: App\Controller
type: attribute type: attribute
prefix: /{_locale<%locale.all%>}

@ -7,6 +7,9 @@ parameters:
mailer.email: '%env(MAILER_EMAIL)%' mailer.email: '%env(MAILER_EMAIL)%'
mailer.name: '%env(MAILER_NAME)%' mailer.name: '%env(MAILER_NAME)%'
locale.all: 'en|fr'
locale.default: 'en'
services: services:
# default configuration for services in *this* file # default configuration for services in *this* file
_defaults: _defaults:

@ -3,6 +3,7 @@
namespace App\Controller; namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response; use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Attribute\Route; use Symfony\Component\Routing\Attribute\Route;
@ -10,6 +11,19 @@ use Symfony\Component\Routing\Attribute\Route;
* Controller for core page : home, etc. * Controller for core page : home, etc.
*/ */
class CoreController extends AbstractController { class CoreController extends AbstractController {
/**
* Redirection for root URL (without locale)
*
* @param Request $request The request
*
* @return Response The response
*/
public function root_redirect (Request $request): Response {
return $this->redirectToRoute('core_main', [
'_locale' => $request->getPreferredLanguage(explode('|', $this->getParameter('locale.all'))),
]);
}
/** /**
* Home page * Home page
* *

Loading…
Cancel
Save