export const de = { app: { name: "FlorianNetz" }, nav: { fahrzeuge: "Fahrzeuge", geraete: "Geräte", wehren: "Wehren", verwaltung: "Verwaltung", admin: "Administration", }, auth: { anmelden: "Anmelden", abmelden: "Abmelden", erforderlich: "Anmeldung erforderlich.", email: "E-Mail", passwort: "Passwort", mitAuthentik: "Mit Authentik anmelden", oderLokal: "oder mit lokalem Konto", fehlgeschlagen: "Anmeldung fehlgeschlagen. Bitte Eingaben prüfen.", zuVieleVersuche: "Zu viele Fehlversuche. Bitte später erneut versuchen.", }, status: { einsatzbereit: "einsatzbereit", wartung: "Wartung", ausser_dienst: "außer Dienst", }, search: { meinStandort: "Meinen Standort verwenden", suchen: "Suchen", keineTreffer: "Keine Treffer.", luftlinie: "Luftlinie (geschätzt)", adresse: "Adresse", adressePlaceholder: "Adresse oder Ort", suchbegriff: "Suchbegriff", suchbegriffPlaceholder: "Name oder Funkrufname …", nameOrtPlz: "Name, Ort oder PLZ …", filter: "Filter", filterZuruecksetzen: "Filter zurücksetzen", keineFilter: "Keine Filter verfügbar.", nurEinsatzbereit: "Nur einsatzbereit", von: "von", bis: "bis", egal: "egal", ja: "Ja", nein: "Nein", tabFahrzeuge: "Fahrzeuge", tabGeraete: "Geräte", tabWehren: "Wehren", treffer: "Treffer", standort: "Standort für Eintreffzeit", keinFunkrufname: "kein Funkrufname", eintreffzeitOffen: "Eintreffzeit: Standort wählen", ergebnisse: "Ergebnisse", }, detail: { eckdaten: "Eckdaten", beladung: "Beladung", keineEckdaten: "Keine Eckdaten erfasst.", imGeraetehaus: "im Gerätehaus", }, fehler: { allgemein: "Es ist ein Fehler aufgetreten.", keineBerechtigung: "Keine Berechtigung.", nichtGefunden: "Seite nicht gefunden.", }, aktion: { erneutVersuchen: "Erneut versuchen", laden: "Wird geladen …", zurueckZurStartseite: "Zur Startseite", }, admin: { titel: "Administration", navMerkmale: "Merkmale", navVorschlaege: "Vorschläge", navVorlagen: "Fahrzeug-Vorlagen", navKategorien: "Geräte-Kategorien", navWehren: "Wehren", navAudit: "Audit-Log", speichern: "Speichern", abbrechen: "Abbrechen", loeschen: "Löschen", anlegen: "Anlegen", bearbeiten: "Bearbeiten", neu: "Neu", name: "Name", code: "Code", typ: "Typ", einheit: "Einheit", geltungsbereich: "Geltungsbereich", status: "Status", optionen: "Optionen", optionHinzufuegen: "Option hinzufügen", keineEintraege: "Keine Einträge vorhanden.", referenziertFehler: "Merkmal wird verwendet und kann nicht gelöscht werden.", promote: "Übernehmen", merge: "Zusammenführen", mergeZiel: "Ziel-Merkmal", mergeTypFehler: "Nur Merkmale gleichen Typs können zusammengeführt werden.", vorgabewert: "Vorgabewert", pflicht: "Pflicht", reihenfolge: "Reihenfolge", alias: "Alias", aliasse: "Aliasse", bestaetigt: "bestätigt", allradHinweis: "Allrad-Schreibweise", strasse: "Straße", plz: "PLZ", ort: "Ort", telefon: "Telefon", wehrfuehrer: "Wehrführer", adminEmail: "Admin-E-Mail", adminName: "Admin-Name", wehrAnlegen: "Wehr anlegen", passwortReset: "Passwort zurücksetzen", tempPasswort: "Einmal-Passwort (nur jetzt sichtbar, bitte sicher übergeben):", geocodeOk: "Adresse geokodiert.", geocodeFehler: "Adresse konnte nicht geokodiert werden. Wehr wurde dennoch angelegt.", auditZeitpunkt: "Zeitpunkt", auditAktion: "Aktion", auditZiel: "Ziel", auditAkteur: "Akteur", auditFilter: "Aktion filtern", zurueck: "Zurück", weiter: "Weiter", }, } as const; type Leaf = string; type Paths = T extends Leaf ? "" : { [K in keyof T & string]: T[K] extends Leaf ? K : `${K}.${Paths}`; }[keyof T & string]; export function t(path: Paths): string { return path .split(".") .reduce((o, k) => (o as Record)[k], de) as string; }