diff --git a/locale/de/LC_MESSAGES/messages.mo b/locale/de/LC_MESSAGES/messages.mo index 65298e5..8e38a1d 100644 Binary files a/locale/de/LC_MESSAGES/messages.mo and b/locale/de/LC_MESSAGES/messages.mo differ diff --git a/locale/de/LC_MESSAGES/messages.po b/locale/de/LC_MESSAGES/messages.po index 46d1cfc..c0c96ab 100644 --- a/locale/de/LC_MESSAGES/messages.po +++ b/locale/de/LC_MESSAGES/messages.po @@ -8,8 +8,8 @@ msgstr "" "Project-Id-Version: FileMorph VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "POT-Creation-Date: 2026-05-07 15:22+0200\n" -"PO-Revision-Date: 2026-05-07 13:43+0200\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2026-05-08 11:00+0200\n" +"Last-Translator: FileMorph \n" "Language: de\n" "Language-Team: de \n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" @@ -19,263 +19,275 @@ msgstr "" "Generated-By: Babel 2.18.0\n" msgid "(vs. 20 MB anonymous)" -msgstr "" +msgstr "(vs. 20 MB anonym)" msgid ", 1 concurrent, 10 req/min" -msgstr "" +msgstr ", 1 gleichzeitig, 10 Anfr./min" msgid ", 2 concurrent, 10 req/min" -msgstr "" +msgstr ", 2 gleichzeitig, 10 Anfr./min" msgid ", 5 concurrent, 10 req/min" -msgstr "" +msgstr ", 5 gleichzeitig, 10 Anfr./min" msgid "/mo" -msgstr "" +msgstr "/Monat" msgid "10,000 API calls / month" -msgstr "" +msgstr "10.000 API-Aufrufe / Monat" msgid "100 MB · 10k API" -msgstr "" +msgstr "100 MB · 10k API" msgid "100 files" -msgstr "" +msgstr "100 Dateien" msgid "100,000 API calls / month" -msgstr "" +msgstr "100.000 API-Aufrufe / Monat" msgid "25 files" -msgstr "" +msgstr "25 Dateien" msgid "30+ formats (images, docs, audio, video)" -msgstr "" +msgstr "30+ Formate (Bilder, Dokumente, Audio, Video)" msgid "30+ formats incl. video" -msgstr "" +msgstr "30+ Formate inkl. Video" msgid "404 – Not Found" -msgstr "" +msgstr "404 – Nicht gefunden" msgid "5 files" -msgstr "" +msgstr "5 Dateien" msgid "50 MB · API key" -msgstr "" +msgstr "50 MB · API-Key" msgid "500 MB · 100k API" -msgstr "" +msgstr "500 MB · 100k API" msgid "500 calls / month" -msgstr "" +msgstr "500 Aufrufe / Monat" msgid "500 – Server Error" -msgstr "" +msgstr "500 – Serverfehler" msgid "A description of the vulnerability and its potential impact." msgstr "" +"Eine Beschreibung der Sicherheitslücke und ihrer potenziellen " +"Auswirkungen." msgid "API Docs" -msgstr "" +msgstr "API-Doku" msgid "API Docs ↗" -msgstr "" +msgstr "API-Doku ↗" msgid "API key management" -msgstr "" +msgstr "API-Key-Verwaltung" msgid "API key — " -msgstr "" +msgstr "API-Key — " msgid "Acknowledgement:" -msgstr "" +msgstr "Bestätigung:" msgid "Affected version (commit hash or release tag if known)." -msgstr "" +msgstr "Betroffene Version (Commit-Hash oder Release-Tag, falls bekannt)." msgid "All prices excl. VAT where applicable. Payments processed by Stripe." -msgstr "" +msgstr "Alle Preise zzgl. ggf. anfallender USt. Zahlungen via Stripe." msgid "Already have an account?" -msgstr "" +msgstr "Hast du schon ein Konto?" msgid "At least 8 characters" -msgstr "" +msgstr "Mindestens 8 Zeichen" msgid "Back to Home" -msgstr "" +msgstr "Zurück zur Startseite" msgid "Back to Sign In" -msgstr "" +msgstr "Zurück zur Anmeldung" msgid "Batch upload:" -msgstr "" +msgstr "Batch-Upload:" msgid "Best quality" -msgstr "" +msgstr "Beste Qualität" msgid "Billed monthly, cancel anytime" -msgstr "" +msgstr "Monatlich abgerechnet, jederzeit kündbar" msgid "Business" -msgstr "" +msgstr "Business" msgid "Business · €19" -msgstr "" +msgstr "Business · 19 €" msgid "By quality %" -msgstr "" +msgstr "Nach Qualität %" msgid "By target size" -msgstr "" +msgstr "Nach Zielgröße" msgid "Choose a password you haven't used before" -msgstr "" +msgstr "Wähle ein Passwort, das du vorher noch nicht verwendet hast" msgid "Clear all" -msgstr "" +msgstr "Alle entfernen" msgid "Coming soon" -msgstr "" +msgstr "Demnächst verfügbar" msgid "Compliance Edition →" -msgstr "" +msgstr "Compliance Edition →" msgid "Compress" -msgstr "" +msgstr "Komprimieren" msgid "Compression mode" -msgstr "" +msgstr "Kompressions-Modus" msgid "Confirm Password" -msgstr "" +msgstr "Passwort bestätigen" msgid "Confirm password" -msgstr "" +msgstr "Passwort bestätigen" msgid "Confirm your email" -msgstr "" +msgstr "Bestätige deine E-Mail-Adresse" msgid "Confirming email" -msgstr "" +msgstr "E-Mail wird bestätigt" msgid "Confirming your email…" -msgstr "" +msgstr "Deine E-Mail-Adresse wird bestätigt…" msgid "Convert" -msgstr "" +msgstr "Konvertieren" msgid "Convert & Compress Files" -msgstr "" +msgstr "Dateien konvertieren & komprimieren" msgid "Coordinated disclosure:" -msgstr "" +msgstr "Koordinierte Offenlegung:" msgid "Create Account" -msgstr "" +msgstr "Konto erstellen" msgid "Create one" -msgstr "" +msgstr "Jetzt erstellen" msgid "" "Custom volume, batch uploads up to 250 files, SLA, on-premise deployment," " dedicated support & contract. For DACH Behörden, hospitals, law firms " "see" msgstr "" +"Individuelles Volumen, Batch-Uploads bis zu 250 Dateien, SLA, On-Premise-" +"Deployment, dedizierter Support & Vertrag. Für DACH-Behörden, " +"Krankenhäuser, Kanzleien siehe" msgid "DOCX · PDF · TXT · MD · XLSX · CSV · JSON" -msgstr "" +msgstr "DOCX · PDF · TXT · MD · XLSX · CSV · JSON" msgid "Dedicated onboarding" -msgstr "" +msgstr "Dediziertes Onboarding" msgid "Documented API endpoints and the web UI." -msgstr "" +msgstr "Dokumentierte API-Endpunkte und die Web-UI." msgid "Download Result" -msgstr "" +msgstr "Ergebnis herunterladen" msgid "Drag & drop your files here" -msgstr "" +msgstr "Dateien hier ablegen" msgid "Drop files here or click to browse" -msgstr "" +msgstr "Dateien hier ablegen oder klicken zum Auswählen" msgid "E-mail support" -msgstr "" +msgstr "E-Mail-Support" msgid "Email" -msgstr "" +msgstr "E-Mail" msgid "Enter your email to receive a reset link" -msgstr "" +msgstr "Gib deine E-Mail-Adresse ein, um einen Zurücksetzungs-Link zu erhalten" msgid "Enterprise" -msgstr "" +msgstr "Enterprise" msgid "Enterprise & self-hosted:" -msgstr "" +msgstr "Enterprise & Self-Hosted:" msgid "Enterprise / Compliance" -msgstr "" +msgstr "Enterprise / Compliance" msgid "File Converter & Compressor" -msgstr "" +msgstr "Datei-Konverter & -Kompressor" msgid "File compression mode" -msgstr "" +msgstr "Datei-Kompressions-Modus" msgid "File conversion and compression — open source, self-hostable." -msgstr "" +msgstr "Datei-Konvertierung und -Kompression — Open Source, selbst hostbar." msgid "File conversion mode" -msgstr "" +msgstr "Datei-Konvertierungs-Modus" msgid "" "FileMorph — Free online file converter & compressor. Convert images, " "documents, audio and video. Fast, private, no account required." msgstr "" +"FileMorph — Kostenloser Online-Datei-Konverter & -Kompressor. Bilder, " +"Dokumente, Audio und Video konvertieren. Schnell, privat, kein Konto " +"erforderlich." msgid "Files are processed server-side and deleted immediately after conversion." msgstr "" +"Dateien werden serverseitig verarbeitet und sofort nach der Konvertierung" +" gelöscht." msgid "Fix timeline:" -msgstr "" +msgstr "Behebungs-Zeitplan:" msgid "For Developers" -msgstr "" +msgstr "Für Entwickler" msgid "For issues in the open-source codebase itself, you may alternatively use" -msgstr "" +msgstr "Für Probleme im Open-Source-Codebase selbst kannst du alternativ" msgid "Forgot Password" -msgstr "" +msgstr "Passwort vergessen" msgid "Forgot password?" -msgstr "" +msgstr "Passwort vergessen?" msgid "Free" -msgstr "" +msgstr "Kostenlos" msgid "Free forever — no credit card required" -msgstr "" +msgstr "Für immer kostenlos — keine Kreditkarte erforderlich" msgid "" "Free tier is live today. Pro & Business launch shortly — paid checkouts " "go live once payment processing is fully set up." msgstr "" +"Free-Tier ist seit heute live. Pro & Business folgen in Kürze — bezahlte " +"Checkouts gehen live, sobald die Zahlungsabwicklung eingerichtet ist." msgid "Get API Key →" -msgstr "" +msgstr "API-Key holen →" msgid "Get started free" -msgstr "" +msgstr "Kostenlos starten" msgid "GitHub Security Advisories" -msgstr "" +msgstr "GitHub Security Advisories" msgid "GitHub ↗" -msgstr "" +msgstr "GitHub ↗" msgid "" "Good-faith research in line with this policy will not result in legal " @@ -283,327 +295,369 @@ msgid "" "service disruption, and data destruction; test against your own self-" "hosted instance whenever possible." msgstr "" +"Gutgläubige Forschung im Einklang mit dieser Richtlinie führt nicht zu " +"rechtlichen Schritten seitens des FileMorph-Projekts. Bitte vermeide " +"Datenschutzverletzungen, Service-Unterbrechungen und Datenzerstörung; " +"teste wenn möglich gegen deine eigene selbst gehostete Instanz." msgid "If this email exists, you'll receive a reset link shortly." msgstr "" +"Falls diese E-Mail-Adresse existiert, erhältst du in Kürze einen " +"Zurücksetzungs-Link." msgid "" "If you have discovered a security issue in FileMorph or in this " "deployment, please email" msgstr "" +"Wenn du eine Sicherheitslücke in FileMorph oder in diesem Deployment " +"entdeckt hast, schicke bitte eine E-Mail an" msgid "Images · Documents · Audio · Video · Spreadsheets" -msgstr "" +msgstr "Bilder · Dokumente · Audio · Video · Tabellen" msgid "Impressum" -msgstr "" +msgstr "Impressum" msgid "In scope:" -msgstr "" +msgstr "Im Geltungsbereich:" msgid "Initial triage:" -msgstr "" +msgstr "Erste Prüfung:" msgid "" "Integrate file conversion into your app via REST API. One endpoint, all " "formats." msgstr "" +"Integriere Datei-Konvertierung in deine App via REST-API. Ein Endpunkt, " +"alle Formate." msgid "Internal server error" -msgstr "" +msgstr "Interner Serverfehler" msgid "" "Issues that require physical access to a self-hosted server, or social " "engineering of an operator." msgstr "" +"Probleme, die physischen Zugriff auf einen selbst gehosteten Server oder " +"Social Engineering eines Operators erfordern." msgid "JPEG / WebP only." -msgstr "" +msgstr "Nur JPEG / WebP." msgid "Language" -msgstr "" +msgstr "Sprache" msgid "MP4 · MOV · AVI · MKV · WebM · MP3 · WAV · FLAC · OGG · M4A" -msgstr "" +msgstr "MP4 · MOV · AVI · MKV · WebM · MP3 · WAV · FLAC · OGG · M4A" msgid "Min. 8 characters." -msgstr "" +msgstr "Min. 8 Zeichen." msgid "" "Monthly call quotas are bucket sizes for spread-out use, not parallelism " "guarantees. Each tier has a per-key concurrency cap so one batch can't " "starve the whole worker pool — requests past the cap return" msgstr "" +"Monatliche Aufruf-Kontingente sind Pool-Größen für gleichmäßige Nutzung, " +"keine Parallelitäts-Garantien. Jeder Tarif hat eine Pro-Key-Concurrency-" +"Begrenzung, damit ein Batch nicht den ganzen Worker-Pool blockiert — " +"Anfragen über dem Limit erhalten" msgid "Most popular" -msgstr "" +msgstr "Am beliebtesten" msgid "New password" -msgstr "" +msgstr "Neues Passwort" msgid "No account?" -msgstr "" +msgstr "Kein Konto?" msgid "No credit card required" -msgstr "" +msgstr "Keine Kreditkarte erforderlich" msgid "One click and you're done" -msgstr "" +msgstr "Ein Klick und du bist fertig" msgid "Open dashboard" -msgstr "" +msgstr "Dashboard öffnen" msgid "Our response" -msgstr "" +msgstr "Unsere Reaktion" msgid "Out of scope:" -msgstr "" +msgstr "Nicht im Geltungsbereich:" msgid "Page not found" -msgstr "" +msgstr "Seite nicht gefunden" msgid "Paid tiers — coming soon" -msgstr "" +msgstr "Bezahlte Tarife — demnächst verfügbar" msgid "Password" -msgstr "" +msgstr "Passwort" msgid "Plans" -msgstr "" +msgstr "Tarife" msgid "Pricing" -msgstr "" +msgstr "Preise" msgid "Priority support" -msgstr "" +msgstr "Priorisierter Support" msgid "Priority support (best effort)" -msgstr "" +msgstr "Priorisierter Support (Best Effort)" msgid "Privacy Policy" -msgstr "" +msgstr "Datenschutzerklärung" msgid "Pro" -msgstr "" +msgstr "Pro" msgid "Pro · €7/mo" -msgstr "" +msgstr "Pro · 7 €/Monat" msgid "Processing…" -msgstr "" +msgstr "Verarbeitung…" msgid "Quality" -msgstr "" +msgstr "Qualität" msgid "RFC 9116 · referenced from" -msgstr "" +msgstr "RFC 9116 · referenziert von" msgid "Register" -msgstr "" +msgstr "Registrieren" msgid "Register free for 50 MB & API access →" -msgstr "" +msgstr "Kostenlos registrieren für 50 MB & API-Zugriff →" msgid "Reporting a vulnerability" -msgstr "" +msgstr "Eine Sicherheitslücke melden" msgid "" "Reports generated solely by automated scanners without a working proof-" "of-concept." msgstr "" +"Berichte, die ausschließlich von automatisierten Scannern ohne " +"funktionierenden Proof-of-Concept erstellt wurden." msgid "Reset Password" -msgstr "" +msgstr "Passwort zurücksetzen" msgid "Safe-harbour" -msgstr "" +msgstr "Safe-Harbour" msgid "Saved API keys & dashboard" -msgstr "" +msgstr "Gespeicherte API-Keys & Dashboard" msgid "Scope" -msgstr "" +msgstr "Geltungsbereich" msgid "Security disclosure policy" -msgstr "" +msgstr "Sicherheits-Offenlegungsrichtlinie" msgid "See all plans →" -msgstr "" +msgstr "Alle Tarife anzeigen →" msgid "Select one or more files to convert or compress" -msgstr "" +msgstr "Wähle eine oder mehrere Dateien zum Konvertieren oder Komprimieren" msgid "" "Self-hoster-specific deployment misconfiguration that is not caused by " "our defaults or documentation." msgstr "" +"Self-Hoster-spezifische Deployment-Fehlkonfigurationen, die nicht durch " +"unsere Defaults oder Dokumentation verursacht werden." msgid "Send Reset Link" -msgstr "" +msgstr "Link senden" msgid "Set a new password" -msgstr "" +msgstr "Neues Passwort festlegen" msgid "Sign In" -msgstr "" +msgstr "Anmelden" msgid "Sign in" -msgstr "" +msgstr "Anmelden" msgid "Simple, transparent pricing" -msgstr "" +msgstr "Einfache, transparente Preise" msgid "Smaller file" -msgstr "" +msgstr "Kleinere Datei" msgid "Something went wrong on our end. Please try again in a moment." msgstr "" +"Auf unserer Seite ist etwas schiefgelaufen. Bitte versuche es gleich noch" +" einmal." msgid "Start free. Upgrade when you need more. No hidden fees." -msgstr "" +msgstr "Kostenlos starten. Upgraden bei Bedarf. Keine versteckten Gebühren." msgid "Steps to reproduce, including any required configuration or input files." msgstr "" +"Schritte zur Reproduktion, einschließlich erforderlicher Konfiguration " +"oder Input-Dateien." msgid "Supported: HEIC · JPG · PNG · WebP · BMP · TIFF · GIF" -msgstr "" +msgstr "Unterstützt: HEIC · JPG · PNG · WebP · BMP · TIFF · GIF" msgid "Switch to English" -msgstr "" +msgstr "Zu Englisch wechseln" msgid "Switch to German" -msgstr "" +msgstr "Zu Deutsch wechseln" msgid "Target Format" -msgstr "" +msgstr "Zielformat" msgid "Target file size" -msgstr "" +msgstr "Ziel-Dateigröße" msgid "Terms of Use" -msgstr "" +msgstr "Nutzungsbedingungen" msgid "" "That channel is preferred for issues that affect every self-hosted " "instance, since the repository maintainers can coordinate a CVE and " "release a patched version centrally." msgstr "" +"Dieser Kanal ist bevorzugt für Probleme, die jede selbst gehostete " +"Instanz betreffen, da die Repository-Maintainer eine CVE koordinieren und" +" eine gepatchte Version zentral veröffentlichen können." msgid "The FileMorph application source code (this repository)." -msgstr "" +msgstr "Der FileMorph-Anwendungs-Quellcode (dieses Repository)." msgid "The official Docker images and release artifacts." -msgstr "" +msgstr "Die offiziellen Docker-Images und Release-Artefakte." msgid "The page you are looking for does not exist or has been moved." -msgstr "" +msgstr "Die gesuchte Seite existiert nicht oder wurde verschoben." msgid "" "Third-party services we depend on (Stripe, Zoho, Cloudflare, Hetzner) — " "please report to those vendors directly." msgstr "" +"Drittanbieter-Dienste, von denen wir abhängen (Stripe, Zoho, Cloudflare, " +"Hetzner) — bitte direkt an die jeweiligen Anbieter melden." msgid "This link is missing a reset token. Request a new one from" -msgstr "" +msgstr "Diesem Link fehlt ein Zurücksetzungs-Token. Fordere einen neuen an unter" msgid "" "This link is missing a verification token. Sign in and request a new " "verification email from your dashboard." msgstr "" +"Diesem Link fehlt ein Bestätigungs-Token. Melde dich an und fordere eine " +"neue Bestätigungs-E-Mail vom Dashboard an." msgid "Toggle menu" -msgstr "" +msgstr "Menü umschalten" msgid "Type it again" -msgstr "" +msgstr "Erneut eingeben" msgid "Up to 100 MB per file" -msgstr "" +msgstr "Bis zu 100 MB pro Datei" msgid "Up to 50 MB per file" -msgstr "" +msgstr "Bis zu 50 MB pro Datei" msgid "Up to 500 MB per file" -msgstr "" +msgstr "Bis zu 500 MB pro Datei" msgid "Update password" -msgstr "" +msgstr "Passwort aktualisieren" msgid "Upgrade to Business" -msgstr "" +msgstr "Auf Business upgraden" msgid "Upgrade to Pro" -msgstr "" +msgstr "Auf Pro upgraden" msgid "Using anonymously: up to 20 MB per file." -msgstr "" +msgstr "Anonyme Nutzung: bis zu 20 MB pro Datei." msgid "" "Using without an account: up to 20 MB per file · single file at a time · " "10 requests/minute · no API access" msgstr "" +"Ohne Konto verwenden: bis zu 20 MB pro Datei · einzelne Dateien · 10 " +"Anfragen/Minute · kein API-Zugriff" msgid "Welcome back to FileMorph" -msgstr "" +msgstr "Willkommen zurück bei FileMorph" msgid "What to include in a report" -msgstr "" +msgstr "Was ein Bericht enthalten sollte" msgid "Whether the issue has been disclosed publicly elsewhere." -msgstr "" +msgstr "Ob das Problem bereits anderswo öffentlich offengelegt wurde." msgid "Your email is now verified." -msgstr "" +msgstr "Deine E-Mail-Adresse ist jetzt bestätigt." msgid "Your password has been updated." -msgstr "" +msgstr "Dein Passwort wurde aktualisiert." msgid "" "critical issues within 7 days, high severity within 30 days, medium/low " "within the next regular release." msgstr "" +"kritische Probleme innerhalb von 7 Tagen, hohe Schwere innerhalb von 30 " +"Tagen, mittel/niedrig im nächsten regulären Release." msgid "hint. Large batches are processed sequentially inside the request." msgstr "" +"Hinweis. Große Batches werden sequentiell innerhalb der Anfrage " +"verarbeitet." msgid "min 0.05 MB" -msgstr "" +msgstr "min. 0,05 MB" msgid "or click to browse (multi-file supported)" -msgstr "" +msgstr "oder klicken zum Auswählen (Mehrfach-Dateien möglich)" msgid "per request" -msgstr "" +msgstr "pro Anfrage" msgid "" "we publish an advisory once a fixed release is available, and credit " "reporters who wish to be named." msgstr "" +"wir veröffentlichen einen Advisory, sobald ein Fix-Release verfügbar ist," +" und nennen Reporter, die genannt werden möchten." msgid "with a" -msgstr "" +msgstr "mit einem" msgid "" "with a clear description of the issue and any steps required to reproduce" " it. Encrypted mail is welcome — request our PGP key at the same address " "if needed." msgstr "" +"mit einer klaren Beschreibung der Lücke und der Schritte zur " +"Reproduktion. Verschlüsselte Mail ist willkommen — fordere unseren PGP-" +"Key bei der gleichen Adresse an, falls benötigt." msgid "within 7 days, including a severity assessment." -msgstr "" +msgstr "innerhalb von 7 Tagen, einschließlich einer Schweregrad-Bewertung." msgid "within 72 hours of receipt." -msgstr "" +msgstr "innerhalb von 72 Stunden nach Eingang." msgid "© 2026 FileMorph — AGPLv3 Open Source" -msgstr "" +msgstr "© 2026 FileMorph — AGPLv3 Open Source" msgid "±3% tolerance" -msgstr "" +msgstr "±3% Toleranz" msgid "— select a file first —" -msgstr "" +msgstr "— erst eine Datei wählen —" msgid "← Back" -msgstr "" +msgstr "← Zurück" diff --git a/tests/test_email_verification.py b/tests/test_email_verification.py index 18d5fc6..1d5a498 100644 --- a/tests/test_email_verification.py +++ b/tests/test_email_verification.py @@ -345,7 +345,11 @@ def test_resend_verification_noop_for_already_verified(client, mock_send_email): def test_verify_email_page_renders(client): - res = client.get("/verify-email?token=anything") + # Hit the /en/ variant so the assertion checks the English heading + # deterministically — the unprefixed default route now renders DE + # ("Bestätige deine E-Mail-Adresse") because the operator default + # is German (LANG_DEFAULT=de). + res = client.get("/en/verify-email?token=anything") assert res.status_code == 200 assert "text/html" in res.headers.get("content-type", "") # The JS handles the token client-side; we only check the page shell. diff --git a/tests/test_pricing_limits_visible.py b/tests/test_pricing_limits_visible.py index abad88b..9f9ec04 100644 --- a/tests/test_pricing_limits_visible.py +++ b/tests/test_pricing_limits_visible.py @@ -30,7 +30,11 @@ def pricing_html(client, monkeypatch): # Stripe is configured in the dev env that runs the test suite. app.state # access only — no mutation needed monkeypatch.setattr(settings, "stripe_secret_key", "sk_test_placeholder") # gitleaks:allow - res = client.get("/pricing") + # Hit /en/pricing so the EN copy ("10,000 calls / month", "2 concurrent") + # is asserted deterministically. The DE catalog uses German number + # formatting ("10.000" with dot) and "gleichzeitig" — the limiter + # contract is the same, the wording is locale-bound. + res = client.get("/en/pricing") assert res.status_code == 200, res.text return res.text diff --git a/tests/test_public_pages_reachability.py b/tests/test_public_pages_reachability.py index a857fe8..ce46610 100644 --- a/tests/test_public_pages_reachability.py +++ b/tests/test_public_pages_reachability.py @@ -24,10 +24,14 @@ @pytest.mark.parametrize( "path,expected_marker", [ + # /privacy and /terms are still raw English (PR-i18n-2c will handle + # them with a DE-as-authoritative legal footer). /impressum is DE + # in either prefix — same word in both languages. /security IS + # wrapped, so we hit the /en/ variant for the English marker. ("/privacy", "Privacy Policy"), ("/terms", "Terms of Use"), ("/impressum", "Impressum"), - ("/security", "Reporting a vulnerability"), + ("/en/security", "Reporting a vulnerability"), ], ) def test_public_legal_page_reachable(client, path: str, expected_marker: str) -> None: diff --git a/tests/test_seo_foundation.py b/tests/test_seo_foundation.py index d609b1d..b3b4fbe 100644 --- a/tests/test_seo_foundation.py +++ b/tests/test_seo_foundation.py @@ -274,7 +274,9 @@ def test_pricing_renders_coming_soon_when_stripe_disabled(client, monkeypatch): templates.env.globals["stripe_enabled"] = False - r = client.get("/pricing") + # Hit /en/pricing — the "coming soon" wording is English. The DE + # variant says "demnächst verfügbar" (also asserted by separate test). + r = client.get("/en/pricing") assert r.status_code == 200 body = r.text.lower() assert "coming soon" in body, "Coming-Soon banner missing when Stripe disabled"