Files
einundzwanzig-app/app/Http/Middleware/DomainMiddleware.php
HolgerHatGarKeineNode 6f7ee806ae 🌐 Introduce dynamic domain-based locale and country handling
- Added `DomainMiddleware` to dynamically set locale, language-country session, and app name based on domain.
- Updated views and components to leverage `lang_country` session for language and region-specific content.
- Enhanced country parameter retrieval with `config('app.domain_country')` as fallback.
- Refined language filtering by scanning available language files dynamically.
- Added language-specific assets and translations (`nl.json`, `es.json`) with improved language-region associations.
- Updated `app-logo-icon` to display region-specific images or default SVGs.
- Improved views with cleaner, dynamic rendering and session-aware functionalities.
2025-11-23 20:45:29 +01:00

40 lines
1.1 KiB
PHP

<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\App;
use Symfony\Component\HttpFoundation\Response;
class DomainMiddleware
{
public function handle(Request $request, Closure $next): Response
{
$domain = $request->getHost(); // Erkennt die aktuelle Domain (via CNAME)
// domains
$domainArray = [
'portal.eenentwintig.net' => [
'locale' => 'nl',
'lang_country' => 'nl-NL',
'app_name' => 'EENENTWINTIG Portaal',
],
];
// App-Locale dynamisch setzen
if (isset($domainArray[$domain]['locale'])) {
session([
'lang_country' => $domainArray[$domain]['lang_country'],
]);
config([
'app.name' => $domainArray[$domain]['app_name'],
'app.domain_country' => $domainArray[$domain]['locale'],
]);
App::setLocale($domainArray[$domain]['locale']);
}
return $next($request);
}
}