2016-10-12 26 views
0

私は5つの言語でウェブサイトを持ち、各ページごとに各言語ですべてのURLを翻訳しました。Laravel 5.3を使用して更新します。Laravel多言語サイトとルート

私は自分のプロジェクトに以下の多言語のロケールを追加するthisチュートリアル続いている:

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

をそして、これはweb.phpファイル内Contact Usページルートの例のようになります。

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ロケールで接触を動作するはずです、起こるべきではありません:ドイツ語とイタリア語(/it/contattaci)と/en/contactcontattaciKONTAKT/de/kontakt)など

誰かがこれがなぜ起こっているのか、あるいは異なる翻訳ルートを作成する正しい方法を知っていますか?

+0

こちらをご覧ください(@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リダイレクト( '/ de');});' – SimonDepelchin