2014-11-05 2 views
1

Я знаю, как установить язык по умолчанию в приложении с помощью App :: setLocale ('es');Настройки языка Laravel для пользователя

Я думаю о создании отдельного языка для каждого пользователя еще через входа пользователя в систему.

В настоящее время единственный способ, которым я имею в виду, чтобы установить общий язык и использовать переменную внутри Ланг :: получить() команда:

$user_language = 'gr'; 

Lang::get('messages.welcome'.$user_language); 

Есть ли другой способ настройки языка для пользователя?

ответ

6

Почему бы просто не использовать App::setLocale(), чтобы установить язык в соответствии с предпочтениями пользователя, если пользователь вошел в соответствии с Laravel Docs:.

Вы можете изменить активный язык в любое время с помощью метода 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); 
    } 
}); 
+0

Потому что таким образом, глобальные настройки языка для всего приложения будут установлены, а не для каждого пользователя. Два зарегистрированных пользователя одновременно, с разными языковыми предпочтениями - это то, что нам нужно достичь. – mpet

+1

Но ваш язык задается для каждого запроса на основе пользовательских настроек языка пользователя, поэтому он устанавливается в 'App :: before()'. Каждый сеанс входа является отдельным. Это не устанавливает язык для всех сеансов, только для текущего. Таким образом, каждый пользователь получит язык в своих предпочтениях. – Bogdan

+0

Я не знал, что языковые настройки устанавливаются за сеанс, я думал, что он настроен глобально. – mpet

Смежные вопросы