【发布时间】:2016-11-29 10:34:21
【问题描述】:
基于此 thread 我尝试为我的网站实现额外的英语语言,默认为法语并且不使用任何前缀,所以像www.website.com 这样的东西@ 切换到英语将是@ 987654323@,我想要联系页面的网址,例如英文版和法文版的www.website.com/en/contact 和www.website.com/contact。
我当前的 routes.php
if (Request::segment(1) == 'en') {
App::setLocale(Request::segment(1));
Config::set('app.locale_prefix', Request::segment(1));
}
else {
App::setLocale('fr');
Config::set('app.locale_prefix', '');
}
Route::group(array('prefix' => Config::get('app.locale_prefix')), function()
{
Route::get(
'/',
function () {
//return "main page - ".App::getLocale();
return view('index');
}
);
Route::get(
'/contact/',
function () {
return view('contact');
});
});
我的头文件中切换语言的标志图标是
@if (Lang::locale() == 'fr')
<a href="{{ url('/en/' . Request::segment(1)) }}"><img src="{{asset('images/GB.png')}}"></a>
@elseif (strcasecmp(Request::segment(1), 'en') == 0 && Request::segment(2) != NULL)
<a href="{{ url( Request::segment(2)) }}"><img src="{{asset('images/FR.png')}}"></a>
@else
<a href="{{ url( '/') }}"><img src="{{asset('images/FR.png')}}"></a>
@endif
以及我生成网址的方式
<a class="block-title" href="{{ (strcasecmp(Request::route()->getPrefix(), '/en') == 0) ? url('en/contact') : url('/contact') }}">CONTACT</a>
我想知道一种更简洁的方法来生成这些,以及如何让英文主页 url 成为 www.website.com/en/ 而不是 www.website.com/en
非常感谢!
【问题讨论】:
标签: php laravel laravel-5 localization routes