路线laravel翻译

时间:2018-06-11 13:21:24

标签: laravel translation laravel-5.6

经过大量测试和搜索后,我找不到解决方案。

我的问题是,我有西班牙语的路线'/ services','/ servicios'。

如果我的网站是英文的,所有文本都用英文正确显示,同样用西班牙语显示。但问题出在文本链接上,只出现在默认语言环境中。

在routes / web.php中:

Route::get(trans('rutas.servicios'), 'ServiceController@index')->name('servicios')

文件lang / es / rutas.php:

return [
   'servicios' => '/servicios',
];

文件lang / en / rutas.php:

return [
   'servicios' => '/services',
];

并链接html:

<a href="{‌{ route('servicios') }}">@lang('menus.servicios')</a> 

我的目标是在不使用laravel前缀的情况下使用已翻译的网址。也就是说:

https://www.myweb.com/services  ~ english
https://www.myweb.com/servicios ~ spanish

共享相同的路径控制器。

有任何帮助吗?非常感谢你的时间!

使用解决方案进行编辑:

我发现laravel在选择语言之前执行路线映射。所以我做的是在此之前设置语言,但会话和cookie变量在此之后加载。但我终于发现缓存变量满足了我的需求。

在RouteServiceProvider.php的函数map()顶部:

App::setLocale(Cache::get('locale'));

存储所选的区域设置:

Cache::put('locale', $locale, $minutes);

0 个答案:

没有答案