laravel локализация с использованием пакета mcamara - PullRequest
0 голосов
/ 06 августа 2020

Я пытаюсь использовать пакет laravel mcamara для автоматического перевода c языка из языковых файлов. пакет должен работать следующим образом:

когда я получаю доступ к веб-сайту, например, из Франции, и я настроил французский язык в файле конфигурации пакета, он должен быть перенаправлен на этот URL по умолчанию: www.example.com/fr, и если я обращаюсь к нему из Италии и настроил итальянский язык, он должен показать: www.example.com/it ниже мой код для перенаправления его на конкретный языковой стандарт, но он не работает автоматически:

Route::group(['prefix' => LaravelLocalization::setLocale(), 'middleware' => ['localizationRedirect', 'localeViewPath' ]], function(){ all the routes of my application is here });

1 Ответ

0 голосов
/ 07 августа 2020

сначала нужно будет определить страну пользователя по ip, можно использовать этот пакет https://github.com/stevebauman/location и установить в boot функцию внутри App \ Providers \ AppServiceProvider

       public function boot()
       {
         $ip = request()->getClientIp(); 
         $position = \Location::get($ip); 
         \LaravelLocalization::setLocale($position->countryCode); 
       }

и замените префикс в группе маршрутов на:

     \Mcamara\LaravelLocalization\Facades\LaravelLocalization::getCurrentLocale();

группа маршрутов должна быть:

    Route::group(['prefix' => \Mcamara\LaravelLocalization\Facades\LaravelLocalization::getCurrentLocale() , 'middleware' => ['localizationRedirect', 'localeViewPath' ]], function(){ all the routes of my application is here });
...