Основываясь на этом вопрос Я пытаюсь перевести маршруты в Laravel 4.2 на английский и испанский.
Это мой код app / rout.php:
<?php/*Set up locale and locale_prefix if other language is selected*/
if (in_array(Request::segment(1), Config::get('app.web_config.alt_langs'))) {
App::setLocale(Request::segment(1));
Config::set('app.web_config.locale_prefix', Request::segment(1));
}foreach(Lang::get('routes') as $k => $v) {
Route::pattern($k, $v);
}
Route::group(array('prefix' => Config::get('app.web_config.locale_prefix')), function()
{
Route::get('/{revelar_fotos}/',['as' => 'revelado_online', 'uses' => 'WebController@reveladoOnline'], function(){
return 'pages.revelado_online'.App::getLocale();
});
});
При нажатии на ссылку я получаю эту ошибку в URL:
http://mywebsite.dev/%7Brevelar_fotos%7D
Вместо:
http://mywebsite.dev/photograph-development
Это мой en / rout.php:
<?php
return array(
'revelar_fotos' => 'photograph-development',
);
А это мой es / rout.php:
<?php
return array(
'revelar_fotos' => 'revelado-online',
);
Почему я вернул эту ошибку?
Я понимаю, что у вас проблема с генерацией URL http://mywebsite.dev/%7Brevelar_fotos%7D
В этом вопросе вы только описали, как вы настроили обработку маршрутизации, и это может сработать. Однако создание самой ссылки выполняется где-то еще, и там вы не сделали замены.
Вы должны генерировать ссылку примерно так
URL::to(trans("revelar_fotos"));
trans("revelar_fotos")
даст вам правильный путь и URL::to()
генерирует полную ссылку.
Других решений пока нет …