Home > Article > Backend Development > How to Create Multilingual Translated Routes in Laravel?
Creating Multilingual Translated Routes in Laravel
In Laravel applications, you can create multilingual routes that depend on the selected language, allowing for a user-friendly navigation experience.
Step 1: Configure Language Directories and Translations
Create three separate language directories under app/lang (e.g., pl, en, fr). In each directory, create a file named routes.php that contains the translated route names:
<code class="php">// app/lang/pl/routes.php return array( 'contact' => 'kontakt', 'about' => 'o-nas' );</code>
<code class="php">// app/lang/en/routes.php return array( 'contact' => 'contact', 'about' => 'about-us' );</code>
<code class="php">// app/lang/fr/routes.php return array( 'contact' => 'contact-fr', 'about' => 'about-fr' );</code>
Step 2: Configure Language Settings
In app/config/app.php:
<code class="php">'locale' => 'pl', 'alt_langs' => ['en', 'fr'], 'locale_prefix' => '',</code>
Step 3: Define Route Patterns and Language-Dependent Group
In app/routes.php:
<code class="php">if (in_array(Request::segment(1), Config::get('app.alt_langs'))) { App::setLocale(Request::segment(1)); Config::set('app.locale_prefix', Request::segment(1)); } foreach(Lang::get('routes') as $k => $v) { Route::pattern($k, $v); } Route::group(array('prefix' => Config::get('app.locale_prefix')), function() { Route::get('/', function () { return "main page - ".App::getLocale(); }); Route::get('/{contact}/', function () { return "contact page ".App::getLocale(); }); Route::get('/{about}/', function () { return "about page ".App::getLocale(); }); });</code>
Step 4: Handle Unknown URLs
In app/start/global.php:
<code class="php">App::missing(function() { return Redirect::to(Config::get('app.locale_prefix'), 301); });</code>
By implementing these steps, you will create dynamic routes that adapt to the selected language, ensuring a seamless user experience across multiple languages.
The above is the detailed content of How to Create Multilingual Translated Routes in Laravel?. For more information, please follow other related articles on the PHP Chinese website!