das marketing frontend wurde auf lokalisierte urls umgestellt.
This commit is contained in:
88
resources/views/errors/404.blade.php
Normal file
88
resources/views/errors/404.blade.php
Normal file
@@ -0,0 +1,88 @@
|
||||
<!doctype html>
|
||||
<html lang="{{ str_replace('_', '-', app()->getLocale()) }}">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>{{ __('marketing.not_found.title', [], app()->getLocale()) }} · Fotospiel</title>
|
||||
@vite(['resources/css/app.css'])
|
||||
</head>
|
||||
<body class="min-h-screen bg-gradient-to-br from-slate-900 via-gray-900 to-black text-white antialiased">
|
||||
@php
|
||||
$tips = trans('marketing.not_found.tips');
|
||||
if (! is_array($tips)) {
|
||||
$tips = [
|
||||
__('Prüfe die URL auf Tippfehler.', [], 'de'),
|
||||
];
|
||||
}
|
||||
@endphp
|
||||
|
||||
<main class="relative mx-auto flex min-h-screen max-w-5xl flex-col items-center justify-center px-6 py-16 text-center">
|
||||
<div class="pointer-events-none absolute inset-0">
|
||||
<div class="absolute -left-32 -top-32 h-96 w-96 rounded-full bg-pink-500/30 blur-3xl"></div>
|
||||
<div class="absolute right-0 top-1/3 h-80 w-80 rounded-full bg-purple-500/20 blur-3xl"></div>
|
||||
<div class="absolute bottom-0 left-1/2 h-72 w-72 -translate-x-1/2 rounded-full bg-blue-500/20 blur-3xl"></div>
|
||||
</div>
|
||||
|
||||
<section class="relative z-10 w-full space-y-8 rounded-3xl border border-white/10 bg-white/5 p-10 shadow-2xl shadow-black/40 backdrop-blur">
|
||||
<div class="inline-flex items-center gap-2 rounded-full border border-white/10 bg-white/5 px-4 py-2 text-xs font-semibold uppercase tracking-widest text-pink-200 shadow-lg shadow-pink-500/30">
|
||||
404 · {{ __('marketing.not_found.title') }}
|
||||
</div>
|
||||
|
||||
<h1 class="text-balance text-4xl font-bold leading-tight text-white sm:text-5xl md:text-6xl">
|
||||
{{ __('marketing.not_found.subtitle') }}
|
||||
</h1>
|
||||
|
||||
@if(request()->path())
|
||||
<p class="text-sm text-white/60">
|
||||
{{ __('marketing.not_found.requested_path_label') }}:
|
||||
<span class="font-mono">{{ request()->getRequestUri() }}</span>
|
||||
</p>
|
||||
@endif
|
||||
|
||||
<p class="mx-auto max-w-2xl text-lg text-white/70 sm:text-xl">
|
||||
{{ __('marketing.not_found.description') }}
|
||||
</p>
|
||||
|
||||
<div class="flex flex-col gap-6 rounded-3xl border border-white/10 bg-white/10 p-8 text-left shadow-lg shadow-black/30 backdrop-blur md:flex-row md:gap-8">
|
||||
<div class="md:w-1/3">
|
||||
<h2 class="text-lg font-semibold uppercase tracking-widest text-pink-200">
|
||||
{{ __('marketing.not_found.tip_heading') }}
|
||||
</h2>
|
||||
<div class="mt-4 h-1 w-16 rounded-full bg-pink-400"></div>
|
||||
</div>
|
||||
<ul class="space-y-3 text-base text-white/80 md:w-2/3">
|
||||
@foreach($tips as $index => $tip)
|
||||
<li class="flex items-start gap-3">
|
||||
<span class="mt-1 flex h-6 w-6 flex-none items-center justify-center rounded-full bg-white/10 text-xs font-semibold text-pink-200">
|
||||
{{ $index + 1 }}
|
||||
</span>
|
||||
<span>{{ $tip }}</span>
|
||||
</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="flex flex-col gap-3 sm:flex-row sm:justify-center">
|
||||
<a
|
||||
href="{{ route('marketing.home', ['locale' => app()->getLocale()]) }}"
|
||||
class="inline-flex items-center justify-center rounded-full bg-white px-6 py-3 font-medium text-gray-900 shadow-lg shadow-pink-500/30 transition hover:-translate-y-1 hover:bg-pink-100 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-white"
|
||||
>
|
||||
{{ __('marketing.not_found.cta_home') }}
|
||||
</a>
|
||||
<a
|
||||
href="{{ route('packages', ['locale' => app()->getLocale()]) }}"
|
||||
class="inline-flex items-center justify-center rounded-full border border-white/40 px-6 py-3 font-medium text-white transition hover:-translate-y-1 hover:border-white hover:bg-white/10 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-white"
|
||||
>
|
||||
{{ __('marketing.not_found.cta_packages') }}
|
||||
</a>
|
||||
<a
|
||||
href="{{ app()->getLocale() === 'en' ? route('marketing.contact', ['locale' => app()->getLocale()]) : route('kontakt', ['locale' => app()->getLocale()]) }}"
|
||||
class="inline-flex items-center justify-center rounded-full border border-transparent bg-gradient-to-r from-pink-500 to-purple-500 px-6 py-3 font-medium text-white shadow-lg shadow-pink-500/30 transition hover:-translate-y-1 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-white"
|
||||
>
|
||||
{{ __('marketing.not_found.cta_contact') }}
|
||||
</a>
|
||||
</div>
|
||||
</section>
|
||||
</main>
|
||||
</body>
|
||||
</html>
|
||||
@@ -6,7 +6,7 @@
|
||||
<h2 class="text-xl font-semibold mb-2">{{ __('legal.payments') }}</h2>
|
||||
<p class="mb-4">{{ __('legal.payments_desc') }} <a href="https://stripe.com/de/privacy" target="_blank" rel="noopener noreferrer">{{ __('legal.stripe_privacy') }}</a> {{ __('legal.and') }} <a href="https://www.paypal.com/de/webapps/mpp/ua/privacy-full" target="_blank" rel="noopener noreferrer">{{ __('legal.paypal_privacy') }}</a>.</p>
|
||||
<p class="mb-4">{{ __('legal.data_retention') }}</p>
|
||||
<p class="mb-4">{{ __('legal.rights') }} <a href="{{ route('kontakt') }}">{{ __('legal.contact') }}</a>.</p>
|
||||
<p class="mb-4">{{ __('legal.rights') }} <a href="{{ route('kontakt', ['locale' => app()->getLocale()]) }}">{{ __('legal.contact') }}</a>.</p>
|
||||
<p class="mb-4">{{ __('legal.cookies') }}</p>
|
||||
|
||||
<h2 class="text-xl font-semibold mb-2">{{ __('legal.personal_data') }}</h2>
|
||||
@@ -17,4 +17,4 @@
|
||||
|
||||
<h2 class="text-xl font-semibold mb-2">{{ __('legal.data_security') }}</h2>
|
||||
<p class="mb-4">{{ __('legal.data_security_desc') }}</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
<h2 class="text-xl font-semibold mb-2">{{ __('legal.payments') }}</h2>
|
||||
<p class="mb-4">{{ __('legal.payments_desc') }} <a href="https://stripe.com/de/privacy" target="_blank">{{ __('legal.stripe_privacy') }}</a> {{ __('legal.and') }} <a href="https://www.paypal.com/de/webapps/mpp/ua/privacy-full" target="_blank">{{ __('legal.paypal_privacy') }}</a>.</p>
|
||||
<p class="mb-4">{{ __('legal.data_retention') }}</p>
|
||||
<p class="mb-4">{{ __('legal.rights') }} <a href="{{ route('kontakt') }}">{{ __('legal.contact') }}</a>.</p>
|
||||
<p class="mb-4">{{ __('legal.rights') }} <a href="{{ route('kontakt', ['locale' => app()->getLocale()]) }}">{{ __('legal.contact') }}</a>.</p>
|
||||
<p class="mb-4">{{ __('legal.cookies') }}</p>
|
||||
|
||||
<h2 class="text-xl font-semibold mb-2">{{ __('legal.personal_data') }}</h2>
|
||||
@@ -23,4 +23,4 @@
|
||||
<h2 class="text-xl font-semibold mb-2">{{ __('legal.data_security') }}</h2>
|
||||
<p class="mb-4">{{ __('legal.data_security_desc') }}</p>
|
||||
</div>
|
||||
@endsection
|
||||
@endsection
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
{{ __('legal.company') }}<br>
|
||||
{{ __('legal.address') }}<br>
|
||||
{{ __('legal.representative') }}<br>
|
||||
{{ __('legal.contact') }}: <a href="{{ route('kontakt') }}">{{ __('legal.contact') }}</a>
|
||||
{{ __('legal.contact') }}: <a href="{{ route('kontakt', ['locale' => app()->getLocale()]) }}">{{ __('legal.contact') }}</a>
|
||||
</p>
|
||||
<p class="mb-4">{{ __('legal.vat_id') }}</p>
|
||||
<h2 class="text-xl font-semibold mb-2">{{ __('legal.monetization') }}</h2>
|
||||
@@ -18,4 +18,4 @@
|
||||
<p class="mb-4">{{ __('legal.register_court') }}</p>
|
||||
<p class="mb-4">{{ __('legal.commercial_register') }}</p>
|
||||
</div>
|
||||
@endsection
|
||||
@endsection
|
||||
|
||||
@@ -92,8 +92,8 @@
|
||||
</div>
|
||||
</div>
|
||||
@else
|
||||
<p class="text-center">{{ __('marketing.occasions.not_found') }} <a href="{{ route('marketing') }}">{{ __('nav.home') }}</a>.</p>
|
||||
<p class="text-center">{{ __('marketing.occasions.not_found') }} <a href="{{ route('marketing.home', ['locale' => app()->getLocale()]) }}">{{ __('nav.home') }}</a>.</p>
|
||||
@endif
|
||||
</div>
|
||||
</section>
|
||||
@endsection
|
||||
@endsection
|
||||
|
||||
@@ -1,29 +1,29 @@
|
||||
<header class="bg-white shadow-md sticky top-0 z-50">
|
||||
<div class="container mx-auto px-4 py-4 flex items-center justify-between">
|
||||
<div class="flex items-center space-x-2">
|
||||
<a href="{{ route('marketing') }}" class="text-2xl font-bold text-gray-900">Die Fotospiel.App</a>
|
||||
<a href="{{ route('marketing.home', ['locale' => app()->getLocale()]) }}" class="text-2xl font-bold text-gray-900">Die Fotospiel.App</a>
|
||||
<svg class="w-6 h-6 text-gray-600" fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M3 9a2 2 0 012-2h.93a2 2 0 001.664-.89l.812-1.22A2 2 0 0110.07 4h3.86a2 2 0 011.664.89l.812 1.22A2 2 0 0018.07 7H19a2 2 0 012 2v9a2 2 0 01-2 2H5a2 2 0 01-2-2V9z"></path>
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 13a3 3 0 11-6 0 3 3 0 016 0z"></path>
|
||||
</svg>
|
||||
</div>
|
||||
<nav class="hidden md:flex space-x-6 items-center">
|
||||
<a href="{{ route('marketing') }}#how-it-works" class="text-gray-600 hover:text-gray-900">{{ __('marketing.nav.how_it_works') }}</a>
|
||||
<a href="{{ route('marketing') }}#features" class="text-gray-600 hover:text-gray-900">{{ __('marketing.nav.features') }}</a>
|
||||
<a href="{{ route('marketing.home', ['locale' => app()->getLocale()]) }}#how-it-works" class="text-gray-600 hover:text-gray-900">{{ __('marketing.nav.how_it_works') }}</a>
|
||||
<a href="{{ route('marketing.home', ['locale' => app()->getLocale()]) }}#features" class="text-gray-600 hover:text-gray-900">{{ __('marketing.nav.features') }}</a>
|
||||
<div x-data="{ open: false }" @mouseenter="open = true" @mouseleave="open = false" @click.away="open = false" class="relative">
|
||||
<button class="text-gray-600 hover:text-gray-900" @click.stop="open = !open">{{ __('marketing.nav.occasions') }}</button>
|
||||
<div x-show="open" x-transition:enter="transition ease-out duration-200" x-transition:enter-start="opacity-0 transform scale-95" x-transition:enter-end="opacity-100 transform scale-100" x-transition:leave="transition ease-in duration-150" x-transition:leave-start="opacity-100 transform scale-100" x-transition:leave-end="opacity-0 transform scale-95" class="absolute top-full left-0 mt-2 bg-white border rounded shadow-lg z-10">
|
||||
<a href="{{ route('anlaesse.type', ['type' => 'hochzeit']) }}" class="block px-4 py-2 text-gray-600 hover:text-gray-900 hover:bg-gray-50 transition">{{ __('marketing.nav.occasions_types.weddings') }}</a>
|
||||
<a href="{{ route('anlaesse.type', ['type' => 'geburtstag']) }}" class="block px-4 py-2 text-gray-600 hover:text-gray-900 hover:bg-gray-50 transition">{{ __('marketing.nav.occasions_types.birthdays') }}</a>
|
||||
<a href="{{ route('anlaesse.type', ['type' => 'firmenevent']) }}" class="block px-4 py-2 text-gray-600 hover:text-gray-900 hover:bg-gray-50 transition">{{ __('marketing.nav.occasions_types.corporate') }}</a>
|
||||
<a href="{{ route('anlaesse.type', ['locale' => app()->getLocale(), 'type' => 'hochzeit']) }}" class="block px-4 py-2 text-gray-600 hover:text-gray-900 hover:bg-gray-50 transition">{{ __('marketing.nav.occasions_types.weddings') }}</a>
|
||||
<a href="{{ route('anlaesse.type', ['locale' => app()->getLocale(), 'type' => 'geburtstag']) }}" class="block px-4 py-2 text-gray-600 hover:text-gray-900 hover:bg-gray-50 transition">{{ __('marketing.nav.occasions_types.birthdays') }}</a>
|
||||
<a href="{{ route('anlaesse.type', ['locale' => app()->getLocale(), 'type' => 'firmenevent']) }}" class="block px-4 py-2 text-gray-600 hover:text-gray-900 hover:bg-gray-50 transition">{{ __('marketing.nav.occasions_types.corporate') }}</a>
|
||||
</div>
|
||||
</div>
|
||||
<a href="{{ route('blog') }}" class="text-gray-600 hover:text-gray-900">{{ __('marketing.nav.blog') }}</a>
|
||||
<a href="{{ route('packages') }}" class="text-gray-600 hover:text-gray-900">{{ __('marketing.nav.packages') }}</a>
|
||||
<a href="{{ route('kontakt') }}" class="text-gray-600 hover:text-gray-900">{{ __('marketing.nav.contact') }}</a>
|
||||
<a href="{{ route('packages') }}" class="bg-[#FFB6C1] text-white px-6 py-2 rounded-full font-semibold hover:bg-[#FF69B4] transition">{{ __('marketing.nav.discover_packages') }}</a>
|
||||
<a href="{{ route('blog', ['locale' => app()->getLocale()]) }}" class="text-gray-600 hover:text-gray-900">{{ __('marketing.nav.blog') }}</a>
|
||||
<a href="{{ route('packages', ['locale' => app()->getLocale()]) }}" class="text-gray-600 hover:text-gray-900">{{ __('marketing.nav.packages') }}</a>
|
||||
<a href="{{ route('kontakt', ['locale' => app()->getLocale()]) }}" class="text-gray-600 hover:text-gray-900">{{ __('marketing.nav.contact') }}</a>
|
||||
<a href="{{ route('packages', ['locale' => app()->getLocale()]) }}" class="bg-[#FFB6C1] text-white px-6 py-2 rounded-full font-semibold hover:bg-[#FF69B4] transition">{{ __('marketing.nav.discover_packages') }}</a>
|
||||
</nav>
|
||||
<!-- Mobile Menu Placeholder (Hamburger) -->
|
||||
<button class="md:hidden text-gray-600">☰</button>
|
||||
</div>
|
||||
</header>
|
||||
</header>
|
||||
|
||||
Reference in New Issue
Block a user