mahnung/langs/en_US/mahnung.lang
Eduard Wisch 0244a5b07e feat(mahnung): Mailversand ueber FormMail, Versandprotokoll, HTML-Mails
Phase 13/14 abgeschlossen. Der Mailversand war zuvor KAPUTT: ajax/sendmail.php
war bereits zur Funktionsbibliothek umgebaut, card.php postete aber weiterhin
per JS dagegen.

Mailformular (FormMail)
- card.php nutzt jetzt Dolibarrs Standard-Mailformular (action=presend/send):
  Empfaenger (Firma + alle Ansprechpartner), Betreff, Text und Anhang sichtbar
  und aenderbar. Gesendet wird ausschliesslich ueber mahnungSendeErinnerungsMail().
- Anhang = unveraenderte Original-Rechnungs-PDF, wird bei Bedarf nacherzeugt.
  Eigener Parameter mailinit statt mode=init, weil get_form() bei mode=init die
  Anhangsliste selbst leert.
- HTML-Mails: DolEditor im Setup + withfckeditor=-1 im Formular (folgt
  FCKEDITOR_ENABLE_MAIL wie Dolibarrs eigene Mailvorlagen).
- Klartext bleibt Klartext: GETPOST('restricthtml') jagt jeden Nicht-HTML-Text
  durch dol_nl2br() — mahnungBodyEntkleiden() nimmt nur dieses Artefakt zurueck
  und laesst echte Formatierung unangetastet.
- Platzhalter jetzt auch in Dolibarr-Schreibweise (__REF__, __DATE_YMD__,
  __AMOUNT_FORMATED__, __DATE_DUE_YMD__, __FRIST_TAGE__ ...), Liste sichtbar im Setup.
- Absender-Adresse und -Name konfigurierbar (MAHNUNG_EMAIL_SENDER[_NAME]).
- Erneuter Versand moeglich (force aus dem Status abgeleitet, nicht aus dem
  Request — Doppelversand-Schutz bleibt wirksam).

Versandprotokoll (neue Tabelle llx_mahnung_mailprotokoll)
- Jede versendete Erinnerung wird mit Empfaenger, Kopie, Betreff, Text und
  Anhangsnamen festgehalten, einsehbar unter Versandstatus. Historie statt
  Spalten am Vorgang, weil erneut gesendet werden kann.
- Lazy-Migration legt die Tabelle an (DB_VERSION 0.4.0), kein Reaktivieren noetig.

Haertung nach Code-Review (21 bestaetigte Funde)
- Anhang liess sich nicht abwaehlen (wurde sofort wieder eingehaengt)
- Upload/Entfernen ohne Rechtepruefung; Temp-Verzeichnis pro Vorgang getrennt
- Teilzahlung zwischen Oeffnen und Senden fuehrt zurueck ins Formular
- Empfaenger: Semikolon-Trenner, keine stillen Verwerfungen, Dubletten, CR/LF
- CSRF: presend + Core-Dateiaktionen (confirm_deletefile, renamefile, sendit,
  linkit) token-pflichtig
- Externe Benutzer sehen nur eigene Vorgaenge; Abschreiben verlangt facture.creer

UI
- Mahnstufe nur noch EINE Darstellung (Badge), Farbskala zentral in
  lib/mahnung_ui.lib.php statt doppelt gepflegt
- Zahnrad oben rechts in die Einstellungen (nur mit Recht mahnung.setup)
- Original-Rechnung unter Verknuepfte Dokumente mit Vorschau, Groesse in KB
- PDF-Einleitungstext nur noch, wo ueberhaupt ein PDF entsteht

Sprachdateien de_DE/en_US deckungsgleich, 9 tote Keys entfernt.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-22 21:31:25 +02:00

532 lines
30 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
#
MahnungSetupOeffnen = Open dunning settings
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)
MahnungZinssatzHelpB2C = Empty = default (%s + %s %% = %s %%), 0 = no interest
MahnungZinssatzHelpB2B = Empty = default (%s + %s %% = %s %%), 0 = no interest
MahnungStufeVersandartDefault = Default dispatch method
MahnungSenderMail = Sender address for e-mails
MahnungSenderMailHelp = Leave empty = company e-mail address, otherwise the global Dolibarr sender address.
MahnungSenderName = Sender name for e-mails
MahnungSenderNameHelp = Leave empty = company name.
MahnungSenderMailUngueltig = The sender address %s is not a valid e-mail address — nothing was saved.
MahnungPlatzhalterHilfe = Placeholders (both notations work): __REF__ / {rechnung} = invoice number · __SUMME__ / {summe} = open amount · __FRIST__ / {frist} = new payment deadline · __FAELLIG__ / {faellig} = original due date · __KUNDE__ / {kunde} = customer name · __FIRMA__ / {firma} = own company name · __STUFE__ / {stufe} = level number · __MAHNUNGREF__ / {ref} = dunning record number
MahnungStufeEmailSubject = E-mail subject
MahnungStufeEmailBody = E-mail body
MahnungStufePdfIntro = PDF introduction text
#
# Stage management (freely configurable stages + payment reminder)
#
MahnungStufen = Dunning levels
MahnungStufenIntro = Any number of levels can be configured. The dunning chain runs in ascending level order and only active levels are proposed. The level number itself cannot be changed after creation.
MahnungStufeKeine = No dunning levels configured — please create one below.
MahnungStufeIstErinnerung = Payment reminder (free of charge)
MahnungStufeIstErinnerungHelp = No dunning fee, no EUR 40 flat rate (§288 (5) BGB) and no default interest. Sent by e-mail with the unchanged original invoice attached.
MahnungStufeErinnerungKostenHinweis = Payment reminder: fees, lump sum and interest are not applied. The stored values are kept and take effect again as soon as the checkbox is cleared.
MahnungStufeNichtAngewendet = not applied for a payment reminder
MahnungStufeErinnerungVersandHinweis = Payment reminders are sent by e-mail only — please select the "E-mail" sending method.
MahnungStufeNeu = Create new dunning level
MahnungStufeNummer = Level number
MahnungStufeNummerHelp = Freely selectable (0 to 127). The order of the dunning chain follows this number, gaps are allowed.
MahnungStufeAnlegen = Create level
MahnungStufeAngelegt = Dunning level created.
MahnungStufeGeloescht = Dunning level deleted.
MahnungStufeLoeschenTitel = Delete dunning level
MahnungStufeLoeschenFrage = Really delete dunning level %s (%s)? The configuration of this level will be lost.
MahnungStufeInVerwendung = used by %s dunning record(s) — cannot be deleted
MahnungStufeNichtLoeschbar = This dunning level cannot be deleted because dunning records already refer to it. Please deactivate it instead of deleting it.
MahnungStufeNichtLoeschbarAnzahl = Level %s is used by %s dunning record(s) and cannot be deleted. Please deactivate it instead (uncheck "Active").
MahnungStufeNichtGefunden = Dunning level not found.
MahnungStufePruefungFehlgeschlagen = Check for existing dunning records failed — the level was not deleted.
MahnungStufeNummerUngueltig = The level number must be an integer between 0 and 127.
MahnungStufeNummerVergeben = Level number %s is already in use.
MahnungStufeLabelFehlt = Level %s: label is missing.
MahnungStufeWertUngueltig = Level %s: %s is invalid — please enter a number of 0 or greater.
MahnungStufeZinssatzUngueltig = Level %s: %s must be between 0 and 100 (empty = standard rate, 0 = no interest).
MahnungStufeUngueltig = Invalid dunning level — the requested level is not configured or not active.
#
# Setup: accordion header row of a dunning level
#
MahnungStufenAkkordeonHilfe = Click a header row to open that level's settings. All levels start collapsed.
MahnungStufeKopfKostenlos = free of charge
MahnungStufeKopfSofort = immediately
MahnungStufeKopfNachTagen = after %s days
MahnungStufeKopfGebuehrTitel = Dunning fee B2C / B2B
MahnungStufeInaktiv = inactive
MahnungStufeNichtLoeschbarKurz = cannot be deleted
#
# Setup: blocks inside a dunning level
#
MahnungBlockFristen = Deadlines
MahnungBlockKosten = Costs
MahnungBlockVersand = Sending
MahnungBlockZinssatzOverride = Set a different interest rate
MahnungBlockTexte = Texts for the letter
#
# 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.
MahnungVersandStatus = Dispatch status
MahnungVersandart = Dispatch method
MahnungEmpfaenger = Recipient
MahnungDateVersand = Sent on
MahnungNochNichtVersendet = not sent yet
#
# 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)
MahnungZinssatzOverrideStufe = Overridden by dunning stage
MahnungZinssatzAusBasiszins = Base rate %s %% + surcharge
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
MahnungUebersprungenFehler = The list of skipped invoices could not be determined: %s
MahnungArchivFehler = The dunning records could not be loaded: %s
#
# Payment reminder (free pre-stage)
#
MahnungIstErinnerung = Payment reminder
MahnungKosten = Costs
MahnungErinnerungKostenfrei = Free of charge — no dunning fee, no lump sum under sec. 288 (5) BGB, no default interest.
MahnungKostenVorstufen = Costs of previous dunning levels
MahnungErinnerungAnhangHinweis = No separate dunning PDF is created for the payment reminder. The unchanged original invoice (%s) is attached instead.
MahnungErinnerungKeinPdf = No dunning PDF is generated for a payment reminder — the original invoice is attached.
MahnungErinnerungSenden = Send payment reminder by e-mail
MahnungErinnerungSendenHint = Opens the e-mail form: recipient, subject, text and attachment can be reviewed and changed before sending.
MahnungErinnerungMailHint = Subject and text come from the dunning level configuration and can be edited here. The unchanged original invoice is attached. Nothing is sent until you press "Send".
MahnungErinnerungErneutSenden = Send payment reminder again
MahnungErinnerungErneutSendenHint = Sends the payment reminder once more — e.g. if the mail never arrived or has to go to a different address. Recipient, subject and text can be changed beforehand.
MahnungErinnerungErneutSendenWarnung = This payment reminder was already sent on %s. Submitting will send it once more — please check the recipient below.
MahnungDokument = Document
MahnungVorschau = Preview
MahnungErinnerungAnhangOriginal = e-mail attachment
MahnungErinnerungRechnungsPdfNochNicht = The original invoice does not exist as a PDF yet — it is generated when the e-mail form is opened and will then be listed here.
MahnungErinnerungGesendet = Payment reminder has been sent by e-mail.
MahnungErinnerungSendenFehler = Sending the e-mail failed.
MahnungErinnerungenErstelltHinweis = , including %s payment reminder(s) — the email is only sent after confirmation on the dunning card
MahnungErinnerungOhneEmailHinweis = — Warning: %s payment reminder(s) without a valid e-mail address and therefore not sendable by mail: %s. Please add the e-mail address to the customer record or print the reminder and send it by post.
MahnungSammelbriefNurErinnerungen = The selection contains only payment reminders. These do not produce a dunning PDF and are sent by email with the original invoice attached.
#
# E-mail dispatch of the payment reminder
#
MahnungUneinbringlichKeinRechnungsrecht = The invoice cannot be written off: this additionally requires the "create/modify invoices" permission.
MahnungMailProtokoll = Sent e-mails
MahnungMailVon = From
MahnungMailAn = To
MahnungMailKopie = Cc
MahnungMailBlindkopie = Bcc
MahnungMailBetreff = Subject
MahnungMailAnhaenge = Attachments
MahnungMailNurErinnerung = E-mail dispatch is only allowed for free payment reminders. Real dunning notices are sent by postal mail or registered letter.
MahnungMailNichtErlaubt = E-mail dispatch is not possible for this record — permission, reminder level, status and the customer e-mail address are all checked.
MahnungMailKeinEmpfaenger = No valid recipient was selected.
MahnungMailKeinBetreff = The subject must not be empty.
MahnungMailUnbekannterFehler = Unknown error while sending the e-mail.
MahnungMailEndpointEntfallen = Sending now happens through the e-mail form on the dunning card.
MahnungMailStatusStorniert = Dunning %s has been cancelled — dispatch is not possible.
MahnungMailStatusErledigt = Dunning %s is already settled — dispatch is not possible.
MahnungMailBereitsVersendet = Dunning %s was already sent on %s. Re-sending requires explicit confirmation.
MahnungMailEmpfaengerUngueltig = The e-mail address stored for the customer is invalid: %s
MahnungMailRechnungsPdfFehlt = The original invoice PDF for %s was not found and could not be generated.
MahnungMailRechnungsPdfKeinRecht = The original invoice PDF for %s is missing and cannot be generated without the "create/modify invoices" permission.
MahnungMailVersandLaeuft = Dispatch of %s is already running or has been completed in the meantime - nothing was sent again.
MahnungMailVersandSperreFehler = The dispatch could not be reserved (%s) - nothing was sent.
MahnungMailStatusNichtZurueckgesetzt = Warning: dispatch failed, but the status could not be reset (%s). Please check the status of the dunning notice.
MahnungMailKeinAbsender = No sender e-mail configured — please set a valid address in the company profile or in MAIN_MAIL_EMAIL_FROM.
MahnungMailRechnungNichtMehrOffen = Invoice %s is no longer open (paid, cancelled or written off) — nothing was sent.
MahnungMailBetragNichtErmittelbar = The currently open amount of invoice %s could not be determined reliably — nothing was sent.
MahnungMailRechnungBereitsBezahlt = Invoice %s has been paid in full in the meantime — nothing was sent.
MahnungMailBetragAngepasst = The open amount has changed to %s in the meantime — a payment came in. Nothing was sent; subject and body below have been rebuilt with the current amount. Please review and send again.
#
# 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).
MahnungCronStufeAnzahl = Level %s (%s): %s
MahnungCronStufeOhneLabel = unnamed
MahnungCronVorschlaegeFehler = Could not build the proposal list: %s
MahnungCronFehlerUnbekannt = Unknown error
#
# Document models
#
MahnungDokumentModelle = Document models
MahnungPdfStandard = Standard PDF (DIN 5008)
MahnungGenerate = Generate document
NoDocuments = No documents available.
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).
MahnungNurPostErlaubt = This action is only allowed via form submission (POST).
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.
MahnungNichtBerechtigtWrite = Not authorised (mahnung.write).
MahnungNichtGefunden = Dunning %s not found.
MahnungKundeKeineEmail = Customer has no e-mail address configured.
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
MahnungBoxErinnerung = Reminder
MahnungBoxErinnerungVom = Payment reminder from %s
MahnungBoxOffeneRechnungen = Overdue customer invoices with dunning stage
MahnungBoxKeineOffenenRechnungen = No open customer invoices
MahnungBoxMaxLines = Widget: displayed open invoices
MahnungBoxMaxLinesAll = All
MahnungBoxMaxLinesHelp = How many open invoices the home widget shows at most. "All" = no limit. The counter in the widget header always shows the real total.
MahnungBoxNetto = Net
MahnungBoxBrutto = Gross
# Widget: payment forecast (scale identical to BuchhaltungsWidget / KB #886)
MahnungProgVslZahlung = Est. payment
MahnungProgVorbildlich = Exemplary
MahnungProgPuenktlich = On time
MahnungProgSpaetzahler = Slightly late
MahnungProgVerspaetet = Late
MahnungProgProblematisch = Problematic
MahnungProgKeineHistorie = no history
MahnungProgKeineHistorieTip = Too few paid invoices for a reliable payment forecast
MahnungProgSpaeterAlsUeblich = later than usual
MahnungProgNachRechnung = d after invoice
MahnungProgTooltip = expected on %s — pays on average %s days after invoice date (%s paid invoices)
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)
MahnungVorschlagKeineStufenKonfiguriert = No active dunning stage configured — please create and activate at least one stage in the module setup.
MahnungVorschlagSqlFehler = Database error while determining dunning proposals: %s
MahnungVorschlagFehler = Could not determine the dunning proposals. Please check the dunning level configuration and the log.
MahnungVorschlagFristNichtErreichtStufe = Deadline for stage %s (%s days) not yet reached (overdue %s days)
MahnungVorschlagWartefristZielstufe = Waiting period for stage %s still running (%s of %s days since stage %s)
MahnungVorschlagBadgeMahnungHelp = Chargeable dunning notice — dunning fee, lump sum under sec. 288 (5) BGB where applicable and default interest are charged.
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
MahnungPdfNichtFuerErinnerung = No dunning letter is generated for a payment reminder (%s) — the unmodified original invoice is attached instead.
MahnungPdfSchreibfehler = Could not write PDF file: %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
# Free payment reminder — deliberately WITHOUT fees, interest or any legal threat.
# The word "dunning" must not appear in the subject. Placeholders: {ref} {stufe} {summe} {rechnung} {frist} {kunde}
MahnungErinnerungMailBetreff = Payment reminder for invoice {rechnung}
MahnungErinnerungMailText = Dear Sir or Madam,\n\nthank you very much for entrusting us with your electrical work.\n\nWhile going through our accounts we noticed that our invoice {rechnung} amounting to {summe} is still recorded as open. It has probably just slipped through in day-to-day business — for your convenience the invoice is attached to this e-mail, unchanged.\n\nWe would be glad if you could transfer the amount by {frist}. If your payment has crossed with this e-mail, please disregard this reminder.\n\nIf anything about the invoice is unclear, just drop us a line and we will sort it out together.\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.