12

我尝试通过路由切换语言,但没有任何变化。你能帮我吗?

Route::get('lang/{lang}', function($lang)
{
    App::setLocale($lang);
    return Redirect::to('/');
});
4

2 回答 2

24

App::setLocale()不是持久的 - 也就是说它不会在请求之间记住您存储的内容。相反,您可以使用会话来记住所选的语言环境,并从会话中读取每个请求的语言环境。如果会话中没有设置,我们还可以读取默认语言环境(来自配置)。

// app/routes.php
Route::get('lang/{lang}', function($lang)
{
    Session::put('my.locale', $lang);
    return Redirect::to('/');
});

// app/start/global.php
App::setLocale(Session::get('my.locale', Config::get('app.locale')));
于 2013-05-15T08:25:32.380 回答
1

我解决了这个问题

App::setLocale(Session::get('lang', 'en'));

在 app/start/global.php

于 2015-11-18T09:25:18.767 回答