Laravel上的本地化URL问题

时间:2019-05-22 16:03:17

标签: php laravel routes localization

我对路线有一些疑问。

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

“ domain.com/en/giveaway”

“ domain.com/es/sorteo”

我的lang.routes文件就像

lang.en.routes

return [
         'giveaway' => 'giveaway'
       ]

lang.es.routes

return [
         'giveaway' => 'sorteo'
       ]

我的路线也一样

$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网址?

有什么主意吗?

我想像

<link rel="alternate" hreflang="en"
                  href="{{route(Request::route()->getName())->getLocalized('en')}}"/>  

  <link rel="alternate" hreflang="es"
                  href="{{route(Request::route()->getName())->getLocalized('es')}}"/>      

1 个答案:

答案 0 :(得分:1)

很抱歉,您之前的评论是我误解了这个问题。尝试这样的事情:

创建一个帮助文件并自动加载到composer.json中,该文件包含以下内容:

if(!function_exists("localroute")){
   function localroute($name, $locale){
       $old_locale = app()->getLocale();
       app()->setlocale($locale);
       $route = route($name);
       app()->setlocale($old_locale);
       return $route;
   }
}

然后只需调用localroute("giveaway")

相关问题