2016-11-14 5 views
0

単純なテキストの変更でlaravelで言語選択をしようとしていますが、私は2つのPHPファイルgreetingsを言語フォルダに、英語で1つ、ドイツ語で1つ持っています。関数トランスはLaravelで動作しません

このコードはdeのフォルダにあります。

return array(
    'hello' => 'Hallo' 
); 

、これはenフォルダ

return array(
    'hello' => 'Hello' 
); 

であると私はトランスの機能を使用して、ビュー内の単語を表示しようとすると、それは私に与えますビューではなく、単語からのコード。

{{ trans('greetings.hello') }} 

答えて

0

これを管理するには、ミドルウェアグループを作成します。

//middleware 
use Closure, Session; 

class ManageLocalization { 

protected $languages = ['en','de']; 

public function handle($request, Closure $next) 
{ 
    if(!Session::has('userLang')) 
    { 
     Session::put('userLang', $request->getPreferredLanguage($this->languages)); 
    } 
    app()->setLocale(Session::get('userLang')); 

    return $next($request); 
} 

} 

あなたはこのような設定/ app.phpにロケール変更する必要がありますkernel.php

protected $middlewareGroups = [ 
    'web' => [ 
     \App\Http\Middleware\ManageLocalization::class 
    ], 

protected $routeMiddleware = [ 
    'userLang' => \App\Http\Middleware\ManageLocalization::class 
]; 
0

にこれを追加します。

'ロケール' => 'ド'、

関連する問題