我使用Laravel 5.6并尝试找出翻译路线的最佳方法。
我使用顶级域名对区域设置进行排序,以便
mydomain.pt -> locale pt
mydomain.es -> locale es
mydomain.com -> locale en
我创建了一个中间件来处理这个
class Language
{
public function handle($request, Closure $next)
{
$url_array = explode('.', parse_url($request->url(), PHP_URL_HOST));
$top_domain = end($url_array);
if(!empty($top_domain)){
App::setLocale($top_domain);
}
}
}
这很正常,当我切换域时,各个文件中的翻译字符串都能正常工作。
但是,我希望能够出于搜索引擎优化的目的,拥有像这样的链接
mydomain.pt/dynamic/perto-de-mim
mydomain.es/dynamic/cerca-de-mi
mydomain.com/dynamic/near-me
在laravel中获得路线的最佳方法是什么
Route::get('{category}/near-me/', 'ServicesController@nearMe');
使用上面的所有示例?
谢谢
答案 0 :(得分:0)
Laravel允许您提供translation string:
/resources
/lang
/en
routes.json
/es
routes.json
在resources / lang / es / routes.json中:
{
"near-me": "cerca-de-mi"
}
你的路线变成了:
Route::get('{category}/' . __('routes.near-me') . '/', 'ServicesController@nearMe');
您可以在此处看到使用Laravel辅助方法 __()从xx / routes.json文件中检索转换。