2016-08-25 5 views
2

フレーズでフレーズを翻訳する代わりに、Laravelでさまざまなロケールに異なるビューを使用したいと思います。Laravel 5のロケールで表示を切り替えるにはどうすればよいですか?

これを行うためのメカニズムやパッケージはありますか?

その他の意見私の意見とコントローラは、きれいに、かつ確実に行われるように、どうすれば書けますか?最も簡単な方法は、既存のもののラッパーとして、カスタムビューローダヘルパーメソッドを作成するかもしれません事前

答えて

4

感謝。

function lcView($view, $data = [], $mergeData = []) 
{ 
    return view($view.'.'.config('app.locale'), $data, $mergeData); 
} 

次に、あなたが、1つではなく、その呼び出し:

// in some controller method 
return view('index', $someData); // old way 
return lcView('index', $someData); // new way 

もが、

index.en.blade.php 
index.es.blade.php 
index.sv.blade.php 

がそれをテストしていないと私はいくつかのよりスマートな方法があるかもしれないと確信しているあなたのファイルに名前を付けますしかし、それは動作しなければならず、それは非常に読みやすく理解可能です。 :)

+0

グローバルにするためにlcViewをどこに置くのですか?何らかの方法で元の表示機能を変更する方法はありませんか?ロケールが設定されていない場合、またはローカライズされたビューが見つからない場合は、このメソッドを使用します。 –

+1

これはあなた次第ですが、通常は一般的なヘルパーのために 'app/helpers.php'を作成して作者に追加します。 json autoload hash( '" files ":[" app/helpers.php "]'私は構文と思います)。 –

関連する問題