如何在Laravel 5.3中获取视图中的当前区域设置

Fah*_*han 13 laravel blade laravel-blade laravel-5.3

我正在制作一个双语应用程序.我为每个使用相同的路由,但我对两种语言使用不同的视图.每当我想重定向到我想要通过的路线时{{ route('test.route', 'en') }}.在我传递的地方en,我想从视图中获取当前的语言环境值,然后将其传递给路径.请帮忙.

Aru*_*ode 29

试试这个.它将在您的应用程序中设置区域设置

Config::get('app.locale')
Run Code Online (Sandbox Code Playgroud)

编辑:

要在刀片中使用此功能,请使用以下方法,以回显刀片中的当前区域设置.

{{ Config::get('app.locale') }}
Run Code Online (Sandbox Code Playgroud)

如果你想在它周围的刀片中做一个if条件,它会变成,

   @if ( Config::get('app.locale') == 'en')

   {{ 'Current Language is English' }}

   @elseif ( Config::get('app.locale') == 'ru' )

   {{ 'Current Language is Russian' }}

   @endif
Run Code Online (Sandbox Code Playgroud)

要获取当前的区域设置,

app()->getLocale()
Run Code Online (Sandbox Code Playgroud)

  • 这将获取可能与当前语言环境不同的配置语言环境。要获取当前语言环境,您应该使用`App::getLocale()` 或`App::isLocale('...')`。[本地化](https://laravel.com/docs/5.6/localization#introduction)。你也可以使用`app()->getLocale()`,它在Blade中就是`{{ app()->getLocale() }}`。 (2认同)

ras*_*dcs 5

首先创建一个区域设置路由和控制器:

Route::get('/locale/{lang}', 'LocaleController@setLocale')->name('locale');

class LocaleController extends Controller
{
    public function setLocale($locale)
    {
        if (array_key_exists($locale, Config::get('languages'))) 
        {
            Session::put('app_locale', $locale);
        }
        return redirect()->back();
    }
}
Run Code Online (Sandbox Code Playgroud)

现在您可以在每个页面中轻松查看:

  $locale = app()->getLocale();
  $version = $locale == 'en' ? $locale . 'English' : 'Bangla';
Run Code Online (Sandbox Code Playgroud)