Laravel localized routes
<?php
class RouteServiceProvider
{
public function boot()
{
Route::macro('localize', function (callable $callback) {
foreach(['', 'en', 'fr'] as $locale) {
$suffix = $locale ? "-{$locale}" : '';
Route::prefix($locale)->group(function () use ($callback, $suffix) {
$callback($suffix);
});
}
});
parent::boot();
}
}
<?php
// Generates '/', '/en', and '/fr'
Route::localize(function ($locale) {
Route::get('/', HomeController::class)->name('home' . $locale);
});