'Påmindelser og beskeder fra andre, også når fanen er lukket. Beskeden krypteres til din browser undervejs — push-tjenesten kan ikke læse den.',
'push.unsupported':
'Denne browser understøtter det ikke. Safari kræver, at appen er lagt på hjemmeskærmen; over almindelig HTTP virker det kun på localhost.',
'push.blocked':
'Browseren har blokeret notifikationer for dette site. Det kan kun laves om i browserens egne indstillinger — en side kan ikke spørge igen, når svaret har været nej.',
'push.on':'Slået til på denne enhed.',
'push.turnOff':'Slå fra',
'push.turnOn':'Slå til på denne enhed',
'push.perBrowser':'Gælder kun den browser, du sidder i nu.',
'push.recent':'Seneste',
'push.none':'Ingenting endnu.',
'push.open':'Åbn',
'push.markAllRead':'Markér alle som læst',
'push.version':'Version',
'push.running':'Kører',
'push.seeRelease':'Se udgivelsen',
// --- settings: API tokens ------------------------------------------------------
'tokens.title':'API-tokens',
'tokens.hint':
'Det, et script, en CalDAV-klient eller en MCP-forbindelse logger ind med. En token bærer dine rettigheder præcist — den kan intet, du ikke selv kan.',
'tokens.copyNow':'Kopiér den nu.',
'tokens.onceOnly':'Den vises kun denne ene gang — serveren har kun dens hash.',
'tokens.copy':'Kopiér',
'tokens.copied':'Kopieret.',
'tokens.done':'Færdig',
'tokens.mcpBefore':'Skal du bruge den som',
'tokens.mcpLink':'MCP-forbindelse',
'tokens.mcpAfter':'i Claude? Så er det denne adresse, dialogen skal have:',
'tokens.copyAddress':'Kopiér adressen',
'tokens.name':'Navn',
'tokens.namePlaceholder':'fx min bærbare, eller backup-scriptet',
'tokens.expires':'Udløber',
'tokens.never':'Aldrig',
'tokens.in30':'Om 30 dage',
'tokens.in90':'Om 90 dage',
'tokens.inYear':'Om et år',
'tokens.expiryHint':
'En kalenderklient, der har abonneret i årevis, har brug for “aldrig”. Et script, du kører én gang, har ikke.',
'tokens.create':'Lav en token',
'tokens.none':'Ingen tokens endnu.',
'tokens.revoke':'Tilbagekald',
// --- settings: AI --------------------------------------------------------------
'ai.title':'AI',
'ai.hint':
'Bruges to steder: at dele en opgave op i undertasks, og at skrive et kort overblik over det, der er udestående. Nøglen ligger på din server og sendes kun til den udbyder, du vælger her.',
'ai.provider':'Udbyder',
'ai.off':'Slået fra',
'ai.model':'Model',
'ai.baseURL':'Adresse',
'ai.apiKey':'API-nøgle',
'ai.save':'Gem',
'ai.saved':'Gemt.',
'ai.weekly':'Ugentligt overblik',
'ai.weeklyHint':'En kort note om, hvad der ser vigtigst ud lige nu.',
'push.unreadOne':'{n} ulæst.',
'push.unreadMany':'{n} ulæste.',
'ai.keyStored':'Der er gemt en nøgle — lad feltet stå tomt',
'ai.keyBlankHint':
'Feltet er tomt med vilje. Nøglen sendes aldrig tilbage til browseren — en indstillingsside, der fylder et kodeordsfelt ud igen, er en side, der en dag lækker en nøgle ud i et skærmbillede.',
'ai.keyNewHint':'Gemmes på serveren og vises aldrig igen.',
'tokens.lastUsed':'sidst brugt {when}',
'tokens.neverUsed':'aldrig brugt',
'tokens.expired':'udløbet {when}',
'tokens.expiresOn':'udløber {when}',
'tokens.revokeNamed':'Tilbagekald {name}',
// --- settings: people ----------------------------------------------------------
'users.invite':'Inviter en bruger',
'users.inviteHint':
'Der er ingen åben registrering. Du sender et link, og personen vælger selv navn og adgangskode — så er der ikke en adgangskode, to mennesker kender.',
'users.emailAddress':'E-mailadresse',
'users.emailPlaceholder':'navn@example.dk',
'users.mustBeEmail':'Skal være en e-mailadresse.',
'users.sendInvite':'Send invitation',
'users.inviteMade':'Invitationen er oprettet. Send linket til personen:',
'users.pending':'Afventer svar',
'users.pendingHint':
'Invitationer, der er sendt og ikke brugt endnu. Kun linkets hash er gemt, så det kan ikke vises igen — er det gået til den forkerte, så træk det tilbage.',
'users.revoke':'Træk tilbage',
'users.accounts':'Konti',
'users.accountsHint':'Alle på denne instans.',
'users.admin':'administrator',
'users.you':'dig',
'users.makeAdmin':'Gør til administrator',
'users.removeAdmin':'Fjern administrator',
'users.delete':'Slet',
'users.deleteQuestion':'Slet {name} <{email}> for altid?',
'users.deleteTakes':'Det sletter {projects} og {tasks} i dem.',
'users.deleteLeaves':'{tasks} i andres projekter bliver stående uden forfatter.',
'users.deleteFinal':'Det kan ikke fortrydes. Der er ingen papirkurv for konti.',
'users.revokeQuestion':
'Træk invitationen til {email} tilbage? Linket holder op med at virke.',
'users.projectOne':'projekt',
'users.projectMany':'projekter',
'users.taskOne':'opgave',
'users.taskMany':'opgaver',
'users.never':'aldrig set',
// --- settings: history and errors -----------------------------------------------
'history.title':'Historik',
'history.hint':
'Alt, der er blevet gjort på denne server, på tværs af alle projekter — også dem, du ikke selv er med i. Projekternes egne historik-paneler viser det samme, ét projekt ad gangen; det her er spørgsmålet, de ikke kan svare på. Rækkerne bliver stående, når en konto slettes: det, der blev gjort, holder op med at have et navn, ikke med at være sket.',
'history.person':'Person',
'history.all':'Alle',
'history.project':'Projekt',
'history.event':'Hændelse',
'history.clear':'Ryd',
'history.more':'Hent flere',
'history.loading':'Henter…',
'history.noMatch':'Ingen hændelser matcher de valgte filtre.',
'history.nothing':'Der er ikke registreret noget endnu.',
'history.deletedAccount':'En slettet konto',
'errors.title':'Serverfejl',
'errors.hint':
'Hver 500, API’et har svaret, med hvad handleren var i gang med og fejlen den ramte. Gemt i databasen, ikke kun i loggen — containerens log starter forfra ved hver genstart, så forklaringen er som regel væk, når nogen kigger. Ryddes efter 30 dage.',
'errors.none':'Ingen fejl registreret. Det er den rigtige tilstand.',
// --- the views -------------------------------------------------------------------
'view.delegated':'Venter på andre',
'view.delegatedEmpty':'Du venter ikke på nogen.',
'view.labelEmpty':'Ingen åbne opgaver med denne etiket.',
'view.filterEmpty':'Ingenting matcher lige nu.',
'view.filterFailed':'Filteret kunne ikke køres.',
'view.upcoming':'Kommende',
'view.mode':'Visning',
'view.list':'Liste',
'view.week':'Uge',
'view.month':'Måned',
'view.board':'Board',
'view.calendar':'Kalender',
'view.emptySection':'Tom',
'view.addSection':'+ Tilføj sektion',
'view.sectionName':'Sektionens navn',
'view.newSection':'Ny sektion',
'view.prevMonth':'Forrige måned',
'view.nextMonth':'Næste måned',
'view.prevWeek':'Forrige uge',
'view.nextWeek':'Næste uge',
'view.weekNumber':'uge {n}',
'view.more':'+{n} mere',
// --- how long ago ----------------------------------------------------------------
'when.justNow':'lige nu',
'when.minutes':'for {n} min. siden',
'when.hours':'for {n} timer siden',
'when.days':'for {n} dage siden',
'when.never':'aldrig',
'when.neverSignedIn':'aldrig logget ind',
// --- settings: data ---------------------------------------------------------------
'data.import':'Importér fra Todoist',
'data.csvFile':'CSV-fil',
'data.importing':'Importerer …',
'data.openProject':'Åbn projektet',
'data.trash':'Papirkurv',
'data.trashEmpty':'Papirkurven er tom.',
'data.restore':'Hent tilbage',
'data.backups':'Sikkerhedskopier',
'data.backupNow':'Tag en kopi nu',
'data.backingUp':'Kopierer…',
'data.backupMade':'Kopi taget — {size}',
'data.backupFailed':'mislykkedes',
'data.download':'Hent',
'data.noBackups':'Der er ikke taget nogen kopi endnu.',
'data.swept':'ryddet væk',
'data.empty':'tom',
'data.export':'Eksport',
'data.exportAccount':'Hele kontoen som JSON',
'data.exportOne':'Ét projekt',
'data.pickProject':'Vælg et projekt',
'data.csv':'CSV',
'data.ics':'Kalenderfil',
'data.templates':'Skabeloner',
'data.saveAsTemplate':'Gem et projekt som skabelon',
'data.templateName':'Navn på skabelonen',
'data.saveTemplate':'Gem som skabelon',
'data.noTemplates':'Ingen skabeloner endnu.',
'data.use':'Brug',
'data.delete':'Slet',
'data.newProjectName':'Navn på det nye projekt',
'data.startDate':'Startdato',
'data.startDateHint':'Dag nul for skabelonens datoer. Tom betyder i dag.',
'data.createProject':'Opret projektet',
// --- a group's own page ------------------------------------------------------------
'group.notFound':'Gruppen findes ikke, eller den er ikke din.',
'group.failed':'Gruppen kunne ikke hentes.',
'group.retry':'Prøv igen',
'group.about':'Om gruppen',
'group.aboutPlaceholder':'Hvad er det her for et stykke arbejde?',
'group.writeAbout':'Skriv hvad det her er for et stykke arbejde.',
'group.saving':'Gemmer…',
'group.projects':'Projekter',
'group.projectOne':'1 projekt',
'group.projectMany':'{n} projekter',
'group.noProjects':
'Ingen projekter i gruppen endnu. Træk et herop i sidebjælken, eller vælg gruppen, når du opretter et.',
'group.documents':'Dokumenter',
'group.documentsHint':
'Filer, der hører til hele gruppen frem for til én opgave i den — kontrakten, tegningen, den aftale alt det andet hviler på.',
'Vælg CSV-eksporten af ét projekt. Prioriteterne bliver konverteret, ikke kopieret: Todoist skriver 4 for det, grænsefladen kalder P1.',
'data.trashHint':
'Slettede projekter, med deres opgaver. De bliver hentet tilbage præcis som de var — bortset fra opgaver, du havde slettet hver for sig først; dem var der en grund til.',
'data.backupsHint':
'Databasen kopieres hver nat og de seneste fjorten gemmes. Kopierne er talt, ikke dateret: en container, der har stået slukket en måned, må ikke komme tilbage og slette dem alle for at være for gamle.',
'data.backupsAttachments':
'Vedhæftede filer er ikke med. De er indholdsadresserede og bliver kun lagt til, så fjorten ens kopier af dem ville fylde det drev op, de skulle beskytte — tag hele /data, hvis du vil have det hele.',
'data.restoreHint':
'At lægge en kopi tilbage er ikke en knap her, og det er med vilje: en database kan ikke skiftes ud under en server, der skriver i den, og en halvt gennemført udskiftning ødelægger netop det, den skulle redde. Stop containeren, læg filen i stedet for verdande.db i datamappen, slet -wal og -shm ved siden af, og start den igen.',
'data.exportHint':
'Alt, i den rå form. Det er garantien for, at du kan gå igen — en eksport, der er blevet pyntet, er en eksport, der har mistet noget.',
'data.templatesHint':
'Et projekt gemt som en form, der kan bruges igen. Datoerne i skabelonen er relative, så de bliver regnet ud fra den startdato, du vælger.',
'keys.navigation':'Navigation',
'keys.jumpToQuickAdd':'Hop til feltet “tilføj opgave”',
'keys.thisPage':'Denne side',
'keys.inQuickAdd':'I hurtig tilføjelse',
'keys.intoProject':'Læg opgaven i et projekt',
'keys.setLabel':'Sæt en etiket',
'keys.priority':'Prioritet',
'keys.date':'Dato — dansk og engelsk',
'keys.time':'Klokkeslæt',
'keys.clear':'Ryd feltet',
// --- signing in ------------------------------------------------------------------
'auth.firstAccount':'Opret den første konto. Den bliver administrator.',
'auth.name':'Navn',
'auth.nameRequired':'Skal udfyldes',
'auth.email':'E-mail',
'auth.emailInvalid':'Skal være en e-mailadresse',
'auth.password':'Adgangskode',
'auth.passwordHint':'Mindst 10 tegn. En sætning er både nemmere og stærkere.',
'auth.createAccount':'Opret konto',
'auth.totpPrompt':'Indtast koden fra din authenticator.',
'auth.code':'Kode',
'auth.totpRecovery':'Har du mistet din telefon, virker en af dine gendannelseskoder her.',
'auth.continue':'Fortsæt',
'auth.resetPrompt':'Vi sender et link til at vælge en ny adgangskode.',
'auth.sendLink':'Send link',
'auth.back':'Tilbage',
'auth.linkBroken':'Linket er ikke komplet. Åbn det fra e-mailen igen, eller bed om et nyt.',
'auth.toSignIn':'Til log ind',
'auth.signOut':'Log ud',
'auth.invited':'Du er inviteret. Vælg et navn og en adgangskode.',
'auth.pickNew':'Vælg en ny adgangskode.',
'auth.newPassword':'Ny adgangskode',
'auth.newPasswordHint':'Mindst 10 tegn. Alle andre enheder bliver logget ud.',
'auth.savePassword':'Gem adgangskoden',
'auth.passwordChanged':'Adgangskoden er skiftet. Log ind med den nye.',
'auth.resetSent':'Hvis adressen har en konto, er der et link på vej. Tjek også spamfilteret.',
'auth.signInPrompt':'Log ind for at fortsætte.',
'auth.signIn':'Log ind',
'auth.forgot':'Glemt adgangskode?',
// --- a task, opened ---------------------------------------------------------------
'detail.task':'Opgave',
'detail.close':'Luk',
'detail.text':'Opgavens tekst',
'detail.description':'Beskrivelse',
'detail.descriptionPlaceholder':'Detaljer, links, hvad der skal huskes',
'detail.priority':'Prioritet',
'detail.p1':'P1 — haster',
'detail.none':'Ingen',
'detail.due':'Forfalder',
'detail.labels':'Etiketter',
'detail.labelsPlaceholder':'adskilt af komma',
'detail.project':'Projekt',
'detail.repeats':'Gentages',
'detail.monthly':'Hver måned',
'detail.yearly':'Hvert år',
'detail.assignee':'Ansvarlig',
'detail.subtasks':'Undertasks',
'detail.addSubtask':'Tilføj en undertask',
'detail.newSubtask':'Ny undertask',
'detail.files':'Filer',
'detail.delete':'Slet',
'detail.reminders':'Påmindelser',
'detail.newReminder':'Ny påmindelse',
'detail.sent':'sendt',
'detail.add':'Tilføj',
'detail.comments':'Kommentarer',
'detail.writeComment':'Skriv en kommentar',
'detail.newComment':'Ny kommentar',
'detail.post':'Skriv',
'detail.readAs':'Læst som {what}',
'auth.alreadySignedIn':'Du er logget ind som {name}. Log ud først, og åbn så linket igen.',
'Stjernemarkér en mail, eller giv den en etiket, og den bliver en opgave. Envejs: at fjerne stjernen gør ikke noget ved opgaven.',
'int.connectGmail':'Forbind Gmail',
'int.fromEnv':
'Klienten er sat i miljøet (VERDANDE_GMAIL_CLIENT_ID), så den kan ikke ændres her. Det er med vilje: en værdi i runens manifest er en beslutning, der bliver anvendt igen ved hver genstart, og en formular, der kunne overskrive den, ville gøre manifestet til en løgn.',
'int.oauthClient':'OAuth-klient hos Google',
'int.registerHint':
'Registrér en klient i Google Cloud Console → APIs & Services → Credentials → OAuth client ID → Web application, slå Gmail API til, og indsæt de to værdier her. Din egen konto skal stå som testbruger, så længe appen ikke er verificeret hos Google.',
'int.redirectURI':'Godkendt redirect-URI',
'int.clientID':'Klient-id',
'int.clientSecret':'Klienthemmelighed',
'int.secretStored':'Gemt — udfyld kun for at skifte den',
'int.save':'Gem',
'int.saved':'Gemt.',
'int.noClient':
'Der er ikke registreret en OAuth-klient hos Google endnu. Det skal en administrator gøre, før knappen her kan bruges.',
'int.connectedAs':'Forbundet som',
'int.unknownAccount':'ukendt konto',
'int.whatMakesATask':'Hvad laver en opgave',
'int.starred':'Stjernemarkerede',
'int.aLabel':'En bestemt etiket',
'int.both':'Begge dele',
'int.gmailLabelName':'Etikettens navn i Gmail',
'int.gmailLabelExample':'fx Opgaver',
'int.fetchNow':'Hent nu',
'int.disconnect':'Afbryd',
'int.feed':'Kalenderfeed',
'int.feedHint':
'Abonnér i Apple Kalender, Google eller Thunderbird. En kalenderklient kan ikke logge ind, så nøglen i adressen er hele adgangskoden — del den ikke.',
'int.address':'Adresse',
'int.copy':'Kopiér',
'int.newLink':'Nyt link',
'int.newLinkHint':
'Et nyt link bryder alle eksisterende abonnementer med det samme. Det er pointen: det er det, man gør, når det gamle er havnet et forkert sted.',
'int.mailToTask':'Mail til opgave',
'int.mailHint':
'Send eller videresend en mail hertil, og emnelinjen bliver tolket som en hurtig tilføjelse — “Fakturer Anders p1 #Firma” virker også her.',
'int.noMailServer':
'Der er ingen mailserver sat op på denne server, så adressen herunder kan ikke modtage noget endnu. Sæt VERDANDE_SMTP_HOST og de øvrige SMTP-indstillinger, og få mailserveren til at aflevere post til todo+* videre til /inbound/mail.',
'int.yourAddress':'Din adresse',
'int.newAddress':'Ny adresse',
'int.caldav':'CalDAV',
'int.caldavHint':
'Tovejs, i modsætning til feedet ovenfor: Apple Påmindelser og Thunderbird kan også skrive tilbage.',
'int.server':'Server',
'int.caldavAuth':
'Brugernavn er din e-mail. Adgangskoden er en API-token — ikke din rigtige adgangskode.',
'int.gmailConnected':'Gmail er forbundet.',
'int.gmailState':
'Svaret fra Google passede ikke til det forsøg, der blev startet her. Prøv igen.',