2016-10-12 2 views
0

У меня есть сайт на пяти языках и со всеми URL-адресами, переведенными на каждый язык для каждой страницы, и я собираюсь обновить его, используя Laravel 5.3.Многоязычный сайт и маршруты Laravel

Я следовал this учебнику, чтобы добавить следующую многоязычные локали мой проект:

'locales' => ['de' => 'German', 'en' => 'English', 'fr' => 'French', 'it' => 'Italian', 'es' => 'Spanish'] 

И это может быть примером Contact Us страниц маршрутов в файле web.php:

Route::get('/kontakt', '[email protected]'); 
Route::get('/contact', '[email protected]'); 
Route::get('/contactez', '[email protected]'); 
Route::get('/contattaci', '[email protected]'); 
Route::get('/contacto', '[email protected]'); 

Но если я напечатаю в браузере: http://localhost/myproject/en/contattaci или http://localhost/myproject/en/kontakt

я могу получить доступ к просмотру контактов, и это не должно произойти, просто должны работать контакт с ан местности: /en/contact и contattaci с итальянской (/it/contattaci) и Kontakt с немецкого (/de/kontakt) и т.д.

Кто-нибудь знает, почему это происходит или что это правильный способ создания разных переведенных маршрутов?

+0

посмотреть [здесь] (http://stackoverflow.com/questions/25082154/how-to-create-multilingual-translated-routes-in-laravel) – Moppo

+0

@Moppo Я уже видел это время назад и не работал для меня. Но я пытался повторить это и работал! :) Я хочу префикс 'de' для моего локали по умолчанию, поэтому я добавил его также в массив' alt_langs', но теперь мне нужно перенаправить на '/ de', когда набирается только'/'. Как я могу это достичь? –

ответ

0

Возможно, вы не указали полный маршрут маршрута. Попробуйте что-то вроде этого:

// EN routes 
Route::group(['prefix' => 'en'], function() { 
    Route::get('contact', '[email protected]'); 
    //... other EN routes 
}); 
// FR routes 
Route::group(['prefix' => 'fr'], function() { 
    Route::get('contact', '[email protected]'); 
    //... other FR routes 
}); 

Но вы должны проверить @ ссылку Moppo, потому что есть более простые способы управления локализованных маршрутов.

+0

вы можете попытаться замаскировать маршрутизатор с ID и связать ID с другим языком ... –

+0

Я пытался это сделать, но это не сработало. Я последовал за учебником, который @Moppo предложил мне, и это сработало. Но в моем случае стандартная локаль - это '/ de', и мне нужно перенаправить ее, когда набирается только'/'. Вы знаете, как я могу это достичь? - –

+0

'Route :: get ('/', function() {return redirect ('/ de');});' – SimonDepelchin

Смежные вопросы