Локализованная проблема с URL на laravel - PullRequest
0 голосов
/ 22 мая 2019

У меня есть проблема с маршрутами.

В моем приложении локализованы URL-адреса для тех же страниц, что и для примера,

"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

Здесь нет проблем.

Но моя проблема в том,

Как мне показать альтернативный hreflang от Google?

Как получить доступ к URL-адресу domain.com/es/sorteo, если локаль приложения en?

Есть идеи?

Я хочу сделать это в клинке, как

<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 Ответ

1 голос
/ 23 мая 2019

Извините за предыдущий комментарий, я неправильно понял вопрос. Попробуйте что-то вроде этого:

Создайте вспомогательный файл и автозагрузку в 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").

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...