PHP code example of chinleung / laravel-multilingual-routes
1. Go to this page and download the library: Download chinleung/laravel-multilingual-routes library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
chinleung / laravel-multilingual-routes example snippets
Route::multilingualResource('test', 'TestController');
// resources/lang/fr/routes.php
return [
'test' => 'teste',
'test/{test}' => 'teste/{test}'
];
localized_route('test'); // Returns the url of the current application locale
localized_route('test', [], 'fr'); // Returns https://app.test/fr/teste
localized_route('test', [], 'en'); // Returns https://app.test/test
current_route(); // Returns the current request's route
current_route('fr'); // Returns the current request's route in French version
current_route('fr', route('fallback')); // Returns the fallback route if the current route is not registered in French
current_route_is('home'); // Returns true if current route is 'en.home', 'fr.home', etc.
current_route_is('photos.show'); // Returns true if current route is 'en.photos.show', 'fr.photos.show', etc.
Route::multilingual('test', 'TestController')->name('foo');
Route::multilingual('test', 'TestController')->names([
'en' => 'foo',
'fr' => 'bar',
]);
Route::multilingual('test', 'TestController')->except(['fr']);
Route::multilingual('test', 'TestController')->only(['fr']);
Route::multilingual('test', 'TestController')->method('post');
// Loads test.blade.php
Route::multilingual('test');
// Loads welcome.blade.php instead of test.blade.php
Route::multilingual('test')->view('welcome');
Route::multilingual('test')->data(['name' => 'Taylor']);
Route::multilingual('test')->view('welcome', ['name' => 'Taylor']);
Route::multilingual('support');
Route::multilingual('contact')->redirect('support');
Request::localizedRouteIs('home');
URL::signedLocalizedRoute('unsubscribe', ['user' => 1]);
URL::temporarySignedLocalizedRoute('unsubscribe', now()->addMinutes(30), ['user' => 1]);
Route::multilingualResource('photos', 'PhotoController');
Route::multilingualResource('photos', 'PhotoController')->only(['index', 'show']);
Route::multilingualResource('photos', 'PhotoController')->except(['create', 'edit']);
Route::multilingualResource('photos', 'PhotoController')->parameters([
'photos' => 'photo_id'
]);
Route::multilingualResource('photos', 'PhotoController')->onlyLocales(['fr']);
Route::multilingualResource('photos', 'PhotoController')->exceptLocales(['en']);
// Customize missing model behavior
Route::multilingualResource('photos', 'PhotoController')
->missing(function (Request $request) {
return Redirect::route('photos.index');
});
// Include soft deleted models
Route::multilingualResource('photos', 'PhotoController')->withTrashed(['show']);
// Apply constraints to specific parameters
Route::multilingualResource('photos', 'PhotoController')->whereParam('photos', '[0-9]+');
// Set custom name
Route::multilingualResource('photos', 'PhotoController')->name('gallery');
// Add middleware
Route::multilingualResource('photos', 'PhotoController')->middleware(['auth', 'verified']);
// Add route constraints
Route::multilingualResource('photos', 'PhotoController')->where('photos', '[0-9]+');
// Set default parameters
Route::multilingualResource('photos', 'PhotoController')->defaults(['format' => 'json']);
// Exclude specific locales
Route::multilingualResource('photos', 'PhotoController')->exceptLocales(['en']);
// Set different names per locale
Route::multilingualResource('photos', 'PhotoController')->names([
'en' => 'pictures',
'fr' => 'images'
]);
// Chain multiple methods together
Route::multilingualResource('photos', 'PhotoController')
->only(['index', 'show', 'edit'])
->exceptLocales(['en'])
->name('gallery')
->middleware('auth')
->parameters(['photos' => 'photo_id'])
->withTrashed(['show'])
->missing(function (Request $request) {
return redirect()->route('gallery.index');
});
php
protected $middlewareGroups = [
'web' => [
\ChinLeung\MultilingualRoutes\DetectRequestLocale::class,
// ...
]
];
bash
php artisan vendor:publish --provider="ChinLeung\MultilingualRoutes\MultilingualRoutesServiceProvider" --tag="config"
php
Route::get('/', 'ShowHomeController')->name('en.home');
Route::get('/fr', 'ShowHomeController')->name('fr.home');
php
Route::multilingual('/', 'ShowHomeController')->name('home');
php
Route::multilingual('test', 'TestController');
php
// resources/lang/fr/routes.php
return [
'test' => 'teste'
];