2015-06-15 8 views
3

Я совершенно новичок в Laravel, поэтому я все еще не хватает хороших методов программирования. Для моей работы мне нужна локализация приложения на трех языках.Laravel 5.1 локализация

Я знаю, где сделать языковые файлы ресурсов/lang ... Чтобы использовать их, я могу написать Lang::get('navigation.dining'). И в моем представлении файл в начале я определяю <?php App::setLocale(session('lang'));?>.

Сессия сохранена routes.php. Вот пример:

Route::get('language/{lan?}', function ($lan='eng'){ 
    Session::put('lang', $lan); 
    return redirect()->back(); 
}); 

Я не уверен, что если этот подход хорош или нет, поэтому, пожалуйста, исправить или предложить лучший способ сделать это.

+0

Это один метод да. Все зависит от того, как ваше приложение должно работать. Ваш код подсказывает, что посетитель выберет язык из раскрывающегося списка и перенаправится на эту страницу, будет задана переменная сеанса, и посетитель будет перенаправлен обратно. Выглядит вполне законно. – Luceos

+0

Часть кода, которая меня больше всего интересует: «App: setLocale (session ('lang'));' потому что я использую ее при каждом представлении. Это то, о чем я не уверен, если это хорошо. – Tim

+0

да, лучше держать логику приложения в контроллерах или еще лучше в поставщике услуг, а не определять ее в верхней части вашего представления/шаблона – Luceos

ответ

0

Вы ищете любой из них:

app()->setLocale($lan); 
App::setLocale($lan); 

Лучшая практика будет поместить их в язык Middleware.