我在这样的路线上使用trans(Lang :: get):
...
Route::get(trans('url.news'), 'NewsController@index');
...
它在固定语言网站上运作良好。
现在我正在基于域.tld
切换中间件中的语言// app/Http/Middleware/Localization.php
public function handle($request, Closure $next)
{
$domain = substr(Request::server('HTTP_HOST'),strpos(Request::server('HTTP_HOST'), '.')+1);
case "domain.com":
App::setLocale('en');
\Session::put('connection', 'db_en');
break;
case "domain.fr":
App::setLocale('fr');
\Session::put('connection', 'db_fr');
break;
}
return $next($request);
}
我的url.php文件包含路径翻译:
// resources/lang/en/url.php
return [
....
'products' => 'products'
....
];
// resources/lang/fr/url.php
return [
....
'products' => 'nos-produits'
....
];
除了中间件似乎是在路由之后处理(并且加载默认语言文件而不是在中间件中选择的语言文件)之外,一切都运行良好。我能解决这个问题吗?
例如,在 AppServiceProvider.php 中执行此操作是否可以?