FEAT-13: Abgabe wizard (/vertraege/neu, 4 steps, ?tiere= prefill), Vertraege list w/ download+delete, /einstellungen Zuchtprofil form, contracts/settings API clients, nav entries, detail-page entry point + replace orphaned contactInfo with email/phone/address across Kontakt pages
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -23,6 +23,9 @@ export const de = {
|
||||
more: 'Mehr',
|
||||
// FEAT-12a (Kevin): Abgabe
|
||||
forSale: 'Abgabe',
|
||||
// FEAT-13 (Kelly): Verträge + Einstellungen
|
||||
contracts: 'Verträge',
|
||||
settings: 'Einstellungen',
|
||||
openMenu: 'Menü öffnen',
|
||||
closeMenu: 'Menü schließen',
|
||||
mainNavigation: 'Hauptnavigation',
|
||||
@@ -366,6 +369,90 @@ export const de = {
|
||||
losses: 'Verluste pro Jahr',
|
||||
lossesHint: 'Verstorbene Tiere nach Todesjahr.',
|
||||
},
|
||||
// ── FEAT-13 (Kelly): Abgabeverträge ──
|
||||
vertraege: {
|
||||
title: 'Abgabeverträge',
|
||||
newButton: 'Neuer Vertrag',
|
||||
empty: 'Noch keine Verträge — erstelle den ersten über „Neuer Vertrag“ oder den Abgabe-Bereich.',
|
||||
countLabel: 'Verträge',
|
||||
download: 'Herunterladen',
|
||||
delete: 'Löschen',
|
||||
confirmDelete:
|
||||
'Vertrag wirklich löschen? Die Word-Datei wird mit entfernt; der Status der Tiere bleibt unverändert.',
|
||||
animalsCount: (n: number) => (n === 1 ? '1 Tier' : `${n} Tiere`),
|
||||
fields: {
|
||||
contact: 'Abnehmer',
|
||||
animals: 'Tiere',
|
||||
price: 'Kaufpreis',
|
||||
handoverDate: 'Übergabedatum',
|
||||
contractDate: 'Vertragsdatum',
|
||||
createdAt: 'Erstellt',
|
||||
},
|
||||
// Assistent (/vertraege/neu)
|
||||
wizard: {
|
||||
title: 'Abgabe abschließen',
|
||||
steps: ['Abnehmer', 'Tiere', 'Preis & Datum', 'Vertrag'],
|
||||
back: 'Zurück',
|
||||
next: 'Weiter',
|
||||
cancel: 'Abbrechen',
|
||||
// Schritt 1
|
||||
pickContact: 'Abnehmer auswählen',
|
||||
searchContact: 'Name suchen …',
|
||||
noContacts: 'Keine Kontakte gefunden.',
|
||||
orCreateNew: 'Oder neuen Kontakt anlegen',
|
||||
createContact: 'Kontakt anlegen und auswählen',
|
||||
contactNameRequired: 'Bitte einen Namen für den Kontakt eingeben.',
|
||||
// Schritt 2
|
||||
pickAnimals: 'Tiere bestätigen',
|
||||
pickAnimalsHint: 'Nur lebende, nicht abgegebene Tiere werden angezeigt.',
|
||||
noAnimals: 'Keine abgebbaren Tiere gefunden.',
|
||||
animalsRequired: 'Bitte mindestens ein Tier auswählen.',
|
||||
// Schritt 3
|
||||
priceLabel: 'Kaufpreis (€)',
|
||||
pricePlaceholder: 'z. B. 72,00',
|
||||
priceInvalid: 'Bitte einen gültigen Preis eingeben (z. B. 72,00).',
|
||||
handoverLabel: 'Übergabedatum',
|
||||
contractDateLabel: 'Vertragsdatum (optional, Standard = Übergabedatum)',
|
||||
// Schritt 4
|
||||
summaryTitle: 'Zusammenfassung',
|
||||
profileIncomplete:
|
||||
'Das Zuchtprofil ist unvollständig — Name, Adresse und Ort erscheinen im Vertrag. Jetzt unter Einstellungen ergänzen?',
|
||||
profileLink: 'Zu den Einstellungen',
|
||||
generate: 'Vertrag erzeugen',
|
||||
generating: 'Vertrag wird erzeugt …',
|
||||
successTitle: 'Vertrag erstellt!',
|
||||
successText:
|
||||
'Die Tiere wurden als „Abgegeben“ markiert (Abnehmer und Abgabedatum gesetzt).',
|
||||
downloadDocx: 'Vertrag herunterladen (.docx)',
|
||||
toList: 'Zur Vertragsliste',
|
||||
anotherOne: 'Weiteren Vertrag erstellen',
|
||||
},
|
||||
},
|
||||
// ── FEAT-13 (Kelly): Einstellungen (Zuchtprofil) ──
|
||||
einstellungen: {
|
||||
title: 'Einstellungen',
|
||||
zuchtprofil: {
|
||||
title: 'Zuchtprofil',
|
||||
intro:
|
||||
'Diese Angaben erscheinen als Verkäufer-Block in jedem Abgabevertrag.',
|
||||
incompleteHint:
|
||||
'Noch unvollständig: Name, Adresse und Ort werden für den Vertrag benötigt.',
|
||||
fields: {
|
||||
zuchtName: 'Zuchtname',
|
||||
name: 'Vor- und Nachname',
|
||||
nameHint: 'Mit Anrede, z. B. „Frau Erika Muster“.',
|
||||
address: 'Adresse',
|
||||
addressHint: 'Straße Nr, PLZ Ort.',
|
||||
phone: 'Telefon',
|
||||
email: 'E-Mail',
|
||||
homepage: 'Homepage',
|
||||
city: 'Ort (Unterschriftszeile)',
|
||||
},
|
||||
save: 'Speichern',
|
||||
saving: 'Speichern …',
|
||||
saved: 'Gespeichert.',
|
||||
},
|
||||
},
|
||||
// ── FEAT-2 (Oscar): Kontakte (Contacts — Herkunft/Abnehmer) ──
|
||||
kontakte: {
|
||||
title: 'Kontakte',
|
||||
@@ -373,9 +460,13 @@ export const de = {
|
||||
empty: 'Keine Kontakte gefunden.',
|
||||
countLabel: 'Kontakte',
|
||||
searchPlaceholder: 'Name suchen …',
|
||||
// FEAT-13: contactInfo (Freitext) wurde durch strukturierte Felder ersetzt
|
||||
// (DATA-2-Schema: email/phone/address) — gebraucht für den Käufer-Block der Verträge.
|
||||
fields: {
|
||||
name: 'Name',
|
||||
contactInfo: 'Kontaktdaten',
|
||||
email: 'E-Mail',
|
||||
phone: 'Telefon',
|
||||
address: 'Adresse',
|
||||
notes: 'Notizen',
|
||||
},
|
||||
linked: {
|
||||
@@ -392,7 +483,7 @@ export const de = {
|
||||
form: {
|
||||
createTitle: 'Neuen Kontakt anlegen',
|
||||
editTitle: 'Kontakt bearbeiten',
|
||||
contactInfoHint: 'Telefon, E-Mail oder Adresse — freies Format.',
|
||||
addressHint: 'Straße Nr, PLZ Ort — so erscheint sie im Abgabevertrag.',
|
||||
save: 'Speichern',
|
||||
cancel: 'Abbrechen',
|
||||
saving: 'Speichern …',
|
||||
|
||||
Reference in New Issue
Block a user