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: {