Merge remote-tracking branch 'origin/hotfix' into develop

This commit is contained in:
Vincent BRIDIER 2022-09-22 13:41:11 +02:00
commit 045dbddaa3
No known key found for this signature in database
GPG key ID: 8571BFA20420D512
2 changed files with 39 additions and 32 deletions

View file

@ -5,17 +5,11 @@ namespace App\Http\Middleware;
use Closure;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Cookie;
use Illuminate\Support\Facades\Route;
use Illuminate\Support\Facades\View;
class LangCheck
{
/**
* The available languages.
*
* @var array
*/
protected $langs = ['fr','en','es'];
/**
* Handle an incoming request.
*
@ -27,6 +21,8 @@ class LangCheck
{
$routName = $request->route()->getName();
$routeParams = Route::current()->parameters();
if (preg_match('/^bo\./', $routName)) {
// Back office.
if ($request->lang) {
@ -39,30 +35,34 @@ class LangCheck
}
} else {
// FRONT.
if (preg_match('/^(en|es)\./', $routName)) {
// From front use named routes.
$langset = $request->segment(1);
// phpcs:disable
$langset = 'fr';
$this->saveUserLocale($langset, $request);
// TODO : Reactivate below when activating langs
// if (preg_match('/^(' . \implode("|", config('app.other_locales')) . ')\./', $routName)) {
// // From front use named routes.
// $langset = $request->segment(1);
$this->saveUserLocale($langset, $request);
} else {
// Not specified in route.
if ($this->checkFirstAccess($request)) {
$routNameEN = 'en.' . $routName;
$routNameES = 'es.' . $routName;
$sess_lang = $request->session()->get('lang', config('app.locale'));
switch ($sess_lang) {
case 'en':
return redirect()->route($routNameEN);
case 'es':
return redirect()->route($routNameES);
}
}
// $this->saveUserLocale($langset, $request);
// } else {
// // Not specified in route.
// if ($this->checkFirstAccess($request)) {
// $routNameEN = 'en.' . $routName;
// $routNameES = 'es.' . $routName;
// $sess_lang = $request->session()->get('lang', config('app.locale'));
// switch ($sess_lang) {
// case 'en':
// return redirect()->route($routNameEN, $routeParams);
// case 'es':
// return redirect()->route($routNameES, $routeParams);
// }
// }
$langset = 'fr';
$this->saveUserLocale($langset, $request);
}//end if
// $langset = 'fr';
// $this->saveUserLocale($langset, $request);
// }//end if
}//end if
// phpcs:enable
@ -70,7 +70,7 @@ class LangCheck
app()->setLocale($sess_lang);
config(['app.locale' => $sess_lang]);
$routePrefixer = "";
if ($sess_lang != 'fr') {
if ($sess_lang != config('app.locale')) {
$routePrefixer = $sess_lang . '.';
}
View::share('routeprefixer', $routePrefixer);
@ -109,9 +109,9 @@ class LangCheck
if (is_null($fromC) || empty($fromC)) {
// Pas de cookie, recherche sur le navigateur.
$fromC = substr($request->server('HTTP_ACCEPT_LANGUAGE'), 0, 2);
if (!in_array($fromC, $this->langs)) {
// Default other languages to en.
$fromC = 'en';
if (!in_array($fromC, config('app.other_locales'))) {
// Default other languages to config('app.locale').
$fromC = config('app.locale');
}
}
$this->saveUserLocale($fromC, $request);

View file

@ -108,6 +108,13 @@ return [
'faker_locale' => 'fr_FR',
/**
* All locales
*/
'other_locales' => ['en', 'es'],
/*
|--------------------------------------------------------------------------
| Encryption Key