Files
craftvia/messages/de/plans.json
T
msolarczekandClaude Opus 5 06d320908f L17 Pakete: Stufen Basis/Profi, Lotse-Chat-Plätze und Kontingent
- Datenmodell: Tenant.tier (Default PROFI), lotseChatSeats, lotseChatHardLimit;
  Tabelle lotse_chat_seats (RLS, TENANT_MODELS, pii-fields), Index für die
  Monatszählung der Chat-Nachrichten (Migration 20260921100000_pakete)
- src/lib/plans.ts: Stufenregeln, 150 Chats je Platz, Mehrverbrauch in 100er-Paketen
- src/server/plan.ts: effektive Freischaltung = Stufe UND TenantModule, genutzt von
  requireModule, assertModuleEnabled, API, Sync (Offline-Op → rejected mit Klartext),
  Navigation, isLotseEnabled und planningAccess (Planung nur in Profi)
- Lotse-Chat: Platzprüfung (no_seat), Testphase ohne Platz, Kontingent mit
  hartem Limit (quota_exhausted); Platzvergabe durch den Mandanten-Admin
- Betreiber: Stufe/Plätze/hartes Limit im Mandantendetail mit Bestätigung
  und Plattform-Audit, Verbrauch laufender Monat/Vormonat, Stufe als Badge
- Demo-Seed: demo = Profi mit 3 Plätzen, demo2 = Basis
- Tests: test-pakete-{rules,gates,seats}

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-21 10:13:27 +02:00

94 lines
5.3 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"tier": {
"BASIS": "Basis",
"PROFI": "Profi"
},
"colTier": "Paket",
"notInTier": "Nur im Paket Profi",
"profiHint": {
"title": "Im Paket Profi enthalten",
"text": "Diese Funktion gehört zum Paket Profi. Ihr Betrieb nutzt das Paket Basis – für ein Upgrade wenden Sie sich bitte an Ihren Craftvia-Ansprechpartner."
},
"admin": {
"title": "Paket & Lotse-Chat",
"sub": "Paket des Betriebs, Chat-Plätze für Monteure und Verbrauch im laufenden Monat",
"package": "Paket",
"trial": "Testphase (alle Funktionen)",
"packageReadOnly": "Paket und Anzahl der Chat-Plätze legt der Anbieter fest. Hier vergeben Sie die gekauften Plätze an Ihre Monteure und Teamleiter.",
"basisHint": "Lotse und Lotse-Chat sind im Paket Profi enthalten. Bereits vergebene Plätze und Chatverläufe bleiben gespeichert und sind nach einem Wechsel zu Profi wieder verfügbar.",
"seatsTitle": "Chat-Plätze",
"seatsCount": "{assigned} von {purchased} Plätzen vergeben",
"trialSeats": "Während der Testphase dürfen alle Monteure und Teamleiter den Lotse-Chat nutzen – Plätze müssen nicht vergeben werden (Kontingent: {perSeat} Chats je Person und Monat).",
"noSeatsBought": "Noch keine Chat-Plätze gebucht. Plätze bucht der Anbieter für Ihren Betrieb.",
"overbooked": "Mehr Plätze vergeben als gebucht ({purchased}). Nur die zuerst vergebenen Plätze gelten – bitte Plätze entziehen.",
"noFieldUsers": "Keine aktiven Nutzer mit Feldrolle (Monteur, Teamleiter).",
"seatAssigned": "Platz vergeben",
"seatOverbooked": "Über der Platzanzahl",
"seatNone": "Kein Platz",
"assign": "Platz vergeben",
"revoke": "Platz entziehen",
"assignLabel": "Chat-Platz an {name} vergeben",
"revokeLabel": "Chat-Platz von {name} entziehen",
"saved": "Chat-Platz gespeichert.",
"usageTitle": "Verbrauch {month}",
"usageText": "{used} von {quota} Chats",
"quotaRule": "Kontingent: {perSeat} Chats je vergebenem Platz und Monat, gemeinsam für den Betrieb (Basis: {basis}). Ein Chat ist eine Nachricht an den Lotsen.",
"warn80": "{percent} % des Monatskontingents sind genutzt.",
"exhausted": "Das Monatskontingent ist ausgeschöpft. Weitere Chats werden als Mehrverbrauch in Paketen à {pack} berechnet.",
"hardLimitReached": "Das Monatskontingent ist ausgeschöpft. Der Lotse-Chat ist bis zum Monatsende gesperrt (hartes Limit).",
"overage": "Mehrverbrauch: {overage} Chats – entspricht {packs, plural, one {# Paket} other {# Paketen}} à {pack} Chats.",
"perUserCaption": "Chats je Nutzer im laufenden Monat",
"perUserName": "Nutzer",
"perUserChats": "Chats",
"errors": {
"no_seats_left": "Alle gebuchten Plätze sind vergeben. Bitte zuerst einen Platz entziehen oder weitere Plätze beim Anbieter buchen.",
"not_eligible": "Diese Person kann keinen Chat-Platz erhalten (keine aktive Feldrolle).",
"not_in_plan": "Der Lotse-Chat ist im Paket Profi enthalten.",
"disabled": "Lotse ist für diesen Betrieb ausgeschaltet.",
"forbidden": "Dafür fehlt die Berechtigung.",
"trial_expired": "Testphase abgelaufen – nur Lesezugriff.",
"failed": "Speichern nicht möglich."
}
},
"platform": {
"title": "Paket & Lotse-Chat",
"tier": "Paket",
"trialProfi": "Testphase = Profi",
"seats": "Chat-Plätze",
"seatsValue": "{assigned} vergeben / {purchased} gebucht",
"hardLimit": "Hartes Limit",
"hardLimitOn": "an – Sperre beim Kontingent",
"hardLimitOff": "aus – Mehrverbrauch wird gezählt",
"rule": "{perSeat} Chats je vergebenem Platz und Monat (Zeitzone des Mandanten); Mehrverbrauch in Paketen à {pack}.",
"currentMonth": "Laufender Monat · {month}",
"previousMonth": "Vormonat · {month}",
"chats": "{used} von {quota} Chats",
"overage": "Mehrverbrauch {overage} Chats → {packs, plural, one {# Paket} other {# Pakete}} à {pack}",
"noOverage": "Kein Mehrverbrauch",
"edit": "Paket ändern …",
"editTitle": "Paket & Chat-Plätze ändern",
"editText": "Die Änderung wirkt sofort für alle Nutzer des Mandanten und wird im Plattform-Audit protokolliert.",
"tierHint": {
"BASIS": "Ohne KI und Planung: kein Lotse, keine Plantafel/Live-Lage, keine Abrechnungsübersicht, kein Notdienst, kein Auftragsimport.",
"PROFI": "Alle Funktionen inkl. Planung, Abrechnungsübersicht, Notdienst, Import und Lotse."
},
"downgradeHint": "Wechsel zu Basis: Daten bleiben erhalten, nur der Zugriff endet. Zurück zu Profi ist alles wieder da.",
"seatsInput": "Gebuchte Chat-Plätze",
"seatsHint": "Der Mandanten-Admin vergibt die Plätze an Nutzer mit Feldrolle.",
"hardLimitInput": "Hartes Limit",
"hardLimitHint": "Nach Ausschöpfen des Monatskontingents wird der Chat gesperrt statt Mehrverbrauch zu zählen.",
"confirm": "Ich habe die Auswirkungen geprüft und bestätige die Änderung.",
"submit": "Speichern",
"submitting": "Speichern …",
"close": "Schließen",
"saved": "Paket gespeichert.",
"errors": {
"confirm_required": "Bitte die Änderung bestätigen.",
"invalid_input": "Bitte Eingaben prüfen (Plätze 0–1000).",
"tenant_archived": "Der Mandant ist archiviert.",
"platform_admin_required": "Nur Voll-Administratoren dürfen das Paket ändern.",
"failed": "Speichern nicht möglich."
}
}
}