2016-03-25 01:18:05 -07:00
< ? php
namespace App\Http\Middleware ;
2016-03-25 19:26:22 -07:00
use App\Models\Setting ;
2019-03-13 20:12:03 -07:00
use Closure ;
2023-12-19 09:43:22 -08:00
use \App\Helpers\Helper ;
2016-03-25 01:18:05 -07:00
class CheckLocale
{
2018-11-01 19:59:50 -07:00
/**
* Handle the locale for the user , default to settings otherwise .
*
* @ param \Illuminate\Http\Request $request
* @ param \Closure $next
* @ param string | null $guard
*
* @ return mixed
*/
2016-03-25 01:18:05 -07:00
public function handle ( $request , Closure $next , $guard = null )
{
2023-12-19 09:43:22 -08:00
// Default app settings from config
$language = config ( 'app.locale' );
2018-11-01 19:59:50 -07:00
if ( $settings = Setting :: getSettings ()) {
2023-12-19 09:43:22 -08:00
2016-05-14 15:05:28 -07:00
// User's preference
if (( $request -> user ()) && ( $request -> user () -> locale )) {
2023-12-19 09:43:22 -08:00
$language = $request -> user () -> locale ;
2016-03-25 01:18:05 -07:00
2018-11-01 19:59:50 -07:00
// App setting preference
} elseif ( $settings -> locale != '' ) {
2023-12-19 09:43:22 -08:00
$language = $settings -> locale ;
2016-05-14 15:05:28 -07:00
}
2023-12-19 09:43:22 -08:00
2016-03-25 01:18:05 -07:00
}
2016-05-14 15:05:28 -07:00
2023-12-19 12:34:45 -08:00
if ( config ( 'app.locale' ) != Helper :: mapLegacyLocale ( $language )) {
\Log :: warning ( 'Your current APP_LOCALE in your .env is set to "' . config ( 'app.locale' ) . '" and should be updated to be "' . Helper :: mapLegacyLocale ( $language ) . '" in ' . base_path () . '/.env. Translations may display unexpectedly until this is updated.' );
}
2023-12-19 09:43:22 -08:00
\App :: setLocale ( Helper :: mapLegacyLocale ( $language ));
2016-03-25 01:18:05 -07:00
return $next ( $request );
}
}