/**
* Sets the locale if it exists in the session or uses preferred or default locale
*
* @return void
*/
public function configureLocale()
{
$defaultLocale = static::getDefaultLocale();
// set fallback locale
\App('translator')->setFallback($defaultLocale);
// set main locale
\Request::setDefaultLocale($defaultLocale);
$sessionKey = static::getLocaleSessionKey();
$preferredLocale = \Request::getPreferredLanguage(static::getAllowedLocales());
\App::setLocale($sessionKey ? \Session::get($sessionKey, $preferredLocale) : $preferredLocale);
}