Задать вопрос
@dfgdfgdfgdfgfg

Как настроить Locale Laravel правильно?

Middleware
class Localization
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
        if (Session::has('locale')){
            App::setLocale(Session::get('locale'));
        }
        return $next($request);
    }
}


Select
<form action="{{route('language-switcher')}}" method="post" id="lang-switcher">
                                        <div class="search-container">
                                            <select name="change" id="font-options">
                                                <option {{(App::isLocale('ru')) ? 'selected' : ''}} value="ru">RU</option>
                                                <option {{(App::isLocale('en')) ? 'selected' : ''}} value="en">EN</option>
                                            </select>
                                            {{csrf_field()}}
                                            <div class="search-arrow"></div>
                                        </div>
                                    </form>


// Controller
public function switcher(Request $request){

        $locale = $request->change;

        Session::put('locale', $locale);
        return redirect()->back();
    }


Route
// Home
Route::get('/', 'MainController@index')->name('index');

// About
Route::get('/about', 'MainController@about')->name('about');

// Switcher lang
Route::post('/switcher-language/', 'MainController@switcher')->name('language-switcher');


Вопрос:
На данный момент локация определяется через сессию и грузить нужный контент, как сделать чтобы на главном языке (ru) была ссылка /about а на англ. (en) /en/about
  • Вопрос задан
  • 1001 просмотр
Подписаться 3 Средний Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы