web/admin/pdf: gemeinsame Bildnachweis-Auflösung, Detailfenster am Artikelbild, Bestätigungsstand in Kunden- und Adminansicht, Wortwahl „automatisierte Prüfung" (Bildkennzeichnung Block D)

- App\Support\ImageCredit: Foto/Quelle-Zeile, KI-Hinweis mit Herkunft, Verantwortlich-Zeile nur mit Protokoll, sichere Links; PDF-Zeilen mit Bestätigungskennung
- Artikelseite: Overlay (eigenes i-Zeichen, Alpine ohne Plugin, Bottom-Sheet auf Mobil) mit Nachweis, Lizenz, Quelle, KI-Hinweis, Verantwortlich-Zeile, „Bild melden"
- Richtlinien 0.2: Prüfung als automatisiert beschrieben, Abschnitt „Bilder" (Decision-Update 3.5); Taglines, Suche, Newsrooms, Startseiten-CTA, Mails ohne „qualitätsgeprüft"
- Cache-Invalidierung bei Bildwechsel an veröffentlichten Meldungen; PHPStan-Baseline für das Resource bereinigt

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
Kevin Adametz 2026-09-22 09:44:34 +00:00
parent 24184f1dec
commit 9f44546082
26 changed files with 578 additions and 199 deletions

View file

@ -10,7 +10,7 @@ return [
'meta' => [
'home_title' => 'Latest press releases from business & industry – :brand',
'home_description' => 'Press releases from Germany, Austria and Switzerland. Quality-checked. Distributed in a structured way.',
'home_description' => 'Press releases from Germany, Austria and Switzerland. Automatically checked. Distributed in a structured way.',
],
'shared' => [
@ -132,7 +132,7 @@ return [
'publish_band' => [
'eyebrow' => 'For companies',
'title' => 'Your press release, quality-checked and published',
'title' => 'Your press release, automatically checked and published',
'subline' => 'Sign up, submit your release, publish — with reach across the DACH region, your own newsroom and a permanently searchable archive.',
'cta_submit' => 'Publish a press release',
'cta_pricing' => 'Plans & pricing',
@ -180,8 +180,8 @@ return [
'imprint' => 'Imprint',
'privacy' => 'Privacy',
'tagline_short' => 'Press releases · DACH',
'tagline_long_presseecho' => 'Business and industry news. Quality-checked. Distributed in a structured way.',
'tagline_long_businessportal24' => 'Publishing portal for quality-checked press releases from Germany, Austria and Switzerland.',
'tagline_long_presseecho' => 'Business and industry news. Automatically checked. Distributed in a structured way.',
'tagline_long_businessportal24' => 'Publishing portal for press releases from Germany, Austria and Switzerland.',
'rights' => '© :year :brand · All rights reserved',
'terms' => 'Terms',
'guidelines' => 'Guidelines',
@ -223,9 +223,9 @@ return [
'search' => [
'meta_title' => 'Search press releases – :brand',
'meta_description' => 'Search the quality-checked press release archive by keyword, company and industry – permanently discoverable across the DACH region.',
'meta_description' => 'Search the press release archive by keyword, company and industry – permanently discoverable across the DACH region.',
'eyebrow' => 'Archive search',
'intro' => 'Keyword, company or industry – search the complete, quality-checked archive.',
'intro' => 'Keyword, company or industry – search the complete archive.',
'placeholder' => 'Keyword, company or industry…',
'searching' => 'searching…',
'reset' => 'Reset search',
@ -247,13 +247,13 @@ return [
'newsrooms_page' => [
'meta_title' => 'Newsrooms – :brand',
'meta_description' => 'All active company newsrooms at a glance – quality-checked press releases per company, bundled and permanently discoverable across the DACH region.',
'meta_description' => 'All active company newsrooms at a glance – press releases per company, bundled and permanently discoverable across the DACH region.',
'eyebrow' => 'Company newsrooms',
'intro' => 'All active companies with their quality-checked press releases – bundled in one place.',
'intro' => 'All active companies with their press releases – bundled in one place.',
'stat_total_sub' => 'with published releases',
'stat_active' => 'Active (30 days)',
'stat_archive' => 'Releases in the archive',
'stat_archive_sub' => 'quality-checked',
'stat_archive_sub' => 'automatically checked',
'search_label' => 'Search newsrooms',
'search_placeholder' => 'Search companies…',
'reset_filter' => 'Reset filter',
@ -264,11 +264,11 @@ return [
'none_available' => 'There are currently no active newsrooms.',
'cta_eyebrow' => 'Your own newsroom',
'cta_title' => 'Bundle your press releases in your own newsroom.',
'cta_text' => 'Your own branded URL · all releases in one place · SEO benefit for your company · quality-checked.',
'cta_text' => 'Your own branded URL · all releases in one place · SEO benefit for your company.',
],
'newsroom_page' => [
'meta_description' => ':company newsroom: all quality-checked press releases bundled in one place.',
'meta_description' => ':company newsroom: all press releases bundled in one place.',
'back_aria' => 'Back to all newsrooms',
'all_newsrooms' => 'All newsrooms',
'recent_stat' => ':count releases in the last 30 days',
@ -290,7 +290,7 @@ return [
'category' => [
'fallback_name' => 'Industry',
'default_description' => 'Latest press releases from the :category sector – quality-checked and distributed across the DACH region.',
'default_description' => 'Latest press releases from the :category sector – and distributed across the DACH region.',
'meta_title' => ':category press releases – :brand',
'eyebrow' => 'Industry',
'back_aria' => 'Back to all releases',
@ -313,7 +313,7 @@ return [
'related' => 'Related industries',
'cta_eyebrow' => 'For companies in :category',
'cta_title' => 'Publish your press release directly in :category.',
'cta_text' => 'Reach via active newsrooms · Structured distribution across the DACH region · Quality-checked.',
'cta_text' => 'Reach via active newsrooms · Structured distribution across the DACH region.',
'cta_submit' => 'Submit press release',
'cta_pricing' => 'View plans & industry packages',
],
@ -360,6 +360,17 @@ return [
'recommended' => 'Recommended',
'recommended_hint' => 'This press release achieves a high content score — based on source quality, verification status and content relevance.',
'photo' => 'Photo',
'source' => 'Source',
'image_credit_title' => 'Image credit',
'image_credit_open' => 'Show image credit',
'image_credit_close' => 'Close',
'image_license' => 'Licence',
'image_source_link' => 'Source',
'image_ai_hint_generated' => 'This image was created with AI.',
'image_ai_hint_edited' => 'This image was edited with AI.',
'image_ai_source' => 'Label: :source',
'image_responsible' => 'Image and details: :company, submitted on :date',
'image_report' => 'Report image',
'about_company' => 'About the company',
'press_contact' => 'Press contact',
'verified_hint' => 'Verified publisher — identity and domain confirmed',