
我已经下载了laravel 5的默认登录系统,并从下面的链接中集成了多支持语言教程
https://laracasts.com/discuss/channels/tips/example-on-how-to-use-multiple-locales-in-your-laravel-5-website
但它给我登录页面url localhost / en / login多语言支持教程但是当我使用登录系统而没有集成多语言支持时,它给了我登录页面laravel / auth / login的URL.
这是我的kernel.PHP
class Kernel extends httpKernel { /** * The application's global http mIDdleware stack. * * @var array */ protected $mIDdleware = [ 'App\http\MIDdleware\Language','Illuminate\Foundation\http\MIDdleware\CheckForMaintenanceMode','Illuminate\cookie\MIDdleware\Encryptcookies','Illuminate\cookie\MIDdleware\AddQueuedcookiesToResponse','Illuminate\Session\MIDdleware\StartSession','Illuminate\VIEw\MIDdleware\ShareErrorsFromSession','App\http\MIDdleware\VerifyCsrftoken',]; /** * The application's route mIDdleware. * * @var array */ protected $routeMIDdleware = [ 'test'=> 'App\http\MIDdleware\Test','auth' => 'App\http\MIDdleware\Authenticate','auth.basic' => 'Illuminate\Auth\MIDdleware\AuthenticateWithBasicAuth','guest' => 'App\http\MIDdleware\RedirectIfAuthenticated',];}@H_404_19@ 这是我的RouteServiceProvIDer.PHP
<?PHP namespace App\ProvIDers;use Illuminate\Routing\Router;use Illuminate\http\Request;use Illuminate\Foundation\Support\ProvIDers\RouteServiceProvIDer as ServiceProvIDer;class RouteServiceProvIDer extends ServiceProvIDer { /** * This namespace is applIEd to the controller routes in your routes file. * * In addition,it is set as the URL generator's root namespace. * * @var string */ protected $namespace = 'App\http\Controllers'; /** * define your route model bindings,pattern filters,etc. * * @param \Illuminate\Routing\Router $router * @return voID */ public function boot(Router $router) { parent::boot($router); // } /** * define the routes for the application. * * @param \Illuminate\Routing\Router $router * @return voID */ public function map(Router $router,Request $request) { $locale = $request->segment(1); $this->app->setLocale($locale); $router->group(['namespace' => $this->namespace,'prefix' => $locale],function($router) { require app_path('http/routes.PHP'); }); } }@H_404_19@ 我不知道如何将此教程集成到此默认登录系统中.
提前致谢.
解决方法 前段时间我在给定的教程中像你一样苦苦挣扎.经过研究/搜索,我最终得到了这样的结果.请注意我仍在努力. 第1步:添加您的区域设置
在config / app.PHP中,在locales下面添加skip_locals行
‘locales’=> [‘en’=> ‘英语’,’sv’=> ‘瑞典’],
‘skip_locales’=> [ ‘管理员’,‘AUTH’,‘等’],
第2步:为您的路线添加前缀
将map方法更改为以下内容
public function map(Router $router,Request $request){ $locale = $request->segment(1); $this->app->setLocale($locale); $skipLocales = $this->app->config->get('app.skip_locales'); // If the locale is added to skip_locales array continue without locale if (in_array($locale,$skipLocales)) { $router->group(['namespace' => $this->namespace],function($router) { require app_path('http/routes.PHP'); }); } else { $router->group(['namespace' => $this->namespace,function($router) { require app_path('http/routes.PHP'); }); }}@H_404_19@ 第3步:创建语言中间件
用这个更改内容
<?PHP namespace App\http\MIDdleware;use Closure;use Illuminate\Routing\Redirector;use Illuminate\http\Request;use Illuminate\Foundation\Application;use Illuminate\Contracts\Routing\MIDdleware;class Language implements MIDdleware{ public function __construct(Application $app,Redirector $redirector,Request $request) { $this->app = $app; $this->redirector = $redirector; $this->request = $request; } /** * Handle an incoming request. * * @param \Illuminate\http\Request $request * @param \Closure $next * @return mixed */ public function handle($request,Closure $next) { // Make sure the current local exists $locale = $request->segment(1); // If the locale is added to to skip_locales array continue without locale if (in_array($locale,$this->app->config->get('app.skip_locales'))) { return $next($request); } else { // If the locale does not exist in the locales array continue with the fallback_locale if (! array_key_exists($locale,$this->app->config->get('app.locales'))) { $segments = $request->segments(); array_unshift($segments,$this->app->config->get('app.fallback_locale')); // $segments[0] = $this->app->config->get('app.fallback_locale'); return $this->redirector->to(implode('/',$segments)); } } $this->app->setLocale($locale); return $next($request); }}@H_404_19@ 希望这会有所帮助!
总结 以上是内存溢出为你收集整理的php – Laravel 5多语言支持全部内容,希望文章能够帮你解决php – Laravel 5多语言支持所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)