Laravel中的本地化路线麻烦吗?

时间:2019-05-23 20:24:09

标签: laravel url routes localization

我对路线有一些疑问。

在我的应用中,我已经为相同的页面(例如,例如)

"domain.com/en/giveaway"

"domain.com/es/sorteo"

我的lang.routes文件就像

lang.en.routes

return [
         'giveaway' => 'giveaway'
]

lang.es.routes

return [
         'giveaway' => 'sorteo'
]

我的route.web文件也很

$locale = Request::segment(1);

if (in_array($locale, config('app.languages'))) {

   app()->setLocale($locale);

} else {

  app()->setLocale('en');
  $locale = '';

}



$l = app()->getLocale();

$lang = [
           'giveaway' => __('routes.giveaway', [], $l),
];

Route::group(['prefix' => $locale], function () use ($lang) {

     Route::get($lang['giveaway'], "Auth\GiveawayController@index")->name('giveaway');

});

这将在我的刀片上正常工作。当我打电话

route('giveaway')


//if app Locale is en returns domain.com/en/giveaway
//if app Locale is es returns domain.com/es/sorteo

这里没问题。

但是我的问题是

我如何显示Google备用hreflang?

在启用应用语言环境后,如何访问domain.com/es/sorteo网址?

有什么主意吗?

我想像刀片一样

route(Request::route()->getName(),[],'es'); //domain.com/es/sorteo
route(Request::route()->getName(),[],'es'); //domain.com/en/giveaway

我尝试过

$oldLocale = app()->getLocale();
app()->setLocale('en');

route(Request::route()->getName(),[],'es');

app()->setLocale($oldLocale);

但是不起作用...

我认为在route.web文件中更改页面加载和语言环境之前处理的路由。

如果我在中间件而不是route.web文件中更改应用程序语言环境,则不会影响路由。路由始终返回默认语言。

我在堆.....有办法吗??????

0 个答案:

没有答案