函数trans在Laravel中不起作用
问题描述:
我正在尝试使用简单文本更改laravel中的语言选择器,我在语言文件夹中有两个php文件greetings
,一个用英文,一个用德文。函数trans在Laravel中不起作用
此代码是在de
文件夹:
return array(
'hello' => 'Hallo'
);
,这是在en
文件夹
return array(
'hello' => 'Hello'
);
,当我尝试使用功能的反式显示在视图中字它给了我代码来自视图,而不是单词。
{{ trans('greetings.hello') }}
任何想法?
答
您可以通过创建中间件组来管理此操作。
//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
];
答
你应该改变你的配置区域设置这样的/ app.php:
'区域'=> '德',