diff --git a/src/Http/Middleware/CP/Localize.php b/src/Http/Middleware/CP/Localize.php index 2a3e83c9b15..7f972b90fc3 100644 --- a/src/Http/Middleware/CP/Localize.php +++ b/src/Http/Middleware/CP/Localize.php @@ -4,6 +4,7 @@ use Closure; use Statamic\Facades\Preference; +use Statamic\Facades\Site; class Localize { @@ -11,9 +12,17 @@ public function handle($request, Closure $next) { $locale = Preference::get('locale') ?? app()->getLocale(); + if (! Preference::get('locale')) { + $locale = Site::selected()->locale(); + } + // Make locale config with dashes backwards compatible, as they should be underscores. $locale = str_replace('-', '_', $locale); + if (str_contains($locale, '_')) { + $locale = strstr($locale, '_', true); + } + app()->setLocale($locale); return $next($request);