Задать вопрос
Ответы пользователя по тегу Laravel
  • Мультиязычность laravel 8 с прафиксами в роуте?

    @konchychp Автор вопроса
    fullstack developer; founder of IT solution
    Пока мне не дадут более лаконическое решени или скорее я сам его найду, просто не в 3 утра, то оставлю так пока для dev версии. Может и мой вариант кому то понадобится

    web.php
    Route::get('locale/{locale}', 'Site\HomeController@changeLocale')->name('locale');
    
    Route::group(['middleware' => 'locale'], function(){
        Route::get('/', function () { return redirect (app()->getLocale(substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2))); });
    });
    
    Route::group(['namespace' => 'Site', 'middleware' => 'locale', 'prefix' => '{locale}',
        'where' => ['locale' => '[a-zA-Z]{2}'],], function() {
    
        // Base websites Urls
        Route::get('/', 'HomeController@index')->name('home');
    });
    
    // Site routes

    SetLocale.php - middleware
    public function handle(Request $request, Closure $next)
        {
            App::setLocale(substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2));
            return $next($request);
        }

    Роуты в home.blade.php
    href="{{ route('bonus', [app()->getLocale()])}}
    Ответ написан
    Комментировать
  • Мультиязычность Laravel 8 в зависимости от ГЕО юзера?

    @konchychp Автор вопроса
    fullstack developer; founder of IT solution
    Сделал по дубовому - но если кто предложит лучше - я не откажусь !

    SetLocale.php (Middleware)

    public function handle(Request $request, Closure $next)
        {
            $locale = session('locale');
    
            $defaultLocale = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
    
    
            App::setLocale($locale ? $defaultLocale : $defaultLocale);
    
            return $next($request);
        }
    Ответ написан