2016-11-14 153 views
0

我正在尝试使用简单文本更改laravel中的语言选择器,我在语言文件夹中有两个php文件greetings,一个用英文,一个用德文。函数trans在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); 
} 

} 

它添加到kernel.php

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

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

你应该改变你的配置区域设置这样的/ app.php:

'区域'=> '德',