167 lines
7.7 KiB
PHP
167 lines
7.7 KiB
PHP
<?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;
|
|
}
|