mahnung/langs/en_US/mahnung.lang
Eduard Wisch 216c185fb7
All checks were successful
Deploy mahnung / deploy (push) Successful in 14s
Beleg-Scan: Sendungsnummer aus hochgeladenen PDFs erkennen [deploy]
Neuer Button "Belege scannen" im Versand-Block der Mahnungs-Karte:
- Action scan_belege durchlaeuft alle Files in DOL_DATA_ROOT/mahnung/<MAHN-Ref>/
- PDFs werden via pdftotext (CLI, mit Verfuegbarkeits-Check) extrahiert
- txt/html werden direkt eingelesen (HTML mit strip_tags)
- Pro Datei wird MahnungTrackingPattern::detectFromText() angewendet —
  matched gegen alle aktiven Patterns nach priority DESC
- Treffer landen in $_SESSION als Vorschlag (file, provider, nr, url, label)

UX:
- Vorschlags-Banner mit gruener Linke ueber dem Beleg-Bereich
- Pro Vorschlag: Datei-Icon, Pattern-Label, Sendungsnummer als <code>,
  externer Link zur Sendungsverfolgung, "Uebernehmen"-Button
- "Uebernehmen" (action=apply_tracking) speichert tracking_nr +
  tracking_provider an der Mahnung und leert Session
- "Verwerfen" (action=dismiss_tracking) entfernt nur Session-Eintrag

Fallback:
- Wenn pdftotext nicht im Container verfuegbar: Warnmeldung im UI,
  txt/html werden trotzdem verarbeitet.

OCR fuer Bilder (PNG/JPG) bewusst noch nicht enthalten — separater Schritt
mit Container-Anpassung (Tesseract) wenn gewuenscht.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 12:07:09 +02:00

180 lines
6.7 KiB
Text

# Mahnung - English (en_US)
#
# Module metadata
#
ModuleMahnungName = Dunning
ModuleMahnungDesc = Dunning workflow with proposal list, stages, late-payment interest (German BGB §288)
MahnungDescription = 3-stage dunning workflow for overdue customer invoices with dunning fees, late-payment interest per German BGB §288, and PDF dispatch.
#
# Permissions
#
PermMahnungRead = Read dunning records
PermMahnungWrite = Create / edit dunning records
PermMahnungSend = Dispatch dunning notices (e-mail / print)
PermMahnungDelete = Delete dunning records
PermMahnungSetup = Configure dunning module
#
# Menus
#
MahnungMenu = Dunning
MahnungVorschlagsliste = Proposal list
MahnungArchiv = Dunning records
#
# Stages
#
MahnungStufe = Stage
MahnungStufe1 = Payment reminder
MahnungStufe2 = 1st dunning notice
MahnungStufe3 = Final dunning notice
MahnungStufeLabel = Label
MahnungStufeFristTage = Trigger (days after due date)
MahnungStufeNeueFristTage = New payment deadline (days)
MahnungStufeGebuehrB2C = Dunning fee B2C
MahnungStufeGebuehrB2B = Dunning fee B2B
MahnungStufeZinssatzB2C = Interest rate B2C (override)
MahnungStufeZinssatzB2B = Interest rate B2B (override)
MahnungStufeVersandartDefault = Default dispatch method
MahnungStufeEmailSubject = E-mail subject
MahnungStufeEmailBody = E-mail body
MahnungStufePdfIntro = PDF introduction text
#
# Status
#
MahnungStatusEntwurf = Draft
MahnungStatusErstellt = Created
MahnungStatusVersendet = Sent
MahnungStatusErledigt = Closed
MahnungStatusStorniert = Cancelled
#
# Dispatch method
#
MahnungVersandPdf = PDF attached to invoice
MahnungVersandMail = E-mail
MahnungVersandDruck = Bulk print letter
MahnungVersandNone = No dispatch
#
# Shipment & receipts (Phase 2)
#
MahnungVersandBelege = Shipment & receipts
MahnungVersanddatum = Shipment date
MahnungVersandweg = Shipment method
MahnungVersandwegPost = Letter (regular mail)
MahnungVersandwegEinschreiben = Registered mail (Deutsche Post)
MahnungVersandwegDhl = DHL parcel
MahnungVersandwegDpd = DPD
MahnungVersandwegHermes = Hermes
MahnungVersandwegUps = UPS
MahnungVersandwegFax = Fax
MahnungVersandwegEmail = E-mail
MahnungVersandwegPersoenlich = Hand delivery
MahnungVersandwegEigen = Own delivery
MahnungTrackingNr = Tracking number
MahnungTrackingNrHint = e.g. 1234567890 (DHL), RR123456789DE (Registered)
MahnungTrackingProvider = Provider
MahnungTrackingProviderAuto = auto-detect
MahnungSendungVerfolgen = Track shipment
MahnungVersandBearbeiten = Edit shipment
MahnungVersandLeeren = Reset shipment data
MahnungVersandLeerenConfirm = Really reset shipment data? Status will remain unchanged.
MahnungVersandGespeichert = Shipment data saved
MahnungVersandGeleert = Shipment data reset
MahnungSendebelege = Shipment receipts
MahnungSendebelegeHint = Upload receipt from postal carrier/DHL/fax/mail (PDF or photo). Stays attached to the dunning case for later verification.
#
# Tracking patterns (Phase 3)
#
MahnungTrackingPatternsSetup = Tracking patterns (regex)
MahnungTrackingPatternsIntro = Configure which regex is applied to the text of an uploaded shipment receipt to detect tracking number + provider automatically. Higher priority is checked first.
MahnungTrackingPatternsEmpty = No tracking patterns configured. Defaults will be seeded on first call.
MahnungTrackingPatternLabel = Label
MahnungTrackingPatternProvider = Provider slug
MahnungTrackingPatternRegex = Regex (delimiters / # ~)
MahnungTrackingPatternUrlTemplate = URL template
MahnungTrackingPatternUrlHint = https URL with placeholder <code>{nr}</code> — replaced with the detected tracking number.
MahnungTrackingPatternPriority = Priority
MahnungTrackingPatternPriorityHint = Higher = checked first (e.g. 90 for specific, 20 for generic).
MahnungTrackingPatternSample = Sample text (live preview)
MahnungTrackingPatternSamplePlaceholder = Paste a sample receipt text here — match + URL appear live below.
MahnungTrackingPatternMatch = Match
MahnungTrackingPatternNoMatch = No match in sample.
MahnungTrackingPatternRegexValid = Regex syntactically valid.
MahnungTrackingPatternRegexInvalid = Invalid regex.
MahnungTrackingPatternNewTitle = Add new pattern
MahnungTrackingPatternEditTitle = Edit pattern
MahnungTrackingPatternSaved = Pattern saved.
MahnungTrackingPatternDeleted = Pattern deleted.
MahnungTrackingPatternProviderRequired = Provider slug is required.
MahnungTrackingPatternLabelRequired = Label is required.
MahnungTrackingPatternUrlMustHttps = URL template must start with https://.
MahnungTrackingPatternUrlMissingPlaceholder = URL template must contain the {nr} placeholder.
#
# Receipt scan (Phase 4)
#
MahnungBelegeScannen = Scan receipts
MahnungBelegeScannenHint = Search uploaded PDFs for tracking numbers (pdftotext + regex)
MahnungTrackingErkannt = Tracking numbers detected
MahnungTrackingUebernehmen = Apply
MahnungTrackingUebernommen = Tracking number applied
MahnungTrackingVerwerfen = Dismiss suggestions
MahnungPdftotextMissing = pdftotext not available in container — PDFs cannot be scanned. Only txt/html will be processed.
#
# List / card
#
MahnungRef = Dunning ref.
MahnungRechnung = Invoice
MahnungKunde = Customer
MahnungKontakt = Contact
MahnungKundentyp = Type
MahnungKundentypB2C = Private (B2C)
MahnungKundentypB2B = Business (B2B)
MahnungDatum = Dunning date
MahnungFaelligkeitAlt = Original due date
MahnungFaelligkeitNeu = New deadline
MahnungTageVerzug = Days overdue
MahnungBetragOffen = Open amount
MahnungGebuehr = Dunning fee
MahnungPauschaleB2B = Flat fee (40 € §288)
MahnungVerzugszinsen = Late-payment interest
MahnungSumme = Total
MahnungBasiszinsSnapshot = Base rate (snapshot)
MahnungLetzteMahnung = Last dunning
MahnungVorgeschlageneStufe = Proposed stage
MahnungAktion = Action
MahnungErstellen = Create dunning
MahnungSammelbrief = Generate bulk letter
MahnungStornieren = Cancel
MahnungKeineUeberfaelligen = No overdue invoices found.
MahnungUebersprungen = Currently skipped invoices
MahnungUebersprungenHint = These invoices are overdue but currently not proposed (waiting period running or all dunning stages exhausted).
MahnungSkipGrund = Reason
#
# Setup page
#
MahnungSetup = Dunning settings
MahnungSetupPage = Dunning configuration
MahnungSetupDescription = Configure dunning stages, base rate, dispatch methods, and Ntfy topic.
MahnungBasiszins = BGB base rate (%)
MahnungBasiszinsHelp = Current Bundesbank base rate; update twice a year (Jan 1 / Jul 1).
MahnungAufschlagB2C = Surcharge B2C (%)
MahnungAufschlagB2B = Surcharge B2B (%)
MahnungPauschaleB2BLabel = Flat fee B2B (EUR)
MahnungNtfyTopic = Ntfy topic
MahnungNtfyTopicHelp = Topic for push notifications (default: vk-builds).
MahnungSettingsSaved = Settings saved.
#
# Cron
#
MahnungCronBuildVorschlag = Dunning — build proposal list
MahnungCronBuildVorschlagDesc = Daily scan for overdue invoices, sends a Ntfy push with the count of new proposals.