All checks were successful
Deploy mahnung / deploy (push) Successful in 13s
Wenn pdftotext keinen Text findet, wird ocrmypdf (Tesseract OCR) auf das PDF angewendet bevor erneut nach Sendungsnummern gesucht wird. Bei leerem Ergebnis erscheint jetzt eine Hinweismeldung statt stummem Seiten-Reload. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
364 lines
18 KiB
Text
364 lines
18 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.
|
|
|
|
#
|
|
# Credit standing / Bad debt (Phase 6)
|
|
#
|
|
MahnungBonitaetWarnung = Bad debts on record — verify credit standing
|
|
MahnungBonitaetWarnungKurz = Credit
|
|
MahnungBonitaetRechnungSing = written-off invoice
|
|
MahnungBonitaetRechnungPlur = written-off invoices
|
|
MahnungBonitaetGesamtAusfall = total loss
|
|
MahnungBonitaetLetzteAm = Last write-off on
|
|
MahnungBonitaetAusfaelleAnzeigen = Show written-off invoices
|
|
MahnungBonitaetKundeHat = This customer has %d unrecoverable invoice(s) totalling %s. Verify credit before new business.
|
|
MahnungUneinbringlich = Classify as unrecoverable
|
|
MahnungUneinbringlichHint = Invoice will be marked as abandoned + close_code='badcustomer'. Final step after unsuccessful collection / enforcement.
|
|
MahnungUneinbringlichTitel = Classify receivable as unrecoverable
|
|
MahnungUneinbringlichWarnung = Warning: This step is (almost) final. Invoice will be set to STATUS_ABANDONED and dunning cancelled. Please confirm beforehand: unsuccessful collection order + enforcement OR proven insolvency OR statute of limitations expired. Continue with
|
|
MahnungUneinbringlichBegruendung = Reason (e.g. enforcement order from ..., insolvency case ID)
|
|
MahnungUneinbringlichErfolg = Invoice classified as unrecoverable + dunning cancelled
|
|
MahnungRechnungBereitsUneinbringlich = Invoice already abandoned
|
|
|
|
#
|
|
# 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.
|
|
MahnungCronVersandReminder = Dunning — shipment reminder (unsent dunnings)
|
|
MahnungCronVersandReminderDesc = Daily check for dunnings in status ERSTELLT that have not been sent for more than N days (MAHNUNG_VERSAND_REMINDER_DAYS, default 2).
|
|
MahnungDokumentLoeschenConfirm = Really delete document '%s'?
|
|
|
|
#
|
|
# Hardcoded strings (i18n)
|
|
#
|
|
MahnungDokumentErstellt = Document created
|
|
MahnungDokumentFehler = Document error
|
|
MahnungDateiNichtGefunden = File not found or not associated
|
|
MahnungFehlerSpeichern = Error saving
|
|
MahnungVerfahrenErfolglos = Dunning procedure completed unsuccessfully on
|
|
MahnungFehlerKlassifizieren = Error classifying
|
|
MahnungRechnungNichtLadbar = Invoice could not be loaded
|
|
MahnungUneinbringlichKlassifiziert = Classified as unrecoverable
|
|
MahnungKeineVorgaenge = No dunning records.
|
|
MahnungStufeAmDatum = Stage %s on %s
|
|
MahnungCronKeineUeberfaellige = No overdue invoices with pending dunning.
|
|
MahnungCronOffeneVorschlaege = Dunning: %s open proposals
|
|
MahnungCronStufe1Erinnerung = Stage 1 (reminder): %s
|
|
MahnungCronStufe2Mahnung = Stage 2 (dunning): %s
|
|
MahnungCronStufe3LetzteMahnung = Stage 3 (final dunning): %s
|
|
MahnungCronOffenerBetrag = Open amount: %s EUR
|
|
MahnungCronVorschlaege = Dunning: %s proposals
|
|
MahnungCronVorschlagslisteOeffnen = Open proposal list
|
|
MahnungCronKeineUnversendet = No dunnings unsent > %s days.
|
|
MahnungCronUnversendetTitel = Dunning: %s dunning(s) unsent
|
|
MahnungCronStufeAlter = %s (stage %s, %s days old) — %s
|
|
MahnungCronWeitere = + %s more
|
|
MahnungCronArchivOeffnen = Open archive
|
|
MahnungCronEintraege = %s — %s entries
|
|
MahnungCsrfFehler = Token verification failed (CSRF).
|
|
MahnungNichtBerechtigt = Not authorised.
|
|
MahnungKeineRechnungenAusgewaehlt = No invoices selected.
|
|
MahnungStufeNichtKonfiguriert = Invoice #%s: stage %s not configured
|
|
MahnungMahnungErstellt = %s dunning(s) created
|
|
MahnungUebersprungen2 = , %s skipped (waiting period)
|
|
MahnungFehlerLabel = — Errors: %s
|
|
MahnungCsrfTokenUngueltig = CSRF token invalid.
|
|
MahnungNichtBerechtigtSend = Not authorised (mahnung.send).
|
|
MahnungIdFehlt = mahnung_id missing.
|
|
MahnungNichtGefunden = Dunning %s not found.
|
|
MahnungPdfFehlt = PDF for dunning %s missing — please generate dunning first.
|
|
MahnungKundeNichtLadbar = Customer could not be loaded.
|
|
MahnungKundeKeineEmail = Customer has no e-mail address configured.
|
|
MahnungEmailGesendet = E-mail sent to %s.
|
|
MahnungEmailFehlgeschlagen = E-mail dispatch failed: %s
|
|
MahnungSammelbriefNichtBerechtigt = Not authorised.
|
|
MahnungSammelbriefCsrfFehler = Token verification failed.
|
|
MahnungSammelbriefKeinePdfs = No PDFs generated — check whether invoices are eligible for dunning.
|
|
MahnungSammelbriefFehler = Bulk letter PDF could not be generated.
|
|
MahnungTemplateVarsTitle = Dunning — Template variables
|
|
MahnungTemplateVarsHeader = Available variables for ODT templates
|
|
MahnungTemplateVarsBackToSetup = Back to setup
|
|
MahnungTemplateVarsIntro = These variables can be used in ODT templates with curly braces, e.g. <code>{mahnung_ref}</code>.
|
|
MahnungTemplateVarsIntro2 = Stage-specific templates: <code>mahnung_stufe1.odt</code>, <code>mahnung_stufe2.odt</code>, <code>mahnung_stufe3.odt</code> — fallback: any <code>.odt</code> in the template directory.
|
|
MahnungTemplateVarsGrpMahnung = Dunning
|
|
MahnungTemplateVarsGrpRechnung = Linked invoice
|
|
MahnungTemplateVarsGrpFirma = Own company (sender)
|
|
MahnungTemplateVarsGrpKunde = Customer (recipient)
|
|
MahnungTemplateVarsGrpBank = Bank details
|
|
MahnungTemplateVarsGrpStandard = Dolibarr standard (selection)
|
|
MahnungTemplateVarsColVariable = Variable
|
|
MahnungTemplateVarsColBeschreibung = Description
|
|
MahnungTemplateVarsColBeispiel = Example
|
|
MahnungTemplateVarMahnungRef = Dunning reference number
|
|
MahnungTemplateVarMahnungStufe = Dunning stage (number)
|
|
MahnungTemplateVarMahnungStufeLabel = Stage label
|
|
MahnungTemplateVarMahnungDate = Dunning date
|
|
MahnungTemplateVarMahnungDateLimAlt = Original invoice due date
|
|
MahnungTemplateVarMahnungDateLimNeu = New payment deadline
|
|
MahnungTemplateVarMahnungBetragOffen = Open invoice amount
|
|
MahnungTemplateVarMahnungMahngebuehr = Dunning fee for this stage
|
|
MahnungTemplateVarMahnungPauschale = B2B flat fee per BGB §288 (5)
|
|
MahnungTemplateVarMahnungVerzugszinsen = Calculated late-payment interest
|
|
MahnungTemplateVarMahnungSumme = Total claim (open + fees + interest)
|
|
MahnungTemplateVarMahnungBasiszins = BGB base rate (snapshot at creation)
|
|
MahnungTemplateVarMahnungZinssatz = Effective interest rate (base + surcharge)
|
|
MahnungTemplateVarMahnungKundentyp = Customer type
|
|
MahnungTemplateVarMahnungKundentypBsp = B2C or B2B
|
|
MahnungTemplateVarMahnungVersandart = Dispatch method
|
|
MahnungTemplateVarMahnungVersandartBsp = pdf, mail, druck, none
|
|
MahnungTemplateVarMahnungPdfIntro = Introduction text of dunning stage (from setup or default)
|
|
MahnungTemplateVarMahnungPdfIntroBsp = our invoice listed below...
|
|
MahnungTemplateVarFactureRef = Invoice number
|
|
MahnungTemplateVarFactureDate = Invoice date
|
|
MahnungTemplateVarFactureDateLim = Original due date
|
|
MahnungTemplateVarFactureTotalHt = Net amount of invoice
|
|
MahnungTemplateVarFactureTotalTtc = Gross amount of invoice
|
|
MahnungTemplateVarFactureTotalTva = VAT amount
|
|
MahnungTemplateVarFactureAlreadyPaid = Already paid amount
|
|
MahnungTemplateVarFirmaName = Company name
|
|
MahnungTemplateVarFirmaStrasse = Street
|
|
MahnungTemplateVarFirmaPlz = Postal code
|
|
MahnungTemplateVarFirmaOrt = City
|
|
MahnungTemplateVarFirmaLand = Country
|
|
MahnungTemplateVarFirmaTelefon = Phone number
|
|
MahnungTemplateVarFirmaFax = Fax number
|
|
MahnungTemplateVarFirmaEmail = E-mail address
|
|
MahnungTemplateVarFirmaWeb = Website
|
|
MahnungTemplateVarFirmaHr = Commercial register number
|
|
MahnungTemplateVarFirmaSteuernr = SIRET/Tax number
|
|
MahnungTemplateVarFirmaKapital = Share capital
|
|
MahnungTemplateVarFirmaLogo = Company logo (inserted as image)
|
|
MahnungTemplateVarFirmaLogoBsp = (image file)
|
|
MahnungTemplateVarKundeName = Customer name
|
|
MahnungTemplateVarKundeAlias = Short name/alias
|
|
MahnungTemplateVarKundeStrasse = Street
|
|
MahnungTemplateVarKundePlz = Postal code
|
|
MahnungTemplateVarKundeOrt = City
|
|
MahnungTemplateVarKundeLand = Country
|
|
MahnungTemplateVarKundeTelefon = Phone
|
|
MahnungTemplateVarKundeEmail = E-mail
|
|
MahnungTemplateVarKundeHr = Commercial register
|
|
MahnungTemplateVarKundeSteuernr = Tax number
|
|
MahnungTemplateVarKundeUstIdNr = VAT ID
|
|
MahnungTemplateVarKundeNotiz = Public note of customer
|
|
MahnungTemplateVarBankName = Bank name
|
|
MahnungTemplateVarBankIban = IBAN
|
|
MahnungTemplateVarBankBic = BIC/SWIFT
|
|
MahnungTemplateVarAbsenderName = Sender name
|
|
MahnungTemplateVarAbsenderEmail = Sender e-mail
|
|
MahnungTemplateVarDatum = Current date
|
|
MahnungTemplateVarUserNachname = Last name of logged-in user
|
|
MahnungTemplateVarUserVorname = First name of logged-in user
|
|
MahnungTemplateVarUserEmail = E-mail of logged-in user
|
|
MahnungSetupTemplateVars = Available template variables
|
|
MahnungTriggerBeschreibung = Dunning trigger: marks open dunnings as closed on payment receipt.
|
|
MahnungBoxStufe = Stage %s
|
|
MahnungBoxStufeVom = Stage %s from %s
|
|
MahnungVorschlagStufeNichtKonfiguriert = Stage 1 not configured
|
|
MahnungVorschlagFristNichtErreicht = Stage 1 deadline (%s days) not yet reached (overdue %s days)
|
|
MahnungVorschlagAlleStufenAusgeschoepft = All dunning stages exhausted (last stage %s)
|
|
MahnungVorschlagWartefristLaeuft = Waiting period after stage %s still running (%s/%s days)
|
|
MahnungVorschlagBetragNull = Open amount <= 0 (probably fully paid, paye flag not yet set)
|
|
MahnungPatternNichtGefunden = Pattern not found
|
|
MahnungSpeichernFehlgeschlagen = Save failed
|
|
MahnungCronCommentBuild = Scans for overdue invoices, determines proposed dunning stages, sends Ntfy push
|
|
MahnungCronCommentReminder = Ntfy reminder for dunnings with status ERSTELLT that have not been dispatched for > N days (MAHNUNG_VERSAND_REMINDER_DAYS, default 2)
|
|
|
|
#
|
|
# PDF texts
|
|
#
|
|
MahnungPdfAnrede = Dear Sir or Madam,
|
|
MahnungPdfGruss = Kind regards
|
|
MahnungPdfFristUmgehend = We kindly ask for immediate settlement.
|
|
MahnungPdfFristBis = We kindly ask you to transfer the outstanding amount by %s at the latest to the account listed below.
|
|
MahnungPdfDefaultIntro1 = our invoice listed below has not been settled despite the payment deadline having passed. Perhaps this escaped your attention — we kindly ask you to transfer the outstanding amount promptly.
|
|
MahnungPdfDefaultIntro2 = unfortunately we have noted that the invoice listed below remains unpaid despite our payment reminder. We now urge you to settle the outstanding amount plus late-payment interest and dunning fees.
|
|
MahnungPdfDefaultIntro3 = we have already reminded you twice to settle the invoice listed below. Should the outstanding amount including late-payment interest and dunning fees not be received in our account within the stated deadline, we will be compelled to take further legal action.
|
|
MahnungPdfRechnungNichtLadbar = Invoice %s could not be loaded.
|
|
MahnungPdfKundeNichtLadbar = Customer %s could not be loaded.
|
|
MahnungPdfStufeNichtKonfiguriert = Dunning stage %s not configured.
|
|
MahnungPdfVerzeichnisFehler = Cannot create directory: %s
|
|
MahnungPdfFooterEmail = E-mail: %s
|
|
MahnungPdfFooterTel = Phone: %s
|
|
|
|
#
|
|
# E-mail defaults
|
|
#
|
|
MahnungEmailDefaultSubject = Dunning notice {stufe} for invoice {rechnung}
|
|
MahnungEmailDefaultBody1 = Dear Customer,\n\nplease find attached a friendly payment reminder for invoice {rechnung}.\nOutstanding amount incl. interest: {summe}.\nWe kindly ask for settlement by {frist} at the latest.\n\nKind regards
|
|
MahnungEmailDefaultBody2 = Dear Customer,\n\nplease find attached the 1st dunning notice for invoice {rechnung}.\nPlease transfer {summe} by {frist}.\n\nKind regards
|
|
MahnungEmailDefaultBody3 = Dear Customer,\n\nplease find attached the final dunning notice for invoice {rechnung}.\nIf the amount of {summe} is not received by {frist}, we will initiate legal proceedings.\n\nKind regards
|
|
MahnungKeineSendungsnummerErkannt = No tracking number found in receipts. Image PDFs are processed via OCR — if still nothing was found, the receipt may not contain a tracking number.
|