我的观点中有一个刀片,看起来像这样:
@if (App::getLocale() == 'de')
<a href="/en/dashboard">
<i class="fa fa-language">ENGLISH</i>
</a>
@elseif (App::getLocale() == 'en')
<a href="/de/dashboard">
<i class="fa fa-language">GERMAN</i>
</a>
@endif
这会创建一个按钮,允许我切换到另一种语言。
嗯......网址也可以是其中之一:
/en/settings
/en/logbook
我想,按钮会重定向到同一页面,但是使用不同的语言:
使用{{ Request::url() }}
我能够获取当前网址,但现在使用此网址的最佳方式/解决方案只是使用不同的区域设置?
{{ Request::url() }}
例如包含/en/dashboard
,我现在需要/de/dashboard
。
是否存在任何Laravel功能,或者我是否需要使用PHP编写此代码...刀片?
答案 0 :(得分:3)
我在大约2年前写过这个小帮手功能。当您传递$locale
变量并将其添加到网址的第一个分段时,它会很有效。
public static function getLocaleChangerURL($locale){
$uri = $_SERVER['REQUEST_URI'];
$uri = explode('/', $uri);
unset($uri[0]);
unset($uri[1]);
$url = url($locale);
foreach($uri as $u){
$url .= '/'.$u;
}
return $url;
}
答案 1 :(得分:2)
我更喜欢这种方式。
public static function getLocaleChangerURL($locale)
{
$uri = request()->segments();
$uri[0] = $locale;
return implode($uri, '/');
}