FEAT-5: add /genetik route + nav entry + German strings (page stub)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -4,6 +4,7 @@ import BreedersPage from './pages/BreedersPage'
|
|||||||
import GerbilsPage from './pages/GerbilsPage'
|
import GerbilsPage from './pages/GerbilsPage'
|
||||||
import GerbilDetailPage from './pages/GerbilDetailPage'
|
import GerbilDetailPage from './pages/GerbilDetailPage'
|
||||||
import GerbilFormPage from './pages/GerbilFormPage'
|
import GerbilFormPage from './pages/GerbilFormPage'
|
||||||
|
import GenetikPage from './pages/GenetikPage'
|
||||||
import HomePage from './pages/HomePage'
|
import HomePage from './pages/HomePage'
|
||||||
import LittersPage from './pages/LittersPage'
|
import LittersPage from './pages/LittersPage'
|
||||||
import NotFoundPage from './pages/NotFoundPage'
|
import NotFoundPage from './pages/NotFoundPage'
|
||||||
@@ -22,6 +23,7 @@ export default function App() {
|
|||||||
</Route>
|
</Route>
|
||||||
<Route path="wuerfe" element={<LittersPage />} />
|
<Route path="wuerfe" element={<LittersPage />} />
|
||||||
<Route path="zuechter" element={<BreedersPage />} />
|
<Route path="zuechter" element={<BreedersPage />} />
|
||||||
|
<Route path="genetik" element={<GenetikPage />} />
|
||||||
<Route path="*" element={<NotFoundPage />} />
|
<Route path="*" element={<NotFoundPage />} />
|
||||||
</Route>
|
</Route>
|
||||||
</Routes>
|
</Routes>
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ const navItems = [
|
|||||||
{ to: '/rennmaeuse', label: de.nav.gerbils, icon: '🐭', end: false },
|
{ to: '/rennmaeuse', label: de.nav.gerbils, icon: '🐭', end: false },
|
||||||
{ to: '/wuerfe', label: de.nav.litters, icon: '🍼', end: false },
|
{ to: '/wuerfe', label: de.nav.litters, icon: '🍼', end: false },
|
||||||
{ to: '/zuechter', label: de.nav.breeders, icon: '🧑🌾', end: false },
|
{ to: '/zuechter', label: de.nav.breeders, icon: '🧑🌾', end: false },
|
||||||
|
{ to: '/genetik', label: de.nav.genetics, icon: '🧬', end: false },
|
||||||
]
|
]
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
11
gerbil-manager-web/src/pages/GenetikPage.tsx
Normal file
11
gerbil-manager-web/src/pages/GenetikPage.tsx
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
import { de } from '../strings/de'
|
||||||
|
|
||||||
|
export default function GenetikPage() {
|
||||||
|
const t = de.pages.genetik
|
||||||
|
return (
|
||||||
|
<section className="page">
|
||||||
|
<h2>{t.title}</h2>
|
||||||
|
<p className="muted">{t.subtitle}</p>
|
||||||
|
</section>
|
||||||
|
)
|
||||||
|
}
|
||||||
@@ -13,6 +13,7 @@ export const de = {
|
|||||||
gerbils: 'Rennmäuse',
|
gerbils: 'Rennmäuse',
|
||||||
litters: 'Würfe',
|
litters: 'Würfe',
|
||||||
breeders: 'Züchter',
|
breeders: 'Züchter',
|
||||||
|
genetics: 'Genetik',
|
||||||
openMenu: 'Menü öffnen',
|
openMenu: 'Menü öffnen',
|
||||||
closeMenu: 'Menü schließen',
|
closeMenu: 'Menü schließen',
|
||||||
mainNavigation: 'Hauptnavigation',
|
mainNavigation: 'Hauptnavigation',
|
||||||
@@ -123,6 +124,32 @@ export const de = {
|
|||||||
message: 'Die angeforderte Seite existiert nicht.',
|
message: 'Die angeforderte Seite existiert nicht.',
|
||||||
backHome: 'Zur Startseite',
|
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: {
|
api: {
|
||||||
errors: {
|
errors: {
|
||||||
|
|||||||
Reference in New Issue
Block a user