0

我正在尝试使用 laravel mcamara 包从语言文件中进行自动语言翻译。该软件包应该以这种方式工作:

例如,当我从法国访问该网站并在包配置文件中配置法语时,默认情况下应将其重定向到此 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 });
4

1 回答 1

0

首先 yoy 需要通过 ip 检测用户国家可以使用这个包https://github.com/stevebauman/location,并在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 });
于 2020-08-07T01:15:15.203 回答