1

我正在尝试使用 mcamara 包进行语言翻译,但在根 url 上我收到 404 错误。实际上,我正在尝试检测用户的 IP 地址,然后根据该国家/地区设置区域设置。我将语言环境和国家/地区名称存储在数据库中。下面是我的代码:

这个文件中的AppServiceProvider.php我通过https://github.com/stevebauman/location这个包获取用户 IP 地址,并从数据库中检查语言环境并根据它设置语言环境。

        $ip = request()->getClientIp(); 
        $position = Location::get($ip); 
        $locale = Locale::where('country_code',strtolower($position->countryCode))->first();
        if($locale){
            LaravelLocalization::setLocale($locale->country_code);
            
        }

网页.php

Route::group([
'prefix' => LaravelLocalization::getCurrentLocale(),
'middleware' => ['localizationRedirect', 'localeViewPath' ]], function(){
   Route::get('/',function(){
     dd('check');
  }); 
}

我收到 404 错误。

4

3 回答 3

1

这个步骤对我有用

Route::group(['prefix' => LaravelLocalization::setLocale(),
'middleware' => [ 'localeSessionRedirect', 'localizationRedirect', 'localeViewPath' ]],function (){
// routes here

});

php artisan optimize 然后 1 - 删除引导文件夹 2- 3- php artisan route:trans:cache 4- php artisan cache:clear 5-中的缓存文件php artisan route:clear

于 2021-05-29T21:18:29.660 回答
0

https://github.com/mcamara/laravel-localization/blob/master/CACHING.md

这个网址对你有帮助。 这个问题的use \Mcamara\LaravelLocalization\Traits\LoadsTranslatedCachedRoutes;特征在而不是RouteServiceProviderroute:trans:cacheroute:cache

于 2021-08-20T05:19:14.797 回答
-1

转到引导文件夹并删除(config.php)文件,如果有任何名为(route.php)的文件,也将其从引导文件夹中删除。

于 2021-11-28T15:09:33.153 回答