Immobilien site 11-05-2026
This commit is contained in:
parent
e198d842ce
commit
6799325f71
28 changed files with 16189 additions and 809 deletions
167
dev/immobilien 07-05-2026/inject-ui-block.php
Normal file
167
dev/immobilien 07-05-2026/inject-ui-block.php
Normal file
|
|
@ -0,0 +1,167 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* Insert (or refresh) the `ui` block into the Azizi real-estate language
|
||||
* files. The block holds every German UI label that previously lived
|
||||
* hardcoded inside the dev Blade templates.
|
||||
*/
|
||||
$files = [
|
||||
__DIR__.'/../../resources/lang/de/immobilien-azizi.json',
|
||||
__DIR__.'/../../resources/lang/en/immobilien-azizi.json',
|
||||
];
|
||||
|
||||
$ui = [
|
||||
'intro_eyebrow' => 'Kuratiert statt katalogisiert',
|
||||
'featured_label' => 'Headline-Projekt',
|
||||
'featured_marcel_heading' => 'Marcels Einschätzung',
|
||||
'featured_stat_price' => 'Preis',
|
||||
'featured_stat_handover' => 'Übergabe',
|
||||
'featured_cta_detail' => ':title im Detail ansehen',
|
||||
'featured_default_alt' => 'Headline-Projekt',
|
||||
'districts_eyebrow' => 'Stadtteil-Kontext',
|
||||
'grid_eyebrow' => 'Projektgrid',
|
||||
'grid_title' => ':count Projekte im Vergleich',
|
||||
'grid_intro' => 'Das Headline-Projekt steht bewusst als Flaggschiff oben. Die übrigen Adressen lassen sich nach Käuferlogik oder nach Stadtteil sortieren - so finden Sie schnell die Auswahl, die zu Ihrer Strategie passt.',
|
||||
'filter_categories' => 'Kategorien',
|
||||
'filter_districts' => 'Stadtteile',
|
||||
'filter_summary' => ':categories Kategorien · :districts Stadtteil-Cluster',
|
||||
'filter_count' => ':count Projekte',
|
||||
'card_label_buyer' => 'Geeignet für',
|
||||
'card_label_price' => 'Preis / Verfügbarkeit',
|
||||
'card_label_unit' => 'Typ',
|
||||
'card_cta' => 'Details ansehen',
|
||||
'card_aria_open' => 'Details zu :title öffnen',
|
||||
'back_to_top' => 'Zurück zum Anfang der Projektübersicht',
|
||||
'back_to_top_short' => 'Zurück zum Anfang',
|
||||
'mindset_positive_pill' => 'Passt gut',
|
||||
'mindset_negative_pill' => 'Lieber vorsichtig',
|
||||
'mindset_positive_title' => 'Dubai als Wachstumsentscheidung',
|
||||
'mindset_negative_title' => 'Dubai braucht Entscheidungskraft',
|
||||
'sidebar' => [
|
||||
'toggle_open' => 'Sektionsübersicht öffnen',
|
||||
'toggle_close' => 'Sektionsübersicht schließen',
|
||||
'progress_label' => 'Lesefortschritt',
|
||||
'sections' => [
|
||||
['id' => 'intro', 'label' => 'Marcels Einordnung'],
|
||||
['id' => 'featured', 'label' => 'Headline-Projekt'],
|
||||
['id' => 'stadtteile', 'label' => 'Stadtteile'],
|
||||
['id' => 'projekte', 'label' => 'Projekte'],
|
||||
['id' => 'markt', 'label' => 'Marktkontext'],
|
||||
['id' => 'prozess', 'label' => 'Kaufprozess'],
|
||||
['id' => 'mindset', 'label' => 'Mindset-Check'],
|
||||
['id' => 'einrichtung', 'label' => 'Einrichtung'],
|
||||
['id' => 'kontakt', 'label' => 'Kontakt'],
|
||||
],
|
||||
],
|
||||
'modal' => [
|
||||
'header' => 'Projektdetails',
|
||||
'close' => 'Projektfenster schließen',
|
||||
'stat_price' => 'Preis / Verfügbarkeit',
|
||||
'stat_handover' => 'Übergabe',
|
||||
'stat_units' => 'Einheiten',
|
||||
'section_investment' => 'Investment Case',
|
||||
'official_description_label' => 'Aus dem offiziellen Azizi-Exposé (übersetzt)',
|
||||
'gallery_heading' => 'Galerie',
|
||||
'gallery_count_word' => 'Bilder',
|
||||
'gallery_image_word' => 'Galerie Bild',
|
||||
'gallery_zoom_suffix' => 'groß ansehen',
|
||||
'for_whom' => 'Für wen eignet sich das Projekt?',
|
||||
'hard_facts' => 'Harte Punkte für die Einordnung',
|
||||
'source_heading' => 'Projektquelle',
|
||||
'source_text' => 'Offizieller Azizi-Link als Projektanker. Preise und Verfügbarkeit werden vor Beratung aktuell geprüft.',
|
||||
'azizi_link' => 'Azizi-Projektseite',
|
||||
'seo_link' => 'SEO-Detailseite öffnen',
|
||||
'next_step_heading' => 'Nächster Schritt',
|
||||
'next_step_text' => 'Marcel prüft aktive Einheiten, aktuellen Zahlungsplan, Floor Plans und ob Resale oder Off-Plan für Ihre Strategie sinnvoller ist. Nutzen Sie dafür die Anfrage direkt unterhalb dieser Detailansicht.',
|
||||
'request_eyebrow' => 'Direkte Anfrage',
|
||||
'request_heading' => 'Verfügbarkeit prüfen lassen',
|
||||
'request_text' => 'Senden Sie Ihre Anfrage direkt zu diesem Projekt. Wir prüfen Verfügbarkeit, Zahlungsplan und passende Einheit.',
|
||||
'request_submit' => 'Anfrage absenden',
|
||||
],
|
||||
'lightbox' => [
|
||||
'label' => 'Galeriebild groß ansehen',
|
||||
'close' => 'Galerie schließen',
|
||||
'previous' => 'Vorheriges Bild',
|
||||
'next' => 'Nächstes Bild',
|
||||
],
|
||||
'show_page' => [
|
||||
'default_meta_description' => 'Kuratierte Dubai-Immobilie von Azizi Developments.',
|
||||
'default_title' => 'Projekt',
|
||||
'back_to_overview' => 'Zurück zur Projektübersicht',
|
||||
'stat_price' => 'Preis / Verfügbarkeit',
|
||||
'stat_price_fallback' => 'Auf Anfrage',
|
||||
'stat_handover' => 'Übergabe',
|
||||
'stat_handover_fallback' => 'Phase abhängig',
|
||||
'stat_units' => 'Einheiten',
|
||||
'stat_units_fallback' => 'Aktuell prüfen',
|
||||
'stat_data_confidence' => 'Datenstand',
|
||||
'stat_data_confidence_fallback' => 'Prüfen',
|
||||
'section_investment' => 'Investment Case',
|
||||
'for_whom' => 'Für wen eignet sich das Projekt?',
|
||||
'hard_facts' => 'Harte Punkte für die Einordnung',
|
||||
'source_heading' => 'Projektquelle',
|
||||
'source_text' => 'Offizieller Azizi-Link als Projektanker. Preise und Verfügbarkeit werden vor Beratung aktuell geprüft.',
|
||||
'azizi_link' => 'Azizi-Projektseite',
|
||||
'next_step_heading' => 'Nächster Schritt',
|
||||
'next_step_text' => 'Marcel prüft aktive Einheiten, aktuellen Zahlungsplan, Floor Plans und ob Resale oder Off-Plan für Ihre Strategie sinnvoller ist.',
|
||||
'request_cta' => 'Verfügbarkeit anfragen',
|
||||
'process_title' => 'Wie B2in dieses Projekt prüft',
|
||||
'process_intro' => 'Diese Preview trennt redaktionelle Einordnung von beweglichen Vertriebsdaten. Der Live-Stand wird immer vor einer konkreten Empfehlung geprüft.',
|
||||
'process_steps' => [
|
||||
['title' => '1. Strategische Passung', 'text' => 'Cashflow, Eigennutzung, Wertzuwachs oder Trophy Asset.'],
|
||||
['title' => '2. Aktive Verfügbarkeit', 'text' => 'Einheiten, Etagen, Views, Zahlungsplan und Resale-Angebote.'],
|
||||
['title' => '3. Exit-Logik', 'text' => 'Vermietbarkeit, Haltezeit, Zielgruppe und Wiederverkauf.'],
|
||||
],
|
||||
'interest_heading' => 'Interesse an :title?',
|
||||
'interest_default_title' => 'diesem Projekt',
|
||||
'interest_text' => 'Fragen Sie keine Broschüre an. Fragen Sie eine Einordnung an: Passt dieses Projekt zu Ihrer Strategie, Ihrem Budget und Ihrem Zeithorizont?',
|
||||
'interest_cta_consult' => 'Beratung anfragen',
|
||||
'interest_cta_more' => 'Weitere Projekte ansehen',
|
||||
],
|
||||
'status_labels' => [
|
||||
'ready' => 'Sofort verfügbar',
|
||||
'construction' => 'Im Bau',
|
||||
'offplan' => 'Off-Plan',
|
||||
],
|
||||
'confidence_labels' => [
|
||||
'green' => 'Direkt belegt',
|
||||
'yellow' => 'Vor Livegang final prüfen',
|
||||
'red' => 'Nur als Anfragewert nutzen',
|
||||
],
|
||||
'fallbacks' => [
|
||||
'handover' => 'Phase abhängig',
|
||||
'project_default' => 'Projekt',
|
||||
],
|
||||
];
|
||||
|
||||
foreach ($files as $file) {
|
||||
if (! is_file($file)) {
|
||||
echo 'Skip (nicht gefunden): '.$file.PHP_EOL;
|
||||
|
||||
continue;
|
||||
}
|
||||
$json = json_decode(file_get_contents($file), true, 512, JSON_THROW_ON_ERROR);
|
||||
|
||||
$ordered = [];
|
||||
foreach ($json as $k => $v) {
|
||||
if ($k === 'ui') {
|
||||
continue; // skip existing block - we'll re-insert it after meta
|
||||
}
|
||||
$ordered[$k] = $v;
|
||||
if ($k === 'meta') {
|
||||
$ordered['ui'] = $ui;
|
||||
}
|
||||
}
|
||||
if (! isset($ordered['ui'])) {
|
||||
$ordered = ['ui' => $ui] + $ordered;
|
||||
}
|
||||
|
||||
file_put_contents(
|
||||
$file,
|
||||
json_encode($ordered, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE)."\n"
|
||||
);
|
||||
|
||||
echo basename(dirname($file)).'/'.basename($file).': ui-Block eingefügt/aktualisiert'.PHP_EOL;
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue