Laravel 应用程序:setLocale()不';不要在拉威尔上翻译
试图做一个语言转换,但它不起作用。帮帮我,问题出在哪里?切换后它不会转换Laravel 应用程序:setLocale()不';不要在拉威尔上翻译,laravel,Laravel,试图做一个语言转换,但它不起作用。帮帮我,问题出在哪里?切换后它不会转换 Route::get('/locale', function () { $locale = App::getLocale(); $locale = ($locale == 'ro') ? 'ru' : 'ro'; App::setLocale($locale); return redirect('/'); }); 因为您在设置区域设置后正在重定向 因此,您正在发出一个新请求,并且将设置默认的语言环境 您应
Route::get('/locale', function () {
$locale = App::getLocale();
$locale = ($locale == 'ro') ? 'ru' : 'ro';
App::setLocale($locale);
return redirect('/');
});
因为您在设置区域设置后正在重定向 因此,您正在发出一个新请求,并且将设置默认的语言环境
您应该将该逻辑移动到中间件。设置区域设置后,您将重定向,Laravel将再次从设置中获取默认区域设置 我想您需要的是在会话中保存设置。
这一点已在以下章节中得到解答:
另一种方法是在URL中使用该语言(
ro.example.com/home
或example.com/ru/home
)这也不起作用<代码>路由::get('/locale',函数(){$locale=App::isLocale('ru')?'ro':'ru';App::setLocale('locale);返回重定向('/');})代码>所以我需要使用所有带有语言前缀的URL?比如example.com/en/controller/action?或者我可以做一些类似switcher的事情吗?你们可以创建一个语言中间件,只要你们把那个定位片段放进去就行了。并将该中间件连接到所需的路由。