Files
DriverVault/Phone App/assets/i18n/da.json
T
tajniak81andClaude Opus 5 e5759df52c Say how far the next service is, not only how long
The service badge has always watched two triggers - the next-due date and the
next-due odometer reading - and shown one of them. It ranked the two and
printed the worse one's sentence, so a car comfortable on both read "OK ·
354d" and never said that the odometer target was 13.612 km away, even though
the Information card right under it prints the 15.000 km the badge is
counting towards. Whichever trigger arrives first ends the interval, so
naming only one of them describes half the thing.

Both are named now. With both signals known the label is a severity headline
followed by each trigger as a bare quantity - "OK · 354d · 13.612 km", "Due
in 12d · 13.612 km" - which is the shape reminderStatus in the same file
already uses, it having had the two-trigger problem first. The signals gained
the number behind their own wording to make that possible; they were
returning only a formatted sentence.

Wording is unchanged wherever only one signal has data, which is the case
this rewrite most risked disturbing: a car with no odometer target still
reads "OK · 354d" exactly as before, one with no service date still reads
"13.612 km left", and neither still reads "No data". The new keys are only
reached when there are genuinely two numbers to print.

An overdue badge lists only the triggers that have actually passed. "Service
Overdue 30d · 13.612 km" would read as overdue by 13.612 km, which is the
opposite of what that number means, so the trigger that is still comfortable
stays out of a sentence headed "Overdue". It costs the remaining distance on
a date-overdue badge; the alternative costs the reader's trust in the number.

The phone carried a line-for-line copy of this logic and gets the same
treatment rather than being left a version behind - the two would otherwise
disagree about the same car on the same day. Its signals become a private
record type, since Status is public and shared with the expiry, reminder and
warranty badges that have no second trigger and no use for the field.

Two new keys (status.okIn, status.serviceOverdueBy) in all three languages in
both apps. The day and km fragments they interpolate were already translated
for the reminder badge, so the parts assemble in Polish and Danish without
new wording: "OK · 354 dni · 13 612 km", "OK · 354 d · 13.612 km", each with
its own grouping separator.

Verified by flutter analyze (clean), flutter test - 21 pass, including the
key-parity test that would have caught a key added in English alone - and npm
run build for the web. The web function was driven through the real module in
a browser over ten cases: both signals known at each severity, each of the
two overdue alone, both overdue together, either signal missing, neither, and
a zero-odometer car, in all three languages.

Not verified: no new automated test covers this. The web app has no test
runner and the phone's format tests cover the catalogue lookups rather than
the badge, so the ten cases above were checked by hand and are not guarded
against the next edit. The deployed Web App still serves the previous build
and will keep reading "OK · 354d" until it is redeployed.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-21 23:23:19 +02:00

963 lines
37 KiB
JSON
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.
{
"common": {
"save": "Gem",
"saving": "Gemmer…",
"saved": "Gemt ✓",
"cancel": "Annuller",
"remove": "Fjern",
"retry": "Prøv igen",
"required": "Påkrævet",
"confirm": "Bekræft",
"empty": "—",
"saveChanges": "Gem ændringer",
"loading": "Indlæser…",
"edit": "Rediger",
"open": "Åbn",
"delete": "Slet",
"done": "Færdig",
"undo": "Fortryd",
"download": "Download",
"yes": "Ja",
"no": "Nej"
},
"nav": {
"garage": "Garage",
"charging": "Opladning",
"settings": "Indstillinger",
"users": "Brugere"
},
"login": {
"tagline": "Styr på din bil.",
"email": "E-mail",
"password": "Adgangskode",
"showPassword": "Vis adgangskode",
"hidePassword": "Skjul adgangskode",
"submit": "Log ind",
"submitting": "Logger ind…",
"or": "eller",
"signInWithFace": "Log ind med ansigtsgenkendelse",
"signInWithFingerprint": "Log ind med fingeraftryk",
"signInWithBiometrics": "Log ind med biometri",
"enrollTitle": "Aktivér biometrisk login?",
"enrollBody": "Næste gang kan du logge ind med {method} i stedet for at skrive din adgangskode.",
"enrollNotNow": "Ikke nu",
"enrollEnable": "Aktivér",
"methodFace": "ansigtsgenkendelse",
"methodFingerprint": "dit fingeraftryk",
"methodBiometrics": "biometri",
"bioReasonSignInAs": "Log ind som {email}",
"bioReasonSignIn": "Log ind på DriverVault",
"savedInvalid": "Det gemte login er ikke længere gyldigt. Log ind med din adgangskode.",
"serverSettings": "Serverindstillinger",
"apiServerUrl": "API-serverens adresse",
"leaveBlank": "Lad feltet stå tomt for at bruge standarden.",
"reset": "Nulstil",
"savedNote": "Gemt ✓",
"resetNote": "Nulstillet ✓"
},
"lock": {
"title": "DriverVault er låst",
"reason": "Lås DriverVault op",
"unlock": "Lås op",
"unlocking": "Låser op…",
"usePassword": "Brug adgangskode i stedet"
},
"dashboard": {
"eyebrow": "DINE BILER",
"title": "Garage",
"addCar": "Tilføj bil",
"lightMode": "Lys tilstand",
"darkMode": "Mørk tilstand",
"logOut": "Log ud",
"empty": "Ingen biler endnu.",
"shared": "Delt",
"sharedReadOnly": "Delt · skrivebeskyttet",
"serviceLife": "SERVICEINTERVAL BRUGT",
"lastService": "Seneste service",
"currentOdometer": "Nuværende kilometerstand",
"nextDue": "Næste service",
"nextDueKm": "Næste service (km)",
"serviceRecords": {
"one": "{n} servicepost",
"other": "{n} serviceposter"
}
},
"charging": {
"eyebrow": "OPLADNING OG KORT",
"title": "Ladere i nærheden",
"tabs": {
"public": "Offentlige ladere",
"home": "Hjemmeladere"
},
"liveMap": "Live-kort",
"youAreHere": "Du er her",
"session": {
"chargingNow": "Oplader nu",
"rate": "Effekt",
"added": "Tilføjet",
"cost": "Pris",
"done": "Færdig",
"stop": "Stop opladning",
"idle": "Oplader ikke",
"idleHint": "Tilslut ved en station for at starte en session."
},
"stations": {
"heading": "I nærheden",
"homeHeading": "Dine ladere",
"noControlHint": "Aktivér Own eller Proxy CSMS under Indstillinger → Integrationer for at styre din hjemmelader her.",
"count": {
"one": "{n} station",
"other": "{n} stationer"
},
"free": "{avail} af {total} ledige",
"full": "Optaget",
"offPeak": "uden for spidsbelastning",
"homeCharger": "Hjemmelader"
},
"control": {
"title": "Laderstyring",
"connected": "Forbundet",
"disconnected": "Offline",
"serialPlaceholder": "Laderens serienummer (f.eks. A5191-XXXXXXXX)",
"refresh": "Opdater",
"status": "Stik",
"meter": "Energi",
"start": "Start opladning",
"stop": "Stop opladning",
"limit": "Strømgrænse",
"applyLimit": "Anvend grænse",
"clearLimit": "Ryd grænse",
"reset": "Genstart laderen",
"resetConfirm": "Genstart denne lader nu? En igangværende opladning bliver afbrudt. Indtast din adgangskode igen for at bekræfte.",
"resetPassword": "Din kontoadgangskode",
"connectHint": "Indtast laderens serienummer og opdater. Laderen skal være forbundet til DriverVaults OCPP-backend (opsættes under Indstillinger → Integrationer)."
}
},
"settings": {
"tabs": {
"personal": "Personlige indstillinger",
"integrations": "Integrationer"
},
"title": "Indstillinger",
"account": {
"title": "Konto",
"name": "Navn",
"nameSaved": "Navn gemt.",
"email": "E-mail",
"verified": "Bekræftet",
"notVerified": "Ikke bekræftet",
"sending": "Sender…",
"resendVerification": "Send bekræftelsesmail igen",
"verificationRequested": "Bekræftelsesmail anmodet.",
"changePassword": "Skift adgangskode",
"currentPassword": "Nuværende adgangskode",
"newPassword": "Ny adgangskode (mindst 8)",
"confirmNewPassword": "Bekræft ny adgangskode",
"tooShort": "Den nye adgangskode skal være på mindst 8 tegn.",
"mismatch": "Den nye adgangskode og bekræftelsen stemmer ikke overens.",
"passwordUpdated": "Adgangskode opdateret.",
"updating": "Opdaterer…",
"updatePassword": "Opdater adgangskode"
},
"appearance": {
"title": "Udseende",
"theme": "Tema",
"themeLight": "Lyst",
"themeDark": "Mørkt",
"themeSystem": "System",
"language": "Sprog",
"languageHint": "Appens tekst samt navne på måneder og dage.",
"languageFallbackHint": "Dette sprog er endnu ikke oversat — appens tekst forbliver på engelsk.",
"region": "Region",
"regionHint": "Tal- og valutaformat.",
"currency": "Valuta",
"currencyHint": "Eksempel: {example}. Beløb er kun til visning — intet omregnes.",
"dateFormat": "Datoformat",
"dateHint": "Eksempel: {example}",
"fontSize": "Skriftstørrelse",
"fontSmall": "Lille",
"fontMedium": "Mellem",
"fontLarge": "Stor"
},
"profile": {
"title": "Profil",
"working": "Arbejder…",
"uploadPhoto": "Upload billede",
"remove": "Fjern",
"bio": "Om mig",
"bioHint": "En kort note, som andre i din husstand kan se.",
"bioSaved": "Beskrivelse gemt.",
"saveBio": "Gem beskrivelse"
},
"security": {
"title": "Sikkerhed",
"checkingDevice": "Tjekker enhed…",
"biometricSignIn": "Biometrisk login",
"biometricAvailable": "Log ind med {method} i stedet for din adgangskode.",
"biometricUnavailable": "Der er ikke registreret biometri på denne enhed.",
"methodFaceOrFingerprint": "ansigt eller fingeraftryk",
"methodFace": "ansigtsgenkendelse",
"methodFingerprint": "fingeraftryk",
"methodBiometrics": "biometri",
"turnedOff": "Biometrisk login slået fra",
"enabled": "Biometrisk login aktiveret",
"couldNotEnable": "Kunne ikke aktivere: {error}",
"confirmPassword": "Bekræft din adgangskode",
"password": "Adgangskode"
},
"org": {
"title": "Organisation",
"titleAll": "Organisationer",
"subtitleOwn": "Den organisation du administrerer",
"subtitleNone": "Opret en for at administrere dit eget team",
"subtitleAll": "Enheder, som brugere tilhører",
"nameLabel": "Organisationsnavn",
"namePlaceholder": "Acme Fleet",
"newOrg": "Ny organisation",
"create": "Opret organisation",
"createHint": "Du bliver dens administrator og kan derefter tilføje og administrere brugere.",
"rename": "Omdøb",
"delete": "Slet",
"deleteTitle": "Slet organisation?",
"empty": "Ingen organisationer endnu.",
"confirmDelete": "Slet organisationen „{name}“? Dette kan ikke fortrydes.",
"confirmDeleteOwn": "Slet din organisation „{name}“? Du fjernes fra den og bliver en almindelig bruger. Dette kan ikke fortrydes."
},
"privacy": {
"title": "Privatliv og sikkerhed",
"body": "Tofaktorgodkendelse er ikke tilgængelig endnu. Sessioner bygger på tokens udstedt af serveren, som udløber af sig selv, så at logge ud afslutter kun sessionen på denne enhed. For at logge alle enheder ud skal du skifte din adgangskode ovenfor.",
"signOut": "Log ud"
},
"danger": {
"title": "Farezone",
"body": "Sletning af din konto fjerner dit login og din profil. Det sletter ikke husstandens delte biler eller servicehistorik. Der er 3 dages betænkningstid, før sletningen er endelig, og du kan annullere når som helst inden da.",
"deleteAccount": "Slet min konto",
"typeToConfirm": "Skriv {email} for at bekræfte",
"typeEmailPrompt": "Skriv din e-mail for at bekræfte.",
"requesting": "Anmoder…",
"requestDeletion": "Anmod om sletning",
"requestedOn": "Sletning af konto anmodet den {date}. {tail}",
"cooldownPassed": "Betænkningstiden er udløbet. Du kan nu gennemføre sletningen.",
"canStillCancel": "Du kan stadig annullere — det bliver permanent efter 3 dages betænkningstid.",
"cancelRequest": "Annuller anmodning om sletning",
"permanentlyDelete": "Slet permanent",
"finalizeTitle": "Slet konto?",
"finalizeBody": "Dette sletter din konto permanent. Det kan ikke fortrydes.",
"delete": "Slet"
},
"advanced": {
"title": "Avanceret",
"exportTitle": "Eksportér dine data",
"exportBody": "Download din profil samt alle biler, serviceposter og reservedele som JSON.",
"preparing": "Forbereder…",
"exportAction": "Eksportér data",
"importTitle": "Importér dine data",
"importBody": "Tilføj biler fra en tidligere eksporteret JSON-fil. Dette opretter nye poster — intet flettes eller overskrives.",
"importing": "Importerer…",
"importAction": "Importér data",
"notJson": "Filen er ikke gyldig JSON.",
"notExport": "Filen ligner ikke en DriverVault-eksport (der mangler en \"cars\"-liste).",
"confirmImport": "Importér {count} bil(er) fra denne fil? Dette tilføjer nye poster — eksisterende biler flettes eller overskrives ikke.",
"imported": "Importerede {cars} bil(er), {services} servicepost(er), {parts} reservedel(e).",
"exported": "Gemte {file}",
"open": "Åbn",
"openFailed": "Filen kunne ikke åbnes."
},
"integrations": {
"title": "Integrationer",
"subtitle": "Forbind eksterne tjenester til din konto.",
"toyotaDesc": "Log ind med din MyToyota-konto for at hente køretøjsdata fra Toyota Connected Europe. Kun Europa.",
"enable": "Aktivér for min konto",
"enableOrg": "Aktivér for organisationen",
"unavailable": "Denne integration er slået fra af administratoren.",
"orgDisabled": "Denne integration er slået fra for din organisation.",
"scopeMy": "Mine indstillinger",
"scopeOrg": "Organisation",
"scopeHint": "Organisationens indstillinger gælder for alle i din organisation, der lader et felt stå tomt.",
"readOnly": "Denne integrations fælles indstillinger administreres i API-serverens panel; her er de skrivebeskyttede.",
"email": "MyToyota-e-mail",
"password": "MyToyota-adgangskode",
"brand": "Mærke",
"inherited": "Sat på et højere niveau",
"inheritedFrom": "Nedarvet fra {source}",
"sourceGlobal": "administratoren",
"sourceOrg": "din organisation",
"sourceUser": "dig",
"passwordKeep": "Lad feltet stå tomt for at beholde den gemte adgangskode.",
"test": "Test forbindelsen",
"testing": "Tester…",
"save": "Gem",
"saved": "Gemt ✓",
"connected": "Forbundet",
"notConnected": "Ikke forbundet",
"ankerSolixDesc": "Log ind med din Anker-konto for at hente laderdata fra Anker Solix-skyen.",
"ankerEmail": "E-mail til Anker-konto",
"ankerPassword": "Adgangskode til Anker-konto",
"country": "Land",
"countryHint": "Landekode på to bogstaver for din Anker-konto (f.eks. DE, GB, US).",
"controlMode": "Styringstilstand",
"controlModeHint": "Hvordan DriverVault styrer laderen over OCPP.",
"controlOff": "Fra (kun overvågning)",
"controlOwn": "Eget CSMS (fuld styring)",
"controlProxy": "Proxy-CSMS (videresendelse + styring)",
"controlTitle": "Laderstyring (OCPP)",
"controlOwnHint": "Laderen forbinder direkte til DriverVault som sit centralsystem. Peg laderens OCPP-backend på endepunktet nedenfor.",
"controlProxyHint": "DriverVault videresender til Ankers sky og kan indsætte kommandoer. Peg laderens OCPP-backend på endepunktet nedenfor.",
"controlProvisionSteps": "I Anker-appen (eller laderens OCPP-indstillinger) sættes OCPP-backend-URL'en til endepunktet og autorisationsnøglen til tokenet ovenfor.",
"chargerSerial": "Laderens serienummer",
"controlCheck": "Tjek status",
"controlGenerate": "Generér token",
"controlEndpoint": "OCPP-endepunkt",
"controlToken": "Autorisationstoken",
"controlTokenOnce": "Kopiér dette token nu — det vises kun én gang og kan ikke hentes frem igen.",
"controlRevoke": "Tilbagekald token",
"controlRevokeConfirm": "Tilbagekald denne laders styringstoken? Den bliver afbrudt og kan ikke forbinde igen, før du genererer et nyt.",
"controlConnected": "Forbundet til styrings-backend",
"controlDisconnected": "Ikke forbundet",
"toyota": "Toyota Connected (MyToyota)",
"brandToyota": "Toyota",
"brandLexus": "Lexus",
"ankerSolix": "Anker Solix (V1 Smart EV Charger)"
}
},
"status": {
"noData": "Ingen data",
"serviceOverdueDays": "Service overskredet med {days} d",
"dueInDays": "Forfalder om {days} d",
"okDays": "OK · {days} d",
"okIn": "OK · {parts}",
"noKm": "Ingen km",
"serviceOverdueKm": "Service overskredet med {km} km",
"serviceOverdueBy": "Service overskredet med {parts}",
"inKm": "Om {km} km",
"kmLeft": "{km} km tilbage",
"expiredAgo": "Udløb for {days} d siden",
"expiresToday": "Udløber i dag",
"renewInDays": "Forny om {days} d",
"validDays": "Gyldig · {days} d",
"noExpiry": "Udløber ikke",
"done": "Færdig",
"noTrigger": "Ingen udløser",
"overdue": "Overskredet",
"overdueBy": "Overskredet {parts}",
"dueIn": "Forfalder om {parts}",
"upcoming": "Kommende",
"today": "i dag",
"days": "{days} d",
"km": "{km} km",
"warrantyExpiredAgo": "Garanti udløb for {days} d siden",
"warrantyEndsIn": "Garanti slutter om {days} d",
"underWarranty": "Under garanti · {days} d"
},
"car": {
"allCars": "← Alle biler",
"share": "Del",
"shared": "Delt",
"sharedReadOnly": "Delt · skrivebeskyttet",
"tabs": {
"connected": "Tilsluttet tjeneste",
"info": "Oplysninger",
"services": "Servicehistorik",
"technical": "Synshistorik",
"maintenance": "Værksted",
"fuel": "Brændstofudgifter",
"charging": "Opladningsudgifter",
"documents": "Dokumenter",
"parts": "Reservedelskatalog",
"reminders": "Påmindelser",
"dragHint": "Træk en fane for at ændre rækkefølgen af bilens faner."
},
"viewPicker": {
"open": "Hvad denne bils side viser",
"title": "Hvad denne bil viser",
"subtitle": "Vælg hvilke afsnit og oplysninger denne bils side viser. Det gælder alle, bilen er delt med.",
"tabsHeading": "Faner",
"fieldsHeading": "Oplysninger",
"alwaysOn": "{tab} er altid tilgængelig.",
"fieldsOrderHint": "Træk felterne på fanen Oplysninger for at ændre deres rækkefølge.",
"reorderHint": "Træk en række i håndtaget for at ændre rækkefølgen.",
"tabsReorder": "Faneblade",
"fieldsReorder": "Informationsfelter"
},
"provider": {
"subtitle": "Live-data fra din {label}-konto.",
"refresh": "Opdater",
"refreshing": "Opdaterer…",
"updated": "Opdateret {time}",
"vehicle": "Køretøj",
"readings": "Aktuelle målinger",
"dragHint": "Træk en aflæsning for at ændre rækkefølgen.",
"noData": "{label} returnerede ingen data for denne bil.",
"raw": "Rå svar",
"allFields": "Alle oplyste felter",
"truncated": "Kun de første {n} felter er vist — resten findes i det rå svar nedenfor.",
"sectionEmpty": "Intet oplyst.",
"sectionFailed": "Kunne ikke hentes",
"own": "Kun din egen konto bruges, så loginoplysninger deles aldrig sammen med en bil.",
"odometerSuggest": "{label} oplyser {km}, altså mere end bilens gemte kilometerstand.",
"updateOdometer": "Opdater kilometerstand",
"updatingOdometer": "Opdaterer…",
"unlink": "Afbryd",
"unlinkConfirm": "Afbryd denne bil fra {label}? Intet gemt slettes.",
"connectTitle": "Forbind denne bil til en tjeneste",
"connectHint": "Vælg det køretøj på din konto, der svarer til denne bil. Dens data vises så her.",
"connectSubmit": "Forbind køretøj",
"connecting": "Forbinder…",
"noProviders": "Ingen producentkonto er tilsluttet. Tilføj en under Indstillinger › Integrationer.",
"settingsLink": "Åbn Indstillinger",
"sections": {
"telemetry": "Kilometerstand og rækkevidde",
"electric": "Batteri og opladning",
"status": "Døre, ruder og lys",
"health": "Køretøjets tilstand",
"location": "Sidst kendte position",
"serviceHistory": "Servicehistorik hos forhandler",
"notifications": "Notifikationer"
},
"metrics": {
"odometer": "Kilometerstand",
"fuelLevel": "Brændstofniveau",
"fuelRange": "Rækkevidde",
"batteryLevel": "Batteri",
"evRange": "Elektrisk rækkevidde (uden aircon)",
"evRangeWithAc": "Elektrisk rækkevidde (med aircon)",
"chargingStatus": "Opladning",
"location": "Position"
}
},
"info": {
"allHidden": "Alle felter er slået fra for denne bil.",
"dragHint": "Træk et felt for at ændre rækkefølgen af bilens oplysninger.",
"oilSpec": "Motorolie-specifikation",
"transmissionOil": "Gearolie",
"differentialOil": "Differentialeolie",
"brakeFluid": "Bremsevæske",
"coolant": "Kølervæske",
"odometer": "Kilometerstand",
"serviceInterval": "Serviceinterval",
"nextDue": "Næste service",
"registrationPlate": "Nummerplade",
"registrationCountry": "Registreringsland",
"vin": "Stelnummer",
"fuelType": "Brændstoftype",
"buildDate": "Produktionsdato",
"firstRegistration": "Første registrering",
"technicalCheckInterval": "Synsinterval",
"daysValue": {
"one": "{n} dag",
"other": "{n} dage"
}
},
"services": {
"title": "Servicehistorik",
"add": "Tilføj service",
"empty": "Ingen serviceposter endnu.",
"colDate": "Dato",
"colKm": "Km",
"colNextDate": "Næste dato",
"colNextKm": "Næste km",
"colOil": "Olie og oliefilter",
"colEngineFilter": "Luftfilter",
"colCabinFilter": "Kabinefilter",
"colNotes": "Noter",
"colFile": "Fil",
"confirmDelete": "Slet denne servicepost?",
"next": "Næste: {date} · {km}",
"chipOil": "Olie og filter",
"chipEngineFilter": "Motorluft",
"chipCabinFilter": "Kabineluft"
},
"technical": {
"title": "Synshistorik",
"subtitle": "Lovpligtige syn. Gentages alene efter tid, uanset hvad kilometerstanden viser.",
"add": "Tilføj syn",
"empty": "Ingen syn endnu.",
"colDate": "Dato",
"colResult": "Resultat",
"colNextCheck": "Næste syn",
"colStatus": "Status",
"colStation": "Synssted",
"colCost": "Pris",
"colNotes": "Noter",
"colFile": "Fil",
"passed": "Godkendt",
"failed": "Ikke godkendt",
"confirmDelete": "Slet dette syn?",
"next": "Næste: {date}"
},
"maintenance": {
"title": "Værksted",
"subtitle": "Værkstedsbesøg og reparationer. Almindelig service hører under Servicehistorik.",
"add": "Registrér besøg",
"empty": "Ingen værkstedsbesøg registreret endnu.",
"colDate": "Dato",
"colKm": "Km",
"colType": "Type",
"colWork": "Udført arbejde",
"colWorkshop": "Værksted",
"colStatus": "Status",
"colCost": "Pris",
"colFile": "Fil",
"underWarranty": "Under garanti · {days} dage tilbage",
"confirmDelete": "Slet dette værkstedsbesøg?",
"partsUsed": "Dele: {parts}"
},
"fuel": {
"title": "Brændstofudgifter",
"subtitle": "Forbruget måles mellem fulde tanke.",
"add": "Registrér tankning",
"empty": "Ingen tankninger registreret endnu.",
"average": "Gennemsnit",
"best": "Bedste",
"worst": "Værste",
"costPerKm": "Pris pr. km",
"refills": "Tankninger",
"totalLiters": "Liter i alt",
"totalSpent": "Brugt i alt",
"trackedDistance": "Målt distance",
"avgPrice": "Gns. pris {price}/L",
"needTwoTanks": "Registrér mindst to fulde tanke for at se forbrugstal.",
"colDate": "Dato",
"colKm": "Km",
"colLiters": "Liter",
"colCost": "Pris",
"colPerLiter": "Pr. liter",
"colDistance": "Distance",
"colConsumption": "Forbrug",
"colStation": "Tankstation",
"colFile": "Fil",
"partial": "delvis",
"gap": "hul",
"confirmDelete": "Slet denne tankning?",
"fullTank": "Fuld tank",
"partialFill": "Delvis tankning",
"missedBefore": "Manglende tankning før",
"overDistance": "{consumption} · {rate} over {distance}"
},
"charging": {
"title": "Opladningsudgifter",
"subtitle": "Forbruget måles mellem fulde opladninger.",
"add": "Registrér opladning",
"empty": "Ingen opladninger registreret endnu.",
"average": "Gennemsnit",
"best": "Bedste",
"worst": "Værste",
"costPerKm": "Pris pr. km",
"sessions": "Opladninger",
"totalKwh": "Energi i alt",
"totalSpent": "Brugt i alt",
"trackedDistance": "Målt distance",
"avgPrice": "Gns. pris {price}/kWh",
"needTwoCharges": "Registrér mindst to fulde opladninger for at se forbrugstal.",
"colDate": "Dato",
"colKm": "Km",
"colKwh": "kWh",
"colCost": "Pris",
"colPerKwh": "Pr. kWh",
"colDistance": "Distance",
"colConsumption": "Forbrug",
"colLocation": "Ladepunkt",
"colFile": "Fil",
"partial": "delvis",
"gap": "hul",
"confirmDelete": "Slet denne opladning?",
"fullCharge": "Fuld opladning",
"partialCharge": "Delvis opladning",
"missedBefore": "Manglende opladning før",
"overDistance": "{consumption} · {rate} over {distance}"
},
"documents": {
"title": "Dokumenter",
"subtitle": "Forsikring, miljøattester og andre papirer med fornyelsesdatoer.",
"add": "Tilføj dokument",
"empty": "Ingen dokumenter endnu.",
"colType": "Type",
"colTitle": "Titel",
"colProvider": "Udbyder",
"colIssued": "Udstedt",
"colRenewal": "Fornyelse",
"colStatus": "Status",
"colFile": "Fil",
"confirmDelete": "Slet dette dokument?",
"issuedRenews": "Udstedt {issued} · Fornyes {renews}"
},
"reminders": {
"title": "Påmindelser",
"subtitle": "Påmindelser om fornyelse og service tilføjes automatisk ud fra dine dokumenter og din servicehistorik.",
"add": "Tilføj påmindelse",
"empty": "Intet at blive mindet om endnu.",
"automatic": "Automatisk",
"repeats": "Gentages",
"at": "ved {km}",
"doneRollForward": "Færdig · flyt frem",
"markDone": "Markér som færdig",
"reopen": "Genåbn",
"confirmDelete": "Slet denne påmindelse?",
"on": "den {date}",
"repeatsEvery": "Gentages hver {every}",
"autoHint": "Tilføjet automatisk — rediger den post, den stammer fra, for at ændre den."
},
"parts": {
"title": "Reservedelskatalog",
"add": "Tilføj reservedel",
"empty": "Ingen reservedele endnu.",
"colPart": "Reservedel",
"colPartNumber": "Varenummer",
"colNotes": "Noter",
"colFile": "Fil",
"confirmDelete": "Slet denne reservedel?"
},
"delete": {
"title": "Slet denne bil?",
"body": "Dette sletter {name} permanent sammen med alt, der er registreret på den — {services}, {maintenance}, {fuel}, {charging}, {documents} og {parts}. Det kan ikke fortrydes.",
"services": {
"one": "{n} servicepost",
"other": "{n} serviceposter"
},
"maintenance": {
"one": "{n} værkstedsbesøg",
"other": "{n} værkstedsbesøg"
},
"fuel": {
"one": "{n} tankning",
"other": "{n} tankninger"
},
"charging": {
"one": "{n} opladning",
"other": "{n} opladninger"
},
"documents": {
"one": "{n} dokument",
"other": "{n} dokumenter"
},
"parts": {
"one": "{n} reservedel",
"other": "{n} reservedele"
},
"typeToConfirm": "Skriv {name} for at bekræfte",
"deleting": "Sletter…",
"confirm": "Slet permanent"
},
"actions": {
"share": "Del bil",
"edit": "Rediger bil",
"odometer": "Opdater kilometerstand",
"delete": "Slet bil"
},
"readOnlyNotice": "Delt med dig (skrivebeskyttet). Du kan ikke ændre noget."
},
"forms": {
"charging": {
"addTitle": "Registrér opladning",
"editTitle": "Redigér opladning",
"date": "Dato",
"odometer": "Kilometerstand (km)",
"kwh": "Energi (kWh)",
"cost": "Pris",
"pricePerKwh": "Det er {price} pr. kWh.",
"battery": "Batteri",
"fullCharge": "Ladet helt op",
"missedSession": "En opladning før denne blev ikke registreret",
"batteryHint": "Forbruget måles mellem fulde opladninger. Delvise opladninger tæller stadig med i prisen og indgår i den næste fulde.",
"location": "Ladepunkt",
"locationPlaceholder": "Hjemme",
"notes": "Noter",
"attachmentLegend": "Kvittering",
"submit": "Gem opladning"
},
"import": {
"title": "Importér en bil",
"subtitle": "Opret en bil ud fra et køretøj på din producentkonto. Alt, hvad der kan læses, udfyldes for dig.",
"service": "Tjeneste",
"loadingVehicles": "Indlæser dine køretøjer…",
"noVehicles": "Ingen køretøjer på denne konto.",
"notConnected": "Ikke tilsluttet",
"noProviders": "Ingen producentkonto er tilsluttet. Tilføj en under Indstillinger › Integrationer.",
"alreadyInGarage": "Allerede i din garage",
"selectVehicle": "Køretøj",
"dataTitle": "Hvad skal importeres",
"dataHint": "Fjern fluebenet ved det, du helst selv vil udfylde.",
"includeIdentity": "Mærke, model, årgang, nummerplade og VIN",
"includeFuelType": "Brændstoftype",
"includeDates": "Produktions- og første registreringsdato",
"includeOdometer": "Aktuel kilometerstand",
"name": "Bilens navn",
"submit": "Importér bil",
"importing": "Importerer…",
"warningOdometer": "Tjenesten oplyste ingen kilometerstand — indtast den selv på bilen.",
"moreData": "Resten af det, tjenesten oplyser, er fortsat tilgængeligt på bilens {label}-fane."
},
"car": {
"addTitle": "Tilføj en bil",
"editTitle": "Rediger bil",
"name": "Navn *",
"make": "Mærke",
"model": "Model",
"year": "Årgang",
"registration": "Nummerplade",
"registrationCountry": "Registreringsland",
"registrationCountryPlaceholder": "Danmark",
"vin": "Stelnummer",
"vinPlaceholder": "Køretøjets stelnummer",
"fuelType": "Brændstoftype",
"buildDate": "Produktionsdato",
"firstRegistration": "Første registrering",
"oilSpec": "Motorolie-specifikation",
"currentKm": "Nuværende kilometerstand (km)",
"transmissionOilSpec": "Gearolie-specifikation",
"differentialOilSpec": "Differentialeolie-specifikation",
"brakeFluidSpec": "Bremsevæske-specifikation",
"coolantSpec": "Kølervæske-specifikation",
"serviceIntervalDays": "Serviceinterval (dage)",
"serviceIntervalKm": "Serviceinterval (km)",
"technicalCheckIntervalDays": "Synsinterval (dage)",
"technicalCheckHint": "Udfylder på forhånd hvert syns næste forfaldsdato. Ethvert syn kan tilsidesætte den med datoen på attesten.",
"submit": "Tilføj bil"
},
"service": {
"addTitle": "Tilføj servicepost",
"editTitle": "Rediger servicepost",
"date": "Dato *",
"odometer": "Kilometerstand (km)",
"changedParts": "Udskiftede dele",
"oil": "Olie og oliefilter",
"engineFilter": "Luftfilter",
"cabinFilter": "Kabinefilter",
"attachmentLegend": "Kvittering eller side fra servicebogen",
"notes": "Noter",
"autoHint": "Næste servicedato (+{days} dage) og km (+{km}) beregnes automatisk.",
"submit": "Tilføj service"
},
"technical": {
"addTitle": "Tilføj syn",
"editTitle": "Rediger syn",
"date": "Synsdato *",
"result": "Resultat *",
"passed": "Godkendt",
"failed": "Ikke godkendt",
"validUntil": "Gyldig til",
"failedHint": "Et ikke-godkendt syn attesterer ingenting, så der udledes ingen næste dato af det.",
"derivedHint": "Lad feltet stå tomt for at bruge bilens interval (+{days} dage → {date}). Indtast datoen på attesten, hvis den afviger.",
"cost": "Pris",
"station": "Synssted",
"stationPlaceholder": "Synshal",
"attachmentLegend": "Synsattest",
"notes": "Noter",
"submit": "Tilføj syn"
},
"part": {
"addTitle": "Tilføj reservedel",
"editTitle": "Rediger reservedel",
"name": "Reservedelens navn *",
"namePlaceholder": "Oliefilter",
"partNumber": "Varenummer",
"notes": "Noter",
"notesPlaceholder": "Passer til 2015–2020 · køb parvis",
"attachmentLegend": "Billede eller datablad",
"submit": "Tilføj reservedel"
},
"fuel": {
"addTitle": "Registrér tankning",
"editTitle": "Rediger tankning",
"date": "Dato *",
"odometer": "Kilometerstand (km) *",
"liters": "Liter *",
"cost": "Samlet pris",
"pricePerLiter": "Pris pr. liter: {price}",
"tank": "Tank",
"fullTank": "Fyldt helt op",
"missedFill": "Jeg glemte at registrere en tankning før denne",
"tankHint": "Forbruget måles mellem fulde tanke, så delvise tankninger tæller med i den næste fulde. At markere en glemt tankning holder den strækning ude af tallene i stedet for at vise et urealistisk lavt forbrug.",
"station": "Tankstation",
"notes": "Noter",
"attachmentLegend": "Kvittering",
"submit": "Registrér tankning",
"stationPlaceholder": "Orlen"
},
"maintenance": {
"addTitle": "Registrér værkstedsbesøg",
"editTitle": "Rediger værkstedsbesøg",
"date": "Dato *",
"odometer": "Kilometerstand (km)",
"type": "Type",
"status": "Status",
"description": "Hvad blev der lavet *",
"descriptionPlaceholder": "Udskiftede generator og drivrem",
"workshop": "Værksted",
"location": "Sted",
"partsUsed": "Udskiftede dele",
"partsUsedPlaceholder": "Generator 27060-0T010, rem 90916-02660",
"laborCost": "Arbejdsløn",
"partsCost": "Pris for dele",
"total": "I alt: {total}",
"invoiceNumber": "Fakturanummer",
"warrantyUntil": "Garanti til",
"attachmentLegend": "Faktura",
"notes": "Noter",
"submit": "Registrér besøg",
"workshopPlaceholder": "Kowalski Auto Service",
"locationPlaceholder": "Kraków"
},
"document": {
"addTitle": "Tilføj dokument",
"editTitle": "Rediger dokument",
"type": "Type",
"title": "Titel *",
"titlePlaceholder": "Ansvarsforsikring 2026",
"provider": "Udbyder",
"reference": "Police- / attestnummer",
"issued": "Udstedt",
"renewalDate": "Fornyelsesdato",
"renewalHint": "Lad fornyelsesdatoen stå tom for et dokument, der aldrig udløber. Angives den, tilføjes der automatisk en påmindelse.",
"cost": "Pris",
"attachmentLegend": "Scan eller billede",
"notes": "Noter",
"submit": "Tilføj dokument",
"providerPlaceholder": "PZU"
},
"reminder": {
"addTitle": "Tilføj påmindelse",
"editTitle": "Rediger påmindelse",
"title": "Titel *",
"titlePlaceholder": "Skift til vinterdæk",
"type": "Type",
"remindMe": "Mind mig om",
"onDate": "På dato",
"atOdometer": "Ved kilometerstand (km)",
"triggerHint": "Angiv det ene eller begge — med begge gælder det, der indtræffer først.",
"currentKm": "Bilen står på {km} nu.",
"repeat": "Gentagelse (valgfrit)",
"everyDays": "Hver … dage",
"everyKm": "Hver … km",
"recurringHint": "Markeres den som færdig, flyttes den frem i stedet for at blive lukket.",
"oneOffHint": "Lad feltet stå tomt for en engangspåmindelse, der lukkes, når du markerer den som færdig.",
"notes": "Noter",
"noTrigger": "Angiv en forfaldsdato, en kilometerstand eller begge.",
"submit": "Tilføj påmindelse"
},
"share": {
"title": "Del {name}",
"body": "Giv en anden bruger adgang til denne bil. Skrivebeskyttet giver adgang til at se; læs og skriv giver også adgang til at redigere bilen samt dens serviceposter og reservedele.",
"userEmail": "Brugerens e-mail",
"read": "Skrivebeskyttet",
"write": "Læs og skriv",
"submit": "Del",
"peopleWithAccess": "Personer med adgang",
"notShared": "Endnu ikke delt med nogen.",
"submitting": "Deler…"
},
"validation": {
"odometer": "Kilometerstand er påkrævet.",
"liters": "Antal liter er påkrævet.",
"kwh": "Energi (kWh) er påkrævet.",
"name": "Navn er påkrævet.",
"partName": "Delnavn er påkrævet.",
"description": "Beskriv, hvad der blev udført.",
"title": "Titel er påkrævet."
}
},
"enums": {
"fuelType": {
"petrol": "Benzin",
"petrol_lpg": "Benzin + LPG",
"diesel": "Diesel",
"diesel_lpg": "Diesel + LPG",
"hybrid": "Hybrid",
"electric": "El",
"hydrogen": "Brint"
},
"maintenanceType": {
"repair": "Reparation",
"inspection": "Eftersyn",
"bodywork": "Karrosseri",
"tyres": "Dæk",
"diagnostics": "Fejlsøgning",
"recall": "Tilbagekaldelse",
"warranty": "Garantiarbejde",
"other": "Andet"
},
"maintenanceStatus": {
"scheduled": "Planlagt",
"in_progress": "I gang",
"completed": "Fuldført"
},
"documentType": {
"insurance": "Forsikring",
"pollution": "Miljøattest",
"registration": "Registreringsattest",
"inspection": "Eftersyn",
"roadTax": "Vægtafgift",
"warranty": "Garanti",
"other": "Andet"
},
"reminderTypeShort": {
"maintenance": "Vedligehold",
"document": "Dokument",
"service": "Service",
"inspection": "Eftersyn",
"other": "Andet"
},
"reminderType": {
"maintenance": "Vedligehold",
"document": "Fornyelse af dokument",
"service": "Service",
"inspection": "Eftersyn",
"other": "Andet"
}
},
"attachment": {
"legend": "Vedhæftet fil",
"hint": "PDF eller billede, op til 10 MB.",
"attached": "Vedhæftet: {name}",
"willBeRemoved": "Den vedhæftede fil fjernes, når der gemmes.",
"choose": "Vælg fil",
"replace": "Erstat",
"view": "Vis",
"clear": "Ryd"
},
"errors": {
"sessionExpired": "Sessionen er udløbet — log ind igen.",
"deleteFailed": "Sletning mislykkedes: {error}",
"completeFailed": "Kunne ikke fuldføres: {error}",
"attachmentFailed": "Gemt, men filen blev ikke uploadet: {error}",
"openFailed": "Filen kunne ikke åbnes: {error}",
"noFile": "Ingen fil vedhæftet."
},
"admin": {
"title": "Brugere",
"subtitleAll": "Konti på tværs af alle organisationer.",
"subtitleOrg": "Konti i din organisation.",
"addUser": "Tilføj bruger",
"colEmail": "E-mail",
"colName": "Navn",
"colOrganization": "Organisation",
"noOrganization": "— Ingen organisation —",
"organizationHint": "Lad feltet stå tomt for at oprette en konto uden organisation.",
"colRole": "Rolle",
"colCreated": "Oprettet",
"you": "(dig)",
"resetPassword": "Nulstil adgangskode",
"confirmDelete": "Slet {name}? Dette kan ikke fortrydes.",
"cantDeleteSelf": "Du kan ikke slette din egen konto.",
"onlySuperadminDeletes": "Kun en superadministrator kan slette en superadministrator.",
"cantChangeOwnRole": "Du kan ikke ændre din egen rolle.",
"onlySuperadminEdits": "Kun en superadministrator kan redigere en superadministrator.",
"createTitle": "Tilføj en bruger",
"emailRequired": "E-mail *",
"passwordRequired": "Adgangskode *",
"minChars": "(mindst 8)",
"creating": "Opretter…",
"createUser": "Opret bruger",
"resetTitle": "Nulstil adgangskode — {email}",
"newPassword": "Ny adgangskode",
"setPassword": "Angiv adgangskode",
"roles": {
"user": "bruger",
"admin": "administrator",
"superadmin": "superadministrator"
},
"deleteTitle": "Slet bruger?",
"passwordUpdated": "Adgangskoden er opdateret."
}
}