1033 lines
50 KiB
JavaScript
1033 lines
50 KiB
JavaScript
/**
|
||
* 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.'
|
||
};
|