diff --git a/gerbil-manager-web/src/App.tsx b/gerbil-manager-web/src/App.tsx
index a6b0ecf..27e4f61 100644
--- a/gerbil-manager-web/src/App.tsx
+++ b/gerbil-manager-web/src/App.tsx
@@ -4,6 +4,7 @@ import BreedersPage from './pages/BreedersPage'
import GerbilsPage from './pages/GerbilsPage'
import GerbilDetailPage from './pages/GerbilDetailPage'
import GerbilFormPage from './pages/GerbilFormPage'
+import GenetikPage from './pages/GenetikPage'
import HomePage from './pages/HomePage'
import LittersPage from './pages/LittersPage'
import NotFoundPage from './pages/NotFoundPage'
@@ -22,6 +23,7 @@ export default function App() {
} />
} />
+ } />
} />
diff --git a/gerbil-manager-web/src/components/AppShell.tsx b/gerbil-manager-web/src/components/AppShell.tsx
index 7ce4ac6..8cdb96e 100644
--- a/gerbil-manager-web/src/components/AppShell.tsx
+++ b/gerbil-manager-web/src/components/AppShell.tsx
@@ -6,6 +6,7 @@ const navItems = [
{ to: '/rennmaeuse', label: de.nav.gerbils, icon: '🐭', end: false },
{ to: '/wuerfe', label: de.nav.litters, icon: '🍼', end: false },
{ to: '/zuechter', label: de.nav.breeders, icon: '🧑🌾', end: false },
+ { to: '/genetik', label: de.nav.genetics, icon: '🧬', end: false },
]
/**
diff --git a/gerbil-manager-web/src/pages/GenetikPage.tsx b/gerbil-manager-web/src/pages/GenetikPage.tsx
new file mode 100644
index 0000000..2fd586f
--- /dev/null
+++ b/gerbil-manager-web/src/pages/GenetikPage.tsx
@@ -0,0 +1,11 @@
+import { de } from '../strings/de'
+
+export default function GenetikPage() {
+ const t = de.pages.genetik
+ return (
+
+ {t.title}
+ {t.subtitle}
+
+ )
+}
diff --git a/gerbil-manager-web/src/strings/de.ts b/gerbil-manager-web/src/strings/de.ts
index 7e8f568..e194c9d 100644
--- a/gerbil-manager-web/src/strings/de.ts
+++ b/gerbil-manager-web/src/strings/de.ts
@@ -13,6 +13,7 @@ export const de = {
gerbils: 'Rennmäuse',
litters: 'Würfe',
breeders: 'Züchter',
+ genetics: 'Genetik',
openMenu: 'Menü öffnen',
closeMenu: 'Menü schließen',
mainNavigation: 'Hauptnavigation',
@@ -123,6 +124,32 @@ export const de = {
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',
+ },
},
api: {
errors: {