Files
verdande/web/src/lib/locales/da.js
T
Kristian Wind 366bed3a15 Merge pull request #68 from kristianwind/ai-foreslaar-du-bestemmer
feat(ai): forslag, man siger ja til — indbakken og noternes opgaver
2026-09-08 15:06:21 +02:00

1033 lines
50 KiB
JavaScript
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.
/**
* Danish, and the source of truth.
*
* This is the language the app was written in and the one whose phrasing was
* argued over; `en.js` is a translation of it. A key missing from English falls
* through to here rather than to the key itself, because a Danish sentence in an
* English screen can be read and `settings.notifications.title` cannot.
*
* Keys are grouped by where they are read, not by what they say. Two screens that
* happen to use the word "Slet" get a key each: they are two decisions, and the
* day one of them needs to say "Fjern" instead, a shared key is a rewrite of both.
*
* `{name}` placeholders are filled by `t()`. They exist because word order is not
* a constant across languages — "3 tasks left" and "3 opgaver tilbage" happen to
* agree, "shared with me" and "delt med mig" do not.
*/
export const da = {
// --- the shell ---------------------------------------------------------------
'notes.shareWith': 'Læg i projekt',
'notes.private': 'Intet projekt',
'notes.shared': 'Noten er delt med projektets folk.',
'notes.unshared': 'Noten er din igen.',
// Deling med enkeltpersoner, ved siden af projektet.
'notes.groupSharedWithMe': 'Delt med mig',
// Klokken: hvad andre har gjort, som man skal vide. Sætningen skrives i fladen
// og ikke på serveren, så en engelsk flade også får en engelsk klokke.
'notif.title': 'Beskeder',
'notif.titleWithCount': 'Beskeder ({n} ulæste)',
'notif.empty': 'Ingen beskeder.',
'notif.markAllRead': 'Markér alle som læst',
'notif.assigned': '{name} gav dig en opgave',
'notif.noteChanged': '{name} rettede en note',
'notif.noteShared': '{name} delte en note med dig',
'notif.mention': '{name} nævnte dig i en note',
'notif.comment': '{name} kommenterede',
'notif.justNow': 'lige nu',
'notif.minutes': '{n} min. siden',
'notif.hours': '{n} t. siden',
'notes.linkOpen': 'Åbn',
'notes.linkMissing': 'Noten findes ikke, eller den er ikke delt med dig.',
'notes.sharedBy': 'Delt af {name}',
'notes.sharePeople': 'Del med personer',
'notes.sharePick': 'Vælg en person …',
'notes.shareButton': 'Del',
'notes.shareAdd': 'Tilføj',
'notes.shareRoleViewer': 'Kan læse',
'notes.shareRoleEditor': 'Kan rette',
'notes.shareRemove': 'Fjern adgang',
'notes.shareNobody': 'Ikke delt med nogen endnu.',
'notes.sharedToast': 'Delt med {name}.',
'notes.sharedWithFollowers': 'Delt med {name} — og de {count} noter, den peger på.',
'notes.shareFollows': 'Følger med:',
'notes.shareVia': 'følger med “{note}”',
'notes.unsharedPerson': '{name} kan ikke længere se noten.',
// Deling med en adresse. Ordene skal kunne bære begge udfald — en deling nu
// eller en invitation, der venter — uden at love det ene.
'notes.shareByEmail': 'Del med en e-mailadresse',
'notes.shareEmailPlaceholder': 'navn@eksempel.dk',
'notes.shareRole': 'Rolle',
'notes.shareInvite': 'Inviter',
'notes.invited': 'Invitationen er sendt til {email}.',
'notes.invitePending': 'inviteret',
'notes.inviteRevoke': 'Træk invitationen tilbage',
'notes.inviteRevoked': 'Invitationen til {email} er trukket tilbage.',
'notes.inviteNoMail': 'Instansen kan ikke sende post. Giv linket videre selv:',
// Omtale. `@Navn` i en note deler den med den, der bliver nævnt — sagt her,
// fordi det sker uden at nogen åbner delepanelet.
'notes.syntaxPerson': 'en person',
'notes.mentionShared': 'Noten er delt med {names}, fordi du nævnte dem.',
'notes.shareOwnerOnly': 'Kun ejeren kan dele noten.',
'notes.save': 'Gem',
'notes.format': 'Formatér',
'notes.bold': 'Fed',
'notes.italic': 'Kursiv',
'notes.underline': 'Understreget',
'notes.sortBy': 'Rækkefølge',
'notes.sortUpdated': 'Senest rørt',
'notes.sortCreated': 'Oprettet',
'notes.sortTitle': 'Navn',
// AI'ens forslag. Ordene skal gøre det klart, at der bliver foreslået og ikke
// rettet: den, der siger ja, er den, der bestemmer.
'ai.tidyInbox': 'Ryd op i indbakken',
'ai.tidyTitle': 'Forslag til indbakken',
'ai.tidyHint':
'Sådan kunne linjerne have set ud, hvis de var skrevet færdig. Ret i dem, du vil rette i — der sker først noget, når du siger ja.',
'ai.findActions': 'Find opgaver i noten',
'ai.actionsTitle': 'Opgaver i noten',
'ai.actionsHint':
'Det, nogen har lovet eller er blevet bedt om i teksten. Citatet under hver linje er de ord, den kom fra.',
'ai.thinking': 'Læser …',
'ai.nothingToSuggest': 'Der er ikke noget at foreslå.',
'ai.accept': 'Tilføj',
'ai.skip': 'Nej tak',
'ai.applied': 'Gjort.',
'ai.allDone': 'Ikke mere at tage stilling til.',
'beacon.title': 'Tælling af installationer',
'beacon.hint': 'Én gang i døgnet melder denne installation, at den findes, så projektet kan se hvor mange der bruger det. Der sendes kun de to værdier herunder — et tilfældigt id og versionen — og intet andet: ingen IP bliver gemt, ingen navne, ingen adresser, intet om hvad du bruger det til. Slået til som udgangspunkt, og du kan slå den fra her.',
'beacon.send': 'Send en anonym daglig melding',
'beacon.exactly': 'Præcis det her — ikke mere:',
'beacon.lastPing': 'Sidst sendt: {when}',
'beacon.collector': 'Modtagerens adresse',
'beacon.collectorHint': 'Hvor meldingen sendes hen. Lad den stå, medmindre du kører din egen tæller.',
'beacon.beCollector': 'Denne instans er tælleren',
'beacon.receiving': 'Modtager anonyme meldinger — id og version, aldrig en IP.',
'beacon.total': 'I alt',
'beacon.active7': 'Aktive 7 dage',
'beacon.active30': 'Aktive 30 dage',
'beacon.byVersion': 'Efter version (30 dage):',
// Beskeden, der bliver sagt uopfordret første gang. Værdierne står i den, ikke
// ordet 'anonymt': et løfte om telemetri er præcis så meget værd som
// læserens mulighed for at efterprøve det.
'beacon.noticeTitle': 'Denne installation melder, at den findes',
'beacon.noticeBody':
'Én gang i døgnet sender Verdande to værdier til projektet, så det kan ses, hvor mange installationer der er. Præcis de her to — intet andet, ingen IP bliver gemt, intet om hvad du bruger det til:',
'beacon.noticeTo': 'Sendes til {url}',
'beacon.noticeKeep': 'Behold den',
'beacon.noticeStop': 'Slå den fra',
'beacon.noticeMore': 'Læs mere',
'beacon.noticeKept': 'Tak. Du kan altid slå den fra under Indstillinger → Data.',
'beacon.noticeStopped': 'Meldingen er slået fra. Der bliver ikke sendt noget.',
'beacon.lastError': 'Sidste forsøg nåede ikke frem ({when}): {why}',
'beacon.publishMin': 'Offentliggør først fra',
'beacon.publishMinHint':
'Under det tal svares der ingenting. Et lille tal fortæller mest om, hvor lidt der skal til at flytte det — og et, der falder, ville blive læst som “færre bruger det nu”, også når det var en udrulning, der gik galt.',
'beacon.publish': 'Offentliggør tallet på /api/v1/beacon/count',
'beacon.publishHint': 'Uden login, mellemlagret et minut. Viser installationer set de seneste 30 dage — ikke et løbende total, som kun ville stige.',
'notes.newHere': 'Ny note',
'notes.noneInProject': 'Ingen noter endnu. En note, der nævner #projektet, dukker også op her.',
'notes.clearSearch': 'Ryd søgningen',
'notes.found': '{count} noter',
'notes.picked': '{count} markeret',
'notes.archive': 'Arkivér',
'notes.unarchive': 'Tag frem igen',
'notes.clearPick': 'Ryd markering',
'notes.showArchive': 'Vis arkivet',
'notes.deleteMany': 'Slet {count} noter?',
'notes.archiveOne': 'Arkivér noten',
'notes.emptyArchive': 'Arkivet er tomt.',
'notes.copyCode': 'Kopiér',
'notes.copied': 'Kopieret',
'notes.copyFailed': 'Kunne ikke kopiere',
'notes.strike': 'Gennemstreget',
'notes.code': 'Kode',
'notes.showSource': 'Vis kilden (Markdown)',
'notes.source': 'Notens kildetekst',
'notes.styleTitle': 'Titel',
'notes.styleHeading': 'Overskrift',
'notes.styleSubheading': 'Underrubrik',
'notes.styleBody': 'Brødtekst',
'notes.styleMono': 'Monotype',
'notes.styleQuote': 'Blokcitat',
'notes.styleBullet': 'Punktliste',
'notes.styleNumbered': 'Nummereret liste',
'notes.favourite': 'Gør til favorit',
'notes.unfavourite': 'Fjern som favorit',
'notes.syntaxProject': 'projekt',
'notes.syntaxNote': 'en anden note',
'notes.yesterday': 'i går',
'notes.groupFavourites': 'Favoritter',
'notes.groupToday': 'I dag',
'notes.groupYesterday': 'I går',
'notes.groupWeek': 'Denne uge',
'notes.groupUnknown': 'Uden dato',
'notes.title': 'Noter',
'notes.new': 'Ny note',
'notes.search': 'Søg i noter',
'notes.body': 'Notens tekst',
'notes.placeholder': 'Skriv. #projekt og [[en anden note]] bliver til henvisninger.',
'notes.untitled': 'Uden titel',
'notes.noneYet': 'Ingen noter endnu.',
'notes.noneFound': 'Ingen noter matcher.',
'notes.pickOne': 'Vælg en note, eller lav en ny.',
'notes.saving': 'Gemmer …',
'notes.saved': 'Gemt',
'notes.delete': 'Slet',
'notes.deleteNote': 'Slet "{name}"? Den kan hentes tilbage fra papirkurven.',
'palette.project': 'Projekt',
'palette.task': 'Opgave',
'palette.note': 'Note',
'nav.today': 'I dag',
'nav.upcoming': 'Kommende',
'nav.delegated': 'Venter på andre',
'nav.inbox': 'Indbakke',
'nav.calendar': 'Kalender',
'nav.settings': 'Indstillinger',
'nav.signOut': 'Log ud',
'nav.signOutConfirm': 'Tryk igen for at logge ud',
'nav.main': 'Hovedmenu',
'nav.search': 'Søg',
'nav.searchLong': 'Søg i opgaver og projekter',
'nav.noResults': 'Ingen resultater.',
'nav.showSidebar': 'Vis sidebjælken',
'nav.hideSidebar': 'Skjul sidebjælken',
'nav.showMenu': 'Vis menu',
'nav.sidebarWidth': 'Bredde på sidebjælken',
'nav.toggleTheme': 'Skift mellem lyst og mørkt tema',
'nav.offline': 'Offline',
'nav.offlineHint': 'Ændringer fra andre vises ikke lige nu',
'net.reconnecting': 'Genopretter forbindelse…',
'net.offline': 'Ingen forbindelse',
'nav.doItToday': 'Gør det i dag',
// --- the sidebar's own sections ------------------------------------------------
'sidebar.projects': 'Projekter',
'sidebar.shared': 'Delt med mig',
'sidebar.filters': 'Filtre',
'sidebar.labels': 'Etiketter',
'sidebar.newProject': 'Nyt projekt',
'sidebar.newGroup': 'Ny gruppe',
'sidebar.projectName': 'Projektnavn',
'sidebar.groupName': 'Gruppens navn',
'sidebar.noProjects': 'Ingen projekter endnu.',
'sidebar.emptyGroup': 'Tom — træk et projekt herop.',
'sidebar.rename': 'Omdøb',
'sidebar.delete': 'Slet',
'sidebar.fold': 'Fold {name} sammen',
'sidebar.unfold': 'Fold {name} ud',
'sidebar.deleteGroup': 'Slet gruppen "{name}"?',
'sidebar.deleteGroupOne': 'Projektet i den bliver, men ligger bagefter uden gruppe.',
'sidebar.deleteGroupMany': 'De {n} projekter bliver, men ligger bagefter uden gruppe.',
// --- a task in a list ----------------------------------------------------------
'task.add': 'Tilføj',
'task.new': 'Ny opgave',
'task.syntaxProject': 'projekt',
'task.syntaxSection': 'sektion',
'task.syntaxLabel': 'etiket',
'task.syntaxPriority': 'prioritet',
'task.syntaxDateMark': 'i morgen kl 10',
'task.syntaxDate': 'forfalder',
'task.placeholder': 'Tilføj en opgave — prøv “betal moms i morgen kl 10 p1 #Firma”',
'task.complete': 'Markér som færdig',
'task.reopen': 'Genåbn opgave',
'task.today': 'I dag',
'task.tomorrow': 'I morgen',
'task.yesterday': 'I går',
'task.overdue': '{n} dage forsinket',
'task.repeats': 'Gentages {rule}',
'repeat.weekdays': 'hverdage',
'repeat.weekends': 'hver weekend',
'repeat.and': 'og',
'repeat.everyDay': 'hver {day}',
'repeat.everyNthWeekOn': 'hver {n}. uge {day}',
'repeat.everyOtherWeekOn': 'hver anden uge {day}',
'repeat.monthlyOn': 'den {day}. hver måned',
'repeat.every.day': 'hver dag',
'repeat.every.week': 'hver uge',
'repeat.every.month': 'hver måned',
'repeat.every.year': 'hvert år',
'repeat.everyOther.day': 'hver anden dag',
'repeat.everyOther.week': 'hver anden uge',
'repeat.everyOther.month': 'hver anden måned',
'repeat.everyOther.year': 'hvert andet år',
'repeat.everyN.day': 'hver {n}. dag',
'repeat.everyN.week': 'hver {n}. uge',
'repeat.everyN.month': 'hver {n}. måned',
'repeat.everyN.year': 'hvert {n}. år',
'task.assignee': 'Ansvarlig: {name}',
'task.delegatedTo': 'Uddelegeret til {name}',
'task.subtasks': '{done} af {total} undertasks er lukket',
'task.attachments': '{n} vedhæftet',
'task.priority': 'Prioritet {n}',
'task.noPriority': 'Ingen prioritet',
// --- a project group -----------------------------------------------------------
'group.colorOf': 'Farve på {name}',
// --- settings: the frame -------------------------------------------------------
'settings.title': 'Indstillinger',
'settings.tab.account': 'Konto',
'settings.tab.notifications': 'Notifikationer',
'settings.tab.integrations': 'Integrationer',
'settings.tab.ai': 'AI',
'settings.tab.tokens': 'API-tokens',
'settings.tab.users': 'Brugere',
'settings.tab.history': 'Historik',
'settings.tab.errors': 'Fejl',
'settings.tab.data': 'Data og skabeloner',
// --- settings: the account -----------------------------------------------------
'account.profile': 'Profil',
'account.profileHint':
'Tidszonen er ikke pynt: alle datoer i appen bliver afgjort i den, så “i morgen kl. 9” betyder noget andet, når du skifter den.',
'account.name': 'Navn',
'account.email': 'E-mail',
'account.emailFixed': 'Kan ikke ændres her.',
'account.timezone': 'Tidszone',
'account.parseLanguage': 'Sprog',
'account.danish': 'Dansk',
'account.english': 'English',
'account.parseHint':
'Både fladens sprog og den grammatik, hurtig tilføjelse tolker en linje med — “hver mandag” eller “every monday”.',
'account.save': 'Gem',
'account.saved': 'Gemt.',
'account.appearance': 'Udseende',
'account.appearanceHint':
'Gemmes i denne browser. Det er en egenskab ved den skærm, du sidder ved — en bærbar i solen og en skærm i et mørkt rum vil have hvert sit svar.',
'account.look': 'Udseende',
'account.lookHint': 'Temaet siger hvor lyst. Det her siger hvordan det læses — skrift, luft og hjørner. De to kan kombineres frit.',
'account.sizes': 'Skriftstørrelse',
'account.sizesHint': 'Menuen og brødteksten kan sættes hver for sig — den ene er et blik ned over en liste, den anden en tekst, man læser.',
'account.menuSize': 'Menu',
'account.textSize': 'Brødtekst',
'size.small': 'Lille',
'size.default': 'Standard',
'size.large': 'Stor',
'size.xl': 'Størst',
'look.verdande': 'Verdande',
'look.verdandeNote': 'Som du kender den.',
'look.rolig': 'Rolig',
'look.roligNote': 'Serif, mere luft. Til at læse og skrive i.',
'look.taet': 'Tæt',
'look.taetNote': 'Flere rækker på skærmen, mindre luft.',
'look.terminal': 'Terminal',
'look.terminalNote': 'Én bredde til det hele. Alt flugter.',
'account.password': 'Adgangskode',
'account.passwordHint':
'At skifte den logger alle andre sessioner ud — hvilket for det meste er grunden til at gøre det.',
'account.currentPassword': 'Nuværende adgangskode',
'account.newPassword': 'Ny adgangskode',
'account.changePassword': 'Skift adgangskode',
'account.passwordChanged': 'Skiftet.',
'account.totp': 'To-faktor',
'account.totpHint': 'En engangskode fra en authenticator-app oven i adgangskoden.',
'account.writeThemDown': 'Skriv dem ned nu.',
'account.recoveryHint': 'De vises kun denne ene gang — serveren har kun deres hash.',
'account.gotThem': 'Jeg har dem',
'account.passwordRequired':
'Kræves til begge handlinger nedenfor. At slå to-faktor fra er præcis det, en fremmed med din session ville gøre først.',
'account.newRecoveryCodes': 'Nye gendannelseskoder',
'account.totpOff': 'Slå to-faktor fra',
'account.scanHint': 'Scan i din authenticator-app, eller indtast nøglen manuelt.',
'account.codeFromApp': 'Koden fra appen',
'account.totpProofHint':
'To-faktor er først slået til, når en kode har bevist, at appen faktisk har nøglen.',
'account.confirm': 'Bekræft',
'account.cancel': 'Fortryd',
'account.totpOn': 'Slå to-faktor til',
'account.devices': 'Enheder',
'account.devicesHint':
'Hvor du er logget ind. Genkender du ikke en af dem, så log den ud og skift adgangskode.',
'account.thisDevice': 'denne enhed',
'account.signOutDevice': 'Log ud',
'account.support': 'Støt projektet',
'account.supportHint':
'verdande er fri, open source-software under MIT-licensen — ingen betalt version, intet holdt tilbage. Sparede den dig en eftermiddag, kan du give vedligeholderen en kop kaffe. Helt frivilligt, og intet i appen ændrer sig.',
'account.buyCoffee': 'Buy me a coffee',
'account.totpEnabled': 'Slået til.',
'account.recoveryLeftOne': '{n} gendannelseskode tilbage.',
'account.recoveryLeftMany': '{n} gendannelseskoder tilbage.',
// --- settings: notifications ---------------------------------------------------
'push.title': 'Notifikationer på enheden',
'push.hint':
'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.test': 'Send en prøve',
'push.testing': 'Sender …',
'push.testTitle': 'Prøve fra verdande',
'push.testBody': 'Kom den frem, virker notifikationer på denne enhed.',
'push.testSent': 'Sendt til {n} enhed(er). Kom den ikke frem, er det browseren eller styresystemet, der holder den tilbage — se om verdande må sende notifikationer.',
'push.testNone': 'Ingen enheder er tilmeldt endnu. Slå notifikationer til her på enheden først.',
'push.testFailed': '{service} afviste den: {reason}',
'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',
'users.toProject': 'til {name}',
'users.toInstance': 'til instansen',
'users.invitedBy': 'inviteret af {name}',
// --- 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',
// Hvad hver hændelse i loggen hedder. Nøglerne er serverens og ligger i
// events.js; her står de ord, de bliver til.
'event.projectCreated': 'oprettede projektet',
'event.projectUpdated': 'ændrede projektet',
'event.projectDeleted': 'slettede projektet',
'event.projectImported': 'importerede projektet',
'event.sectionCreated': 'oprettede en sektion',
'event.sectionUpdated': 'ændrede en sektion',
'event.sectionDeleted': 'slettede en sektion',
'event.memberInvited': 'inviterede',
'event.memberAdded': 'tilføjede',
'event.memberRemoved': 'fjernede',
'event.memberRoleChanged': 'ændrede rollen for',
'event.taskCreated': 'oprettede en opgave',
'event.taskUpdated': 'ændrede en opgave',
'event.taskCompleted': 'lukkede en opgave',
'event.taskReopened': 'genåbnede en opgave',
'event.taskMoved': 'flyttede en opgave',
'event.taskDeleted': 'slettede en opgave',
'event.taskSplit': 'delte en opgave op',
'event.commentCreated': 'skrev en kommentar',
'event.attachmentAdded': 'vedhæftede en fil',
'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.horizon': 'Periode',
'view.days': '{n} dage',
'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.doneHint': 'Alt du har lukket, nyeste først. Lukkede du noget ved en fejl, ligger det her — og kan åbnes igen.',
'data.openDone': 'Åbn færdige opgaver',
'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.importNotes': 'Importér noter (zip med Markdown-filer)',
'data.importNotesHint': 'Én .md-fil pr. note; første linje bliver titlen. Billeder, der ligger ved siden af, følger med og bliver hængt på noten. Scriptet i tools/ henter dine Apple Noter ud.',
'data.notesImported': '{n} noter og {files} filer hentet ind.',
'data.exportNotes': 'Alle noter som Markdown-filer',
'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å.',
'group.remove': 'Fjern',
'group.removeNamed': 'Fjern {name}',
'group.removeQuestion': 'Fjern "{name}"?',
'group.addFile': '+ Læg en fil op',
'group.uploading': 'Lægger op…',
// --- keyboard shortcuts --------------------------------------------------------------
'keys.title': 'Genveje',
'data.importHint':
'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.backupsSecrets':
'Tokens og kodeord til postkasser ligger krypteret i kopien, og nøglen gør ikke: den ligger i en fil ved siden af databasen. Det er meningen — en kopi, der kommer på afveje, åbner ikke din mail. Men gendanner du en kopi et sted uden den fil, skal postkasserne forbindes forfra.',
'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.foldSidebar': 'fold sidebjælken væk',
'keys.anyLetter': 'et bogstav',
'keys.typeToCapture': 'begynder en opgave, med bogstavet i feltet',
'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.notFound': 'Opgaven findes ikke, eller den er ikke din.',
'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.dueTime': 'Klokkeslæt',
'detail.duration': 'Længde i minutter',
'detail.snooze': 'Slumre',
'detail.wake': 'Væk nu',
'detail.thisEvening': 'I aften',
'detail.tomorrow': 'I morgen',
'detail.nextWeek': 'Næste uge',
'detail.snoozeCustom': 'Vælg tidspunkt',
'task.snoozedUntil': 'Slumret til {when}',
'detail.durationShort': 'min',
'detail.labels': 'Etiketter',
'detail.labelsPlaceholder': 'adskilt af komma',
'detail.project': 'Projekt',
'detail.repeats': 'Gentages',
'detail.never': 'Aldrig',
'detail.daily': 'Hver dag',
'detail.weekly': 'Hver uge',
'detail.fortnightly': 'Hver anden uge',
'detail.monthly': 'Hver måned',
'detail.yearly': 'Hvert år',
'detail.asWritten': 'Som skrevet',
'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.',
'detail.reopen': 'Genåbn',
'detail.uploading': 'Lægger op …',
'detail.attachFile': 'Vedhæft en fil',
// --- settings: integrations --------------------------------------------------------
'int.mailboxes': 'Postkasser',
'int.mailboxesHint':
'Flag en mail i iCloud, Fastmail eller enhver anden udbyder, og den bliver en opgave — flaget fjernes, når opgaven er oprettet. Kun én vej: gør du selv noget ved mailen bagefter, sker der ikke noget med opgaven. Office 365 kan ikke bruges her — Microsoft har lukket for kodeord på IMAP.',
'int.addMailbox': 'Tilføj en postkasse',
'int.host': 'IMAP-server',
'int.username': 'Brugernavn',
'int.appPassword': 'App-kodeord',
'int.appPasswordHint':
'Ikke dit almindelige kodeord. iCloud og de fleste andre laver et særskilt et til programmer, som du kan trække tilbage alene. Det gemmes krypteret.',
'int.connect': 'Forbind',
'int.connecting': 'Forbinder …',
'int.disconnect': 'Kobl fra',
'int.disconnectMailbox': 'Kobl {name} fra? Opgaverne, den har lavet, bliver.',
'int.mailboxConnected': 'Postkassen er forbundet.',
'int.fetchNow': 'Hent nu',
'int.fetching': 'Henter …',
'int.gmail': 'Gmail',
'int.gmailHint':
'Stjernemarkér en mail, eller giv den en etiket, og den bliver en opgave — stjernen fjernes så (en etiket bliver, hvor den er). Det du selv gør ved mailen bagefter, ændrer ikke 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, og indsæt de to værdier her. Den samme klient bruges til både Gmail og Google Kalender: slå det API til, du skal bruge, og tilføj begge redirect-URI\'er — den nedenfor og kalenderens, som står i panelet Google Kalender. 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',
// Krogen ind i indbakken: en URL, et andet program kan skubbe en opgave til.
'int.hookToTask': 'Skub fra andre programmer',
'int.hookHint':
'En adresse, andre programmer kan sende en opgave til — en genvej på telefonen, et script, en tjeneste, der kan kalde en URL. Linjen læses som i feltet øverst i fladen, så “i morgen”, “p1” og “#Projekt” betyder det samme her.',
'int.yourHook': 'Din adresse',
'int.hookHow':
'Send en POST med teksten som krop — ren tekst, JSON med et {text}-felt, eller et formularfelt. Første linje bliver opgaven, resten står under den. Adressen er en nøgle: den, der har den, kan lægge opgaver i din indbakke og ikke andet.',
'int.hookExample': 'Sådan ser det ud',
'int.newHook': 'Ny adresse',
'int.newHookQuestion':
'Vil du have en ny adresse? Den gamle holder op med at virke med det samme, og alt, der bruger den, skal rettes.',
'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.calendar': 'Google Kalender',
'int.calendarHint':
'Læses, aldrig skrives. Begivenhederne vises i Kalender ved siden af dine egne opgaver med forfaldsdato — de kan ikke flyttes eller lukkes herfra, for de hører til i Google.',
'int.connectCalendar': 'Forbind Google Kalender',
'int.calendarConnectedAs': 'Forbundet som',
'int.calendarSameClient':
'Bruger den samme OAuth-klient som Gmail ovenfor. Google Calendar API skal være slået til, og denne adresse skal stå som godkendt redirect-URI.',
'int.whichCalendars': 'Hvilke kalendere vises',
'int.noCalendars': 'Kontoen har ingen kalendere at vise.',
'int.subscriptions': 'Abonnementer',
'int.subscriptionsHint': 'En kalender, du kun har en adresse til — helligdage, en klub, en fælleskalender fra arbejdet. Den hentes hvert kvarter og er skrivebeskyttet. webcal://-adresser virker; de er https med et andet skema foran.',
'int.subscriptionURL': 'Kalenderens adresse',
'int.subscribe': 'Abonnér',
'int.subscribing': 'Henter …',
'int.unsubscribe': 'Fjern',
'int.unsubscribeQuestion': 'Fjern abonnementet på "{name}"? Begivenhederne forsvinder fra kalenderen.',
'int.calendarLastSync': 'Sidst hentet {when}.',
'int.calendarNeverSynced': 'Ikke hentet endnu.',
'int.calendarFetchedOne': '{n} begivenhed hentet.',
'int.calendarFetchedMany': '{n} begivenheder hentet.',
'int.calendarNothingNew': 'Ingen begivenheder i vinduet.',
'int.calendarConnected': 'Google Kalender er forbundet.',
'int.calendarState':
'Svaret fra Google passede ikke til det forsøg, der blev startet her. Prøv igen.',
'int.calendarExpired': 'Forsøget udløb undervejs. Prøv igen.',
'int.calendarInvalid': 'Svaret fra Google kunne ikke læses. Prøv igen.',
'int.calendarFailed': 'Google afviste ombytningen af koden.',
'int.calendarNoRefresh':
'Google sendte ingen refresh-token. Fjern verdande under din Google-konto og forbind igen.',
'int.calendarDenied': 'Adgangen blev afvist hos Google.',
'int.calendarOrgInternal':
'Google-appen er registreret som Internal og tager kun imod konti i organisationen. En privat konto kan ikke godkende den, uanset hvad der står på skærmen.',
'int.calendarOther': 'Google svarede: {what}',
'int.gmailFetchedOne': '{n} opgave hentet.',
'int.gmailFetchedMany': '{n} opgaver hentet.',
'int.gmailNothingNew': 'Ingen nye beskeder.',
'int.gmailConnected': 'Gmail er forbundet.',
'int.gmailState':
'Svaret fra Google passede ikke til det forsøg, der blev startet her. Prøv igen.',
'int.gmailExpired': 'Forsøget udløb undervejs. Prøv igen.',
'int.gmailInvalid': 'Svaret fra Google kunne ikke læses. Prøv igen.',
'int.gmailFailed': 'Google afviste ombytningen af koden.',
'int.gmailNoRefresh':
'Google sendte ingen refresh-token. Fjern verdande under din Google-konto og forbind igen.',
'int.gmailDenied': 'Adgangen blev afvist hos Google.',
'int.gmailOther': 'Gmail svarede: {what}',
// --- kalenderen, med Googles begivenheder lagt over ---------------------------------
'cal.title': 'Kalender',
'cal.notConnected':
'Ingen kalender er forbundet endnu. Det gøres under Indstillinger → Integrationer.',
'cal.settings': 'Indstillinger',
'cal.noneChosen': 'Ingen af kontoens kalendere er valgt endnu.',
'cal.allDay': 'Hele dagen',
'cal.resize': 'Træk for at ændre længden',
'cal.openInGoogle': 'Åbn i Google Kalender',
'cal.beyondWindow':
'Begivenheder gemmes fra {from} til {to}. Uden for det viser gitteret kun dine egne opgaver.',
'cal.eventCannotMove': '{name} — en begivenhed i {calendar}. Den kan ikke flyttes herfra.',
// --- a project ----------------------------------------------------------------------
'project.name': 'Projektets navn',
'project.clickToRename': 'Klik for at omdøbe',
'project.color': 'Farve på projektet',
'project.pickColor': 'Vælg farve',
'project.delete': 'Slet projektet',
'project.share': 'Del',
'project.history': 'Historik',
'project.noHistory': 'Ingenting er sket her endnu.',
'project.canEdit': 'Kan redigere',
'project.canView': 'Kan kun se',
'project.invite': 'Inviter',
'project.inviteByEmail': 'Inviter via e-mail',
'project.emailAddress': 'e-mailadresse',
'project.role': 'Rolle',
'project.sendLinkYourself': 'Ingen mailserver sat op — send selv linket:',
'project.noSection': 'Uden sektion',
'project.rename': 'Omdøb',
'project.deleteSection': 'Slet',
'project.readOnly': 'Du kan se dette projekt, men ikke ændre det.',
'project.notFound': 'Projektet findes ikke, eller du har ikke adgang til det.',
'project.loadFailed': 'Kunne ikke hente projektet. Serveren svarede ikke.',
'project.retry': 'Prøv igen',
'project.nothingHere': 'Ingenting her endnu.',
'project.sharedWith': 'Delt · {n}',
// --- the palette ---------------------------------------------------------------
'color.graphite': 'Grafit',
'color.tomato': 'Tomat',
'color.amber': 'Rav',
'color.lime': 'Lime',
'color.green': 'Grøn',
'color.teal': 'Petrol',
'color.blue': 'Blå',
'color.indigo': 'Indigo',
'color.violet': 'Violet',
'color.magenta': 'Magenta',
// --- what a failed request says -----------------------------------------------
'error.unauthorized': 'Forkert e-mail eller adgangskode.',
'error.totpRequired': 'Indtast koden fra din authenticator.',
'error.forbidden': 'Det har du ikke adgang til.',
'error.notFound': 'Findes ikke.',
'error.conflict': 'Det er der allerede.',
'error.rateLimited': 'For mange forsøg. Vent et øjeblik.',
'error.validation': 'Tjek felterne herunder.',
'error.tooLarge': 'Det er for stort.',
'error.internal': 'Noget gik galt. Prøv igen.',
'error.badRequest': 'Anmodningen kunne ikke læses.',
'error.offline': 'Ingen forbindelse til serveren.',
'error.gmailNotConfigured':
'Gmail er ikke sat op på denne server. En administrator skal registrere en OAuth-klient hos Google under Indstillinger → Integrationer.',
'error.aiNotConfigured': 'Der er ikke valgt en AI-udbyder. Sæt den op under Indstillinger → AI.',
'error.totpNotEnabled': 'To-faktor er ikke slået til.',
'error.inboxProtected': 'Indbakken kan ikke slettes.',
'error.lastAdmin':
'Det er den sidste administrator. Gør en anden til administrator først — ellers er der ingen, der kan komme ind på denne side igen.',
// --- the themes -------------------------------------------------------------------
'theme.dark': 'Nordlys',
'theme.darkNote': 'Mørk med grøn accent.',
'theme.charcoal': 'Kul',
'theme.charcoalNote': 'Neutral mørkegrå.',
'theme.dusk': 'Skumring',
'theme.duskNote': 'Mørk og varm, med rav.',
'theme.light': 'Dagslys',
'theme.lightNote': 'Lys og køligt neutral.',
'theme.paper': 'Papir',
'theme.paperNote': 'Lys og varm, som papir.',
'theme.contrast': 'Kontrast',
'theme.contrastNote': 'Sort på hvidt, til skarpt lys.',
// --- push, in the browser's own words ----------------------------------------------
'push.deniedByBrowser':
'Browseren har blokeret notifikationer for dette site. Det skal slås til i browserens indstillinger.',
'push.notEnabled': 'Notifikationer blev ikke slået til.',
'push.noVapidKey': 'Serveren har ingen VAPID-nøgle.',
'view.done': 'Færdige',
'view.showDone': 'Vis færdige',
'view.hideDone': 'Skjul færdige',
'task.moveFailed': 'Kunne ikke flytte opgaven.',
'push.updatesOff': 'Der bliver ikke set efter opdateringer.',
'push.updateOut': '{version} er ude.',
'push.upToDate': 'Ingen nyere version fundet.',
'view.nothingMoreToday': 'Ikke mere i dag.',
'view.overdue': 'Forsinket',
'project.roleFor': 'Rolle for {name}',
'project.more': 'Flere handlinger',
'project.removeMember': 'Fjern {name}',
'nav.closeMenu': 'Luk menu',
'view.addTask': '+ Tilføj opgave',
'view.addTaskHere': 'Skriv en opgave — dato, p1 og @etiket virker her også',
'view.addTaskIn': 'Ny opgave i {name}',
'task.completedUndo': '“{what}” er lukket.',
'task.undo': 'Fortryd',
'done.title': 'Færdige',
'done.hint': 'Alt du har lukket, nyeste først. Klik cirklen for at åbne en igen.',
'done.empty': 'Du har ikke lukket noget endnu.',
'done.unknownDay': 'Uden dato',
// --- passkeys ----------------------------------------------------------------------
'passkey.title': 'Passkeys',
'passkey.hint':
'En nøgle på en enhed i stedet for en hemmelighed i et hoved. Den private halvdel forlader aldrig enheden, og signaturen er bundet til adressen — så en overbevisende kopi af login-siden et andet sted får ingenting.',
'passkey.unsupported': 'Denne browser understøtter ikke passkeys.',
'passkey.notAccepted':
'Nøglen blev ikke godtaget. Sker det for en nøgle, der virkede før, er adressen typisk skiftet — en passkey hører til præcis den adresse, den blev lavet på, skema og alt.',
'passkey.none': 'Ingen nøgler endnu.',
'passkey.name': 'Navn på nøglen',
'passkey.namePlaceholder': 'fx min bærbare',
'passkey.add': 'Tilføj en nøgle',
'passkey.registering': 'Venter på enheden…',
'passkey.remove': 'Fjern',
'passkey.removeQuestion': 'Fjern "{name}"? Enheden kan ikke logge ind med den bagefter.',
'passkey.bothFactors': 'begge faktorer',
'passkey.possessionOnly': 'kun besiddelse — koden bliver stadig krævet',
'passkey.lastUsed': 'sidst brugt {when}',
'passkey.neverUsed': 'aldrig brugt',
'passkey.signIn': 'Log ind med en passkey',
'passkey.signingIn': 'Venter på enheden…',
'passkey.unavailable':
'Passkeys kan ikke bruges her — enten understøtter browseren dem ikke, eller også er serverens adresse en IP frem for et domænenavn, hvilket ingen authenticator accepterer.',
// --- restarting from the interface ---------------------------------------------
'update.restart': 'Genstart og hent nyeste version',
'update.restarting': 'Genstarter…',
'update.restartQuestion':
'Genstart nu? Serveren er nede i omkring et halvt minut, og henter den nyeste version på vejen op.',
'update.asking': 'Beder panelet om at genstarte…',
'update.waiting': 'Venter på at serveren kommer op igen…',
'update.stillDown': 'Serveren er ikke kommet op endnu. Kig i panelet.',
'update.notConfigured':
'Denne instans kan ikke genstarte sig selv: {missing} er ikke sat. En container kan ikke udskifte sit eget image — panelet gør arbejdet, og det her er kun måden at bede om det.',
'error.gmailSaid': 'Gmail svarede: {what}',
'error.calendarRefused': 'Google afviste kaldet. Prøv at forbinde kalenderen igen.',
'error.calendarSaid': 'Google svarede: {what}',
'int.disconnectCalendarQuestion':
'Afbryd forbindelsen til Google Kalender? Tokens bliver glemt, og den hentede kopi af begivenhederne bliver slettet. Dine egne opgaver rører den ikke.',
'error.mailboxRefused': 'Postkassen kunne ikke læses.',
'error.mailboxSaid': 'Postkassen svarede: {what}',
'error.gmailRefused': 'Gmail afviste kaldet. Prøv at forbinde postkassen igen.',
'int.newAddressQuestion': 'Ny adresse? Mail til den gamle bliver afvist.',
'int.copied': 'Kopieret.',
'int.copyFailed': 'Kunne ikke kopiere — markér teksten i stedet.',
'detail.deleteComment': 'Slet kommentaren?',
'int.disconnectQuestion': 'Afbryd forbindelsen til Gmail? Tokens bliver glemt.',
'int.newLinkQuestion': 'Nyt feed-link? Alle eksisterende abonnementer holder op med at virke.',
'data.deleteTemplate': 'Slet skabelonen "{name}"?',
'tokens.revokeQuestion': 'Tilbagekald "{name}"? Alt, der bruger den, holder op med at virke.',
'account.signOutThisDevice': 'Det er denne enhed. Du bliver logget ud.',
'project.deleteQuestion': 'Slet "{name}" med alle dets opgaver?',
'project.deleteRecoverable':
'Det havner i papirkurven og kan hentes tilbage under Indstillinger → Data og skabeloner i {days} dage.'
};