Laravel France

Laravel 8 avec authentification et localisation

Avatar de JeanVerdeyen
JeanVerdeyen

Bonjour, je débute avec laravel. J'essaye de mettre en place l'authentification avec localisation c'est a dire choix de langue. (Si quelqu'un a un lien d'un tuto pas a pas pour celà, je suis preneur :-) J'arrive a mettre en place l'authentification, mais j'ai des problème pour la localisation. Suivant des tutos en ligne, j'ai trouvé ceci pour le web.php :

Route::get('/', function () {
    return redirect(app()->getLocale());
});
Route::group(['prefix' => '{locale}', 
'where' => ['locale' => '[a-zA-Z]{2}'],
'middleware' => 'setlocale',
], function() {
    Route::get('/', function () {
        return view('welcome');
    });

    Route::middleware(['auth:sanctum', 'verified'])->get('/dashboard', function () {
        return view('dashboard');
    })->name('dashboard');
});

ensuite il faut ajouter un parametre langue dans les liens, et c'est là que ça coince dans les fichiers blades je rajoute le paramètre comme indiqué dans le tuto : {{ route('login',app()->getLocale()) }} mais au lieu de me faire un lien fr/login, il me créé un lien login?fr une idée sur comment changé celà ? merci.

Avatar de JeanVerdeyen
JeanVerdeyen

Ai trouver pourquoi le login ne prennait pas le paramètre. Il faut modifier dans \vendor\laravel\fortify\routes\routes.php la définition de la route pour y ajouter le refix :

 Route::prefix('{locale}')->middleware(['setlocale'])->get('/login', [AuthenticatedSessionController::class, 'create'])
            ->middleware(['guest:'.config('fortify.guard')])
            ->name('login');

mais c'est un problème à changer partout les liens, à l'intérieur de fortify... Y-a-pas un moyen plus simple pour activer les langues sans devoir passer en revue tout le code de l'identification ? car c'est pas seulement dans blade, mais aussi dans les fonctions qu'il faut changer les liens.... ça complique pas mal.

Avatar de nash
nash

salut,

on ne fait pas de modification dans le repertoire vendor ...

Vous ne pouvez pas répondre à ce sujet.