Files
GerbilManager/gerbil-manager-web/src/strings/de.ts

271 lines
8.5 KiB
TypeScript
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.
/**
* Zentrale deutsche Texte der Anwendung.
* Alle für Benutzer sichtbaren Zeichenketten gehören hierher —
* niemals Texte direkt in Komponenten hartkodieren.
*/
export const de = {
app: {
title: 'Rennmaus-Manager',
tagline: 'Verwaltung für Rennmäuse, Würfe und Züchter',
},
nav: {
home: 'Start',
gerbils: 'Rennmäuse',
litters: 'Würfe',
breeders: 'Züchter',
genetics: 'Genetik',
// FEAT-2 (Oscar): Becken + Kontakte
enclosures: 'Becken',
contacts: 'Kontakte',
openMenu: 'Menü öffnen',
closeMenu: 'Menü schließen',
mainNavigation: 'Hauptnavigation',
},
pages: {
home: {
title: 'Willkommen',
intro:
'Hier verwaltest du deine Rennmäuse, Würfe und Züchter. Wähle einen Bereich aus der Navigation.',
},
gerbils: {
title: 'Rennmäuse',
// Liste
newButton: 'Neue Rennmaus',
empty: 'Keine Rennmäuse gefunden.',
countLabel: 'Tiere',
searchPlaceholder: 'Name suchen …',
// Filter-Beschriftungen
filters: {
title: 'Filter',
status: 'Status',
gender: 'Geschlecht',
colorVariety: 'Farbschlag',
all: 'Alle',
reset: 'Filter zurücksetzen',
sortBy: 'Sortieren nach',
},
// Sortier-Optionen
sort: {
nameAsc: 'Name (AZ)',
nameDesc: 'Name (ZA)',
birthDesc: 'Geburtsdatum (neueste)',
birthAsc: 'Geburtsdatum (älteste)',
},
// Feld-Beschriftungen (Stammdaten)
fields: {
name: 'Name',
gender: 'Geschlecht',
status: 'Status',
dateOfBirth: 'Geburtsdatum',
dateOfDeath: 'Todesdatum',
causeOfDeath: 'Todesursache',
goHomeDate: 'Abgabedatum',
litter: 'Wurf',
enclosure: 'Becken',
colorVariety: 'Farbschlag',
origin: 'Herkunft',
receiver: 'Abnehmer',
genotype: 'Genotyp',
notes: 'Notizen',
},
// Detailseite
detail: {
masterData: 'Stammdaten',
genetics: 'Genetik',
resolvedFarbschlag: 'Errechneter Farbschlag',
genotypeNotSet: 'Kein Genotyp hinterlegt.',
edit: 'Bearbeiten',
back: 'Zurück zur Liste',
tabs: {
photos: 'Fotos',
health: 'Gesundheit',
weight: 'Gewicht',
},
tabPlaceholder: 'Dieser Bereich entsteht in einem späteren Schritt.',
notFound: 'Diese Rennmaus wurde nicht gefunden.',
},
// Formular (anlegen/bearbeiten)
form: {
createTitle: 'Neue Rennmaus anlegen',
editTitle: 'Rennmaus bearbeiten',
none: '— keine Angabe —',
genotypeHint:
'Optional. Format z. B. „Aa CC Dd EE GG Pp Spsp rere“. Unbekannte Allele als „?“.',
save: 'Speichern',
cancel: 'Abbrechen',
saving: 'Speichern …',
},
// Validierungsmeldungen
validation: {
nameRequired: 'Bitte einen Namen eingeben.',
genderRequired: 'Bitte ein Geschlecht auswählen.',
genotypeInvalid: 'Der Genotyp ist ungültig.',
dateOfDeathBeforeBirth: 'Das Todesdatum darf nicht vor dem Geburtsdatum liegen.',
},
// Aufzählungen
genderLabels: {
unknown: 'Unbekannt',
male: 'Männlich',
female: 'Weiblich',
},
statusLabels: {
Active: 'Aktiv',
Deceased: 'Verstorben',
GivenAway: 'Abgegeben',
},
},
litters: {
title: 'Würfe',
comingSoon: 'Die Wurf-Verwaltung entsteht gerade. Bald kannst du hier Würfe dokumentieren.',
},
breeders: {
title: 'Züchter',
comingSoon: 'Die Züchter-Verwaltung entsteht gerade. Bald kannst du hier Züchter erfassen.',
},
notFound: {
title: 'Seite nicht gefunden',
message: 'Die angeforderte Seite existiert nicht.',
backHome: 'Zur Startseite',
},
// ── FEAT-5 (Kevin): Genetik / Probeverpaarung ──
genetik: {
title: 'Genetik',
subtitle: 'Probeverpaarung Farbschläge der Nachkommen vorhersagen',
father: 'Vater',
mother: 'Mutter',
pickAnimal: 'Tier auswählen',
pickAnimalSearch: 'Name suchen …',
pickAnimalNone: 'Keine passenden Tiere gefunden.',
pickAnimalNoGenotype: 'Für dieses Tier ist kein Genotyp hinterlegt bitte unten eingeben.',
clearAnimal: 'Auswahl entfernen',
genotypeLabel: 'Genotyp',
genotypeHint: 'Format z. B. „Aa CC Dd EE GG Pp Spsp rere“. Unbekannte Allele als „?“.',
genotypeInvalid: 'Der Genotyp ist ungültig.',
genotypePreview: 'Farbschlag',
run: 'Probeverpaarung berechnen',
needBoth: 'Bitte für Vater und Mutter einen gültigen Genotyp angeben.',
resultsTitle: 'Mögliche Nachkommen',
byFarbschlag: 'Nach Farbschlag',
byGenotype: 'Nach Genotyp',
showGenotypes: 'Genotypen anzeigen',
hideGenotypes: 'Genotypen ausblenden',
probability: 'Wahrscheinlichkeit',
noOffspring: 'Keine lebend geborenen Nachkommen möglich.',
warningsTitle: 'Hinweise',
},
// ── FEAT-2 (Oscar): Becken (Enclosures) ──
becken: {
title: 'Becken',
newButton: 'Neues Becken',
empty: 'Keine Becken gefunden.',
countLabel: 'Becken',
searchPlaceholder: 'Name suchen …',
fields: {
name: 'Name',
notes: 'Notizen',
},
occupancy: {
title: 'Bewohner',
empty: 'Dieses Becken ist derzeit leer.',
countOne: 'Tier',
countMany: 'Tiere',
},
detail: {
edit: 'Bearbeiten',
back: 'Zurück zur Liste',
notFound: 'Dieses Becken wurde nicht gefunden.',
},
form: {
createTitle: 'Neues Becken anlegen',
editTitle: 'Becken bearbeiten',
save: 'Speichern',
cancel: 'Abbrechen',
saving: 'Speichern …',
},
validation: {
nameRequired: 'Bitte einen Namen eingeben.',
},
delete: {
action: 'Löschen',
confirmMessage: 'Soll dieses Becken wirklich gelöscht werden?',
conflict:
'Becken ist nicht leer — bitte zuerst alle Tiere in ein anderes Becken umsetzen.',
},
},
// ── FEAT-2 (Oscar): Kontakte (Contacts — Herkunft/Abnehmer) ──
kontakte: {
title: 'Kontakte',
newButton: 'Neuer Kontakt',
empty: 'Keine Kontakte gefunden.',
countLabel: 'Kontakte',
searchPlaceholder: 'Name suchen …',
fields: {
name: 'Name',
contactInfo: 'Kontaktdaten',
notes: 'Notizen',
},
linked: {
title: 'Verknüpfte Tiere',
empty: 'Diesem Kontakt sind keine Tiere zugeordnet.',
originRole: 'Herkunft von',
receiverRole: 'Abnehmer von',
},
detail: {
edit: 'Bearbeiten',
back: 'Zurück zur Liste',
notFound: 'Dieser Kontakt wurde nicht gefunden.',
},
form: {
createTitle: 'Neuen Kontakt anlegen',
editTitle: 'Kontakt bearbeiten',
contactInfoHint: 'Telefon, E-Mail oder Adresse — freies Format.',
save: 'Speichern',
cancel: 'Abbrechen',
saving: 'Speichern …',
},
validation: {
nameRequired: 'Bitte einen Namen eingeben.',
},
delete: {
action: 'Löschen',
confirmMessage: 'Soll dieser Kontakt wirklich gelöscht werden?',
conflict:
'Kontakt ist noch mit Tieren verknüpft (Herkunft/Abnehmer) und kann nicht gelöscht werden.',
},
},
},
api: {
errors: {
network: 'Verbindung zum Server fehlgeschlagen. Bitte später erneut versuchen.',
notFound: 'Der Eintrag wurde nicht gefunden.',
server: 'Auf dem Server ist ein Fehler aufgetreten.',
unknown: 'Ein unbekannter Fehler ist aufgetreten.',
},
},
common: {
loading: 'Lädt …',
retry: 'Erneut versuchen',
previous: 'Zurück',
next: 'Weiter',
page: 'Seite',
of: 'von',
yes: 'Ja',
no: 'Nein',
delete: 'Löschen',
confirmDelete: 'Wirklich löschen?',
},
// Genetik-Warnungen: der Engine (src/genetics) liefert nur CODES,
// die deutschen Texte stehen hier. Schlüssel = GeneticsWarningCode-Werte.
genetics: {
warnings: {
SCHECKE_LETHAL:
'Schecke × Schecke: Reinerbige Tiere (SpSp) sterben bereits im Mutterleib — etwa ein Viertel weniger Jungtiere.',
REX_SEMI_LETHAL:
'Rex × Rex: Reinerbige Tiere (ReRe) sind nur eingeschränkt lebensfähig.',
},
unknownFarbschlag: 'Unbekannter Farbschlag',
},
} as const
export type Strings = typeof de