navidrome/resources/i18n/da.json
Deluan Quintão ab8a58157a
Some checks are pending
Pipeline: Test, Lint, Build / Push to Docker Hub (push) Blocked by required conditions
Pipeline: Test, Lint, Build / Get version info (push) Waiting to run
Pipeline: Test, Lint, Build / Lint Go code (push) Waiting to run
Pipeline: Test, Lint, Build / Test Go code (push) Waiting to run
Pipeline: Test, Lint, Build / Test JS code (push) Waiting to run
Pipeline: Test, Lint, Build / Lint i18n files (push) Waiting to run
Pipeline: Test, Lint, Build / Check Docker configuration (push) Waiting to run
Pipeline: Test, Lint, Build / Cleanup digest artifacts (push) Blocked by required conditions
Pipeline: Test, Lint, Build / Build (push) Blocked by required conditions
Pipeline: Test, Lint, Build / Build-1 (push) Blocked by required conditions
Pipeline: Test, Lint, Build / Build-2 (push) Blocked by required conditions
Pipeline: Test, Lint, Build / Build-3 (push) Blocked by required conditions
Pipeline: Test, Lint, Build / Build-4 (push) Blocked by required conditions
Pipeline: Test, Lint, Build / Build-5 (push) Blocked by required conditions
Pipeline: Test, Lint, Build / Build-6 (push) Blocked by required conditions
Pipeline: Test, Lint, Build / Build-7 (push) Blocked by required conditions
Pipeline: Test, Lint, Build / Build-8 (push) Blocked by required conditions
Pipeline: Test, Lint, Build / Build-9 (push) Blocked by required conditions
Pipeline: Test, Lint, Build / Build-10 (push) Blocked by required conditions
Pipeline: Test, Lint, Build / Push to GHCR (push) Blocked by required conditions
Pipeline: Test, Lint, Build / Build Windows installers (push) Blocked by required conditions
Pipeline: Test, Lint, Build / Package/Release (push) Blocked by required conditions
Pipeline: Test, Lint, Build / Upload Linux PKG (push) Blocked by required conditions
POEditor export / push-translations (push) Has been skipped
feat: add artist image uploads and image-folder artwork source (#5198)
* feat: add shared ImageUploadService for entity image management

* feat: add UploadedImage field and methods to Artist model

* feat: add uploaded_image column to artist table

* feat: add ArtistImageFolder config option

* refactor: wire ImageUploadService and delegate playlist file ops to it

Wire ImageUploadService into the DI container and refactor the playlist
service to delegate image file operations (SetImage/RemoveImage) to the
shared ImageUploadService, removing duplicated file I/O logic. A local
ImageUploadService interface is defined in core/playlists to avoid an
import cycle between core and core/playlists.

* feat: artist artwork reader checks uploaded image first

* feat: add image-folder priority source for artist artwork

* feat: cache key invalidation for image-folder and uploaded images

* refactor: extract shared image upload HTTP helpers

* feat: add artist image upload/delete API endpoints

* refactor: playlist handlers use shared image upload helpers

* feat: add shared ImageUploadOverlay component

* feat: add i18n keys for artist image upload

* feat: add image upload overlay to artist detail pages

* refactor: playlist details uses shared ImageUploadOverlay component

* fix: add gosec nolint directive for ParseMultipartForm

* refactor: deduplicate image upload code and optimize dir scanning

- Remove dead ImageFilename methods from Artist and Playlist models
  (production code uses core.imageFilename exclusively)
- Extract shared uploadedImagePath helper in model/image.go
- Extract findImageInArtistFolder to deduplicate dir-scanning logic
  between fromArtistImageFolder and getArtistImageFolderModTime
- Fix fileInputRef in useCallback dependency array

* fix: include artist UpdatedAt in artwork cache key

Without this, uploading or deleting an artist image would not
invalidate the cached artwork because the cache key was only based
on album folder timestamps, not the artist's own UpdatedAt field.

* feat: add Portuguese translations for artist image upload

* refactor: use shared i18n keys for cover art upload messages

Move cover art upload/remove translations from per-entity sections
(artist, playlist) to a shared top-level "message" section, avoiding
duplication across entity types and translation files.

* refactor: move cover art i18n keys to shared message section for all languages

* refactor: simplify image upload code and eliminate redundancies

Extracted duplicate image loading/lightbox state logic from
DesktopArtistDetails and MobileArtistDetails into a shared
useArtistImageState hook. Moved entity type constants to the consts
package and replaced raw string literals throughout model, core, and
nativeapi packages. Exported model.UploadedImagePath and reused it in
core/image_upload.go to consolidate path construction. Cached the
ArtistImageFolder lookup result in artistReader to eliminate a redundant
os.ReadDir call on every artwork request.

Signed-off-by: Deluan <deluan@navidrome.org>

* style: fix prettier formatting in ImageUploadOverlay

* fix: address code review feedback on image upload error handling

- RemoveImage now returns errors instead of swallowing them
- Artist handlers distinguish not-found from other DB errors
- Defer multipart temp file cleanup after parsing

* fix: enforce hard request size limit with MaxBytesReader for image uploads

Signed-off-by: Deluan <deluan@navidrome.org>

---------

Signed-off-by: Deluan <deluan@navidrome.org>
2026-03-15 22:19:55 -04:00

715 lines
27 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"languageName": "Dansk",
"resources": {
"song": {
"name": "Sang |||| Sange",
"fields": {
"albumArtist": "Album kunstner",
"duration": "Varighed",
"trackNumber": "#",
"playCount": "Afspilninger",
"title": "Titel",
"artist": "Kunstner",
"album": "Album navn",
"path": "Filsti",
"genre": "Genre",
"compilation": "Opsamling",
"year": "År",
"size": "Fil størrelse",
"updatedAt": "Opdateret den",
"bitRate": "Bitrate",
"discSubtitle": "Plade undertitel",
"starred": "Stjernemarkeret",
"comment": "Kommentar",
"rating": "Bedømmelse",
"quality": "Kvalitet",
"bpm": "BPM",
"playDate": "Senest afspillet",
"channels": "Kanaler",
"createdAt": "Tilføjet d.",
"grouping": "Gruppering",
"mood": "Humør",
"participants": "Yderligere deltagere",
"tags": "Yderligere tags",
"mappedTags": "Mappede tags",
"rawTags": "Rå tags",
"bitDepth": "Bitdybde",
"sampleRate": "Samplingfrekvens",
"missing": "Manglende",
"libraryName": "Bibliotek",
"composer": "Komponist",
"disc": ""
},
"actions": {
"addToQueue": "Afspil senere",
"playNow": "Afspil nu",
"addToPlaylist": "Føj til afspilningsliste",
"shuffleAll": "Bland alle",
"download": "Download",
"playNext": "Afspil næste",
"info": "Hent info",
"showInPlaylist": "Vis i afspilningsliste",
"instantMix": "Instant Mix"
}
},
"album": {
"name": "Album |||| Albums",
"fields": {
"albumArtist": "Album kunstner",
"artist": "Kunstner",
"duration": "Varighed",
"songCount": "Sange",
"playCount": "Afspilninger",
"name": "Navn",
"genre": "Genre",
"compilation": "Opsamling",
"year": "År",
"updatedAt": "Opdateret d.",
"comment": "Kommentar",
"rating": "Bedømmelse",
"createdAt": "Tilføjet d.",
"size": "Størrelse",
"originalDate": "Original",
"releaseDate": "Udgivet",
"releases": "Udgivelse |||| Udgivelser",
"released": "Udgivet",
"recordLabel": "Plademærke",
"catalogNum": "Katalognummer",
"releaseType": "Type",
"grouping": "Gruppering",
"media": "Medier",
"mood": "Humør",
"date": "Optagelsesdato",
"missing": "Manglende",
"libraryName": "Bibliotek"
},
"actions": {
"playAll": "Afspil",
"playNext": "Afspil næste",
"addToQueue": "Føj til kø",
"shuffle": "Bland",
"addToPlaylist": "Føj til afspilningsliste",
"download": "Download",
"info": "Hent info",
"share": "Del"
},
"lists": {
"all": "Alle",
"random": "Tilfældig",
"recentlyAdded": "Nyligt tilføjet",
"recentlyPlayed": "Nyligt Afspillet",
"mostPlayed": "Mest Afspillet",
"starred": "Stjernemarkerede",
"topRated": "Top bedømmelse"
}
},
"artist": {
"name": "Kunstner |||| Kunstnere",
"fields": {
"name": "Navn",
"albumCount": "Antal albums",
"songCount": "Antal sange",
"playCount": "Afspilninger",
"rating": "Bedømmelse",
"genre": "Genre",
"size": "Størrelse",
"role": "Rolle",
"missing": "Manglende"
},
"roles": {
"albumartist": "Albumkunstner |||| Albumkunstnere",
"artist": "Kunstner |||| Kunstnere",
"composer": "Komponist |||| Komponister",
"conductor": "Dirigent |||| Dirigenter",
"lyricist": "Tekstforfatter |||| Tekstforfattere",
"arranger": "Arrangør |||| Arrangører",
"producer": "Producent |||| Producenter",
"director": "Instruktør |||| Instruktører",
"engineer": "Tekniker||||Teknikere",
"mixer": "Mixer |||| Mixere",
"remixer": "Remixer |||| Remixere",
"djmixer": "DJ-mixer |||| DJ-mixere",
"performer": "Udførende kunstner |||| Udførende kunstnere",
"maincredit": "Albumkunstner eller kunstner |||| Albumkunstnere eller kunstnere"
},
"actions": {
"shuffle": "Bland",
"radio": "Radio",
"topSongs": "Topsange"
}
},
"user": {
"name": "Bruger |||| Brugere",
"fields": {
"userName": "Brugernavn",
"isAdmin": "Er administrator",
"lastLoginAt": "Seneste login",
"updatedAt": "Opdateret d.",
"name": "Navn",
"password": "Kodeord",
"createdAt": "Oprettet d.",
"changePassword": "Skifte kodeord?",
"currentPassword": "Nuværende kodeord",
"newPassword": "Nyt kodeord",
"token": "Token",
"lastAccessAt": "Senest tilgået",
"libraries": "Biblioteker"
},
"helperTexts": {
"name": "Ændringer i dit navn vises først ved næste login",
"libraries": "Vælg specifikke biblioteker til denne bruger, eller lad det stå tomt for at bruge standardbiblioteker"
},
"notifications": {
"created": "Bruger oprettet",
"updated": "Bruger opdateret",
"deleted": "Bruger slettet"
},
"message": {
"listenBrainzToken": "Skriv dit ListenBrainz token",
"clickHereForToken": "Tryk her for at få dit token",
"selectAllLibraries": "Vælg alle biblioteker",
"adminAutoLibraries": "Administratorbrugere har automatisk adgang til alle biblioteker"
},
"validation": {
"librariesRequired": "Der skal være valgt mindst ét bibliotek til ikke-administrative brugere"
}
},
"player": {
"name": "Afspiller |||| Afspillere",
"fields": {
"name": "Navn",
"transcodingId": "Transkodning",
"maxBitRate": "Maks. bitrate",
"client": "Klient",
"userName": "Brugernavn",
"lastSeen": "Sidst set",
"reportRealPath": "Vis den virkelige sti",
"scrobbleEnabled": "Send scrobbles til eksterne tjenester"
}
},
"transcoding": {
"name": "Transkodning |||| Transkodninger",
"fields": {
"name": "Navn",
"targetFormat": "Målformat",
"defaultBitRate": "Standard bitrate",
"command": "Kommando"
}
},
"playlist": {
"name": "Afspilningsliste |||| Afspilningslister",
"fields": {
"name": "Navn",
"duration": "Varighed",
"ownerName": "Ejer",
"public": "Offentlig",
"updatedAt": "Opdateret d.",
"createdAt": "Oprettet d.",
"songCount": "Sange",
"comment": "Kommentar",
"sync": "Auto-importér",
"path": "Importér fra"
},
"actions": {
"selectPlaylist": "Vælg en afspilningsliste:",
"addNewPlaylist": "Opret \"%{name}\"",
"export": "Eksportér",
"makePublic": "Offentliggør",
"makePrivate": "Gør privat",
"saveQueue": "Gem kø på afspilningsliste",
"searchOrCreate": "Søg i afspilningslister eller skriv for at oprette nye...",
"pressEnterToCreate": "Tryk Enter for at oprette en ny afspilningsliste",
"removeFromSelection": "Fjern fra valg"
},
"message": {
"duplicate_song": "Tilføj dubletter af sange",
"song_exist": "Der føjes dubletter til playlisten",
"noPlaylistsFound": "Ingen playlister fundet",
"noPlaylists": "Ingen tilgængelige playlister"
}
},
"radio": {
"name": "Radio |||| Radioer",
"fields": {
"name": "Navn",
"streamUrl": "Stream-URL",
"homePageUrl": "Hjemmeside-URL",
"updatedAt": "Opdateret d.",
"createdAt": "Oprettet d."
},
"actions": {
"playNow": "Afspil nu"
}
},
"share": {
"name": "Del |||| Delinger",
"fields": {
"username": "Delt af",
"url": "URL",
"description": "Beskrivelse",
"contents": "Indhold",
"expiresAt": "Udløber",
"lastVisitedAt": "Senest besøgt",
"visitCount": "Besøg",
"format": "Format",
"maxBitRate": "Maks. bitrate",
"updatedAt": "Opdateret d.",
"createdAt": "Oprettet d.",
"downloadable": "Tillad downloads?"
}
},
"missing": {
"name": "Manglende fil |||| Manglende filer",
"fields": {
"path": "Sti",
"size": "Størrelse",
"updatedAt": "Forsvandt d.",
"libraryName": "Bibliotek"
},
"actions": {
"remove": "Fjern",
"remove_all": "Fjern alle"
},
"notifications": {
"removed": "Manglende fil(er) fjernet"
},
"empty": "Ingen manglende filer"
},
"library": {
"name": "Bibliotek |||| Biblioteker",
"fields": {
"name": "Navn",
"path": "Sti",
"remotePath": "Fjernsti",
"lastScanAt": "Sidste scanning",
"songCount": "Sange",
"albumCount": "Albummer",
"artistCount": "Kunstnere",
"totalSongs": "Sange",
"totalAlbums": "Albummer",
"totalArtists": "Kunstnere",
"totalFolders": "Mapper",
"totalFiles": "Filer",
"totalMissingFiles": "Manglende filer",
"totalSize": "Samlet størrelse",
"totalDuration": "Varighed",
"defaultNewUsers": "Standard for nye brugere",
"createdAt": "Oprettet d.",
"updatedAt": "Opdateret d."
},
"sections": {
"basic": "Grundlæggende oplysninger",
"statistics": "Statistik"
},
"actions": {
"scan": "Scanningsbibliotek",
"manageUsers": "Administrer brugeradgang",
"viewDetails": "Se detaljer",
"quickScan": "hurtig skanning",
"fullScan": "Fuld skanning"
},
"notifications": {
"created": "Bibliotek oprettet",
"updated": "Biblioteket er blevet opdateret",
"deleted": "Biblioteket er blevet slettet",
"scanStarted": "Biblioteksscanning startet",
"scanCompleted": "Biblioteksscanning fuldført",
"quickScanStarted": "hurtig skanning startet",
"fullScanStarted": "Fuld skanning startet",
"scanError": "Kan ikke starte skanning. Tjek loggen"
},
"validation": {
"nameRequired": "Biblioteksnavn er påkrævet",
"pathRequired": "Bibliotekssti er påkrævet",
"pathNotDirectory": "Biblioteksstien skal være en mappe",
"pathNotFound": "Biblioteksstien blev ikke fundet",
"pathNotAccessible": "Biblioteksstien er ikke tilgængelig",
"pathInvalid": "Ugyldig bibliotekssti"
},
"messages": {
"deleteConfirm": "Er du sikker på, at du vil slette dette bibliotek? Dét vil fjerne alle tilknyttede data og brugeradgange",
"scanInProgress": "Scanning i gang...",
"noLibrariesAssigned": "Ingen biblioteker tildelt denne bruger"
}
},
"plugin": {
"name": "Plugin |||| Plugins",
"fields": {
"id": "ID",
"name": "Navn",
"description": "Beskrivelse",
"version": "Version",
"author": "Forfatter",
"website": "Hjemmeside",
"permissions": "Tilladelser",
"enabled": "Aktiveret",
"status": "Status",
"path": "Sti",
"lastError": "Fejl",
"hasError": "Fejl",
"updatedAt": "Opdateret",
"createdAt": "Installeret",
"configKey": "Nøgle",
"configValue": "Værdi",
"allUsers": "Tillad alle brugere",
"selectedUsers": "Valgte brugere",
"allLibraries": "Tillad alle biblioteker",
"selectedLibraries": "Valgte biblioteker",
"allowWriteAccess": ""
},
"sections": {
"status": "Status",
"info": "Pluginoplysninger",
"configuration": "Konfiguration",
"manifest": "Manifest",
"usersPermission": "Brugertilladelse",
"libraryPermission": "Bibliotekstilladelse"
},
"status": {
"enabled": "Aktiveret",
"disabled": "Deaktiveret"
},
"actions": {
"enable": "Aktivér",
"disable": "Deaktivér",
"disabledDueToError": "Ret fejlen før aktivering",
"disabledUsersRequired": "Vælg brugere før aktivering",
"disabledLibrariesRequired": "Vælg biblioteker før aktivering",
"addConfig": "Tilføj konfiguration",
"rescan": "Genskan"
},
"notifications": {
"enabled": "Plugin aktiveret",
"disabled": "Plugin deaktiveret",
"updated": "Plugin opdateret",
"error": "Fejl ved opdatering af plugin"
},
"validation": {
"invalidJson": "Konfigurationen skal være gyldig JSON"
},
"messages": {
"configHelp": "Konfigurér pluginet med nøgle-værdi-par. Lad stå tomt, hvis pluginet ikke kræver konfiguration.",
"clickPermissions": "Klik på en tilladelse for detaljer",
"noConfig": "Ingen konfiguration angivet",
"allUsersHelp": "Når aktiveret, vil pluginet have adgang til alle brugere, inklusiv dem der oprettes i fremtiden.",
"noUsers": "Ingen brugere valgt",
"permissionReason": "Årsag",
"usersRequired": "Dette plugin kræver adgang til brugeroplysninger. Vælg hvilke brugere pluginet kan tilgå, eller aktivér 'Tillad alle brugere'.",
"allLibrariesHelp": "Når aktiveret, vil pluginet have adgang til alle biblioteker, inklusiv dem der oprettes i fremtiden.",
"noLibraries": "Ingen biblioteker valgt",
"librariesRequired": "Dette plugin kræver adgang til biblioteksoplysninger. Vælg hvilke biblioteker pluginet kan tilgå, eller aktivér 'Tillad alle biblioteker'.",
"requiredHosts": "Påkrævede hosts",
"configValidationError": "Konfigurationsvalidering mislykkedes:",
"schemaRenderError": "Kan ikke vise konfigurationsformularen. Pluginets skema er muligvis ugyldigt.",
"allowWriteAccessHelp": ""
},
"placeholders": {
"configKey": "nøgle",
"configValue": "værdi"
}
}
},
"ra": {
"auth": {
"welcome1": "Tak fordi du installerede Navidrome!",
"welcome2": "Først, opret en administrator",
"confirmPassword": "Bekræft kodeord",
"buttonCreateAdmin": "Opret administrator",
"auth_check_error": "Venligst login for at fortsætte",
"user_menu": "Profil",
"username": "Brugernavn",
"password": "Kodeord",
"sign_in": "Log ind",
"sign_in_error": "Dit log ind slog fejl, prøv igen",
"logout": "Log ud",
"insightsCollectionNote": "Navidrome indsamler anonyme brugsdata for at forbedre projektet. Klik [her] for at få mere at vide og fravælge, hvis du ønsker det."
},
"validation": {
"invalidChars": "Venligst, benyt kun bogstaver og tal",
"passwordDoesNotMatch": "Kodeord er ikke ens",
"required": "Nødvendig",
"minLength": "Skal være mindst %{min} tegn",
"maxLength": "Skal være op til %{max} tegn",
"minValue": "Skal være mindst %{min}",
"maxValue": "Skal være op til %{max}",
"number": "Skal være et tal",
"email": "Skal være en gyldig e-mail-adresse",
"oneOf": "Skal være én af: %{options}",
"regex": "Skal matche et specifikt format (regexp): %{pattern}",
"unique": "Skal være unik",
"url": "Skal være en gyldig URL"
},
"action": {
"add_filter": "Tilføj filter",
"add": "Tilføj",
"back": "Tilbage",
"bulk_actions": "1 emne valgt |||| %{smart_count} emner valgt",
"cancel": "Annuller",
"clear_input_value": "Ryd",
"clone": "Klon",
"confirm": "Bekræft",
"create": "Opret",
"delete": "Slet",
"edit": "Rediger",
"export": "Eksportér",
"list": "Liste",
"refresh": "Opdater",
"remove_filter": "Slet filter",
"remove": "Fjern",
"save": "Gem",
"search": "Søg",
"show": "Vis",
"sort": "Sortér",
"undo": "Fortryd",
"expand": "Udvid",
"close": "Luk",
"open_menu": "Åbn menu",
"close_menu": "Luk menu",
"unselect": "Fravælg",
"skip": "Spring over",
"bulk_actions_mobile": "1 |||| %{smart_count}",
"share": "Del",
"download": "Download"
},
"boolean": {
"true": "Ja",
"false": "Nej"
},
"page": {
"create": "Opret %{name}",
"dashboard": "Instrumentbræt",
"edit": "%{name} #%{id}",
"error": "Noget gik galt",
"list": "%{name} liste",
"loading": "Henter",
"not_found": "Ikke fundet",
"show": "%{name} #%{id}",
"empty": "Ingen %{name} endnu.",
"invite": "Vil du tilføje en?"
},
"input": {
"file": {
"upload_several": "Træk nogle filer herind for at uploade, eller klik for at vælge en.",
"upload_single": "Træk en fil herind for at uploade, eller klik for at vælge den."
},
"image": {
"upload_several": "Træk billedfiler herind for at uploade, eller klik for at vælge en.",
"upload_single": "Træk en billedfil herind for at uploade, eller klik for at vælge den."
},
"references": {
"all_missing": "Kan ikke finde nogen referencedata.",
"many_missing": "Mindst en af de tilknyttede referencer synes ikke længere at være tilgængelig.",
"single_missing": "Tilknyttede referencer synes ikke længere at være tilgængelige."
},
"password": {
"toggle_visible": "Skjul kodeord",
"toggle_hidden": "Vis kodeord"
}
},
"message": {
"about": "Om",
"are_you_sure": "Er du sikker?",
"bulk_delete_content": "Er du sikker på, at du vil slette %{name}? |||| Er du sikker på, at du vil slette disse %{smart_count} poster?",
"bulk_delete_title": "Slet %{name} |||| Sletter %{smart_count} %{name} poster",
"delete_content": "Er du sikker på, at du vil slette denne post?",
"delete_title": "Slet %{name} #%{id}",
"details": "Detaljer",
"error": "Der opstod en klientfejl, og din forespørgsel kunne ikke udføres.",
"invalid_form": "Formularen er ikke gyldig. Tjek for fejl",
"loading": "Siden indlæses, vent et øjeblik",
"no": "Nej",
"not_found": "Enten har du skrevet en forkert URL eller du har fulgt et ugyldigt link.",
"yes": "Ja",
"unsaved_changes": "Du har lavet ændringer der ikke er gemt. Er du sikker på at du vil ignorere dem?"
},
"navigation": {
"no_results": "Ingen resultater fundet",
"no_more_results": "Sidenummeret %{page} eksisterer ikke. Gå tilbage til forrige side.",
"page_out_of_boundaries": "Sidenummeret %{page} ligger uden for grænserne",
"page_out_from_end": "Dette er sidste side",
"page_out_from_begin": "Dette er side 1",
"page_range_info": "%{offsetBegin}-%{offsetEnd} af %{total}",
"page_rows_per_page": "Rækker pr. side:",
"next": "Næste",
"prev": "Forrige",
"skip_nav": "Hop til indhold"
},
"notification": {
"updated": "Element opdateret |||| %{smart_count} elementer opdateret",
"created": "Element oprettet",
"deleted": "Element slettet |||| %{smart_count} elementer slettet",
"bad_item": "Forkert element",
"item_doesnt_exist": "Elementet findes ikke",
"http_error": "Kommunikationsfejl med serveren",
"data_provider_error": "dataProvider fejl. Tjek konsollen for detaljer.",
"i18n_error": "Kan ikke indlæse oversættelsen af det ønskede sprog",
"canceled": "Handling blev annulleret",
"logged_out": "Din session er udløbet, venligst tilslut igen",
"new_version": "Ny version tilgængelig! genopfrisk venligst vinduet"
},
"toggleFieldsMenu": {
"columnsToDisplay": "Antal synlige kolonner",
"layout": "Layout",
"grid": "Gitter",
"table": "Tabel"
}
},
"message": {
"note": "NOTE",
"transcodingDisabled": "Ændring af indstillinger til transkodning via webgrænsefladen er deaktiveret af sikkerhedshensyn.\nFor at ændre eller tilføje indstillinger skal du genstarte serveren med %{config} konfigurations option.",
"transcodingEnabled": "Navidrome kører i øjeblikket med %{config}. Dét gør det muligt at køre systemkommandoer fra transkodningsindstillingerne, via webgrænsefladen.\nVi anbefaler at deaktivere dette af sikkerhedshensyn og kun have det aktiveret, når du konfigurerer indstillinger til transkodning.",
"songsAddedToPlaylist": "Føjede 1 sang til afspilningsliste |||| Føjede %{smart_count} sange til afspilningsliste",
"noPlaylistsAvailable": "Ingen tilgængelige",
"delete_user_title": "Slet bruger '%{name}'",
"delete_user_content": "Er du sikker på at du vil slette denne bruger og tilhørende data (inklusive afspilningslister og valgte indstillinger)?",
"notifications_blocked": "Du blokerer for notifikationer fra dette site i dine browserindstillinger",
"notifications_not_available": "Denne browser understøtter ikke skrivebordsnotifikationer, eller: Du tilgår ikke Navidrome over https",
"lastfmLinkSuccess": "Du er koblet til Last.fm, og scrobbling er slået til",
"lastfmLinkFailure": "Du kan ikke kobles til Last.fm",
"lastfmUnlinkSuccess": "Last.fm frakoblet, og scrobbling deaktiveret",
"lastfmUnlinkFailure": "Last.fm kunne ikke frakobles",
"openIn": {
"lastfm": "Åbn i Last.fm",
"musicbrainz": "Åbn i MusicBrainz"
},
"lastfmLink": "Læs mere...",
"listenBrainzLinkSuccess": "Du er koblet til ListenBrainz og scrobbling er aktiveret som bruger: %{user}",
"listenBrainzLinkFailure": "Du kunne ikke kobles til ListenBrainz: %{error}",
"listenBrainzUnlinkSuccess": "ListenBrainz er frakoblet, og scrobbling deaktiveret",
"listenBrainzUnlinkFailure": "ListenBrainz kunne ikke frakobles",
"downloadOriginalFormat": "Download i originalformat",
"shareOriginalFormat": "Del i originalformat",
"shareDialogTitle": "Del %{resource} '%{name}'",
"shareBatchDialogTitle": "Del 1 %{resource} |||| Del %{smart_count} %{resource}",
"shareSuccess": "URL kopieret til udklipsholder: %{url}",
"shareFailure": "Fejl ved kopiering af URL %{url} til udklipsholder",
"downloadDialogTitle": "Download %{resource} '%{name}' (%{size})",
"shareCopyToClipboard": "Kopiér til udklipsholder: Ctrl+C, Enter",
"remove_missing_title": "Fjern manglende filer",
"remove_missing_content": "Er du sikker på, at du vil fjerne de valgte manglende filer fra databasen? Dét vil permanent fjerne alle referencer til dem, inklusive deres afspilningstællere og vurderinger.",
"remove_all_missing_title": "Fjern alle manglende filer",
"remove_all_missing_content": "Er du sikker på, at du vil fjerne alle manglende filer fra databasen? Dét vil permanent fjerne alle referencer til dem, inklusive deres afspilningstællere og vurderinger.",
"noSimilarSongsFound": "Ingen lignende sange fundet",
"noTopSongsFound": "Ingen topsange fundet",
"startingInstantMix": "Indlæser Instant Mix..."
},
"menu": {
"library": "Bibliotek",
"settings": "Indstillinger",
"version": "Version",
"theme": "Tema",
"personal": {
"name": "Personligt",
"options": {
"theme": "Tema",
"language": "Sprog",
"defaultView": "Standardopsætning",
"desktop_notifications": "Skrivebordsnotifikationer",
"lastfmScrobbling": "Scrobble til Last.fm",
"listenBrainzScrobbling": "Scrobble til ListenBrainz",
"replaygain": "ReplayGain-tilstand",
"preAmp": "ReplayGain PreAmp (dB)",
"gain": {
"none": "Slået fra",
"album": "Brug Album Gain",
"track": "Brug Gain for spor"
},
"lastfmNotConfigured": "Last.fm API-nøglen er ikke konfigureret"
}
},
"albumList": "Albums",
"about": "Om",
"playlists": "Afspilningslister",
"sharedPlaylists": "Delte afspilningslister",
"librarySelector": {
"allLibraries": "Alle biblioteker (%{count})",
"multipleLibraries": "%{selected} af %{total} biblioteker",
"selectLibraries": "Vælg biblioteker",
"none": "Ingen"
}
},
"player": {
"playListsText": "Afspilningskø",
"openText": "Åbn",
"closeText": "Luk",
"notContentText": "Ingen musik",
"clickToPlayText": "Tryk for at afspille",
"clickToPauseText": "Tryk for at sætte på pause",
"nextTrackText": "Næste nummer",
"previousTrackText": "Forrige nummer",
"reloadText": "Genindlæs",
"volumeText": "Lydstyrke",
"toggleLyricText": "Skift sangtekst til/fra",
"toggleMiniModeText": "Minimer",
"destroyText": "Fjern",
"downloadText": "Hent",
"removeAudioListsText": "Slet afspilningslister",
"clickToDeleteText": "Tryk for at slette %{name}",
"emptyLyricText": "Ingen sangtekst",
"playModeText": {
"order": "I rækkefølge",
"orderLoop": "Gentag",
"singleLoop": "Gentag enkelt",
"shufflePlay": "Bland"
}
},
"about": {
"links": {
"homepage": "Hjemmeside",
"source": "Kildekode",
"featureRequests": "Funktionsønsker",
"lastInsightsCollection": "Seneste indsamling af indsigter",
"insights": {
"disabled": "Slået fra",
"waiting": "Venter"
}
},
"tabs": {
"about": "Om",
"config": "Konfiguration"
},
"config": {
"configName": "Navn på konfiguration",
"environmentVariable": "Miljøvariabel",
"currentValue": "Nuværende værdi",
"configurationFile": "Konfigurationsfil",
"exportToml": "Eksportér konfigurationen (TOML)",
"exportSuccess": "Konfigurationen eksporteret til udklipsholder i TOML-format",
"exportFailed": "Kunne ikke kopiere konfigurationen",
"devFlagsHeader": "Udviklingsflagget (med forbehold for ændring/fjernelse)",
"devFlagsComment": "Disse er eksperimental-indstillinger og kan blive fjernet i fremtidige udgaver",
"downloadToml": "Download konfigurationen (TOML)"
}
},
"activity": {
"title": "Aktivitet",
"totalScanned": "Antal mapper gennemsøgt",
"quickScan": "Hurtig søgning",
"fullScan": "Fuld søgning",
"serverUptime": "Server oppetid",
"serverDown": "OFFLINE",
"scanType": "Type",
"status": "Scanningsfejl",
"elapsedTime": "Medgået tid",
"selectiveScan": "Selektiv"
},
"help": {
"title": "Navidrome genvejstaster",
"hotkeys": {
"show_help": "Vis denne hjælp",
"toggle_menu": "Skift menu sidepanel",
"toggle_play": "Play / Pause",
"prev_song": "Forrige sang",
"next_song": "Næste sang",
"vol_up": "Volumen op",
"vol_down": "Volumen ned",
"toggle_love": "Føj dette nummer til dine favoritter",
"current_song": "Gå til den aktuelle sang"
}
},
"nowPlaying": {
"title": "Afspilles nu",
"empty": "Intet afspilles nu",
"minutesAgo": "for %{smart_count} minut siden |||| for %{smart_count} minutter siden"
}
}