我正在使用 Laravel 框架开发一个多语言 Web 应用程序。所以在这个应用程序中,我有一个特殊的条件来做多语言功能,如下所示。
- 用户可以从一些标志中进行选择并手动更改语言。它将他的 URL 更改为 /{lang} .. 例如,webapp.com/cs - 所以他将看到捷克语的所有内容。webapp.com/en - 用英语查看所有内容。
- 选择的本地化应该是持久的,因此当用户更改页面或其他内容时不会消失 - 它应该始终在 URL 中。
我创建了 Route 以在会话中设置语言环境,如下所示。
Route::get('/{locale}', function ($locale) {
session()->put('locale', $locale);
return back();
});
并创建中间件并将其添加到 http\Kernel 中的 $middlewareGroups 中。
下面是我的中间件。
public function handle($request, Closure $next)
{
if (session()->has('locale')) {
app()->setLocale(session('locale'));
}
return $next($request);
}
本地化进展顺利,它提供了正确的翻译和一切。但我需要在 URL 中显示语言是什么。例如 webapp.com/cs,webapp.com/en。如果有人可以帮助我解决这个问题,那就太好了。
谢谢。