66 lines
5.4 KiB
JavaScript
66 lines
5.4 KiB
JavaScript
import { neueAnsicht } from './kundenansicht/schalter.js'
|
|
|
|
/**
|
|
* Fehlertexte der Dienste in der neuen Ansicht in „du“ (Kundenansicht neu, P7, N37).
|
|
*
|
|
* planSwitch.js, mailStorage.js, stripeBilling.js und die Antworten der Abo-Routen werfen ihre Texte im Quelltext in der Sie-Form; die
|
|
* alte Ansicht zeigt sie unveraendert. Fuer Sitzungen mit neuer Ansicht uebersetzt duFehlerAntworten bekannte Saetze vor der Antwort.
|
|
* Unbekannte Texte bleiben unveraendert; test/knDuFehler.test.js sucht in den drei Diensten nach Sie-Saetzen ohne Uebersetzung.
|
|
* Bewusst nicht uebersetzt (Mail-/Textrunde, N37): Pruefsaetze in takeoverCredits.js ausser den zwei Saetzen unten und der custom_text
|
|
* der Stripe-Zahlungsseite.
|
|
*/
|
|
|
|
export const DU_FEHLER = Object.freeze({
|
|
// planSwitch.js
|
|
'Der Wechsel ist erst nach Beginn Ihres Hosting-Abos möglich und nicht, solange eine Zahlung offen ist.': 'Der Wechsel ist erst nach Beginn deines Hosting-Abos möglich und nicht, solange eine Zahlung offen ist.',
|
|
'Ihr Hosting-Abo ist gekündigt. Ein Wechsel ist deshalb nicht möglich.': 'Dein Hosting-Abo ist gekündigt. Ein Wechsel ist deshalb nicht möglich.',
|
|
'Die Vorschau fehlt. Bitte laden Sie die Seite neu.': 'Die Vorschau fehlt. Bitte lade die Seite neu.',
|
|
'Die Vorschau ist ungültig. Bitte laden Sie die Seite neu.': 'Die Vorschau ist ungültig. Bitte lade die Seite neu.',
|
|
'Bitte stimmen Sie den Vertragsbedingungen zu, um zu wechseln.': 'Bitte stimme den Vertragsbedingungen zu, um zu wechseln.',
|
|
'Bitte bestätigen Sie, dass wir sofort mit dem Wartungs-Abo beginnen sollen.': 'Bitte bestätige, dass wir sofort mit dem Wartungs-Abo beginnen sollen.',
|
|
'Ihr Wechsel wird gerade verarbeitet.': 'Dein Wechsel wird gerade verarbeitet.',
|
|
'Ihr Abrechnungsmonat hat seit der Vorschau neu begonnen. Bitte Seite neu laden.': 'Dein Abrechnungsmonat hat seit der Vorschau neu begonnen. Bitte Seite neu laden.',
|
|
// mailStorage.js
|
|
'Ihr Speicherstand hat sich geändert. Bitte Seite neu laden und der Bestellung zustimmen.': 'Dein Speicherstand hat sich geändert. Bitte Seite neu laden und der Bestellung zustimmen.',
|
|
'Bitte stimmen Sie den Regeln zum Zusatzspeicher zu.': 'Bitte stimme den Regeln zum Zusatzspeicher zu.',
|
|
'Ihr Abo ist gekündigt. Der Zusatzspeicher endet mit dem Abo.': 'Dein Abo ist gekündigt. Der Zusatzspeicher endet mit dem Abo.',
|
|
'Ihr Wechsel wartet noch auf die Zahlung. Bitte versuchen Sie es danach erneut.': 'Dein Wechsel wartet noch auf die Zahlung. Bitte versuche es danach erneut.',
|
|
'Eine Änderung läuft bereits. Bitte warten Sie einen Moment und laden Sie die Seite neu.': 'Eine Änderung läuft bereits. Bitte warte einen Moment und lade die Seite neu.',
|
|
'Die Änderung konnte bei Stripe nicht gespeichert werden. Es wurde nichts berechnet. Bitte versuchen Sie es später erneut.': 'Die Änderung konnte bei Stripe nicht gespeichert werden. Es wurde nichts berechnet. Bitte versuche es später erneut.',
|
|
// stripeBilling.js
|
|
'Sie haben bereits ein laufendes Abo abgeschlossen.': 'Du hast bereits ein laufendes Abo abgeschlossen.',
|
|
// abo.js
|
|
'Bitte wählen Sie ein Abo (Hosting-Abo oder Wartungs-Abo).': 'Bitte wähle ein Abo (Hosting-Abo oder Wartungs-Abo).',
|
|
'Bitte stimmen Sie den Vertragsbedingungen zu, um zu bestellen.': 'Bitte stimme den Vertragsbedingungen zu, um zu bestellen.',
|
|
'Bitte wählen Sie, wann wir mit der Leistung beginnen sollen.': 'Bitte wähle, wann wir mit der Leistung beginnen sollen.',
|
|
'Ihr Angebot gilt für ein anderes Abo. Bitte laden Sie die Seite neu.': 'Dein Angebot gilt für ein anderes Abo. Bitte lade die Seite neu.',
|
|
'Ihr Angebot hat sich geändert. Bitte laden Sie die Seite neu.': 'Dein Angebot hat sich geändert. Bitte lade die Seite neu.',
|
|
'Der Leistungsbeginn hat sich durch den Datumswechsel verschoben. Bitte laden Sie die Seite neu.': 'Der Leistungsbeginn hat sich durch den Datumswechsel verschoben. Bitte lade die Seite neu.',
|
|
'Die Bestellung ist unvollständig. Bitte laden Sie die Seite neu.': 'Die Bestellung ist unvollständig. Bitte lade die Seite neu.',
|
|
// takeoverCredits.js (die zwei Sätze, die die Seite nicht vorab prüft)
|
|
'Die Übernahmegutschrift können Sie beantragen, sobald Ihr Abo läuft.': 'Die Übernahmegutschrift kannst du beantragen, sobald dein Abo läuft.',
|
|
'Sie haben bereits mehrere offene Anträge. Bitte warten Sie unsere Antwort ab.': 'Du hast bereits mehrere offene Anträge. Bitte warte auf unsere Antwort.',
|
|
})
|
|
|
|
const PAKETZAHL = /^Bitte wählen Sie zwischen 0 und (\d+) Paketen Zusatzspeicher\.$/
|
|
|
|
/** Bekannter Satz → du-Satz; das Muster der Paketzahl dazu; alles andere (auch kein Text) unverändert. */
|
|
export function duText(message) {
|
|
if (typeof message !== 'string') return message
|
|
if (Object.hasOwn(DU_FEHLER, message)) return DU_FEHLER[message]
|
|
const treffer = PAKETZAHL.exec(message)
|
|
return treffer ? `Bitte wähle zwischen 0 und ${treffer[1]} Paketen Zusatzspeicher.` : message
|
|
}
|
|
|
|
/**
|
|
* Express-Middleware: gilt die neue Ansicht (neueAnsicht(req)), ersetzt sie in res.json den Text body.error durch duText(body.error);
|
|
* sonst reicht sie die Anfrage unveraendert durch. Andere Antworten (kein Objekt, kein Text) laufen unveraendert.
|
|
*/
|
|
export function duFehlerAntworten(req, res, next) {
|
|
if (neueAnsicht(req)) {
|
|
const json = res.json.bind(res)
|
|
res.json = (body) => json(body !== null && typeof body === 'object' && typeof body.error === 'string' ? { ...body, error: duText(body.error) } : body)
|
|
}
|
|
next()
|
|
}
|