2016-06-16 4 views
0

Я хочу повторить текущий набор локаль в моем теге HTML, используя лезвие:Как эхо браузера локаль в Laravel 5.2

<html lang="{{ $locale }}"></html> 

Я новичок в Laravel 5 и мне было интересно, как это сделать.

+0

Если вы хотите определить локаль пользователя, см. Http://php.net/manual/en/locale.acceptfromhttp.php. Просто знайте, что вы не всегда можете положиться на это. – jszobody

+0

Вы имеете в виду локаль, установленную в вашем приложении laravel? –

+0

На данный момент я просто хочу знать язык браузера, но теперь я думаю, что это также будет полезно узнать о приложении laravel –

ответ

1

Если вы просите локали, установленной в браузере клиента, вы можете использовать request()->server('HTTP_ACCEPT_LANGUAGE'), чтобы получить их.

И если вы просите локали, установленной в приложении Laravel, вы можете получить его, как это: config()->get('locale')

И если вы хотите, чтобы получить имя шаблона в вашем лезвии Laravel, просто использовать, как это:

// allow $view_name in views 
View::composer('*', function ($view) { 

    View::share('view_name', $view->getName()); 

}); 
+0

Спасибо! Но что такое лучший класс для ввода кода? AppServiceProvider -> загрузка? Или есть лучший класс в Ларавеле? –

+0

Согласно документации Laravel, вы можете регистрировать композиторы с помощью отдельного поставщика услуг. Подробнее: https://laravel.com/docs/5.2/views#view-composers –

0

В дополнение к тому, что @jszobody просто сказано выше, вы также можете использовать javascript и jstz package, чтобы найти их локаль. Предполагая, что вы JQuery установили, что ваш код может выглядеть следующим образом

<script> 
    $(function() { 
     $('html').attr('lang', jstz.determine().locale()); 
    } 
</script> 
Смежные вопросы