如何翻译Laravel的路线?

Fun*_*end 5 php multilingual routes laravel-4

基于这个问题,我试图用英语和西班牙语翻译Laravel 4.2中的路线.

这是我的app/routes.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();
    });

});
Run Code Online (Sandbox Code Playgroud)

通过点击链接,我在网址中收到此错误:

http://mywebsite.dev/%7Brevelar_fotos%7D
Run Code Online (Sandbox Code Playgroud)

代替:

http://mywebsite.dev/photograph-development

这是我的en/routes.php:

<?php

return array(

    'revelar_fotos' => 'photograph-development',
);
Run Code Online (Sandbox Code Playgroud)

这是我的es/routes.php:

<?php

return array(

    'revelar_fotos' => 'revelado-online',
);
Run Code Online (Sandbox Code Playgroud)

为什么我返回此错误?

Mar*_*ala 1

我知道您的问题在于生成 URLhttp://mywebsite.dev/%7Brevelar_fotos%7D

在问题中,您仅描述了如何设置路由处理,这可能会起作用。然而,生成链接本身是在其他地方完成的,并且在那里您没有完成替换。

您必须生成类似这样的链接

URL::to(trans("revelar_fotos"));
Run Code Online (Sandbox Code Playgroud)

trans("revelar_fotos")将为您提供正确的路径并URL::to() 生成完整的链接。