Interior-Feinschliff: Hero-Slideshow, Lektorat, Rechtstexte, Aufräumen und Korrekturen 08.10.

Startseite und Heroes
- Hero-Slideshow (11 Motive inkl. Febrü) mit Infokarte, Laufzeit-Linie, größeren Klickflächen,
  Goldrahmen und mobiler Karte unter dem Bild; Zeile über der Überschrift, neue Vertrauenspunkte
- Hero-Stil auf Marken, Über uns und Kontakt übertragen, Breadcrumb entfernt
- Gründer-Leiste, Vision-Box auf Ocker, Showroom-Display in Box mit „Größer ansehen“/Vollbild
- Akzentfarbe #a8741f, größere Serif-Überschriften in der Interior-Welt
- Marken: Bildpause mit Zitat; Vereine aktualisiert und verlinkt

Inhalte
- Lektorat aller angezeigten Texte, /about-Korrekturen, Rechtstexte (DDG, TDDDG, Hosting Hetzner)
- Ablauf Maßanfertigung überall einheitlich, Magazin-Beitrag neu, alte Beiträge offline,
  deutsches Datum/Lesezeit, FAQ Projektausstattung, Otterpohl
- Referenzen-Seite per CMS-Schalter ausblendbar

CMS und Technik
- Tote Sektionen, Felder, Seiten und Komponenten entfernt und archiviert (dev/2026-08-28/archiv-*)
- Entwurf /entwurf, Farb-Schalter und /welcome entfernt; Test-Routen nur noch lokal
- Seitenbaum-Beschreibungen geprüft, fehlende CMS-Felder ergänzt, Markenliste aus „Kernmarken“
- Admin-Bildvorschauen repariert, verwendete Bilder in die Mediathek übernommen
- Seeder für das Deployment siehe dev/2026-08-28/entwicklungsplan.md

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Kevin Adametz 2026-10-08 14:00:15 +00:00
parent 4b07bbdcae
commit fcb10be120
406 changed files with 22549 additions and 3798 deletions

View file

@ -0,0 +1,85 @@
<?php
namespace Database\Seeders;
use Database\Seeders\Concerns\ReplacesCmsTexts;
use Illuminate\Database\Seeder;
/**
* Lektorat aller angezeigten Texte (06.10.2026, Nachtrag 22).
*
* Tauscht genau die Textstellen aus {@see self::REPLACEMENTS} – Tippfehler, gerade Anführungszeichen,
* Kommas, „…“ statt „...“, Otterpohl als vierte Kernmarke in Aufzählungen, „die Tischlerei Otterpohl“
* statt „unsere Tischlerei“ – in allen CMS-Sektionen
* (auch Rechtstexten), Marken und Magazinbeiträgen. Alles andere bleibt; steht eine Stelle nicht
* (mehr) drin, passiert dort nichts. Mehrfaches Ausführen ist unbedenklich. Die Lang-Dateien und
* Marken-Seeder tragen dieselben Korrekturen für frische Installationen.
*
* php artisan db:seed --class=ProofreadingCorrectionsSeeder
*/
class ProofreadingCorrectionsSeeder extends Seeder
{
use ReplacesCmsTexts;
/** @var array<string, string> alte Stelle → neue Stelle */
public const REPLACEMENTS = [
'Rotpunkt Küchen jetzt bei B2in Interior – jetzt Beratungstermin sichern' => 'Rotpunkt Küchen neu bei B2in Interior – jetzt Beratungstermin sichern',
'CABINET, Rotpunkt Küchen, Febrü und ein Netzwerk' => 'CABINET, Rotpunkt Küchen, Febrü, Otterpohl Möbelservice und ein Netzwerk',
'mit CABINET, Rotpunkt Küchen, Febrü und einem Netzwerk' => 'mit CABINET, Rotpunkt Küchen, Febrü, Otterpohl Möbelservice und einem Netzwerk',
'CABINET, Rotpunkt Küchen und Febrü –' => 'CABINET, Rotpunkt Küchen, Febrü und Otterpohl Möbelservice –',
'von der Montage über das Aufmaß bis zu' => 'vom Aufmaß über die Montage bis zu',
'"Meine Mission' => '„Meine Mission',
'Zuhause der Menschen."' => 'Zuhause der Menschen.“',
'Unser Kontakt-Nummer' => 'Unsere Telefonnummer',
'Unser Büro-Standort' => 'Unser Bürostandort',
'Ihre Nachricht...' => 'Ihre Nachricht …',
'Wird gesendet...' => 'Wird gesendet …',
'Bitte wählen...' => 'Bitte wählen …',
'Warum das Dubai Escrow-System' => 'Warum das Dubai-Escrow-System',
'einen der sichersten und transparentesten regulatorischen Rahmenwerke der Welt geschaffen, der Investorengelder' => 'eines der sichersten und transparentesten regulatorischen Rahmenwerke der Welt geschaffen, das Investorengelder',
'"Hidden Champions"' => '„Hidden Champions“',
'Diese Logistik macht den Standort unvergleichlich.' => 'Diese Anbindung macht den Standort unvergleichlich.',
'über Tausende Kilometer Entfernung' => 'aus Tausenden Kilometern Entfernung',
'die in Dubai florierende Umsätze generiert' => 'die in Dubai hohe Umsätze generiert',
'"Turnkey"' => '„Turnkey“',
'oft gesichert durch Zugänge zu deutschen' => 'oft gesichert durch Zugang zu deutschen',
'um sofortige Lösungen zu erzwingen' => 'um schnelle Lösungen zu erzwingen',
'("Hidden Gems")' => '(„Hidden Gems“)',
'Das Konzept "Local for Local"' => 'Das Konzept „Local for Local“',
'"Was ist heute in meiner Nähe verfügbar?"' => '„Was ist heute in meiner Nähe verfügbar?“',
'Support your Locals – Ein Gewinn' => 'Support your Locals – ein Gewinn',
'Das "David gegen Goliath"-Prinzip' => 'Das „David-gegen-Goliath“-Prinzip',
'der für einen Schrank zu schmal und für nichts zu breit ist' => 'der für einen Schrank zu schmal und zum Leerlassen zu breit ist',
'„Maß oder nicht"' => '„Maß oder nicht“',
'Registergericht: Amtsg.' => 'Registergericht: Amtsg.',
'Irland („Google")' => 'Irland („Google“)',
'von „http://" auf „https://" wechselt' => 'von „http://“ auf „https://“ wechselt',
'(„B2in", „wir", „uns")' => '(„B2in“, „wir“, „uns“)',
'(„Connecting Design and Property")' => '(„Connecting Design and Property“)',
'<strong>B2In GmbH</strong>' => '<strong>B2in GmbH</strong>',
'Unsere Aufgabe ist es herauszufinden,' => 'Unsere Aufgabe ist es, herauszufinden,',
'Für den Anfang reicht uns ein Bild und ein grobes Maß völlig aus.' => 'Für den Anfang reichen uns ein Bild und ein grobes Maß völlig aus.',
'vom durchdachten Home-Office' => 'vom durchdachten Homeoffice',
'Ob Home-Office oder ganze Büroetage' => 'Ob Homeoffice oder ganze Büroetage',
'ins Zuhause fügt statt es zu besetzen' => 'ins Zuhause fügt, statt es zu besetzen',
'Ruhe und Flexibilität sind planbar.' => 'Ruhe und Flexibilität sind planbar',
'erst, wenn Ihre Lieferung vollständig und unversehrt bei uns geprüft wurde' => 'erst, wenn Ihre Lieferung bei uns eingegangen und auf Vollständigkeit und Unversehrtheit geprüft ist',
'an ihre Grenzen kommen' => 'an ihre Grenzen stoßen',
'mit unserer Tischlerei, die auf Wunsch' => 'mit der Tischlerei Otterpohl, die auf Wunsch',
'Unsere Tischlerei baut auf und ergänzt' => 'Die Tischlerei Otterpohl baut auf und ergänzt',
];
/** @var array<string, string> ganze Werte, die nur als Ganzes getauscht werden (Leistungstitel) */
public const EXACT_VALUES = [
'Home-Office' => 'Homeoffice',
];
public function run(): void
{
$count = $this->replaceCmsTexts(self::REPLACEMENTS, self::EXACT_VALUES);
$this->command?->info($count > 0
? "Lektorat: {$count} Textstelle(n) korrigiert."
: 'Lektorat: bereits aktuell, nichts geändert.');
}
}