/* HLiD — i18n (EN / DE) — single source of truth for UI copy.
   German register: Austrian business / legal formal (Sie-Form, DSGVO terms). */

const DICT = {
  EN: {
    // nav
    'nav.product':       'Product',
    'nav.workflow':      'Workflow',
    'nav.observability': 'Observability',
    'nav.integrations':  'Integrations',
    'nav.customers':     'Customers',
    'nav.live':          'Live · DACH',
    'nav.cta':           'Book a demo',

    // hero
    'hero.caption':      'A brand film · 01:08',
    'hero.tagline':      'Accounting operations, end to end — in your own cloud',
    'hero.stamps':       'Your cloud · AI-first · Four-eyes control',
    'hero.cta':          'Book a 30-min demo',
    'hero.scroll':       'Scroll',
    'hero.soundOn':      'Sound on',
    'hero.soundOff':     'Sound off',
    'hero.videoAria':    'HLiD brand film',

    // pillars
    'pillars.01.title':  'Your cloud, your data',
    'pillars.01.body':   'HLiD runs in your own cloud, on your ERP and identity systems. Data never leaves your tenant.',
    'pillars.02.title':  'AI-first',
    'pillars.02.body':   'Reading, routing and posting proposals are the pipeline — not a plugin. Every field carries its own confidence score.',
    'pillars.03.title':  'The human decides',
    'pillars.03.body':   'Nothing is posted without approval — four-eyes principle. GL simulation shows the impact before anything reaches your ERP.',

    // § 01 Problem
    'problem.eyebrow':   'The problem',
    'problem.h1.a':      'Multi-entity AP',
    'problem.h1.b':      'is a mess.',
    'problem.lede':      "Corporate groups run a dozen legal entities, two or three ERPs, and four approval policies. Invoices multiply. Accountants don't. What should be a six-second posting becomes a six-day hunt.",
    'problem.1.t':       'Fragmented intake',
    'problem.1.b':       'Email, PDF, portal, EDI, paper. Every vendor, every entity, a different door.',
    'problem.2.t':       'Manual classification',
    'problem.2.b':       'VAT split. Cost centre. Legal entity. An accountant deciphering a PDF at 22:00.',
    'problem.3.t':       'Approval bottlenecks',
    'problem.3.b':       'The approver is on leave. The ceiling is wrong. The invoice sits seven days.',
    'problem.4.t':       'Manual ERP entry',
    'problem.4.b':       "Retyping 30 lines into BMD. Retyping the same 30 lines into the group's second ERP next month.",

    // § 02 Solution
    'solution.eyebrow':  'The pipeline',
    'solution.h1':       'One path. From intake to the reconciled statement.',
    'solution.foot':     'No per-vendor templates. HLiD reads the invoice, learns from your posting history, and proposes the next step. You see every step. You can override any one — and nothing reaches the ERP without human confirmation.',
    'solution.n1': 'Intake',     'solution.n1.s': 'Email · Drag & drop · SharePoint',
    'solution.n2': 'AI reading', 'solution.n2.s': 'Vendor match · Fields · Confidence',
    'solution.n3': 'Routing',    'solution.n3.s': 'Entity · Cost centre · Approver',
    'solution.n4': 'Approval',   'solution.n4.s': '4-eye · Web & mobile',
    'solution.n5': 'Posting',    'solution.n5.s': 'GL · Tax code · Dimensions',
    'solution.n6': 'Payment',    'solution.n6.s': 'Batch export · Bank format',
    'solution.n7': 'Reconcile',  'solution.n7.s': 'camt.053 · Confidence',

    // § 03 Segments
    'seg.eyebrow':       'Two segments, one product',
    'seg.h1.a':          'Built for groups —',
    'seg.h1.b':          'and for the Kanzlei.',
    'seg.a.t':           'Corporate groups',
    'seg.a.b':           'Full control of your own operations, optimized automation. The entire flow — intake, approvals, posting, payments, reconciliation, reporting — runs through one system in your own cloud, learning from your history. Nothing enters the ERP without human confirmation.',
    'seg.b.t':           'Steuerberater & Kanzleien',
    'seg.b.b':           'A pre-accounting and invoice-management platform that lets a Kanzlei scale its operation. Two-sided by design: the accountant platform for document processing, posting proposals and BMD/ERP sync — and the client platform, where the Mandant uploads and approves invoices. Documents stop circulating by email, and the Kanzlei takes on more Mandanten without growing the team linearly.',
    'seg.more':          'Also in the platform',
    'seg.m1':            'Recurring invoices',
    'seg.m2':            'Credit notes',
    'seg.m3':            'Department budgets',
    'seg.m4':            'Travel',
    'seg.m5':            'Financial reporting',
    'seg.m6':            'Entity switcher',

    // § 04 AI
    'ai.eyebrow':        'AI layer',
    'ai.h1.a':           'AI is the primary pipeline,',
    'ai.h1.b':           'not a plugin.',
    'ai.s1.label':       'Human-approved postings',
    'ai.s1.foot':        'nothing is posted to the ERP without approval',
    'ai.s2.label':       'ERP mirror, idempotent writes',
    'ai.s2.foot':        'the ERP stays the source of truth — the same entry is never written twice',
    'ai.s3.label':       'Continuous processing',
    'ai.s3.foot':        'duplicates are detected at intake, across your entities',
    'ai.foot':           'OCR and classification read every incoming document; the supplier is matched against your vendor master, and every extracted field carries its own confidence score — you see what the AI trusts and what needs a human look. Low-confidence fields escalate to a human before posting — nothing silent, nothing guessed. Posting proposals are derived from your own posting history, and the system keeps learning from it.',
    'ai.c1':             'Per-field confidence',
    'ai.c2':             'Human-in-the-loop',
    'ai.c3':             'Learns from your history',
    'ai.c4':             'Duplicate detection',

    // § 04 Workflow
    'wf.eyebrow':        'Workflow',
    'wf.h1.a':           'Approve.',
    'wf.h1.b':           'Then pay.',
    'wf.approvalHead':   'Approval',
    'wf.paymentHead':    'Payment & reconciliation',
    'wf.a1.t':           'Four-eyes principle',
    'wf.a1.b':           'Two human sign-offs on every posting. Enforced before anything reaches the ERP.',
    'wf.a2.t':           'PDF and fields, side by side',
    'wf.a2.b':           'The approver sees the original document and the extracted fields in one view — on web and mobile.',
    'wf.a3.t':           'Routing that learns',
    'wf.a3.b':           'Every invoice goes to the right entity, cost centre and approver — learned from your historical routing patterns.',
    'wf.a4.t':           'Recurring invoices',
    'wf.a4.b':           'Rent, subscriptions and similar recurring invoices are managed as standing invoices instead of being processed from scratch every cycle.',
    'wf.p1.t':           'Batch payments',
    'wf.p1.b':           "Payment files exported in your bank's format. Payments leave the same system in which the invoices were approved.",
    'wf.p2.t':           'GL simulation',
    'wf.p2.b':           'See the impact on the general ledger before the posting syncs to the ERP. Nothing enters your books blind.',
    'wf.p3.t':           'Idempotent booking runs',
    'wf.p3.b':           'Re-run a posting batch safely. The same entry is never written twice. No ghost lines.',
    'wf.p4.t':           'Bank reconciliation',
    'wf.p4.b':           'camt.053 statements read against posted invoices and ERP entries. Matches carry a confidence score; exceptions rise to the top.',
    'wf.fig':            'Fig 01 · Approval view · illustrative',
    'wf.figNote':        'Illustrative interface with sample data — not customer data.',

    // § 05 Observability
    'obs.eyebrow':       'Observability',
    'obs.h1.a':          "CFOs shouldn't have to",
    'obs.h1.b':          'call five people.',
    'obs.lede':          'Drill from the total back to the specific invoice, specific approver, specific journal row in one click.',
    'obs.t1':            'Invoice funnel',
    'obs.t2':            'Approver deep-dive',
    'obs.t3':            'Vendor scorecard',
    'obs.t4':            'AI quality',
    'ui.sample':         'Sample data',
    'ui.fig':            'Fig',

    // § 06 Integrations
    'int.eyebrow':       'Integrations',
    'int.h1.a':          'Connects to the ledger',
    'int.h1.b':          'you already run.',
    'int.erp':           'ERP · accounting',
    'int.foot':          'Adapters shipped as modules. Missing yours? Talk to us.',

    // § 07 Case
    'case.eyebrow':      'In production',
    'case.h1.a':         'Three entities.',
    'case.h1.b':         'Three countries.',
    'case.h1.c':         'One pipeline.',
    'case.big':          'months',
    'case.bigLabel':     'Contract term',
    'case.bigSub':       'first production customer — a telco group in Austria, Germany and Switzerland, multi-currency',
    'case.c1':           'AT · DE · CH',
    'case.c2':           'Multi-entity',
    'case.c3':           'Multi-currency',
    'case.c4':           'In production',
    'case.c5':           'ERP stays source of truth',
    'case.body':         'No more chasing invoices. No more waiting on approvals.\nNo more asking where things stand — the answer is already on the screen.',

    // § 08 Next
    'next.eyebrow':      'Next',
    'next.h1':           'From workshop to production — entity by entity.',
    'next.s1.w':         'Step 01',
    'next.s1.t':         'Workshop & analysis',
    'next.s1.b':         'We walk your current AP with you. Map entities, ERPs, approval policies. Output: a scoped pilot.',
    'next.s2.w':         'Step 02',
    'next.s2.t':         'Pilot on live invoices',
    'next.s2.b':         'One entity. Real invoices. Dual-run alongside your existing process. You see every decision, override any one.',
    'next.s3.w':         'Step 03',
    'next.s3.t':         'Group rollout',
    'next.s3.b':         'Sequenced entity-by-entity, in your own cloud. ERP adapters hardened. Approvers onboarded. Full production.',
    'next.formH.a':      'Book a 30-min demo on',
    'next.formH.b':      'your own invoices.',
    'next.formOr':       'Or write',

    // form
    'f.name':            'Your name',
    'f.email':           'Work email',
    'f.company':         'Company / group',
    'f.entities':        'How many entities in scope? (optional)',
    'f.note':            'ERPs in use, biggest AP pain, timeline (optional)',
    'f.submit':          'Request the session',
    'f.sending':         'Sending…',
    'f.sla':             'We reply within\none business day',
    'f.err':             'Please fill name, email, and company.',
    'f.ok':              "Thanks — we'll reply within one business day.",
    'f.okTag':           '✓ Request received',
    'f.fallback':        'Opening your mail client…',

    // footer
    'foot.tag':          'End-to-end accounting operations for corporate groups and tax-advisory firms — in your own cloud. Built in Vienna. In production across the DACH region.',
    'foot.company':      'Nibelung · Vienna',
    'foot.Product':      'Product',
    'foot.Company':      'Company',
    'foot.Legal':        'Legal',
    'foot.about':        'About',
    'foot.security':     'Security',
    'foot.contact':      'Contact',
    'foot.impressum':    'Impressum',
    'foot.datenschutz':  'Privacy',
    'foot.caseStudy':    'Case study',
    'foot.productOf':    'A Nibelung product',
    'foot.copy':         '© 2026 · All rights reserved',
  },

  DE: {
    // nav
    'nav.product':       'Produkt',
    'nav.workflow':      'Workflow',
    'nav.observability': 'Transparenz',
    'nav.integrations':  'Integrationen',
    'nav.customers':     'Kunden',
    'nav.live':          'Live · DACH',
    'nav.cta':           'Demo anfragen',

    // hero
    'hero.caption':      'Markenfilm · 01:08',
    'hero.tagline':      'Buchhaltungsprozesse end-to-end — in Ihrer eigenen Cloud',
    'hero.stamps':       'Ihre Cloud · KI-first · Vier-Augen-Prinzip',
    'hero.cta':          '30-Min-Demo buchen',
    'hero.scroll':       'Scrollen',
    'hero.soundOn':      'Ton an',
    'hero.soundOff':     'Ton aus',
    'hero.videoAria':    'HLiD-Markenfilm',

    // pillars
    'pillars.01.title':  'Ihre Cloud, Ihre Daten',
    'pillars.01.body':   'HLiD läuft in Ihrer eigenen Cloud, auf Ihren ERP- und Identity-Systemen. Ihre Daten verlassen Ihren Tenant nicht.',
    'pillars.02.title':  'KI-first',
    'pillars.02.body':   'Erfassung, Routing und Buchungsvorschläge sind die Pipeline — kein nachgelagertes Plug-in. Jedes Feld trägt einen eigenen Konfidenzwert.',
    'pillars.03.title':  'Der Mensch entscheidet',
    'pillars.03.body':   'Nichts wird ohne Freigabe gebucht — Vier-Augen-Prinzip. Die GL-Simulation zeigt die Auswirkung, bevor etwas ins ERP gelangt.',

    // § 01 Problem
    'problem.eyebrow':   'Das Problem',
    'problem.h1.a':      'Kreditorenbuchhaltung',
    'problem.h1.b':      'in Konzernen ist ein Chaos.',
    'problem.lede':      'Konzerne betreiben ein Dutzend Gesellschaften, zwei bis drei ERPs und vier Freigaberichtlinien. Die Rechnungen werden mehr. Die Buchhalter nicht. Was eine Sache von sechs Sekunden sein sollte, wird zur Suche über sechs Tage.',
    'problem.1.t':       'Zersplitterter Eingang',
    'problem.1.b':       'E-Mail, PDF, Portal, EDI, Papier. Jeder Lieferant, jede Gesellschaft, eine andere Tür.',
    'problem.2.t':       'Manuelle Kontierung',
    'problem.2.b':       'USt-Satz. Kostenstelle. Gesellschaft. Eine Buchhalterin, die um 22:00 ein PDF entziffert.',
    'problem.3.t':       'Freigabe-Engpässe',
    'problem.3.b':       'Der Freigeber ist im Urlaub. Das Limit stimmt nicht. Die Rechnung liegt sieben Tage.',
    'problem.4.t':       'Manuelle ERP-Erfassung',
    'problem.4.b':       '30 Zeilen in BMD abtippen. Dieselben 30 Zeilen nächsten Monat ins zweite ERP der Gruppe abtippen.',

    // § 02 Solution
    'solution.eyebrow':  'Die Pipeline',
    'solution.h1':       'Ein Weg. Vom Eingang bis zum abgestimmten Kontoauszug.',
    'solution.foot':     'Keine lieferantenspezifischen Vorlagen. HLiD liest die Rechnung, lernt aus Ihrer Buchungshistorie und schlägt den nächsten Schritt vor. Sie sehen jeden Schritt. Sie können jeden übersteuern — und nichts gelangt ohne menschliche Bestätigung ins ERP.',
    'solution.n1': 'Eingang',       'solution.n1.s': 'E-Mail · Drag & Drop · SharePoint',
    'solution.n2': 'KI-Erfassung',  'solution.n2.s': 'Lieferant · Felder · Konfidenz',
    'solution.n3': 'Routing',       'solution.n3.s': 'Gesellschaft · Kostenstelle · Freigeber',
    'solution.n4': 'Freigabe',      'solution.n4.s': '4-Augen · Web & mobil',
    'solution.n5': 'Buchung',       'solution.n5.s': 'Sachkonto · Steuercode · Dimensionen',
    'solution.n6': 'Zahlung',       'solution.n6.s': 'Sammelzahlung · Bankformat',
    'solution.n7': 'Abstimmung',    'solution.n7.s': 'camt.053 · Konfidenz',

    // § 03 Segments
    'seg.eyebrow':       'Zwei Segmente, ein Produkt',
    'seg.h1.a':          'Für Konzerngruppen —',
    'seg.h1.b':          'und für die Kanzlei.',
    'seg.a.t':           'Unternehmen & Gruppen',
    'seg.a.b':           'Volle Kontrolle über die eigenen Abläufe, optimierte Automatisierung. Der gesamte Fluss — Eingang, Freigaben, Buchung, Zahlungen, Abstimmung, Berichte — läuft durch ein System in Ihrer eigenen Cloud, das aus Ihrer Historie lernt. Nichts gelangt ohne menschliche Bestätigung ins ERP.',
    'seg.b.t':           'Steuerberater & Kanzleien',
    'seg.b.b':           'Eine Pre-Accounting- und Rechnungsmanagement-Plattform, mit der eine Kanzlei ihren Betrieb skaliert. Zweiseitig gedacht: die Accountant-Plattform für Belegverarbeitung, Buchungsvorschläge und BMD/ERP-Sync — und die Mandanten-Plattform, auf der der Mandant Rechnungen selbst hochlädt und freigibt. Belege kreisen nicht mehr per E-Mail, und die Kanzlei nimmt mehr Mandanten auf, ohne das Team linear zu vergrößern.',
    'seg.more':          'Ebenfalls in der Plattform',
    'seg.m1':            'Dauerrechnung',
    'seg.m2':            'Gutschriften',
    'seg.m3':            'Abteilungsbudgets',
    'seg.m4':            'Reisen',
    'seg.m5':            'Finanzberichte',
    'seg.m6':            'Entity Switcher',

    // § 04 KI
    'ai.eyebrow':        'KI-Ebene',
    'ai.h1.a':           'KI ist die Pipeline,',
    'ai.h1.b':           'kein Plug-in.',
    'ai.s1.label':       'Buchungen mit menschlicher Freigabe',
    'ai.s1.foot':        'nichts wird ohne Freigabe ins ERP gebucht',
    'ai.s2.label':       'ERP-Spiegel, idempotente Buchung',
    'ai.s2.foot':        'das ERP bleibt das führende System — dieselbe Buchung wird nie doppelt geschrieben',
    'ai.s3.label':       'Kontinuierliche Verarbeitung',
    'ai.s3.foot':        'Dubletten werden am Eingang erkannt, über alle Gesellschaften hinweg',
    'ai.foot':           'OCR und Klassifizierung lesen jedes eingehende Dokument; der Lieferant wird gegen Ihren Lieferantenstamm gematcht, und jedes extrahierte Feld trägt seinen eigenen Konfidenzwert — Sie sehen, worauf die KI vertraut und wo ein Mensch hinschauen sollte. Felder mit niedriger Konfidenz werden vor der Buchung an einen Menschen eskaliert — nichts wird still geschluckt, nichts geraten. Buchungsvorschläge entstehen aus Ihrer eigenen Buchungshistorie, und das System lernt daraus laufend weiter.',
    'ai.c1':             'Konfidenz je Feld',
    'ai.c2':             'Der Mensch entscheidet',
    'ai.c3':             'Lernt aus Ihrer Historie',
    'ai.c4':             'Dublettenerkennung',

    // § 04 Workflow
    'wf.eyebrow':        'Workflow',
    'wf.h1.a':           'Freigeben.',
    'wf.h1.b':           'Dann zahlen.',
    'wf.approvalHead':   'Freigabe',
    'wf.paymentHead':    'Zahlung & Abstimmung',
    'wf.a1.t':           'Vier-Augen-Prinzip',
    'wf.a1.b':           'Zwei menschliche Freigaben für jede Buchung. Erzwungen, bevor etwas ins ERP gelangt.',
    'wf.a2.t':           'PDF und Felder nebeneinander',
    'wf.a2.b':           'Der Freigeber sieht das Originaldokument und die extrahierten Felder in einer Ansicht — im Web und mobil.',
    'wf.a3.t':           'Routing, das lernt',
    'wf.a3.b':           'Jede Rechnung geht an die richtige Gesellschaft, Kostenstelle und den richtigen Freigeber — gelernt aus Ihren historischen Routing-Mustern.',
    'wf.a4.t':           'Dauerrechnung',
    'wf.a4.b':           'Miete, Abos und ähnliche wiederkehrende Rechnungen werden als Dauerrechnung geführt, statt in jedem Zyklus neu verarbeitet zu werden.',
    'wf.p1.t':           'Sammelzahlungen',
    'wf.p1.b':           'Zahlungsdateien im Format Ihrer Bank, als Batch exportiert. Zahlungen verlassen dasselbe System, in dem die Rechnungen freigegeben wurden.',
    'wf.p2.t':           'GL-Simulation',
    'wf.p2.b':           'Die Auswirkung auf das Hauptbuch sehen, bevor die Buchung ins ERP synchronisiert wird. Nichts gelangt blind in Ihre Bücher.',
    'wf.p3.t':           'Idempotente Buchungsläufe',
    'wf.p3.b':           'Ein Buchungslauf kann gefahrlos erneut ausgeführt werden. Dieselbe Buchung wird nie doppelt geschrieben. Keine Geisterzeilen.',
    'wf.p4.t':           'Bankabstimmung',
    'wf.p4.b':           'camt.053-Auszüge werden gegen gebuchte Rechnungen und ERP-Einträge gelesen. Matches tragen einen Konfidenzwert; Ausnahmen steigen nach oben.',
    'wf.fig':            'Abb. 01 · Freigabe-Ansicht · illustrativ',
    'wf.figNote':        'Illustrative Oberfläche mit Beispieldaten — keine Kundendaten.',

    // § 05 Observability
    'obs.eyebrow':       'Transparenz',
    'obs.h1.a':          'CFOs sollten nicht',
    'obs.h1.b':          'fünf Leute anrufen müssen.',
    'obs.lede':          'Ein Klick vom Gesamtwert zur konkreten Rechnung, zum konkreten Freigeber, zur konkreten Buchungszeile.',
    'obs.t1':            'Rechnungs-Funnel',
    'obs.t2':            'Freigeber im Detail',
    'obs.t3':            'Lieferanten-Scorecard',
    'obs.t4':            'KI-Qualität',
    'ui.sample':         'Beispieldaten',
    'ui.fig':            'Abb.',

    // § 06 Integrations
    'int.eyebrow':       'Integrationen',
    'int.h1.a':          'Verbindet sich mit dem Hauptbuch,',
    'int.h1.b':          'das Sie bereits führen.',
    'int.erp':           'ERP · Buchhaltung',
    'int.foot':          'Adapter als Module ausgeliefert. Ihr ERP fehlt? Sprechen Sie mit uns.',

    // § 07 Case
    'case.eyebrow':      'Im Produktivbetrieb',
    'case.h1.a':         'Drei Gesellschaften.',
    'case.h1.b':         'Drei Länder.',
    'case.h1.c':         'Eine Pipeline.',
    'case.big':          'Monate',
    'case.bigLabel':     'Vertragslaufzeit',
    'case.bigSub':       'erster Produktivkunde — eine Telko-Gruppe in Österreich, Deutschland und der Schweiz, Multi-Currency',
    'case.c1':           'AT · DE · CH',
    'case.c2':           'Multi-Entity',
    'case.c3':           'Multi-Currency',
    'case.c4':           'Im Produktivbetrieb',
    'case.c5':           'ERP bleibt führendes System',
    'case.body':         'Kein Hinterhertelefonieren mehr. Kein Warten auf Freigaben.\nKein Nachfragen, wo etwas steht — die Antwort ist bereits am Bildschirm.',

    // § 08 Next
    'next.eyebrow':      'Nächste Schritte',
    'next.h1':           'Vom Workshop in den Produktivbetrieb — Gesellschaft für Gesellschaft.',
    'next.s1.w':         'Schritt 01',
    'next.s1.t':         'Workshop & Analyse',
    'next.s1.b':         'Wir gehen Ihre bestehende Rechnungsverarbeitung gemeinsam durch. Gesellschaften, ERPs und Freigaberichtlinien werden erfasst. Ergebnis: ein abgegrenzter Pilot.',
    'next.s2.w':         'Schritt 02',
    'next.s2.t':         'Pilot mit Echtrechnungen',
    'next.s2.b':         'Eine Gesellschaft. Echte Rechnungen. Parallelbetrieb zum bestehenden Prozess. Sie sehen jede Entscheidung und können jede übersteuern.',
    'next.s3.w':         'Schritt 03',
    'next.s3.t':         'Rollout auf die Gruppe',
    'next.s3.b':         'Gesellschaft für Gesellschaft sequenziert, in Ihrer eigenen Cloud. ERP-Adapter gehärtet. Freigeber eingeführt. Voller Produktivbetrieb.',
    'next.formH.a':      '30-Min-Demo auf Basis',
    'next.formH.b':      'Ihrer eigenen Rechnungen.',
    'next.formOr':       'Oder schreiben Sie an',

    // form
    'f.name':            'Ihr Name',
    'f.email':           'Geschäftliche E-Mail',
    'f.company':         'Unternehmen / Gruppe',
    'f.entities':        'Wie viele Gesellschaften sind betroffen? (optional)',
    'f.note':            'Eingesetzte ERPs, größtes Problem in der Rechnungsverarbeitung, Zeitrahmen (optional)',
    'f.submit':          'Termin anfragen',
    'f.sending':         'Wird gesendet…',
    'f.sla':             'Antwort innerhalb\neines Werktags',
    'f.err':             'Bitte Name, E-Mail und Unternehmen ausfüllen.',
    'f.ok':              'Danke — wir melden uns innerhalb eines Werktags.',
    'f.okTag':           '✓ Anfrage eingegangen',
    'f.fallback':        'Ihr E-Mail-Programm wird geöffnet…',

    // footer
    'foot.tag':          'Buchhaltungsprozesse end-to-end für Konzerngruppen und Steuerberatungskanzleien — in Ihrer eigenen Cloud. Entwickelt in Wien. Im Produktivbetrieb in der DACH-Region.',
    'foot.company':      'Nibelung · Wien',
    'foot.Product':      'Produkt',
    'foot.Company':      'Unternehmen',
    'foot.Legal':        'Rechtliches',
    'foot.about':        'Über uns',
    'foot.security':     'Sicherheit',
    'foot.contact':      'Kontakt',
    'foot.impressum':    'Impressum',
    'foot.datenschutz':  'Datenschutz',
    'foot.caseStudy':    'Fallstudie',
    'foot.productOf':    'Ein Produkt von Nibelung',
    'foot.copy':         '© 2026 · Alle Rechte vorbehalten',
  },
};

const I18nContext = React.createContext({ locale: 'EN', t: (k) => DICT.EN[k] || k, setLocale: () => {} });

function I18nProvider({ children }) {
  const [locale, setLocaleState] = React.useState(() => {
    try {
      const saved = localStorage.getItem('hlid.locale');
      if (saved === 'EN' || saved === 'DE') return saved;
      // Default: DE (primary market AT/CH). EN only if user's browser is clearly English.
      const nav = (navigator.language || 'de').slice(0, 2).toLowerCase();
      return nav === 'en' ? 'EN' : 'DE';
    } catch { return 'DE'; }
  });
  const setLocale = React.useCallback((l) => {
    setLocaleState(l);
    try { localStorage.setItem('hlid.locale', l); } catch {}
    // Reflect on <html lang>
    try { document.documentElement.setAttribute('lang', l === 'DE' ? 'de' : 'en'); } catch {}
  }, []);
  React.useEffect(() => {
    try { document.documentElement.setAttribute('lang', locale === 'DE' ? 'de' : 'en'); } catch {}
  }, [locale]);
  const t = React.useCallback((k) => {
    const table = DICT[locale] || DICT.EN;
    return table[k] ?? DICT.EN[k] ?? k;
  }, [locale]);
  return (
    <I18nContext.Provider value={{ locale, setLocale, t }}>
      {children}
    </I18nContext.Provider>
  );
}

function useT() { return React.useContext(I18nContext); }

Object.assign(window, { I18nProvider, I18nContext, useT, DICT });
