【发布时间】:2019-02-15 04:49:17
【问题描述】:
美好的一天! 我一直在做一个 Laravel 项目,我对语言选择器很生气。
我在我的app.php 上设置了当前语言的 locale 和一个名为 locales 的数组,其中我拥有所有语言(目前为西班牙语和英语) :
'locale' => 'es',
'locales' => [
'en' => 'English',
'es' => 'Castellano',
],
我创建了一条路径,用户可以通过这种方式使用/lang/es 或/lang/en 模式更改语言:
Route::get('/lang/{lang}', ['as'=>'lang.switch', 'uses'=>'HomeController@storeLang']);
这里是函数storeLang:
public function storeLang($lang){
$cookie = null;
if (array_key_exists($lang, Config::get('app.locales'))) {
$cookie = Cookie::forever('locale', $lang);
//App::setLocale($lang);
var_dump(Config::get('app.locale'));
exit();
}
if ($cookie) {
return Redirect::back()->withCookie($cookie);
}
return back();
}
}
我的想法是检查我们传递的 $lang 是否正确,如果正确,则制作一个 cookie,该 cookie 与所存储的语言一起永久存在,但它没有制作 语言环境 要更改,我想我必须添加一些内容,因为这个 var_dump 没有返回我更改的语言,而且我不知道如何使 cookie 更改语言环境。
另一方面,如您所见,我已对 App::setLocale($lang) 进行了评论。我已经使用它并且它似乎可以工作,因为在这种情况下,var_dump 正在返回我想要更改为的正确语言,但在返回页面时,这一切都与又是老语言了。
我对此感到很生气,如果能得到一些帮助会非常好,谢谢!
【问题讨论】:
标签: php laravel language-switching