每个用户的Laravel语言设置

mpe*_*pet 1 php laravel laravel-4

我知道如何使用App :: setLocale('es')在应用程序中设置默认语言;

我正在考虑在用户登录后为每个用户设置单独的语言.

目前,我唯一想到的方法是在Lang :: get()命令中设置通用语言和使用变量:

$user_language = 'gr';

Lang::get('messages.welcome'.$user_language);
Run Code Online (Sandbox Code Playgroud)

是否有其他方法为每个用户设置语言设置?

Bog*_*dan 6

App::setLocale()如果用户已登录,为什么不使用根据用户首选项设置语言.根据Laravel文档:

您可以随时使用该App::setLocale方法更改活动语言.

所以你可以这样做:

App::before(function($request)
{
    // If user is logged in
    if (Auth::check())
    {
        // Get the user specific language
        $lang = Auth::user()->language;

        // Set the language
        App::setLocale($lang);
    }
});
Run Code Online (Sandbox Code Playgroud)