@extends('layouts.app') @section('title', 'KOTSCH.TECH | Apps, Tools, Webdesign & IT von Arthur Kotsch') @section('meta_description', 'Ein Name, acht Welten: iOS- & Mac-Apps, Windows-Programme, ' . $webtoolsCount . ' Web-Tools, Shop, Webdesign, News und IT-Hilfe von Arthur Kotsch.') @php use App\Support\SubdomainRegistry; $registry = new SubdomainRegistry(); // Tester wird NICHT als eigenes Welt-Band auf der Startseite gezeigt (nur im Header // bei den Software-Bereichen); noindex-Bereiche ebenfalls raus. $worlds = collect($registry->subdomains()) ->reject(fn ($a) => !empty($a['noindex']) || !empty($a['footer_only']) || ($a['key'] ?? '') === 'tester') ->values(); $icons = [ 'ios' => 'fa-apple', 'windows' => 'fa-windows', 'android' => 'fa-android', 'webtools' => 'fa-screwdriver-wrench', 'shop' => 'fa-bag-shopping', 'hosting' => 'fa-server', 'news' => 'fa-newspaper', 'it-hilfe' => 'fa-life-ring', 'webdesign' => 'fa-compass-drafting', ]; $brands = ['ios', 'windows', 'android']; $count = $worlds->count(); // Live-Anzahl der verfügbaren Web-Tools (aktualisiert sich automatisch mit der Tool-Liste). $toolCount = $webtoolsCount; // geteilte Quelle aus dem View-Composer (AppServiceProvider) $points = [ 'ios' => ['13 Apps im App Store', 'iPhone · iPad · Mac', 'Regelmäßige Updates'], 'windows' => ['9 Programme', 'Cleaner · Commander · Notes', 'Direkt-Download'], 'android' => ['Native Apps', 'In Entwicklung', 'Bald im Play Store'], 'webtools' => [$toolCount . ' Tools', 'Ohne Login nutzbar', 'Vieles lokal im Browser'], 'shop' => ['Digitale Produkte', 'Sofort-Download', 'Sichere Zahlung'], 'hosting' => ['Managed Webhosting', 'vServer / VPS', 'DSGVO-konform'], 'news' => ['Ratgeber & Tipps', 'Verständlich erklärt', 'Regelmäßig Neues'], 'it-hilfe' => ['Vor-Ort & Remote', 'Keine Lösung = kein Preis', 'PC · Handy · WLAN'], 'webdesign' => ['Studio & Vorlagen', '20 Branchen-Demos', 'Modernes Webdesign'], ]; $vrev = '?v=3'; // Cache-Buster für die Videos/Poster // iOS-Sektion: echte, immer aktuelle Apps + Updates (live aus dem App Store, gecacht) $iosApps = rescue(fn () => app(\App\Services\AppStoreService::class)->apps(), collect()); $iosCount = $iosApps->count(); $appCount = $iosCount ?: 19; // Live-Zahl; Fallback falls App-Store-Abruf scheitert $iosRecent = $iosApps->sortByDesc('updated')->take(4)->values(); // Anzeige-Sprache (siehe Apple-Views): request() bleibt der äußere Request, // daher liefert segment(1) auch beim internen /en-Dispatch korrekt 'en'. $en = in_array(request()->segment(1), ['de', 'en'], true) ? request()->segment(1) === 'en' : false; $tr = fn ($de, $enText) => $en ? $enText : $de; @endphp @section('content') {{-- Genau eine semantische H1 für die Startseite (P1-5). Visuell versteckt, da das Design mit den Welt-Bändern startet; für SEO/Screenreader voll wirksam. --}}

{{ $tr('KOTSCH.TECH — Apps, Tools, Webdesign & IT von Arthur Kotsch', 'KOTSCH.TECH — Apps, tools, web design & IT by Arthur Kotsch') }}

@foreach($worlds as $i => $t) @php $ic = $icons[$t['key']] ?? 'fa-cube'; $isBrand = in_array($t['key'], $brands, true); @endphp
@if($t['key'] === 'ios')
{{ $tr('Welt', 'World') }} {{ $i + 1 }} / {{ $count }}@if($iosCount) · {{ $iosCount }} {{ $tr('Apps live', 'apps live') }}@endif

{{ $t['label'] }}

{{ $tr('Apps für iPhone, iPad & Mac — automatisch aktuell aus dem App Store.', 'Apps for iPhone, iPad & Mac — always up to date from the App Store.') }}

@if($iosRecent->isNotEmpty()) @endif {{ $tr('Alle Apps ansehen', 'View all apps') }}
@else
{{ $tr('Welt', 'World') }} {{ $i + 1 }} / {{ $count }}

{{ $t['label'] }}

{{ $t['tagline'] }}

    @foreach(($points[$t['key']] ?? []) as $p)
  • {{ $p }}
  • @endforeach
{{ $tr('Entdecken', 'Explore') }}
@endif
@endforeach
@endsection