我试图弄清楚如何改变所选语言的标志。
在我的语言文件中,我有语言的翻译:
'english-short' => 'gb',
'arabic-short' => 'ar',
'french-short' => 'fr',
'russian-short' => 'ru',
'spanish-short' => 'es',
在我有语言开关的标题中,我有代码:
@if($locale == 'ar')
{{ trans('header.arabic-short') }}
@elseif($locale == 'ru')
{{ trans('header.russian-short') }}
@elseif($locale == 'fr')
{{ trans('header.french-short') }}
@elseif($locale == 'sp')
{{ trans('header.spanish-short') }}
@else
{{ trans('header.english-short') }}
@endif
现在我有这个要展示:<span class="flag-icon-1 flag-icon-{{$locale}}"></span>
但是我如何将span添加到if代码中。现在我有双GB(英语)的网页上。
我试过这个:
<span class="flag-icon-1 flag-icon-@if($locale == 'ar')
{{ trans('header.arabic-short') }}
@elseif($locale == 'ru')
{{ trans('header.russian-short') }}
@elseif($locale == 'fr')
{{ trans('header.french-short') }}
@elseif($locale == 'sp')
{{ trans('header.spanish-short') }}
@else
{{ trans('header.english-short') }}
@endif
</span>
但运气不好。
**更新:**我在commoncontroller.php中有
public function lang(){
$locale = session()->get('locale');
if($locale){
return $locale;
}else{
return $locale = 'en';
}
}
当我选择特定的语言时,我想我有:
<a href="{{url('lang/en')}}">
<span class="flag-icon-1 flag-icon-en"></span>
<span class="name">English</span>
</a>
正如我说的,我现在看到2种语言,我只想看到一个与flags.
它是@if($locale == 'ar')显示GB文本。
1条答案
按热度按时间bnl4lu3b1#
你是从控制器还是其他地方传入locale的吗?我使用过Laravel 8和9,大多数情况下不确定
$locale
是否可以通过这种方式访问。但是,您可以使用以下命令获取当前的locale:其次,您需要有一个中间件,当更改时,它将更新应用程序的语言环境。否则,无论你做什么,locale都不会改变。