Backend-WIP: Kontakt-Queue, Page-Cache, Validierungs-Feedback, i18n

Gebuendelt, da ueber gemeinsame lang-/Service-Dateien verschraenkt:
- Kontakt-Nachrichten: contact_messages-Tabelle + Model/Enums/Factory,
  Admin-Queue (livewire/admin/contact-messages), ContactController
  persistiert das Anliegen zusaetzlich zur Brand-Mail
- Page-Data-Cache (Services/Web/*PageData) + web-archive-Indizes auf
  press_releases
- Validierungs-Feedback + Company-Portal-Restriction (Feature-Tests)
- i18n-Auslagerung lang/de|en (auth, passwords, validation, static)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Kevin Adametz 2026-07-09 15:38:11 +00:00
parent ef5de54300
commit 72e6a3c210
60 changed files with 3963 additions and 327 deletions

13
lang/de/auth.php Normal file
View file

@ -0,0 +1,13 @@
<?php
/*
* Deutsche Meldungen der Authentifizierung (Fortify/Login).
*/
return [
'failed' => 'Diese Zugangsdaten stimmen nicht mit unseren Aufzeichnungen überein.',
'password' => 'Das Passwort ist falsch.',
'throttle' => 'Zu viele Anmeldeversuche. Bitte versuchen Sie es in :seconds Sekunden erneut.',
];

15
lang/de/passwords.php Normal file
View file

@ -0,0 +1,15 @@
<?php
/*
* Deutsche Meldungen für Passwort-Zurücksetzen (Fortify).
*/
return [
'reset' => 'Das Passwort wurde zurückgesetzt.',
'sent' => 'Wir haben Ihnen den Link zum Zurücksetzen des Passworts per E-Mail gesendet.',
'throttled' => 'Bitte warten Sie einen Moment, bevor Sie es erneut versuchen.',
'token' => 'Der Link zum Zurücksetzen des Passworts ist ungültig oder abgelaufen.',
'user' => 'Es wurde kein Konto mit dieser E-Mail-Adresse gefunden.',
];

View file

@ -30,7 +30,7 @@ return [
'plans' => [
'eyebrow' => 'Abo-Tarife',
'title' => 'Abo-Tarife mit Monatskontingent',
'subtitle' => 'Monatlich kündbar. Jährliche Zahlweise: 2 Monate gratis — nach den ersten zwölf Monaten wird monatlich abgerechnet, sofern Sie nicht erneut die jährliche Zahlweise wählen.',
'subtitle' => 'Monatstarife verlängern sich monatlich und sind monatlich kündbar. Jährliche Zahlweise: 2 Monate gratis — das Abo verlängert sich um jeweils zwölf Monate und ist zum Ende der Laufzeit kündbar.',
'per_month' => '/ Monat',
'per_year' => '/ Jahr',
'net' => 'netto zzgl. USt.',

482
lang/de/static.php Normal file
View file

@ -0,0 +1,482 @@
<?php
/*
* Texte der statischen Frontend-Seiten (FAQ, Hilfe, Veröffentlichen, API,
* Melden, Kündigung, Impressum) in DE/EN. Die rechtsverbindlichen Langtexte
* (AGB, Datenschutzerklärung, Richtlinien) bleiben bewusst deutsch
* (docs/legal/Entscheidung.md O-C: englische Fassungen erst nach
* fachanwaltlicher Prüfung) — die EN-Ausgabe zeigt dort den Hinweis
* `legal.german_binding_notice`.
*/
return [
'legal' => [
'eyebrow' => 'Rechtliches',
'german_binding_notice_title' => 'Hinweis zur Sprachfassung',
'german_binding_notice' => 'Dieser Rechtstext liegt derzeit nur auf Deutsch vor. Maßgeblich und rechtsverbindlich ist die deutsche Fassung. Bei Fragen erreichen Sie uns auf Deutsch und Englisch unter :email.',
],
'faq' => [
'meta_title' => 'Häufig gestellte Fragen (FAQ)',
'meta_description' => 'Antworten auf die wichtigsten Fragen rund um das Veröffentlichen von Pressemitteilungen, Konto, Abrechnung und Newsroom.',
'eyebrow' => 'Hilfe',
'title' => 'Häufig gestellte Fragen',
'lead' => 'Finden Sie schnell Antworten auf die wichtigsten Fragen rund um Veröffentlichung, Konto und Newsroom.',
'breadcrumb' => 'FAQ',
'cat_start' => 'Erste Schritte',
'q_first_pm' => 'Wie veröffentliche ich meine erste Pressemitteilung?',
'a_first_pm' => 'Registrieren Sie sich im zentralen Publisher-Bereich (pressekonto), legen Sie Ihr Firmenprofil an und verfassen Sie die Mitteilung im Editor — mit Text, Bildern, Anhängen und Pressekontakt. Nach dem Einreichen durchläuft sie unsere Inhaltsprüfung und erscheint anschließend auf presseecho.de und businessportal24.com.',
'q_audience' => 'An wen richtet sich das Angebot?',
'a_audience' => 'Ausschließlich an Unternehmen, Selbstständige und Agenturen. Die Veröffentlichung erfolgt stets über ein Firmenprofil — ein Angebot für Verbraucher ist es nicht.',
'q_register_to_read' => 'Muss ich mich registrieren, um Pressemitteilungen zu lesen?',
'a_register_to_read' => 'Nein, alle veröffentlichten Pressemitteilungen sind frei zugänglich. Eine Registrierung ist nur erforderlich, wenn Sie selbst veröffentlichen möchten.',
'q_review_time' => 'Wie lange dauert die Freischaltung meiner Pressemitteilung?',
'a_review_time' => 'Die Inhaltsprüfung ist werktags in der Regel am selben Tag abgeschlossen. Nach der Freigabe geht die Mitteilung sofort online — oder automatisch zu Ihrem geplanten Wunschtermin.',
'cat_account' => 'Konto & Abrechnung',
'q_change_plan' => 'Wie ändere ich meinen Tarif?',
'a_change_plan' => 'In Ihrem Konto unter „Buchungen & Add-ons" können Sie jederzeit upgraden oder downgraden. Upgrades gelten sofort, Downgrades zum nächsten Abrechnungszeitraum.',
'q_payment_methods' => 'Welche Zahlungsmethoden werden akzeptiert?',
'a_payment_methods' => 'Die Abrechnung läuft sicher über Stripe — etwa per Kreditkarte oder SEPA-Lastschrift. Bestandskunden mit laufender Vereinbarung zahlen weiterhin per Rechnung.',
'q_cancel_plan' => 'Kann ich meinen Tarif kündigen?',
'a_cancel_plan' => 'Ja. Monatstarife verlängern sich monatlich und sind monatlich kündbar, Jahrestarife verlängern sich um jeweils zwölf Monate und sind zum Ende der Laufzeit kündbar. Kündigen können Sie direkt im Konto oder ohne Anmeldung über die <a href=":url">Kündigungsseite</a>.',
'q_delete_account' => 'Kann ich mein Konto löschen?',
'a_delete_account' => 'Ja, jederzeit in den Einstellungen Ihres Kontos. Bereits veröffentlichte Pressemitteilungen bleiben im Archiv online, werden aber nicht mehr Ihrem Konto zugeordnet.',
'cat_content' => 'Pressemitteilungen & Inhalte',
'q_file_formats' => 'Welche Dateiformate werden unterstützt?',
'a_file_formats' => 'Bilder: JPG, PNG, WebP (max. 16 MB im Editor; über die API max. 8 MB). Anhänge: PDF, Word, Excel, PowerPoint, ZIP und TXT (max. 25 MB je Datei).',
'q_corrections' => 'Kann ich eine Pressemitteilung nach Veröffentlichung korrigieren?',
'a_corrections' => 'Ja — wir korrigieren statt zu löschen: Die URL Ihrer Mitteilung bleibt erhalten, Verweise und Verlinkungen bestehen weiter. Wenden Sie sich mit Korrekturwünschen an unseren Support.',
'q_seo' => 'Wie optimiere ich meine Pressemitteilung für SEO?',
'a_seo' => 'Nutzen Sie aussagekräftige Headlines, integrieren Sie relevante Keywords natürlich, hinterlegen Sie Bildtitel und strukturieren Sie den Text mit Zwischenüberschriften.',
'q_rejection' => 'Was passiert, wenn eine Mitteilung abgelehnt wird?',
'a_rejection' => 'Sie erhalten die Ablehnung mit Begründung und können die Mitteilung überarbeiten und erneut einreichen. Ein abgelehnter Beitrag verbraucht kein Kontingent.',
'cat_newsroom' => 'Newsroom & Funktionen',
'q_newsroom' => 'Was ist ein Newsroom?',
'a_newsroom' => 'Ihre Unternehmensseite auf beiden Portalen, auf der alle Ihre Pressemitteilungen gebündelt sind — mit Logo, Kurzprofil und Pressekontakten.',
'q_stats' => 'Welche Statistiken sehe ich?',
'a_stats' => 'Die Aufrufe jeder Mitteilung über beide Portale hinweg, direkt in Ihrem Konto. Die Zahlen werden laufend aktualisiert.',
'q_api' => 'Gibt es eine API?',
'a_api' => 'Ja — eine Token-basierte REST-API zum Einreichen von Mitteilungen, Statusabfragen und Bild-Upload. Details finden Sie auf der <a href=":url">API-Seite</a>; Ihre Tokens erstellen Sie direkt im Konto, sobald eine aktive Buchung vorliegt.',
'not_found' => 'Frage nicht gefunden?',
'support_intro' => 'Unser Support-Team hilft Ihnen gerne weiter – per E-Mail an',
'support_outro' => 'oder direkt über das Kontaktformular.',
'write_support' => 'Support anschreiben',
'visit_help' => 'Hilfe-Center besuchen',
],
'help' => [
'meta_title' => 'Hilfe-Center',
'meta_description' => 'Hilfe-Center: Antworten, Anleitungen und direkter Kontakt zum Support-Team.',
'eyebrow' => 'Hilfe',
'title' => 'Hilfe-Center',
'lead' => 'Finden Sie Antworten und Anleitungen – oder kontaktieren Sie unser Support-Team direkt.',
'breadcrumb' => 'Hilfe',
'quick_faq' => 'FAQ',
'quick_faq_desc' => 'Häufig gestellte Fragen',
'quick_publish' => 'Veröffentlichen',
'quick_publish_desc' => 'In wenigen Schritten zur Meldung',
'quick_contact' => 'Kontakt',
'quick_contact_desc' => 'Direkter Draht zum Support',
'topics_heading' => 'Hilfe-Themen',
'topic_start' => 'Erste Schritte',
'link_create_account' => 'Konto erstellen',
'link_first_pm' => 'Erste Pressemitteilung veröffentlichen',
'link_discover_newsrooms' => 'Newsrooms entdecken',
'link_faq_start' => 'Häufige Fragen zum Einstieg',
'topic_releases' => 'Pressemitteilungen',
'link_file_formats' => 'Dateiformate und Größen',
'link_seo' => 'SEO-Optimierung',
'link_corrections' => 'Korrekturen nach Veröffentlichung',
'topic_account' => 'Konto & Abrechnung',
'link_change_plan' => 'Tarif wechseln',
'link_invoices' => 'Rechnungen im Konto abrufen',
'link_cancel' => 'Vertrag kündigen',
'topic_advanced' => 'Erweiterte Funktionen',
'link_api' => 'API-Integration',
'link_stats' => 'Statistiken zu Aufrufen',
'link_newsroom' => 'Newsroom pflegen',
'cta_heading' => 'Benötigen Sie weitere Hilfe?',
'cta_text' => 'Unser Support-Team antwortet werktags per E-Mail.',
'cta_contact' => 'Support kontaktieren',
'cta_faq' => 'FAQ durchsuchen',
],
'publish' => [
'meta_title' => 'Pressemitteilung veröffentlichen – :brand',
'meta_description' => 'Pressemitteilungen geprüft veröffentlichen und dauerhaft auffindbar im Archiv. Faire Preise, keine Vertragsbindung – Einreichung über den zentralen Publisher-Bereich.',
'breadcrumb' => 'Veröffentlichen',
'quality_since' => 'Qualitätsgeprüft seit :year',
'help_support' => 'Hilfe & Support',
'pricing' => 'Preise',
'eyebrow' => 'Pressestelle · Veröffentlichen',
'h1_line1' => 'Pressemitteilung veröffentlichen.',
'h1_line2' => 'Geprüft. Dauerhaft auffindbar.',
'hero_text' => ':brand ist die Presseplattform für mittelständische Unternehmen, Selbstständige und PR-Agenturen aus Deutschland, Österreich und der Schweiz. Jede Mitteilung wird auf Qualität geprüft und bleibt dauerhaft im Archiv auffindbar.',
'hub_eyebrow' => 'Einreichen im Publisher-Bereich',
'hub_heading' => 'Die Einreichung läuft über den zentralen Publisher-Bereich.',
'hub_text' => 'Dort verwalten Sie Mitteilungen, Credits und Newsroom — einmaliges Konto, beide Portale nutzbar (businessportal24 & presseecho.de).',
'hub_cta' => 'Zum Publisher-Bereich',
'hub_note' => 'Login per Magic-Link · ohne Vertragsbindung',
'fact_since' => 'Seit',
'fact_since_sub' => 'im Betrieb · durchgehende Archivierung',
'fact_archive' => 'Archiv',
'fact_archive_sub' => 'Mitteilungen weiterhin abrufbar',
'fact_reach' => 'Reichweite',
'fact_reach_sub' => 'Deutschland · Österreich · Schweiz',
'fact_today' => 'Heute',
'fact_today_sub' => 'veröffentlicht / in Prüfung — Stand :date',
'example_heading' => 'So sieht eine veröffentlichte Mitteilung aus',
'example_verified' => 'Geprüft',
'example_category_fallback' => 'Industrie · Maschinenbau',
'example_title_fallback' => 'Mittelständischer Fertiger eröffnet Werk und schafft 84 Arbeitsplätze',
'example_text_fallback' => 'Coesfeld · Die Brinkmann Präzisionstechnik GmbH hat einen Erweiterungsbau in Betrieb genommen. Investitionsvolumen: 9,4 Mio. Euro.',
'example_company_fallback' => 'Brinkmann Präzisionstechnik GmbH',
'example_read_time' => ':minutes Min. Lesezeit',
'example_note' => 'Beispiel. Jede Mitteilung erhält eine permanente URL, ein strukturiertes Datenblatt und bleibt im durchsuchbaren Archiv.',
'newsrooms_recent' => 'Aktive Newsrooms zuletzt',
'newsrooms_more' => 'und :count weitere veröffentlichende Unternehmen.',
'newsrooms_all' => 'Alle Newsrooms',
'trust_eyebrow' => 'Was uns ausmacht',
'trust_heading' => 'Vier Prinzipien, die diese Plattform tragen',
'trust_1_k' => 'Qualität',
'trust_1_t' => 'Geprüfte Mitteilungen',
'trust_1_d' => 'Jede Mitteilung durchläuft eine Qualitätsprüfung, bevor sie online geht. Keine SEO-Spam-Texte, keine reinen Werbeanzeigen.',
'trust_2_k' => 'Auffindbarkeit',
'trust_2_t' => 'Dauerhaft im Archiv',
'trust_2_d' => 'Pressemitteilungen bleiben im Archiv – auch nach Jahren. Mitteilungen aus mehr als einem Jahrzehnt sind weiterhin abrufbar.',
'trust_3_k' => 'Konditionen',
'trust_3_t' => 'Faire Preise, keine Bindung',
'trust_3_d' => 'Transparente Preise, kein Abo-Zwang, keine Vertragsfallen. Sie zahlen, was Sie einreichen.',
'trust_4_k' => 'Umgang mit Fehlern',
'trust_4_t' => 'Korrektur statt Löschung',
'trust_4_d' => 'Fehler in einer Mitteilung? Wir korrigieren statt zu löschen – damit Verweise und Verlinkungen bestehen bleiben.',
'flow_eyebrow' => 'Ablauf',
'flow_heading' => "So funktioniert's — drei Schritte",
'flow_note' => 'Keine Magic-Sprache. Was hier passiert, passiert sichtbar.',
'flow_1_meta' => '≈ 2 Minuten',
'flow_1_t' => 'Konto anlegen',
'flow_1_d' => 'Mit E-Mail-Adresse und Passwort — Anmeldung wahlweise auch passwortlos per Magic-Link. Konto und Abrechnung liegen im zentralen Publisher-Bereich — ein Konto für beide Portale.',
'flow_2_meta' => 'werktags · innerhalb 24 h',
'flow_2_t' => 'Mitteilung einreichen',
'flow_2_d' => 'Text, Bild, Ansprechpartner. Die automatisierte Inhaltsprüfung läuft direkt beim Einreichen mit.',
'flow_3_meta' => 'permanent · indexiert',
'flow_3_t' => 'Veröffentlichung',
'flow_3_d' => 'Nach Freigabe online und im Archiv. Bei Bedarf jederzeit korrigierbar — die URL bleibt stabil, Verweise bestehen weiter.',
'flow_footnote' => 'Die Veröffentlichung erfolgt über den zentralen Publisher-Bereich und erscheint ohne Mehrkosten auf beiden Portalen — presseecho.de und businessportal24.com.',
'occasions_eyebrow' => 'Für wen',
'occasions_heading' => 'Typische Anlässe einer Veröffentlichung',
'occasions_note' => 'Anhaltspunkt für die Eignung. Eine Aufzählung, keine abschließende Liste.',
'occasion_1_t' => 'Neue Produkte oder Dienstleistungen',
'occasion_1_d' => 'Markteinführungen, Produktupdates, neue Services.',
'occasion_2_t' => 'Personalien und Geschäftsleitungs-Wechsel',
'occasion_2_d' => 'Berufungen, Bestellungen, Verabschiedungen.',
'occasion_3_t' => 'Auszeichnungen und Zertifizierungen',
'occasion_3_d' => 'Awards, ISO- und Branchen-Zertifikate, Audits.',
'occasion_4_t' => 'Standort-Eröffnungen, Expansionen, Aufträge',
'occasion_4_d' => 'Werke, Niederlassungen, Großaufträge, Investitionen.',
'occasion_5_t' => 'Veranstaltungs-Ankündigungen',
'occasion_5_d' => 'Tage der offenen Tür, Fachtage, Hauptversammlungen.',
'occasion_6_t' => 'Studien und Marktanalysen',
'occasion_6_d' => 'Eigene Erhebungen, Trendberichte, Branchenkennzahlen.',
'scope_eyebrow' => 'Wichtig zur Eingrenzung',
'scope_heading' => 'Nicht geeignet sind reine Werbeanzeigen, SEO-Linkbuilding-Texte oder Inhalte ohne nachvollziehbaren Pressewert.',
'scope_text' => 'Die Inhaltsprüfung sichert den Charakter der Plattform. Mitteilungen, die diese Schwelle nicht erreichen, werden mit einer kurzen Begründung zurückgegeben — meist mit einem konkreten Korrekturvorschlag.',
'scope_ok_1' => 'Mitteilungen mit klarem Anlass und Quelle',
'scope_ok_2' => 'Ansprechpartner mit Funktion und Kontakt',
'scope_no_1' => 'Reine Verkaufs- und Rabatt-Texte',
'scope_no_2' => 'Anonyme oder Quellen-lose Inhalte',
'pricing_eyebrow' => 'Preise',
'pricing_heading' => 'Sie zahlen, was Sie einreichen.',
'pricing_logic' => 'Logik',
'pricing_logic_text' => 'Einzeln ohne Abo veröffentlichen oder im Monats-Tarif — Inhaltsprüfung und beide Portale sind immer enthalten.',
'pricing_point_1' => 'Beide Portale ohne Mehrkosten.',
'pricing_point_2' => 'Abgelehnte Mitteilungen kosten kein Kontingent.',
'pricing_point_3' => 'Monatstarife monatlich kündbar, Jahrestarife zum Ende der Laufzeit.',
'pricing_anchor' => 'Anker',
'pricing_single' => 'Eine Veröffentlichung ohne Abo',
'pricing_single_note' => 'netto · zzgl. USt. · voller Leistungsumfang.',
'pricing_plans_note' => 'Regelmäßig veröffentlichen: Tarife ab :price € / Monat mit :quota Mitteilungen.',
'pricing_overview' => 'Vollständige Übersicht',
'pricing_overview_text' => 'Alle Tarife, Extra-Kontingente, Boost-Platzierungen und Agentur-Konditionen finden Sie in der Preisübersicht.',
'pricing_overview_cta' => 'Zur Preisübersicht',
'faq_eyebrow' => 'Häufige Fragen',
'faq_heading' => 'Kurz beantwortet',
'faq_no_answer' => 'Sie finden hier keine Antwort?',
'faq_contact' => 'Direkt Kontakt aufnehmen',
'faq_response_note' => 'Antwort werktags per E-Mail',
'faq_1_q' => 'Wie schnell wird meine Mitteilung veröffentlicht?',
'faq_1_a' => 'Werktags üblicherweise innerhalb von 24 Stunden nach Einreichung. Bei zeitkritischen Mitteilungen ist eine Vorab-Absprache möglich.',
'faq_2_q' => 'Bleibt meine Mitteilung dauerhaft online?',
'faq_2_a' => 'Ja. Mitteilungen werden nicht gelöscht. Korrekturen sind jederzeit möglich — die URL bleibt erhalten.',
'faq_3_q' => 'Kann ich auch auf presseecho.de veröffentlichen?',
'faq_3_a' => 'Ja — jede Mitteilung erscheint automatisch auf beiden Portalen, presseecho.de und businessportal24.com, ohne Mehrkosten und ohne doppelte Eingabe.',
'faq_4_q' => 'Brauche ich ein Abo?',
'faq_4_a' => 'Nein. Eine Einzel-Pressemitteilung buchen Sie ohne Abo zum Festpreis; für regelmäßige Veröffentlichungen lohnen sich die Abo-Tarife mit monatlicher oder jährlicher Laufzeit.',
'faq_5_q' => 'Was passiert bei einem Fehler in der Mitteilung?',
'faq_5_a' => 'Korrektur statt Löschung: Inhalte werden aktualisiert, die URL bleibt erhalten, Verlinkungen und Verweise bestehen weiter.',
'cta_eyebrow' => 'Mitteilung einreichen · Schritt eins',
'cta_heading' => 'Bereit, Ihre Mitteilung einzureichen?',
'cta_text' => 'Konto in zwei Minuten anlegen, Text und Bild einreichen, nach bestandener Inhaltsprüfung veröffentlicht. Einmaliges Konto — beide Portale (businessportal24 & presseecho.de) nutzbar.',
'cta_examples' => 'Oder zuerst Beispiele ansehen →',
],
'api' => [
'meta_title' => 'API-Dokumentation',
'meta_description' => 'REST-API v1: Pressemitteilungen programmatisch erstellen, mit Bildern versehen und zur Prüfung einreichen — Token-basiert, JSON, versioniert.',
'eyebrow' => 'Entwickler',
'title' => 'API-Dokumentation',
'lead' => 'Pressemitteilungen programmatisch erstellen, mit Bildern versehen und zur Prüfung einreichen — über die versionierte REST-API des Publisher-Hubs.',
'breadcrumb' => 'API',
'basics_heading' => 'Grundlagen',
'basics_text' => 'Die API v1 ist ein RESTful Web Service mit JSON-Responses. Basis-URL: <strong>:base</strong>. Eine über die API angelegte Mitteilung ist immer ein Entwurf; veröffentlicht wird sie erst nach dem Einreichen über die Submit-Route und der anschließenden Inhaltsprüfung — sie erscheint dann wie jede andere Mitteilung auf beiden Portalen.',
'auth_heading' => 'Authentifizierung',
'auth_text' => 'Alle Anfragen benötigen einen persönlichen API-Token als Bearer-Header: <code>Authorization: Bearer &lt;token&gt;</code>. Jeder Token trägt Berechtigungen (z. B. <code>press-releases:write</code>), die den Zugriff auf die jeweiligen Endpunkte steuern. Tokens erstellen und widerrufen Sie selbst in Ihrem Publisher-Konto unter „API-Tokens" — Voraussetzung ist eine aktive Buchung (Tarif oder Einzel-Pressemitteilung). <strong>Bestandskunden der Altportale:</strong> Ihre bisherigen API-Schlüssel wurden übernommen und funktionieren weiter — sowohl als Bearer-Token als auch in der alten Form (<code>X-ApiKey</code>-Header) und auf den dokumentierten <code>/service/…</code>-Pfaden. Für neue Integrationen empfehlen wir die aktuellen <code>/api/v1/…</code>-Endpunkte mit Bearer-Token.',
'endpoints_heading' => 'Endpunkte',
'group_releases' => 'Pressemitteilungen',
'group_images' => 'Bilder',
'group_master_data' => 'Stammdaten',
'permission' => 'Berechtigung',
'ep_pr_index' => 'Eigene Mitteilungen auflisten (paginiert, filterbar über ?status= und ?per_page=, max. 100).',
'ep_pr_store' => 'Neue Mitteilung anlegen — immer als Entwurf (Status draft).',
'ep_pr_show' => 'Eine Mitteilung inkl. Firma, Rubrik und Bildern abrufen.',
'ep_pr_update' => 'Mitteilung ändern — nur im Status draft oder rejected.',
'ep_pr_submit' => 'Zur Inhaltsprüfung einreichen — der einzige Weg Richtung Veröffentlichung.',
'ep_pr_destroy' => 'Mitteilung löschen — veröffentlichte Mitteilungen sind ausgenommen.',
'ep_img_index' => 'Bilder einer Mitteilung auflisten.',
'ep_img_store' => 'Bild hochladen (multipart/form-data) — nur bei draft/rejected.',
'ep_img_destroy' => 'Bild entfernen — nur bei draft/rejected.',
'ep_companies_index' => 'Eigene Firmenprofile (Newsrooms) auflisten.',
'ep_companies_show' => 'Ein Firmenprofil abrufen.',
'ep_categories_index' => 'Aktive Rubriken inkl. Übersetzungen — liefert die category_id für neue Mitteilungen.',
'fields_pr_heading' => 'Felder einer Pressemitteilung',
'fields_img_heading' => 'Felder eines Bild-Uploads',
'th_field' => 'Feld',
'th_type' => 'Typ',
'th_required' => 'Pflicht',
'th_description' => 'Beschreibung',
'required_yes' => 'ja',
'field_company_id' => 'ID eines eigenen Firmenprofils — bestimmt Newsroom und Portal.',
'field_category_id' => 'Rubrik (siehe GET /categories).',
'field_language' => 'Sprachcode, zwei Zeichen: de oder en.',
'field_title' => 'Überschrift, max. 255 Zeichen.',
'field_text' => 'Inhalt. Erlaubtes HTML: p, br, h2, h3, strong, em, ul, ol, li, blockquote, a — alles andere wird entfernt.',
'field_backlink_url' => 'Link zur Quelle/Website, max. 255 Zeichen.',
'field_keywords' => 'Schlagworte, kommagetrennt, max. 255 Zeichen.',
'field_teaser' => 'Zeichen-Offsets für den Teaser-Ausschnitt.',
'field_no_export' => 'Mitteilung von Feeds/Exporten ausnehmen.',
'field_image' => 'JPG, PNG oder WebP, max. 8 MB.',
'field_image_title' => 'Bildtitel, max. 120 Zeichen.',
'field_image_description' => 'Beschreibung, max. 500 Zeichen.',
'field_image_copyright' => 'Urheberangabe, max. 255 Zeichen.',
'field_image_is_preview' => 'Als Vorschaubild setzen (ersetzt ein vorhandenes).',
'quickstart_heading' => 'Schneller Einstieg',
'quickstart_text' => 'Der typische Ablauf: Entwurf anlegen, Bild hochladen, zur Prüfung einreichen.',
'quickstart_step_1' => '# 1. Entwurf anlegen',
'quickstart_step_2' => '# 2. Bild hochladen (multipart)',
'quickstart_step_3' => '# 3. Zur Inhaltsprüfung einreichen',
'openapi_note' => 'Maschinenlesbare Referenz:',
'openapi_link' => 'OpenAPI-Spezifikation (YAML)',
'status_heading' => 'HTTP-Statuscodes',
'th_code' => 'Code',
'th_meaning' => 'Bedeutung',
'status_2xx' => 'Erfolg — Abruf, Ressource erstellt bzw. gelöscht.',
'status_401' => 'Kein oder ungültiger API-Token.',
'status_402' => 'Einreichen erfordert eine aktive Buchung (Tarif oder Einzel-PM).',
'status_403' => 'Token-Berechtigung fehlt oder die Ressource gehört nicht zu Ihrem Konto.',
'status_409' => 'Statuskonflikt — z. B. Bearbeiten einer bereits veröffentlichten Mitteilung.',
'status_422' => 'Validierungsfehler oder Kontingent-/Richtlinienverstoß (Details im Body).',
'status_429' => 'Rate-Limit erreicht: 60 Anfragen pro Minute je Token (Header X-RateLimit-*).',
'cta_heading' => 'API-Token erstellen',
'cta_text' => 'Tokens verwalten Sie selbst im Publisher-Konto. Bei Fragen zur Anbindung hilft der Support:',
'cta_account' => 'Zum Publisher-Konto',
'cta_pricing' => 'Preise ansehen',
],
'report' => [
'meta_title' => 'Inhalte melden oder Änderungen beantragen',
'meta_description' => 'Rechtswidrige Inhalte melden (DSA), personenbezogene Daten entfernen lassen (DSGVO) oder Änderungen an eigenen Pressemitteilungen beantragen — Meldungen sind kostenlos.',
'title' => 'Inhalte melden oder Änderungen beantragen',
'lead' => 'Auf :portal veröffentlichen Unternehmen Pressemitteilungen in eigener Verantwortung. Wenn Sie ein Anliegen zu einer veröffentlichten Pressemitteilung haben, wählen Sie bitte den passenden Weg.',
'breadcrumb' => 'Inhalte melden',
'intro_direct' => 'Sie können eine Pressemitteilung direkt über den Link <strong>„Pressemitteilung melden"</strong> auf der jeweiligen Veröffentlichungsseite melden — dabei wird die betroffene Pressemitteilung automatisch übernommen.',
'intro_free' => '<strong>Die Meldung rechtswidriger Inhalte und die Ausübung gesetzlicher Rechte sind immer kostenlos.</strong> Kostenpflichtig ist nur die freiwillige Entfernung rechtmäßiger Inhalte aus der öffentlichen Ansicht.',
'way1_heading' => '1. Rechtswidrige Inhalte oder Rechteverletzungen melden',
'way1_intro' => 'Nutzen Sie diesen Weg, wenn Sie der Ansicht sind, dass eine veröffentlichte Pressemitteilung rechtswidrig ist oder Ihre Rechte verletzt, zum Beispiel bei:',
'way1_item_1' => 'falschen Tatsachenbehauptungen,',
'way1_item_2' => 'Verletzung von Persönlichkeitsrechten,',
'way1_item_3' => 'Verletzung von Marken-, Urheber- oder sonstigen Rechten,',
'way1_item_4' => 'Datenschutzverstößen oder unzulässiger Veröffentlichung personenbezogener Daten,',
'way1_item_5' => 'Betrug, Irreführung oder rechtswidriger Werbung,',
'way1_item_6' => 'sonstigen gesetzlichen Verstößen.',
'contact_trigger_label' => 'Kontaktformular',
'way1_how' => '<strong>Meldung:</strong> Nutzen Sie unser <a href=":form_url">Meldeformular für rechtswidrige Inhalte</a> — Sie erhalten unverzüglich eine Eingangsbestätigung mit Vorgangsnummer. Alternativ öffnen Sie die betroffene Pressemitteilung und nutzen dort den Link <em>„Inhalt melden"</em> (die Mitteilung wird dabei automatisch dem Vorgang zugeordnet), oder Sie senden Ihre Meldung mit der URL der betroffenen Pressemitteilung über unser :contact.',
'way1_needs' => 'Damit wir Ihre Meldung prüfen können, benötigen wir:',
'way1_need_1' => 'die URL der betroffenen Pressemitteilung,',
'way1_need_2' => 'eine Begründung, warum Sie den Inhalt für rechtswidrig halten,',
'way1_need_3' => 'Ihren Namen und Ihre E-Mail-Adresse, soweit gesetzlich keine Ausnahme gilt,',
'way1_need_4' => 'Ihre Bestätigung, dass Sie die Meldung nach bestem Wissen und Gewissen abgeben und die Angaben richtig und vollständig sind.',
'way1_process' => 'Nach Absenden der Meldung erhalten Sie unverzüglich eine Eingangsbestätigung. Wir prüfen die Meldung sorgfältig und zeitnah. Anschließend teilen wir Ihnen unsere Entscheidung mit einer Begründung mit. Ist der Inhalt rechtswidrig oder besteht ein ausreichender Grund für eine Einschränkung, entfernen oder sperren wir ihn ganz oder teilweise.',
'way1_author_note' => 'Der Autor oder Verantwortliche des Inhalts wird über eine Einschränkung des Inhalts informiert und erhält eine Begründung, soweit dies gesetzlich vorgesehen ist.',
'way2_heading' => '2. Eigene personenbezogene Daten entfernen lassen',
'way2_intro' => 'Nutzen Sie diesen Weg, wenn Sie eine natürliche Person sind und Ihre persönlichen Kontaktdaten in einer Pressemitteilung stehen, zum Beispiel Name, Telefonnummer oder E-Mail-Adresse.',
'way2_how' => '<strong>Antrag:</strong> Nutzen Sie unser <a href=":form_url">Antragsformular zur Entfernung eigener Kontaktdaten</a>. Alternativ öffnen Sie die betroffene Pressemitteilung und nutzen dort den Link <em>„Eigene Daten entfernen"</em> — oder Sie stellen Ihren Antrag über unser :contact.',
'way2_gdpr' => 'Wir prüfen Ihren Antrag nach den Vorgaben der Datenschutz-Grundverordnung. Die Prüfung und Bearbeitung ist für Sie kostenlos.',
'way2_verification' => 'Zur Prüfung senden wir Ihnen in der Regel einen Bestätigungslink an die betroffene E-Mail-Adresse. Falls diese nicht mehr erreichbar ist, können wir einen geeigneten Identitäts- oder Berechtigungsnachweis verlangen. Wir verlangen nur die Angaben, die zur Prüfung Ihrer Berechtigung erforderlich sind.',
'way2_result' => 'Nach erfolgreicher Prüfung entfernen, ersetzen oder anonymisieren wir Ihre persönlichen Kontaktdaten in der Pressemitteilung. Die Pressemitteilung selbst bleibt grundsätzlich bestehen, soweit keine gesetzlichen Ansprüche auf Entfernung, Sperrung oder Änderung bestehen.',
'way2_companies' => 'Angaben über Unternehmen und Informationen aus öffentlichen Registern prüfen wir im Einzelfall. Solche Angaben sind nicht automatisch wie private Kontaktdaten zu behandeln.',
'way3_heading' => '3. Eigene Pressemitteilung ändern oder verwalten',
'way3_intro' => 'Nutzen Sie diesen Weg, wenn Sie der ursprüngliche Auftraggeber, Firmeninhaber oder als Pressekontakt in der Pressemitteilung genannt sind.',
'way3_magic_link' => 'Zur Prüfung Ihrer Berechtigung nutzen wir ein Magic-Link-Verfahren: Wir senden einen einmaligen Zugangslink an die E-Mail-Adresse, die in der Pressemitteilung oder im Kundenkonto hinterlegt ist. Nach Bestätigung können Sie zulässige Änderungen beantragen, zum Beispiel:',
'way3_item_1' => 'Tippfehler korrigieren,',
'way3_item_2' => 'Kontaktdaten aktualisieren,',
'way3_item_3' => 'veraltete Pressekontakte ersetzen,',
'way3_item_4' => 'eine freiwillige Entfernung rechtmäßiger Inhalte aus der öffentlichen Ansicht beauftragen.',
'way3_how' => '<strong>Änderung beantragen:</strong> Melden Sie sich in Ihrem <a href=":login_url">Publisher-Konto</a> an oder fordern Sie den Zugangslink über die Anmeldeseite an. Wenn die hinterlegte E-Mail-Adresse nicht mehr erreichbar ist, können wir einen geeigneten Berechtigungsnachweis verlangen — wenden Sie sich dazu über unser :contact an uns.',
'way4_heading' => '4. Freiwillige Entfernung rechtmäßiger Inhalte',
'way4_intro' => 'Rechtmäßige Pressemitteilungen bleiben grundsätzlich Teil unseres dauerhaften Archivs. Eine spätere Entfernung aus der öffentlichen Ansicht („Depublikation") bieten wir als freiwillige Serviceleistung an, soweit keine gesetzlichen Ansprüche auf Entfernung, Sperrung oder Änderung bestehen.',
'way4_authorized' => 'Die Beauftragung ist nur durch eine hierzu berechtigte Person möglich, zum Beispiel durch den ursprünglichen Auftraggeber, den im Inhalt genannten Pressekontakt, einen vertretungsberechtigten Firmeninhaber oder eine nachweislich bevollmächtigte Person.',
'way4_rules_intro' => 'Bei einer Depublikation gilt:',
'way4_rule_1' => 'Die Pressemitteilung wird aus der öffentlichen Ansicht entfernt.',
'way4_rule_2' => 'Die URL bleibt mit einem kurzen Hinweis auf die Entfernung bestehen („Tombstone").',
'way4_rule_3' => 'Eine vollständige Löschung der URL erfolgt nicht.',
'way4_rule_4' => 'Nicht enthalten ist die Entfernung aus Suchmaschinen-Caches, Archiven Dritter oder Weiterveröffentlichungen auf anderen Portalen, auf die wir keinen Zugriff haben.',
'way4_price' => 'Der Preis beträgt <strong>:net € zzgl. USt.</strong> (:gross € inkl. 19 % USt.). <strong>Beauftragung:</strong> über Ihr Kundenkonto (Detailseite der Pressemitteilung) oder über unser :contact.',
'way4_price_fallback' => 'Der Preis wird Ihnen vor Beauftragung angezeigt. <strong>Beauftragung:</strong> über Ihr Kundenkonto oder über unser :contact.',
'way4_note' => 'Wichtig: Dieser Service ist keine Voraussetzung für Ihre gesetzlichen Rechte. Die Meldung rechtswidriger Inhalte und die Ausübung gesetzlicher Rechte sind und bleiben kostenlos — unabhängig davon, ob Sie diesen Service nutzen.',
'questions_heading' => 'Rückfragen zu Meldungen',
'questions_links' => 'Für Meldungen nutzen Sie bitte vorrangig die Melde-Links direkt bei der jeweiligen Pressemitteilung.',
'questions_reply' => 'Nach Absenden einer Meldung erhalten Sie eine Eingangsbestätigung. Für Rückfragen zu einer bestehenden Meldung können Sie auf diese Bestätigung antworten oder uns unter Angabe des Vorgangs über unser :contact erreichen.',
'languages' => 'Kommunikationssprachen: Deutsch, Englisch',
],
'report_form' => [
'title_illegal' => 'Rechtswidrige Inhalte melden',
'title_contact_data' => 'Eigene Kontaktdaten entfernen lassen',
'meta_illegal' => 'Rechtswidrige Inhalte oder Rechteverletzungen in einer Pressemitteilung melden (DSA) — kostenlos, mit Eingangsbestätigung.',
'meta_contact_data' => 'Entfernung eigener personenbezogener Kontaktdaten aus einer Pressemitteilung beantragen (DSGVO) — kostenlos.',
'breadcrumb' => 'Inhalte melden',
'intro_illegal' => 'Nutzen Sie dieses Formular, wenn Sie eine veröffentlichte Pressemitteilung für rechtswidrig halten oder Ihre Rechte verletzt sehen. Die Meldung ist kostenlos; Sie erhalten unverzüglich eine Eingangsbestätigung mit Vorgangsnummer und anschließend unsere begründete Entscheidung.',
'intro_contact_data' => 'Nutzen Sie dieses Formular, wenn Ihre persönlichen Kontaktdaten (z. B. Name, Telefonnummer oder E-Mail-Adresse) in einer Pressemitteilung stehen. Die Prüfung erfolgt nach den Vorgaben der DSGVO und ist für Sie kostenlos.',
'overview' => 'Alle Wege im Überblick:',
'overview_link' => 'Inhalte melden oder Änderungen beantragen',
'label_url' => 'URL der betroffenen Pressemitteilung',
'label_name' => 'Ihr Name',
'label_email_illegal' => 'Ihre E-Mail-Adresse',
'label_email_contact_data' => 'Ihre E-Mail-Adresse (für Rückmeldung und ggf. Bestätigungslink)',
'label_message_illegal' => 'Begründung: Warum halten Sie den Inhalt für rechtswidrig?',
'label_message_contact_data' => 'Welche Angaben sind betroffen?',
'placeholder_message_illegal' => 'Bitte beschreiben Sie konkret, welche Inhalte betroffen sind und warum.',
'placeholder_message_contact_data' => 'z. B. „Mein Name und meine Telefonnummer stehen im Pressekontakt."',
'truth_affirmation' => 'Ich versichere, dass ich diese Meldung nach bestem Wissen und Gewissen abgebe und die Angaben richtig und vollständig sind.',
'submit_illegal' => 'Meldung absenden',
'submit_contact_data' => 'Antrag absenden',
'privacy_note' => 'Ihre Angaben werden ausschließlich zur Bearbeitung Ihrer Meldung verarbeitet — Details in der <a href=":url" class="underline hover:text-ink">Datenschutzerklärung</a>. Meldungen und die Ausübung gesetzlicher Rechte sind kostenlos.',
'flash_honeypot' => 'Vielen Dank. Ihre Meldung ist eingegangen.',
'flash_received' => 'Vielen Dank. Ihre Meldung ist unter der Vorgangsnummer :reference eingegangen — Sie erhalten eine Eingangsbestätigung per E-Mail.',
'validation_truth' => 'Bitte bestätigen Sie, dass Sie die Meldung nach bestem Wissen und Gewissen abgeben.',
'throttle' => 'Zu viele Anfragen. Bitte versuchen Sie es in :minutes Minuten erneut.',
],
'cancellation' => [
'meta_title' => 'Verträge hier kündigen',
'meta_description' => 'Kündigen Sie Ihren laufenden Vertrag online – ohne Login, über die gesetzliche Bestätigungsseite nach § 312k BGB.',
'title' => 'Verträge hier kündigen',
'breadcrumb' => 'Kündigung',
'lead' => 'Hier können Sie Ihren laufenden Vertrag (z. B. Ihr Abo) online und ohne Anmeldung kündigen. Nach dem Absenden erhalten Sie sofort eine automatische Eingangsbestätigung per E-Mail mit Datum und Uhrzeit des Zugangs.',
'received_eyebrow' => 'Kündigung',
'received_heading' => 'Kündigung eingegangen',
'kind_legend' => 'Art der Kündigung',
'kind_ordinary' => 'Ordentliche Kündigung',
'kind_ordinary_desc' => 'Kündigung zum Ende der Laufzeit bzw. zum nächstmöglichen Zeitpunkt. Ein Grund ist nicht erforderlich.',
'kind_extraordinary' => 'Außerordentliche Kündigung',
'kind_extraordinary_desc' => 'Kündigung aus wichtigem Grund mit sofortiger Wirkung.',
'label_reason' => 'Kündigungsgrund',
'who_legend' => 'Wer kündigt?',
'label_name' => 'Ihr Name',
'label_email' => 'E-Mail-Adresse',
'label_email_hint' => '(zur Vertragszuordnung und für die Eingangsbestätigung)',
'label_reference' => 'Vertrags-/Rechnungsnummer',
'label_reference_hint' => '(falls zur Hand)',
'when_legend' => 'Zu welchem Zeitpunkt?',
'mode_asap' => 'Zum nächstmöglichen Zeitpunkt',
'mode_date' => 'Zu einem bestimmten Datum',
'label_date' => 'Gewünschtes Beendigungsdatum',
'privacy_note' => 'Ihre Angaben werden nur zur Bearbeitung der Kündigung verarbeitet (<a href=":url" class="underline hover:text-ink">Datenschutz</a>). Mit dem Klick geht Ihre Kündigungserklärung bei uns ein.',
'submit' => 'jetzt kündigen',
'account_hint' => 'Hinweis: Angemeldet geht es noch schneller — in Ihrem Konto unter „Buchungen & Add-ons" kündigen Sie Ihr Abo mit wenigen Klicks.',
'flash_received' => 'Ihre Kündigung ist bei uns eingegangen. Sie erhalten umgehend eine automatische Eingangsbestätigung per E-Mail mit Datum und Uhrzeit des Zugangs.',
'validation_reason' => 'Bitte geben Sie den Grund der außerordentlichen Kündigung an.',
'validation_date' => 'Bitte geben Sie das gewünschte Beendigungsdatum an.',
'throttle' => 'Zu viele Anfragen. Bitte versuchen Sie es in :minutes Minuten erneut.',
],
'imprint' => [
'meta_title' => 'Impressum',
'meta_description' => 'Impressum und Anbieterkennzeichnung gemäß § 5 DDG.',
'title' => 'Impressum',
'breadcrumb' => 'Impressum',
'provider_heading' => 'Anbieter (Angaben gemäß § 5 DDG)',
'email_label' => 'E-Mail',
'phone_label' => 'Telefon',
'phone_note' => '(kein telefonischer Support)',
'vat_heading' => 'Umsatzsteuer-Identifikationsnummer',
'vat_text' => 'Umsatzsteuer-Identifikationsnummer gemäß § 27a UStG:',
'editorial_heading' => 'Verantwortlich für journalistisch-redaktionelle Inhalte (§ 18 Abs. 2 MStV)',
'about_heading' => 'Zu diesem Angebot',
'about_text' => ':portal (:host) wird betrieben von adametz.media. Zum Verbund gehören die Presseportale <strong>presseecho.de</strong> und <strong>businessportal24.com</strong> sowie das zentrale Publisher-Konto <strong>pressekonto</strong> (<a href=":hub_url">:hub_label</a>), über das Registrierung, Buchung und Verwaltung erfolgen.',
'content_heading' => 'Verantwortlichkeit für Inhalte',
'content_text' => 'Die auf den Portalen veröffentlichten Pressemitteilungen sind Inhalte der jeweiligen einreichenden Unternehmen; diese sind für ihre Inhalte selbst verantwortlich. Der Anbieter ist Hostingdiensteanbieter im Sinne des Digital Services Act (Verordnung (EU) 2022/2065); für fremde Inhalte gelten die Haftungsregeln des DSA (Art. 6) und des § 7 DDG. Wenn Sie einen Inhalt für rechtswidrig halten oder Ihre Rechte verletzt sehen, nutzen Sie bitte unser <a href=":report_url">Meldeverfahren</a> — Meldungen sind kostenlos.',
'contact_point' => '<strong>Kontaktpunkt</strong> gemäß Art. 11 und 12 DSA (für Behörden und Nutzer):<br>E-Mail: <a href="mailto::email">:email</a> · Kommunikationssprachen: Deutsch, Englisch',
'prohibited_heading' => 'Verbotene Inhalte',
'prohibited_text' => 'Inhalte, die gegen geltendes Recht oder unsere <a href=":guidelines_url">Veröffentlichungsrichtlinien</a> verstoßen, werden nicht veröffentlicht bzw. nach Kenntnis entfernt. Bei Hinweisen auf Straftaten behalten wir uns die Erstattung einer Strafanzeige und die Weitergabe an die zuständigen Behörden vor.',
'copyright_heading' => 'Urheberrecht',
'copyright_text' => 'Die durch den Anbieter erstellten Inhalte und Werke auf diesen Seiten unterliegen dem deutschen Urheberrecht. Beiträge Dritter (insbesondere Pressemitteilungen) sind als solche gekennzeichnet; die Rechte liegen bei den jeweiligen Einreichern. Vervielfältigung, Bearbeitung und Verwertung außerhalb der Grenzen des Urheberrechts bedürfen der Zustimmung des jeweiligen Rechteinhabers.',
'dispute_heading' => 'Verbraucherstreitbeilegung',
'dispute_text' => 'Der Anbieter ist nicht bereit und nicht verpflichtet, an Streitbeilegungsverfahren vor einer Verbraucherschlichtungsstelle teilzunehmen (§ 36 VSBG). Die frühere Plattform der EU-Kommission zur Online-Streitbeilegung wurde zum 20. Juli 2025 eingestellt.',
],
];

222
lang/de/validation.php Normal file
View file

@ -0,0 +1,222 @@
<?php
/*
* Deutsche Validierungsmeldungen (Laravel-Standardregeln). Fallback-Locale
* ist `en` (Framework-Texte aus dem Vendor); diese Datei greift auf allen
* Seiten mit Locale `de` — Portal, Hub und /de-Ausgabe der Spokes.
*/
return [
'accepted' => ':attribute muss akzeptiert werden.',
'accepted_if' => ':attribute muss akzeptiert werden, wenn :other :value ist.',
'active_url' => ':attribute ist keine gültige Internet-Adresse.',
'after' => ':attribute muss ein Datum nach dem :date sein.',
'after_or_equal' => ':attribute muss ein Datum nach dem :date oder gleich dem :date sein.',
'alpha' => ':attribute darf nur aus Buchstaben bestehen.',
'alpha_dash' => ':attribute darf nur aus Buchstaben, Zahlen, Binde- und Unterstrichen bestehen.',
'alpha_num' => ':attribute darf nur aus Buchstaben und Zahlen bestehen.',
'any_of' => ':attribute ist ungültig.',
'array' => ':attribute muss eine Liste sein.',
'ascii' => ':attribute darf nur alphanumerische Ein-Byte-Zeichen und Symbole enthalten.',
'before' => ':attribute muss ein Datum vor dem :date sein.',
'before_or_equal' => ':attribute muss ein Datum vor dem :date oder gleich dem :date sein.',
'between' => [
'array' => ':attribute muss zwischen :min und :max Elemente haben.',
'file' => ':attribute muss zwischen :min und :max Kilobytes groß sein.',
'numeric' => ':attribute muss zwischen :min und :max liegen.',
'string' => ':attribute muss zwischen :min und :max Zeichen lang sein.',
],
'boolean' => ':attribute muss „wahr" oder „falsch" sein.',
'can' => ':attribute enthält einen unzulässigen Wert.',
'confirmed' => ':attribute stimmt nicht mit der Bestätigung überein.',
'contains' => ':attribute enthält einen erforderlichen Wert nicht.',
'current_password' => 'Das Passwort ist falsch.',
'date' => ':attribute muss ein gültiges Datum sein.',
'date_equals' => ':attribute muss ein Datum gleich dem :date sein.',
'date_format' => ':attribute entspricht nicht dem gültigen Format für :format.',
'decimal' => ':attribute muss :decimal Dezimalstellen haben.',
'declined' => ':attribute muss abgelehnt werden.',
'declined_if' => ':attribute muss abgelehnt werden, wenn :other :value ist.',
'different' => ':attribute und :other müssen sich unterscheiden.',
'digits' => ':attribute muss :digits Stellen haben.',
'digits_between' => ':attribute muss zwischen :min und :max Stellen haben.',
'dimensions' => ':attribute hat ungültige Bildabmessungen.',
'distinct' => ':attribute enthält einen bereits vorhandenen Wert.',
'doesnt_contain' => ':attribute darf keinen der folgenden Werte enthalten: :values.',
'doesnt_end_with' => ':attribute darf nicht mit einem der folgenden Werte enden: :values.',
'doesnt_start_with' => ':attribute darf nicht mit einem der folgenden Werte beginnen: :values.',
'email' => ':attribute muss eine gültige E-Mail-Adresse sein.',
'ends_with' => ':attribute muss mit einem der folgenden Werte enden: :values.',
'enum' => 'Der ausgewählte Wert für :attribute ist ungültig.',
'exists' => 'Der ausgewählte Wert für :attribute ist ungültig.',
'extensions' => ':attribute muss eine der folgenden Dateiendungen haben: :values.',
'file' => ':attribute muss eine Datei sein.',
'filled' => ':attribute muss ausgefüllt sein.',
'gt' => [
'array' => ':attribute muss mehr als :value Elemente haben.',
'file' => ':attribute muss größer als :value Kilobytes sein.',
'numeric' => ':attribute muss größer als :value sein.',
'string' => ':attribute muss länger als :value Zeichen sein.',
],
'gte' => [
'array' => ':attribute muss mindestens :value Elemente haben.',
'file' => ':attribute muss größer oder gleich :value Kilobytes sein.',
'numeric' => ':attribute muss größer oder gleich :value sein.',
'string' => ':attribute muss mindestens :value Zeichen lang sein.',
],
'hex_color' => ':attribute muss eine gültige Hexadezimal-Farbe sein.',
'image' => ':attribute muss ein Bild sein.',
'in' => 'Der ausgewählte Wert für :attribute ist ungültig.',
'in_array' => ':attribute kommt in :other nicht vor.',
'in_array_keys' => ':attribute muss mindestens einen der folgenden Schlüssel enthalten: :values.',
'integer' => ':attribute muss eine ganze Zahl sein.',
'ip' => ':attribute muss eine gültige IP-Adresse sein.',
'ipv4' => ':attribute muss eine gültige IPv4-Adresse sein.',
'ipv6' => ':attribute muss eine gültige IPv6-Adresse sein.',
'json' => ':attribute muss ein gültiger JSON-String sein.',
'list' => ':attribute muss eine Liste sein.',
'lowercase' => ':attribute muss in Kleinbuchstaben sein.',
'lt' => [
'array' => ':attribute muss weniger als :value Elemente haben.',
'file' => ':attribute muss kleiner als :value Kilobytes sein.',
'numeric' => ':attribute muss kleiner als :value sein.',
'string' => ':attribute muss kürzer als :value Zeichen sein.',
],
'lte' => [
'array' => ':attribute darf höchstens :value Elemente haben.',
'file' => ':attribute muss kleiner oder gleich :value Kilobytes sein.',
'numeric' => ':attribute muss kleiner oder gleich :value sein.',
'string' => ':attribute darf höchstens :value Zeichen lang sein.',
],
'mac_address' => ':attribute muss eine gültige MAC-Adresse sein.',
'max' => [
'array' => ':attribute darf höchstens :max Elemente haben.',
'file' => ':attribute darf höchstens :max Kilobytes groß sein.',
'numeric' => ':attribute darf höchstens :max sein.',
'string' => ':attribute darf höchstens :max Zeichen lang sein.',
],
'max_digits' => ':attribute darf höchstens :max Stellen haben.',
'mimes' => ':attribute muss eine Datei des Typs :values sein.',
'mimetypes' => ':attribute muss eine Datei des Typs :values sein.',
'min' => [
'array' => ':attribute muss mindestens :min Elemente haben.',
'file' => ':attribute muss mindestens :min Kilobytes groß sein.',
'numeric' => ':attribute muss mindestens :min sein.',
'string' => ':attribute muss mindestens :min Zeichen lang sein.',
],
'min_digits' => ':attribute muss mindestens :min Stellen haben.',
'missing' => ':attribute darf nicht vorhanden sein.',
'missing_if' => ':attribute darf nicht vorhanden sein, wenn :other :value ist.',
'missing_unless' => ':attribute darf nicht vorhanden sein, außer :other ist :value.',
'missing_with' => ':attribute darf nicht vorhanden sein, wenn :values vorhanden ist.',
'missing_with_all' => ':attribute darf nicht vorhanden sein, wenn :values vorhanden sind.',
'multiple_of' => ':attribute muss ein Vielfaches von :value sein.',
'not_in' => 'Der ausgewählte Wert für :attribute ist ungültig.',
'not_regex' => ':attribute hat ein ungültiges Format.',
'numeric' => ':attribute muss eine Zahl sein.',
'password' => [
'letters' => ':attribute muss mindestens einen Buchstaben enthalten.',
'mixed' => ':attribute muss mindestens einen Groß- und einen Kleinbuchstaben enthalten.',
'numbers' => ':attribute muss mindestens eine Zahl enthalten.',
'symbols' => ':attribute muss mindestens ein Sonderzeichen enthalten.',
'uncompromised' => ':attribute wurde in einem Datenleck gefunden. Bitte wählen Sie ein anderes :attribute.',
],
'present' => ':attribute muss vorhanden sein.',
'present_if' => ':attribute muss vorhanden sein, wenn :other :value ist.',
'present_unless' => ':attribute muss vorhanden sein, außer :other ist :value.',
'present_with' => ':attribute muss vorhanden sein, wenn :values vorhanden ist.',
'present_with_all' => ':attribute muss vorhanden sein, wenn :values vorhanden sind.',
'prohibited' => ':attribute ist unzulässig.',
'prohibited_if' => ':attribute ist unzulässig, wenn :other :value ist.',
'prohibited_if_accepted' => ':attribute ist unzulässig, wenn :other akzeptiert wurde.',
'prohibited_if_declined' => ':attribute ist unzulässig, wenn :other abgelehnt wurde.',
'prohibited_unless' => ':attribute ist unzulässig, außer :other ist in :values enthalten.',
'prohibits' => ':attribute verbietet die Angabe von :other.',
'regex' => ':attribute hat ein ungültiges Format.',
'required' => ':attribute muss ausgefüllt werden.',
'required_array_keys' => ':attribute muss folgende Einträge enthalten: :values.',
'required_if' => ':attribute muss ausgefüllt werden, wenn :other :value ist.',
'required_if_accepted' => ':attribute muss ausgefüllt werden, wenn :other akzeptiert wurde.',
'required_if_declined' => ':attribute muss ausgefüllt werden, wenn :other abgelehnt wurde.',
'required_unless' => ':attribute muss ausgefüllt werden, wenn :other nicht :values ist.',
'required_with' => ':attribute muss ausgefüllt werden, wenn :values ausgefüllt ist.',
'required_with_all' => ':attribute muss ausgefüllt werden, wenn :values ausgefüllt sind.',
'required_without' => ':attribute muss ausgefüllt werden, wenn :values nicht ausgefüllt ist.',
'required_without_all' => ':attribute muss ausgefüllt werden, wenn keines der Felder :values ausgefüllt ist.',
'same' => ':attribute und :other müssen übereinstimmen.',
'size' => [
'array' => ':attribute muss genau :size Elemente haben.',
'file' => ':attribute muss :size Kilobytes groß sein.',
'numeric' => ':attribute muss gleich :size sein.',
'string' => ':attribute muss :size Zeichen lang sein.',
],
'starts_with' => ':attribute muss mit einem der folgenden Werte beginnen: :values.',
'string' => ':attribute muss ein String sein.',
'timezone' => ':attribute muss eine gültige Zeitzone sein.',
'unique' => ':attribute ist bereits vergeben.',
'uploaded' => ':attribute konnte nicht hochgeladen werden.',
'uppercase' => ':attribute muss in Großbuchstaben sein.',
'url' => ':attribute muss eine gültige URL sein.',
'ulid' => ':attribute muss eine gültige ULID sein.',
'uuid' => ':attribute muss eine gültige UUID sein.',
/*
* Eigene Meldungen für einzelne Regeln/Felder:
* 'custom' => ['attribute-name' => ['rule-name' => 'custom-message']],
*/
'custom' => [],
/*
* Deutsche Feldbezeichnungen, damit Meldungen keine technischen
* Feldnamen wie "reported_url" enthalten.
*/
'attributes' => [
'name' => 'Name',
'email' => 'E-Mail-Adresse',
'password' => 'Passwort',
'current_password' => 'Aktuelles Passwort',
'message' => 'Nachricht',
'topic' => 'Anliegen',
'page_url' => 'Seiten-URL',
'title' => 'Titel',
'subtitle' => 'Untertitel',
'text' => 'Text',
'keywords' => 'Schlagwörter',
'language' => 'Sprache',
'category_id' => 'Rubrik',
'company_id' => 'Unternehmen',
'reported_url' => 'URL der betroffenen Pressemitteilung',
'requester_name' => 'Name',
'requester_email' => 'E-Mail-Adresse',
'truth_affirmed' => 'Bestätigung',
'kind' => 'Art der Kündigung',
'reason' => 'Kündigungsgrund',
'contract_reference' => 'Vertrags-/Rechnungsnummer',
'terminate_mode' => 'Beendigungszeitpunkt',
'terminate_at' => 'Beendigungsdatum',
'phone' => 'Telefonnummer',
'street' => 'Straße',
'zip' => 'Postleitzahl',
'city' => 'Ort',
'country' => 'Land',
'website' => 'Website',
// Livewire-Properties der PM-Editoren (camelCase) — ohne diese
// Einträge erzeugt Laravel Meldungen wie "category id muss …".
'companyId' => 'Firma',
'categoryId' => 'Kategorie',
'contactId' => 'Pressekontakt',
'backlinkUrl' => 'Backlink-URL',
'boilerplateOverride' => 'Boilerplate-Text',
'publishMode' => 'Veröffentlichungsmodus',
'scheduledDate' => 'Veröffentlichungsdatum',
'scheduledTime' => 'Veröffentlichungsuhrzeit',
'scheduledAt' => 'Veröffentlichungstermin',
'embargoAt' => 'Embargo-Termin',
'portal' => 'Portal',
'aiTextDeclaration' => 'KI-Kennzeichnung des Textes',
'aiDeclarationConfirmed' => 'Bestätigung der KI-Angaben',
],
];

View file

@ -36,6 +36,13 @@ return [
'pricing' => 'Preise',
'homepage' => 'Startseite',
'login' => 'Anmelden',
'login_modal_eyebrow' => 'Ihr Zugang',
'login_modal_title' => 'Anmelden mit pressekonto.com',
'login_modal_text' => 'pressekonto.com ist die zentrale Plattform hinter diesem Portal. Dort verwalten Sie Ihr Konto, erstellen Ihre Pressemitteilungen und veröffentlichen sie auf allen angeschlossenen Presseportalen – mit einem einzigen Zugang.',
'login_modal_login' => 'Direkt zur Anmeldung',
'login_modal_hub' => 'Mehr über pressekonto.com',
'login_modal_note' => 'Noch kein Konto? Die Registrierung ist kostenlos und dauert nur wenige Minuten.',
'login_modal_close' => 'Fenster schließen',
'publish' => 'Veröffentlichen',
'publish_aria' => 'Pressemitteilung veröffentlichen',
'search_label' => 'Pressemitteilungen, Unternehmen, Branchen, ISIN durchsuchen',
@ -54,6 +61,7 @@ return [
'home' => 'Startseite',
'menu' => 'Menü',
'aria_label' => 'Hauptnavigation',
'more' => 'Mehr',
'open_menu' => 'Hauptmenü öffnen',
'section' => 'Rubrik',
],
@ -142,7 +150,7 @@ return [
'daily_limit' => 'max. pro Tag',
'no_daily_limit' => 'kein Tageslimit',
'select' => 'Auswählen',
'footnote' => 'Alle Preise zzgl. MwSt. · Jederzeit kündbar · Auch ohne Abo als Einzelveröffentlichung möglich.',
'footnote' => 'Alle Preise zzgl. MwSt. · Monatstarife monatlich, Jahrestarife jährlich kündbar · Auch ohne Abo als Einzelveröffentlichung möglich.',
'publish_direct' => 'Direkt veröffentlichen',
],
@ -165,11 +173,46 @@ return [
'cancellation' => 'Verträge hier kündigen',
'imprint' => 'Impressum',
'privacy' => 'Datenschutz',
'tagline_short' => 'Pressemitteilungen · DACH',
'tagline_long_presseecho' => 'Fachmeldungen aus Wirtschaft und Industrie. Qualitätsgeprüft. Strukturiert distribuiert.',
'tagline_long_businessportal24' => 'Veröffentlichungs-Portal für qualitätsgeprüfte Pressemitteilungen aus Deutschland, Österreich und der Schweiz.',
'rights' => '© :year :brand · Alle Rechte vorbehalten',
'terms' => 'AGB',
'guidelines' => 'Richtlinien',
'report' => 'Inhalte melden',
],
'launcher' => [
'contact' => 'Kontakt',
'title' => 'Wie können wir helfen?',
'close' => 'Schließen',
'intro' => 'Wählen Sie Ihr Anliegen — wir melden uns werktags schnellstmöglich zurück.',
'topic_contact' => 'Kontaktaufnahme',
'topic_contact_desc' => 'Allgemeine Frage oder Anfrage an uns',
'topic_bug' => 'Fehler melden',
'topic_bug_desc' => 'Etwas funktioniert nicht wie erwartet',
'topic_press' => 'Pressemitteilung melden',
'topic_press_desc' => 'Hinweis zu einem veröffentlichten Beitrag',
'topic_feedback' => 'Feedback geben',
'topic_feedback_desc' => 'Lob, Kritik oder Verbesserungsvorschlag',
'back' => 'Anderes Anliegen wählen',
'name' => 'Ihr Name',
'email' => 'E-Mail-Adresse',
'message' => 'Ihre Nachricht',
'message_placeholder' => 'Wie können wir Ihnen helfen?',
'legal_hint' => 'Rechtswidrige Inhalte oder Datenschutzanliegen?',
'legal_link' => 'Zum förmlichen Meldeverfahren',
'privacy_note' => 'Ihre Angaben werden nur zur Bearbeitung verarbeitet',
'submit' => 'Nachricht senden',
'success' => 'Vielen Dank für Ihre Nachricht. Wir melden uns schnellstmöglich bei Ihnen zurück.',
'throttle' => 'Zu viele Anfragen. Bitte versuchen Sie es in :minutes Minuten erneut.',
'validation_name' => 'Bitte geben Sie Ihren Namen an.',
'validation_email' => 'Bitte geben Sie eine gültige E-Mail-Adresse an.',
'validation_message' => 'Bitte geben Sie eine Nachricht ein.',
'validation_message_min' => 'Ihre Nachricht sollte mindestens :min Zeichen lang sein.',
'validation_message_max' => 'Ihre Nachricht darf höchstens :max Zeichen lang sein.',
],
'search' => [
'meta_title' => 'Pressemitteilungen durchsuchen – :brand',
'meta_description' => 'Durchsuchen Sie das geprüfte Pressemitteilungs-Archiv nach Stichwort, Unternehmen und Branche – qualitätsgeprüft und dauerhaft auffindbar im DACH-Raum.',
@ -273,8 +316,6 @@ return [
'words' => ':count Wörter',
'recommended' => 'Empfehlung',
'recommended_hint' => 'Diese Pressemitteilung erreicht einen hohen Content-Score — basierend auf Quellenqualität, Verifizierungsstatus und inhaltlicher Relevanz.',
'image_placeholder' => 'Bild · Pressefoto',
'image_placeholder_company' => 'Bild · Pressefoto :company',
'photo' => 'Foto',
'about_company' => 'Über das Unternehmen',
'press_contact' => 'Pressekontakt',
@ -299,6 +340,9 @@ return [
'report_content' => 'Inhalt melden',
'remove_data' => 'Eigene Daten entfernen',
'reports_free' => 'Meldungen sind kostenlos.',
'manage_question' => 'Sie sind als Firma oder Pressekontakt dieser Mitteilung hinterlegt?',
'manage_link' => 'Mit der hinterlegten E-Mail-Adresse bei pressekonto anmelden',
'manage_hint' => 'Sie erhalten einen Anmeldelink per E-Mail – ganz ohne Passwort.',
'more_from' => 'Mehr von :company',
'more_from_sub' => 'Aktuelle Mitteilungen aus diesem Newsroom',
'all_from' => 'Alle Mitteilungen von :company',

View file

@ -27,7 +27,7 @@ return [
'plans' => [
'eyebrow' => 'Subscriptions',
'title' => 'Subscriptions with a monthly quota',
'subtitle' => 'Cancel monthly. Annual payment: 2 months free — after the first twelve months, billing switches to monthly unless you actively choose annual payment again.',
'subtitle' => 'Monthly plans renew monthly and can be cancelled monthly. Annual payment: 2 months free — the subscription renews for twelve months at a time and can be cancelled at the end of the term.',
'per_month' => '/ month',
'per_year' => '/ year',
'net' => 'net, plus VAT.',

481
lang/en/static.php Normal file
View file

@ -0,0 +1,481 @@
<?php
/*
* English translations of the static frontend pages (FAQ, help, publish,
* API, reporting, cancellation, imprint). The legally binding long-form
* texts (terms, privacy policy, guidelines) intentionally remain German
* (docs/legal/Entscheidung.md O-C: English versions only after legal
* review) — the EN edition shows the `legal.german_binding_notice` there.
*/
return [
'legal' => [
'eyebrow' => 'Legal',
'german_binding_notice_title' => 'Language notice',
'german_binding_notice' => 'This legal text is currently only available in German. The German version is authoritative and legally binding. If you have questions, you can reach us in German and English at :email.',
],
'faq' => [
'meta_title' => 'Frequently asked questions (FAQ)',
'meta_description' => 'Answers to the most important questions about publishing press releases, accounts, billing and newsrooms.',
'eyebrow' => 'Help',
'title' => 'Frequently asked questions',
'lead' => 'Quickly find answers to the most important questions about publishing, your account and your newsroom.',
'breadcrumb' => 'FAQ',
'cat_start' => 'Getting started',
'q_first_pm' => 'How do I publish my first press release?',
'a_first_pm' => 'Register in the central publisher area (pressekonto), create your company profile and write your release in the editor — with text, images, attachments and a press contact. After submission it goes through our content review and is then published on presseecho.de and businessportal24.com.',
'q_audience' => 'Who is this service for?',
'a_audience' => 'Exclusively for companies, self-employed professionals and agencies. Publication always happens via a company profile — it is not a service for consumers.',
'q_register_to_read' => 'Do I need to register to read press releases?',
'a_register_to_read' => 'No, all published press releases are freely accessible. Registration is only required if you want to publish yourself.',
'q_review_time' => 'How long does it take for my press release to go live?',
'a_review_time' => 'On business days the content review is usually completed the same day. Once approved, the release goes online immediately — or automatically at your scheduled date.',
'cat_account' => 'Account & billing',
'q_change_plan' => 'How do I change my plan?',
'a_change_plan' => 'In your account under "Bookings & add-ons" you can upgrade or downgrade at any time. Upgrades take effect immediately, downgrades at the next billing period.',
'q_payment_methods' => 'Which payment methods are accepted?',
'a_payment_methods' => 'Billing runs securely via Stripe — for example by credit card or SEPA direct debit. Existing customers with an ongoing agreement continue to pay by invoice.',
'q_cancel_plan' => 'Can I cancel my plan?',
'a_cancel_plan' => 'Yes. Monthly plans renew monthly and can be cancelled monthly; annual plans renew for twelve months at a time and can be cancelled at the end of the term. You can cancel directly in your account or, without signing in, via the <a href=":url">cancellation page</a>.',
'q_delete_account' => 'Can I delete my account?',
'a_delete_account' => 'Yes, at any time in your account settings. Press releases already published remain online in the archive but are no longer linked to your account.',
'cat_content' => 'Press releases & content',
'q_file_formats' => 'Which file formats are supported?',
'a_file_formats' => 'Images: JPG, PNG, WebP (max. 16 MB in the editor; max. 8 MB via the API). Attachments: PDF, Word, Excel, PowerPoint, ZIP and TXT (max. 25 MB per file).',
'q_corrections' => 'Can I correct a press release after publication?',
'a_corrections' => 'Yes — we correct instead of deleting: the URL of your release is preserved, references and links keep working. Contact our support with your correction requests.',
'q_seo' => 'How do I optimise my press release for SEO?',
'a_seo' => 'Use meaningful headlines, integrate relevant keywords naturally, add image titles and structure the text with subheadings.',
'q_rejection' => 'What happens if a release is rejected?',
'a_rejection' => 'You receive the rejection with a reason and can revise and resubmit the release. A rejected release does not use up any quota.',
'cat_newsroom' => 'Newsroom & features',
'q_newsroom' => 'What is a newsroom?',
'a_newsroom' => 'Your company page on both portals, bundling all your press releases — with logo, short profile and press contacts.',
'q_stats' => 'Which statistics do I see?',
'a_stats' => 'The views of each release across both portals, directly in your account. The figures are updated continuously.',
'q_api' => 'Is there an API?',
'a_api' => 'Yes — a token-based REST API for submitting releases, checking statuses and uploading images. Details are on the <a href=":url">API page</a>; you create your tokens directly in your account once an active booking exists.',
'not_found' => 'Question not answered?',
'support_intro' => 'Our support team is happy to help – by email at',
'support_outro' => 'or directly via the contact form.',
'write_support' => 'Contact support',
'visit_help' => 'Visit the help center',
],
'help' => [
'meta_title' => 'Help center',
'meta_description' => 'Help center: answers, guides and direct contact with the support team.',
'eyebrow' => 'Help',
'title' => 'Help center',
'lead' => 'Find answers and guides – or contact our support team directly.',
'breadcrumb' => 'Help',
'quick_faq' => 'FAQ',
'quick_faq_desc' => 'Frequently asked questions',
'quick_publish' => 'Publish',
'quick_publish_desc' => 'From draft to release in a few steps',
'quick_contact' => 'Contact',
'quick_contact_desc' => 'Direct line to support',
'topics_heading' => 'Help topics',
'topic_start' => 'Getting started',
'link_create_account' => 'Create an account',
'link_first_pm' => 'Publish your first press release',
'link_discover_newsrooms' => 'Discover newsrooms',
'link_faq_start' => 'Common questions for getting started',
'topic_releases' => 'Press releases',
'link_file_formats' => 'File formats and sizes',
'link_seo' => 'SEO optimisation',
'link_corrections' => 'Corrections after publication',
'topic_account' => 'Account & billing',
'link_change_plan' => 'Change plan',
'link_invoices' => 'Access invoices in your account',
'link_cancel' => 'Cancel contract',
'topic_advanced' => 'Advanced features',
'link_api' => 'API integration',
'link_stats' => 'View statistics',
'link_newsroom' => 'Maintain your newsroom',
'cta_heading' => 'Need more help?',
'cta_text' => 'Our support team replies by email on business days.',
'cta_contact' => 'Contact support',
'cta_faq' => 'Browse the FAQ',
],
'publish' => [
'meta_title' => 'Publish a press release – :brand',
'meta_description' => 'Publish quality-checked press releases, permanently discoverable in the archive. Fair prices, no lock-in – submission via the central publisher area.',
'breadcrumb' => 'Publish',
'quality_since' => 'Quality-checked since :year',
'help_support' => 'Help & support',
'pricing' => 'Pricing',
'eyebrow' => 'Press office · Publish',
'h1_line1' => 'Publish a press release.',
'h1_line2' => 'Reviewed. Permanently discoverable.',
'hero_text' => ':brand is the press platform for mid-sized companies, self-employed professionals and PR agencies from Germany, Austria and Switzerland. Every release is quality-checked and remains permanently discoverable in the archive.',
'hub_eyebrow' => 'Submit via the publisher area',
'hub_heading' => 'Submissions run through the central publisher area.',
'hub_text' => 'That is where you manage releases, credits and your newsroom — one account, both portals included (businessportal24 & presseecho.de).',
'hub_cta' => 'Go to the publisher area',
'hub_note' => 'Sign in via magic link · no lock-in',
'fact_since' => 'Since',
'fact_since_sub' => 'in operation · continuous archiving',
'fact_archive' => 'Archive',
'fact_archive_sub' => 'releases still available',
'fact_reach' => 'Reach',
'fact_reach_sub' => 'Germany · Austria · Switzerland',
'fact_today' => 'Today',
'fact_today_sub' => 'published / in review — as of :date',
'example_heading' => 'What a published release looks like',
'example_verified' => 'Verified',
'example_category_fallback' => 'Industry · Engineering',
'example_title_fallback' => 'Mid-sized manufacturer opens new plant and creates 84 jobs',
'example_text_fallback' => 'Coesfeld · Brinkmann Präzisionstechnik GmbH has commissioned an extension building. Investment volume: 9.4 million euros.',
'example_company_fallback' => 'Brinkmann Präzisionstechnik GmbH',
'example_read_time' => ':minutes min read',
'example_note' => 'Example. Every release gets a permanent URL, a structured fact sheet and remains in the searchable archive.',
'newsrooms_recent' => 'Recently active newsrooms',
'newsrooms_more' => 'and :count more publishing companies.',
'newsrooms_all' => 'All newsrooms',
'trust_eyebrow' => 'What defines us',
'trust_heading' => 'Four principles that carry this platform',
'trust_1_k' => 'Quality',
'trust_1_t' => 'Reviewed releases',
'trust_1_d' => 'Every release goes through a quality check before it goes online. No SEO spam, no plain advertisements.',
'trust_2_k' => 'Discoverability',
'trust_2_t' => 'Permanently archived',
'trust_2_d' => 'Press releases stay in the archive – even after years. Releases from more than a decade are still available.',
'trust_3_k' => 'Conditions',
'trust_3_t' => 'Fair prices, no lock-in',
'trust_3_d' => 'Transparent prices, no forced subscription, no contract traps. You pay for what you submit.',
'trust_4_k' => 'Handling mistakes',
'trust_4_t' => 'Correction instead of deletion',
'trust_4_d' => 'A mistake in a release? We correct instead of deleting – so references and links keep working.',
'flow_eyebrow' => 'How it works',
'flow_heading' => 'How it works — three steps',
'flow_note' => 'No magic language. What happens here happens visibly.',
'flow_1_meta' => '≈ 2 minutes',
'flow_1_t' => 'Create an account',
'flow_1_d' => 'With email address and password — optionally passwordless via magic link. Account and billing live in the central publisher area — one account for both portals.',
'flow_2_meta' => 'business days · within 24 h',
'flow_2_t' => 'Submit your release',
'flow_2_d' => 'Text, image, contact person. The automated content review runs right at submission.',
'flow_3_meta' => 'permanent · indexed',
'flow_3_t' => 'Publication',
'flow_3_d' => 'Online and archived after approval. Correctable at any time — the URL stays stable, references keep working.',
'flow_footnote' => 'Publication happens via the central publisher area and appears on both portals at no extra cost — presseecho.de and businessportal24.com.',
'occasions_eyebrow' => 'For whom',
'occasions_heading' => 'Typical occasions for a release',
'occasions_note' => 'A guide to suitability. An enumeration, not an exhaustive list.',
'occasion_1_t' => 'New products or services',
'occasion_1_d' => 'Market launches, product updates, new services.',
'occasion_2_t' => 'Personnel and management changes',
'occasion_2_d' => 'Appointments, promotions, farewells.',
'occasion_3_t' => 'Awards and certifications',
'occasion_3_d' => 'Awards, ISO and industry certificates, audits.',
'occasion_4_t' => 'Site openings, expansions, contracts',
'occasion_4_d' => 'Plants, branches, major contracts, investments.',
'occasion_5_t' => 'Event announcements',
'occasion_5_d' => 'Open days, industry conferences, annual general meetings.',
'occasion_6_t' => 'Studies and market analyses',
'occasion_6_d' => 'Own surveys, trend reports, industry figures.',
'scope_eyebrow' => 'Important scope note',
'scope_heading' => 'Not suitable: plain advertisements, SEO link-building texts or content without recognisable news value.',
'scope_text' => 'The content review protects the character of the platform. Releases that do not reach this threshold are returned with a short explanation — usually with a concrete suggestion for correction.',
'scope_ok_1' => 'Releases with a clear occasion and source',
'scope_ok_2' => 'Contact person with role and contact details',
'scope_no_1' => 'Plain sales and discount texts',
'scope_no_2' => 'Anonymous or unsourced content',
'pricing_eyebrow' => 'Pricing',
'pricing_heading' => 'You pay for what you submit.',
'pricing_logic' => 'Logic',
'pricing_logic_text' => 'Publish individually without a subscription or in a monthly plan — content review and both portals are always included.',
'pricing_point_1' => 'Both portals at no extra cost.',
'pricing_point_2' => 'Rejected releases do not use up any quota.',
'pricing_point_3' => 'Monthly plans cancellable monthly, annual plans at the end of the term.',
'pricing_anchor' => 'Anchor',
'pricing_single' => 'One publication without a subscription',
'pricing_single_note' => 'net · plus VAT · full scope of services.',
'pricing_plans_note' => 'Publishing regularly: plans from :price € / month with :quota releases.',
'pricing_overview' => 'Full overview',
'pricing_overview_text' => 'All plans, extra quotas, boost placements and agency conditions are in the pricing overview.',
'pricing_overview_cta' => 'Go to pricing',
'faq_eyebrow' => 'Common questions',
'faq_heading' => 'Answered briefly',
'faq_no_answer' => "Can't find an answer here?",
'faq_contact' => 'Get in touch directly',
'faq_response_note' => 'Reply by email on business days',
'faq_1_q' => 'How quickly will my release be published?',
'faq_1_a' => 'On business days usually within 24 hours of submission. For time-critical releases, prior arrangement is possible.',
'faq_2_q' => 'Does my release stay online permanently?',
'faq_2_a' => 'Yes. Releases are not deleted. Corrections are possible at any time — the URL is preserved.',
'faq_3_q' => 'Can I also publish on presseecho.de?',
'faq_3_a' => 'Yes — every release automatically appears on both portals, presseecho.de and businessportal24.com, at no extra cost and without double entry.',
'faq_4_q' => 'Do I need a subscription?',
'faq_4_a' => 'No. You can book a single press release at a fixed price without a subscription; for regular publishing, the subscription plans with a monthly or annual term are worthwhile.',
'faq_5_q' => 'What happens if there is a mistake in the release?',
'faq_5_a' => 'Correction instead of deletion: content is updated, the URL is preserved, links and references keep working.',
'cta_eyebrow' => 'Submit a release · Step one',
'cta_heading' => 'Ready to submit your release?',
'cta_text' => 'Create an account in two minutes, submit text and image, published after passing the content review. One account — both portals (businessportal24 & presseecho.de) included.',
'cta_examples' => 'Or look at examples first →',
],
'api' => [
'meta_title' => 'API documentation',
'meta_description' => 'REST API v1: create press releases programmatically, add images and submit them for review — token-based, JSON, versioned.',
'eyebrow' => 'Developers',
'title' => 'API documentation',
'lead' => 'Create press releases programmatically, add images and submit them for review — via the versioned REST API of the publisher hub.',
'breadcrumb' => 'API',
'basics_heading' => 'Basics',
'basics_text' => 'API v1 is a RESTful web service with JSON responses. Base URL: <strong>:base</strong>. A release created via the API is always a draft; it is only published after submission via the submit route and the subsequent content review — it then appears on both portals like any other release.',
'auth_heading' => 'Authentication',
'auth_text' => 'All requests require a personal API token as a bearer header: <code>Authorization: Bearer &lt;token&gt;</code>. Each token carries permissions (e.g. <code>press-releases:write</code>) that control access to the respective endpoints. You create and revoke tokens yourself in your publisher account under "API tokens" — an active booking (plan or single press release) is required. <strong>Existing customers of the legacy portals:</strong> your previous API keys were migrated and keep working — both as bearer tokens and in the old form (<code>X-ApiKey</code> header) and on the documented <code>/service/…</code> paths. For new integrations we recommend the current <code>/api/v1/…</code> endpoints with bearer tokens.',
'endpoints_heading' => 'Endpoints',
'group_releases' => 'Press releases',
'group_images' => 'Images',
'group_master_data' => 'Master data',
'permission' => 'Permission',
'ep_pr_index' => 'List your releases (paginated, filterable via ?status= and ?per_page=, max. 100).',
'ep_pr_store' => 'Create a new release — always as a draft (status draft).',
'ep_pr_show' => 'Fetch a release incl. company, category and images.',
'ep_pr_update' => 'Update a release — only in status draft or rejected.',
'ep_pr_submit' => 'Submit for content review — the only path towards publication.',
'ep_pr_destroy' => 'Delete a release — published releases are excluded.',
'ep_img_index' => 'List the images of a release.',
'ep_img_store' => 'Upload an image (multipart/form-data) — only for draft/rejected.',
'ep_img_destroy' => 'Remove an image — only for draft/rejected.',
'ep_companies_index' => 'List your company profiles (newsrooms).',
'ep_companies_show' => 'Fetch a company profile.',
'ep_categories_index' => 'Active categories incl. translations — provides the category_id for new releases.',
'fields_pr_heading' => 'Fields of a press release',
'fields_img_heading' => 'Fields of an image upload',
'th_field' => 'Field',
'th_type' => 'Type',
'th_required' => 'Required',
'th_description' => 'Description',
'required_yes' => 'yes',
'field_company_id' => 'ID of one of your company profiles — determines newsroom and portal.',
'field_category_id' => 'Category (see GET /categories).',
'field_language' => 'Language code, two characters: de or en.',
'field_title' => 'Headline, max. 255 characters.',
'field_text' => 'Content. Allowed HTML: p, br, h2, h3, strong, em, ul, ol, li, blockquote, a — everything else is stripped.',
'field_backlink_url' => 'Link to source/website, max. 255 characters.',
'field_keywords' => 'Keywords, comma-separated, max. 255 characters.',
'field_teaser' => 'Character offsets for the teaser excerpt.',
'field_no_export' => 'Exclude the release from feeds/exports.',
'field_image' => 'JPG, PNG or WebP, max. 8 MB.',
'field_image_title' => 'Image title, max. 120 characters.',
'field_image_description' => 'Description, max. 500 characters.',
'field_image_copyright' => 'Copyright attribution, max. 255 characters.',
'field_image_is_preview' => 'Set as preview image (replaces an existing one).',
'quickstart_heading' => 'Quick start',
'quickstart_text' => 'The typical flow: create a draft, upload an image, submit for review.',
'quickstart_step_1' => '# 1. Create a draft',
'quickstart_step_2' => '# 2. Upload an image (multipart)',
'quickstart_step_3' => '# 3. Submit for content review',
'openapi_note' => 'Machine-readable reference:',
'openapi_link' => 'OpenAPI specification (YAML)',
'status_heading' => 'HTTP status codes',
'th_code' => 'Code',
'th_meaning' => 'Meaning',
'status_2xx' => 'Success — fetch, resource created or deleted.',
'status_401' => 'Missing or invalid API token.',
'status_402' => 'Submitting requires an active booking (plan or single release).',
'status_403' => 'Token permission missing or the resource does not belong to your account.',
'status_409' => 'Status conflict — e.g. editing an already published release.',
'status_422' => 'Validation error or quota/guideline violation (details in the body).',
'status_429' => 'Rate limit reached: 60 requests per minute per token (X-RateLimit-* headers).',
'cta_heading' => 'Create an API token',
'cta_text' => 'You manage tokens yourself in the publisher account. For integration questions, support is happy to help:',
'cta_account' => 'Go to the publisher account',
'cta_pricing' => 'View pricing',
],
'report' => [
'meta_title' => 'Report content or request changes',
'meta_description' => 'Report illegal content (DSA), have personal data removed (GDPR) or request changes to your own press releases — reports are free of charge.',
'title' => 'Report content or request changes',
'lead' => 'On :portal, companies publish press releases on their own responsibility. If you have a concern about a published press release, please choose the appropriate path.',
'breadcrumb' => 'Report content',
'intro_direct' => 'You can report a press release directly via the <strong>"Report press release"</strong> link on the respective publication page — the affected press release is then linked automatically.',
'intro_free' => '<strong>Reporting illegal content and exercising statutory rights are always free of charge.</strong> Only the voluntary removal of lawful content from public view is subject to a fee.',
'way1_heading' => '1. Report illegal content or rights violations',
'way1_intro' => 'Use this path if you believe a published press release is illegal or violates your rights, for example in the case of:',
'way1_item_1' => 'false statements of fact,',
'way1_item_2' => 'violation of personality rights,',
'way1_item_3' => 'violation of trademark, copyright or other rights,',
'way1_item_4' => 'data protection violations or unlawful publication of personal data,',
'way1_item_5' => 'fraud, misleading claims or unlawful advertising,',
'way1_item_6' => 'other legal violations.',
'contact_trigger_label' => 'contact form',
'way1_how' => '<strong>Report:</strong> Use our <a href=":form_url">reporting form for illegal content</a> — you will immediately receive a confirmation of receipt with a case number. Alternatively, open the affected press release and use the <em>"Report content"</em> link there (the release is then linked to the case automatically), or send your report with the URL of the affected press release via our :contact.',
'way1_needs' => 'To review your report, we need:',
'way1_need_1' => 'the URL of the affected press release,',
'way1_need_2' => 'a reason why you consider the content illegal,',
'way1_need_3' => 'your name and email address, unless a statutory exception applies,',
'way1_need_4' => 'your confirmation that you submit the report in good faith and that the information is accurate and complete.',
'way1_process' => 'After submitting the report you will immediately receive a confirmation of receipt. We review the report carefully and promptly. We will then inform you of our decision with a statement of reasons. If the content is illegal or there is sufficient reason for a restriction, we remove or block it in whole or in part.',
'way1_author_note' => 'The author or party responsible for the content is informed about a restriction of the content and receives a statement of reasons, where required by law.',
'way2_heading' => '2. Have your own personal data removed',
'way2_intro' => 'Use this path if you are a natural person and your personal contact details appear in a press release, for example your name, phone number or email address.',
'way2_how' => '<strong>Request:</strong> Use our <a href=":form_url">request form for removing your own contact details</a>. Alternatively, open the affected press release and use the <em>"Remove my data"</em> link there — or submit your request via our :contact.',
'way2_gdpr' => 'We review your request in accordance with the General Data Protection Regulation. The review and processing are free of charge for you.',
'way2_verification' => 'For verification we usually send a confirmation link to the affected email address. If it is no longer reachable, we may request suitable proof of identity or authorisation. We only require the information necessary to verify your entitlement.',
'way2_result' => 'After successful verification we remove, replace or anonymise your personal contact details in the press release. The press release itself generally remains in place, unless there are statutory claims to removal, blocking or modification.',
'way2_companies' => 'Information about companies and information from public registers is reviewed on a case-by-case basis. Such information is not automatically treated like private contact details.',
'way3_heading' => '3. Change or manage your own press release',
'way3_intro' => 'Use this path if you are the original client, the company owner or named as the press contact in the press release.',
'way3_magic_link' => 'To verify your entitlement we use a magic-link procedure: we send a one-time access link to the email address stored in the press release or in the customer account. After confirmation you can request permissible changes, for example:',
'way3_item_1' => 'correct typos,',
'way3_item_2' => 'update contact details,',
'way3_item_3' => 'replace outdated press contacts,',
'way3_item_4' => 'commission a voluntary removal of lawful content from public view.',
'way3_how' => '<strong>Request a change:</strong> Sign in to your <a href=":login_url">publisher account</a> or request the access link via the sign-in page. If the stored email address is no longer reachable, we may request suitable proof of authorisation — please reach us via our :contact.',
'way4_heading' => '4. Voluntary removal of lawful content',
'way4_intro' => 'Lawful press releases generally remain part of our permanent archive. We offer later removal from public view ("depublication") as a voluntary service, unless there are statutory claims to removal, blocking or modification.',
'way4_authorized' => 'Commissioning is only possible by a person authorised to do so, for example the original client, the press contact named in the content, an authorised company owner or a person with documented power of attorney.',
'way4_rules_intro' => 'For a depublication, the following applies:',
'way4_rule_1' => 'The press release is removed from public view.',
'way4_rule_2' => 'The URL remains in place with a short note about the removal ("tombstone").',
'way4_rule_3' => 'The URL is not deleted entirely.',
'way4_rule_4' => 'Removal from search engine caches, third-party archives or republications on other portals we have no access to is not included.',
'way4_price' => 'The price is <strong>:net € plus VAT</strong> (:gross € incl. 19 % VAT). <strong>Commissioning:</strong> via your customer account (detail page of the press release) or via our :contact.',
'way4_price_fallback' => 'The price is shown to you before commissioning. <strong>Commissioning:</strong> via your customer account or via our :contact.',
'way4_note' => 'Important: this service is not a prerequisite for your statutory rights. Reporting illegal content and exercising statutory rights are and remain free of charge — regardless of whether you use this service.',
'questions_heading' => 'Questions about reports',
'questions_links' => 'For reports, please primarily use the reporting links directly at the respective press release.',
'questions_reply' => 'After submitting a report you receive a confirmation of receipt. For questions about an existing report you can reply to that confirmation or contact us via our :contact, quoting the case number.',
'languages' => 'Communication languages: German, English',
],
'report_form' => [
'title_illegal' => 'Report illegal content',
'title_contact_data' => 'Have your own contact details removed',
'meta_illegal' => 'Report illegal content or rights violations in a press release (DSA) — free of charge, with confirmation of receipt.',
'meta_contact_data' => 'Request the removal of your own personal contact details from a press release (GDPR) — free of charge.',
'breadcrumb' => 'Report content',
'intro_illegal' => 'Use this form if you consider a published press release illegal or believe it violates your rights. The report is free of charge; you will immediately receive a confirmation of receipt with a case number, followed by our reasoned decision.',
'intro_contact_data' => 'Use this form if your personal contact details (e.g. name, phone number or email address) appear in a press release. The review follows the requirements of the GDPR and is free of charge for you.',
'overview' => 'All paths at a glance:',
'overview_link' => 'Report content or request changes',
'label_url' => 'URL of the affected press release',
'label_name' => 'Your name',
'label_email_illegal' => 'Your email address',
'label_email_contact_data' => 'Your email address (for feedback and, if applicable, a confirmation link)',
'label_message_illegal' => 'Reason: why do you consider the content illegal?',
'label_message_contact_data' => 'Which details are affected?',
'placeholder_message_illegal' => 'Please describe specifically which content is affected and why.',
'placeholder_message_contact_data' => 'e.g. "My name and phone number appear in the press contact."',
'truth_affirmation' => 'I affirm that I am submitting this report in good faith and that the information provided is accurate and complete.',
'submit_illegal' => 'Submit report',
'submit_contact_data' => 'Submit request',
'privacy_note' => 'Your details are processed exclusively to handle your report — details in the <a href=":url" class="underline hover:text-ink">privacy policy</a>. Reports and the exercise of statutory rights are free of charge.',
'flash_honeypot' => 'Thank you. Your report has been received.',
'flash_received' => 'Thank you. Your report has been received under case number :reference — you will receive a confirmation of receipt by email.',
'validation_truth' => 'Please confirm that you are submitting the report in good faith.',
'throttle' => 'Too many requests. Please try again in :minutes minutes.',
],
'cancellation' => [
'meta_title' => 'Cancel contracts here',
'meta_description' => 'Cancel your ongoing contract online – without signing in, via the statutory confirmation page pursuant to Section 312k of the German Civil Code (BGB).',
'title' => 'Cancel contracts here',
'breadcrumb' => 'Cancellation',
'lead' => 'Here you can cancel your ongoing contract (e.g. your subscription) online and without signing in. After submitting, you immediately receive an automatic confirmation of receipt by email with the date and time of receipt.',
'received_eyebrow' => 'Cancellation',
'received_heading' => 'Cancellation received',
'kind_legend' => 'Type of cancellation',
'kind_ordinary' => 'Ordinary cancellation',
'kind_ordinary_desc' => 'Cancellation at the end of the term or at the earliest possible date. No reason required.',
'kind_extraordinary' => 'Extraordinary cancellation',
'kind_extraordinary_desc' => 'Cancellation for good cause with immediate effect.',
'label_reason' => 'Reason for cancellation',
'who_legend' => 'Who is cancelling?',
'label_name' => 'Your name',
'label_email' => 'Email address',
'label_email_hint' => '(for contract identification and the confirmation of receipt)',
'label_reference' => 'Contract/invoice number',
'label_reference_hint' => '(if at hand)',
'when_legend' => 'Effective when?',
'mode_asap' => 'At the earliest possible date',
'mode_date' => 'On a specific date',
'label_date' => 'Requested end date',
'privacy_note' => 'Your details are only used to process the cancellation (<a href=":url" class="underline hover:text-ink">privacy policy</a>). By clicking, your cancellation notice is received by us.',
'submit' => 'cancel now',
'account_hint' => 'Note: it is even faster when signed in — in your account under "Bookings & add-ons" you can cancel your subscription with a few clicks.',
'flash_received' => 'Your cancellation has been received. You will immediately receive an automatic confirmation of receipt by email with the date and time of receipt.',
'validation_reason' => 'Please state the reason for the extraordinary cancellation.',
'validation_date' => 'Please state the requested end date.',
'throttle' => 'Too many requests. Please try again in :minutes minutes.',
],
'imprint' => [
'meta_title' => 'Imprint',
'meta_description' => 'Imprint and provider identification pursuant to Section 5 of the German Digital Services Act (DDG).',
'title' => 'Imprint',
'breadcrumb' => 'Imprint',
'provider_heading' => 'Provider (information pursuant to Section 5 DDG)',
'email_label' => 'Email',
'phone_label' => 'Phone',
'phone_note' => '(no phone support)',
'vat_heading' => 'VAT identification number',
'vat_text' => 'VAT identification number pursuant to Section 27a of the German VAT Act (UStG):',
'editorial_heading' => 'Responsible for journalistic-editorial content (Section 18 (2) MStV)',
'about_heading' => 'About this service',
'about_text' => ':portal (:host) is operated by adametz.media. The network comprises the press portals <strong>presseecho.de</strong> and <strong>businessportal24.com</strong> as well as the central publisher account <strong>pressekonto</strong> (<a href=":hub_url">:hub_label</a>), which handles registration, booking and administration.',
'content_heading' => 'Responsibility for content',
'content_text' => 'The press releases published on the portals are content of the respective submitting companies; they are themselves responsible for their content. The provider is a hosting service provider within the meaning of the Digital Services Act (Regulation (EU) 2022/2065); for third-party content, the liability rules of the DSA (Art. 6) and Section 7 DDG apply. If you consider content illegal or believe your rights are violated, please use our <a href=":report_url">reporting procedure</a> — reports are free of charge.',
'contact_point' => '<strong>Point of contact</strong> pursuant to Art. 11 and 12 DSA (for authorities and users):<br>Email: <a href="mailto::email">:email</a> · Communication languages: German, English',
'prohibited_heading' => 'Prohibited content',
'prohibited_text' => 'Content that violates applicable law or our <a href=":guidelines_url">publishing guidelines</a> is not published or is removed upon knowledge. In the event of indications of criminal offences, we reserve the right to file a criminal complaint and to pass information on to the competent authorities.',
'copyright_heading' => 'Copyright',
'copyright_text' => 'The content and works created by the provider on these pages are subject to German copyright law. Third-party contributions (in particular press releases) are marked as such; the rights remain with the respective submitters. Reproduction, editing and exploitation outside the limits of copyright law require the consent of the respective rights holder.',
'dispute_heading' => 'Consumer dispute resolution',
'dispute_text' => 'The provider is neither willing nor obliged to participate in dispute resolution proceedings before a consumer arbitration board (Section 36 VSBG). The former EU Commission platform for online dispute resolution was discontinued on 20 July 2025.',
],
];

View file

@ -31,6 +31,13 @@ return [
'pricing' => 'Pricing',
'homepage' => 'Homepage',
'login' => 'Sign in',
'login_modal_eyebrow' => 'Your access',
'login_modal_title' => 'Sign in with pressekonto.com',
'login_modal_text' => 'pressekonto.com is the central platform behind this portal. It is where you manage your account, create your press releases and publish them across all connected press portals – with a single login.',
'login_modal_login' => 'Go straight to sign-in',
'login_modal_hub' => 'More about pressekonto.com',
'login_modal_note' => 'No account yet? Registration is free and only takes a few minutes.',
'login_modal_close' => 'Close window',
'publish' => 'Publish',
'publish_aria' => 'Publish a press release',
'search_label' => 'Search press releases, companies, industries, ISIN',
@ -49,6 +56,7 @@ return [
'home' => 'Home',
'menu' => 'Menu',
'aria_label' => 'Main navigation',
'more' => 'More',
'open_menu' => 'Open main menu',
'section' => 'Section',
],
@ -137,7 +145,7 @@ return [
'daily_limit' => 'max. per day',
'no_daily_limit' => 'no daily limit',
'select' => 'Select',
'footnote' => 'All prices excl. VAT · Cancel anytime · Single releases available without a subscription.',
'footnote' => 'All prices excl. VAT · Monthly plans cancellable monthly, annual plans yearly · Single releases available without a subscription.',
'publish_direct' => 'Publish directly',
],
@ -160,11 +168,46 @@ return [
'cancellation' => 'Cancel contracts here',
'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.',
'rights' => '© :year :brand · All rights reserved',
'terms' => 'Terms',
'guidelines' => 'Guidelines',
'report' => 'Report content',
],
'launcher' => [
'contact' => 'Contact',
'title' => 'How can we help?',
'close' => 'Close',
'intro' => 'Choose your topic — we will get back to you as soon as possible on business days.',
'topic_contact' => 'Get in touch',
'topic_contact_desc' => 'General question or inquiry',
'topic_bug' => 'Report a bug',
'topic_bug_desc' => 'Something is not working as expected',
'topic_press' => 'Report a press release',
'topic_press_desc' => 'A note about a published release',
'topic_feedback' => 'Give feedback',
'topic_feedback_desc' => 'Praise, criticism or suggestions',
'back' => 'Choose a different topic',
'name' => 'Your name',
'email' => 'Email address',
'message' => 'Your message',
'message_placeholder' => 'How can we help you?',
'legal_hint' => 'Illegal content or a privacy concern?',
'legal_link' => 'Use the formal reporting procedure',
'privacy_note' => 'Your details are only used to process your request',
'submit' => 'Send message',
'success' => 'Thank you for your message. We will get back to you as soon as possible.',
'throttle' => 'Too many requests. Please try again in :minutes minutes.',
'validation_name' => 'Please enter your name.',
'validation_email' => 'Please enter a valid email address.',
'validation_message' => 'Please enter a message.',
'validation_message_min' => 'Your message should be at least :min characters long.',
'validation_message_max' => 'Your message must not exceed :max characters.',
],
'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.',
@ -268,8 +311,6 @@ return [
'words' => ':count words',
'recommended' => 'Recommended',
'recommended_hint' => 'This press release achieves a high content score — based on source quality, verification status and content relevance.',
'image_placeholder' => 'Image · Press photo',
'image_placeholder_company' => 'Image · Press photo :company',
'photo' => 'Photo',
'about_company' => 'About the company',
'press_contact' => 'Press contact',
@ -294,6 +335,9 @@ return [
'report_content' => 'Report content',
'remove_data' => 'Remove my data',
'reports_free' => 'Reports are free of charge.',
'manage_question' => 'Are you listed as the company or press contact of this release?',
'manage_link' => 'Sign in to pressekonto with the listed email address',
'manage_hint' => 'You will receive a sign-in link by email – no password required.',
'more_from' => 'More from :company',
'more_from_sub' => 'Latest releases from this newsroom',
'all_from' => 'All releases from :company',