如何翻译 Laravel 中的路线?
How to translate routes in Laravel?
基于此 question 我正在尝试将 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();
});
});
通过单击 link 我在 url 中收到此错误:
http://mywebsite.dev/%7Brevelar_fotos%7D
而不是:
http://mywebsite.dev/photograph-development
这是我的 en/routes.php:
<?php
return array(
'revelar_fotos' => 'photograph-development',
);
这是我的 es/routes.php:
<?php
return array(
'revelar_fotos' => 'revelado-online',
);
为什么我返回这个错误?
我了解到您的问题在于生成 URL http://mywebsite.dev/%7Brevelar_fotos%7D
在问题中,您只描述了如何设置路由处理,这可能会奏效。然而,生成 link 本身是在其他地方完成的,在那里你还没有完成替换。
你一定是在生成 link 这样的东西
URL::to(trans("revelar_fotos"));
trans("revelar_fotos")
将为您提供正确的路径,URL::to()
生成完整的 link.
基于此 question 我正在尝试将 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();
});
});
通过单击 link 我在 url 中收到此错误:
http://mywebsite.dev/%7Brevelar_fotos%7D
而不是:
http://mywebsite.dev/photograph-development
这是我的 en/routes.php:
<?php
return array(
'revelar_fotos' => 'photograph-development',
);
这是我的 es/routes.php:
<?php
return array(
'revelar_fotos' => 'revelado-online',
);
为什么我返回这个错误?
我了解到您的问题在于生成 URL http://mywebsite.dev/%7Brevelar_fotos%7D
在问题中,您只描述了如何设置路由处理,这可能会奏效。然而,生成 link 本身是在其他地方完成的,在那里你还没有完成替换。
你一定是在生成 link 这样的东西
URL::to(trans("revelar_fotos"));
trans("revelar_fotos")
将为您提供正确的路径,URL::to()
生成完整的 link.