The HabuDen has no cloud API to connect to. It is commissioned over Bluetooth in
the Greencell GC app, pointed at an MQTT broker the owner runs, and from then on
publishes there — so the connector is an MQTT client rather than an HTTP one,
and nothing in it reaches Greencell. The wire contract is Home Assistant's own
greencell component and the greencell_client 1.0.3 library beneath it, which is
the only published description of the topics: a BROADCAST on /greencell/broadcast
draws device announcements, and /greencell/evse/{sn}/ carries current in
milliamps, voltage, power under "momentary", the EVSE state, and the access level
chosen in the app.
That meant an MQTT client, and the server takes no dependencies, so internal/mqtt
is hand-rolled the way internal/ocpp's RFC 6455 layer is. It is scoped to what
this connector needs and says so: QoS 0 for everything we send, clean session,
no reconnect — a connection lives for one plugin call, which is exactly how the
manager builds and tears down an instance. Inbound PUBLISH is accepted at QoS 0,
1 and 2 with the acknowledgements each requires, because the QoS of a delivery is
the broker's choice and not ours; an unacknowledged QoS 1 is redelivered forever.
Read-only, and the reason is worth writing down rather than rediscovering. A
device in EXECUTE mode accepts START, STOP, SET_CURRENT and QUERY — but the topic
those go to appears in no source: not Greencell's integration page, not
greencell_client, and Home Assistant ships sensor-only for that same reason.
Publishing to a guessed topic would be a control feature whose failure mode is a
driver believing they stopped a charge. So the access level is reported, and
commandTopic is the seam: an operator who has watched their own broker and found
theirs sets it, and a state read then sends QUERY — the one command a READ-mode
device also honours — instead of waiting out the charger's publish cadence. The
day the topic is public, control is a payload away from the same field.
What the cascade resolves here is a broker, not an account, so host, port, TLS and
credentials resolve together from the highest layer that names a host: an
organization's address paired with a user's password would address a broker with
credentials never meant for it. The serial, the QUERY topic and the listen window
each describe the charger rather than the endpoint, so each resolves on its own.
Two reading rules the tests pin. A phase the device did not report stays nil
rather than zero, because zero amps on a charger is a real measurement — a JSON
null decoding to 0.0 was a live bug until a test caught it — and a partial read
returns with received/complete flags instead of failing, since a device that
publishes some topics on a slower cadence is still worth reading. And a reachable
broker with no charger on it is degraded, not down: the half we configure works
and the missing half is the device. The plugin's end-to-end tests run against an
in-process broker written to the raw wire format, so a bug in the client cannot
hide behind a matching bug in the fixture.
The apps get the third connector card. The panel needed nothing — it renders a
plugin's ConfigFields itself — but the per-user panes are still hand-written per
integration, which is now three near-copies and the argument for the generic
version already noted in the plugins README. The web form splits the broker from
the charger because the server resolves them differently. The phone card is a
declarative config against the shared widget, which gained a number field type, a
degraded state that reads amber rather than red, and a fix for a locked field
that was covering its own displayed value with dots. Twenty keys in three
languages across both apps; Greencell, HabuDen and the literal QUERY join the
proper nouns that stay in English.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
1015 lines
40 KiB
JSON
1015 lines
40 KiB
JSON
{
|
||
"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 ✓"
|
||
},
|
||
"servers": {
|
||
"title": "Servere",
|
||
"home": "Standardserver",
|
||
"switchHint": "Skift hvilken server appen læser fra",
|
||
"add": "Tilføj server",
|
||
"addTitle": "Tilføj en server",
|
||
"name": "Navn",
|
||
"namePlaceholder": "Hjemmegarage",
|
||
"url": "Adresse",
|
||
"urlHint": "API-serverens offentlige adresse, f.eks. https://garage.example.com — /api tilføjes automatisk, hvis du udelader stien.",
|
||
"urlHomeHint": "Lad feltet stå tomt for at bruge den adresse, appen leveres med.",
|
||
"connect": "Forbind",
|
||
"connecting": "Forbinder…",
|
||
"connected": "Forbundet",
|
||
"notConnected": "Ikke forbundet — log ind for at skifte",
|
||
"signOut": "Log ud af denne server",
|
||
"removeConfirm": "Fjern {name}? Den gemte session glemmes også.",
|
||
"unknown": "Ukendt server"
|
||
},
|
||
"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"
|
||
}
|
||
},
|
||
"carApp": {
|
||
"signIn": "Log ind på telefonen for at se din garage her.",
|
||
"expired": "Sessionen er udløbet. Log ind igen på telefonen.",
|
||
"unreachable": "Serveren kunne ikke nås.",
|
||
"refresh": "Opdater"
|
||
},
|
||
"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",
|
||
"greencell": "Greencell (HabuDen EV-lader)",
|
||
"greencellDesc": "Læs din Greencell-lader via den MQTT-broker, den publicerer til. Kun lokalt — ingen Greencell-skykonto er involveret.",
|
||
"greencellBroker": "MQTT-broker",
|
||
"greencellCharger": "Lader",
|
||
"greencellHost": "Brokerens vært",
|
||
"greencellHostHint": "Den broker, du pegede laderen på i Greencell GC-appen.",
|
||
"greencellPort": "Brokerens port",
|
||
"greencellPortHint": "Som standard 1883, eller 8883 når TLS er slået til.",
|
||
"greencellTls": "Forbindelse",
|
||
"greencellTlsOff": "Almindelig MQTT",
|
||
"greencellTlsOn": "TLS (MQTTS)",
|
||
"greencellUsername": "Brugernavn til broker",
|
||
"greencellUsernameHint": "Lad feltet stå tomt, hvis din broker tillader anonyme klienter.",
|
||
"greencellPassword": "Adgangskode til broker",
|
||
"greencellSerial": "Laderens serienummer",
|
||
"greencellSerialHint": "Valgfrit — lad det stå tomt, så finder søgningen det, der er på brokeren.",
|
||
"greencellTimeout": "Lyttevindue (sekunder)",
|
||
"greencellTimeoutHint": "Hvor længe der ventes på, at laderen publicerer. Greencell giver en enhed op til 30 s til at svare; hæv værdien, hvis intet findes.",
|
||
"greencellCommandTopic": "Emne for QUERY-kommandoen",
|
||
"greencellCommandTopicHint": "Valgfrit. Greencell beskriver en QUERY-kommando, der får laderen til at publicere med det samme, men ikke det emne, den lytter på. Finder du dit, så skriv det her, og læsninger behøver ikke vente på laderens egen kadence. Brug {sn} for serienummeret.",
|
||
"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.",
|
||
"serviceColumnsHeading": "Kolonner i servicehistorik",
|
||
"columnAlwaysOn": "{column} vises altid.",
|
||
"servicePartsHeading": "Udskiftede dele",
|
||
"servicePartsHint": "En fravalgt del forsvinder fra serviceformularen og fra historikken. Det, der allerede er registreret, bevares og kommer tilbage med den.",
|
||
"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",
|
||
"climate": "Klimaanlæg",
|
||
"climateSettings": "Klimaindstillinger",
|
||
"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)",
|
||
"cabinTemperature": "Kabinetemperatur",
|
||
"targetTemperature": "Måltemperatur",
|
||
"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?",
|
||
"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."
|
||
}
|
||
}
|