在laravel4中动态设置区域设置


Set locale on the fly in laravel4

在从laravel 4中搜索文档后,我发现设置语言的方法是执行

App::setLocale('en');

但是,我如何将其与我网站上的语言切换器结合使用,例如,访问者可以点击该切换器来动态更改语言?用饼干什么的记住这件事?

在laravel 3中,这似乎要容易得多,但由于我是laravel的新手,我不知道如何解决这个问题,所以如果有人知道该做什么并能帮助我,那就太好了:)

这是一种方法:

为您的语言选择器创建一条路线:

Route::get('language/{lang}', 
           array(
                  'as' => 'language.select', 
                  'uses' => 'LanguageController@select'
                 )
          );

在Laravel Blade的视图中创建语言选择器链接:

<html><body>
    Please select a Language:
    {{link_to_route('language.select', 'English', array('en'))}}
    {{link_to_route('language.select', 'Portuguese', array('pt'))}}
</body></html>

控制器:

Class LanguageController extends BaseController {
    public function select($lang)
    {
        Session::put('lang', $lang);
        return Redirect::route('home');
    }
}

然后在你的应用程序/start/global.php中,你可以:

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

Laravel有一个很棒的库,允许您灵活地处理区域设置-mcamara-Laravel本地化。在项目的自述文件中,您可以找到如何实现这样一个切换器的示例。