Compare commits

..

No commits in common. "master" and "v2.32.1" have entirely different histories.

38 changed files with 322 additions and 2308 deletions

View file

@ -300,8 +300,6 @@ export default {
}) })
}, },
userUpdated(user) { userUpdated(user) {
if (user.id !== this.$store.state.user.user.id) return
if (user.seriesHideFromContinueListening && user.seriesHideFromContinueListening.length) { if (user.seriesHideFromContinueListening && user.seriesHideFromContinueListening.length) {
this.removeAllSeriesFromContinueSeries(user.seriesHideFromContinueListening) this.removeAllSeriesFromContinueSeries(user.seriesHideFromContinueListening)
} }

View file

@ -338,18 +338,6 @@ export default {
const series = this.series.find((se) => se.id == decoded) const series = this.series.find((se) => se.id == decoded)
if (series) filterValue = series.name if (series) filterValue = series.name
} }
} else if (parts[0] === 'progress') {
const item = this.progress.find((p) => p.id == decoded)
if (item) filterValue = item.name
} else if (parts[0] === 'tracks') {
const item = this.tracks.find((t) => t.id == decoded)
if (item) filterValue = item.name
} else if (parts[0] === 'ebooks') {
const item = this.ebooks.find((e) => e.id == decoded)
if (item) filterValue = item.name
} else if (parts[0] === 'missing') {
const item = this.missing.find((m) => m.id == decoded)
if (item) filterValue = item.name
} else { } else {
filterValue = decoded filterValue = decoded
} }

View file

@ -78,7 +78,7 @@
<div class="grow ml-4"> <div class="grow ml-4">
<ui-text-input-with-label v-model="selectedMatch.author" :disabled="!selectedMatchUsage.author" :label="$strings.LabelAuthor" /> <ui-text-input-with-label v-model="selectedMatch.author" :disabled="!selectedMatchUsage.author" :label="$strings.LabelAuthor" />
<p v-if="mediaMetadata.authorName || (isPodcast && mediaMetadata.author)" class="text-xs ml-1 text-white/60"> <p v-if="mediaMetadata.authorName || (isPodcast && mediaMetadata.author)" class="text-xs ml-1 text-white/60">
{{ $strings.LabelCurrently }} <a :title="$strings.LabelClickToUseCurrentValue" class="cursor-pointer hover:underline" @click.stop="setMatchFieldValue('author', isPodcast ? mediaMetadata.author : mediaMetadata.authorName)">{{ isPodcast ? mediaMetadata.author : mediaMetadata.authorName }}</a> {{ $strings.LabelCurrently }} <a title="$strings.LabelClickToUseCurrentValue" class="cursor-pointer hover:underline" @click.stop="setMatchFieldValue('author', isPodcast ? mediaMetadata.author : mediaMetadata.authorName)">{{ isPodcast ? mediaMetadata.author : mediaMetadata.authorName }}</a>
</p> </p>
</div> </div>
</div> </div>
@ -87,7 +87,7 @@
<div class="grow ml-4"> <div class="grow ml-4">
<ui-multi-select v-model="selectedMatch.narrator" :items="narrators" :disabled="!selectedMatchUsage.narrator" :label="$strings.LabelNarrators" /> <ui-multi-select v-model="selectedMatch.narrator" :items="narrators" :disabled="!selectedMatchUsage.narrator" :label="$strings.LabelNarrators" />
<p v-if="mediaMetadata.narratorName" class="text-xs ml-1 text-white/60"> <p v-if="mediaMetadata.narratorName" class="text-xs ml-1 text-white/60">
{{ $strings.LabelCurrently }} <a :title="$strings.LabelClickToUseCurrentValue" class="cursor-pointer hover:underline" @click.stop="setMatchFieldValue('narrator', mediaMetadata.narrators)">{{ mediaMetadata.narratorName }}</a> {{ $strings.LabelCurrently }} <a title="$strings.LabelClickToUseCurrentValue" class="cursor-pointer hover:underline" @click.stop="setMatchFieldValue('narrator', mediaMetadata.narrators)">{{ mediaMetadata.narratorName }}</a>
</p> </p>
</div> </div>
</div> </div>
@ -96,7 +96,7 @@
<div class="grow ml-4"> <div class="grow ml-4">
<ui-rich-text-editor v-model="selectedMatch.description" :disabled="!selectedMatchUsage.description" :label="$strings.LabelDescription" /> <ui-rich-text-editor v-model="selectedMatch.description" :disabled="!selectedMatchUsage.description" :label="$strings.LabelDescription" />
<p v-if="mediaMetadata.description" class="text-xs ml-1 text-white/60"> <p v-if="mediaMetadata.description" class="text-xs ml-1 text-white/60">
{{ $strings.LabelCurrently }} <a :title="$strings.LabelClickToUseCurrentValue" class="cursor-pointer hover:underline" @click.stop="setMatchFieldValue('description', mediaMetadata.description)">{{ mediaMetadata.descriptionPlain.substr(0, 100) + (mediaMetadata.descriptionPlain.length > 100 ? '...' : '') }}</a> {{ $strings.LabelCurrently }} <a title="$strings.LabelClickToUseCurrentValue" class="cursor-pointer hover:underline" @click.stop="setMatchFieldValue('description', mediaMetadata.description)">{{ mediaMetadata.descriptionPlain.substr(0, 100) + (mediaMetadata.descriptionPlain.length > 100 ? '...' : '') }}</a>
</p> </p>
</div> </div>
</div> </div>
@ -105,7 +105,7 @@
<div class="grow ml-4"> <div class="grow ml-4">
<ui-text-input-with-label v-model="selectedMatch.publisher" :disabled="!selectedMatchUsage.publisher" :label="$strings.LabelPublisher" /> <ui-text-input-with-label v-model="selectedMatch.publisher" :disabled="!selectedMatchUsage.publisher" :label="$strings.LabelPublisher" />
<p v-if="mediaMetadata.publisher" class="text-xs ml-1 text-white/60"> <p v-if="mediaMetadata.publisher" class="text-xs ml-1 text-white/60">
{{ $strings.LabelCurrently }} <a :title="$strings.LabelClickToUseCurrentValue" class="cursor-pointer hover:underline" @click.stop="setMatchFieldValue('publisher', mediaMetadata.publisher)">{{ mediaMetadata.publisher }}</a> {{ $strings.LabelCurrently }} <a title="$strings.LabelClickToUseCurrentValue" class="cursor-pointer hover:underline" @click.stop="setMatchFieldValue('publisher', mediaMetadata.publisher)">{{ mediaMetadata.publisher }}</a>
</p> </p>
</div> </div>
</div> </div>
@ -114,7 +114,7 @@
<div class="grow ml-4"> <div class="grow ml-4">
<ui-text-input-with-label v-model="selectedMatch.publishedYear" :disabled="!selectedMatchUsage.publishedYear" :label="$strings.LabelPublishYear" /> <ui-text-input-with-label v-model="selectedMatch.publishedYear" :disabled="!selectedMatchUsage.publishedYear" :label="$strings.LabelPublishYear" />
<p v-if="mediaMetadata.publishedYear" class="text-xs ml-1 text-white/60"> <p v-if="mediaMetadata.publishedYear" class="text-xs ml-1 text-white/60">
{{ $strings.LabelCurrently }} <a :title="$strings.LabelClickToUseCurrentValue" class="cursor-pointer hover:underline" @click.stop="setMatchFieldValue('publishedYear', mediaMetadata.publishedYear)">{{ mediaMetadata.publishedYear }}</a> {{ $strings.LabelCurrently }} <a title="$strings.LabelClickToUseCurrentValue" class="cursor-pointer hover:underline" @click.stop="setMatchFieldValue('publishedYear', mediaMetadata.publishedYear)">{{ mediaMetadata.publishedYear }}</a>
</p> </p>
</div> </div>
</div> </div>

View file

@ -8,7 +8,7 @@
</button> </button>
</ui-tooltip> </ui-tooltip>
<ui-tooltip direction="top" :text="jumpBackwardText"> <ui-tooltip direction="top" :text="jumpBackwardText">
<button :aria-label="jumpBackwardText" class="text-gray-300" @mousedown.prevent @mouseup.prevent @click.stop="jumpBackward"> <button :aria-label="jumpForwardText" class="text-gray-300" @mousedown.prevent @mouseup.prevent @click.stop="jumpBackward">
<span class="material-symbols text-2xl sm:text-3xl">replay</span> <span class="material-symbols text-2xl sm:text-3xl">replay</span>
</button> </button>
</ui-tooltip> </ui-tooltip>

View file

@ -6,7 +6,6 @@ const defaultCode = 'en-us'
const languageCodeMap = { const languageCodeMap = {
ar: { label: 'عربي', dateFnsLocale: 'ar' }, ar: { label: 'عربي', dateFnsLocale: 'ar' },
be: { label: 'Беларуская', dateFnsLocale: 'be' },
bg: { label: 'Български', dateFnsLocale: 'bg' }, bg: { label: 'Български', dateFnsLocale: 'bg' },
bn: { label: 'বাংলা', dateFnsLocale: 'bn' }, bn: { label: 'বাংলা', dateFnsLocale: 'bn' },
ca: { label: 'Català', dateFnsLocale: 'ca' }, ca: { label: 'Català', dateFnsLocale: 'ca' },
@ -29,7 +28,6 @@ const languageCodeMap = {
pl: { label: 'Polski', dateFnsLocale: 'pl' }, pl: { label: 'Polski', dateFnsLocale: 'pl' },
'pt-br': { label: 'Português (Brasil)', dateFnsLocale: 'ptBR' }, 'pt-br': { label: 'Português (Brasil)', dateFnsLocale: 'ptBR' },
ru: { label: 'Русский', dateFnsLocale: 'ru' }, ru: { label: 'Русский', dateFnsLocale: 'ru' },
sk: { label: 'Slovenčina', dateFnsLocale: 'sk' },
sl: { label: 'Slovenščina', dateFnsLocale: 'sl' }, sl: { label: 'Slovenščina', dateFnsLocale: 'sl' },
sv: { label: 'Svenska', dateFnsLocale: 'sv' }, sv: { label: 'Svenska', dateFnsLocale: 'sv' },
tr: { label: 'Türkçe', dateFnsLocale: 'tr' }, tr: { label: 'Türkçe', dateFnsLocale: 'tr' },
@ -50,7 +48,6 @@ const podcastSearchRegionMap = {
au: { label: 'Australia' }, au: { label: 'Australia' },
br: { label: 'Brasil' }, br: { label: 'Brasil' },
be: { label: 'België / Belgique / Belgien' }, be: { label: 'België / Belgique / Belgien' },
by: { label: 'Беларусь' },
cz: { label: 'Česko' }, cz: { label: 'Česko' },
dk: { label: 'Danmark' }, dk: { label: 'Danmark' },
de: { label: 'Deutschland' }, de: { label: 'Deutschland' },
@ -70,7 +67,6 @@ const podcastSearchRegionMap = {
pt: { label: 'Portugal' }, pt: { label: 'Portugal' },
ru: { label: 'Россия' }, ru: { label: 'Россия' },
ch: { label: 'Schweiz / Suisse / Svizzera' }, ch: { label: 'Schweiz / Suisse / Svizzera' },
sk: { label: 'Slovensko' },
se: { label: 'Sverige' }, se: { label: 'Sverige' },
vn: { label: 'Việt Nam' }, vn: { label: 'Việt Nam' },
ua: { label: 'Україна' }, ua: { label: 'Україна' },

File diff suppressed because it is too large Load diff

View file

@ -166,7 +166,6 @@
"HeaderMetadataOrderOfPrecedence": "Ordre de Precedència de Metadades", "HeaderMetadataOrderOfPrecedence": "Ordre de Precedència de Metadades",
"HeaderMetadataToEmbed": "Metadades a Inserir", "HeaderMetadataToEmbed": "Metadades a Inserir",
"HeaderNewAccount": "Nou Compte", "HeaderNewAccount": "Nou Compte",
"HeaderNewApiKey": "Nova clau API",
"HeaderNewLibrary": "Nova Biblioteca", "HeaderNewLibrary": "Nova Biblioteca",
"HeaderNotificationCreate": "Crea Notificació", "HeaderNotificationCreate": "Crea Notificació",
"HeaderNotificationUpdate": "Actualització de Notificació", "HeaderNotificationUpdate": "Actualització de Notificació",
@ -200,7 +199,6 @@
"HeaderSettingsExperimental": "Funcionalitats experimentals", "HeaderSettingsExperimental": "Funcionalitats experimentals",
"HeaderSettingsGeneral": "Generals", "HeaderSettingsGeneral": "Generals",
"HeaderSettingsScanner": "Escàner", "HeaderSettingsScanner": "Escàner",
"HeaderSettingsSecurity": "Seguretat",
"HeaderSettingsWebClient": "Client web", "HeaderSettingsWebClient": "Client web",
"HeaderSleepTimer": "Temporitzador de son", "HeaderSleepTimer": "Temporitzador de son",
"HeaderStatsLargestItems": "Elements més grans", "HeaderStatsLargestItems": "Elements més grans",
@ -423,9 +421,6 @@
"LabelLibraryFilterSublistEmpty": "Sense {0}", "LabelLibraryFilterSublistEmpty": "Sense {0}",
"LabelLibraryItem": "Element de Biblioteca", "LabelLibraryItem": "Element de Biblioteca",
"LabelLibraryName": "Nom de Biblioteca", "LabelLibraryName": "Nom de Biblioteca",
"LabelLibrarySortByProgress": "Progrés: Última actualització",
"LabelLibrarySortByProgressFinished": "Progrés: Finalitzat",
"LabelLibrarySortByProgressStarted": "Progrés: Començat",
"LabelLimit": "Límits", "LabelLimit": "Límits",
"LabelLineSpacing": "Interlineat", "LabelLineSpacing": "Interlineat",
"LabelListenAgain": "Escoltar de nou", "LabelListenAgain": "Escoltar de nou",
@ -448,7 +443,7 @@
"LabelMetadataProvider": "Proveïdor de metadades", "LabelMetadataProvider": "Proveïdor de metadades",
"LabelMinute": "Minut", "LabelMinute": "Minut",
"LabelMinutes": "Minuts", "LabelMinutes": "Minuts",
"LabelMissing": "Falta", "LabelMissing": "Absent",
"LabelMissingEbook": "No té llibre electrònic", "LabelMissingEbook": "No té llibre electrònic",
"LabelMissingSupplementaryEbook": "No té ebook complementari", "LabelMissingSupplementaryEbook": "No té ebook complementari",
"LabelMobileRedirectURIs": "URI de redirecció mòbil permeses", "LabelMobileRedirectURIs": "URI de redirecció mòbil permeses",

View file

@ -385,7 +385,7 @@
"LabelFontBoldness": "Výraznost písma", "LabelFontBoldness": "Výraznost písma",
"LabelFontFamily": "Rodina písem", "LabelFontFamily": "Rodina písem",
"LabelFontItalic": "Kurzíva", "LabelFontItalic": "Kurzíva",
"LabelFontScale": "Velikost písma", "LabelFontScale": "Měřítko písma",
"LabelFontStrikethrough": "Přeškrtnutí", "LabelFontStrikethrough": "Přeškrtnutí",
"LabelFormat": "Formát", "LabelFormat": "Formát",
"LabelFull": "Plné", "LabelFull": "Plné",

View file

@ -127,7 +127,6 @@
"HeaderAudiobookTools": "Audiobog Filhåndteringsværktøjer", "HeaderAudiobookTools": "Audiobog Filhåndteringsværktøjer",
"HeaderAuthentication": "Autentificering", "HeaderAuthentication": "Autentificering",
"HeaderBackups": "Sikkerhedskopier", "HeaderBackups": "Sikkerhedskopier",
"HeaderBulkChapterModal": "Tilføj flere kapitler",
"HeaderChangePassword": "Skift Adgangskode", "HeaderChangePassword": "Skift Adgangskode",
"HeaderChapters": "Kapitler", "HeaderChapters": "Kapitler",
"HeaderChooseAFolder": "Vælg en Mappe", "HeaderChooseAFolder": "Vælg en Mappe",
@ -200,7 +199,6 @@
"HeaderSettingsExperimental": "Eksperimentelle Funktioner", "HeaderSettingsExperimental": "Eksperimentelle Funktioner",
"HeaderSettingsGeneral": "Generelt", "HeaderSettingsGeneral": "Generelt",
"HeaderSettingsScanner": "Scanner", "HeaderSettingsScanner": "Scanner",
"HeaderSettingsSecurity": "Sikkerhed",
"HeaderSettingsWebClient": "Webklient", "HeaderSettingsWebClient": "Webklient",
"HeaderSleepTimer": "Søvntimer", "HeaderSleepTimer": "Søvntimer",
"HeaderStatsLargestItems": "Største Elementer", "HeaderStatsLargestItems": "Største Elementer",
@ -275,7 +273,7 @@
"LabelBonus": "Bonus", "LabelBonus": "Bonus",
"LabelBooks": "Bøger", "LabelBooks": "Bøger",
"LabelButtonText": "Knap tekst", "LabelButtonText": "Knap tekst",
"LabelByAuthor": "Efter Forfatter", "LabelByAuthor": "af {0}",
"LabelChangePassword": "Ændre Adgangskode", "LabelChangePassword": "Ændre Adgangskode",
"LabelChannels": "Kanaler", "LabelChannels": "Kanaler",
"LabelChapterCount": "{0} Kapitler", "LabelChapterCount": "{0} Kapitler",
@ -295,7 +293,6 @@
"LabelContinueListening": "Fortsæt med at lytte", "LabelContinueListening": "Fortsæt med at lytte",
"LabelContinueReading": "Fortsæt med at læse", "LabelContinueReading": "Fortsæt med at læse",
"LabelContinueSeries": "Fortsæt Serien", "LabelContinueSeries": "Fortsæt Serien",
"LabelCorsAllowed": "Tilladte CORS-oprindelser",
"LabelCover": "Omslag", "LabelCover": "Omslag",
"LabelCoverImageURL": "Omslagsbillede URL", "LabelCoverImageURL": "Omslagsbillede URL",
"LabelCoverProvider": "Cover billede udbyder", "LabelCoverProvider": "Cover billede udbyder",
@ -309,7 +306,6 @@
"LabelDeleteFromFileSystemCheckbox": "Slet fra filsystem (afmarker kun for at fjerne fra databasen)", "LabelDeleteFromFileSystemCheckbox": "Slet fra filsystem (afmarker kun for at fjerne fra databasen)",
"LabelDescription": "Beskrivelse", "LabelDescription": "Beskrivelse",
"LabelDeselectAll": "Fravælg Alle", "LabelDeselectAll": "Fravælg Alle",
"LabelDetectedPattern": "Identificeret mønster:",
"LabelDevice": "Enheds", "LabelDevice": "Enheds",
"LabelDeviceInfo": "Enhedsinformation", "LabelDeviceInfo": "Enhedsinformation",
"LabelDeviceIsAvailableTo": "Enhed er tilgængelig for...", "LabelDeviceIsAvailableTo": "Enhed er tilgængelig for...",
@ -378,12 +374,11 @@
"LabelFilterByUser": "Filtrér efter bruger", "LabelFilterByUser": "Filtrér efter bruger",
"LabelFindEpisodes": "Find episoder", "LabelFindEpisodes": "Find episoder",
"LabelFinished": "Færdig", "LabelFinished": "Færdig",
"LabelFinishedDate": "Færdig {0}",
"LabelFolder": "Mappe", "LabelFolder": "Mappe",
"LabelFolders": "Mapper", "LabelFolders": "Mapper",
"LabelFontBold": "Fed", "LabelFontBold": "Fed",
"LabelFontBoldness": "Skrift tykkelse", "LabelFontBoldness": "Skrift tykkelse",
"LabelFontFamily": "Skrifttypefamilie", "LabelFontFamily": "Fontfamilie",
"LabelFontItalic": "Kursiv", "LabelFontItalic": "Kursiv",
"LabelFontScale": "Skriftstørrelse", "LabelFontScale": "Skriftstørrelse",
"LabelFontStrikethrough": "Gennemstreget", "LabelFontStrikethrough": "Gennemstreget",
@ -423,7 +418,6 @@
"LabelLanguages": "Sprog", "LabelLanguages": "Sprog",
"LabelLastBookAdded": "Senest tilføjede bog", "LabelLastBookAdded": "Senest tilføjede bog",
"LabelLastBookUpdated": "Senest opdaterede bog", "LabelLastBookUpdated": "Senest opdaterede bog",
"LabelLastProgressDate": "Sidste fremgang: {0}",
"LabelLastSeen": "Sidst set", "LabelLastSeen": "Sidst set",
"LabelLastTime": "Sidste gang", "LabelLastTime": "Sidste gang",
"LabelLastUpdate": "Seneste opdatering", "LabelLastUpdate": "Seneste opdatering",
@ -436,9 +430,6 @@
"LabelLibraryFilterSublistEmpty": "Nej {0}", "LabelLibraryFilterSublistEmpty": "Nej {0}",
"LabelLibraryItem": "Bibliotekselement", "LabelLibraryItem": "Bibliotekselement",
"LabelLibraryName": "Biblioteksnavn", "LabelLibraryName": "Biblioteksnavn",
"LabelLibrarySortByProgress": "Fremgang: Sidst opdateret",
"LabelLibrarySortByProgressFinished": "Fremgang: Afsluttet",
"LabelLibrarySortByProgressStarted": "Fremgang: Startet",
"LabelLimit": "Grænse", "LabelLimit": "Grænse",
"LabelLineSpacing": "Linjeafstand", "LabelLineSpacing": "Linjeafstand",
"LabelListenAgain": "Lyt igen", "LabelListenAgain": "Lyt igen",
@ -447,7 +438,6 @@
"LabelLogLevelWarn": "Advarsel", "LabelLogLevelWarn": "Advarsel",
"LabelLookForNewEpisodesAfterDate": "Søg efter nye episoder efter denne dato", "LabelLookForNewEpisodesAfterDate": "Søg efter nye episoder efter denne dato",
"LabelLowestPriority": "Laveste prioritet", "LabelLowestPriority": "Laveste prioritet",
"LabelMatchConfidence": "Confidens",
"LabelMatchExistingUsersBy": "Match eksisterende brugere ved", "LabelMatchExistingUsersBy": "Match eksisterende brugere ved",
"LabelMatchExistingUsersByDescription": "Anvendt for at forbinde brugere. Når forbundet, brugere vil blive matchet ved unikt id fra din SSO udbyder", "LabelMatchExistingUsersByDescription": "Anvendt for at forbinde brugere. Når forbundet, brugere vil blive matchet ved unikt id fra din SSO udbyder",
"LabelMaxEpisodesToDownload": "Max # afsnit for at downloade. Anvend 0 for ubegrænset.", "LabelMaxEpisodesToDownload": "Max # afsnit for at downloade. Anvend 0 for ubegrænset.",
@ -477,7 +467,6 @@
"LabelNewestAuthors": "Nyeste forfattere", "LabelNewestAuthors": "Nyeste forfattere",
"LabelNewestEpisodes": "Nyeste episoder", "LabelNewestEpisodes": "Nyeste episoder",
"LabelNextBackupDate": "Næste sikkerhedskopi dato", "LabelNextBackupDate": "Næste sikkerhedskopi dato",
"LabelNextChapters": "Næste kapitler vil være:",
"LabelNextScheduledRun": "Næste planlagte kørsel", "LabelNextScheduledRun": "Næste planlagte kørsel",
"LabelNoApiKeys": "Ingen API-nøgler", "LabelNoApiKeys": "Ingen API-nøgler",
"LabelNoCustomMetadataProviders": "Ingen brugerdefinerede metadata udbydere", "LabelNoCustomMetadataProviders": "Ingen brugerdefinerede metadata udbydere",
@ -495,7 +484,6 @@
"LabelNotificationsMaxQueueSize": "Maksimal køstørrelse for meddelelseshændelser", "LabelNotificationsMaxQueueSize": "Maksimal køstørrelse for meddelelseshændelser",
"LabelNotificationsMaxQueueSizeHelp": "Hændelser begrænses til at udløse en gang pr. sekund. Hændelser ignoreres, hvis køen er fyldt. Dette forhindrer meddelelsesspam.", "LabelNotificationsMaxQueueSizeHelp": "Hændelser begrænses til at udløse en gang pr. sekund. Hændelser ignoreres, hvis køen er fyldt. Dette forhindrer meddelelsesspam.",
"LabelNumberOfBooks": "Antal bøger", "LabelNumberOfBooks": "Antal bøger",
"LabelNumberOfChapters": "Antal kapitler:",
"LabelNumberOfEpisodes": "# afsnit", "LabelNumberOfEpisodes": "# afsnit",
"LabelOpenIDAdvancedPermsClaimDescription": "Navnet af OpenID claimet som indeholder avancerede brugerhandlinger inden i applikationen som vil gælde for ikke administrative roller (<b>hvis konfigureret</b>). Hvis et claim mangler fra svaret vil adgang til ABS blive nægtet. Hvis en enkelt indstilling/option mangler, vil det bliver behandlet som <code>false</code>. Sørg for at identity provider's claim matcher den forventede struktur:", "LabelOpenIDAdvancedPermsClaimDescription": "Navnet af OpenID claimet som indeholder avancerede brugerhandlinger inden i applikationen som vil gælde for ikke administrative roller (<b>hvis konfigureret</b>). Hvis et claim mangler fra svaret vil adgang til ABS blive nægtet. Hvis en enkelt indstilling/option mangler, vil det bliver behandlet som <code>false</code>. Sørg for at identity provider's claim matcher den forventede struktur:",
"LabelOpenIDClaims": "Efterlad de følgende indstillinger tomme for at deaktivere avanceret gruppe og adgangsindstilling, ved automatisk at assigne 'Bruger' grupper.", "LabelOpenIDClaims": "Efterlad de følgende indstillinger tomme for at deaktivere avanceret gruppe og adgangsindstilling, ved automatisk at assigne 'Bruger' grupper.",
@ -588,8 +576,8 @@
"LabelSettingsBookshelfViewHelp": "Skeumorfisk design med træhylder", "LabelSettingsBookshelfViewHelp": "Skeumorfisk design med træhylder",
"LabelSettingsChromecastSupport": "Chromecast-understøttelse", "LabelSettingsChromecastSupport": "Chromecast-understøttelse",
"LabelSettingsDateFormat": "Datoformat", "LabelSettingsDateFormat": "Datoformat",
"LabelSettingsEnableWatcher": "Automatisk biblioteksovervåger", "LabelSettingsEnableWatcher": "Scan automatisk bibliotek for ændringer",
"LabelSettingsEnableWatcherForLibrary": "Automatisk biblioteksovervåger", "LabelSettingsEnableWatcherForLibrary": "Scan automatisk bibliotek for ændringer",
"LabelSettingsEnableWatcherHelp": "Aktiverer automatisk tilføjelse/opdatering af elementer, når filændringer registreres. *Kræver servergenstart", "LabelSettingsEnableWatcherHelp": "Aktiverer automatisk tilføjelse/opdatering af elementer, når filændringer registreres. *Kræver servergenstart",
"LabelSettingsEpubsAllowScriptedContent": "Tillad scriptet indhold i epub", "LabelSettingsEpubsAllowScriptedContent": "Tillad scriptet indhold i epub",
"LabelSettingsEpubsAllowScriptedContentHelp": "Tillad epub filer at køre scripts. Det anbefales at holde denne indstilling deaktiveret med mindre du stoler på kilderne af epub filerne.", "LabelSettingsEpubsAllowScriptedContentHelp": "Tillad epub filer at køre scripts. Det anbefales at holde denne indstilling deaktiveret med mindre du stoler på kilderne af epub filerne.",
@ -638,7 +626,6 @@
"LabelStartTime": "Starttid", "LabelStartTime": "Starttid",
"LabelStarted": "Startet", "LabelStarted": "Startet",
"LabelStartedAt": "Startet klokken", "LabelStartedAt": "Startet klokken",
"LabelStartedDate": "Startet {0}",
"LabelStatsAudioTracks": "Lydspor", "LabelStatsAudioTracks": "Lydspor",
"LabelStatsAuthors": "Forfattere", "LabelStatsAuthors": "Forfattere",
"LabelStatsBestDay": "Bedste dag", "LabelStatsBestDay": "Bedste dag",
@ -668,7 +655,6 @@
"LabelTheme": "Tema", "LabelTheme": "Tema",
"LabelThemeDark": "Mørk", "LabelThemeDark": "Mørk",
"LabelThemeLight": "Lys", "LabelThemeLight": "Lys",
"LabelThemeSepia": "Sepia",
"LabelTimeBase": "Tidsbase", "LabelTimeBase": "Tidsbase",
"LabelTimeDurationXHours": "{0} timer", "LabelTimeDurationXHours": "{0} timer",
"LabelTimeDurationXMinutes": "{0} minutter", "LabelTimeDurationXMinutes": "{0} minutter",
@ -753,7 +739,6 @@
"MessageBookshelfNoResultsForFilter": "Ingen resultater for filter \"{0}: {1}\"", "MessageBookshelfNoResultsForFilter": "Ingen resultater for filter \"{0}: {1}\"",
"MessageBookshelfNoResultsForQuery": "Intet resultat for query", "MessageBookshelfNoResultsForQuery": "Intet resultat for query",
"MessageBookshelfNoSeries": "Du har ingen serier", "MessageBookshelfNoSeries": "Du har ingen serier",
"MessageBulkChapterPattern": "Hvor mange kapitler vil du tilføje med dette nummereringsmønster?",
"MessageChapterEndIsAfter": "Kapitelslutningen er efter slutningen af din lydbog", "MessageChapterEndIsAfter": "Kapitelslutningen er efter slutningen af din lydbog",
"MessageChapterErrorFirstNotZero": "Første kapitel skal starte ved 0", "MessageChapterErrorFirstNotZero": "Første kapitel skal starte ved 0",
"MessageChapterErrorStartGteDuration": "Ugyldig starttid skal være mindre end lydbogens varighed", "MessageChapterErrorStartGteDuration": "Ugyldig starttid skal være mindre end lydbogens varighed",
@ -790,7 +775,6 @@
"MessageConfirmRemoveAuthor": "Er du sikker på, at du vil fjerne forfatteren \"{0}\"?", "MessageConfirmRemoveAuthor": "Er du sikker på, at du vil fjerne forfatteren \"{0}\"?",
"MessageConfirmRemoveCollection": "Er du sikker på, at du vil fjerne samlingen \"{0}\"?", "MessageConfirmRemoveCollection": "Er du sikker på, at du vil fjerne samlingen \"{0}\"?",
"MessageConfirmRemoveEpisode": "Er du sikker på, at du vil fjerne episoden \"{0}\"?", "MessageConfirmRemoveEpisode": "Er du sikker på, at du vil fjerne episoden \"{0}\"?",
"MessageConfirmRemoveEpisodeNote": "Obs: Dette sletter ikke lydfilen medmindre \"Permanent sletning af fil\" er aktiveret",
"MessageConfirmRemoveEpisodes": "Er du sikker på, at du vil fjerne {0} episoder?", "MessageConfirmRemoveEpisodes": "Er du sikker på, at du vil fjerne {0} episoder?",
"MessageConfirmRemoveListeningSessions": "Er du sikker på at du vil fjerne {0} lytte sessioner?", "MessageConfirmRemoveListeningSessions": "Er du sikker på at du vil fjerne {0} lytte sessioner?",
"MessageConfirmRemoveMetadataFiles": "Er du sikker på at du vil fjerne alle metadata.{0} filer i dine biblioteksfoldere?", "MessageConfirmRemoveMetadataFiles": "Er du sikker på at du vil fjerne alle metadata.{0} filer i dine biblioteksfoldere?",
@ -816,8 +800,6 @@
"MessageFeedURLWillBe": "Feed-URL vil være {0}", "MessageFeedURLWillBe": "Feed-URL vil være {0}",
"MessageFetching": "Henter...", "MessageFetching": "Henter...",
"MessageForceReScanDescription": "vil scanne alle filer igen som en frisk scanning. Lydfilens ID3-tags, OPF-filer og tekstfiler scannes som nye.", "MessageForceReScanDescription": "vil scanne alle filer igen som en frisk scanning. Lydfilens ID3-tags, OPF-filer og tekstfiler scannes som nye.",
"MessageHeatmapListeningTimeTooltip": "<strong>{0} lytter</strong> på {1}",
"MessageHeatmapNoListeningSessions": "Ingen lyttesessioner på {0}",
"MessageImportantNotice": "Vigtig besked!", "MessageImportantNotice": "Vigtig besked!",
"MessageInsertChapterBelow": "Indsæt kapitel nedenfor", "MessageInsertChapterBelow": "Indsæt kapitel nedenfor",
"MessageInvalidAsin": "Ugyldig ASIN", "MessageInvalidAsin": "Ugyldig ASIN",
@ -888,7 +870,7 @@
"MessageResetChaptersConfirm": "Er du sikker på, at du vil nulstille kapitler og annullere ændringerne, du har foretaget?", "MessageResetChaptersConfirm": "Er du sikker på, at du vil nulstille kapitler og annullere ændringerne, du har foretaget?",
"MessageRestoreBackupConfirm": "Er du sikker på, at du vil gendanne sikkerhedskopien oprettet den", "MessageRestoreBackupConfirm": "Er du sikker på, at du vil gendanne sikkerhedskopien oprettet den",
"MessageRestoreBackupWarning": "Gendannelse af en sikkerhedskopi vil overskrive hele databasen, som er placeret på /config, og omslagsbilleder i /metadata/items & /metadata/authors.<br /><br />Sikkerhedskopier ændrer ikke nogen filer i dine biblioteksmapper. Hvis du har aktiveret serverindstillinger for at gemme omslagskunst og metadata i dine biblioteksmapper, sikkerhedskopieres eller overskrives disse ikke.<br /><br />Alle klienter, der bruger din server, opdateres automatisk.", "MessageRestoreBackupWarning": "Gendannelse af en sikkerhedskopi vil overskrive hele databasen, som er placeret på /config, og omslagsbilleder i /metadata/items & /metadata/authors.<br /><br />Sikkerhedskopier ændrer ikke nogen filer i dine biblioteksmapper. Hvis du har aktiveret serverindstillinger for at gemme omslagskunst og metadata i dine biblioteksmapper, sikkerhedskopieres eller overskrives disse ikke.<br /><br />Alle klienter, der bruger din server, opdateres automatisk.",
"MessageScheduleLibraryScanNote": "For de fleste brugere er det anbefalet, at efterlade denne funktion deaktiveret, og lade biblioteksovervågeren være aktiveret - den vil automatisk opdage ændringer i dine biblioteksmapper. Aktiver denne funktion, hvis biblioteksovervågeren ikke virker med dit filsystem (f. eks. NFS).", "MessageScheduleLibraryScanNote": "For de fleste brugere, er det anbefalet at efterlade denne funktion deaktiveret for at holde mappe lurer indstilling aktiveret. Mappe lureren vil automatisk opdage ændringer i biblioteksmapper. Mappe lureren virker ikke for alle filsystemer (så som NFS) så schedulerede biblioteksscans vil blive anvendt.",
"MessageScheduleRunEveryWeekdayAtTime": "Kør hvert {0} af {1}", "MessageScheduleRunEveryWeekdayAtTime": "Kør hvert {0} af {1}",
"MessageSearchResultsFor": "Søgeresultater for", "MessageSearchResultsFor": "Søgeresultater for",
"MessageSelected": "{0} valgt", "MessageSelected": "{0} valgt",
@ -957,7 +939,6 @@
"NotificationOnRSSFeedDisabledDescription": "Aktiveret når automatiske episode-downloads er slået fra, på grund af for mange forsøg", "NotificationOnRSSFeedDisabledDescription": "Aktiveret når automatiske episode-downloads er slået fra, på grund af for mange forsøg",
"NotificationOnRSSFeedFailedDescription": "Aktiveret når anmodning om RSS-feedet fejler for en automatisk episode-download", "NotificationOnRSSFeedFailedDescription": "Aktiveret når anmodning om RSS-feedet fejler for en automatisk episode-download",
"NotificationOnTestDescription": "Event for test af notifikationssystemet", "NotificationOnTestDescription": "Event for test af notifikationssystemet",
"PlaceholderBulkChapterInput": "Indtast kapiteltitel eller brug nummerering (f.eks. 'Episode 1', 'Kapitel 10', '1.')",
"PlaceholderNewCollection": "Nyt samlingnavn", "PlaceholderNewCollection": "Nyt samlingnavn",
"PlaceholderNewFolderPath": "Ny mappes sti", "PlaceholderNewFolderPath": "Ny mappes sti",
"PlaceholderNewPlaylist": "Nyt afspilningslistnavn", "PlaceholderNewPlaylist": "Nyt afspilningslistnavn",
@ -1011,15 +992,9 @@
"ToastBookmarkCreateFailed": "Mislykkedes oprettelse af bogmærke", "ToastBookmarkCreateFailed": "Mislykkedes oprettelse af bogmærke",
"ToastBookmarkCreateSuccess": "Bogmærke tilføjet", "ToastBookmarkCreateSuccess": "Bogmærke tilføjet",
"ToastBookmarkRemoveSuccess": "Bogmærke fjernet", "ToastBookmarkRemoveSuccess": "Bogmærke fjernet",
"ToastBulkChapterInvalidCount": "Indtast et tal mellem 1 og 150",
"ToastCachePurgeFailed": "Fejlede at opryde cache", "ToastCachePurgeFailed": "Fejlede at opryde cache",
"ToastCachePurgeSuccess": "Cache ryddet op i succesfuldt", "ToastCachePurgeSuccess": "Cache ryddet op i succesfuldt",
"ToastChapterLocked": "Kapitel er låst.",
"ToastChapterStartTimeAdjusted": "Kapitelstarttid justeret med {0} sekunder",
"ToastChaptersAllLocked": "Alle kapitler er låst. Lås op for nogle kapitler for at ændre deres tider.",
"ToastChaptersHaveErrors": "Kapitler har fejl", "ToastChaptersHaveErrors": "Kapitler har fejl",
"ToastChaptersInvalidShiftAmountLast": "Ugyldig ændring. Det sidste kapitels starttid ville fortsætte længere end varigheden på denne lydbog.",
"ToastChaptersInvalidShiftAmountStart": "Ugyldig ændring. Første kapitel ville have en længde på nul eller negativt og ville blive overskrevet af andet kapitel. Udvid startvarigheden på andet kapitel.",
"ToastChaptersMustHaveTitles": "Kapitler skal have titler", "ToastChaptersMustHaveTitles": "Kapitler skal have titler",
"ToastChaptersRemoved": "Kapitler fjernet", "ToastChaptersRemoved": "Kapitler fjernet",
"ToastChaptersUpdated": "Kapitler opdateret", "ToastChaptersUpdated": "Kapitler opdateret",
@ -1027,7 +1002,6 @@
"ToastCollectionRemoveSuccess": "Samling fjernet", "ToastCollectionRemoveSuccess": "Samling fjernet",
"ToastCollectionUpdateSuccess": "Samling opdateret", "ToastCollectionUpdateSuccess": "Samling opdateret",
"ToastConnectionNotAvailable": "Forbindelse mislykkedes. Prøv igen senere", "ToastConnectionNotAvailable": "Forbindelse mislykkedes. Prøv igen senere",
"ToastCoverSearchFailed": "Cover-søgning mislykkedes",
"ToastCoverUpdateFailed": "Cover opdatering fejlede", "ToastCoverUpdateFailed": "Cover opdatering fejlede",
"ToastDateTimeInvalidOrIncomplete": "Dato og tid er ugyldig eller ufærdig", "ToastDateTimeInvalidOrIncomplete": "Dato og tid er ugyldig eller ufærdig",
"ToastDeleteFileFailed": "Sletning af fil fejlede", "ToastDeleteFileFailed": "Sletning af fil fejlede",
@ -1077,7 +1051,6 @@
"ToastMustHaveAtLeastOnePath": "Skal have mindst en sti", "ToastMustHaveAtLeastOnePath": "Skal have mindst en sti",
"ToastNameEmailRequired": "Navn og email påkrævet", "ToastNameEmailRequired": "Navn og email påkrævet",
"ToastNameRequired": "Navn påkrævet", "ToastNameRequired": "Navn påkrævet",
"ToastNewApiKeyUserError": "En bruger skal vælges",
"ToastNewEpisodesFound": "{0} nye afsnit fundet", "ToastNewEpisodesFound": "{0} nye afsnit fundet",
"ToastNewUserCreatedFailed": "Fejlede at oprette konto: \"{0}\"", "ToastNewUserCreatedFailed": "Fejlede at oprette konto: \"{0}\"",
"ToastNewUserCreatedSuccess": "Ny konto oprettet", "ToastNewUserCreatedSuccess": "Ny konto oprettet",
@ -1102,7 +1075,6 @@
"ToastPlaylistUpdateSuccess": "Afspilningsliste opdateret", "ToastPlaylistUpdateSuccess": "Afspilningsliste opdateret",
"ToastPodcastCreateFailed": "Mislykkedes oprettelse af podcast", "ToastPodcastCreateFailed": "Mislykkedes oprettelse af podcast",
"ToastPodcastCreateSuccess": "Podcast oprettet med succes", "ToastPodcastCreateSuccess": "Podcast oprettet med succes",
"ToastPodcastEpisodeUpdated": "Episode opdateret",
"ToastPodcastGetFeedFailed": "Fejlede at hente podcast feed", "ToastPodcastGetFeedFailed": "Fejlede at hente podcast feed",
"ToastPodcastNoEpisodesInFeed": "Ingen nye afsnit fundet i RSS feed", "ToastPodcastNoEpisodesInFeed": "Ingen nye afsnit fundet i RSS feed",
"ToastPodcastNoRssFeed": "Podcast har ingen RSS feed", "ToastPodcastNoRssFeed": "Podcast har ingen RSS feed",
@ -1153,13 +1125,5 @@
"ToastUserPasswordChangeSuccess": "Password ændret", "ToastUserPasswordChangeSuccess": "Password ændret",
"ToastUserPasswordMismatch": "Passwords passer ikke sammen", "ToastUserPasswordMismatch": "Passwords passer ikke sammen",
"ToastUserPasswordMustChange": "Nyt password må ikke være det gamle", "ToastUserPasswordMustChange": "Nyt password må ikke være det gamle",
"ToastUserRootRequireName": "Skal indholde et root brugernavn", "ToastUserRootRequireName": "Skal indholde et root brugernavn"
"TooltipAddChapters": "Tilføj kapitler",
"TooltipAddOneSecond": "Tilføj 1 sekund",
"TooltipAdjustChapterStart": "Klik for at ændre starttiden",
"TooltipLockAllChapters": "Lås alle kapitler",
"TooltipLockChapter": "Lås kapitel (Shift+click for at markere flere)",
"TooltipSubtractOneSecond": "Fratag 1 sekund",
"TooltipUnlockAllChapters": "Lås alle kapitaler op",
"TooltipUnlockChapter": "Lås kapitel op (Shift+click for at markere flere)"
} }

View file

@ -116,7 +116,7 @@
"ButtonViewAll": "Alles anzeigen", "ButtonViewAll": "Alles anzeigen",
"ButtonYes": "Ja", "ButtonYes": "Ja",
"ErrorUploadFetchMetadataAPI": "Fehler beim Abrufen der Metadaten", "ErrorUploadFetchMetadataAPI": "Fehler beim Abrufen der Metadaten",
"ErrorUploadFetchMetadataNoResults": "Metadaten konnten nicht abgerufen werden. Versuche, den Titel und/oder den Autor zu aktualisieren.", "ErrorUploadFetchMetadataNoResults": "Metadaten konnten nicht abgerufen werden. Versuche den Titel und/oder den Autor zu aktualisieren.",
"ErrorUploadLacksTitle": "Es muss ein Titel eingegeben werden", "ErrorUploadLacksTitle": "Es muss ein Titel eingegeben werden",
"HeaderAccount": "Konto", "HeaderAccount": "Konto",
"HeaderAddCustomMetadataProvider": "Benutzerdefinierten Metadatenanbieter hinzufügen", "HeaderAddCustomMetadataProvider": "Benutzerdefinierten Metadatenanbieter hinzufügen",
@ -436,7 +436,7 @@
"LabelLibraryFilterSublistEmpty": "Keine {0}", "LabelLibraryFilterSublistEmpty": "Keine {0}",
"LabelLibraryItem": "Bibliothekseintrag", "LabelLibraryItem": "Bibliothekseintrag",
"LabelLibraryName": "Bibliotheksname", "LabelLibraryName": "Bibliotheksname",
"LabelLibrarySortByProgress": "Fortschritt: Letzte Aktualisierung", "LabelLibrarySortByProgress": "Fortschritt: Zuletzt aktualisiert",
"LabelLibrarySortByProgressFinished": "Fortschritt: Beendet", "LabelLibrarySortByProgressFinished": "Fortschritt: Beendet",
"LabelLibrarySortByProgressStarted": "Fortschritt: Gestartet", "LabelLibrarySortByProgressStarted": "Fortschritt: Gestartet",
"LabelLimit": "Begrenzung", "LabelLimit": "Begrenzung",
@ -710,7 +710,7 @@
"LabelUploaderDragAndDropFilesOnly": "Dateien per Drag & Drop hierher ziehen", "LabelUploaderDragAndDropFilesOnly": "Dateien per Drag & Drop hierher ziehen",
"LabelUploaderDropFiles": "Dateien löschen", "LabelUploaderDropFiles": "Dateien löschen",
"LabelUploaderItemFetchMetadataHelp": "Automatisches Aktualisieren von Titel, Autor und Serie", "LabelUploaderItemFetchMetadataHelp": "Automatisches Aktualisieren von Titel, Autor und Serie",
"LabelUseAdvancedOptions": "Erweiterte Optionen verwenden", "LabelUseAdvancedOptions": "Nutze Erweiterte Optionen",
"LabelUseChapterTrack": "Kapiteldatei verwenden", "LabelUseChapterTrack": "Kapiteldatei verwenden",
"LabelUseFullTrack": "Gesamte Datei verwenden", "LabelUseFullTrack": "Gesamte Datei verwenden",
"LabelUseZeroForUnlimited": "0 für unbegrenzt", "LabelUseZeroForUnlimited": "0 für unbegrenzt",
@ -737,7 +737,7 @@
"MessageAddToPlayerQueue": "Zur Abspielwarteliste hinzufügen", "MessageAddToPlayerQueue": "Zur Abspielwarteliste hinzufügen",
"MessageAppriseDescription": "Um diese Funktion nutzen zu können, musst du eine Instanz von <a href=\"https://github.com/caronc/apprise-api\" target=\"_blank\">Apprise API</a> laufen haben oder eine API verwenden welche dieselbe Anfragen bearbeiten kann. <br />Die Apprise API Url muss der vollständige URL-Pfad sein, an den die Benachrichtigung gesendet werden soll, z.B. wenn Ihre API-Instanz unter <code>http://192.168.1.1:8337</code> läuft, würdest du <code>http://192.168.1.1:8337/notify</code> eingeben.", "MessageAppriseDescription": "Um diese Funktion nutzen zu können, musst du eine Instanz von <a href=\"https://github.com/caronc/apprise-api\" target=\"_blank\">Apprise API</a> laufen haben oder eine API verwenden welche dieselbe Anfragen bearbeiten kann. <br />Die Apprise API Url muss der vollständige URL-Pfad sein, an den die Benachrichtigung gesendet werden soll, z.B. wenn Ihre API-Instanz unter <code>http://192.168.1.1:8337</code> läuft, würdest du <code>http://192.168.1.1:8337/notify</code> eingeben.",
"MessageAsinCheck": "Stelle sicher, dass die ASIN aus der richtigen Audible Region verwendet wird, nicht Amazon.", "MessageAsinCheck": "Stelle sicher, dass die ASIN aus der richtigen Audible Region verwendet wird, nicht Amazon.",
"MessageAuthenticationLegacyTokenWarning": "Alte API-Token werden in Zukunft entfernt. Benutze stattdessen <a href=\"/config/api-keys\">API Keys</a>.", "MessageAuthenticationLegacyTokenWarning": "Alte API tokens werden in Zukunft entfernt. Benutze stattdessen <a href=\"/config/api-keys\">API Keys</a>.",
"MessageAuthenticationOIDCChangesRestart": "Nach dem Speichern muss der Server neugestartet werden um die OIDC Änderungen zu übernehmen.", "MessageAuthenticationOIDCChangesRestart": "Nach dem Speichern muss der Server neugestartet werden um die OIDC Änderungen zu übernehmen.",
"MessageAuthenticationSecurityMessage": "Die Anmeldung wurde abgesichert. Benutzersitzungen werden getrennt, alle Benutzer müssen sich erneut anmelden.", "MessageAuthenticationSecurityMessage": "Die Anmeldung wurde abgesichert. Benutzersitzungen werden getrennt, alle Benutzer müssen sich erneut anmelden.",
"MessageBackupsDescription": "In einer Sicherung werden Benutzer, Benutzerfortschritte, Details zu den Bibliotheksobjekten, Servereinstellungen und Bilder welche in <code>/metadata/items</code> & <code>/metadata/authors</code> gespeichert sind gespeichert. Sicherungen enthalten keine Dateien welche in den einzelnen Bibliotheksordnern (Medien-Ordnern) gespeichert sind.", "MessageBackupsDescription": "In einer Sicherung werden Benutzer, Benutzerfortschritte, Details zu den Bibliotheksobjekten, Servereinstellungen und Bilder welche in <code>/metadata/items</code> & <code>/metadata/authors</code> gespeichert sind gespeichert. Sicherungen enthalten keine Dateien welche in den einzelnen Bibliotheksordnern (Medien-Ordnern) gespeichert sind.",
@ -1103,11 +1103,11 @@
"ToastPodcastCreateFailed": "Podcast konnte nicht erstellt werden", "ToastPodcastCreateFailed": "Podcast konnte nicht erstellt werden",
"ToastPodcastCreateSuccess": "Podcast erstellt", "ToastPodcastCreateSuccess": "Podcast erstellt",
"ToastPodcastEpisodeUpdated": "Podcast-Folge aktualisiert", "ToastPodcastEpisodeUpdated": "Podcast-Folge aktualisiert",
"ToastPodcastGetFeedFailed": "Fehler beim abrufen des Podcast-Feeds", "ToastPodcastGetFeedFailed": "Fehler beim abrufen des Podcast Feeds",
"ToastPodcastNoEpisodesInFeed": "Keine Episoden in RSS Feed gefunden", "ToastPodcastNoEpisodesInFeed": "Keine Episoden in RSS Feed gefunden",
"ToastPodcastNoRssFeed": "Podcast enthält keinen RSS Feed", "ToastPodcastNoRssFeed": "Podcast enthält keinen RSS Feed",
"ToastProgressIsNotBeingSynced": "Fortschritt wird nicht synchronisiert, Wiedergabe wird neu gestartet", "ToastProgressIsNotBeingSynced": "Fortschritt wird nicht synchronisiert, Wiedergabe wird neu gestartet",
"ToastProviderCreatedFailed": "Fehler beim Hinzufügen des Anbieters", "ToastProviderCreatedFailed": "Fehler beim hinzufügen des Anbieters",
"ToastProviderCreatedSuccess": "Neuer Anbieter hinzugefügt", "ToastProviderCreatedSuccess": "Neuer Anbieter hinzugefügt",
"ToastProviderNameAndUrlRequired": "Name und URL notwendig", "ToastProviderNameAndUrlRequired": "Name und URL notwendig",
"ToastProviderRemoveSuccess": "Anbieter entfernt", "ToastProviderRemoveSuccess": "Anbieter entfernt",

View file

@ -100,11 +100,9 @@
"ButtonShiftTimes": "Χρόνοι Μετακίνησης", "ButtonShiftTimes": "Χρόνοι Μετακίνησης",
"ButtonShow": "Εμφάνιση", "ButtonShow": "Εμφάνιση",
"ButtonStartM4BEncode": "Έναρξη Κωδικοποίησης M4B", "ButtonStartM4BEncode": "Έναρξη Κωδικοποίησης M4B",
"ButtonStartMetadataEmbed": "Έναρξη Ενσωμάτωσης Μεταδεδομένων",
"ButtonStats": "Στατιστικά", "ButtonStats": "Στατιστικά",
"ButtonSubmit": "Υποβολή", "ButtonSubmit": "Υποβολή",
"ButtonTest": "Δοκιμή", "ButtonTest": "Δοκιμή",
"ButtonUnlinkOpenId": "Αποσύνδεση OpenID",
"ButtonUpload": "Μεταφόρτωση", "ButtonUpload": "Μεταφόρτωση",
"ButtonUploadBackup": "Μεταφόρτωση Αντιγράφου Ασφαλείας", "ButtonUploadBackup": "Μεταφόρτωση Αντιγράφου Ασφαλείας",
"ButtonUploadCover": "Μεταφόρτωση Εξωφύλλου", "ButtonUploadCover": "Μεταφόρτωση Εξωφύλλου",
@ -113,17 +111,11 @@
"ButtonUserEdit": "Επεξεργασίας χρήστη {0}", "ButtonUserEdit": "Επεξεργασίας χρήστη {0}",
"ButtonViewAll": "Εμφάνιση Όλων", "ButtonViewAll": "Εμφάνιση Όλων",
"ButtonYes": "Ναι", "ButtonYes": "Ναι",
"ErrorUploadFetchMetadataAPI": "Σφάλμα κατά την ανάκτηση μεταδεδομένων",
"ErrorUploadFetchMetadataNoResults": "Δεν ήταν δυνατή η ανάκτηση των μεταδεδομένων - δοκιμάστε να ενημερώσετε τον τίτλο και/ή τον συγγραφέα",
"ErrorUploadLacksTitle": "Πρέπει να έχει τίτλο", "ErrorUploadLacksTitle": "Πρέπει να έχει τίτλο",
"HeaderAccount": "Λογαριασμός", "HeaderAccount": "Λογαριασμός",
"HeaderAddCustomMetadataProvider": "Προσθήκη Προσαρμοσμένου Παρόχου Μεταδεδομένων",
"HeaderAdvanced": "Για Προχωρημένους", "HeaderAdvanced": "Για Προχωρημένους",
"HeaderApiKeys": "Κλειδιά API", "HeaderApiKeys": "Κλειδιά API",
"HeaderAppriseNotificationSettings": "Ρυθμίσεις Ειδοποιήσεων Apprise",
"HeaderAudioTracks": "Κομμάτια Ήχου", "HeaderAudioTracks": "Κομμάτια Ήχου",
"HeaderAudiobookTools": "Εργαλεία Διαχείρισης Αρχείων Audiobooks",
"HeaderAuthentication": "Αυθεντικοποίηση",
"HeaderBackups": "Αντίγραφα Ασφαλείας", "HeaderBackups": "Αντίγραφα Ασφαλείας",
"HeaderBulkChapterModal": "Προσθήκη Πολλαπλών Κεφαλαίων", "HeaderBulkChapterModal": "Προσθήκη Πολλαπλών Κεφαλαίων",
"HeaderChangePassword": "Αλλαγή Κωδικού Πρόσβασης", "HeaderChangePassword": "Αλλαγή Κωδικού Πρόσβασης",
@ -224,7 +216,6 @@
"LabelChapters": "Κεφάλαια", "LabelChapters": "Κεφάλαια",
"LabelChaptersFound": "κεφάλαια βρέθηκαν", "LabelChaptersFound": "κεφάλαια βρέθηκαν",
"LabelClosePlayer": "Κλείσιμο αναπαραγωγής", "LabelClosePlayer": "Κλείσιμο αναπαραγωγής",
"LabelCollapseSeries": "Σύμπτυξη Σειράς",
"LabelCollection": "Συλλογή", "LabelCollection": "Συλλογή",
"LabelCollections": "Συλλογές", "LabelCollections": "Συλλογές",
"LabelComplete": "Ολοκλήρωση", "LabelComplete": "Ολοκλήρωση",

View file

@ -275,7 +275,7 @@
"LabelBonus": "Bonus", "LabelBonus": "Bonus",
"LabelBooks": "Libros", "LabelBooks": "Libros",
"LabelButtonText": "Texto del botón", "LabelButtonText": "Texto del botón",
"LabelByAuthor": "por", "LabelByAuthor": "por {0}",
"LabelChangePassword": "Cambiar contraseña", "LabelChangePassword": "Cambiar contraseña",
"LabelChannels": "Canales", "LabelChannels": "Canales",
"LabelChapterCount": "{0} capítulos", "LabelChapterCount": "{0} capítulos",

View file

@ -275,7 +275,7 @@
"LabelBonus": "Bonus", "LabelBonus": "Bonus",
"LabelBooks": "Livres", "LabelBooks": "Livres",
"LabelButtonText": "Texte du bouton", "LabelButtonText": "Texte du bouton",
"LabelByAuthor": "de {0}", "LabelByAuthor": "par {0}",
"LabelChangePassword": "Modifier le mot de passe", "LabelChangePassword": "Modifier le mot de passe",
"LabelChannels": "Canaux", "LabelChannels": "Canaux",
"LabelChapterCount": "{0} Chapitres", "LabelChapterCount": "{0} Chapitres",
@ -436,11 +436,11 @@
"LabelLibraryFilterSublistEmpty": "Aucun {0}", "LabelLibraryFilterSublistEmpty": "Aucun {0}",
"LabelLibraryItem": "Élément de bibliothèque", "LabelLibraryItem": "Élément de bibliothèque",
"LabelLibraryName": "Nom de la bibliothèque", "LabelLibraryName": "Nom de la bibliothèque",
"LabelLibrarySortByProgress": "Progression : Mise à jour", "LabelLibrarySortByProgress": "Progression : dernière mise à jour",
"LabelLibrarySortByProgressFinished": "Progression : Terminé", "LabelLibrarySortByProgressFinished": "Progression : Terminé",
"LabelLibrarySortByProgressStarted": "Progression : En cours", "LabelLibrarySortByProgressStarted": "Progression : Commencé",
"LabelLimit": "Limite", "LabelLimit": "Limite",
"LabelLineSpacing": "Interligne", "LabelLineSpacing": "Espacement des lignes",
"LabelListenAgain": "Écouter à nouveau", "LabelListenAgain": "Écouter à nouveau",
"LabelLogLevelDebug": "Débogage", "LabelLogLevelDebug": "Débogage",
"LabelLogLevelInfo": "Info", "LabelLogLevelInfo": "Info",
@ -961,8 +961,8 @@
"PlaceholderNewCollection": "Nom de la nouvelle collection", "PlaceholderNewCollection": "Nom de la nouvelle collection",
"PlaceholderNewFolderPath": "Nouveau chemin de dossier", "PlaceholderNewFolderPath": "Nouveau chemin de dossier",
"PlaceholderNewPlaylist": "Nouveau nom de liste de lecture", "PlaceholderNewPlaylist": "Nouveau nom de liste de lecture",
"PlaceholderSearch": "Recherche...", "PlaceholderSearch": "Recherche",
"PlaceholderSearchEpisode": "Rechercher un épisode", "PlaceholderSearchEpisode": "Rechercher un épisode..",
"StatsAuthorsAdded": "auteurs ajoutés", "StatsAuthorsAdded": "auteurs ajoutés",
"StatsBooksAdded": "livres ajoutés", "StatsBooksAdded": "livres ajoutés",
"StatsBooksAdditional": "Les ajouts comprennent…", "StatsBooksAdditional": "Les ajouts comprennent…",

View file

@ -81,7 +81,7 @@
"ButtonRemove": "הסר", "ButtonRemove": "הסר",
"ButtonRemoveAll": "הסר הכל", "ButtonRemoveAll": "הסר הכל",
"ButtonRemoveAllLibraryItems": "הסר את כל פריטי הספרייה", "ButtonRemoveAllLibraryItems": "הסר את כל פריטי הספרייה",
"ButtonRemoveFromContinueListening": "הסר מ״המשך האזנה״", "ButtonRemoveFromContinueListening": "הסר מ- המשך האזנה",
"ButtonRemoveFromContinueReading": "הסר מ- המשך קריאה", "ButtonRemoveFromContinueReading": "הסר מ- המשך קריאה",
"ButtonRemoveSeriesFromContinueSeries": "הסר סדרה מ- המשך סדרה", "ButtonRemoveSeriesFromContinueSeries": "הסר סדרה מ- המשך סדרה",
"ButtonReset": "איפוס", "ButtonReset": "איפוס",
@ -121,7 +121,6 @@
"HeaderAccount": "חשבון", "HeaderAccount": "חשבון",
"HeaderAddCustomMetadataProvider": "הוסף ספק מטא-נתונים מותאם אישית", "HeaderAddCustomMetadataProvider": "הוסף ספק מטא-נתונים מותאם אישית",
"HeaderAdvanced": "מתקדם", "HeaderAdvanced": "מתקדם",
"HeaderApiKeys": "מפתחות API",
"HeaderAppriseNotificationSettings": "הגדרות התראות של Apprise", "HeaderAppriseNotificationSettings": "הגדרות התראות של Apprise",
"HeaderAudioTracks": "רצועות קול", "HeaderAudioTracks": "רצועות קול",
"HeaderAudiobookTools": "כלים לניהול קבצי ספרים קוליים", "HeaderAudiobookTools": "כלים לניהול קבצי ספרים קוליים",
@ -166,7 +165,6 @@
"HeaderMetadataOrderOfPrecedence": "סדר העדפת מטא-נתונים", "HeaderMetadataOrderOfPrecedence": "סדר העדפת מטא-נתונים",
"HeaderMetadataToEmbed": "מטא-נתונים להטמעה", "HeaderMetadataToEmbed": "מטא-נתונים להטמעה",
"HeaderNewAccount": "חשבון חדש", "HeaderNewAccount": "חשבון חדש",
"HeaderNewApiKey": "מפתח API חדש",
"HeaderNewLibrary": "ספרייה חדשה", "HeaderNewLibrary": "ספרייה חדשה",
"HeaderNotificationCreate": "צור התראה", "HeaderNotificationCreate": "צור התראה",
"HeaderNotificationUpdate": "עדכון התראה", "HeaderNotificationUpdate": "עדכון התראה",
@ -212,7 +210,6 @@
"HeaderTableOfContents": "תוכן עניינים", "HeaderTableOfContents": "תוכן עניינים",
"HeaderTools": "כלים", "HeaderTools": "כלים",
"HeaderUpdateAccount": "עדכן חשבון", "HeaderUpdateAccount": "עדכן חשבון",
"HeaderUpdateApiKey": "עדכן מפתח API",
"HeaderUpdateAuthor": "עדכן יוצר", "HeaderUpdateAuthor": "עדכן יוצר",
"HeaderUpdateDetails": "עדכן פרטים", "HeaderUpdateDetails": "עדכן פרטים",
"HeaderUpdateLibrary": "עדכן ספרייה", "HeaderUpdateLibrary": "עדכן ספרייה",
@ -242,10 +239,7 @@
"LabelAllUsersExcludingGuests": "כל המשתמשים, ללא אורחים", "LabelAllUsersExcludingGuests": "כל המשתמשים, ללא אורחים",
"LabelAllUsersIncludingGuests": "כל המשתמשים כולל אורחים", "LabelAllUsersIncludingGuests": "כל המשתמשים כולל אורחים",
"LabelAlreadyInYourLibrary": "כבר קיים בספרייה שלך", "LabelAlreadyInYourLibrary": "כבר קיים בספרייה שלך",
"LabelApiKeyCreated": "מפתח API ״{0}״ נוצר בהצלחה.",
"LabelApiKeyCreatedDescription": "אנא העתק את מפתח ה־API כעת, לא ניתן יהיה להציגו שוב.",
"LabelApiKeyUser": "פעל בשם המשתמש", "LabelApiKeyUser": "פעל בשם המשתמש",
"LabelApiKeyUserDescription": "למפתח ה־API יהיו הרשאות זהות למשתמש שעל שמו הוא פועל. ביומני הרישום (logs), הפעולות יופיעו כאילו בוצעו על ידי המשתמש עצמו.",
"LabelApiToken": "טוקן API", "LabelApiToken": "טוקן API",
"LabelAppend": "הוסף לסוף", "LabelAppend": "הוסף לסוף",
"LabelAudioBitrate": "קצב סיביות (לדוגמא 128k)", "LabelAudioBitrate": "קצב סיביות (לדוגמא 128k)",
@ -295,7 +289,6 @@
"LabelContinueListening": "המשך האזנה", "LabelContinueListening": "המשך האזנה",
"LabelContinueReading": "המשך קריאה", "LabelContinueReading": "המשך קריאה",
"LabelContinueSeries": "המשך סדרה", "LabelContinueSeries": "המשך סדרה",
"LabelCorsAllowed": "מקורות CORS מורשים",
"LabelCover": "כריכה", "LabelCover": "כריכה",
"LabelCoverImageURL": "כתובת התמונה ברשת", "LabelCoverImageURL": "כתובת התמונה ברשת",
"LabelCoverProvider": "ספק כריכה", "LabelCoverProvider": "ספק כריכה",
@ -309,7 +302,6 @@
"LabelDeleteFromFileSystemCheckbox": "מחיקה מהמערכת הקבצים (הסר סימון למחיקה רק ממסד הנתונים)", "LabelDeleteFromFileSystemCheckbox": "מחיקה מהמערכת הקבצים (הסר סימון למחיקה רק ממסד הנתונים)",
"LabelDescription": "תיאור", "LabelDescription": "תיאור",
"LabelDeselectAll": "הסר בחירת כל הפריטים", "LabelDeselectAll": "הסר בחירת כל הפריטים",
"LabelDetectedPattern": "תבנית שזוהתה:",
"LabelDevice": "התקן", "LabelDevice": "התקן",
"LabelDeviceInfo": "מידע על התקן", "LabelDeviceInfo": "מידע על התקן",
"LabelDeviceIsAvailableTo": "התקן זמין ל...", "LabelDeviceIsAvailableTo": "התקן זמין ל...",
@ -359,10 +351,6 @@
"LabelExample": "דוגמה", "LabelExample": "דוגמה",
"LabelExpandSeries": "הרחב סדרה", "LabelExpandSeries": "הרחב סדרה",
"LabelExpandSubSeries": "הרחב תת סדרה", "LabelExpandSubSeries": "הרחב תת סדרה",
"LabelExpired": "פג תוקף",
"LabelExpiresAt": "יפוג בתאריך",
"LabelExpiresInSeconds": "יפוג בעוד (שניות)",
"LabelExpiresNever": "ללא הגבלת זמן",
"LabelExplicit": "מפורש", "LabelExplicit": "מפורש",
"LabelExplicitChecked": "בוטה (מסומן)", "LabelExplicitChecked": "בוטה (מסומן)",
"LabelExplicitUnchecked": "לא בוטה (לא מסומן)", "LabelExplicitUnchecked": "לא בוטה (לא מסומן)",
@ -378,7 +366,6 @@
"LabelFilterByUser": "סינון לפי משתמש", "LabelFilterByUser": "סינון לפי משתמש",
"LabelFindEpisodes": "מצא פרקים", "LabelFindEpisodes": "מצא פרקים",
"LabelFinished": "הושלם", "LabelFinished": "הושלם",
"LabelFinishedDate": "הושלם {0}",
"LabelFolder": "תיקייה", "LabelFolder": "תיקייה",
"LabelFolders": "תיקיות", "LabelFolders": "תיקיות",
"LabelFontBold": "מודגש", "LabelFontBold": "מודגש",
@ -423,7 +410,6 @@
"LabelLanguages": "שפות", "LabelLanguages": "שפות",
"LabelLastBookAdded": "הספר האחרון שנוסף", "LabelLastBookAdded": "הספר האחרון שנוסף",
"LabelLastBookUpdated": "הספר האחרון שעודכן", "LabelLastBookUpdated": "הספר האחרון שעודכן",
"LabelLastProgressDate": "התקדמות אחרונה: {0}",
"LabelLastSeen": "נראה לאחרונה", "LabelLastSeen": "נראה לאחרונה",
"LabelLastTime": "הזמן האחרון", "LabelLastTime": "הזמן האחרון",
"LabelLastUpdate": "עדכון אחרון", "LabelLastUpdate": "עדכון אחרון",
@ -436,9 +422,6 @@
"LabelLibraryFilterSublistEmpty": "לא {0}", "LabelLibraryFilterSublistEmpty": "לא {0}",
"LabelLibraryItem": "פריט ספרייה", "LabelLibraryItem": "פריט ספרייה",
"LabelLibraryName": "שם הספרייה", "LabelLibraryName": "שם הספרייה",
"LabelLibrarySortByProgress": "התקדמות: עודכן לאחרונה",
"LabelLibrarySortByProgressFinished": "התקדמות: הושלם",
"LabelLibrarySortByProgressStarted": "התקדמות: הותחל",
"LabelLimit": "מגבלה", "LabelLimit": "מגבלה",
"LabelLineSpacing": "מרווח שורה", "LabelLineSpacing": "מרווח שורה",
"LabelListenAgain": "האזן שוב", "LabelListenAgain": "האזן שוב",
@ -447,7 +430,6 @@
"LabelLogLevelWarn": "אזהרה", "LabelLogLevelWarn": "אזהרה",
"LabelLookForNewEpisodesAfterDate": "חפש פרקים חדשים לאחר תאריך זה", "LabelLookForNewEpisodesAfterDate": "חפש פרקים חדשים לאחר תאריך זה",
"LabelLowestPriority": "העדיפות הנמוכה ביותר", "LabelLowestPriority": "העדיפות הנמוכה ביותר",
"LabelMatchConfidence": "רמת ודאות",
"LabelMatchExistingUsersBy": "התאם משתמשים קיימים לפי", "LabelMatchExistingUsersBy": "התאם משתמשים קיימים לפי",
"LabelMatchExistingUsersByDescription": "משמש לחיבור משתמשים קיימים. לאחר החיבור, המשתמשים יותאמו לפי זיהוי ייחודי מספק ה-SSO שלך", "LabelMatchExistingUsersByDescription": "משמש לחיבור משתמשים קיימים. לאחר החיבור, המשתמשים יותאמו לפי זיהוי ייחודי מספק ה-SSO שלך",
"LabelMaxEpisodesToDownload": "מספר פרקים מקסימלי להורדה. 0 - ללא הגבלה.", "LabelMaxEpisodesToDownload": "מספר פרקים מקסימלי להורדה. 0 - ללא הגבלה.",
@ -477,9 +459,7 @@
"LabelNewestAuthors": "הסופרים האחרונים", "LabelNewestAuthors": "הסופרים האחרונים",
"LabelNewestEpisodes": "הפרקים החדשים ביותר", "LabelNewestEpisodes": "הפרקים החדשים ביותר",
"LabelNextBackupDate": "תאריך הגיבוי הבא", "LabelNextBackupDate": "תאריך הגיבוי הבא",
"LabelNextChapters": "הפרקים הבא יהיו:",
"LabelNextScheduledRun": "הרצה מתוזמנת הבאה", "LabelNextScheduledRun": "הרצה מתוזמנת הבאה",
"LabelNoApiKeys": "אין מפתחות API",
"LabelNoCustomMetadataProviders": "אין ספקי מטא-נתונים מותאמים אישית", "LabelNoCustomMetadataProviders": "אין ספקי מטא-נתונים מותאמים אישית",
"LabelNoEpisodesSelected": "לא נבחרו פרקים", "LabelNoEpisodesSelected": "לא נבחרו פרקים",
"LabelNotFinished": "לא הושלם", "LabelNotFinished": "לא הושלם",
@ -495,21 +475,16 @@
"LabelNotificationsMaxQueueSize": "גודל התור המרבי לאירועי התראה", "LabelNotificationsMaxQueueSize": "גודל התור המרבי לאירועי התראה",
"LabelNotificationsMaxQueueSizeHelp": "האירועים מוגבלים לשליחה אחת לשנייה. האירועים יתעלמו אם התור מלא. הגדרה זו נועדה למנוע ספאם התראות.", "LabelNotificationsMaxQueueSizeHelp": "האירועים מוגבלים לשליחה אחת לשנייה. האירועים יתעלמו אם התור מלא. הגדרה זו נועדה למנוע ספאם התראות.",
"LabelNumberOfBooks": "מספר הספרים", "LabelNumberOfBooks": "מספר הספרים",
"LabelNumberOfChapters": "מספר הפרקים:",
"LabelNumberOfEpisodes": "# פרקים", "LabelNumberOfEpisodes": "# פרקים",
"LabelOpenIDAdvancedPermsClaimDescription": "שם OpenID claim המכילה הרשאות מתקדמות לפעולות משתמש בתוך האפליקציה, אשר יחולו על תפקידים שאינם מנהלי מערכת (<b>אם הוגדרה</b>). אם התביעה חסרה בתגובה, הגישה ל-ABS תידחה. אם אפשרות אחת חסרה, היא תטופל כ-<code>false</code> יש לוודא שטענת ספק הזהויות תואמת את המבנה הצפוי:", "LabelOpenIDAdvancedPermsClaimDescription": "שם OpenID claim המכילה הרשאות מתקדמות לפעולות משתמש בתוך האפליקציה, אשר יחולו על תפקידים שאינם מנהלי מערכת (<b>אם הוגדרה</b>). אם התביעה חסרה בתגובה, הגישה ל-ABS תידחה. אם אפשרות אחת חסרה, היא תטופל כ-<code>false</code> יש לוודא שטענת ספק הזהויות תואמת את המבנה הצפוי:",
"LabelOpenIDClaims": "השאר את האפשרויות הבאות ריקות כדי להשבית הקצאת קבוצות והרשאות מתקדמת, ולאחר מכן להקצות אוטומטית את קבוצת 'משתמש'.", "LabelOpenIDClaims": "השאר את האפשרויות הבאות ריקות כדי להשבית הקצאת קבוצות והרשאות מתקדמת, ולאחר מכן להקצות אוטומטית את קבוצת 'משתמש'.",
"LabelOpenIDGroupClaimDescription": "שם ה־OpenID claim המכיל את רשימת הקבוצות של המשתמש. בדרך כלל נקרא <code>groups</code>. <b>אם הוגדרה</b>, האפליקציה תקצה תפקידים באופן אוטומטי על סמך השיוך לקבוצות, בתנאי ששמות הקבוצות ב־claim הם 'admin', 'user' או 'guest' (ללא רגישות לרישיות - Case-insensitive). ה־claim צריך להכיל רשימה; אם המשתמש משויך למספר קבוצות, האפליקציה תקצה את התפקיד בעל רמת הגישה הגבוהה ביותר. במידה ולא נמצאה קבוצה תואמת, הגישה תיחסם.",
"LabelOpenRSSFeed": "פתח ערוץ RSS", "LabelOpenRSSFeed": "פתח ערוץ RSS",
"LabelOverwrite": "לשכפל", "LabelOverwrite": "לשכפל",
"LabelPaginationPageXOfY": "עמוד {0} מתוך {1}",
"LabelPassword": "סיסמה", "LabelPassword": "סיסמה",
"LabelPath": "נתיב", "LabelPath": "נתיב",
"LabelPermanent": "קבוע",
"LabelPermissionsAccessAllLibraries": "ניתן לגשת לכל הספריות", "LabelPermissionsAccessAllLibraries": "ניתן לגשת לכל הספריות",
"LabelPermissionsAccessAllTags": "ניתן לגשת לכל התגיות", "LabelPermissionsAccessAllTags": "ניתן לגשת לכל התגיות",
"LabelPermissionsAccessExplicitContent": "ניתן לגשת לתוכן בוטה", "LabelPermissionsAccessExplicitContent": "ניתן לגשת לתוכן בוטה",
"LabelPermissionsCreateEreader": "ניתן ליצור קורא ספרים דיגיטלי",
"LabelPermissionsDelete": "מותר למחוק", "LabelPermissionsDelete": "מותר למחוק",
"LabelPermissionsDownload": "מותר להוריד", "LabelPermissionsDownload": "מותר להוריד",
"LabelPermissionsUpdate": "מותר לעדכן", "LabelPermissionsUpdate": "מותר לעדכן",
@ -517,8 +492,6 @@
"LabelPersonalYearReview": "השנה שלך בסקירה ({0})", "LabelPersonalYearReview": "השנה שלך בסקירה ({0})",
"LabelPhotoPathURL": "נתיב/URL לתמונה", "LabelPhotoPathURL": "נתיב/URL לתמונה",
"LabelPlayMethod": "שיטת הפעלה", "LabelPlayMethod": "שיטת הפעלה",
"LabelPlaybackRateIncrementDecrement": "שיעור הגדלה/הפחתה של מהירות ההשמעה",
"LabelPlayerChapterNumberMarker": "{0} מתוך {1}",
"LabelPlaylists": "רשימות השמעה", "LabelPlaylists": "רשימות השמעה",
"LabelPodcast": "פודקאסט", "LabelPodcast": "פודקאסט",
"LabelPodcastSearchRegion": "אזור חיפוש פודקאסט", "LabelPodcastSearchRegion": "אזור חיפוש פודקאסט",
@ -530,14 +503,10 @@
"LabelPrimaryEbook": "ספר אלקטרוני ראשי", "LabelPrimaryEbook": "ספר אלקטרוני ראשי",
"LabelProgress": "התקדמות", "LabelProgress": "התקדמות",
"LabelProvider": "ספק", "LabelProvider": "ספק",
"LabelProviderAuthorizationValue": "ערך כותרת האימות (Authorization Header)",
"LabelPubDate": "תאריך פרסום", "LabelPubDate": "תאריך פרסום",
"LabelPublishYear": "שנת הפרסום", "LabelPublishYear": "שנת הפרסום",
"LabelPublishedDate": "פורסם {0}", "LabelPublishedDate": "פורסם {0}",
"LabelPublishedDecade": "עשור פרסום",
"LabelPublishedDecades": "עשורי פרסום",
"LabelPublisher": "מוציא לאור", "LabelPublisher": "מוציא לאור",
"LabelPublishers": "מוצאים לאור",
"LabelRSSFeedCustomOwnerEmail": "אימייל בעלים מותאם אישית", "LabelRSSFeedCustomOwnerEmail": "אימייל בעלים מותאם אישית",
"LabelRSSFeedCustomOwnerName": "שם בעלים מותאם אישית", "LabelRSSFeedCustomOwnerName": "שם בעלים מותאם אישית",
"LabelRSSFeedOpen": "ערוץ RSS פתוח", "LabelRSSFeedOpen": "ערוץ RSS פתוח",
@ -545,7 +514,6 @@
"LabelRSSFeedSlug": "Slug של ערוץ ה-RSS", "LabelRSSFeedSlug": "Slug של ערוץ ה-RSS",
"LabelRSSFeedURL": "כתובת ערוץ ה-RSS", "LabelRSSFeedURL": "כתובת ערוץ ה-RSS",
"LabelRandomly": "באופן אקראי", "LabelRandomly": "באופן אקראי",
"LabelReAddSeriesToContinueListening": "הוסף סדרה בחזרה אל ״המשך האזנה״",
"LabelRead": "קריאה", "LabelRead": "קריאה",
"LabelReadAgain": "קרא שוב", "LabelReadAgain": "קרא שוב",
"LabelReadEbookWithoutProgress": "קרא/י ספר אלקטרוני ללא שמירת התקדמות", "LabelReadEbookWithoutProgress": "קרא/י ספר אלקטרוני ללא שמירת התקדמות",
@ -555,44 +523,29 @@
"LabelRedo": "עשה שוב", "LabelRedo": "עשה שוב",
"LabelRegion": "אזור", "LabelRegion": "אזור",
"LabelReleaseDate": "תאריך הוצאה לאור", "LabelReleaseDate": "תאריך הוצאה לאור",
"LabelRemoveAllMetadataAbs": "הסר את כל קבצי metadata.abs",
"LabelRemoveAllMetadataJson": "הסר את כל קבצי metadata.json",
"LabelRemoveAudibleBranding": "הסר פתיח וסיום של Audible מהפרקים",
"LabelRemoveCover": "הסר כריכה", "LabelRemoveCover": "הסר כריכה",
"LabelRemoveMetadataFile": "הסר קבצי מטא־נתונים מתיקיות הפריטים בספרייה",
"LabelRemoveMetadataFileHelp": "הסר את כל קבצי metadata.json ו־metadata.abs מתיקיות {0}.",
"LabelRowsPerPage": "שורות לעמוד", "LabelRowsPerPage": "שורות לעמוד",
"LabelSearchTerm": "מונח חיפוש", "LabelSearchTerm": "מונח חיפוש",
"LabelSearchTitle": "כותרת חיפוש", "LabelSearchTitle": "כותרת חיפוש",
"LabelSearchTitleOrASIN": "כותרת חיפוש או ASIN", "LabelSearchTitleOrASIN": "כותרת חיפוש או ASIN",
"LabelSeason": "עונה", "LabelSeason": "עונה",
"LabelSeasonNumber": "עונה #{0}",
"LabelSelectAll": "בחר הכל",
"LabelSelectAllEpisodes": "בחר את כל הפרקים", "LabelSelectAllEpisodes": "בחר את כל הפרקים",
"LabelSelectEpisodesShowing": "בחר {0} פרקים המוצגים", "LabelSelectEpisodesShowing": "בחר {0} פרקים המוצגים",
"LabelSelectUser": "בחר משתמש",
"LabelSelectUsers": "בחר משתמשים", "LabelSelectUsers": "בחר משתמשים",
"LabelSendEbookToDevice": "שלח ספר אלקטרוני ל...", "LabelSendEbookToDevice": "שלח ספר אלקטרוני ל...",
"LabelSequence": "רצף", "LabelSequence": "רצף",
"LabelSerial": "מספר סידורי",
"LabelSeries": "סדרה", "LabelSeries": "סדרה",
"LabelSeriesName": "שם הסדרה", "LabelSeriesName": "שם הסדרה",
"LabelSeriesProgress": "התקדמות בסדרה", "LabelSeriesProgress": "התקדמות בסדרה",
"LabelServerLogLevel": "רמת פירוט יומני הרישום",
"LabelServerYearReview": "השנה בסקירה של השרת ({0})", "LabelServerYearReview": "השנה בסקירה של השרת ({0})",
"LabelSetEbookAsPrimary": "קבע כראשי", "LabelSetEbookAsPrimary": "קבע כראשי",
"LabelSetEbookAsSupplementary": "קבע כמשלים", "LabelSetEbookAsSupplementary": "קבע כמשלים",
"LabelSettingsAllowIframe": "אפשר הטמעה בתוך iframe",
"LabelSettingsAudiobooksOnly": "רק ספרי קול", "LabelSettingsAudiobooksOnly": "רק ספרי קול",
"LabelSettingsAudiobooksOnlyHelp": "הפעלת ההגדרה הזו תתעלם מקבצי ספרים אלקטרוניים אלא אם כן הם נמצאים בתיקיית ספרי קול, שבמקרה זה יקבעו כספרים אלקטרוניים נלווים", "LabelSettingsAudiobooksOnlyHelp": "הפעלת ההגדרה הזו תתעלם מקבצי ספרים אלקטרוניים אלא אם כן הם נמצאים בתיקיית ספרי קול, שבמקרה זה יקבעו כספרים אלקטרוניים נלווים",
"LabelSettingsBookshelfViewHelp": "עיצוב סקאומורפי עם מדפי עץ", "LabelSettingsBookshelfViewHelp": "עיצוב סקאומורפי עם מדפי עץ",
"LabelSettingsChromecastSupport": "תמיכה ב-Chromecast", "LabelSettingsChromecastSupport": "תמיכה ב-Chromecast",
"LabelSettingsDateFormat": "פורמט תאריך", "LabelSettingsDateFormat": "פורמט תאריך",
"LabelSettingsEnableWatcher": "הפעל מעקב שינויים בספריות",
"LabelSettingsEnableWatcherForLibrary": "הפעל מעקב שינויים בספרייה",
"LabelSettingsEnableWatcherHelp": "מאפשר הוספת/עדכון אוטומטי של פריטים כאשר שינויי קבצים זוהים. *דורש איתחול שרת", "LabelSettingsEnableWatcherHelp": "מאפשר הוספת/עדכון אוטומטי של פריטים כאשר שינויי קבצים זוהים. *דורש איתחול שרת",
"LabelSettingsEpubsAllowScriptedContent": "אפשור תוכן הכולל סקריפטים ב־ePubs",
"LabelSettingsEpubsAllowScriptedContentHelp": "אפשר לקובצי EPUB להריץ סקריפטים. מומלץ להשאיר את ההגדרה כבויה, אלא אם כן מקור קובצי ה־ePub מהימן.",
"LabelSettingsExperimentalFeatures": "תכונות ניסיוניות", "LabelSettingsExperimentalFeatures": "תכונות ניסיוניות",
"LabelSettingsExperimentalFeaturesHelp": "תכונות בפיתוח שדורשות משובך ובדיקה. לחץ לפתיחת דיון ב-GitHub.", "LabelSettingsExperimentalFeaturesHelp": "תכונות בפיתוח שדורשות משובך ובדיקה. לחץ לפתיחת דיון ב-GitHub.",
"LabelSettingsFindCovers": "מצא כריכות", "LabelSettingsFindCovers": "מצא כריכות",
@ -601,8 +554,7 @@
"LabelSettingsHideSingleBookSeriesHelp": "סדרות הכוללות ספר אחד יוסתרו מדף הסדרות ומדף הבית.", "LabelSettingsHideSingleBookSeriesHelp": "סדרות הכוללות ספר אחד יוסתרו מדף הסדרות ומדף הבית.",
"LabelSettingsHomePageBookshelfView": "השתמש בתצוגת מדף בדף הבית", "LabelSettingsHomePageBookshelfView": "השתמש בתצוגת מדף בדף הבית",
"LabelSettingsLibraryBookshelfView": "השתמש בתצוגת מדף בספרייה", "LabelSettingsLibraryBookshelfView": "השתמש בתצוגת מדף בספרייה",
"LabelSettingsLibraryMarkAsFinishedWhen": "סמן פריט מדיה כהושלם כאשר", "LabelSettingsOnlyShowLaterBooksInContinueSeries": "דלג על ספרים קודמים ב-המשך סדרה",
"LabelSettingsOnlyShowLaterBooksInContinueSeries": "דלג על ספרים קודמים ב״המשך סדרה״",
"LabelSettingsOnlyShowLaterBooksInContinueSeriesHelp": "מדף המשך סדרות מציג את הספר הראשון שלא הושמע בסדרה שיש בה לפחות ספר אחד שהושלם ואין ספרים שכבר באמצע שמיעה. הפעלת הגדרה זו תמשיך סדרות מהספר שהושלם הכי מתקדם בסדרה במקום מהספר הראשון שלא הושמע.", "LabelSettingsOnlyShowLaterBooksInContinueSeriesHelp": "מדף המשך סדרות מציג את הספר הראשון שלא הושמע בסדרה שיש בה לפחות ספר אחד שהושלם ואין ספרים שכבר באמצע שמיעה. הפעלת הגדרה זו תמשיך סדרות מהספר שהושלם הכי מתקדם בסדרה במקום מהספר הראשון שלא הושמע.",
"LabelSettingsParseSubtitles": "פענח כתוביות", "LabelSettingsParseSubtitles": "פענח כתוביות",
"LabelSettingsParseSubtitlesHelp": "העתק כותרת משנה משם תיקיית הספר.<br>כותרת המשנה חייבת להיות מופרדת עם התו ״-״<br>לדוגמא, כותרת המשנה לספר ״שם הספר - כותרת משנה״, היא ״כותרת משנה״", "LabelSettingsParseSubtitlesHelp": "העתק כותרת משנה משם תיקיית הספר.<br>כותרת המשנה חייבת להיות מופרדת עם התו ״-״<br>לדוגמא, כותרת המשנה לספר ״שם הספר - כותרת משנה״, היא ״כותרת משנה״",
@ -619,22 +571,13 @@
"LabelSettingsStoreMetadataWithItem": "אחסן מטה-נתונים עם הפריט", "LabelSettingsStoreMetadataWithItem": "אחסן מטה-נתונים עם הפריט",
"LabelSettingsStoreMetadataWithItemHelp": "כברירת מחדל, קבצי מטה-נתונים מאוחסנים ב- /metadata/items, הפעלת ההגדרה תאחסן קבצי מטה-נתונים בתיקיית פריט שלך בספרייה", "LabelSettingsStoreMetadataWithItemHelp": "כברירת מחדל, קבצי מטה-נתונים מאוחסנים ב- /metadata/items, הפעלת ההגדרה תאחסן קבצי מטה-נתונים בתיקיית פריט שלך בספרייה",
"LabelSettingsTimeFormat": "פורמט זמן", "LabelSettingsTimeFormat": "פורמט זמן",
"LabelShare": "שתף",
"LabelShareDownloadableHelp": "אפשר למי שיש ברשותו קישור שיתוף להוריד קובץ ZIP של פריט הספרייה.",
"LabelShareURL": "שתף קישור",
"LabelShowAll": "הצג הכל", "LabelShowAll": "הצג הכל",
"LabelShowSeconds": "הצג שניות",
"LabelShowSubtitles": "הצג כתוביות",
"LabelSize": "גודל", "LabelSize": "גודל",
"LabelSleepTimer": "טיימר שינה", "LabelSleepTimer": "טיימר שינה",
"LabelSortAscending": "סדר עולה",
"LabelSortDescending": "סדר יורד",
"LabelSortPubDate": "מיין לפי תאריך פרסום",
"LabelStart": "התחל", "LabelStart": "התחל",
"LabelStartTime": "זמן התחלה", "LabelStartTime": "זמן התחלה",
"LabelStarted": "התחיל", "LabelStarted": "התחיל",
"LabelStartedAt": "התחיל ב", "LabelStartedAt": "התחיל ב",
"LabelStartedDate": "הותחל {0}",
"LabelStatsAudioTracks": "רצועות שמע", "LabelStatsAudioTracks": "רצועות שמע",
"LabelStatsAuthors": "מחברים", "LabelStatsAuthors": "מחברים",
"LabelStatsBestDay": "היום הטוב ביותר", "LabelStatsBestDay": "היום הטוב ביותר",
@ -664,13 +607,7 @@
"LabelTheme": "ערכת נושא", "LabelTheme": "ערכת נושא",
"LabelThemeDark": "כהה", "LabelThemeDark": "כהה",
"LabelThemeLight": "בהיר", "LabelThemeLight": "בהיר",
"LabelThemeSepia": "ספיה",
"LabelTimeBase": "בסיס זמן", "LabelTimeBase": "בסיס זמן",
"LabelTimeDurationXHours": "{0} שעות",
"LabelTimeDurationXMinutes": "{0} דקות",
"LabelTimeDurationXSeconds": "{0} שניות",
"LabelTimeInMinutes": "זמן בשניות",
"LabelTimeLeft": "נותרו {0}",
"LabelTimeListened": "זמן האזנה", "LabelTimeListened": "זמן האזנה",
"LabelTimeListenedToday": "זמן האזנה היום", "LabelTimeListenedToday": "זמן האזנה היום",
"LabelTimeRemaining": "{0} נותרו", "LabelTimeRemaining": "{0} נותרו",
@ -678,7 +615,6 @@
"LabelTitle": "כותרת", "LabelTitle": "כותרת",
"LabelToolsEmbedMetadata": "הטמעת מטה-נתונים", "LabelToolsEmbedMetadata": "הטמעת מטה-נתונים",
"LabelToolsEmbedMetadataDescription": "הטמעת מטה-נתונים לקבצי שמע כולל תמונות כריכה ופרקים.", "LabelToolsEmbedMetadataDescription": "הטמעת מטה-נתונים לקבצי שמע כולל תמונות כריכה ופרקים.",
"LabelToolsM4bEncoder": "מקודד M4B",
"LabelToolsMakeM4b": "יצירת קובץ אודיו M4B", "LabelToolsMakeM4b": "יצירת קובץ אודיו M4B",
"LabelToolsMakeM4bDescription": "יצירת קובץ אודיו .M4B עם מטה-נתונים מוטמעים, תמונת שער ופרקים.", "LabelToolsMakeM4bDescription": "יצירת קובץ אודיו .M4B עם מטה-נתונים מוטמעים, תמונת שער ופרקים.",
"LabelToolsSplitM4b": "פיצול M4B ל-MP3", "LabelToolsSplitM4b": "פיצול M4B ל-MP3",
@ -691,39 +627,29 @@
"LabelTracksMultiTrack": "רב-ערוצי", "LabelTracksMultiTrack": "רב-ערוצי",
"LabelTracksNone": "אין ערוצים", "LabelTracksNone": "אין ערוצים",
"LabelTracksSingleTrack": "רצועה יחידה", "LabelTracksSingleTrack": "רצועה יחידה",
"LabelTrailer": "קדימון",
"LabelType": "סוג", "LabelType": "סוג",
"LabelUnabridged": "לא מקוצר", "LabelUnabridged": "לא מקוצר",
"LabelUndo": "בטל", "LabelUndo": "בטל",
"LabelUnknown": "לא ידוע", "LabelUnknown": "לא ידוע",
"LabelUnknownPublishDate": "תאריך הוצאה לאור לא ידוע",
"LabelUpdateCover": "עדכן כריכה", "LabelUpdateCover": "עדכן כריכה",
"LabelUpdateCoverHelp": "אפשר החלפה של כריכות קיימות עבור הספרים הנבחרים כאשר נמצאה התאמה", "LabelUpdateCoverHelp": "אפשר החלפה של כריכות קיימות עבור הספרים הנבחרים כאשר נמצאה התאמה",
"LabelUpdateDetails": "עדכון פרטים", "LabelUpdateDetails": "עדכון פרטים",
"LabelUpdateDetailsHelp": "אפשר החלפה של פרטים קיימים עבור הספרים הנבחרים כאשר נמצאה התאמה", "LabelUpdateDetailsHelp": "אפשר החלפה של פרטים קיימים עבור הספרים הנבחרים כאשר נמצאה התאמה",
"LabelUpdatedAt": "עודכן ב-", "LabelUpdatedAt": "עודכן ב-",
"LabelUploaderDragAndDrop": "גרור ושחרר קבצים או תיקיות", "LabelUploaderDragAndDrop": "גרור ושחרר קבצים או תיקיות",
"LabelUploaderDragAndDropFilesOnly": "גרור ושחרר קבצים",
"LabelUploaderDropFiles": "שחרר קבצים", "LabelUploaderDropFiles": "שחרר קבצים",
"LabelUploaderItemFetchMetadataHelp": "משיכת כותרת, סופר וסדרה באופן אוטומטי", "LabelUploaderItemFetchMetadataHelp": "משיכת כותרת, סופר וסדרה באופן אוטומטי",
"LabelUseAdvancedOptions": "השתמש באפשרויות מתקדמות",
"LabelUseChapterTrack": "השתמש ברצועות הפרקים", "LabelUseChapterTrack": "השתמש ברצועות הפרקים",
"LabelUseFullTrack": "השתמש ברצועה המלאה", "LabelUseFullTrack": "השתמש ברצועה המלאה",
"LabelUseZeroForUnlimited": "השתמש ב־0 מתוך אין־סוף",
"LabelUser": "משתמש", "LabelUser": "משתמש",
"LabelUsername": "שם משתמש", "LabelUsername": "שם משתמש",
"LabelValue": "ערך", "LabelValue": "ערך",
"LabelVersion": "גרסה", "LabelVersion": "גרסה",
"LabelViewBookmarks": "הצג סימניות", "LabelViewBookmarks": "הצג סימניות",
"LabelViewChapters": "הצג פרקים", "LabelViewChapters": "הצג פרקים",
"LabelViewPlayerSettings": "הצג הגדרות נגן",
"LabelViewQueue": "הצג תור נגן", "LabelViewQueue": "הצג תור נגן",
"LabelVolume": "עוצמת קול", "LabelVolume": "עוצמת קול",
"LabelWebRedirectURLsDescription": "יש לאשר את הכתובות הבאות אצל ספק ה־OAuth כדי לאפשר הפניה חזרה לאפליקציית הדפדפן לאחר ההתחברות:",
"LabelWebRedirectURLsSubfolder": "תיקיית משנה לכתובות הפניה",
"LabelWeekdaysToRun": "ימי השבוע להרצה", "LabelWeekdaysToRun": "ימי השבוע להרצה",
"LabelXBooks": "{0} ספרים",
"LabelXItems": "{0} פריטים",
"LabelYearReviewHide": "הסתר סקירת שנה", "LabelYearReviewHide": "הסתר סקירת שנה",
"LabelYearReviewShow": "הצג סקירת שנה", "LabelYearReviewShow": "הצג סקירת שנה",
"LabelYourAudiobookDuration": "משך הספר הקולי שלך", "LabelYourAudiobookDuration": "משך הספר הקולי שלך",
@ -732,55 +658,31 @@
"LabelYourProgress": "ההתקדמות שלך", "LabelYourProgress": "ההתקדמות שלך",
"MessageAddToPlayerQueue": "הוסף לתור הנגן", "MessageAddToPlayerQueue": "הוסף לתור הנגן",
"MessageAppriseDescription": "כדי להשתמש בתכונה זו יש לך להריץ מופע של <a href=\"https://github.com/caronc/apprise-api\" target=\"_blank\">ממשק התכנית האפליקציה</a> או API שיטפל בבקשות אלו. <br /> כתובת URL של ממשק ה-Apprise API צריכה להיות הנתיב המלא לשליחת ההתראה, לדוגמה, אם המופע של ה-API שלך מוצע ב-<code>http://192.168.1.1:8337</code> אז עליך לשים <code>http://192.168.1.1:8337/notify</code>.", "MessageAppriseDescription": "כדי להשתמש בתכונה זו יש לך להריץ מופע של <a href=\"https://github.com/caronc/apprise-api\" target=\"_blank\">ממשק התכנית האפליקציה</a> או API שיטפל בבקשות אלו. <br /> כתובת URL של ממשק ה-Apprise API צריכה להיות הנתיב המלא לשליחת ההתראה, לדוגמה, אם המופע של ה-API שלך מוצע ב-<code>http://192.168.1.1:8337</code> אז עליך לשים <code>http://192.168.1.1:8337/notify</code>.",
"MessageAsinCheck": "יש לוודא שימוש ב־ASIN מאזור ה־Audible הנכון, ולא מ־Amazon.",
"MessageAuthenticationLegacyTokenWarning": "אסימוני API ישנים יוסרו בעתיד. יש להשתמש ב <a href=\"/config/api-keys\">מפתחות API</a> במקום.",
"MessageAuthenticationOIDCChangesRestart": "יש להפעיל מחדש את השרת לאחר השמירה כדי להחיל את שינויי ה־OIDC.",
"MessageAuthenticationSecurityMessage": "האימות שופר מטעמי אבטחה. כל המשתמשים נדרשים להתחבר מחדש.",
"MessageBackupsDescription": "גיבויים כוללים משתמשים, התקדמות משתמש, פרטי פריטי ספרייה, הגדרות שרת ותמונות השמורות ב-<code>/metadata/items</code> & <code>/metadata/authors</code>. גיבויים <strong>לא</strong> כוללים קבצים שמורים בתיקיות הספרייה שלך.", "MessageBackupsDescription": "גיבויים כוללים משתמשים, התקדמות משתמש, פרטי פריטי ספרייה, הגדרות שרת ותמונות השמורות ב-<code>/metadata/items</code> & <code>/metadata/authors</code>. גיבויים <strong>לא</strong> כוללים קבצים שמורים בתיקיות הספרייה שלך.",
"MessageBackupsLocationEditNote": "הערה: שינוי מיקום הגיבוי לא יגרום להעברה או לשינוי של גיבויים קיימים",
"MessageBackupsLocationNoEditNote": "הערה: מיקום הגיבוי מוגדר באמצעות משתנה סביבה ולא ניתן לשנותו כאן.",
"MessageBackupsLocationPathEmpty": "נתיב מיקום הגיבוי אינו יכול להיות ריק",
"MessageBatchEditPopulateMapDetailsAllHelp": "מלא את השדות הפעילים בנתונים מכל הפריטים. שדות בעלי ערכים מרובים ימוזגו",
"MessageBatchEditPopulateMapDetailsItemHelp": "מלא את שדות פרטי המיפוי הפעילים בנתונים מפריט זה",
"MessageBatchQuickMatchDescription": "התאמה מהירה תנסה להוסיף כריכות ומטה-נתונים חסרים עבור הפריטים הנבחרים. הפעל את האפשרויות למטה כדי לאפשר להתאמה מהירה להחליף כריכות קיימות ו/או מטה-נתונים.", "MessageBatchQuickMatchDescription": "התאמה מהירה תנסה להוסיף כריכות ומטה-נתונים חסרים עבור הפריטים הנבחרים. הפעל את האפשרויות למטה כדי לאפשר להתאמה מהירה להחליף כריכות קיימות ו/או מטה-נתונים.",
"MessageBookshelfNoCollections": "עדיין לא יצרת אוספים", "MessageBookshelfNoCollections": "עדיין לא יצרת אוספים",
"MessageBookshelfNoCollectionsHelp": "האוספים ציבוריים. כל המשתמשים בעלי גישה לספרייה יכולים לראות אותם.",
"MessageBookshelfNoRSSFeeds": "אין ערוצי RSS פתוחים", "MessageBookshelfNoRSSFeeds": "אין ערוצי RSS פתוחים",
"MessageBookshelfNoResultsForFilter": "אין תוצאות עבור סינון \"{0}: {1}\"", "MessageBookshelfNoResultsForFilter": "אין תוצאות עבור סינון \"{0}: {1}\"",
"MessageBookshelfNoResultsForQuery": "אין תוצאות עבור השאילתה",
"MessageBookshelfNoSeries": "אין לך סדרות", "MessageBookshelfNoSeries": "אין לך סדרות",
"MessageBulkChapterPattern": "כמה פרקים להוסיף לפי תבנית מספור זו?",
"MessageChapterEndIsAfter": "זמן סיום הפרק אחרי סיום הספר הקולי שלך", "MessageChapterEndIsAfter": "זמן סיום הפרק אחרי סיום הספר הקולי שלך",
"MessageChapterErrorFirstNotZero": "הפרק הראשון חייב להתחיל ב-0", "MessageChapterErrorFirstNotZero": "הפרק הראשון חייב להתחיל ב-0",
"MessageChapterErrorStartGteDuration": "זמן התחלה לא תקין, חייב להיות פחות ממשך הספר הקולי", "MessageChapterErrorStartGteDuration": "זמן התחלה לא תקין, חייב להיות פחות ממשך הספר הקולי",
"MessageChapterErrorStartLtPrev": "זמן התחלה לא תקין, חייב להיות גדול או שווה לזמן ההתחלה של הפרק הקודם", "MessageChapterErrorStartLtPrev": "זמן התחלה לא תקין, חייב להיות גדול או שווה לזמן ההתחלה של הפרק הקודם",
"MessageChapterStartIsAfter": "התחלת הפרק אחרי סיום הספר הקולי שלך", "MessageChapterStartIsAfter": "התחלת הפרק אחרי סיום הספר הקולי שלך",
"MessageChaptersNotFound": "לא נמצאו פרקים",
"MessageCheckingCron": "בודק את תזמון העבודה...", "MessageCheckingCron": "בודק את תזמון העבודה...",
"MessageConfirmCloseFeed": "האם אתה בטוח שאתה רוצה לסגור את הערוץ הזה?", "MessageConfirmCloseFeed": "האם אתה בטוח שאתה רוצה לסגור את הערוץ הזה?",
"MessageConfirmDeleteApiKey": "האם למחוק את מפתח ה־API \"{0}\"?",
"MessageConfirmDeleteBackup": "האם אתה בטוח שברצונך למחוק גיבוי עבור {0}?", "MessageConfirmDeleteBackup": "האם אתה בטוח שברצונך למחוק גיבוי עבור {0}?",
"MessageConfirmDeleteDevice": "האם למחוק את הקורא האלקטרוני \"{0}\"?",
"MessageConfirmDeleteFile": "הקובץ ימחק לצמיתות מהמערכת שלך. האם אתה בטוח?", "MessageConfirmDeleteFile": "הקובץ ימחק לצמיתות מהמערכת שלך. האם אתה בטוח?",
"MessageConfirmDeleteLibrary": "האם אתה בטוח שברצונך למחוק לצמיתות את הספרייה \"{0}\"?", "MessageConfirmDeleteLibrary": "האם אתה בטוח שברצונך למחוק לצמיתות את הספרייה \"{0}\"?",
"MessageConfirmDeleteLibraryItem": "פריט הספרייה יימחק לצמיתות ממסד הנתונים ומהמערכת שלך. האם אתה בטוח?", "MessageConfirmDeleteLibraryItem": "פריט הספרייה יימחק לצמיתות ממסד הנתונים ומהמערכת שלך. האם אתה בטוח?",
"MessageConfirmDeleteLibraryItems": "פריטי הספרייה {0} יימחקו ממסד הנתונים ומהמערכת שלך. האם אתה בטוח?", "MessageConfirmDeleteLibraryItems": "פריטי הספרייה {0} יימחקו ממסד הנתונים ומהמערכת שלך. האם אתה בטוח?",
"MessageConfirmDeleteMetadataProvider": "האם למחוק את ספק המטא־נתונים המותאם \"{0}\"?",
"MessageConfirmDeleteNotification": "האם למחוק התראה זו?",
"MessageConfirmDeleteSession": "האם אתה בטוח שאתה רוצה למחוק את ההפעלה הזו?", "MessageConfirmDeleteSession": "האם אתה בטוח שאתה רוצה למחוק את ההפעלה הזו?",
"MessageConfirmEmbedMetadataInAudioFiles": "האם להטמיע מטא־נתונים ב־{0} קובצי שמע?",
"MessageConfirmForceReScan": "האם אתה בטוח שאתה רוצה להכריח סריקה מחדש?", "MessageConfirmForceReScan": "האם אתה בטוח שאתה רוצה להכריח סריקה מחדש?",
"MessageConfirmMarkAllEpisodesFinished": "האם אתה בטוח שברצונך לסמן את כל הפרקים כהסתיימו?", "MessageConfirmMarkAllEpisodesFinished": "האם אתה בטוח שברצונך לסמן את כל הפרקים כהסתיימו?",
"MessageConfirmMarkAllEpisodesNotFinished": "האם אתה בטוח שברצונך לסמן את כל הפרקים כלא הסתיימו?", "MessageConfirmMarkAllEpisodesNotFinished": "האם אתה בטוח שברצונך לסמן את כל הפרקים כלא הסתיימו?",
"MessageConfirmMarkItemFinished": "האם לסמן את \"{0}\" כהושלם?",
"MessageConfirmMarkItemNotFinished": "האם לסמן את \"{0}\" כלא הושלם?",
"MessageConfirmMarkSeriesFinished": "האם אתה בטוח שברצונך לסמן את כל הספרים בסדרה זו כהסתיימו?", "MessageConfirmMarkSeriesFinished": "האם אתה בטוח שברצונך לסמן את כל הספרים בסדרה זו כהסתיימו?",
"MessageConfirmMarkSeriesNotFinished": "האם אתה בטוח שברצונך לסמן את כל הספרים בסדרה זו כלא הסתיימו?", "MessageConfirmMarkSeriesNotFinished": "האם אתה בטוח שברצונך לסמן את כל הספרים בסדרה זו כלא הסתיימו?",
"MessageConfirmNotificationTestTrigger": "האם להפעיל התראה זו עם נתוני בדיקה?",
"MessageConfirmPurgeCache": "ניקוי המטמון ימחק את כל התיקייה ב־<code>/metadata/cache</code>.<br /><br />האם למחוק את תיקיית המטמון?",
"MessageConfirmPurgeItemsCache": "ניקוי מטמון הפריטים ימחק את כל התיקייה ב־<code>metadata/cache/items/</code>.<br />האם למחוק?",
"MessageConfirmQuickEmbed": "אזהרה! הטמעה מהירה לא תגבה גיבוי של קבצי האודיו שלך. וודא שיש לך גיבוי של קבצי האודיו שלך. <br><br>האם ברצונך להמשיך?", "MessageConfirmQuickEmbed": "אזהרה! הטמעה מהירה לא תגבה גיבוי של קבצי האודיו שלך. וודא שיש לך גיבוי של קבצי האודיו שלך. <br><br>האם ברצונך להמשיך?",
"MessageConfirmQuickMatchEpisodes": "התאמה מהירה תדרוס פרטים עבור פרקים תואמים. רק פרקים ללא התאמה יעודכנו. האם להמשיך?",
"MessageConfirmReScanLibraryItems": "האם אתה בטוח שברצונך לסרוק מחדש {0} פריטים?", "MessageConfirmReScanLibraryItems": "האם אתה בטוח שברצונך לסרוק מחדש {0} פריטים?",
"MessageConfirmRemoveAllChapters": "האם אתה בטוח שברצונך להסיר את כל הפרקים?", "MessageConfirmRemoveAllChapters": "האם אתה בטוח שברצונך להסיר את כל הפרקים?",
"MessageConfirmRemoveAuthor": "האם אתה בטוח שברצונך להסיר את המחבר \"{0}\"?", "MessageConfirmRemoveAuthor": "האם אתה בטוח שברצונך להסיר את המחבר \"{0}\"?",

View file

@ -436,9 +436,9 @@
"LabelLibraryFilterSublistEmpty": "Br {0}", "LabelLibraryFilterSublistEmpty": "Br {0}",
"LabelLibraryItem": "Stavka knjižnice", "LabelLibraryItem": "Stavka knjižnice",
"LabelLibraryName": "Ime knjižnice", "LabelLibraryName": "Ime knjižnice",
"LabelLibrarySortByProgress": "Napredak: Zadnje ažuriranje", "LabelLibrarySortByProgress": "Napredak: zadnje ažurirano",
"LabelLibrarySortByProgressFinished": "Napredak: Završeno", "LabelLibrarySortByProgressFinished": "Napredak: završeno",
"LabelLibrarySortByProgressStarted": "Napredak: Započeto", "LabelLibrarySortByProgressStarted": "Napredak: započeto",
"LabelLimit": "Ograničenje", "LabelLimit": "Ograničenje",
"LabelLineSpacing": "Razmak između redaka", "LabelLineSpacing": "Razmak između redaka",
"LabelListenAgain": "Ponovno poslušaj", "LabelListenAgain": "Ponovno poslušaj",

View file

@ -205,7 +205,7 @@
"HeaderSleepTimer": "Alvásidőzítő", "HeaderSleepTimer": "Alvásidőzítő",
"HeaderStatsLargestItems": "Legnagyobb elemek", "HeaderStatsLargestItems": "Legnagyobb elemek",
"HeaderStatsLongestItems": "Leghosszabb elemek (órában)", "HeaderStatsLongestItems": "Leghosszabb elemek (órában)",
"HeaderStatsMinutesListeningChart": "Hallgatási grafikon percben (az elmúlt 7 napból)", "HeaderStatsMinutesListeningChart": "Hallgatási grafikon percekben (az elmúlt 7 napból)",
"HeaderStatsRecentSessions": "Legutóbbi munkamenetek", "HeaderStatsRecentSessions": "Legutóbbi munkamenetek",
"HeaderStatsTop10Authors": "Top 10 szerző", "HeaderStatsTop10Authors": "Top 10 szerző",
"HeaderStatsTop5Genres": "Top 5 műfaj", "HeaderStatsTop5Genres": "Top 5 műfaj",
@ -499,7 +499,7 @@
"LabelNumberOfEpisodes": "Epizódok száma", "LabelNumberOfEpisodes": "Epizódok száma",
"LabelOpenIDAdvancedPermsClaimDescription": "Az OpenID-igény neve, amely a felhasználói műveletekre vonatkozó haladó jogosultságokat tartalmazza az alkalmazáson belül, és amely a nem adminisztrátori szerepkörökre vonatkozik (<b>ha konfigurálva van</b>). Ha az igény hiányzik a válaszból, az ABS-hez való hozzáférés megtagadásra kerül. Ha egyetlen opció hiányzik, azt <code>false</code>-ként fogja kezelni. Győződj meg arról, hogy az identitásszolgáltató igénye megfelel a várt struktúrának:", "LabelOpenIDAdvancedPermsClaimDescription": "Az OpenID-igény neve, amely a felhasználói műveletekre vonatkozó haladó jogosultságokat tartalmazza az alkalmazáson belül, és amely a nem adminisztrátori szerepkörökre vonatkozik (<b>ha konfigurálva van</b>). Ha az igény hiányzik a válaszból, az ABS-hez való hozzáférés megtagadásra kerül. Ha egyetlen opció hiányzik, azt <code>false</code>-ként fogja kezelni. Győződj meg arról, hogy az identitásszolgáltató igénye megfelel a várt struktúrának:",
"LabelOpenIDClaims": "Hagyd üresen a következő opciókat, hogy letiltsd a haladó csoport- és jogosultság-hozzárendelést, ekkor automatikusan a Felhasználó csoport kerül hozzárendelésre.", "LabelOpenIDClaims": "Hagyd üresen a következő opciókat, hogy letiltsd a haladó csoport- és jogosultság-hozzárendelést, ekkor automatikusan a Felhasználó csoport kerül hozzárendelésre.",
"LabelOpenIDGroupClaimDescription": "Az OpenID-igény neve, amely a felhasználó csoportjainak listáját tartalmazza. Általában <code>groups</code> néven hivatkoznak rá. <b>Ha konfigurálva van</b>, az alkalmazás automatikusan hozzárendeli a szerepköröket a felhasználó csoporttagságai alapján, feltéve, hogy ezek a csoportok az igényben kis- és nagybetűkre érzéketlenül admin, user vagy guest néven szerepelnek. Az igénynek egy listát kell tartalmaznia, és ha egy felhasználó több csoport tagja, az alkalmazás a legmagasabb szintű hozzáféréssel rendelkező szerepkört rendeli hozzá. Ha egyetlen csoport sem felel meg, a hozzáférés megtagadásra kerül.", "LabelOpenIDGroupClaimDescription": "Az OpenID-igény neve, amely a felhasználó csoportjainak listáját tartalmazza. Általában <code>groups<code> néven hivatkoznak rá. <b>Ha konfigurálva van<b>, az alkalmazás automatikusan hozzárendeli a szerepköröket a felhasználó csoporttagságai alapján, feltéve, hogy ezek a csoportok az igényben kis- és nagybetűkre érzéketlenül admin, user vagy guest néven szerepelnek. Az igénynek egy listát kell tartalmaznia, és ha egy felhasználó több csoport tagja, az alkalmazás a legmagasabb szintű hozzáféréssel rendelkező szerepkört rendeli hozzá. Ha egyetlen csoport sem felel meg, a hozzáférés megtagadásra kerül.",
"LabelOpenRSSFeed": "RSS hírcsatorna megnyitása", "LabelOpenRSSFeed": "RSS hírcsatorna megnyitása",
"LabelOverwrite": "Felülírás", "LabelOverwrite": "Felülírás",
"LabelPaginationPageXOfY": "{0} oldal {1}-ból/ből", "LabelPaginationPageXOfY": "{0} oldal {1}-ból/ből",
@ -643,8 +643,8 @@
"LabelStatsAuthors": "Szerző", "LabelStatsAuthors": "Szerző",
"LabelStatsBestDay": "Legjobb nap", "LabelStatsBestDay": "Legjobb nap",
"LabelStatsDailyAverage": "Napi átlag", "LabelStatsDailyAverage": "Napi átlag",
"LabelStatsDays": "Nap", "LabelStatsDays": "Napok",
"LabelStatsDaysListened": "Hallgatással töltött nap", "LabelStatsDaysListened": "Hallgatással töltött napok",
"LabelStatsHours": "Órák", "LabelStatsHours": "Órák",
"LabelStatsInARow": "egymás után", "LabelStatsInARow": "egymás után",
"LabelStatsItemsFinished": "Befejezett elem", "LabelStatsItemsFinished": "Befejezett elem",

View file

@ -275,7 +275,7 @@
"LabelBonus": "Bonus", "LabelBonus": "Bonus",
"LabelBooks": "Libri", "LabelBooks": "Libri",
"LabelButtonText": "Buttone Testo", "LabelButtonText": "Buttone Testo",
"LabelByAuthor": "di {0}", "LabelByAuthor": "da {0}",
"LabelChangePassword": "Cambia Password", "LabelChangePassword": "Cambia Password",
"LabelChannels": "Canali", "LabelChannels": "Canali",
"LabelChapterCount": "{0} Capitoli", "LabelChapterCount": "{0} Capitoli",

View file

@ -72,7 +72,6 @@
"ButtonQueueRemoveItem": "次に再生から削除", "ButtonQueueRemoveItem": "次に再生から削除",
"ButtonQuickEmbed": "クイック埋め込み", "ButtonQuickEmbed": "クイック埋め込み",
"ButtonQuickEmbedMetadata": "メタデータの埋め込み", "ButtonQuickEmbedMetadata": "メタデータの埋め込み",
"ButtonQuickMatch": "クイックマッチ",
"ButtonReScan": "再スキャン", "ButtonReScan": "再スキャン",
"ButtonRead": "読む", "ButtonRead": "読む",
"ButtonReadLess": "閉じる", "ButtonReadLess": "閉じる",
@ -81,159 +80,71 @@
"ButtonRemove": "削除", "ButtonRemove": "削除",
"ButtonRemoveAll": "全て削除", "ButtonRemoveAll": "全て削除",
"ButtonRemoveAllLibraryItems": "ライブラリーの項目を全て削除", "ButtonRemoveAllLibraryItems": "ライブラリーの項目を全て削除",
"ButtonRemoveFromContinueListening": "「続きを聴く」から削除",
"ButtonRemoveFromContinueReading": "「続きを読む」から削除",
"ButtonRemoveSeriesFromContinueSeries": "「シリーズを続く」からシリーズを削除",
"ButtonReset": "元に戻す", "ButtonReset": "元に戻す",
"ButtonResetToDefault": "デフォルトに戻す", "ButtonResetToDefault": "デフォルトに戻す",
"ButtonRestore": "復元", "ButtonRestore": "復元",
"ButtonSave": "保存", "ButtonSave": "保存",
"ButtonSaveAndClose": "保存して閉じる", "ButtonSaveAndClose": "保存して閉じる",
"ButtonSaveTracklist": "トラックリストを保存",
"ButtonScan": "スキャン", "ButtonScan": "スキャン",
"ButtonScanLibrary": "ライブラリーをスキャン", "ButtonScanLibrary": "ライブラリーをスキャン",
"ButtonScrollLeft": "左にスクロール", "ButtonScrollLeft": "左にスクロール",
"ButtonScrollRight": "右にスクロール", "ButtonScrollRight": "右にスクロール",
"ButtonSearch": "検索", "ButtonSearch": "検索",
"ButtonSelectFolderPath": "保存先フォルダを選択",
"ButtonSeries": "シリーズ", "ButtonSeries": "シリーズ",
"ButtonSetChaptersFromTracks": "トラックからチャプターを設定する",
"ButtonShare": "共有",
"ButtonShiftTimes": "再生時間の移動",
"ButtonShow": "表示",
"ButtonStartM4BEncode": "M4Bエンコード開始",
"ButtonStartMetadataEmbed": "メタデータ埋め込み開始",
"ButtonStats": "統計",
"ButtonSubmit": "送信", "ButtonSubmit": "送信",
"ButtonTest": "テスト",
"ButtonUnlinkOpenId": "OpenID 連携解除",
"ButtonUpload": "アップロード",
"ButtonUploadBackup": "バックアップのアップロード",
"ButtonUploadCover": "カバー画像をアップロード",
"ButtonUploadOPMLFile": "OPMLファイルをアップロード",
"ButtonUserDelete": "ユーザーを削除 {0}",
"ButtonUserEdit": "ユーザを編集 {0}",
"ButtonViewAll": "すべて表示",
"ButtonYes": "はい", "ButtonYes": "はい",
"ErrorUploadFetchMetadataAPI": "メタデータの取得中にエラーが発生しました",
"ErrorUploadFetchMetadataNoResults": "メタデータ取得に失敗しました。タイトルや著者名を更新してください",
"ErrorUploadLacksTitle": "タイトルは必須です",
"HeaderAccount": "アカウント", "HeaderAccount": "アカウント",
"HeaderAddCustomMetadataProvider": "カスタムメタデータプロバイダーを追加",
"HeaderAdvanced": "上級者向け", "HeaderAdvanced": "上級者向け",
"HeaderApiKeys": "APIキー",
"HeaderAppriseNotificationSettings": "Apprise 通知設定",
"HeaderAudioTracks": "オーディオトラック", "HeaderAudioTracks": "オーディオトラック",
"HeaderAudiobookTools": "オーディオブックのファイル管理ツール",
"HeaderAuthentication": "認証",
"HeaderBackups": "バックアップ",
"HeaderBulkChapterModal": "チャプターをまとめて追加",
"HeaderChangePassword": "パスワードを変更",
"HeaderChapters": "チャプター", "HeaderChapters": "チャプター",
"HeaderChooseAFolder": "フォルダを選択",
"HeaderCollection": "コレクション", "HeaderCollection": "コレクション",
"HeaderCollectionItems": "コレクションの項目", "HeaderCollectionItems": "コレクションの項目",
"HeaderCover": "カバー",
"HeaderCurrentDownloads": "現在のダウンロード",
"HeaderCustomMessageOnLogin": "ログイン時のカスタムメッセージ",
"HeaderCustomMetadataProviders": "カスタムメタデータプロバイダー",
"HeaderDetails": "詳細", "HeaderDetails": "詳細",
"HeaderDownloadQueue": "ダウンロード待ち",
"HeaderEbookFiles": "電子書籍ファイル", "HeaderEbookFiles": "電子書籍ファイル",
"HeaderEmail": "メール",
"HeaderEmailSettings": "メール設定",
"HeaderEpisodes": "エピソード", "HeaderEpisodes": "エピソード",
"HeaderEreaderDevices": "電子書籍リーダー端末",
"HeaderEreaderSettings": "電子書籍リーダーの設定", "HeaderEreaderSettings": "電子書籍リーダーの設定",
"HeaderFiles": "ファイル",
"HeaderFindChapters": "チャプターを検索",
"HeaderIgnoredFiles": "無視されたファイル",
"HeaderItemFiles": "アイテムファイル",
"HeaderItemMetadataUtils": "アイテムメタデータユーティリティ",
"HeaderLastListeningSession": "直近の再生セッション",
"HeaderLatestEpisodes": "最新のエピソード", "HeaderLatestEpisodes": "最新のエピソード",
"HeaderLibraries": "ライブラリー", "HeaderLibraries": "ライブラリー",
"HeaderLibraryFiles": "ライブラリファイル",
"HeaderLibraryStats": "ライブラリ統計",
"HeaderListeningSessions": "再生セッション",
"HeaderListeningStats": "再生統計",
"HeaderLogin": "ログイン",
"HeaderLogs": "ログ",
"HeaderManageGenres": "ジャンルを管理",
"HeaderManageTags": "タグを管理",
"HeaderMapDetails": "マップの詳細",
"HeaderMatch": "マッチ",
"HeaderMetadataOrderOfPrecedence": "メタデータの優先順",
"HeaderMetadataToEmbed": "埋め込むメタデータ",
"HeaderNewAccount": "新規アカウント",
"HeaderNewApiKey": "新規APIキー",
"HeaderNewLibrary": "新規ライブラリー",
"HeaderNotificationCreate": "通知を作成",
"HeaderNotificationUpdate": "通知を更新",
"HeaderNotifications": "通知",
"HeaderOpenIDConnectAuthentication": "OpenID Connect 認証",
"HeaderOpenRSSFeed": "RSS Feedを開く", "HeaderOpenRSSFeed": "RSS Feedを開く",
"HeaderPlayerSettings": "プレーヤーの設定", "HeaderPlayerSettings": "プレーヤーの設定",
"HeaderPlaylist": "プレイリスト", "HeaderPlaylist": "プレイリスト",
"HeaderPlaylistItems": "プレイリストアイテム", "HeaderPlaylistItems": "プレイリストアイテム",
"HeaderRSSFeedGeneral": "RSS 詳細", "HeaderRSSFeedGeneral": "RSS 詳細",
"HeaderRSSFeedIsOpen": "RSSフィードが開いています",
"HeaderSettings": "設定", "HeaderSettings": "設定",
"HeaderSettingsGeneral": "一般", "HeaderSettingsGeneral": "一般",
"HeaderSettingsScanner": "スキャナー", "HeaderSettingsScanner": "スキャナー",
"HeaderSleepTimer": "スリープタイマー", "HeaderSleepTimer": "スリープタイマー",
"HeaderStatsMinutesListeningChart": "過去7日間の視聴時間(分)", "HeaderStatsMinutesListeningChart": "過去7日間の視聴時間(分)",
"HeaderStatsRecentSessions": "最近の再生履歴",
"HeaderTableOfContents": "目次",
"HeaderYourStats": "再生統計",
"LabelAddToPlaylist": "プレイリストの追加", "LabelAddToPlaylist": "プレイリストの追加",
"LabelAddedAt": "追加日時",
"LabelAddedDate": "追加日時 ­­{0}",
"LabelAll": "すべて",
"LabelAuthor": "著者", "LabelAuthor": "著者",
"LabelAuthorFirstLast": "著者(名 氏)", "LabelAuthorFirstLast": "著者(名 氏)",
"LabelAuthorLastFirst": "著者(氏 名)", "LabelAuthorLastFirst": "著者(氏 名)",
"LabelAuthors": "著者", "LabelAuthors": "著者",
"LabelAutoDownloadEpisodes": "エピソードの自動ダウンロード", "LabelAutoDownloadEpisodes": "エピソードの自動ダウンロード",
"LabelBooks": "ほん", "LabelBooks": "ほん",
"LabelByAuthor": "著 {0}",
"LabelChapters": "チャプター", "LabelChapters": "チャプター",
"LabelClosePlayer": "プレイヤーを閉じる", "LabelClosePlayer": "プレイヤーを閉じる",
"LabelCollapseSeries": "シリーズを折りたたむ",
"LabelComplete": "完了", "LabelComplete": "完了",
"LabelContinueListening": "続きから聞く", "LabelContinueListening": "続きから聞く",
"LabelContinueReading": "続きを読む",
"LabelContinueSeries": "シリーズを続く",
"LabelDescription": "説明", "LabelDescription": "説明",
"LabelDiscover": "おすすめ",
"LabelDownload": "ダウンロード", "LabelDownload": "ダウンロード",
"LabelDuration": "長さ", "LabelDuration": "長さ",
"LabelEbook": "Eブック", "LabelEbook": "Eブック",
"LabelEbooks": "Eブック", "LabelEbooks": "Eブック",
"LabelEnable": "有効", "LabelEnable": "有効",
"LabelEnd": "終了",
"LabelEndOfChapter": "チャプターの最後", "LabelEndOfChapter": "チャプターの最後",
"LabelEpisode": "エピソード", "LabelEpisode": "エピソード",
"LabelEpisodes": "エピソード",
"LabelEpisodic": "エピソード",
"LabelExplicit": "露骨な表現",
"LabelFeedURL": "Feed URL", "LabelFeedURL": "Feed URL",
"LabelFile": "ファイル", "LabelFile": "ファイル",
"LabelFileBirthtime": "ファイル作成日時",
"LabelFileModified": "ファイル更新日時",
"LabelFilename": "ファイル名", "LabelFilename": "ファイル名",
"LabelFinished": "完了", "LabelFinished": "完了",
"LabelFolder": "フォルダ", "LabelFolder": "フォルダ",
"LabelFontBoldness": "フォントの太さ", "LabelFontBoldness": "フォントの太さ",
"LabelFontFamily": "フォントファミリー",
"LabelFontScale": "フォントサイズ", "LabelFontScale": "フォントサイズ",
"LabelGenre": "ジャンル", "LabelGenre": "ジャンル",
"LabelGenres": "ジャンル", "LabelGenres": "ジャンル",
"LabelHasEbook": "eBookあり",
"LabelHasSupplementaryEbook": "付属eBookあり",
"LabelHost": "ホスト", "LabelHost": "ホスト",
"LabelInProgress": "進行中", "LabelInProgress": "進行中",
"LabelIncomplete": "未完了",
"LabelLanguage": "言語", "LabelLanguage": "言語",
"LabelLanguages": "言語", "LabelLanguages": "言語",
"LabelLayout": "レイアウト", "LabelLayout": "レイアウト",

View file

@ -1,6 +1,5 @@
{ {
"ButtonAdd": "Pridėti", "ButtonAdd": "Pridėti",
"ButtonAddApiKey": "Pridėti API raktą",
"ButtonAddChapters": "Pridėti skyrius", "ButtonAddChapters": "Pridėti skyrius",
"ButtonAddDevice": "Pridėti įrenginį", "ButtonAddDevice": "Pridėti įrenginį",
"ButtonAddLibrary": "Pridėti Biblioteką", "ButtonAddLibrary": "Pridėti Biblioteką",

View file

@ -34,7 +34,7 @@
"ButtonEditChapters": "Rediger kapittel", "ButtonEditChapters": "Rediger kapittel",
"ButtonEditPodcast": "Rediger podcast", "ButtonEditPodcast": "Rediger podcast",
"ButtonEnable": "Aktiver", "ButtonEnable": "Aktiver",
"ButtonFireAndFail": "Utfør og feil", "ButtonFireAndFail": "Kjør ved feil",
"ButtonFireOnTest": "Kjør onTest-kommando", "ButtonFireOnTest": "Kjør onTest-kommando",
"ButtonForceReScan": "Tving skann", "ButtonForceReScan": "Tving skann",
"ButtonFullPath": "Full sti", "ButtonFullPath": "Full sti",
@ -113,7 +113,7 @@
"ButtonUploadOPMLFile": "Last opp OPML fil", "ButtonUploadOPMLFile": "Last opp OPML fil",
"ButtonUserDelete": "Slett bruker {0}", "ButtonUserDelete": "Slett bruker {0}",
"ButtonUserEdit": "Rediger bruker {0}", "ButtonUserEdit": "Rediger bruker {0}",
"ButtonViewAll": "Vis alt", "ButtonViewAll": "Vis alle",
"ButtonYes": "Ja", "ButtonYes": "Ja",
"ErrorUploadFetchMetadataAPI": "Feil ved innhenting av metadata", "ErrorUploadFetchMetadataAPI": "Feil ved innhenting av metadata",
"ErrorUploadFetchMetadataNoResults": "Kunne ikke hente metadata - forsøk å oppdatere tittel og/eller forfatter", "ErrorUploadFetchMetadataNoResults": "Kunne ikke hente metadata - forsøk å oppdatere tittel og/eller forfatter",
@ -309,7 +309,6 @@
"LabelDeleteFromFileSystemCheckbox": "Slett fra filsystemet (fjern haken for kun å ta bort fra databasen)", "LabelDeleteFromFileSystemCheckbox": "Slett fra filsystemet (fjern haken for kun å ta bort fra databasen)",
"LabelDescription": "Beskrivelse", "LabelDescription": "Beskrivelse",
"LabelDeselectAll": "Fjern valg", "LabelDeselectAll": "Fjern valg",
"LabelDetectedPattern": "Oppdaget mønster:",
"LabelDevice": "Enhet", "LabelDevice": "Enhet",
"LabelDeviceInfo": "Enhetsinformasjon", "LabelDeviceInfo": "Enhetsinformasjon",
"LabelDeviceIsAvailableTo": "Enheten er tilgjengelig for...", "LabelDeviceIsAvailableTo": "Enheten er tilgjengelig for...",
@ -378,12 +377,11 @@
"LabelFilterByUser": "Filtrer etter bruker", "LabelFilterByUser": "Filtrer etter bruker",
"LabelFindEpisodes": "Finn episoder", "LabelFindEpisodes": "Finn episoder",
"LabelFinished": "Fullført", "LabelFinished": "Fullført",
"LabelFinishedDate": "Fullført {0}",
"LabelFolder": "Mappe", "LabelFolder": "Mappe",
"LabelFolders": "Mapper", "LabelFolders": "Mapper",
"LabelFontBold": "Fet", "LabelFontBold": "Fet",
"LabelFontBoldness": "Skrifttykkelse", "LabelFontBoldness": "Skrifttykkelse",
"LabelFontFamily": "Skriftfamilie", "LabelFontFamily": "Fontfamilie",
"LabelFontItalic": "Kursiv", "LabelFontItalic": "Kursiv",
"LabelFontScale": "Font størrelse", "LabelFontScale": "Font størrelse",
"LabelFontStrikethrough": "Gjennomstreking", "LabelFontStrikethrough": "Gjennomstreking",
@ -436,9 +434,7 @@
"LabelLibraryFilterSublistEmpty": "Ingen {0}", "LabelLibraryFilterSublistEmpty": "Ingen {0}",
"LabelLibraryItem": "Bibliotek enhet", "LabelLibraryItem": "Bibliotek enhet",
"LabelLibraryName": "Bibliotek navn", "LabelLibraryName": "Bibliotek navn",
"LabelLibrarySortByProgress": "Fremdrift: Sist oppdatert", "LabelLibrarySortByProgress": "Fremgang: Sist oppdatert",
"LabelLibrarySortByProgressFinished": "Fremdrift: Fullført",
"LabelLibrarySortByProgressStarted": "Fremdrift: Startet",
"LabelLimit": "Begrensning", "LabelLimit": "Begrensning",
"LabelLineSpacing": "Linjemellomrom", "LabelLineSpacing": "Linjemellomrom",
"LabelListenAgain": "Lytt igjen", "LabelListenAgain": "Lytt igjen",
@ -447,9 +443,8 @@
"LabelLogLevelWarn": "Varsel", "LabelLogLevelWarn": "Varsel",
"LabelLookForNewEpisodesAfterDate": "Se etter nye episoder etter denne datoen", "LabelLookForNewEpisodesAfterDate": "Se etter nye episoder etter denne datoen",
"LabelLowestPriority": "Laveste prioritet", "LabelLowestPriority": "Laveste prioritet",
"LabelMatchConfidence": "Konfidens",
"LabelMatchExistingUsersBy": "Knytt sammen eksisterende brukere basert på", "LabelMatchExistingUsersBy": "Knytt sammen eksisterende brukere basert på",
"LabelMatchExistingUsersByDescription": "Brukes for å koble til eksisterende brukere. Når koblingen er i orden vil brukerne bli identifisert med en unik id fra SSO-tilbyderen", "LabelMatchExistingUsersByDescription": "Brukes for å koble til eksisterende brukere. Når koblingen er i orden vil brukerne bli identifisert med en unik id fra SSO-tilbyderen.",
"LabelMaxEpisodesToDownload": "Maksimalt antall episoder som skal lastes ned. Bruk 0 for ubegrenset.", "LabelMaxEpisodesToDownload": "Maksimalt antall episoder som skal lastes ned. Bruk 0 for ubegrenset.",
"LabelMaxEpisodesToDownloadPerCheck": "Maksimalt antall nye episoder som skal lastes ned per sjekk", "LabelMaxEpisodesToDownloadPerCheck": "Maksimalt antall nye episoder som skal lastes ned per sjekk",
"LabelMaxEpisodesToKeep": "Maksimalt antall episoder som skal beholdes", "LabelMaxEpisodesToKeep": "Maksimalt antall episoder som skal beholdes",
@ -458,7 +453,7 @@
"LabelMediaType": "Medie type", "LabelMediaType": "Medie type",
"LabelMetaTag": "Meta tag", "LabelMetaTag": "Meta tag",
"LabelMetaTags": "Meta tags", "LabelMetaTags": "Meta tags",
"LabelMetadataOrderOfPrecedenceDescription": "Høyere prioritert kilder for metadata overstyrer laverer prioriterte kilder for metadata", "LabelMetadataOrderOfPrecedenceDescription": "Høyere prioritert kilder for metadata overstyrer laverer prioriterte kilder for metadata.",
"LabelMetadataProvider": "Metadata Leverandør", "LabelMetadataProvider": "Metadata Leverandør",
"LabelMinute": "Minutt", "LabelMinute": "Minutt",
"LabelMinutes": "Minutter", "LabelMinutes": "Minutter",
@ -477,9 +472,7 @@
"LabelNewestAuthors": "Nyeste forfattere", "LabelNewestAuthors": "Nyeste forfattere",
"LabelNewestEpisodes": "Nyeste episoder", "LabelNewestEpisodes": "Nyeste episoder",
"LabelNextBackupDate": "Neste sikkerhetskopi dato", "LabelNextBackupDate": "Neste sikkerhetskopi dato",
"LabelNextChapters": "Neste kapitler blir:",
"LabelNextScheduledRun": "Neste planlagte kjøring", "LabelNextScheduledRun": "Neste planlagte kjøring",
"LabelNoApiKeys": "Ingen API-nøkler",
"LabelNoCustomMetadataProviders": "Ingen egendefinerte tilbydere for metadata", "LabelNoCustomMetadataProviders": "Ingen egendefinerte tilbydere for metadata",
"LabelNoEpisodesSelected": "Ingen episoder valgt", "LabelNoEpisodesSelected": "Ingen episoder valgt",
"LabelNotFinished": "Ikke fullført", "LabelNotFinished": "Ikke fullført",
@ -495,11 +488,10 @@
"LabelNotificationsMaxQueueSize": "Maksimalt antall varslinger i kø", "LabelNotificationsMaxQueueSize": "Maksimalt antall varslinger i kø",
"LabelNotificationsMaxQueueSizeHelp": "Hendelser er begrenset til avfyre én gang per sekund. Hendelser blir ignorert om køen er full. Dette forhindrer overflod av varslinger.", "LabelNotificationsMaxQueueSizeHelp": "Hendelser er begrenset til avfyre én gang per sekund. Hendelser blir ignorert om køen er full. Dette forhindrer overflod av varslinger.",
"LabelNumberOfBooks": "Antall bøker", "LabelNumberOfBooks": "Antall bøker",
"LabelNumberOfChapters": "Antall kapitler:",
"LabelNumberOfEpisodes": "# episoder", "LabelNumberOfEpisodes": "# episoder",
"LabelOpenIDAdvancedPermsClaimDescription": "Navnet på OpenID claim'et som inneholder avanserte tilganger for brukerhandlinger i applikasjonen som vil brukes for ikke-administratorroller (<b>hvis konfigurert</b>). Hvis claim'et mangler fra responsen, nektes tilgang til ABS. Hvis en enkelt opsjon mangler, blir behandlet som <code>false</code>. Påse at identitetstilbyderens claim stemmer overens med den forventede strukturen:", "LabelOpenIDAdvancedPermsClaimDescription": "Navnet på OpenID claim'et som inneholder avanserte tilganger for brukerhandlinger i applikasjonen som vil brukes for ikke-administratorroller (<b>hvis konfigurert</b>). Hvis claim'et mangler fra responsen, nektes tilgang til ABS. Hvis en enkelt opsjon mangler, blir behandlet som <code>false</code>. Påse at identitetstilbyderens claim stemmer overens med den forventede strukturen:",
"LabelOpenIDClaims": "La følge valg være tomme for å slå av avanserte gruppe og tillatelser. Gruppen \"Bruker\" vil da også automatisk legges til.", "LabelOpenIDClaims": "La følge valg være tomme for å slå av avanserte gruppe og tillatelser. Gruppen \"Bruker\" vil da også automatisk legges til.",
"LabelOpenIDGroupClaimDescription": "Navn på OpenID-forespørsel som inneholder en lite over brukerens grupper. Vanligvis kalt <code>grupper</code>. <b>Om konfigurert</b>, vil applikasjonen tildele roller baseret på brukerens gruppemedlemsskaper, gitt disse grupper er navngitt (uten forbehold for store og små bokstaver) 'admin', 'user' eller 'guest' i forespørsel. Forespørselen burde inneholde en liste (og hvis brukeren tilhører flere grupper), applikasjonen vil tildele rolle med høyeste adgangsnivå. Hvis ingen grupper matcher vil adgang bli nektet.", "LabelOpenIDGroupClaimDescription": "Navn på OpenID-forespørsel som inneholder en lite over brukerens grupper. Vanligvis kalt <code>grupper</code>. <b>Om konfigurert</b>, vil applikasjonen tildele roller baseret på brukerens gruppemedlemsskaper, gitt disse grupper er navngitt (uten forbehold for store og små bokstaver) 'admin', 'user' eller 'guest' i forespørsel. Forespørselen burde inneholde en liste (og hvis brukeren tilhører flere grupper), applikasjonen vil tildele rolle med høyeste adgangsnivå. Hvis ingen grupper matcher vil adgang bli nektet.",
"LabelOpenRSSFeed": "Åpne RSS Feed", "LabelOpenRSSFeed": "Åpne RSS Feed",
"LabelOverwrite": "Overskriv", "LabelOverwrite": "Overskriv",
"LabelPaginationPageXOfY": "Side {0} av {1}", "LabelPaginationPageXOfY": "Side {0} av {1}",
@ -517,7 +509,6 @@
"LabelPersonalYearReview": "Oppsummering av året ditt ({0})", "LabelPersonalYearReview": "Oppsummering av året ditt ({0})",
"LabelPhotoPathURL": "Bilde sti/URL", "LabelPhotoPathURL": "Bilde sti/URL",
"LabelPlayMethod": "Avspillingsmetode", "LabelPlayMethod": "Avspillingsmetode",
"LabelPlaybackRateIncrementDecrement": "Trinnstørrelse for økning/senking av avspillingshastighet",
"LabelPlayerChapterNumberMarker": "{0} av {1}", "LabelPlayerChapterNumberMarker": "{0} av {1}",
"LabelPlaylists": "Spilleliste", "LabelPlaylists": "Spilleliste",
"LabelPodcast": "Podcast", "LabelPodcast": "Podcast",
@ -570,7 +561,6 @@
"LabelSelectAll": "Velg alt", "LabelSelectAll": "Velg alt",
"LabelSelectAllEpisodes": "Velg alle episoder", "LabelSelectAllEpisodes": "Velg alle episoder",
"LabelSelectEpisodesShowing": "Velg {0} episoder vist", "LabelSelectEpisodesShowing": "Velg {0} episoder vist",
"LabelSelectUser": "Velg bruker",
"LabelSelectUsers": "Velg brukere", "LabelSelectUsers": "Velg brukere",
"LabelSendEbookToDevice": "Send Ebok til...", "LabelSendEbookToDevice": "Send Ebok til...",
"LabelSequence": "Sekvens", "LabelSequence": "Sekvens",
@ -638,7 +628,6 @@
"LabelStartTime": "Start Tid", "LabelStartTime": "Start Tid",
"LabelStarted": "Startet", "LabelStarted": "Startet",
"LabelStartedAt": "Startet", "LabelStartedAt": "Startet",
"LabelStartedDate": "Startet {0}",
"LabelStatsAudioTracks": "Lydspor", "LabelStatsAudioTracks": "Lydspor",
"LabelStatsAuthors": "Forfattere", "LabelStatsAuthors": "Forfattere",
"LabelStatsBestDay": "Beste dag", "LabelStatsBestDay": "Beste dag",
@ -668,7 +657,6 @@
"LabelTheme": "Tema", "LabelTheme": "Tema",
"LabelThemeDark": "Mørk", "LabelThemeDark": "Mørk",
"LabelThemeLight": "Lys", "LabelThemeLight": "Lys",
"LabelThemeSepia": "Sepia",
"LabelTimeBase": "Tidsbase", "LabelTimeBase": "Tidsbase",
"LabelTimeDurationXHours": "{0} timer", "LabelTimeDurationXHours": "{0} timer",
"LabelTimeDurationXMinutes": "{0} minutter", "LabelTimeDurationXMinutes": "{0} minutter",
@ -737,32 +725,24 @@
"MessageAddToPlayerQueue": "Legg til i kø", "MessageAddToPlayerQueue": "Legg til i kø",
"MessageAppriseDescription": "For å bruke denne funksjonen trenger du en instans av <a href=\"https://github.com/caronc/apprise-api\" target=\"_blank\">Apprise API</a> kjørende eller et API som håndterer disse forespørslene. <br />Apprise API URL skal være hele URL-en til varslingen, f.eks., hvis din API-instans er på <code>http://192.168.1.1:8337</code> så skal du bruke <code>http://192.168.1.1:8337/notify</code>.", "MessageAppriseDescription": "For å bruke denne funksjonen trenger du en instans av <a href=\"https://github.com/caronc/apprise-api\" target=\"_blank\">Apprise API</a> kjørende eller et API som håndterer disse forespørslene. <br />Apprise API URL skal være hele URL-en til varslingen, f.eks., hvis din API-instans er på <code>http://192.168.1.1:8337</code> så skal du bruke <code>http://192.168.1.1:8337/notify</code>.",
"MessageAsinCheck": "Påse at du bruker ASIN fra den riktige Audible-regionen, ikke Amazon.", "MessageAsinCheck": "Påse at du bruker ASIN fra den riktige Audible-regionen, ikke Amazon.",
"MessageAuthenticationLegacyTokenWarning": "Eldre API-tokener vil bli fjernet i fremtiden. Bruk <a href=\"/config/api-keys\">API-nøkler</a> i stedet.",
"MessageAuthenticationOIDCChangesRestart": "Etter å ha lagret, start serveren din på nytt for at OIDC-endringene skal tre i kraft.", "MessageAuthenticationOIDCChangesRestart": "Etter å ha lagret, start serveren din på nytt for at OIDC-endringene skal tre i kraft.",
"MessageAuthenticationSecurityMessage": "Autentisering er forbedret av sikkerhetshensyn. Alle brukere må logge inn på nytt.",
"MessageBackupsDescription": "Sikkerhetskopier inkluderer, brukerfremgang, detaljer om bibliotekgjenstander, tjener instillinger og bilder lagret under <code>/metadata/items</code> og <code>/metadata/authors</code>. Sikkerhetskopier <strong>vil ikke</strong> inkludere filer som er lagret i bibliotek mappene.", "MessageBackupsDescription": "Sikkerhetskopier inkluderer, brukerfremgang, detaljer om bibliotekgjenstander, tjener instillinger og bilder lagret under <code>/metadata/items</code> og <code>/metadata/authors</code>. Sikkerhetskopier <strong>vil ikke</strong> inkludere filer som er lagret i bibliotek mappene.",
"MessageBackupsLocationEditNote": "Viktig: Endring av mappen for sikkerhetskopi hverken endrer eller flytter eksisterende sikkerhetskopier!", "MessageBackupsLocationEditNote": "Viktig: Endring av mappen for sikkerhetskopi hverken endrer eller flytter eksisterende sikkerhetskopier!",
"MessageBackupsLocationNoEditNote": "Viktig: Mappen for sikkerhetskopi satt i en miljøvariabel og kan ikke endres her.", "MessageBackupsLocationNoEditNote": "NB: Mappen for sikkerhetskopi settes i en miljøvariabel og kan ikke endres her.",
"MessageBackupsLocationPathEmpty": "Mappen for sikkerhetskopiering må angis", "MessageBackupsLocationPathEmpty": "Mappen for sikkerhetskopiering må angis",
"MessageBatchEditPopulateMapDetailsAllHelp": "Fyll aktiverte felt med data fra alle elementer. Felt med flere verdier blir slått sammen",
"MessageBatchEditPopulateMapDetailsItemHelp": "Fyll aktiverte kartdetaljfelt med data fra dette elementet",
"MessageBatchQuickMatchDescription": "Kjapt søk vil forsøke å legge til manglende omslag og metadata for de valgte gjenstandene. Aktiver dette valget for å tillate Kjapt søk til å overskrive eksisterende omslag og/eller metadata.", "MessageBatchQuickMatchDescription": "Kjapt søk vil forsøke å legge til manglende omslag og metadata for de valgte gjenstandene. Aktiver dette valget for å tillate Kjapt søk til å overskrive eksisterende omslag og/eller metadata.",
"MessageBookshelfNoCollections": "Du har ikke laget noen samlinger ennå", "MessageBookshelfNoCollections": "Du har ikke laget noen samlinger ennå",
"MessageBookshelfNoCollectionsHelp": "Samlinger er offentlige. Alle brukere med tilgang til biblioteket kan se dem.",
"MessageBookshelfNoRSSFeeds": "Ingen RSS feed er åpen", "MessageBookshelfNoRSSFeeds": "Ingen RSS feed er åpen",
"MessageBookshelfNoResultsForFilter": "Ingen resultat for filter \"{0}: {1}\"", "MessageBookshelfNoResultsForFilter": "Ingen resultat for filter \"{0}: {1}\"",
"MessageBookshelfNoResultsForQuery": "Ingen resultater for søket", "MessageBookshelfNoResultsForQuery": "Ingen resultater for søket",
"MessageBookshelfNoSeries": "Du har ingen serier", "MessageBookshelfNoSeries": "Du har ingen serier",
"MessageBulkChapterPattern": "Hvor mange kapitler vil du legge til med dette nummereringsmønsteret?",
"MessageChapterEndIsAfter": "Kapittel slutt er etter slutt av lydboken", "MessageChapterEndIsAfter": "Kapittel slutt er etter slutt av lydboken",
"MessageChapterErrorFirstNotZero": "Første kapittel starter på 0", "MessageChapterErrorFirstNotZero": "Første kapittel starter på 0",
"MessageChapterErrorStartGteDuration": "Feil start tid, må være mindre enn lengde på lydbok", "MessageChapterErrorStartGteDuration": "Feil start tid, må være mindre enn lengde på lydbok",
"MessageChapterErrorStartLtPrev": "Feil start tid, må være større eller det samme som forrige kapittel start tid", "MessageChapterErrorStartLtPrev": "Feil start tid, må være større eller det samme som forrige kapittel start tid",
"MessageChapterStartIsAfter": "Kapittel start er etter slutten av din lydbok", "MessageChapterStartIsAfter": "Kapittel start er etter slutten av din lydbok",
"MessageChaptersNotFound": "Fant ikke kapitler",
"MessageCheckingCron": "Sjekker cron...", "MessageCheckingCron": "Sjekker cron...",
"MessageConfirmCloseFeed": "Er du sikker på at du vil lukke denne feeden?", "MessageConfirmCloseFeed": "Er du sikker på at du vil lukke denne feeden?",
"MessageConfirmDeleteApiKey": "Er du sikker på at du vil slette API-nøkkelen \"{0}\"?",
"MessageConfirmDeleteBackup": "Er du sikker på at du vil slette sikkerhetskopi for {0}?", "MessageConfirmDeleteBackup": "Er du sikker på at du vil slette sikkerhetskopi for {0}?",
"MessageConfirmDeleteDevice": "Er du sikker på at du vil slette e-leser enheten \"{0}\"?", "MessageConfirmDeleteDevice": "Er du sikker på at du vil slette e-leser enheten \"{0}\"?",
"MessageConfirmDeleteFile": "Dette vil slette filen fra filsystemet. Er du sikker?", "MessageConfirmDeleteFile": "Dette vil slette filen fra filsystemet. Er du sikker?",
@ -781,7 +761,7 @@
"MessageConfirmMarkSeriesFinished": "Er du sikker på at du vil markere alle bøkene i serien som fullført?", "MessageConfirmMarkSeriesFinished": "Er du sikker på at du vil markere alle bøkene i serien som fullført?",
"MessageConfirmMarkSeriesNotFinished": "Er du sikker på at du vil markere alle bøkene i serien som ikke fullført?", "MessageConfirmMarkSeriesNotFinished": "Er du sikker på at du vil markere alle bøkene i serien som ikke fullført?",
"MessageConfirmNotificationTestTrigger": "Utløs dette varselet med test-data?", "MessageConfirmNotificationTestTrigger": "Utløs dette varselet med test-data?",
"MessageConfirmPurgeCache": "Tømming av mellomlagring vil slette hele mappen <code>/metadata/cache</code>. <br /><br />Er du sikker på at du vil slette mappen?", "MessageConfirmPurgeCache": "Tømming av mellomlagring vil slette hele mappen <code>/metadata/cache</code>. <br /><br />Er du sikker på at du du vil slette mappen?",
"MessageConfirmPurgeItemsCache": "(Purge items cache) Dette vil sletter hele mappen <code>/metadata/cache/items</code>.<br />Er du sikker?", "MessageConfirmPurgeItemsCache": "(Purge items cache) Dette vil sletter hele mappen <code>/metadata/cache/items</code>.<br />Er du sikker?",
"MessageConfirmQuickEmbed": "Advarsel! Rask innbygging av metadata tar ikke backup av lyd-filene først. Forsikre deg om at du har sikkerhetskopi av filene. <br><br> Fortsett?", "MessageConfirmQuickEmbed": "Advarsel! Rask innbygging av metadata tar ikke backup av lyd-filene først. Forsikre deg om at du har sikkerhetskopi av filene. <br><br> Fortsett?",
"MessageConfirmQuickMatchEpisodes": "Hurtig gjenkjenning av episoder overskriver detaljene hvis en match blir funnet. Kun episoder som ikke allerede er matchet blir oppdatert. Er du sikker?", "MessageConfirmQuickMatchEpisodes": "Hurtig gjenkjenning av episoder overskriver detaljene hvis en match blir funnet. Kun episoder som ikke allerede er matchet blir oppdatert. Er du sikker?",
@ -790,7 +770,6 @@
"MessageConfirmRemoveAuthor": "Er du sikker på at du vil fjerne forfatteren \"{0}\"?", "MessageConfirmRemoveAuthor": "Er du sikker på at du vil fjerne forfatteren \"{0}\"?",
"MessageConfirmRemoveCollection": "Er du sikker på at du vil fjerne samling\"{0}\"?", "MessageConfirmRemoveCollection": "Er du sikker på at du vil fjerne samling\"{0}\"?",
"MessageConfirmRemoveEpisode": "Er du sikker på at du vil fjerne episode \"{0}\"?", "MessageConfirmRemoveEpisode": "Er du sikker på at du vil fjerne episode \"{0}\"?",
"MessageConfirmRemoveEpisodeNote": "Merk: Dette sletter ikke lydfilen med mindre du slår på \"Hard delete file\"",
"MessageConfirmRemoveEpisodes": "Er du sikker på at du vil fjerne {0} episoder?", "MessageConfirmRemoveEpisodes": "Er du sikker på at du vil fjerne {0} episoder?",
"MessageConfirmRemoveListeningSessions": "Er du sikker på at du vil fjerne {0} lytte-sesjoner?", "MessageConfirmRemoveListeningSessions": "Er du sikker på at du vil fjerne {0} lytte-sesjoner?",
"MessageConfirmRemoveMetadataFiles": "Er du sikker på at du vil fjerne alle metadata.{0}-filer i mappene for biblioteks-elementer?", "MessageConfirmRemoveMetadataFiles": "Er du sikker på at du vil fjerne alle metadata.{0}-filer i mappene for biblioteks-elementer?",
@ -816,11 +795,8 @@
"MessageFeedURLWillBe": "Feed URL vil bli {0}", "MessageFeedURLWillBe": "Feed URL vil bli {0}",
"MessageFetching": "Henter...", "MessageFetching": "Henter...",
"MessageForceReScanDescription": "vil skanne alle filene igjen som en ny skann. Lyd fil ID3 tagger, OPF filer og tekstfiler vil bli skannet som nye.", "MessageForceReScanDescription": "vil skanne alle filene igjen som en ny skann. Lyd fil ID3 tagger, OPF filer og tekstfiler vil bli skannet som nye.",
"MessageHeatmapListeningTimeTooltip": "<strong>{0} lytter</strong> på {1}",
"MessageHeatmapNoListeningSessions": "Ingen lytteøkter på {0}",
"MessageImportantNotice": "Viktig varsel!", "MessageImportantNotice": "Viktig varsel!",
"MessageInsertChapterBelow": "Sett inn kapittel under", "MessageInsertChapterBelow": "Sett inn kapittel under",
"MessageInvalidAsin": "Ugyldig ASIN",
"MessageItemsSelected": "{0} Gjenstander valgt", "MessageItemsSelected": "{0} Gjenstander valgt",
"MessageItemsUpdated": "{0} Gjenstander oppdatert", "MessageItemsUpdated": "{0} Gjenstander oppdatert",
"MessageJoinUsOn": "Følg oss nå", "MessageJoinUsOn": "Følg oss nå",
@ -866,7 +842,6 @@
"MessageNoTasksRunning": "Ingen oppgaver kjører", "MessageNoTasksRunning": "Ingen oppgaver kjører",
"MessageNoUpdatesWereNecessary": "Ingen oppdatering var nødvendig", "MessageNoUpdatesWereNecessary": "Ingen oppdatering var nødvendig",
"MessageNoUserPlaylists": "Du har ingen spillelister", "MessageNoUserPlaylists": "Du har ingen spillelister",
"MessageNoUserPlaylistsHelp": "Spillelister er private. Bare brukeren som oppretter dem kan se dem.",
"MessageNotYetImplemented": "Ikke implementert ennå", "MessageNotYetImplemented": "Ikke implementert ennå",
"MessageOpmlPreviewNote": "PS: Dette er en forhåndvisning av en OPML-fil. Den faktiske podcast-tittelen hentes direkte fra RSS-feeden.", "MessageOpmlPreviewNote": "PS: Dette er en forhåndvisning av en OPML-fil. Den faktiske podcast-tittelen hentes direkte fra RSS-feeden.",
"MessageOr": "eller", "MessageOr": "eller",
@ -889,10 +864,8 @@
"MessageRestoreBackupConfirm": "Er du sikker på at du vil gjenopprette sikkerhetskopien som var laget", "MessageRestoreBackupConfirm": "Er du sikker på at du vil gjenopprette sikkerhetskopien som var laget",
"MessageRestoreBackupWarning": "gjenoppretting av sikkerhetskopi vil overskrive hele databasen under /config og omslagsbilde under /metadata/items og /metadata/authors.<br /><br />Sikkerhetskopier endrer ikke noen filer under dine bibliotekmapper. Hvis du har aktivert tjenerinstillingen for å lagre omslagsbilder og metadata i bibliotekmapper så vil ikke de filene bli tatt sikkerhetskopi eller overskrevet.<br /><br />Alle klientene som bruker din tjener vil bli fornyet automatisk.", "MessageRestoreBackupWarning": "gjenoppretting av sikkerhetskopi vil overskrive hele databasen under /config og omslagsbilde under /metadata/items og /metadata/authors.<br /><br />Sikkerhetskopier endrer ikke noen filer under dine bibliotekmapper. Hvis du har aktivert tjenerinstillingen for å lagre omslagsbilder og metadata i bibliotekmapper så vil ikke de filene bli tatt sikkerhetskopi eller overskrevet.<br /><br />Alle klientene som bruker din tjener vil bli fornyet automatisk.",
"MessageScheduleLibraryScanNote": "For de fleste brukere er det anbefalt å la denne funksjonen være slått av, og la mappeovervåkeren stå på. Mappeovervåkeren oppdager automatisk endringer i biblioteksmappene. Mappeovervåkeren fungerer ikke med alle filsystemer (f.eks. NFS) og da kan planlagt skanning av bibliotekene brukes i steden for.", "MessageScheduleLibraryScanNote": "For de fleste brukere er det anbefalt å la denne funksjonen være slått av, og la mappeovervåkeren stå på. Mappeovervåkeren oppdager automatisk endringer i biblioteksmappene. Mappeovervåkeren fungerer ikke med alle filsystemer (f.eks. NFS) og da kan planlagt skanning av bibliotekene brukes i steden for.",
"MessageScheduleRunEveryWeekdayAtTime": "Kjør hver {0} kl. {1}",
"MessageSearchResultsFor": "Søk resultat for", "MessageSearchResultsFor": "Søk resultat for",
"MessageSelected": "{0} valgt", "MessageSelected": "{0} valgt",
"MessageSeriesSequenceCannotContainSpaces": "Serienummer kan ikke inneholde mellomrom",
"MessageServerCouldNotBeReached": "Tjener kunne ikke bli nådd", "MessageServerCouldNotBeReached": "Tjener kunne ikke bli nådd",
"MessageSetChaptersFromTracksDescription": "Sett kapitler ved å bruke hver lydfil som kapittel og kapitteltittel som lydfilnavnet", "MessageSetChaptersFromTracksDescription": "Sett kapitler ved å bruke hver lydfil som kapittel og kapitteltittel som lydfilnavnet",
"MessageShareExpirationWillBe": "Utløp vil være <strong>{0}</strong>", "MessageShareExpirationWillBe": "Utløp vil være <strong>{0}</strong>",
@ -913,27 +886,6 @@
"MessageTaskFailedToMergeAudioFiles": "Kunne ikke slå sammen lydfiler", "MessageTaskFailedToMergeAudioFiles": "Kunne ikke slå sammen lydfiler",
"MessageTaskFailedToMoveM4bFile": "Kunne ikke flytte M4B-fil", "MessageTaskFailedToMoveM4bFile": "Kunne ikke flytte M4B-fil",
"MessageTaskFailedToWriteMetadataFile": "Kunne ikke lagre metadata-fil", "MessageTaskFailedToWriteMetadataFile": "Kunne ikke lagre metadata-fil",
"MessageTaskMatchingBooksInLibrary": "Samsvarende bøker i biblioteket \"{0}\"",
"MessageTaskNoFilesToScan": "Ingen filer å skanne",
"MessageTaskOpmlImport": "OPML-import",
"MessageTaskOpmlImportDescription": "Oppretter podkaster fra {0} RSS-feeder",
"MessageTaskOpmlImportFeed": "OPML-importfeed",
"MessageTaskOpmlImportFeedDescription": "Importerer RSS-feed \"{0}\"",
"MessageTaskOpmlImportFeedFailed": "Kunne ikke hente podcast-feed",
"MessageTaskOpmlImportFeedPodcastDescription": "Oppretter podkast \"{0}\"",
"MessageTaskOpmlImportFeedPodcastExists": "Podkast finnes allerede på stien",
"MessageTaskOpmlImportFeedPodcastFailed": "Misslykkes å opprette podcast",
"MessageTaskOpmlImportFinished": "La til {0} podkaster",
"MessageTaskOpmlParseFailed": "Klarte ikke å tolke OPML-fil",
"MessageTaskOpmlParseFastFail": "Ugyldig OPML-fil: <opml>-tagg ble ikke funnet ELLER en <outline>-tagg ble ikke funnet",
"MessageTaskOpmlParseNoneFound": "Fant ingen feeder i OPML-filen",
"MessageTaskScanItemsAdded": "{0} lagt til",
"MessageTaskScanItemsMissing": "{0} mangler",
"MessageTaskScanItemsUpdated": "{0} oppdatert",
"MessageTaskScanNoChangesNeeded": "Ingen endringer nødvendig",
"MessageTaskScanningFileChanges": "Skanner filendringer i \"{0}\"",
"MessageTaskScanningLibrary": "Skanner biblioteket \"{0}\"",
"MessageTaskTargetDirectoryNotWritable": "Målkatalogen er ikke skrivbar",
"MessageThinking": "Tenker...", "MessageThinking": "Tenker...",
"MessageUploaderItemFailed": "Opplastning mislykkes", "MessageUploaderItemFailed": "Opplastning mislykkes",
"MessageUploaderItemSuccess": "Opplastning fullført!", "MessageUploaderItemSuccess": "Opplastning fullført!",
@ -951,43 +903,13 @@
"NoteUploaderFoldersWithMediaFiles": "Mapper med mediefiler vil bli behandlet som separate bibliotekgjenstander.", "NoteUploaderFoldersWithMediaFiles": "Mapper med mediefiler vil bli behandlet som separate bibliotekgjenstander.",
"NoteUploaderOnlyAudioFiles": "Om man laster opp kun lydfiler så vil hver lydfil bli behandlet som en separat lydbok.", "NoteUploaderOnlyAudioFiles": "Om man laster opp kun lydfiler så vil hver lydfil bli behandlet som en separat lydbok.",
"NoteUploaderUnsupportedFiles": "Filer som ikke er støttet vil bli ignorert. Når man velger eller slipper en mappe, filer som ikke er en mappe vil bli ignorert.", "NoteUploaderUnsupportedFiles": "Filer som ikke er støttet vil bli ignorert. Når man velger eller slipper en mappe, filer som ikke er en mappe vil bli ignorert.",
"NotificationOnBackupCompletedDescription": "Utløses når en sikkerhetskopi er fullført",
"NotificationOnBackupFailedDescription": "Utløses når en sikkerhetskopi mislykkes",
"NotificationOnEpisodeDownloadedDescription": "Utløses når en podkastepisode lastes ned automatisk",
"NotificationOnRSSFeedDisabledDescription": "Utløses når automatiske episodenedlastinger deaktiveres på grunn av for mange mislykkede forsøk",
"NotificationOnRSSFeedFailedDescription": "Utløses når RSS-feedforespørselen mislykkes for en automatisk episodenedlasting",
"NotificationOnTestDescription": "Hendelse for testing av varslingssystemet",
"PlaceholderBulkChapterInput": "Skriv inn kapitteltittel eller bruk nummerering (f.eks. 'Episode 1', 'Kapittel 10', '1.')",
"PlaceholderNewCollection": "Ny samlingsnavn", "PlaceholderNewCollection": "Ny samlingsnavn",
"PlaceholderNewFolderPath": "Ny mappesti", "PlaceholderNewFolderPath": "Ny mappesti",
"PlaceholderNewPlaylist": "Ny spillelistenavn", "PlaceholderNewPlaylist": "Ny spillelistenavn",
"PlaceholderSearch": "Søk..", "PlaceholderSearch": "Søk..",
"PlaceholderSearchEpisode": "Søk episode..", "PlaceholderSearchEpisode": "Søk episode..",
"StatsAuthorsAdded": "forfattere lagt til",
"StatsBooksAdded": "bøker lagt til",
"StatsBooksAdditional": "Noen av tilleggene inkluderer…",
"StatsBooksFinished": "bøker fullført",
"StatsBooksFinishedThisYear": "Noen bøker fullført i år…",
"StatsBooksListenedTo": "bøker lyttet til",
"StatsCollectionGrewTo": "Boksamlingen din vokste til…",
"StatsSessions": "økter",
"StatsSpentListening": "brukt på lytting",
"StatsTopAuthor": "BESTE FORFATTER",
"StatsTopAuthors": "BESTE FORFATTERE",
"StatsTopGenre": "BESTE SJANGER",
"StatsTopGenres": "BESTE SJANGRE",
"StatsTopMonth": "BESTE MÅNED",
"StatsTopNarrator": "BESTE FORTELLER",
"StatsTopNarrators": "BESTE FORTELLERE",
"StatsTotalDuration": "Med en total varighet på…",
"StatsYearInReview": "ÅRET SOM GIKK",
"ToastAccountUpdateSuccess": "Konto oppdatert", "ToastAccountUpdateSuccess": "Konto oppdatert",
"ToastAppriseUrlRequired": "Du må angi en Apprise-URL",
"ToastAsinRequired": "ASIN er påkrevd",
"ToastAuthorImageRemoveSuccess": "Forfatter bilde fjernet", "ToastAuthorImageRemoveSuccess": "Forfatter bilde fjernet",
"ToastAuthorNotFound": "Fant ikke forfatter \"{0}\"",
"ToastAuthorRemoveSuccess": "Forfatter fjernet",
"ToastAuthorSearchNotFound": "Fant ikke forfatter",
"ToastAuthorUpdateMerged": "Forfatter slått sammen", "ToastAuthorUpdateMerged": "Forfatter slått sammen",
"ToastAuthorUpdateSuccess": "Forfatter oppdatert", "ToastAuthorUpdateSuccess": "Forfatter oppdatert",
"ToastAuthorUpdateSuccessNoImageFound": "Forfatter oppdater (ingen bilde funnet)", "ToastAuthorUpdateSuccessNoImageFound": "Forfatter oppdater (ingen bilde funnet)",
@ -1001,7 +923,6 @@
"ToastBackupRestoreFailed": "Misslykkes å gjenopprette sikkerhetskopi", "ToastBackupRestoreFailed": "Misslykkes å gjenopprette sikkerhetskopi",
"ToastBackupUploadFailed": "Misslykkes å laste opp sikkerhetskopi", "ToastBackupUploadFailed": "Misslykkes å laste opp sikkerhetskopi",
"ToastBackupUploadSuccess": "Sikkerhetskopi lastet opp", "ToastBackupUploadSuccess": "Sikkerhetskopi lastet opp",
"ToastBatchApplyDetailsToItemsSuccess": "Detaljer brukt på elementene",
"ToastBatchDeleteFailed": "Sletting feilet på utvalget", "ToastBatchDeleteFailed": "Sletting feilet på utvalget",
"ToastBatchDeleteSuccess": "Sletting av samling utført", "ToastBatchDeleteSuccess": "Sletting av samling utført",
"ToastBatchQuickMatchFailed": "Feil ved rask integrering av metadata!", "ToastBatchQuickMatchFailed": "Feil ved rask integrering av metadata!",
@ -1011,25 +932,17 @@
"ToastBookmarkCreateFailed": "Misslykkes å opprette bokmerke", "ToastBookmarkCreateFailed": "Misslykkes å opprette bokmerke",
"ToastBookmarkCreateSuccess": "Bokmerke lagt til", "ToastBookmarkCreateSuccess": "Bokmerke lagt til",
"ToastBookmarkRemoveSuccess": "Bokmerke fjernet", "ToastBookmarkRemoveSuccess": "Bokmerke fjernet",
"ToastBulkChapterInvalidCount": "Skriv inn et tall mellom 1 og 150",
"ToastCachePurgeFailed": "Kunne ikke å slette mellomlager", "ToastCachePurgeFailed": "Kunne ikke å slette mellomlager",
"ToastCachePurgeSuccess": "Mellomlager slettet", "ToastCachePurgeSuccess": "Mellomlager slettet",
"ToastChapterLocked": "Kapittelet er låst.",
"ToastChapterStartTimeAdjusted": "Kapittelstart ble justert med {0} sekunder",
"ToastChaptersAllLocked": "Alle kapitler er låst. Lås opp noen kapitler for å flytte tidene.",
"ToastChaptersHaveErrors": "Kapittel har feil", "ToastChaptersHaveErrors": "Kapittel har feil",
"ToastChaptersInvalidShiftAmountLast": "Ugyldig forskyvningsverdi. Starttid for siste kapittel vil gå utover varigheten til denne lydboken.",
"ToastChaptersInvalidShiftAmountStart": "Ugyldig forskyvningsverdi. Det første kapitlet ville fått null eller negativ lengde og blitt overskrevet av det andre kapitlet. Øk starttiden til det andre kapitlet.",
"ToastChaptersMustHaveTitles": "Kapittel må ha titler", "ToastChaptersMustHaveTitles": "Kapittel må ha titler",
"ToastChaptersRemoved": "Kapitler fjernet", "ToastChaptersRemoved": "Kapitler fjernet",
"ToastChaptersUpdated": "Kapitler oppdatert", "ToastChaptersUpdated": "Kapitler oppdatert",
"ToastCollectionItemsAddFailed": "Feil med å legge til element(er)", "ToastCollectionItemsAddFailed": "Feil med å legge til element(er)",
"ToastCollectionRemoveSuccess": "Samling fjernet", "ToastCollectionRemoveSuccess": "Samling fjernet",
"ToastCollectionUpdateSuccess": "samlingupdated", "ToastCollectionUpdateSuccess": "samlingupdated",
"ToastConnectionNotAvailable": "Tilkobling er ikke tilgjengelig. Prøv igjen senere",
"ToastCoverSearchFailed": "Finner ikke bokomslag", "ToastCoverSearchFailed": "Finner ikke bokomslag",
"ToastCoverUpdateFailed": "Oppdatering av bilde feilet", "ToastCoverUpdateFailed": "Oppdatering av bilde feilet",
"ToastDateTimeInvalidOrIncomplete": "Dato og klokkeslett er ugyldig eller ufullstendig",
"ToastDeleteFileFailed": "Kunne ikke slette fil", "ToastDeleteFileFailed": "Kunne ikke slette fil",
"ToastDeleteFileSuccess": "Fil slettet", "ToastDeleteFileSuccess": "Fil slettet",
"ToastDeviceAddFailed": "Kunne ikke legge til enhet", "ToastDeviceAddFailed": "Kunne ikke legge til enhet",
@ -1042,9 +955,6 @@
"ToastEpisodeDownloadQueueClearFailed": "Kunne ikke tømme køen", "ToastEpisodeDownloadQueueClearFailed": "Kunne ikke tømme køen",
"ToastEpisodeDownloadQueueClearSuccess": "Nedlastingskø for eposider tømt", "ToastEpisodeDownloadQueueClearSuccess": "Nedlastingskø for eposider tømt",
"ToastEpisodeUpdateSuccess": "{0} episoder oppdatert", "ToastEpisodeUpdateSuccess": "{0} episoder oppdatert",
"ToastErrorCannotShare": "Kan ikke dele direkte på denne enheten",
"ToastFailedToCreate": "Kunne ikke opprette",
"ToastFailedToDelete": "Kunne ikke slette",
"ToastFailedToLoadData": "Kunne ikke laste inn data", "ToastFailedToLoadData": "Kunne ikke laste inn data",
"ToastFailedToMatch": "Kunne ikke matche", "ToastFailedToMatch": "Kunne ikke matche",
"ToastFailedToShare": "Deling feilet", "ToastFailedToShare": "Deling feilet",
@ -1052,7 +962,6 @@
"ToastInvalidImageUrl": "Ugyldig URL for bilde", "ToastInvalidImageUrl": "Ugyldig URL for bilde",
"ToastInvalidMaxEpisodesToDownload": "Ugyldig maksimalt antall for nedlasting av episoder", "ToastInvalidMaxEpisodesToDownload": "Ugyldig maksimalt antall for nedlasting av episoder",
"ToastInvalidUrl": "Ugyldig URL", "ToastInvalidUrl": "Ugyldig URL",
"ToastInvalidUrls": "Én eller flere URL-er er ugyldige",
"ToastItemCoverUpdateSuccess": "Omslag oppdatert", "ToastItemCoverUpdateSuccess": "Omslag oppdatert",
"ToastItemDeletedFailed": "Kunne ikke slette element", "ToastItemDeletedFailed": "Kunne ikke slette element",
"ToastItemDeletedSuccess": "Element slettet", "ToastItemDeletedSuccess": "Element slettet",
@ -1077,7 +986,6 @@
"ToastMustHaveAtLeastOnePath": "Påkrevd med minst én mappe", "ToastMustHaveAtLeastOnePath": "Påkrevd med minst én mappe",
"ToastNameEmailRequired": "Navn og e-post påkrevd", "ToastNameEmailRequired": "Navn og e-post påkrevd",
"ToastNameRequired": "Navn er påkrevd", "ToastNameRequired": "Navn er påkrevd",
"ToastNewApiKeyUserError": "Du må velge en bruker",
"ToastNewEpisodesFound": "{0} nye episoder funnet", "ToastNewEpisodesFound": "{0} nye episoder funnet",
"ToastNewUserCreatedFailed": "Kunne ikke opprette konto: \"{0}\"", "ToastNewUserCreatedFailed": "Kunne ikke opprette konto: \"{0}\"",
"ToastNewUserCreatedSuccess": "Ny konto opprettet", "ToastNewUserCreatedSuccess": "Ny konto opprettet",
@ -1086,7 +994,6 @@
"ToastNewUserTagError": "Velg minst en tag", "ToastNewUserTagError": "Velg minst en tag",
"ToastNewUserUsernameError": "Skriv inn brukernavn", "ToastNewUserUsernameError": "Skriv inn brukernavn",
"ToastNoNewEpisodesFound": "Ingen nye episoder funnet", "ToastNoNewEpisodesFound": "Ingen nye episoder funnet",
"ToastNoRSSFeed": "Podkasten har ikke en RSS-feed",
"ToastNoUpdatesNecessary": "Ingen oppdateringer nødvendig", "ToastNoUpdatesNecessary": "Ingen oppdateringer nødvendig",
"ToastNotificationCreateFailed": "Kunne ikke opprette varsling", "ToastNotificationCreateFailed": "Kunne ikke opprette varsling",
"ToastNotificationDeleteFailed": "Kunne ikke slette varsling", "ToastNotificationDeleteFailed": "Kunne ikke slette varsling",
@ -1102,7 +1009,6 @@
"ToastPlaylistUpdateSuccess": "Spilleliste oppdatert", "ToastPlaylistUpdateSuccess": "Spilleliste oppdatert",
"ToastPodcastCreateFailed": "Misslykkes å opprette podcast", "ToastPodcastCreateFailed": "Misslykkes å opprette podcast",
"ToastPodcastCreateSuccess": "Podcast opprettet", "ToastPodcastCreateSuccess": "Podcast opprettet",
"ToastPodcastEpisodeUpdated": "Episode oppdatert",
"ToastPodcastGetFeedFailed": "Kunne ikke hente podcast-feed", "ToastPodcastGetFeedFailed": "Kunne ikke hente podcast-feed",
"ToastPodcastNoEpisodesInFeed": "Ingen episoder funnet i RSS-feed", "ToastPodcastNoEpisodesInFeed": "Ingen episoder funnet i RSS-feed",
"ToastPodcastNoRssFeed": "Podcast har ingen RSS-feed", "ToastPodcastNoRssFeed": "Podcast har ingen RSS-feed",
@ -1127,7 +1033,6 @@
"ToastSelectAtLeastOneUser": "Velg minst én bruker", "ToastSelectAtLeastOneUser": "Velg minst én bruker",
"ToastSendEbookToDeviceFailed": "Misslykkes å sende ebok", "ToastSendEbookToDeviceFailed": "Misslykkes å sende ebok",
"ToastSendEbookToDeviceSuccess": "Ebok sendt til \"{0}\"", "ToastSendEbookToDeviceSuccess": "Ebok sendt til \"{0}\"",
"ToastSeriesSubmitFailedSameName": "Kan ikke legge til to serier med samme navn",
"ToastSeriesUpdateFailed": "Misslykkes å oppdatere serie", "ToastSeriesUpdateFailed": "Misslykkes å oppdatere serie",
"ToastSeriesUpdateSuccess": "Serie oppdatert", "ToastSeriesUpdateSuccess": "Serie oppdatert",
"ToastServerSettingsUpdateSuccess": "Server-innstillinger oppdatert", "ToastServerSettingsUpdateSuccess": "Server-innstillinger oppdatert",
@ -1146,20 +1051,10 @@
"ToastUnknownError": "Ukjent feil", "ToastUnknownError": "Ukjent feil",
"ToastUnlinkOpenIdFailed": "Kunne ikke koble bruker fra OpenID", "ToastUnlinkOpenIdFailed": "Kunne ikke koble bruker fra OpenID",
"ToastUnlinkOpenIdSuccess": "Bruker koblet fra OpenID", "ToastUnlinkOpenIdSuccess": "Bruker koblet fra OpenID",
"ToastUploaderFilepathExistsError": "Filstien \"{0}\" finnes allerede på serveren",
"ToastUploaderItemExistsInSubdirectoryError": "Elementet \"{0}\" bruker en underkatalog av opplastingsstien.",
"ToastUserDeleteFailed": "Misslykkes å slette bruker", "ToastUserDeleteFailed": "Misslykkes å slette bruker",
"ToastUserDeleteSuccess": "Bruker slettet", "ToastUserDeleteSuccess": "Bruker slettet",
"ToastUserPasswordChangeSuccess": "Passord ble endret", "ToastUserPasswordChangeSuccess": "Passord ble endret",
"ToastUserPasswordMismatch": "Passord må stemme overens", "ToastUserPasswordMismatch": "Passord må stemme overens",
"ToastUserPasswordMustChange": "Nytt passord kan ikke være identisk med gammelt passord", "ToastUserPasswordMustChange": "Nytt passord kan ikke være identisk med gammelt passord",
"ToastUserRootRequireName": "Root-brukernavn er påkrevd", "ToastUserRootRequireName": "Root-brukernavn er påkrevd"
"TooltipAddChapters": "Legg til kapittel(er)",
"TooltipAddOneSecond": "Legg til 1 sekund",
"TooltipAdjustChapterStart": "Klikk for å justere starttid",
"TooltipLockAllChapters": "Lås alle kapitler",
"TooltipLockChapter": "Lås kapittel (Shift+klikk for område)",
"TooltipSubtractOneSecond": "Trekk fra 1 sekund",
"TooltipUnlockAllChapters": "Lås opp alle kapitler",
"TooltipUnlockChapter": "Lås opp kapittel (Shift+klikk for område)"
} }

View file

@ -11,7 +11,7 @@
"ButtonApplyChapters": "Zatwierdź rozdziały", "ButtonApplyChapters": "Zatwierdź rozdziały",
"ButtonAuthors": "Autorzy", "ButtonAuthors": "Autorzy",
"ButtonBack": "Wstecz", "ButtonBack": "Wstecz",
"ButtonBatchEditPopulateFromExisting": "Uzupełnij na podstawie istniejących", "ButtonBatchEditPopulateFromExisting": "Powiel z poprzednich",
"ButtonBatchEditPopulateMapDetails": "Powiel szczegóły mapy", "ButtonBatchEditPopulateMapDetails": "Powiel szczegóły mapy",
"ButtonBrowseForFolder": "Wyszukaj folder", "ButtonBrowseForFolder": "Wyszukaj folder",
"ButtonCancel": "Anuluj", "ButtonCancel": "Anuluj",
@ -55,7 +55,7 @@
"ButtonNext": "Następny", "ButtonNext": "Następny",
"ButtonNextChapter": "Następny rozdział", "ButtonNextChapter": "Następny rozdział",
"ButtonNextItemInQueue": "Następny element w kolejce", "ButtonNextItemInQueue": "Następny element w kolejce",
"ButtonOk": "OK", "ButtonOk": "Ok",
"ButtonOpenFeed": "Otwórz feed", "ButtonOpenFeed": "Otwórz feed",
"ButtonOpenManager": "Otwórz menadżera", "ButtonOpenManager": "Otwórz menadżera",
"ButtonPause": "Wstrzymaj", "ButtonPause": "Wstrzymaj",
@ -127,7 +127,7 @@
"HeaderAudiobookTools": "Narzędzia do zarządzania audiobookami", "HeaderAudiobookTools": "Narzędzia do zarządzania audiobookami",
"HeaderAuthentication": "Uwierzytelnianie", "HeaderAuthentication": "Uwierzytelnianie",
"HeaderBackups": "Kopie zapasowe", "HeaderBackups": "Kopie zapasowe",
"HeaderBulkChapterModal": "Dodaj kilka rozdziałów", "HeaderBulkChapterModal": "Dodaj wiele rozdziałów",
"HeaderChangePassword": "Zmień hasło", "HeaderChangePassword": "Zmień hasło",
"HeaderChapters": "Rozdziały", "HeaderChapters": "Rozdziały",
"HeaderChooseAFolder": "Wybierz folder", "HeaderChooseAFolder": "Wybierz folder",
@ -275,7 +275,7 @@
"LabelBonus": "Bonus", "LabelBonus": "Bonus",
"LabelBooks": "Książki", "LabelBooks": "Książki",
"LabelButtonText": "Tekst przycisku", "LabelButtonText": "Tekst przycisku",
"LabelByAuthor": "Autor {0}", "LabelByAuthor": "autorstwa {0}",
"LabelChangePassword": "Zmień hasło", "LabelChangePassword": "Zmień hasło",
"LabelChannels": "Kanały", "LabelChannels": "Kanały",
"LabelChapterCount": "{0} rozdziałów", "LabelChapterCount": "{0} rozdziałów",
@ -286,7 +286,7 @@
"LabelClickToUseCurrentValue": "Kliknij by zastosować aktualną wartość", "LabelClickToUseCurrentValue": "Kliknij by zastosować aktualną wartość",
"LabelClosePlayer": "Zamknij odtwarzacz", "LabelClosePlayer": "Zamknij odtwarzacz",
"LabelCodec": "Kodek", "LabelCodec": "Kodek",
"LabelCollapseSeries": "Zwiń serię", "LabelCollapseSeries": "Podsumuj serię",
"LabelCollapseSubSeries": "Zwiń podserie", "LabelCollapseSubSeries": "Zwiń podserie",
"LabelCollection": "Kolekcja", "LabelCollection": "Kolekcja",
"LabelCollections": "Kolekcje", "LabelCollections": "Kolekcje",
@ -300,7 +300,7 @@
"LabelCoverImageURL": "URL okładki", "LabelCoverImageURL": "URL okładki",
"LabelCoverProvider": "Dostawca okładki", "LabelCoverProvider": "Dostawca okładki",
"LabelCreatedAt": "Utworzone", "LabelCreatedAt": "Utworzone",
"LabelCronExpression": "Wyrażenie harmonogramowania zadań cron", "LabelCronExpression": "Wyrażenie CRON",
"LabelCurrent": "Aktualny", "LabelCurrent": "Aktualny",
"LabelCurrently": "Obecnie:", "LabelCurrently": "Obecnie:",
"LabelCustomCronExpression": "Niestandardowe wyrażenie Cron:", "LabelCustomCronExpression": "Niestandardowe wyrażenie Cron:",
@ -339,11 +339,11 @@
"LabelEnable": "Włącz", "LabelEnable": "Włącz",
"LabelEncodingBackupLocation": "Kopia zapasowa twoich oryginalnych plików audio będzie się znajdować w:", "LabelEncodingBackupLocation": "Kopia zapasowa twoich oryginalnych plików audio będzie się znajdować w:",
"LabelEncodingChaptersNotEmbedded": "W audiobookach wielościeżkowych rozdziały nie są osadzone.", "LabelEncodingChaptersNotEmbedded": "W audiobookach wielościeżkowych rozdziały nie są osadzone.",
"LabelEncodingClearItemCache": "Pamiętaj, aby okresowo czyścić pamięć podręczną elementów.", "LabelEncodingClearItemCache": "Pamiętaj o okresowym czyszczeniu pamięci podręcznej elementów.",
"LabelEncodingFinishedM4B": "Ukończony plik M4B zostanie umieszczony w folderze audiobooka pod adresem:", "LabelEncodingFinishedM4B": "Ukończony plik M4B zostanie umieszczony w folderze audiobooka pod adresem:",
"LabelEncodingInfoEmbedded": "Metadane zostaną osadzone w ścieżkach audio w folderze z audiobookiem.", "LabelEncodingInfoEmbedded": "Metadane zostaną osadzone w ścieżkach audio w folderze z audiobookiem.",
"LabelEncodingStartedNavigation": "Po uruchomieniu zadania możesz opuścić tę stronę.", "LabelEncodingStartedNavigation": "Po uruchomieniu zadania możesz opuścić tę stronę.",
"LabelEncodingTimeWarning": "Kodowanie może potrwać do 30 minut.", "LabelEncodingTimeWarning": "Konwersja może potrwać do 30 minut.",
"LabelEncodingWarningAdvancedSettings": "Ostrzeżenie: Nie aktualizuj tych ustawień, jeśli nie jesteś zaznajomiony ze sposobem działania ffmpeg i opcji konwersji.", "LabelEncodingWarningAdvancedSettings": "Ostrzeżenie: Nie aktualizuj tych ustawień, jeśli nie jesteś zaznajomiony ze sposobem działania ffmpeg i opcji konwersji.",
"LabelEncodingWatcherDisabled": "Jeśli monitorowanie folderów jest wyłączone, należy ponownie przeskanować audiobooka.", "LabelEncodingWatcherDisabled": "Jeśli monitorowanie folderów jest wyłączone, należy ponownie przeskanować audiobooka.",
"LabelEnd": "Zakończ", "LabelEnd": "Zakończ",
@ -359,8 +359,8 @@
"LabelExample": "Przykład", "LabelExample": "Przykład",
"LabelExpandSeries": "Rozwiń serie", "LabelExpandSeries": "Rozwiń serie",
"LabelExpandSubSeries": "Rozwiń podserie", "LabelExpandSubSeries": "Rozwiń podserie",
"LabelExpired": "Wygasły", "LabelExpired": "Przeterminowane",
"LabelExpiresAt": "Wygasa o", "LabelExpiresAt": "Wygasa w",
"LabelExpiresInSeconds": "Wygasa za (sekund)", "LabelExpiresInSeconds": "Wygasa za (sekund)",
"LabelExpiresNever": "Nigdy", "LabelExpiresNever": "Nigdy",
"LabelExplicit": "18+", "LabelExplicit": "18+",
@ -436,9 +436,9 @@
"LabelLibraryFilterSublistEmpty": "Brak {0}", "LabelLibraryFilterSublistEmpty": "Brak {0}",
"LabelLibraryItem": "Element biblioteki", "LabelLibraryItem": "Element biblioteki",
"LabelLibraryName": "Nazwa biblioteki", "LabelLibraryName": "Nazwa biblioteki",
"LabelLibrarySortByProgress": "Postęp: Ostatnia aktualizacja", "LabelLibrarySortByProgress": "Postęp: Ostatnio zaktualizowane",
"LabelLibrarySortByProgressFinished": "Postęp: Ukończony", "LabelLibrarySortByProgressFinished": "Postęp: Ukończone",
"LabelLibrarySortByProgressStarted": "Postęp: Rozpoczęty", "LabelLibrarySortByProgressStarted": "Postęp: Rozpoczęte",
"LabelLimit": "Limit", "LabelLimit": "Limit",
"LabelLineSpacing": "Odstęp między wierszami", "LabelLineSpacing": "Odstęp między wierszami",
"LabelListenAgain": "Słuchaj ponownie", "LabelListenAgain": "Słuchaj ponownie",
@ -450,7 +450,7 @@
"LabelMatchConfidence": "Zaufanie", "LabelMatchConfidence": "Zaufanie",
"LabelMatchExistingUsersBy": "Dopasuje istniejących użytkowników poprzez", "LabelMatchExistingUsersBy": "Dopasuje istniejących użytkowników poprzez",
"LabelMatchExistingUsersByDescription": "Służy do łączenia istniejących użytkowników. Po połączeniu użytkownicy zostaną dopasowani za pomocą unikalnego identyfikatora od dostawcy SSO", "LabelMatchExistingUsersByDescription": "Służy do łączenia istniejących użytkowników. Po połączeniu użytkownicy zostaną dopasowani za pomocą unikalnego identyfikatora od dostawcy SSO",
"LabelMaxEpisodesToDownload": "Maksymalna liczba odcinków do pobrania. Użyj 0, aby uzyskać nieograniczoną liczbę.", "LabelMaxEpisodesToDownload": "Maksymalna liczba odcinków do pobrania. Użyj 0, aby wyłączyć ograniczenie.",
"LabelMaxEpisodesToDownloadPerCheck": "Maksymalna liczba nowych odcinków do pobrania na jedno sprawdzenie", "LabelMaxEpisodesToDownloadPerCheck": "Maksymalna liczba nowych odcinków do pobrania na jedno sprawdzenie",
"LabelMaxEpisodesToKeep": "Maksymalna liczba odcinków do zachowania", "LabelMaxEpisodesToKeep": "Maksymalna liczba odcinków do zachowania",
"LabelMaxEpisodesToKeepHelp": "Wartość 0 wyłącza maksymalny limit. Po automatycznym pobraniu nowego odcinka, najstarszy odcinek zostanie usunięty, jeśli masz ich więcej niż X. Spowoduje to usunięcie tylko 1 odcinka na nowe pobieranie.", "LabelMaxEpisodesToKeepHelp": "Wartość 0 wyłącza maksymalny limit. Po automatycznym pobraniu nowego odcinka, najstarszy odcinek zostanie usunięty, jeśli masz ich więcej niż X. Spowoduje to usunięcie tylko 1 odcinka na nowe pobieranie.",
@ -498,8 +498,7 @@
"LabelNumberOfChapters": "Liczba rozdziałów:", "LabelNumberOfChapters": "Liczba rozdziałów:",
"LabelNumberOfEpisodes": "# Odcinków", "LabelNumberOfEpisodes": "# Odcinków",
"LabelOpenIDAdvancedPermsClaimDescription": "Nazwa deklaracji OpenID zawierającej zaawansowane uprawnienia do działań użytkownika w aplikacji, które będą miały zastosowanie do ról innych niż administracyjne (<b>jeśli skonfigurowano</b>). Jeśli deklaracja nie zostanie uwzględniona w odpowiedzi, dostęp do ABS zostanie zablokowany. Brak jednej opcji zostanie uznany za <code>fałsz</code>. Upewnij się, że deklaracja dostawcy tożsamości jest zgodna z oczekiwaną strukturą:", "LabelOpenIDAdvancedPermsClaimDescription": "Nazwa deklaracji OpenID zawierającej zaawansowane uprawnienia do działań użytkownika w aplikacji, które będą miały zastosowanie do ról innych niż administracyjne (<b>jeśli skonfigurowano</b>). Jeśli deklaracja nie zostanie uwzględniona w odpowiedzi, dostęp do ABS zostanie zablokowany. Brak jednej opcji zostanie uznany za <code>fałsz</code>. Upewnij się, że deklaracja dostawcy tożsamości jest zgodna z oczekiwaną strukturą:",
"LabelOpenIDClaims": "Pozostaw poniższe opcje puste, aby wyłączyć zaawansowane przypisywanie grup i uprawnień. Wówczas automatycznie zostanie przypisana grupa „Użytkownik”.", "LabelOpenIDClaims": "Pozostaw poniższe opcje puste, aby wyłączyć zaawansowane przypisywanie grup i uprawnień. Automatycznie zostanie przypisana grupa „Użytkownik”.",
"LabelOpenIDGroupClaimDescription": "Nazwa roszczenia OpenID zawierającego listę grup użytkownika. Powszechnie nazywane <code>grupami</code>. <b>Jeśli skonfigurowano</b>, aplikacja automatycznie przypisze role na podstawie przynależności użytkownika do grup, pod warunkiem, że te grupy są nazwane bez uwzględniania wielkości liter „admin”, „user” lub „guest” w roszczeniu. Roszczenie powinno zawierać listę, a jeśli użytkownik należy do wielu grup, aplikacja przypisze rolę odpowiadającą najwyższemu poziomowi dostępu. Jeśli żadna grupa nie będzie pasować, dostęp zostanie odrzucony.",
"LabelOpenRSSFeed": "Otwórz kanał RSS", "LabelOpenRSSFeed": "Otwórz kanał RSS",
"LabelOverwrite": "Nadpisz", "LabelOverwrite": "Nadpisz",
"LabelPaginationPageXOfY": "Strona {0} z {1}", "LabelPaginationPageXOfY": "Strona {0} z {1}",
@ -574,11 +573,11 @@
"LabelSelectUsers": "Wybór użytkowników", "LabelSelectUsers": "Wybór użytkowników",
"LabelSendEbookToDevice": "Wyślij ebook do...", "LabelSendEbookToDevice": "Wyślij ebook do...",
"LabelSequence": "Kolejność", "LabelSequence": "Kolejność",
"LabelSerial": "Numer serii", "LabelSerial": "Seria",
"LabelSeries": "Serie", "LabelSeries": "Serie",
"LabelSeriesName": "Nazwy serii", "LabelSeriesName": "Nazwy serii",
"LabelSeriesProgress": "Postęp w serii", "LabelSeriesProgress": "Postęp w serii",
"LabelServerLogLevel": "Poziom logów servera", "LabelServerLogLevel": "Poziom logowania servera",
"LabelServerYearReview": "Podsumowanie serwera w roku ({0})", "LabelServerYearReview": "Podsumowanie serwera w roku ({0})",
"LabelSetEbookAsPrimary": "Ustaw jako pierwszy", "LabelSetEbookAsPrimary": "Ustaw jako pierwszy",
"LabelSetEbookAsSupplementary": "Ustaw jako dodatkowy", "LabelSetEbookAsSupplementary": "Ustaw jako dodatkowy",
@ -622,7 +621,7 @@
"LabelSettingsStoreMetadataWithItemHelp": "Domyślnie metadane są przechowywane w folderze /metadata/items, włączenie tej opcji spowoduje, że okładka będzie przechowywana w folderze ksiązki. Tylko jedna okładka o nazwie pliku \"cover\" będzie przechowywana", "LabelSettingsStoreMetadataWithItemHelp": "Domyślnie metadane są przechowywane w folderze /metadata/items, włączenie tej opcji spowoduje, że okładka będzie przechowywana w folderze ksiązki. Tylko jedna okładka o nazwie pliku \"cover\" będzie przechowywana",
"LabelSettingsTimeFormat": "Format czasu", "LabelSettingsTimeFormat": "Format czasu",
"LabelShare": "Udostępnij", "LabelShare": "Udostępnij",
"LabelShareDownloadableHelp": "Zezwala użytkownikom z linkiem udostępniania na pobranie pliku zip elementu biblioteki.", "LabelShareDownloadableHelp": "Użytkownicy mogą przy pomocy linka ściągnąć archiwum ZIP pozycji biblioteki",
"LabelShareOpen": "Otwórz udział", "LabelShareOpen": "Otwórz udział",
"LabelShareURL": "Link do udziału", "LabelShareURL": "Link do udziału",
"LabelShowAll": "Pokaż wszystko", "LabelShowAll": "Pokaż wszystko",
@ -661,11 +660,11 @@
"LabelTagsAccessibleToUser": "Tagi dostępne dla użytkownika", "LabelTagsAccessibleToUser": "Tagi dostępne dla użytkownika",
"LabelTagsNotAccessibleToUser": "Znaczniki niedostępne dla użytkownika", "LabelTagsNotAccessibleToUser": "Znaczniki niedostępne dla użytkownika",
"LabelTasks": "Uruchomione zadania", "LabelTasks": "Uruchomione zadania",
"LabelTextEditorBulletedList": "Lista wypunktowana", "LabelTextEditorBulletedList": "Lista punktowana",
"LabelTextEditorLink": "Link", "LabelTextEditorLink": "Link",
"LabelTextEditorNumberedList": "Lista numerowana", "LabelTextEditorNumberedList": "Lista numerowana",
"LabelTextEditorUnlink": "Usuń link", "LabelTextEditorUnlink": "Usuń link",
"LabelTheme": "Motyw", "LabelTheme": "Kompozycja",
"LabelThemeDark": "Ciemny", "LabelThemeDark": "Ciemny",
"LabelThemeLight": "Jasny", "LabelThemeLight": "Jasny",
"LabelThemeSepia": "Sepia", "LabelThemeSepia": "Sepia",
@ -687,13 +686,13 @@
"LabelToolsMakeM4bDescription": "Tworzy plik w formacie .M4B, który zawiera metadane, okładkę oraz rozdziały.", "LabelToolsMakeM4bDescription": "Tworzy plik w formacie .M4B, który zawiera metadane, okładkę oraz rozdziały.",
"LabelToolsSplitM4b": "Podziel plik .M4B na pliki .MP3", "LabelToolsSplitM4b": "Podziel plik .M4B na pliki .MP3",
"LabelToolsSplitM4bDescription": "Podziel plik .M4B na pliki .MP3 na rozdziały z załączonymi metadanymi oraz okładką.", "LabelToolsSplitM4bDescription": "Podziel plik .M4B na pliki .MP3 na rozdziały z załączonymi metadanymi oraz okładką.",
"LabelTotalDuration": "Całkowita długość", "LabelTotalDuration": "TCałkowita długość",
"LabelTotalTimeListened": "Całkowity czas odtwarzania", "LabelTotalTimeListened": "Całkowity czas odtwarzania",
"LabelTrackFromFilename": "Ścieżka z nazwy pliku", "LabelTrackFromFilename": "Ścieżka z nazwy pliku",
"LabelTrackFromMetadata": "Ścieżka z metadanych", "LabelTrackFromMetadata": "Ścieżka z metadanych",
"LabelTracks": "Ścieżki", "LabelTracks": "Ścieżki",
"LabelTracksMultiTrack": "Wielościeżkowy", "LabelTracksMultiTrack": "Wielościeżkowy",
"LabelTracksNone": "Brak utworów", "LabelTracksNone": "Brak ścieżek",
"LabelTracksSingleTrack": "Pojedyncza ścieżka", "LabelTracksSingleTrack": "Pojedyncza ścieżka",
"LabelTrailer": "Zwiastun", "LabelTrailer": "Zwiastun",
"LabelType": "Typ", "LabelType": "Typ",
@ -710,7 +709,7 @@
"LabelUploaderDragAndDropFilesOnly": "Przeciągnij i upuść pliki", "LabelUploaderDragAndDropFilesOnly": "Przeciągnij i upuść pliki",
"LabelUploaderDropFiles": "Puść pliki", "LabelUploaderDropFiles": "Puść pliki",
"LabelUploaderItemFetchMetadataHelp": "Automatycznie pobierz tytuł, autora i serie", "LabelUploaderItemFetchMetadataHelp": "Automatycznie pobierz tytuł, autora i serie",
"LabelUseAdvancedOptions": "Użyj ustawień zaawansowanych", "LabelUseAdvancedOptions": "Opcje zaawansowane",
"LabelUseChapterTrack": "Użyj ścieżki rozdziału", "LabelUseChapterTrack": "Użyj ścieżki rozdziału",
"LabelUseFullTrack": "Użycie ścieżki rozdziału", "LabelUseFullTrack": "Użycie ścieżki rozdziału",
"LabelUseZeroForUnlimited": "Użyj 0, aby wyłączyć ograniczenia", "LabelUseZeroForUnlimited": "Użyj 0, aby wyłączyć ograniczenia",
@ -724,7 +723,6 @@
"LabelViewQueue": "Wyświetlaj kolejkę odtwarzania", "LabelViewQueue": "Wyświetlaj kolejkę odtwarzania",
"LabelVolume": "Głośność", "LabelVolume": "Głośność",
"LabelWebRedirectURLsDescription": "Zezwól na te adresy URL w swoim dostawcy OAuth, aby umożliwić przekierowanie z powrotem do aplikacji internetowej po zalogowaniu:", "LabelWebRedirectURLsDescription": "Zezwól na te adresy URL w swoim dostawcy OAuth, aby umożliwić przekierowanie z powrotem do aplikacji internetowej po zalogowaniu:",
"LabelWebRedirectURLsSubfolder": "Podfolder dla adresów URL przekierowań",
"LabelWeekdaysToRun": "Dni tygodnia", "LabelWeekdaysToRun": "Dni tygodnia",
"LabelXBooks": "{0} książek", "LabelXBooks": "{0} książek",
"LabelXItems": "{0} elementów", "LabelXItems": "{0} elementów",
@ -745,7 +743,7 @@
"MessageBackupsLocationNoEditNote": "Uwaga: Lokalizacja kopii zapasowej jest ustawiona poprzez zmienną środowiskową i nie może być tutaj zmieniona.", "MessageBackupsLocationNoEditNote": "Uwaga: Lokalizacja kopii zapasowej jest ustawiona poprzez zmienną środowiskową i nie może być tutaj zmieniona.",
"MessageBackupsLocationPathEmpty": "Ścieżka do kopii zapasowej nie może być pusta", "MessageBackupsLocationPathEmpty": "Ścieżka do kopii zapasowej nie może być pusta",
"MessageBatchEditPopulateMapDetailsAllHelp": "Wypełnij włączone pola danymi ze wszystkich elementów. Pola z wieloma wartościami zostaną scalone.", "MessageBatchEditPopulateMapDetailsAllHelp": "Wypełnij włączone pola danymi ze wszystkich elementów. Pola z wieloma wartościami zostaną scalone.",
"MessageBatchEditPopulateMapDetailsItemHelp": "Wypełnia włączone pola szczegółów mapy danymi z tego elementu", "MessageBatchEditPopulateMapDetailsItemHelp": "Wypełnij pola szczegółów mapy włączonej danymi z tego elementu",
"MessageBatchQuickMatchDescription": "Quick Match będzie próbował dodać brakujące okładki i metadane dla wybranych elementów. Włącz poniższe opcje, aby umożliwić Quick Match nadpisanie istniejących okładek i/lub metadanych.", "MessageBatchQuickMatchDescription": "Quick Match będzie próbował dodać brakujące okładki i metadane dla wybranych elementów. Włącz poniższe opcje, aby umożliwić Quick Match nadpisanie istniejących okładek i/lub metadanych.",
"MessageBookshelfNoCollections": "Nie posiadasz jeszcze żadnych kolekcji", "MessageBookshelfNoCollections": "Nie posiadasz jeszcze żadnych kolekcji",
"MessageBookshelfNoCollectionsHelp": "Kolekcje są publiczne. Wszyscy użytkownicy mający dostęp do biblioteki mogą je zobaczyć.", "MessageBookshelfNoCollectionsHelp": "Kolekcje są publiczne. Wszyscy użytkownicy mający dostęp do biblioteki mogą je zobaczyć.",
@ -917,22 +915,10 @@
"MessageTaskNoFilesToScan": "Brak plików do skanowania", "MessageTaskNoFilesToScan": "Brak plików do skanowania",
"MessageTaskOpmlImport": "Importuj OPML", "MessageTaskOpmlImport": "Importuj OPML",
"MessageTaskOpmlImportDescription": "Tworzenie {0} podcastów z kanałów RSS", "MessageTaskOpmlImportDescription": "Tworzenie {0} podcastów z kanałów RSS",
"MessageTaskOpmlImportFeed": "Importuje plik OPML",
"MessageTaskOpmlImportFeedDescription": "Importowanie kanału RSS „{0}”",
"MessageTaskOpmlImportFeedFailed": "Nie udało się pobrać kanału podcastowego",
"MessageTaskOpmlImportFeedPodcastDescription": "Tworzenie podcastu \"{0}\"",
"MessageTaskOpmlImportFeedPodcastExists": "Podcast już istnieje pod podaną ścieżką",
"MessageTaskOpmlImportFeedPodcastFailed": "Nie udało się utworzyć podcastu",
"MessageTaskOpmlImportFinished": "Dodano {0} podcastów",
"MessageTaskOpmlParseFailed": "Błąd parsowania pliku OPML",
"MessageTaskOpmlParseFastFail": "Nieprawidłowy plik OPML. Nie znaleziono tagu <opml> LUB nie znaleziono tagu <outline>.",
"MessageTaskOpmlParseNoneFound": "Nie znaleziono kanałów w pliku OPML",
"MessageTaskScanItemsAdded": "Dodano {0}", "MessageTaskScanItemsAdded": "Dodano {0}",
"MessageTaskScanItemsMissing": "Brakuje {0}", "MessageTaskScanItemsMissing": "Brakuje {0}",
"MessageTaskScanItemsUpdated": "Zaktualizowano {0}", "MessageTaskScanItemsUpdated": "Zaktualizowano {0}",
"MessageTaskScanNoChangesNeeded": "Brak zmian", "MessageTaskScanNoChangesNeeded": "Brak zmian",
"MessageTaskScanningFileChanges": "Skanowanie zmian w plikach w „{0}”",
"MessageTaskScanningLibrary": "Skanowanie biblioteki \"{0}\"",
"MessageTaskTargetDirectoryNotWritable": "Brak prawa zapisu do folderu docelowego", "MessageTaskTargetDirectoryNotWritable": "Brak prawa zapisu do folderu docelowego",
"MessageThinking": "Myślę...", "MessageThinking": "Myślę...",
"MessageUploaderItemFailed": "Nie udało się przesłać", "MessageUploaderItemFailed": "Nie udało się przesłać",
@ -951,8 +937,6 @@
"NoteUploaderFoldersWithMediaFiles": "Foldery z plikami multimedialnymi będą traktowane jako osobne elementy w bibliotece.", "NoteUploaderFoldersWithMediaFiles": "Foldery z plikami multimedialnymi będą traktowane jako osobne elementy w bibliotece.",
"NoteUploaderOnlyAudioFiles": "Jeśli przesyłasz tylko pliki audio, każdy plik audio będzie traktowany jako osobny audiobook.", "NoteUploaderOnlyAudioFiles": "Jeśli przesyłasz tylko pliki audio, każdy plik audio będzie traktowany jako osobny audiobook.",
"NoteUploaderUnsupportedFiles": "Nieobsługiwane pliki są ignorowane. Podczas dodawania folderu, inne pliki, które nie znajdują się w folderze elementu, są ignorowane.", "NoteUploaderUnsupportedFiles": "Nieobsługiwane pliki są ignorowane. Podczas dodawania folderu, inne pliki, które nie znajdują się w folderze elementu, są ignorowane.",
"NotificationOnTestDescription": "Zdarzenie używane do testowania systemu powiadomień",
"PlaceholderBulkChapterInput": "Wpisz tytuł rozdziału lub użyj numeracji (np. „Odcinek 1”, „Rozdział 10”, „1.”)",
"PlaceholderNewCollection": "Nowa nazwa kolekcji", "PlaceholderNewCollection": "Nowa nazwa kolekcji",
"PlaceholderNewFolderPath": "Nowa ścieżka folderu", "PlaceholderNewFolderPath": "Nowa ścieżka folderu",
"PlaceholderNewPlaylist": "Nowa nazwa playlisty", "PlaceholderNewPlaylist": "Nowa nazwa playlisty",
@ -973,50 +957,26 @@
"StatsTopMonth": "TOPOWY MIESIĄC", "StatsTopMonth": "TOPOWY MIESIĄC",
"StatsTopNarrator": "TOPOWY NARRATOR", "StatsTopNarrator": "TOPOWY NARRATOR",
"StatsTopNarrators": "TOPOWI NARRATORZY", "StatsTopNarrators": "TOPOWI NARRATORZY",
"StatsTotalDuration": "O sumarycznej długości…",
"StatsYearInReview": "PRZEGLĄD ROKU", "StatsYearInReview": "PRZEGLĄD ROKU",
"ToastAccountUpdateSuccess": "Zaktualizowano konto", "ToastAccountUpdateSuccess": "Zaktualizowano konto",
"ToastAsinRequired": "ASIN jest wymagany",
"ToastAuthorImageRemoveSuccess": "Zdjęcie autora usunięte", "ToastAuthorImageRemoveSuccess": "Zdjęcie autora usunięte",
"ToastAuthorNotFound": "Autor \"{0}\" nie został znaleziony",
"ToastAuthorRemoveSuccess": "Autor usunięty",
"ToastAuthorSearchNotFound": "Autor nie odnaleziony",
"ToastAuthorUpdateMerged": "Autor scalony", "ToastAuthorUpdateMerged": "Autor scalony",
"ToastAuthorUpdateSuccess": "Autor zaktualizowany", "ToastAuthorUpdateSuccess": "Autor zaktualizowany",
"ToastAuthorUpdateSuccessNoImageFound": "Autor zaktualizowany (nie znaleziono obrazu)", "ToastAuthorUpdateSuccessNoImageFound": "Autor zaktualizowany (nie znaleziono obrazu)",
"ToastBackupAppliedSuccess": "Kopia zapasowa została przywrócona",
"ToastBackupCreateFailed": "Nie udało się utworzyć kopii zapasowej", "ToastBackupCreateFailed": "Nie udało się utworzyć kopii zapasowej",
"ToastBackupCreateSuccess": "Utworzono kopię zapasową", "ToastBackupCreateSuccess": "Utworzono kopię zapasową",
"ToastBackupDeleteFailed": "Nie udało się usunąć kopii zapasowej", "ToastBackupDeleteFailed": "Nie udało się usunąć kopii zapasowej",
"ToastBackupDeleteSuccess": "Udało się usunąć kopie zapasowej", "ToastBackupDeleteSuccess": "Udało się usunąć kopie zapasowej",
"ToastBackupInvalidMaxKeep": "Nieprawidłowa ilość kopii zapasowych do przechowania",
"ToastBackupInvalidMaxSize": "Nieprawidłowy rozmiar maksymalny kopii zapasowej",
"ToastBackupRestoreFailed": "Nie udało się przywrócić kopii zapasowej", "ToastBackupRestoreFailed": "Nie udało się przywrócić kopii zapasowej",
"ToastBackupUploadFailed": "Nie udało się przesłać kopii zapasowej", "ToastBackupUploadFailed": "Nie udało się przesłać kopii zapasowej",
"ToastBackupUploadSuccess": "Kopia zapasowa została przesłana", "ToastBackupUploadSuccess": "Kopia zapasowa została przesłana",
"ToastBatchDeleteFailed": "Usuwanie zbiorcze nie powiodło się", "ToastBatchUpdateFailed": "Aktualizacja wsadowa nie powiodła się",
"ToastBatchDeleteSuccess": "Usuwanie zbiorcze powiodło się", "ToastBatchUpdateSuccess": "Aktualizacja wsadowa powiodła się",
"ToastBatchUpdateFailed": "Aktualizacja zbiorcza nie powiodła się",
"ToastBatchUpdateSuccess": "Aktualizacja zbiorcza powiodła się",
"ToastBookmarkCreateFailed": "Nie udało się utworzyć zakładki", "ToastBookmarkCreateFailed": "Nie udało się utworzyć zakładki",
"ToastBookmarkCreateSuccess": "Dodano zakładkę", "ToastBookmarkCreateSuccess": "Dodano zakładkę",
"ToastBookmarkRemoveSuccess": "Zakładka została usunięta", "ToastBookmarkRemoveSuccess": "Zakładka została usunięta",
"ToastBulkChapterInvalidCount": "Wprowadź liczbę z przedziału od 1 do 150",
"ToastCachePurgeFailed": "Nie udało się wyczyścić pamięci cache",
"ToastCachePurgeSuccess": "Wyczyszczono pamięć cache",
"ToastChapterLocked": "Rozdział jest zablokowany.",
"ToastChapterStartTimeAdjusted": "Czas rozpoczęcia rozdziału przesunięty o \"{0}\" sekund",
"ToastChaptersAllLocked": "Wszystkie rozdziały są zablokowane. Odblokuj edycję, aby użyć przesunięcia czasowego.",
"ToastChaptersHaveErrors": "Rozdziały posiadają błędy",
"ToastChaptersInvalidShiftAmountLast": "Niepoprawna wartość przesunięcia. Czas rozpoczęcia ostatniego rozdziału wykroczyłby poza długość tego audiobooka.",
"ToastChaptersInvalidShiftAmountStart": "Niepoprawna wartość przesunięcia. Pierwszy rozdział miałby długość mniejszą lub równą zeru oraz on zostałby nadpisany przez rozdział drugi. Ustaw późniejszy czas rozpoczęcia drugiego rozdziału.",
"ToastChaptersMustHaveTitles": "Rozdziały muszą posiadać tytuł",
"ToastChaptersRemoved": "Rozdziały usunięte",
"ToastChaptersUpdated": "Rozdziały zaktualizowane",
"ToastCollectionItemsAddFailed": "Dodanie elementów do kolekcji nie powiodło się",
"ToastCollectionRemoveSuccess": "Kolekcja usunięta", "ToastCollectionRemoveSuccess": "Kolekcja usunięta",
"ToastCollectionUpdateSuccess": "Zaktualizowano kolekcję", "ToastCollectionUpdateSuccess": "Zaktualizowano kolekcję",
"ToastConnectionNotAvailable": "Brak połączenia. Spróbuj ponownie później",
"ToastCoverSearchFailed": "Nieudane wyszukiwanie okładki", "ToastCoverSearchFailed": "Nieudane wyszukiwanie okładki",
"ToastCoverUpdateFailed": "Nieudana aktualizacja okładki", "ToastCoverUpdateFailed": "Nieudana aktualizacja okładki",
"ToastDateTimeInvalidOrIncomplete": "Niepoprawna data i czas", "ToastDateTimeInvalidOrIncomplete": "Niepoprawna data i czas",
@ -1027,18 +987,12 @@
"ToastDeviceTestEmailFailed": "NIeudana próba wysłania testowego maila", "ToastDeviceTestEmailFailed": "NIeudana próba wysłania testowego maila",
"ToastDeviceTestEmailSuccess": "Testowy email został wysłany", "ToastDeviceTestEmailSuccess": "Testowy email został wysłany",
"ToastEmailSettingsUpdateSuccess": "Ustawienia email zaktualizowane", "ToastEmailSettingsUpdateSuccess": "Ustawienia email zaktualizowane",
"ToastEncodeCancelFailed": "Nie udało się anulować kodowania",
"ToastEncodeCancelSucces": "Kodowanie anulowane",
"ToastEpisodeDownloadQueueClearFailed": "Nie udało się wyczyścić kolejki",
"ToastEpisodeDownloadQueueClearSuccess": "Wyczyszczono kolejkę epizodów do ściągnięcia", "ToastEpisodeDownloadQueueClearSuccess": "Wyczyszczono kolejkę epizodów do ściągnięcia",
"ToastEpisodeUpdateSuccess": "Zaktualizowano {0} odcinków", "ToastEpisodeUpdateSuccess": "Zaktualizowano {0} odcinków",
"ToastErrorCannotShare": "Nie można udostępniać natywnie na tym urządzeniu.",
"ToastInvalidImageUrl": "Nieprawidłowy URL obrazu", "ToastInvalidImageUrl": "Nieprawidłowy URL obrazu",
"ToastInvalidUrl": "Nieprawidłowy URL", "ToastInvalidUrl": "Nieprawidłowy URL",
"ToastInvalidUrls": "Jeden lub więcej URL-i są nieprawidłowe", "ToastInvalidUrls": "Jeden lub więcej URL-i są nieprawidłowe",
"ToastItemCoverUpdateSuccess": "Zaktualizowano okładkę", "ToastItemCoverUpdateSuccess": "Zaktualizowano okładkę",
"ToastItemDeletedFailed": "Nie udało się usunąć elementu",
"ToastItemDeletedSuccess": "Element usunięty",
"ToastItemDetailsUpdateSuccess": "Zaktualizowano szczegóły", "ToastItemDetailsUpdateSuccess": "Zaktualizowano szczegóły",
"ToastItemMarkedAsFinishedFailed": "Nie udało się oznaczyć jako ukończone", "ToastItemMarkedAsFinishedFailed": "Nie udało się oznaczyć jako ukończone",
"ToastItemMarkedAsFinishedSuccess": "Pozycja oznaczona jako ukończona", "ToastItemMarkedAsFinishedSuccess": "Pozycja oznaczona jako ukończona",
@ -1077,41 +1031,12 @@
"ToastRSSFeedCloseSuccess": "Zamknięcie kanału RSS powiodło się", "ToastRSSFeedCloseSuccess": "Zamknięcie kanału RSS powiodło się",
"ToastRemoveItemFromCollectionFailed": "Nie udało się usunąć elementu z kolekcji", "ToastRemoveItemFromCollectionFailed": "Nie udało się usunąć elementu z kolekcji",
"ToastRemoveItemFromCollectionSuccess": "Pozycja usunięta z kolekcji", "ToastRemoveItemFromCollectionSuccess": "Pozycja usunięta z kolekcji",
"ToastRemoveItemsWithIssuesFailed": "Nie udało się usunąć wadliwych elementów z biblioteki",
"ToastRemoveItemsWithIssuesSuccess": "Usunięto wadliwe elementy z biblioteki",
"ToastRenameFailed": "Nie udało się zmienić nazwy",
"ToastRescanFailed": "Ponowne skanowanie nie powiodło się dla {0}",
"ToastRescanRemoved": "Ponowne skanowanie powiodło się element został usunięty",
"ToastRescanUpToDate": "Ponowne skanowanie powiodło się element był aktualny",
"ToastRescanUpdated": "Ponowne skanowanie powiodło się element został zaktualizowany",
"ToastScanFailed": "Nie powiódł się skan elementu biblioteki",
"ToastSelectAtLeastOneUser": "Zaznacz co najmniej jednego użytkownika",
"ToastSendEbookToDeviceFailed": "Failed to Send Ebook to device", "ToastSendEbookToDeviceFailed": "Failed to Send Ebook to device",
"ToastSendEbookToDeviceSuccess": "Ebook wysłany na urządzenie \"{0}\"",
"ToastSeriesSubmitFailedSameName": "Nie można dodać dwóch serii pod tą samą nazwą",
"ToastSeriesUpdateFailed": "Aktualizacja serii nie powiodła się",
"ToastSeriesUpdateSuccess": "Aktualizacja serii powiodła się",
"ToastServerSettingsUpdateSuccess": "Zaktualizowano ustawienia serwera",
"ToastSessionCloseFailed": "Nie udało się zamknąć sesji",
"ToastSessionDeleteFailed": "Nie udało się usunąć sesji", "ToastSessionDeleteFailed": "Nie udało się usunąć sesji",
"ToastSessionDeleteSuccess": "Sesja usunięta", "ToastSessionDeleteSuccess": "Sesja usunięta",
"ToastSleepTimerDone": "Słodkich snów... zZzzZz",
"ToastSocketConnected": "Nawiązano połączenie z serwerem", "ToastSocketConnected": "Nawiązano połączenie z serwerem",
"ToastSocketDisconnected": "Połączenie z serwerem zostało zamknięte", "ToastSocketDisconnected": "Połączenie z serwerem zostało zamknięte",
"ToastSocketFailedToConnect": "Poączenie z serwerem nie powiodło się", "ToastSocketFailedToConnect": "Poączenie z serwerem nie powiodło się",
"ToastTitleRequired": "Tytuł jest wymagany",
"ToastUnknownError": "Nieznany błąd",
"ToastUnlinkOpenIdFailed": "Nie udało się odpiąć użytkownika z OpenID",
"ToastUnlinkOpenIdSuccess": "Użytkownik odpięty z OpenID",
"ToastUploaderFilepathExistsError": "Ścieżka \"{0}\" już istnieje na serwerze",
"ToastUserDeleteFailed": "Nie udało się usunąć użytkownika", "ToastUserDeleteFailed": "Nie udało się usunąć użytkownika",
"ToastUserDeleteSuccess": "Użytkownik usunięty", "ToastUserDeleteSuccess": "Użytkownik usunięty"
"TooltipAddChapters": "Dodaj rozdział(y)",
"TooltipAddOneSecond": "Dodaj sekundę",
"TooltipAdjustChapterStart": "Kliknij, aby skorygować czas początkowy",
"TooltipLockAllChapters": "Zablokuj wszystkie rozdziały",
"TooltipLockChapter": "Zablokuj rozdział (przytrzymaj Shift i kliknij, aby zaznaczyć zakres)",
"TooltipSubtractOneSecond": "Odejmij sekundę",
"TooltipUnlockAllChapters": "Odblokuj wszystkie rozdziały",
"TooltipUnlockChapter": "Odblokuj rozdział (przytrzymaj Shift i kliknij, aby zaznaczyć zakres)"
} }

View file

@ -436,8 +436,8 @@
"LabelLibraryFilterSublistEmpty": "Sem {0}", "LabelLibraryFilterSublistEmpty": "Sem {0}",
"LabelLibraryItem": "Item da Biblioteca", "LabelLibraryItem": "Item da Biblioteca",
"LabelLibraryName": "Nome da Biblioteca", "LabelLibraryName": "Nome da Biblioteca",
"LabelLibrarySortByProgress": "Progresso: Ultima Atualização", "LabelLibrarySortByProgress": "Última Atualização",
"LabelLibrarySortByProgressFinished": "Progresso: Terminado", "LabelLibrarySortByProgressFinished": "Concluído",
"LabelLibrarySortByProgressStarted": "Progresso: Iniciado", "LabelLibrarySortByProgressStarted": "Progresso: Iniciado",
"LabelLimit": "Limite", "LabelLimit": "Limite",
"LabelLineSpacing": "Espaçamento entre linhas", "LabelLineSpacing": "Espaçamento entre linhas",

View file

@ -11,581 +11,140 @@
"ButtonApplyChapters": "Aplică Capitole", "ButtonApplyChapters": "Aplică Capitole",
"ButtonAuthors": "Autori", "ButtonAuthors": "Autori",
"ButtonBack": "Înapoi", "ButtonBack": "Înapoi",
"ButtonBatchEditPopulateFromExisting": "Populează din existente",
"ButtonBatchEditPopulateMapDetails": "Populează detaliile hărții",
"ButtonBrowseForFolder": "Caută un dosar",
"ButtonCancel": "Anulează", "ButtonCancel": "Anulează",
"ButtonCancelEncode": "Anulare codificare",
"ButtonChangeRootPassword": "Schimbare parolă de root",
"ButtonCheckAndDownloadNewEpisodes": "Verifică și descarcă episoade noi",
"ButtonChooseAFolder": "Alege un dosar",
"ButtonChooseFiles": "Alege fișiere",
"ButtonClearFilter": "Șterge filtrul", "ButtonClearFilter": "Șterge filtrul",
"ButtonClose": "Închide", "ButtonClose": "Închide",
"ButtonCloseFeed": "Închide sursa", "ButtonCloseFeed": "Închide sursa",
"ButtonCloseSession": "Închide Sesiunea Curentă", "ButtonCloseSession": "Închide Sesiunea Curentă",
"ButtonCollections": "Colecții", "ButtonCollections": "Colecții",
"ButtonConfigureScanner": "Configurare scaner",
"ButtonCreate": "Creează", "ButtonCreate": "Creează",
"ButtonCreateBackup": "Creează backup",
"ButtonDelete": "Șterge", "ButtonDelete": "Șterge",
"ButtonDownloadQueue": "Coadă",
"ButtonEdit": "Editare",
"ButtonEditChapters": "Editare capitole",
"ButtonEditPodcast": "Editare podcast",
"ButtonEnable": "Activează",
"ButtonForceReScan": "Forțează rescanare",
"ButtonFullPath": "Calea completă",
"ButtonHide": "Ascunde", "ButtonHide": "Ascunde",
"ButtonHome": "Acasă", "ButtonHome": "Acasă",
"ButtonIssues": "Probleme", "ButtonIssues": "Erori",
"ButtonJumpBackward": "Sari înapoi",
"ButtonJumpForward": "Sari înainte",
"ButtonLatest": "Noutăți", "ButtonLatest": "Noutăți",
"ButtonLibrary": "Bibliotecă", "ButtonLibrary": "Bibliotecă",
"ButtonLogout": "Deconectare",
"ButtonLookup": "Căutare",
"ButtonManageTracks": "Gestionează pista",
"ButtonMapChapterTitles": "Maparea titlurilor capitolelor",
"ButtonMatchAllAuthors": "Potriviește toți autorii",
"ButtonMatchBooks": "Potrivește Cărți",
"ButtonNevermind": "Anulează",
"ButtonNext": "Următorul",
"ButtonNextChapter": "Următorul Capitol",
"ButtonNextItemInQueue": "Următorul Articol în Coadă",
"ButtonOk": "OK", "ButtonOk": "OK",
"ButtonOpenFeed": "Vezi noutățile", "ButtonOpenFeed": "Vezi noutățile",
"ButtonOpenManager": "Deschide Managerul",
"ButtonPause": "Pauză", "ButtonPause": "Pauză",
"ButtonPlay": "Redă", "ButtonPlay": "Redă",
"ButtonPlayAll": "Redă tot",
"ButtonPlaying": "Redare",
"ButtonPlaylists": "Liste", "ButtonPlaylists": "Liste",
"ButtonPrevious": "Anterior",
"ButtonPreviousChapter": "Capitolul Anterior",
"ButtonProbeAudioFile": "Analizare Fișier Audio",
"ButtonPurgeAllCache": "Golire Cache Completă",
"ButtonPurgeItemsCache": "Golire Cache Articole",
"ButtonQueueAddItem": "Adaugă la Coadă",
"ButtonQueueRemoveItem": "Sterge din Coadă",
"ButtonQuickEmbed": "Încorporare Rapidă",
"ButtonQuickEmbedMetadata": "Metadate pentru Încorporare Rapidă",
"ButtonQuickMatch": "Potrivire Rapidă",
"ButtonReScan": "Rescanare",
"ButtonRead": "Citește", "ButtonRead": "Citește",
"ButtonReadLess": "Citește Mai Puțin", "ButtonReadLess": "Mai puțin",
"ButtonReadMore": "Afișează mai mult", "ButtonReadMore": "Afișează mai mult",
"ButtonRefresh": "Reîmprospătare",
"ButtonRemove": "Elimină", "ButtonRemove": "Elimină",
"ButtonRemoveAll": "Eliminați Tot",
"ButtonRemoveAllLibraryItems": "Ștergerea tuturor Articolelor din Librărie",
"ButtonRemoveFromContinueListening": "Ștergere din \"Continuă să Asculți\"",
"ButtonRemoveFromContinueReading": "Ștergere din \"Continuă să citești\"",
"ButtonRemoveSeriesFromContinueSeries": "Ștergere Serie din \"Continuă Seria\"",
"ButtonReset": "Resetează",
"ButtonResetToDefault": "Resetează la valorile implicite",
"ButtonRestore": "Restaurare",
"ButtonSave": "Salvează", "ButtonSave": "Salvează",
"ButtonSaveAndClose": "Salvează și Închide",
"ButtonSaveTracklist": "Salvare Pistă",
"ButtonScan": "Scanează",
"ButtonScanLibrary": "Scanează Librăria",
"ButtonScrollLeft": "Derulează spre stânga",
"ButtonScrollRight": "Derulează spre Dreapta",
"ButtonSearch": "Caută", "ButtonSearch": "Caută",
"ButtonSelectFolderPath": "Selectează Calea către Dosar",
"ButtonSeries": "Serii", "ButtonSeries": "Serii",
"ButtonSetChaptersFromTracks": "Setează capitole din piste",
"ButtonShare": "Distribuie",
"ButtonShiftTimes": "Aliniează timpi",
"ButtonShow": "Arată",
"ButtonStartM4BEncode": "Începe Codarea M4B",
"ButtonStartMetadataEmbed": "Începe Încorporarea Metadatelor",
"ButtonStats": "Statistici",
"ButtonSubmit": "Trimite", "ButtonSubmit": "Trimite",
"ButtonTest": "Testează",
"ButtonUnlinkOpenId": "Deconectare OpenID",
"ButtonUpload": "Încarcă",
"ButtonUploadBackup": "Încarcă Backup",
"ButtonUploadCover": "Încarcă Copertă",
"ButtonUploadOPMLFile": "Încarcă Fișier OPML",
"ButtonUserDelete": "Șterge userul {0}",
"ButtonUserEdit": "Editează userul {0}",
"ButtonViewAll": "Vizualizează tot",
"ButtonYes": "Da", "ButtonYes": "Da",
"ErrorUploadFetchMetadataAPI": "Eroare în descărcarea metadatelor",
"ErrorUploadFetchMetadataNoResults": "Nu s-au putut prelua metadatele - încearcă să editezi titlul și/sau autorul",
"ErrorUploadLacksTitle": "Trebuie să aibă un titlu",
"HeaderAccount": "Cont", "HeaderAccount": "Cont",
"HeaderAddCustomMetadataProvider": "Adaugă Furnizor de Metadate Personalizat",
"HeaderAdvanced": "Avansat", "HeaderAdvanced": "Avansat",
"HeaderApiKeys": "Chei API",
"HeaderAppriseNotificationSettings": "Setări Notificări Apprise",
"HeaderAudioTracks": "Înregistrări audio", "HeaderAudioTracks": "Înregistrări audio",
"HeaderAudiobookTools": "Instrumente pentru Gestionarea Fișierelor Audiobook",
"HeaderAuthentication": "Autentificare",
"HeaderBackups": "Copii de siguranță",
"HeaderBulkChapterModal": "Adaugă Multiple Capitole",
"HeaderChangePassword": "Schimbă Parola",
"HeaderChapters": "Capitole", "HeaderChapters": "Capitole",
"HeaderChooseAFolder": "Alege Dosar",
"HeaderCollection": "Colecție", "HeaderCollection": "Colecție",
"HeaderCollectionItems": "Conținutul colecției", "HeaderCollectionItems": "Conținutul colecției",
"HeaderCover": "Copertă",
"HeaderCurrentDownloads": "Descărcări Curente",
"HeaderCustomMessageOnLogin": "Mesaj Personalizat la Autentificare",
"HeaderCustomMetadataProviders": "Furnizor de Metadate Personalizat",
"HeaderDetails": "Detalii", "HeaderDetails": "Detalii",
"HeaderDownloadQueue": "Coadă de Descărcare",
"HeaderEbookFiles": "Ebook-uri", "HeaderEbookFiles": "Ebook-uri",
"HeaderEmail": "Email",
"HeaderEmailSettings": "Setări Email",
"HeaderEpisodes": "Episoade", "HeaderEpisodes": "Episoade",
"HeaderEreaderDevices": "Dispozitive eReader",
"HeaderEreaderSettings": "Setări eReader", "HeaderEreaderSettings": "Setări eReader",
"HeaderFiles": "Fișiere",
"HeaderFindChapters": "Caută Capitol",
"HeaderIgnoredFiles": "Fișiere Ignorate",
"HeaderItemFiles": "Fișiere Articol",
"HeaderLastListeningSession": "Ultima Sesiune de Ascultare",
"HeaderLatestEpisodes": "Episoade recente", "HeaderLatestEpisodes": "Episoade recente",
"HeaderLibraries": "Biblioteci", "HeaderLibraries": "Biblioteci",
"HeaderLibraryFiles": "Fișiere in Librărie",
"HeaderLibraryStats": "Statistici Librărie",
"HeaderListeningSessions": "Sesiuni de Ascultare",
"HeaderListeningStats": "Statistici Ascultare",
"HeaderLogin": "Autentifică",
"HeaderLogs": "Loguri",
"HeaderManageGenres": "Gestionează Genuri",
"HeaderManageTags": "Gestionează Etichete",
"HeaderMapDetails": "Detaliile Hărții",
"HeaderMatch": "Potrivește",
"HeaderMetadataOrderOfPrecedence": "Prioritatea Metadatelor",
"HeaderMetadataToEmbed": "Metadate pentru Încorporare",
"HeaderNewAccount": "Cont nou",
"HeaderNewApiKey": "Cheie API Nouă",
"HeaderNewLibrary": "Librărie Nouă",
"HeaderNotificationCreate": "Creează Notificare",
"HeaderNotificationUpdate": "Actualizare Notificare",
"HeaderNotifications": "Notificări",
"HeaderOpenIDConnectAuthentication": "Autentificare prin OpenID",
"HeaderOpenListeningSessions": "Deschide Sesiuni de Ascultare",
"HeaderOpenRSSFeed": "Deschide flux RSS", "HeaderOpenRSSFeed": "Deschide flux RSS",
"HeaderOtherFiles": "Alte Fișiere",
"HeaderPasswordAuthentication": "Autentificare cu Parolă",
"HeaderPermissions": "Permisiuni",
"HeaderPlayerQueue": "Coadă Player",
"HeaderPlayerSettings": "Setări Player",
"HeaderPlaylist": "Listă de redare", "HeaderPlaylist": "Listă de redare",
"HeaderPlaylistItems": "Conținut listă", "HeaderPlaylistItems": "Conținut listă",
"HeaderPodcastsToAdd": "Podcast de Adăugat",
"HeaderPresets": "Presetări",
"HeaderPreviewCover": "Previzualizare Copertă",
"HeaderRSSFeedGeneral": "Date RSS", "HeaderRSSFeedGeneral": "Date RSS",
"HeaderRSSFeedIsOpen": "RSS activ", "HeaderRSSFeedIsOpen": "RSS activ",
"HeaderRSSFeeds": "Fluxuri RSS",
"HeaderRemoveEpisode": "Elimină Episod",
"HeaderRemoveEpisodes": "Elimină {0} Episoade",
"HeaderSavedMediaProgress": "Progres Media Salvat",
"HeaderSchedule": "Planifică",
"HeaderScheduleEpisodeDownloads": "Planifică Descărcare Automată a Episoadelor",
"HeaderScheduleLibraryScans": "Planifică Scanarea Automată a Librăriei",
"HeaderSession": "Sesiuni",
"HeaderSetBackupSchedule": "Planifică Backup",
"HeaderSettings": "Setări", "HeaderSettings": "Setări",
"HeaderSettingsDisplay": "Afișaj",
"HeaderSettingsExperimental": "Caracteristici Experimentale",
"HeaderSettingsGeneral": "General",
"HeaderSettingsScanner": "Scaner",
"HeaderSettingsSecurity": "Securitate",
"HeaderSettingsWebClient": "Client Web",
"HeaderSleepTimer": "Timer de somn", "HeaderSleepTimer": "Timer de somn",
"HeaderStatsLargestItems": "Cele mai mari articole",
"HeaderStatsLongestItems": "Cele mai lungi articole (ore)",
"HeaderStatsMinutesListeningChart": "Minute ascultate (ultimele 7 zile)", "HeaderStatsMinutesListeningChart": "Minute ascultate (ultimele 7 zile)",
"HeaderStatsRecentSessions": "Sesiuni recente", "HeaderStatsRecentSessions": "Sesiuni recente",
"HeaderStatsTop10Authors": "Top 10 Autori",
"HeaderStatsTop5Genres": "Top 5 Genuri",
"HeaderTableOfContents": "Cuprins", "HeaderTableOfContents": "Cuprins",
"HeaderTools": "Unelte",
"HeaderUpdateAccount": "Actualizare Cont",
"HeaderUpdateApiKey": "Actualizare Cheie API",
"HeaderUpdateAuthor": "Actualizare Autor",
"HeaderUpdateDetails": "Actualizare Detalii",
"HeaderUpdateLibrary": "Actualizare Librărie",
"HeaderUsers": "Utilizatori",
"HeaderYearReview": "Trecere în revistă a anului {0}",
"HeaderYourStats": "Progresul tău", "HeaderYourStats": "Progresul tău",
"LabelAbridged": "Abreviat",
"LabelAbridgedChecked": "Abreviat (verificat)",
"LabelAbridgedUnchecked": "Neprescurtat (neverificat)",
"LabelAccessibleBy": "Accesibil prin",
"LabelAccountType": "Tip de Cont",
"LabelAccountTypeAdmin": "Administrator",
"LabelAccountTypeGuest": "Oaspete",
"LabelAccountTypeUser": "Utilizator",
"LabelActivities": "Activități",
"LabelActivity": "Activitate",
"LabelAddToCollection": "Adaugă la Colecție",
"LabelAddToCollectionBatch": "Adaugare {0} Cărți la Colecție",
"LabelAddToPlaylist": "Adaugă în listă", "LabelAddToPlaylist": "Adaugă în listă",
"LabelAddToPlaylistBatch": "Adaugare {0} Articole la Listă",
"LabelAddedAt": "Adăugat la", "LabelAddedAt": "Adăugat la",
"LabelAddedDate": "Adăugat {0}", "LabelAddedDate": "Adăugat {0}",
"LabelAdminUsersOnly": "Doar Administratori",
"LabelAll": "Toate", "LabelAll": "Toate",
"LabelAllEpisodesDownloaded": "Toate episoadele descărcate",
"LabelAllUsers": "Toți Utilizatorii",
"LabelAllUsersExcludingGuests": "Toți utilizatorii cu excepția oaspeților",
"LabelAllUsersIncludingGuests": "Toți utilizatorii inclusiv oaspeții",
"LabelAlreadyInYourLibrary": "Deja în bibliotecă",
"LabelApiKeyCreated": "Cheia API \"{0}\" creată cu succes.",
"LabelApiKeyCreatedDescription": "Copiază cheia API acum deoarece nu va mai fi disponibilă pentru vizualizare.",
"LabelApiKeyUser": "Acționează în numele utilizatorului",
"LabelApiKeyUserDescription": "Această cheie API va avea aceleași permisiuni ca utilizatorul în numele căruia acționează. In loguri va părea că utilizatorul lansa cererile.",
"LabelApiToken": "Token API",
"LabelAppend": "Atașează",
"LabelAudioBitrate": "Rata de Biți Audio (e.g. 128k)",
"LabelAudioChannels": "Canale Audio (1 sau 2)",
"LabelAudioCodec": "Codec Audio",
"LabelAuthor": "Autor", "LabelAuthor": "Autor",
"LabelAuthorFirstLast": "Autor (Prenume Nume)", "LabelAuthorFirstLast": "Autor (Prenume Nume)",
"LabelAuthorLastFirst": "Autor (Nume, Prenume)", "LabelAuthorLastFirst": "Autor (Nume, Prenume)",
"LabelAuthors": "Autori", "LabelAuthors": "Autori",
"LabelAutoDownloadEpisodes": "Descarcă automat episoadele", "LabelAutoDownloadEpisodes": "Descarcă automat episoadele",
"LabelAutoFetchMetadata": "Descarcă Automat Metadate",
"LabelAutoFetchMetadataHelp": "Descarcă metadate pentru titlu, autor si serii pentru eficientizarea încărcării. Metadatele suplimentare s-ar putea să trebuiască potrivite după încărcare.",
"LabelAutoLaunch": "Lansare automată",
"LabelAutoLaunchDescription": "Redirecționează automat către furnizorul de autentificare când navighez la pagina de autentificare (cale de suprascriere manuală <code>/login?autoLaunch=0</code>)",
"LabelAutoRegister": "Înregistrare Automată",
"LabelAutoRegisterDescription": "Creează utilizatori automat dupa autentificare",
"LabelBackToUser": "Înapoi la Utilizator",
"LabelBackupAudioFiles": "Copii de rezervă a Fișierelor Audio",
"LabelBackupLocation": "Locația Copiilor de Rezervă",
"LabelBackupsEnableAutomaticBackups": "Copii de Rezervă Automate",
"LabelBackupsEnableAutomaticBackupsHelp": "Copiile de Rezervă au fost salvate în /metadata/backups",
"LabelBackupsMaxBackupSize": "Dimensiunea maximă a copiilor de rezervă (în GB) (0 pentru nelimitat)",
"LabelBackupsMaxBackupSizeHelp": "Ca protecție împotriva configurațiilor greșite, backup-ul va eșua dacă trece de limita de dimensiune configurată.",
"LabelBackupsNumberToKeep": "Numărul copiilor de siguranță de păstrat",
"LabelBackupsNumberToKeepHelp": "Doar 1 copie de siguranță va fi ștearsă odata deci dacă există mai multe copii de siguranță vor trebui șterse manual.",
"LabelBitrate": "Rată de biți",
"LabelBonus": "Bonus",
"LabelBooks": "Cărți", "LabelBooks": "Cărți",
"LabelButtonText": "Textul Butonului",
"LabelByAuthor": "de {0}",
"LabelChangePassword": "Schimbare Parolă",
"LabelChannels": "Canale",
"LabelChapterCount": "{0} Capitole",
"LabelChapterTitle": "Titlul Capitolului",
"LabelChapters": "Capitole", "LabelChapters": "Capitole",
"LabelChaptersFound": "capitole găsite",
"LabelClickForMoreInfo": "Click pentru mai multe informații",
"LabelClickToUseCurrentValue": "Click pentru a folosi valoarea curentă",
"LabelClosePlayer": "Închide playerul", "LabelClosePlayer": "Închide playerul",
"LabelCodec": "Codec",
"LabelCollapseSeries": "Restrânge seriile", "LabelCollapseSeries": "Restrânge seriile",
"LabelCollapseSubSeries": "Restrânge Sub-Seriile",
"LabelCollection": "Colecție",
"LabelCollections": "Colecții",
"LabelComplete": "Finalizat", "LabelComplete": "Finalizat",
"LabelConfirmPassword": "Confirmare Parolă",
"LabelContinueListening": "Ascultă în continuare", "LabelContinueListening": "Ascultă în continuare",
"LabelContinueReading": "Continuă lectura", "LabelContinueReading": "Continuă lectura",
"LabelContinueSeries": "Continuă seria", "LabelContinueSeries": "Continuă seria",
"LabelCorsAllowed": "Origini CORS Permise",
"LabelCover": "Copertă",
"LabelCoverImageURL": "URL-ul Imaginii de Copertă",
"LabelCoverProvider": "Furnizor Copertă",
"LabelCreatedAt": "Creat la",
"LabelCronExpression": "Expresie Cron",
"LabelCurrent": "Curent",
"LabelCurrently": "Acum:",
"LabelCustomCronExpression": "Expresie Cron Personalizată:",
"LabelDatetime": "Data și ora",
"LabelDays": "Zile",
"LabelDeleteFromFileSystemCheckbox": "Șterge fișierele din sistem (debifeaza pentru a șterge doar din baza de date)",
"LabelDescription": "Descriere", "LabelDescription": "Descriere",
"LabelDeselectAll": "Deselectați Tot",
"LabelDetectedPattern": "Tipar Identificat:",
"LabelDevice": "Dispozitiv",
"LabelDeviceInfo": "Informații Dispozitiv",
"LabelDeviceIsAvailableTo": "Dispozitiv accesibil lui...",
"LabelDirectory": "Dosar",
"LabelDiscFromFilename": "Disc din Numele Fișierului",
"LabelDiscFromMetadata": "Disc din Metadate",
"LabelDiscover": "Descoperă", "LabelDiscover": "Descoperă",
"LabelDownload": "Descarcă", "LabelDownload": "Descarcă",
"LabelDownloadNEpisodes": "Descarcă {0} episoade",
"LabelDownloadable": "Descărcabil",
"LabelDuration": "Durată", "LabelDuration": "Durată",
"LabelDurationComparisonExactMatch": "(potrivire exactă)",
"LabelDurationComparisonLonger": "({0} mai lung)",
"LabelDurationComparisonShorter": "({0} mai scurt)",
"LabelDurationFound": "Durată identificată:",
"LabelEbook": "Carte electronică", "LabelEbook": "Carte electronică",
"LabelEbooks": "Cărți electronice", "LabelEbooks": "Cărți electronice",
"LabelEdit": "Editare",
"LabelEmail": "Email",
"LabelEmailSettingsFromAddress": "De la Adresa",
"LabelEmailSettingsRejectUnauthorized": "Respingere certificate neautorizate",
"LabelEmailSettingsRejectUnauthorizedHelp": "Dezactivarea verificării certificatelor SSL vă poate expune conexiunea la riscuri de securitate, cum ar fi atacuri de tip man-in-the-middle. Dezactivați această opțiune dacă înțelegeti implicațiile și aveți încredere în serverul de mail la care vă conectați.",
"LabelEmailSettingsSecure": "Sigur",
"LabelEmailSettingsSecureHelp": "Dacă e adevărat, conexiunea se va realiza prin TLS către server. Dacă e fals, TLS este folosit dacă serverul suporta extensia STARTTLS. În majoritatea cazurilor setati adevărat dacă folosiți portul 465. Pentru portul 587 sau 25 setati fals. (referinta nodemailer.com/smtp/#authentication)",
"LabelEmailSettingsTestAddress": "Adresă de Test",
"LabelEmbeddedCover": "Încorporează Copertă",
"LabelEnable": "Activează", "LabelEnable": "Activează",
"LabelEncodingBackupLocation": "O copie de siguranță a fișierului audio original va fi salvată în:",
"LabelEncodingChaptersNotEmbedded": "Capitolele nu sunt încorporate în cărțile audio cu mai multe track-uri.",
"LabelEncodingClearItemCache": "Asigurați-vă că ștergeți articolele din cache periodic.",
"LabelEncodingFinishedM4B": "Fișierul M4B va fi adaugat în dosarul dvs. de cărți audio când codificarea e terminată:",
"LabelEncodingInfoEmbedded": "Metadatele vor fi încorporate în fișierele audio din interiorul dosarului dvs. cu cărți audio.",
"LabelEncodingStartedNavigation": "Odată pornită sarcina poti naviga din această pagină.",
"LabelEncodingTimeWarning": "Codificarea poate dura până la 30 de minute.",
"LabelEncodingWarningAdvancedSettings": "Avertizare: Nu modificați aceste setări dacă nu sunteți familiar cu opțiunile de codare ffmpeg .",
"LabelEncodingWatcherDisabled": "Dacă ați dezactivat funcția de urmările va trebui sa rescanați acestă carte audio la ulterior.",
"LabelEnd": "Sfârșit", "LabelEnd": "Sfârșit",
"LabelEndOfChapter": "Sfârșitul capitolului", "LabelEndOfChapter": "Sfârșitul capitolului",
"LabelEpisode": "Episod", "LabelEpisode": "Episod",
"LabelEpisodeNotLinkedToRssFeed": "Episoade nelegate de un flux RSS",
"LabelEpisodeNumber": "Episodul #{0}",
"LabelEpisodeTitle": "Titlul Episodului",
"LabelEpisodeType": "Tipul Episodului",
"LabelEpisodeUrlFromRssFeed": "URL-ul Episodului din Fluxul RSS",
"LabelEpisodes": "Episoade",
"LabelEpisodic": "Episodic",
"LabelExample": "Exemplu",
"LabelExpandSeries": "Extinde Seriile",
"LabelExpandSubSeries": "Extinde Sub-Seriile",
"LabelExpired": "Expirat",
"LabelExpiresAt": "Expiră La",
"LabelExpiresInSeconds": "Expiră în (secunde)",
"LabelExpiresNever": "Niciodată",
"LabelExplicit": "Explicit", "LabelExplicit": "Explicit",
"LabelExplicitChecked": "Explicit (verificat)", "LabelFeedURL": "URL flux",
"LabelExplicitUnchecked": "Neexplicit (neverificat)",
"LabelExportOPML": "Exportă OPML",
"LabelFeedURL": "Flux URL",
"LabelFetchingMetadata": "Aducere Metadate",
"LabelFile": "Fișier", "LabelFile": "Fișier",
"LabelFileBirthtime": "Data creării fișierului", "LabelFileBirthtime": "Data creării fișierului",
"LabelFileBornDate": "Creat {0}",
"LabelFileModified": "Fișier modificat", "LabelFileModified": "Fișier modificat",
"LabelFileModifiedDate": "Modificat {0}",
"LabelFilename": "Nume fișier", "LabelFilename": "Nume fișier",
"LabelFilterByUser": "Filtrare după Utilizator",
"LabelFindEpisodes": "Găsire Episoade",
"LabelFinished": "Finalizat", "LabelFinished": "Finalizat",
"LabelFinishedDate": "Finalizat {0}",
"LabelFolder": "Dosar", "LabelFolder": "Dosar",
"LabelFolders": "Dosare",
"LabelFontBold": "Îngroșat",
"LabelFontBoldness": "Grosimea fontului", "LabelFontBoldness": "Grosimea fontului",
"LabelFontFamily": "Familia Fontului",
"LabelFontItalic": "Cursiv",
"LabelFontScale": "Mărimea fontului", "LabelFontScale": "Mărimea fontului",
"LabelFontStrikethrough": "Tăiat cu o linie",
"LabelFormat": "Format",
"LabelFull": "Întreg",
"LabelGenre": "Gen", "LabelGenre": "Gen",
"LabelGenres": "Genuri", "LabelGenres": "Genuri",
"LabelHardDeleteFile": "Ștergere definitivă a fișierului",
"LabelHasEbook": "Are carte electronică", "LabelHasEbook": "Are carte electronică",
"LabelHasSupplementaryEbook": "Are carte electronică suplimentară", "LabelHasSupplementaryEbook": "Are carte electronică suplimentară",
"LabelHideSubtitles": "Ascunde Subtitrări",
"LabelHighestPriority": "Prioritatea cea mai ridicată",
"LabelHost": "Gazdă", "LabelHost": "Gazdă",
"LabelHour": "Ora",
"LabelHours": "Ore",
"LabelIcon": "Pictogramă",
"LabelImageURLFromTheWeb": "URL-ul imaginii de pe web",
"LabelInProgress": "În desfășurare", "LabelInProgress": "În desfășurare",
"LabelIncludeInTracklist": "Include în Lista de Melodii",
"LabelIncomplete": "Incomplet", "LabelIncomplete": "Incomplet",
"LabelInterval": "Interval",
"LabelIntervalCustomDailyWeekly": "Personalizat zilnic/saptămânal",
"LabelIntervalEvery12Hours": "La fiecare 12 ore",
"LabelIntervalEvery15Minutes": "La fiecare 15 minute",
"LabelIntervalEvery2Hours": "La fiecare 2 ore",
"LabelIntervalEvery30Minutes": "La fiecare 30 minute",
"LabelIntervalEvery6Hours": "La fiecare 6 ore",
"LabelIntervalEveryDay": "În fiecare zi",
"LabelIntervalEveryHour": "În fiecare oră",
"LabelIntervalEveryMinute": "La fiecare minut",
"LabelInvert": "Inversează",
"LabelItem": "Articol",
"LabelJumpBackwardAmount": "Sari înapoi cu",
"LabelJumpForwardAmount": "Sari înainte cu",
"LabelLanguage": "Limbă", "LabelLanguage": "Limbă",
"LabelLanguageDefaultServer": "Limba Prestabilită a Serverului",
"LabelLanguages": "Limbi",
"LabelLastBookAdded": "Ultima Carte Adăugată",
"LabelLastBookUpdated": "Ultima Carte Actualizată",
"LabelLastProgressDate": "Ultimul progres: {0}",
"LabelLastSeen": "Ultima dată văzut",
"LabelLastTime": "Ultima dată",
"LabelLastUpdate": "Ultima actualizare",
"LabelLayout": "Aspect", "LabelLayout": "Aspect",
"LabelLayoutSinglePage": "Pagină unică", "LabelLayoutSinglePage": "Pagină unică",
"LabelLayoutSplitPage": "Pagină împărțită",
"LabelLess": "Mai puțin",
"LabelLibrariesAccessibleToUser": "Biblioteci Accesibile Utilizatorului",
"LabelLibrary": "Bibliotecă",
"LabelLibraryFilterSublistEmpty": "Numărul {0}",
"LabelLibraryItem": "Articol din Bibliotecă",
"LabelLibraryName": "Numele Bibliotecii",
"LabelLibrarySortByProgress": "Progres: Ultima Actualizare",
"LabelLibrarySortByProgressFinished": "Progres: Finalizat",
"LabelLibrarySortByProgressStarted": "Progres: Început",
"LabelLimit": "Limită",
"LabelLineSpacing": "Spațiere între rânduri", "LabelLineSpacing": "Spațiere între rânduri",
"LabelListenAgain": "Ascultă din nou", "LabelListenAgain": "Ascultă din nou",
"LabelLogLevelDebug": "Depanare",
"LabelLogLevelInfo": "Informații",
"LabelLogLevelWarn": "Avertizare",
"LabelLookForNewEpisodesAfterDate": "Caută episoade noi după această dată",
"LabelLowestPriority": "Cea Mai Scăzută Prioritate",
"LabelMatchConfidence": "Încredere",
"LabelMatchExistingUsersBy": "Potrivire utilizatori existenți prin",
"LabelMatchExistingUsersByDescription": "Folosit pentru a conecta utilizatorii existenți. Odata conectați, utilizatorii vor fi potriviți după un ID unic trimis de furnizorul SSO",
"LabelMaxEpisodesToDownload": "Numarul maxim # de episoade de descărcat. Folosiți 0 pentru nelimitat.",
"LabelMaxEpisodesToDownloadPerCheck": "Numărul maxim # de episoade de descărcat per verificare",
"LabelMaxEpisodesToKeep": "Numarul maxim # de episoade păstrate",
"LabelMaxEpisodesToKeepHelp": "Valorea 0 nu stabilește o limită maximă. După ce un episod nou a fost descărcat automat, cel mai vechi episod va fi șters dacă aveți mai mult de X episoade. Se va șterge câte un episod vechi pentru fiecare episod nou descărcat.",
"LabelMediaPlayer": "Player Media",
"LabelMediaType": "Tip media", "LabelMediaType": "Tip media",
"LabelMetaTag": "Etichetă Meta",
"LabelMetaTags": "Etichete Meta",
"LabelMetadataOrderOfPrecedenceDescription": "Sursele de metadate cu prioritate mai mare o să suprascrie sursele de metadate cu prioritate mai mică",
"LabelMetadataProvider": "Furnizor Metadate",
"LabelMinute": "Minut",
"LabelMinutes": "Minute",
"LabelMissing": "Lipsă", "LabelMissing": "Lipsă",
"LabelMissingEbook": "Nu are carte electronică",
"LabelMissingSupplementaryEbook": "Nu are carte electronică adițională",
"LabelMobileRedirectURIs": "URL-uri de redirecționare Mobile Permise",
"LabelMobileRedirectURIsDescription": "Aceasta este o listă cu URI-uri valide pentru redirectionare a aplicațiilor mobile. URI-ul predefinit este <code>audiobookshelf://oauth</code>,, care poate fi sters sau suplimentat cu URI-uri adiționale pentru integrarea cu alte aplicații. Folosirea unui asterisc (<code>*</code>) ca singur element permite orice URI.",
"LabelMore": "Mai multe", "LabelMore": "Mai multe",
"LabelMoreInfo": "Mai multe informații", "LabelMoreInfo": "Mai multe informații",
"LabelName": "Nume", "LabelName": "Nume",
"LabelNarrator": "Narator", "LabelNarrator": "Narator",
"LabelNarrators": "Naratori", "LabelNarrators": "Naratori",
"LabelNew": "Nou",
"LabelNewPassword": "Parolă Nouă",
"LabelNewestAuthors": "Autori noi", "LabelNewestAuthors": "Autori noi",
"LabelNewestEpisodes": "Episoade noi", "LabelNewestEpisodes": "Episoade noi",
"LabelNextBackupDate": "Următoarea dată a copiilor de siguranță",
"LabelNextChapters": "Următoarele capitole vor fi:",
"LabelNextScheduledRun": "Urmatoarea rulare programată",
"LabelNoApiKeys": "Nu exista chei API",
"LabelNoCustomMetadataProviders": "Nu există furnizori de metadate personalizați",
"LabelNoEpisodesSelected": "Nici un episod selectat",
"LabelNotFinished": "Nefinalizat", "LabelNotFinished": "Nefinalizat",
"LabelNotStarted": "Neînceput", "LabelNotStarted": "Neînceput",
"LabelNotes": "Note",
"LabelNotificationAppriseURL": "URL-ul(urile) Apprise",
"LabelNotificationAvailableVariables": "Variabile disponibile",
"LabelNotificationBodyTemplate": "Corpul Șablonului",
"LabelNotificationEvent": "Eveniment de notificare",
"LabelNotificationTitleTemplate": "Titlul Șablonului",
"LabelNotificationsMaxFailedAttempts": "Număr de încercări eșuate maxim",
"LabelNotificationsMaxFailedAttemptsHelp": "Notificările sunt dezactivate dacă nu reușesc să fie trimise de acest număr de ori",
"LabelNotificationsMaxQueueSize": "Dimensiunea maximă a cozii pentru evenimentele de notificare",
"LabelNotificationsMaxQueueSizeHelp": "Evenimentele sunt limitate la 1 per secunda. Evenimentele vor fi ignorate dacă coada este plină. Previne spamarea cu notificări.",
"LabelNumberOfBooks": "Numărul de Cărți",
"LabelNumberOfChapters": "Număr de capitole:",
"LabelNumberOfEpisodes": "# de Episoade", "LabelNumberOfEpisodes": "# de Episoade",
"LabelOpenIDAdvancedPermsClaimDescription": "Numele revendicării OpenID care conține permisiuni avansate pentru acțiunile utilizatorului în interiorul aplicației care vor fi aplicate rolurilor non-administrator (<b>dacă e configurat</b>). Dacă revendicarea nu e prezentă în răspunsul primit, accesul către ABS e refuzat. Dacă o singură opțiune lipsește, va fi tratată ca <code>falsă</code>. Asigurați-vă că revendicările furnizorului de securitate corespund structurii așteptate:",
"LabelOpenIDClaims": "Lăsați urmatoarele opțiuni goale pentru a dezactiva atribuirea avansată de grupuri și permisiuni, asignând grupul \"Utilizatori\" automat.",
"LabelOpenRSSFeed": "Flux Open RSS",
"LabelOverwrite": "Suprascrie",
"LabelPaginationPageXOfY": "Pagina {0} din {1}",
"LabelPassword": "Parolă", "LabelPassword": "Parolă",
"LabelPath": "Cale", "LabelPath": "Cale",
"LabelPermanent": "Permanent",
"LabelPermissionsAccessAllLibraries": "Poate accesa toate bibliotecile",
"LabelPermissionsAccessAllTags": "Poate accesa toate etichetele",
"LabelPermissionsAccessExplicitContent": "Poate Accesa Conținut Explicit",
"LabelPermissionsCreateEreader": "Poate Crea Cititoare Electronice",
"LabelPermissionsDelete": "Poate Șterge",
"LabelPermissionsDownload": "Poate Descărca",
"LabelPermissionsUpdate": "Poate Actualiza",
"LabelPermissionsUpload": "Poate Încărca",
"LabelPersonalYearReview": "Recapitularea Anului tău ({0})",
"LabelPhotoPathURL": "Calea/URL-ul Fotografiei",
"LabelPlayMethod": "Metoda de Redare",
"LabelPlaybackRateIncrementDecrement": "Incrementare/Decrementare a Ratei de Redare cu",
"LabelPlayerChapterNumberMarker": "{0} din {1}",
"LabelPlaylists": "Liste de redare",
"LabelPodcast": "Podcast", "LabelPodcast": "Podcast",
"LabelPodcastSearchRegion": "Regiunea căutării podcastului",
"LabelPodcastType": "Tipul Podcastului",
"LabelPodcasts": "Podcasturi", "LabelPodcasts": "Podcasturi",
"LabelPort": "Portul",
"LabelPrefixesToIgnore": "Prefix de ignorat (fără a ține cont de majuscule)",
"LabelPreventIndexing": "Împiedică indexarea fluxului în directoarele iTunes și Google Podcasts", "LabelPreventIndexing": "Împiedică indexarea fluxului în directoarele iTunes și Google Podcasts",
"LabelPrimaryEbook": "eCarte Principală",
"LabelProgress": "Progres", "LabelProgress": "Progres",
"LabelProvider": "Furnizor",
"LabelProviderAuthorizationValue": "Valoarea Antetului de Autorizare",
"LabelPubDate": "Data publicării", "LabelPubDate": "Data publicării",
"LabelPublishYear": "Anul publicării", "LabelPublishYear": "Anul publicării",
"LabelPublishedDate": "Publicat la {0}", "LabelPublishedDate": "Publicat la {0}",
"LabelPublishedDecade": "Deceniul Publicării",
"LabelPublishedDecades": "Deceniile Publicării",
"LabelPublisher": "Editor",
"LabelPublishers": "Editori",
"LabelRSSFeedCustomOwnerEmail": "Email personalizat al proprietarului", "LabelRSSFeedCustomOwnerEmail": "Email personalizat al proprietarului",
"LabelRSSFeedCustomOwnerName": "Nume personalizat al proprietarului", "LabelRSSFeedCustomOwnerName": "Nume personalizat al proprietarului",
"LabelRSSFeedOpen": "Flux RSS deschis", "LabelRSSFeedOpen": "Flux RSS deschis",
"LabelRSSFeedPreventIndexing": "Previne indexarea", "LabelRSSFeedPreventIndexing": "Previne indexarea",
"LabelRSSFeedSlug": "Identificator flux RSS", "LabelRSSFeedSlug": "Identificator flux RSS",
"LabelRSSFeedURL": "URL-ul Fluxului RSS",
"LabelRandomly": "Aleatoriu", "LabelRandomly": "Aleatoriu",
"LabelReAddSeriesToContinueListening": "Readăugare serie la \"Continuă să asculți\"",
"LabelRead": "Citește", "LabelRead": "Citește",
"LabelReadAgain": "Citește din nou", "LabelReadAgain": "Citește din nou",
"LabelReadEbookWithoutProgress": "Citire eCarte fără a memora progresul",
"LabelRecentSeries": "Serii recente", "LabelRecentSeries": "Serii recente",
"LabelRecentlyAdded": "Adăugate recent", "LabelRecentlyAdded": "Adăugate recent",
"LabelRecommended": "Recomandat",
"LabelRedo": "Refă",
"LabelRegion": "Regiune",
"LabelReleaseDate": "Data Lansării",
"LabelRemoveAllMetadataAbs": "Ștergerea tuturor fișierelor metadata.abs",
"LabelRemoveAllMetadataJson": "Ștergerea tuturor fișierelor metadata.json",
"LabelRemoveAudibleBranding": "Ștergerea Audible intro și outro din capitole",
"LabelRemoveCover": "Șterge coperta",
"LabelRemoveMetadataFile": "Șterge fisierele metadate din dosarele bibliotecii",
"LabelRemoveMetadataFileHelp": "Șterge toate fișierele metadata.json și metadata.abs din {0} dosare.",
"LabelRowsPerPage": "Rânduri pe pagină",
"LabelSearchTerm": "Termen de căutat",
"LabelSearchTitle": "Titlu de căutat",
"LabelSearchTitleOrASIN": "Titlu de căutat sau ASN",
"LabelSeason": "Sezon", "LabelSeason": "Sezon",
"LabelSeasonNumber": "Sezonul #{0}",
"LabelSelectAll": "Selectează tot",
"LabelSelectAllEpisodes": "Selectează toate episoadele",
"LabelSelectEpisodesShowing": "Selectează {0} episoade dintre cele afișate",
"LabelSelectUser": "Selectare utilizator",
"LabelSelectUsers": "Selectare utilizatori",
"LabelSendEbookToDevice": "Trimite eCarte către...",
"LabelSequence": "Secvență",
"LabelSerial": "Serie",
"LabelSeries": "Serii", "LabelSeries": "Serii",
"LabelSeriesName": "Numele Seriilor",
"LabelSeriesProgress": "Progresul Seriilor",
"LabelServerLogLevel": "Nivelul de Jurnal al Serverului",
"LabelServerYearReview": "Anul Serverului în Retrospectivă ({0})",
"LabelSetEbookAsPrimary": "Setează ca principală", "LabelSetEbookAsPrimary": "Setează ca principală",
"LabelSetEbookAsSupplementary": "Setează ca suplimentară", "LabelSetEbookAsSupplementary": "Setează ca suplimentară",
"LabelSettingsAllowIframe": "Permite încorporarea intr-un iframe",
"LabelSettingsAudiobooksOnly": "Doar cărți audio",
"LabelSettingsAudiobooksOnlyHelp": "Activarea acestei set[ri va ignora fișierele eBook daca acestea nu se află într-un dosar al unei cărți audio, caz în care vor fi setate ca eBook suplimentar",
"LabelSettingsBookshelfViewHelp": "Design scheumorf cu rafturi de lemn",
"LabelSettingsChromecastSupport": "Suport Chromecast",
"LabelSettingsDateFormat": "Formatul Datei",
"LabelSettingsEnableWatcher": "Urmărește în mod automat bibliotecile pentru schimbări",
"LabelSettingsEnableWatcherForLibrary": "Urmărește în mod automat biblioteca pentru schimbări",
"LabelShowAll": "Afișează tot", "LabelShowAll": "Afișează tot",
"LabelSize": "Dimensiune", "LabelSize": "Dimensiune",
"LabelSleepTimer": "Timer de somn", "LabelSleepTimer": "Timer de somn",

View file

@ -23,7 +23,7 @@
"ButtonClearFilter": "Zrušiť filter", "ButtonClearFilter": "Zrušiť filter",
"ButtonClose": "Uzavrieť", "ButtonClose": "Uzavrieť",
"ButtonCloseFeed": "Zatvoriť zdroj", "ButtonCloseFeed": "Zatvoriť zdroj",
"ButtonCloseSession": "Ukončiť aktívne relácie", "ButtonCloseSession": "Ukončiť otvorené pripojenie",
"ButtonCollections": "Kolekcie", "ButtonCollections": "Kolekcie",
"ButtonConfigureScanner": "Nastaviť skener", "ButtonConfigureScanner": "Nastaviť skener",
"ButtonCreate": "Vytvoriť", "ButtonCreate": "Vytvoriť",
@ -150,12 +150,12 @@
"HeaderIgnoredFiles": "Ignorované súbory", "HeaderIgnoredFiles": "Ignorované súbory",
"HeaderItemFiles": "Položka Súbory", "HeaderItemFiles": "Položka Súbory",
"HeaderItemMetadataUtils": "Položka Nástroje metadát", "HeaderItemMetadataUtils": "Položka Nástroje metadát",
"HeaderLastListeningSession": "Posledná relácia", "HeaderLastListeningSession": "Posledné pripojenie",
"HeaderLatestEpisodes": "Posledné epizódy", "HeaderLatestEpisodes": "Posledné epizódy",
"HeaderLibraries": "Knižnice", "HeaderLibraries": "Knižnice",
"HeaderLibraryFiles": "Súbory knižnice", "HeaderLibraryFiles": "Súbory knižnice",
"HeaderLibraryStats": "Štatistiky knižnice", "HeaderLibraryStats": "Štatistiky knižnice",
"HeaderListeningSessions": "Relácie", "HeaderListeningSessions": "Pripojenia",
"HeaderListeningStats": "Štatistiky počúvania", "HeaderListeningStats": "Štatistiky počúvania",
"HeaderLogin": "Prihlásenie", "HeaderLogin": "Prihlásenie",
"HeaderLogs": "Záznamy udalostí", "HeaderLogs": "Záznamy udalostí",
@ -172,7 +172,7 @@
"HeaderNotificationUpdate": "Aktualizovať notifikáciu", "HeaderNotificationUpdate": "Aktualizovať notifikáciu",
"HeaderNotifications": "Notifikácie", "HeaderNotifications": "Notifikácie",
"HeaderOpenIDConnectAuthentication": "Overenie pripojenia OpenID", "HeaderOpenIDConnectAuthentication": "Overenie pripojenia OpenID",
"HeaderOpenListeningSessions": "Aktívne relácie", "HeaderOpenListeningSessions": "Aktívne pripojenia",
"HeaderOpenRSSFeed": "Otvoriť RSS zdroj", "HeaderOpenRSSFeed": "Otvoriť RSS zdroj",
"HeaderOtherFiles": "Ostatné súbory", "HeaderOtherFiles": "Ostatné súbory",
"HeaderPasswordAuthentication": "Overenie heslom", "HeaderPasswordAuthentication": "Overenie heslom",
@ -189,7 +189,7 @@
"HeaderRSSFeeds": "RSS zdroje", "HeaderRSSFeeds": "RSS zdroje",
"HeaderRemoveEpisode": "Odstrániť epizódu", "HeaderRemoveEpisode": "Odstrániť epizódu",
"HeaderRemoveEpisodes": "Odstrániť {0} epizód", "HeaderRemoveEpisodes": "Odstrániť {0} epizód",
"HeaderSavedMediaProgress": "Stav uložených médií", "HeaderSavedMediaProgress": "Priebeh uložených médií",
"HeaderSchedule": "Plán", "HeaderSchedule": "Plán",
"HeaderScheduleEpisodeDownloads": "Naplánovať automatické sťahovanie epizód", "HeaderScheduleEpisodeDownloads": "Naplánovať automatické sťahovanie epizód",
"HeaderScheduleLibraryScans": "Naplánovanovať automatické skenovanie knižnice", "HeaderScheduleLibraryScans": "Naplánovanovať automatické skenovanie knižnice",
@ -222,7 +222,7 @@
"LabelAbridged": "Skrátená verzia", "LabelAbridged": "Skrátená verzia",
"LabelAbridgedChecked": "Skrátená verzia (zaškrtnuté)", "LabelAbridgedChecked": "Skrátená verzia (zaškrtnuté)",
"LabelAbridgedUnchecked": "Neskrátená verzia (nezaškrtnuté)", "LabelAbridgedUnchecked": "Neskrátená verzia (nezaškrtnuté)",
"LabelAccessibleBy": "Dostupné pre", "LabelAccessibleBy": "Prístupné pre",
"LabelAccountType": "Typ účtu", "LabelAccountType": "Typ účtu",
"LabelAccountTypeAdmin": "Administrátor", "LabelAccountTypeAdmin": "Administrátor",
"LabelAccountTypeGuest": "Hosť", "LabelAccountTypeGuest": "Hosť",
@ -230,7 +230,7 @@
"LabelActivities": "Aktivity", "LabelActivities": "Aktivity",
"LabelActivity": "Aktivita", "LabelActivity": "Aktivita",
"LabelAddToCollection": "Pridať do zbierky", "LabelAddToCollection": "Pridať do zbierky",
"LabelAddToCollectionBatch": "Pridať {0} kníh do zbierky", "LabelAddToCollectionBatch": "Pridať {0} kníh do kolekcie",
"LabelAddToPlaylist": "Pridať do playlistu", "LabelAddToPlaylist": "Pridať do playlistu",
"LabelAddToPlaylistBatch": "Pridať {0} položie do playlistu", "LabelAddToPlaylistBatch": "Pridať {0} položie do playlistu",
"LabelAddedAt": "Pridané", "LabelAddedAt": "Pridané",
@ -275,7 +275,7 @@
"LabelBonus": "Bonus", "LabelBonus": "Bonus",
"LabelBooks": "Knihy", "LabelBooks": "Knihy",
"LabelButtonText": "Text tlačidla", "LabelButtonText": "Text tlačidla",
"LabelByAuthor": "od", "LabelByAuthor": "od {0}",
"LabelChangePassword": "Zmeniť heslo", "LabelChangePassword": "Zmeniť heslo",
"LabelChannels": "Kanály", "LabelChannels": "Kanály",
"LabelChapterCount": "{0} kapitol", "LabelChapterCount": "{0} kapitol",
@ -288,8 +288,8 @@
"LabelCodec": "Kodek", "LabelCodec": "Kodek",
"LabelCollapseSeries": "Zbaliť série", "LabelCollapseSeries": "Zbaliť série",
"LabelCollapseSubSeries": "Zbaliť podsérie", "LabelCollapseSubSeries": "Zbaliť podsérie",
"LabelCollection": "Zbierka", "LabelCollection": "Kolekcia",
"LabelCollections": "Zbierky", "LabelCollections": "Kolekcie",
"LabelComplete": "Hotovo", "LabelComplete": "Hotovo",
"LabelConfirmPassword": "Potvrdiť heslo", "LabelConfirmPassword": "Potvrdiť heslo",
"LabelContinueListening": "Pokračovať v počúvaní", "LabelContinueListening": "Pokračovať v počúvaní",
@ -383,7 +383,7 @@
"LabelFolders": "Priečinky", "LabelFolders": "Priečinky",
"LabelFontBold": "Tučné", "LabelFontBold": "Tučné",
"LabelFontBoldness": "Hrúbka písma", "LabelFontBoldness": "Hrúbka písma",
"LabelFontFamily": "písmo", "LabelFontFamily": "Rodina písiem",
"LabelFontItalic": "Kurzíva", "LabelFontItalic": "Kurzíva",
"LabelFontScale": "Veľkosť písma", "LabelFontScale": "Veľkosť písma",
"LabelFontStrikethrough": "Preškrtnuté", "LabelFontStrikethrough": "Preškrtnuté",
@ -436,9 +436,9 @@
"LabelLibraryFilterSublistEmpty": "Žiadne {0}", "LabelLibraryFilterSublistEmpty": "Žiadne {0}",
"LabelLibraryItem": "Položka knižnice", "LabelLibraryItem": "Položka knižnice",
"LabelLibraryName": "Názov knižnice", "LabelLibraryName": "Názov knižnice",
"LabelLibrarySortByProgress": "Stav: Naposledy aktualizované", "LabelLibrarySortByProgress": "Pokrok: Aktualizované",
"LabelLibrarySortByProgressFinished": "Stav: Dokončené", "LabelLibrarySortByProgressFinished": "Pokrok: Dokončené",
"LabelLibrarySortByProgressStarted": "Stav: Začal", "LabelLibrarySortByProgressStarted": "Pokrok: Začiatok",
"LabelLimit": "Limit", "LabelLimit": "Limit",
"LabelLineSpacing": "Riadkovanie", "LabelLineSpacing": "Riadkovanie",
"LabelListenAgain": "Počúvať znova", "LabelListenAgain": "Počúvať znova",
@ -528,7 +528,7 @@
"LabelPrefixesToIgnore": "Ignorované predpony (bez ohľadu na veľkosť písmen)", "LabelPrefixesToIgnore": "Ignorované predpony (bez ohľadu na veľkosť písmen)",
"LabelPreventIndexing": "Zabráni indexácii vašich zdrojov službami iTunes a Google podcast directories", "LabelPreventIndexing": "Zabráni indexácii vašich zdrojov službami iTunes a Google podcast directories",
"LabelPrimaryEbook": "Primárny e-book", "LabelPrimaryEbook": "Primárny e-book",
"LabelProgress": "Aktuálny stav", "LabelProgress": "Stav",
"LabelProvider": "Poskytovateľ", "LabelProvider": "Poskytovateľ",
"LabelProviderAuthorizationValue": "Obsah hlavičky autorizácie", "LabelProviderAuthorizationValue": "Obsah hlavičky autorizácie",
"LabelPubDate": "Dátum publikovania", "LabelPubDate": "Dátum publikovania",
@ -548,7 +548,7 @@
"LabelReAddSeriesToContinueListening": "Znova pridať série do pokračujúceho počúvania", "LabelReAddSeriesToContinueListening": "Znova pridať série do pokračujúceho počúvania",
"LabelRead": "Načítať", "LabelRead": "Načítať",
"LabelReadAgain": "Čítať znova", "LabelReadAgain": "Čítať znova",
"LabelReadEbookWithoutProgress": "Čítať e-knihu bez zmeny stavu", "LabelReadEbookWithoutProgress": "Čítať e-knihu bez sledovania pokroku",
"LabelRecentSeries": "Posledné série", "LabelRecentSeries": "Posledné série",
"LabelRecentlyAdded": "Posledné pridané", "LabelRecentlyAdded": "Posledné pridané",
"LabelRecommended": "Odporúčané", "LabelRecommended": "Odporúčané",
@ -577,7 +577,7 @@
"LabelSerial": "Na pokračovanie", "LabelSerial": "Na pokračovanie",
"LabelSeries": "Série", "LabelSeries": "Série",
"LabelSeriesName": "Názov série", "LabelSeriesName": "Názov série",
"LabelSeriesProgress": "Aktuálny stav série", "LabelSeriesProgress": "Pokrok série",
"LabelServerLogLevel": "Úroveň logovania servera", "LabelServerLogLevel": "Úroveň logovania servera",
"LabelServerYearReview": "Rok servera v prehľade ({0})", "LabelServerYearReview": "Rok servera v prehľade ({0})",
"LabelSetEbookAsPrimary": "Nastaviť ako primárny", "LabelSetEbookAsPrimary": "Nastaviť ako primárny",
@ -588,8 +588,8 @@
"LabelSettingsBookshelfViewHelp": "Skeuomorfný dizajn s drevenými poličkami", "LabelSettingsBookshelfViewHelp": "Skeuomorfný dizajn s drevenými poličkami",
"LabelSettingsChromecastSupport": "Podpora chromecastu", "LabelSettingsChromecastSupport": "Podpora chromecastu",
"LabelSettingsDateFormat": "Formát dátumu", "LabelSettingsDateFormat": "Formát dátumu",
"LabelSettingsEnableWatcher": "Automatické sledovanie zmien v knižniciach", "LabelSettingsEnableWatcher": "Automatické skenovanie knižníc pre zmeny",
"LabelSettingsEnableWatcherForLibrary": "Automatické sledovanie zmien v knižnici", "LabelSettingsEnableWatcherForLibrary": "Automaticky skenovať knižnicu pre zmeny",
"LabelSettingsEnableWatcherHelp": "Povoliť automatické pridávanie/aktualizácie položiek pri zmene súborov. *Vyžaduje reštart servera", "LabelSettingsEnableWatcherHelp": "Povoliť automatické pridávanie/aktualizácie položiek pri zmene súborov. *Vyžaduje reštart servera",
"LabelSettingsEpubsAllowScriptedContent": "Povoliť v e-knihách skriptovaný obsah", "LabelSettingsEpubsAllowScriptedContent": "Povoliť v e-knihách skriptovaný obsah",
"LabelSettingsEpubsAllowScriptedContentHelp": "Povoliť e-knihám spúšťanie skriptov. Odporúča sa túto voľbu nepovolovať, pokiaľ plne nedôverujete zdrojom súborov e-kníh.", "LabelSettingsEpubsAllowScriptedContentHelp": "Povoliť e-knihám spúšťanie skriptov. Odporúča sa túto voľbu nepovolovať, pokiaľ plne nedôverujete zdrojom súborov e-kníh.",
@ -888,7 +888,7 @@
"MessageResetChaptersConfirm": "Ste si istý, že chcete resetnúť kapitoly a zahodiť zmeny, ktoré ste vykonali?", "MessageResetChaptersConfirm": "Ste si istý, že chcete resetnúť kapitoly a zahodiť zmeny, ktoré ste vykonali?",
"MessageRestoreBackupConfirm": "Ste si istí, že chcete obnoviť zálohu vytvorenú", "MessageRestoreBackupConfirm": "Ste si istí, že chcete obnoviť zálohu vytvorenú",
"MessageRestoreBackupWarning": "Obnovenie zálohy spôsobí kompletný prepis databázy umiestnenej v /config a obrázkov prebalov a autorov v /metadata/items a /metadata/authors.<br /><br />Zálohy nemenia žiadne súbory v priečinkoch vašej knižnice. Ak ste povolili v nastaveniach servera ukladanie obrázkov prebalov a metadát v priečinkoch knižnice, tieto nie sú zálohované a teda ani prepisované.<br /><br />Všetky klienti používajúci váš server budú automaticky obnovené.", "MessageRestoreBackupWarning": "Obnovenie zálohy spôsobí kompletný prepis databázy umiestnenej v /config a obrázkov prebalov a autorov v /metadata/items a /metadata/authors.<br /><br />Zálohy nemenia žiadne súbory v priečinkoch vašej knižnice. Ak ste povolili v nastaveniach servera ukladanie obrázkov prebalov a metadát v priečinkoch knižnice, tieto nie sú zálohované a teda ani prepisované.<br /><br />Všetky klienti používajúci váš server budú automaticky obnovené.",
"MessageScheduleLibraryScanNote": "Pre väčšinu používateľov sa odporúča nechať túto funkciu vypnutú a ponechať zapnuté nastavenie „Automatické sledovanie zmien v knižnici“ táto funkcia automaticky zistí zmeny vo vašich priečinkoch knižnice. Túto funkciu zapnite, ak „Automatické sledovanie zmien v knižnici“ nefunguje vo vašom súborovom systéme (napr. NFS).", "MessageScheduleLibraryScanNote": "Pre väčšinu používateľov sa odporúča ponechať túto funkciu vypnutú a povoliť nastavenia funkcie sledovania obsahu priečinku. Funkcia sledovania priečinku bude automaticky detekovať zmeny v priečinkoch knižnice. Táto funkcia však nefunguje pre všetky súborové systémy (ako napr. NFS), v tom prípade využite funkciu plánovaného skenovania knižnice.",
"MessageScheduleRunEveryWeekdayAtTime": "Spustiť každú {0} o {1}", "MessageScheduleRunEveryWeekdayAtTime": "Spustiť každú {0} o {1}",
"MessageSearchResultsFor": "Výsledky vyhľadávania pre", "MessageSearchResultsFor": "Výsledky vyhľadávania pre",
"MessageSelected": "{0} vybrané", "MessageSelected": "{0} vybrané",
@ -1015,7 +1015,7 @@
"ToastCachePurgeFailed": "Vyčistenie vyrovnávacej pamäte zlyhalo", "ToastCachePurgeFailed": "Vyčistenie vyrovnávacej pamäte zlyhalo",
"ToastCachePurgeSuccess": "Vyrovnávacia pamäť vyčistená", "ToastCachePurgeSuccess": "Vyrovnávacia pamäť vyčistená",
"ToastChapterLocked": "Kapitola je zamknutá.", "ToastChapterLocked": "Kapitola je zamknutá.",
"ToastChapterStartTimeAdjusted": "Čas začiatku kapitoly upravený o {0} sekúnd", "ToastChapterStartTimeAdjusted": "Čas začiatku kapitoly upravený o {0} sek.",
"ToastChaptersAllLocked": "Všetky kapitoly sú zamknuté. Odomknite niektoré kapitoly, aby ste posunuli ich časy.", "ToastChaptersAllLocked": "Všetky kapitoly sú zamknuté. Odomknite niektoré kapitoly, aby ste posunuli ich časy.",
"ToastChaptersHaveErrors": "Kapitoly obsahujú chyby", "ToastChaptersHaveErrors": "Kapitoly obsahujú chyby",
"ToastChaptersInvalidShiftAmountLast": "Neplatná hodnota veľkosti posunutia. Začiatok poslednej kapitoly by ležal za koncom audioknihy.", "ToastChaptersInvalidShiftAmountLast": "Neplatná hodnota veľkosti posunutia. Začiatok poslednej kapitoly by ležal za koncom audioknihy.",
@ -1026,8 +1026,6 @@
"ToastCollectionItemsAddFailed": "Pridanie položky/-iek do zbierky zlyhalo", "ToastCollectionItemsAddFailed": "Pridanie položky/-iek do zbierky zlyhalo",
"ToastCollectionRemoveSuccess": "Zbierka odstránená", "ToastCollectionRemoveSuccess": "Zbierka odstránená",
"ToastCollectionUpdateSuccess": "Zbierka aktualizovaná", "ToastCollectionUpdateSuccess": "Zbierka aktualizovaná",
"ToastConnectionNotAvailable": "Pripojenie je nedostupné. Skúste to neskôr",
"ToastCoverSearchFailed": "Vyhľadanie obalu sa nepodarilo",
"ToastCoverUpdateFailed": "Aktualizácia prebalu zlyhala", "ToastCoverUpdateFailed": "Aktualizácia prebalu zlyhala",
"ToastDateTimeInvalidOrIncomplete": "Dátum a čas sú neplatné alebo neúplné", "ToastDateTimeInvalidOrIncomplete": "Dátum a čas sú neplatné alebo neúplné",
"ToastDeleteFileFailed": "Odstránenie súboru zlyhalo", "ToastDeleteFileFailed": "Odstránenie súboru zlyhalo",

View file

@ -104,7 +104,7 @@
"ButtonStartM4BEncode": "Zaženi M4B prekodiranje", "ButtonStartM4BEncode": "Zaženi M4B prekodiranje",
"ButtonStartMetadataEmbed": "Začni vdelavo metapodatkov", "ButtonStartMetadataEmbed": "Začni vdelavo metapodatkov",
"ButtonStats": "Statistika", "ButtonStats": "Statistika",
"ButtonSubmit": "Pošlji", "ButtonSubmit": "Potrdi",
"ButtonTest": "Test", "ButtonTest": "Test",
"ButtonUnlinkOpenId": "Prekini povezavo OpenID", "ButtonUnlinkOpenId": "Prekini povezavo OpenID",
"ButtonUpload": "Naloži", "ButtonUpload": "Naloži",
@ -436,9 +436,9 @@
"LabelLibraryFilterSublistEmpty": "Ne {0}", "LabelLibraryFilterSublistEmpty": "Ne {0}",
"LabelLibraryItem": "Element knjižnice", "LabelLibraryItem": "Element knjižnice",
"LabelLibraryName": "Ime knjižnice", "LabelLibraryName": "Ime knjižnice",
"LabelLibrarySortByProgress": "Napredek: Zadnja posodobitev", "LabelLibrarySortByProgress": "Napredek: Nazadnje posodobljen",
"LabelLibrarySortByProgressFinished": "Napredek: Končano", "LabelLibrarySortByProgressFinished": "Napredej: Končano",
"LabelLibrarySortByProgressStarted": "Napredek: Začelo se je", "LabelLibrarySortByProgressStarted": "Napredek: Začeto",
"LabelLimit": "Omejitev", "LabelLimit": "Omejitev",
"LabelLineSpacing": "Vrstični razmak", "LabelLineSpacing": "Vrstični razmak",
"LabelListenAgain": "Poslušaj znova", "LabelListenAgain": "Poslušaj znova",

View file

@ -1,6 +1,6 @@
{ {
"ButtonAdd": "Lägg till", "ButtonAdd": "Lägg till",
"ButtonAddApiKey": "Lägg till API-nyckel", "ButtonAddApiKey": "Addera API-nyckel",
"ButtonAddChapters": "Lägg till kapitel", "ButtonAddChapters": "Lägg till kapitel",
"ButtonAddDevice": "Lägg till enhet", "ButtonAddDevice": "Lägg till enhet",
"ButtonAddLibrary": "Lägg till bibliotek", "ButtonAddLibrary": "Lägg till bibliotek",
@ -48,7 +48,7 @@
"ButtonLogout": "Logga ut", "ButtonLogout": "Logga ut",
"ButtonLookup": "Sök", "ButtonLookup": "Sök",
"ButtonManageTracks": "Hantera spår", "ButtonManageTracks": "Hantera spår",
"ButtonMapChapterTitles": "Mappa kapitelrubriker", "ButtonMapChapterTitles": "Karta kapitelrubriker",
"ButtonMatchAllAuthors": "Matcha alla författare", "ButtonMatchAllAuthors": "Matcha alla författare",
"ButtonMatchBooks": "Matcha böcker", "ButtonMatchBooks": "Matcha böcker",
"ButtonNevermind": "Glöm det", "ButtonNevermind": "Glöm det",
@ -104,7 +104,7 @@
"ButtonStartM4BEncode": "Starta M4B-omkodning", "ButtonStartM4BEncode": "Starta M4B-omkodning",
"ButtonStartMetadataEmbed": "Infoga metadata", "ButtonStartMetadataEmbed": "Infoga metadata",
"ButtonStats": "Statistik", "ButtonStats": "Statistik",
"ButtonSubmit": "Skicka", "ButtonSubmit": "Spara",
"ButtonTest": "Testa", "ButtonTest": "Testa",
"ButtonUnlinkOpenId": "Koppla ifrån OpenID", "ButtonUnlinkOpenId": "Koppla ifrån OpenID",
"ButtonUpload": "Ladda upp", "ButtonUpload": "Ladda upp",
@ -123,7 +123,7 @@
"HeaderAdvanced": "Avancerad", "HeaderAdvanced": "Avancerad",
"HeaderApiKeys": "API-nyckel", "HeaderApiKeys": "API-nyckel",
"HeaderAppriseNotificationSettings": "Inställningar av meddelanden med Apprise", "HeaderAppriseNotificationSettings": "Inställningar av meddelanden med Apprise",
"HeaderAudioTracks": "Ljudspår", "HeaderAudioTracks": "Ljudfiler",
"HeaderAudiobookTools": "Hantering av ljudboksfiler", "HeaderAudiobookTools": "Hantering av ljudboksfiler",
"HeaderAuthentication": "Autentisering", "HeaderAuthentication": "Autentisering",
"HeaderBackups": "Säkerhetskopior", "HeaderBackups": "Säkerhetskopior",
@ -202,7 +202,7 @@
"HeaderSettingsScanner": "Skanner", "HeaderSettingsScanner": "Skanner",
"HeaderSettingsSecurity": "Säkerhet", "HeaderSettingsSecurity": "Säkerhet",
"HeaderSettingsWebClient": "Webklient", "HeaderSettingsWebClient": "Webklient",
"HeaderSleepTimer": "Insomningstimer", "HeaderSleepTimer": "Timer för att sova",
"HeaderStatsLargestItems": "Största objekten", "HeaderStatsLargestItems": "Största objekten",
"HeaderStatsLongestItems": "Längsta objekten (timmar)", "HeaderStatsLongestItems": "Längsta objekten (timmar)",
"HeaderStatsMinutesListeningChart": "Minuters lyssning (senaste 7 dagarna)", "HeaderStatsMinutesListeningChart": "Minuters lyssning (senaste 7 dagarna)",
@ -231,10 +231,10 @@
"LabelActivity": "Aktivitet", "LabelActivity": "Aktivitet",
"LabelAddToCollection": "Lägg till i en samling", "LabelAddToCollection": "Lägg till i en samling",
"LabelAddToCollectionBatch": "Lägg till {0} böcker i samlingen", "LabelAddToCollectionBatch": "Lägg till {0} böcker i samlingen",
"LabelAddToPlaylist": "Lägg till i spellista", "LabelAddToPlaylist": "Lägg till i en spellista",
"LabelAddToPlaylistBatch": "Lägg till {0} objekt i Spellistan", "LabelAddToPlaylistBatch": "Lägg till {0} objekt i Spellistan",
"LabelAddedAt": "Datum adderad", "LabelAddedAt": "Datum adderad",
"LabelAddedDate": "Tillagd {0}", "LabelAddedDate": "Adderad {0}",
"LabelAdminUsersOnly": "Endast administratörer", "LabelAdminUsersOnly": "Endast administratörer",
"LabelAll": "Alla", "LabelAll": "Alla",
"LabelAllEpisodesDownloaded": "Alla avsnitt är nedladdade", "LabelAllEpisodesDownloaded": "Alla avsnitt är nedladdade",
@ -363,14 +363,14 @@
"LabelExpiresAt": "Gäller till och med", "LabelExpiresAt": "Gäller till och med",
"LabelExpiresInSeconds": "Upphör om (sekunder)", "LabelExpiresInSeconds": "Upphör om (sekunder)",
"LabelExpiresNever": "Aldrig", "LabelExpiresNever": "Aldrig",
"LabelExplicit": "Vuxeninnehåll", "LabelExplicit": "Bestämd",
"LabelExplicitChecked": "Explicit version (markerad)", "LabelExplicitChecked": "Explicit version (markerad)",
"LabelExplicitUnchecked": "Ej Explicit version (ej markerad)", "LabelExplicitUnchecked": "Ej Explicit version (ej markerad)",
"LabelExportOPML": "Exportera OPML-information", "LabelExportOPML": "Exportera OPML-information",
"LabelFeedURL": "URL-adress för flödet", "LabelFeedURL": "URL-adress för flödet",
"LabelFetchingMetadata": "Hämtar metadata", "LabelFetchingMetadata": "Hämtar metadata",
"LabelFile": "Fil", "LabelFile": "Fil",
"LabelFileBirthtime": "Tidpunkt, tillagd", "LabelFileBirthtime": "Tidpunkt, adderad",
"LabelFileBornDate": "Skapad {0}", "LabelFileBornDate": "Skapad {0}",
"LabelFileModified": "Tidpunkt, ändrad", "LabelFileModified": "Tidpunkt, ändrad",
"LabelFileModifiedDate": "Ändrad {0}", "LabelFileModifiedDate": "Ändrad {0}",
@ -436,9 +436,9 @@
"LabelLibraryFilterSublistEmpty": "Ingen {0}", "LabelLibraryFilterSublistEmpty": "Ingen {0}",
"LabelLibraryItem": "Objekt", "LabelLibraryItem": "Objekt",
"LabelLibraryName": "Biblioteksnamn", "LabelLibraryName": "Biblioteksnamn",
"LabelLibrarySortByProgress": "Status: Senast uppdaterad", "LabelLibrarySortByProgress": "Framsteg: senast uppdaterat",
"LabelLibrarySortByProgressFinished": "Status: Avslutad", "LabelLibrarySortByProgressFinished": "Framsteg: avslutad",
"LabelLibrarySortByProgressStarted": "Status: Startad", "LabelLibrarySortByProgressStarted": "Framsteg: påbörjad",
"LabelLimit": "Begränsning", "LabelLimit": "Begränsning",
"LabelLineSpacing": "Radavstånd", "LabelLineSpacing": "Radavstånd",
"LabelListenAgain": "Lyssna igen", "LabelListenAgain": "Lyssna igen",
@ -629,7 +629,7 @@
"LabelShowSeconds": "Visa i sekunder", "LabelShowSeconds": "Visa i sekunder",
"LabelShowSubtitles": "Visa underrubriker", "LabelShowSubtitles": "Visa underrubriker",
"LabelSize": "Storlek", "LabelSize": "Storlek",
"LabelSleepTimer": "Insomningstimer", "LabelSleepTimer": "Sovtimer",
"LabelSlug": "Kortnamn", "LabelSlug": "Kortnamn",
"LabelSortAscending": "Stigande", "LabelSortAscending": "Stigande",
"LabelSortDescending": "Fallande", "LabelSortDescending": "Fallande",

View file

@ -275,7 +275,7 @@
"LabelBonus": "Bonus", "LabelBonus": "Bonus",
"LabelBooks": "Kitaplar", "LabelBooks": "Kitaplar",
"LabelButtonText": "Buton Metni", "LabelButtonText": "Buton Metni",
"LabelByAuthor": "{0} tarafından", "LabelByAuthor": "Yazar: {0}",
"LabelChangePassword": "Şifreyi Değiştir", "LabelChangePassword": "Şifreyi Değiştir",
"LabelChannels": "Kanallar", "LabelChannels": "Kanallar",
"LabelChapterCount": "{0} Bölüm", "LabelChapterCount": "{0} Bölüm",
@ -383,7 +383,7 @@
"LabelFolders": "Klasörler", "LabelFolders": "Klasörler",
"LabelFontBold": "Kalın", "LabelFontBold": "Kalın",
"LabelFontBoldness": "Yazı Tipi Kalınlığı", "LabelFontBoldness": "Yazı Tipi Kalınlığı",
"LabelFontFamily": "Yazı tipi ailesi", "LabelFontFamily": "Yazı Tipi Ailesi",
"LabelFontItalic": "İtalik", "LabelFontItalic": "İtalik",
"LabelFontScale": "Yazı Tipi Ölçeği", "LabelFontScale": "Yazı Tipi Ölçeği",
"LabelFontStrikethrough": "Üstü Çizili", "LabelFontStrikethrough": "Üstü Çizili",
@ -588,8 +588,8 @@
"LabelSettingsBookshelfViewHelp": "Ahşap raflı skeuomorfik tasarım", "LabelSettingsBookshelfViewHelp": "Ahşap raflı skeuomorfik tasarım",
"LabelSettingsChromecastSupport": "Chromecast desteği", "LabelSettingsChromecastSupport": "Chromecast desteği",
"LabelSettingsDateFormat": "Tarih Formatı", "LabelSettingsDateFormat": "Tarih Formatı",
"LabelSettingsEnableWatcher": "Kütüphanelerdeki değişiklikleri otomatik olarak izle", "LabelSettingsEnableWatcher": "Değişiklikler için kütüphaneleri otomatik olarak tara",
"LabelSettingsEnableWatcherForLibrary": "Kütüphanedeki değişiklikleri otomatik olarak izle", "LabelSettingsEnableWatcherForLibrary": "Değişiklikler için kütüphaneyi otomatik olarak tara",
"LabelSettingsEnableWatcherHelp": "Dosya değişiklikleri algılandığında öğelerin otomatik olarak eklenmesini/güncellenmesini sağlar. *Sunucunun yeniden başlatılmasını gerektirir", "LabelSettingsEnableWatcherHelp": "Dosya değişiklikleri algılandığında öğelerin otomatik olarak eklenmesini/güncellenmesini sağlar. *Sunucunun yeniden başlatılmasını gerektirir",
"LabelSettingsEpubsAllowScriptedContent": "Epub'larda betiklenmiş içeriğe izin ver", "LabelSettingsEpubsAllowScriptedContent": "Epub'larda betiklenmiş içeriğe izin ver",
"LabelSettingsEpubsAllowScriptedContentHelp": "Epub dosyalarının betik çalıştırmasına izin verin. Epub dosyalarının kaynağına güvenmiyorsanız bu ayarı devre dışı bırakmanız önerilir.", "LabelSettingsEpubsAllowScriptedContentHelp": "Epub dosyalarının betik çalıştırmasına izin verin. Epub dosyalarının kaynağına güvenmiyorsanız bu ayarı devre dışı bırakmanız önerilir.",
@ -888,7 +888,7 @@
"MessageResetChaptersConfirm": "Bölümleri sıfırlamak ve yaptığınız değişiklikleri geri almak istediğinizden emin misiniz?", "MessageResetChaptersConfirm": "Bölümleri sıfırlamak ve yaptığınız değişiklikleri geri almak istediğinizden emin misiniz?",
"MessageRestoreBackupConfirm": "Şu tarihte oluşturulan yedeği geri yüklemek istediğinizden emin misiniz", "MessageRestoreBackupConfirm": "Şu tarihte oluşturulan yedeği geri yüklemek istediğinizden emin misiniz",
"MessageRestoreBackupWarning": "Bir yedeği geri yüklemek, /config konumundaki tüm veritabanının ve /metadata/items & /metadata/authors içindeki kapak resimlerinin üzerine yazacaktır.<br /><br />Yedekler, kütüphane klasörlerinizdeki hiçbir dosyayı değiştirmez. Sunucu ayarlarını kütüphane klasörlerinizde kapak resmi ve üst veri saklamak için etkinleştirdiyseniz, bunlar yedeklenmez veya üzerine yazılmaz.<br /><br />Sunucunuzu kullanan tüm istemciler otomatik olarak yenilenecektir.", "MessageRestoreBackupWarning": "Bir yedeği geri yüklemek, /config konumundaki tüm veritabanının ve /metadata/items & /metadata/authors içindeki kapak resimlerinin üzerine yazacaktır.<br /><br />Yedekler, kütüphane klasörlerinizdeki hiçbir dosyayı değiştirmez. Sunucu ayarlarını kütüphane klasörlerinizde kapak resmi ve üst veri saklamak için etkinleştirdiyseniz, bunlar yedeklenmez veya üzerine yazılmaz.<br /><br />Sunucunuzu kullanan tüm istemciler otomatik olarak yenilenecektir.",
"MessageScheduleLibraryScanNote": "Çoğu kullanıcı için bu ayarı pasif bırakması ve \"Kütüphanedeki değişiklikleri otomatik olarak izle\" seçeneğini aktif etmesi önerilir. O seçenek kütüphane dizinlerindeki herhangi bir değişikliği otomatik olarak tespit edecektir. Eğer dosya sisteminiz \"Kütüphanedeki değişiklikleri otomatik olarak izle\" yöntemini desteklemiyorsa (örn; NFS dosya sistemi) bu özelliği aktif edebilirsiniz.", "MessageScheduleLibraryScanNote": "Çoğu kullanıcı için, bu özelliği devre dışı bırakıp klasör izleyici ayarını etkin tutmaları önerilir. Klasör izleyici, kütüphane klasörlerinizdeki değişiklikleri otomatik olarak algılayacaktır. Klasör izleyici her dosya sistemi için (NFS gibi) çalışmaz, bu nedenle bunun yerine zamanlanmış kütüphane taramaları kullanılabilir.",
"MessageScheduleRunEveryWeekdayAtTime": "Her {0} günü saat {1}'de çalıştır", "MessageScheduleRunEveryWeekdayAtTime": "Her {0} günü saat {1}'de çalıştır",
"MessageSearchResultsFor": "Arama sonuçları", "MessageSearchResultsFor": "Arama sonuçları",
"MessageSelected": "{0} seçildi", "MessageSelected": "{0} seçildi",

View file

@ -436,9 +436,9 @@
"LabelLibraryFilterSublistEmpty": "没有 {0}", "LabelLibraryFilterSublistEmpty": "没有 {0}",
"LabelLibraryItem": "媒体库项目", "LabelLibraryItem": "媒体库项目",
"LabelLibraryName": "媒体库名称", "LabelLibraryName": "媒体库名称",
"LabelLibrarySortByProgress": "进度: 上次更新", "LabelLibrarySortByProgress": "收听进度: 上次收听时间",
"LabelLibrarySortByProgressFinished": "进度: 已完成", "LabelLibrarySortByProgressFinished": "收听进度: 已完成",
"LabelLibrarySortByProgressStarted": "进度: 已开始", "LabelLibrarySortByProgressStarted": "收听进度: 已开始",
"LabelLimit": "限制", "LabelLimit": "限制",
"LabelLineSpacing": "行间距", "LabelLineSpacing": "行间距",
"LabelListenAgain": "再次收听", "LabelListenAgain": "再次收听",

View file

@ -127,7 +127,7 @@ components:
duration: duration:
type: integer type: integer
format: int64 format: int64
description: Duration in minutes description: Duration in seconds
SeriesMetadata: SeriesMetadata:
type: object type: object

View file

@ -113,7 +113,7 @@ class AuthorController {
payload.lastFirst = Database.authorModel.getLastFirst(payload.name) payload.lastFirst = Database.authorModel.getLastFirst(payload.name)
} }
// Check if author name matches another author in the same library and merge the authors // Check if author name matches another author and merge the authors
let existingAuthor = null let existingAuthor = null
if (authorNameUpdate) { if (authorNameUpdate) {
existingAuthor = await Database.authorModel.findOne({ existingAuthor = await Database.authorModel.findOne({
@ -121,8 +121,7 @@ class AuthorController {
id: { id: {
[sequelize.Op.not]: req.author.id [sequelize.Op.not]: req.author.id
}, },
name: payload.name, name: payload.name
libraryId: req.author.libraryId
} }
}) })
} }

View file

@ -63,7 +63,7 @@ class MeController {
* @param {Response} res * @param {Response} res
*/ */
async getItemListeningSessions(req, res) { async getItemListeningSessions(req, res) {
const libraryItem = await Database.libraryItemModel.getExpandedById(req.params.libraryItemId) const libraryItem = await Database.libraryItemModel.findByPk(req.params.libraryItemId)
const episode = await Database.podcastEpisodeModel.findByPk(req.params.episodeId) const episode = await Database.podcastEpisodeModel.findByPk(req.params.episodeId)
if (!libraryItem || (libraryItem.isPodcast && !episode)) { if (!libraryItem || (libraryItem.isPodcast && !episode)) {
@ -71,12 +71,6 @@ class MeController {
return res.sendStatus(404) return res.sendStatus(404)
} }
// Check if user has access to this library item
if (!req.user.checkCanAccessLibraryItem(libraryItem)) {
Logger.error(`[MeController] User "${req.user.username}" attempted to access listening sessions for library item "${req.params.libraryItemId}" without access`)
return res.sendStatus(403)
}
const mediaItemId = episode?.id || libraryItem.mediaId const mediaItemId = episode?.id || libraryItem.mediaId
let listeningSessions = await this.getUserItemListeningSessionsHelper(req.user.id, mediaItemId) let listeningSessions = await this.getUserItemListeningSessionsHelper(req.user.id, mediaItemId)
@ -131,13 +125,6 @@ class MeController {
* @param {Response} res * @param {Response} res
*/ */
async removeMediaProgress(req, res) { async removeMediaProgress(req, res) {
// Verify the media progress belongs to the current user
const mediaProgress = req.user.mediaProgresses.find((mp) => mp.id === req.params.id)
if (!mediaProgress) {
Logger.error(`[MeController] Media progress not found or does not belong to user "${req.user.username}"`)
return res.sendStatus(404)
}
await Database.mediaProgressModel.removeById(req.params.id) await Database.mediaProgressModel.removeById(req.params.id)
req.user.mediaProgresses = req.user.mediaProgresses.filter((mp) => mp.id !== req.params.id) req.user.mediaProgresses = req.user.mediaProgresses.filter((mp) => mp.id !== req.params.id)
@ -205,16 +192,7 @@ class MeController {
* @param {Response} res * @param {Response} res
*/ */
async createBookmark(req, res) { async createBookmark(req, res) {
const libraryItem = await Database.libraryItemModel.getExpandedById(req.params.id) if (!(await Database.libraryItemModel.checkExistsById(req.params.id))) return res.sendStatus(404)
if (!libraryItem) {
return res.sendStatus(404)
}
// Check if user has access to this library item
if (!req.user.checkCanAccessLibraryItem(libraryItem)) {
Logger.error(`[MeController] User "${req.user.username}" attempted to create bookmark for library item "${req.params.id}" without access`)
return res.sendStatus(403)
}
const { time, title } = req.body const { time, title } = req.body
if (isNullOrNaN(time)) { if (isNullOrNaN(time)) {
@ -238,16 +216,7 @@ class MeController {
* @param {Response} res * @param {Response} res
*/ */
async updateBookmark(req, res) { async updateBookmark(req, res) {
const libraryItem = await Database.libraryItemModel.getExpandedById(req.params.id) if (!(await Database.libraryItemModel.checkExistsById(req.params.id))) return res.sendStatus(404)
if (!libraryItem) {
return res.sendStatus(404)
}
// Check if user has access to this library item
if (!req.user.checkCanAccessLibraryItem(libraryItem)) {
Logger.error(`[MeController] User "${req.user.username}" attempted to update bookmark for library item "${req.params.id}" without access`)
return res.sendStatus(403)
}
const { time, title } = req.body const { time, title } = req.body
if (isNullOrNaN(time)) { if (isNullOrNaN(time)) {
@ -276,16 +245,7 @@ class MeController {
* @param {Response} res * @param {Response} res
*/ */
async removeBookmark(req, res) { async removeBookmark(req, res) {
const libraryItem = await Database.libraryItemModel.getExpandedById(req.params.id) if (!(await Database.libraryItemModel.checkExistsById(req.params.id))) return res.sendStatus(404)
if (!libraryItem) {
return res.sendStatus(404)
}
// Check if user has access to this library item
if (!req.user.checkCanAccessLibraryItem(libraryItem)) {
Logger.error(`[MeController] User "${req.user.username}" attempted to remove bookmark for library item "${req.params.id}" without access`)
return res.sendStatus(403)
}
const time = Number(req.params.time) const time = Number(req.params.time)
if (isNaN(time)) { if (isNaN(time)) {

View file

@ -227,7 +227,7 @@ class BookFinder {
title = this.#removeAuthorFromTitle(title) title = this.#removeAuthorFromTitle(title)
const titleTransformers = [ const titleTransformers = [
[/(: |[,;_]| by ).*/g, ''], // Remove subtitle [/([,:;_]| by ).*/g, ''], // Remove subtitle
[/(^| )\d+k(bps)?( |$)/, ' '], // Remove bitrate [/(^| )\d+k(bps)?( |$)/, ' '], // Remove bitrate
[/ (2nd|3rd|\d+th)\s+ed(\.|ition)?/g, ''], // Remove edition [/ (2nd|3rd|\d+th)\s+ed(\.|ition)?/g, ''], // Remove edition
[/(^| |\.)(m4b|m4a|mp3)( |$)/g, ''], // Remove file-type [/(^| |\.)(m4b|m4a|mp3)( |$)/g, ''], // Remove file-type
@ -646,11 +646,11 @@ class BookFinder {
module.exports = new BookFinder() module.exports = new BookFinder()
function hasSubtitle(title) { function hasSubtitle(title) {
return title.includes(': ') || title.includes(' - ') return title.includes(':') || title.includes(' - ')
} }
function stripSubtitle(title) { function stripSubtitle(title) {
if (title.includes(': ')) { if (title.includes(':')) {
return title.split(': ')[0].trim() return title.split(':')[0].trim()
} else if (title.includes(' - ')) { } else if (title.includes(' - ')) {
return title.split(' - ')[0].trim() return title.split(' - ')[0].trim()
} }

View file

@ -782,14 +782,7 @@ class User extends Model {
error: 'Library item not found', error: 'Library item not found',
statusCode: 404 statusCode: 404
} }
} else if (libraryItem.mediaType !== 'book') {
Logger.error(`[User] createUpdateMediaProgress: library item ${progressPayload.libraryItemId} is not a book`)
return {
error: 'Library item is not a book',
statusCode: 400
}
} }
mediaItemId = libraryItem.media.id mediaItemId = libraryItem.media.id
mediaProgress = libraryItem.media.mediaProgresses?.[0] mediaProgress = libraryItem.media.mediaProgresses?.[0]
} }

View file

@ -22,7 +22,7 @@ function parseNfoMetadata(nfoText) {
switch (key) { switch (key) {
case 'title': case 'title':
{ {
const titleMatch = value.match(/^(.*?): (.*)$/) const titleMatch = value.match(/^(.*?):(.*)$/)
if (titleMatch) { if (titleMatch) {
metadata.title = titleMatch[1].trim() metadata.title = titleMatch[1].trim()
metadata.subtitle = titleMatch[2].trim() metadata.subtitle = titleMatch[2].trim()

View file

@ -236,7 +236,7 @@ module.exports = {
} else if (group === 'publishedDecades') { } else if (group === 'publishedDecades') {
const startYear = parseInt(value) const startYear = parseInt(value)
const endYear = parseInt(value, 10) + 9 const endYear = parseInt(value, 10) + 9
mediaWhere = Sequelize.where(Sequelize.literal('CAST(publishedYear AS INTEGER)'), { mediaWhere = Sequelize.where(Sequelize.literal('CAST(`book`.`publishedYear` AS INTEGER)'), {
[Sequelize.Op.between]: [startYear, endYear] [Sequelize.Op.between]: [startYear, endYear]
}) })
} }

View file

@ -1,636 +0,0 @@
const { expect } = require('chai')
const { Sequelize } = require('sequelize')
const sinon = require('sinon')
const Database = require('../../../server/Database')
const ApiRouter = require('../../../server/routers/ApiRouter')
const MeController = require('../../../server/controllers/MeController')
const Auth = require('../../../server/Auth')
const Logger = require('../../../server/Logger')
const SocketAuthority = require('../../../server/SocketAuthority')
describe('MeController - IDOR Security Tests', () => {
/** @type {ApiRouter} */
let apiRouter
beforeEach(async () => {
global.ServerSettings = {}
Database.sequelize = new Sequelize({ dialect: 'sqlite', storage: ':memory:', logging: false })
Database.sequelize.uppercaseFirst = (str) => (str ? `${str[0].toUpperCase()}${str.substr(1)}` : '')
await Database.buildModels()
// Create mock server object with required dependencies
const mockServer = {
auth: new Auth(),
playbackSessionManager: { sessions: [] },
abMergeManager: {},
backupManager: {},
podcastManager: {},
audioMetadataManager: {},
cronManager: {},
emailManager: {},
apiCacheManager: { middleware: (req, res, next) => next() }
}
apiRouter = new ApiRouter(mockServer)
sinon.stub(Logger, 'info')
sinon.stub(Logger, 'error')
sinon.stub(SocketAuthority, 'clientEmitter')
})
afterEach(async () => {
sinon.restore()
// Clear all tables
await Database.sequelize.sync({ force: true })
})
describe('removeMediaProgress - IDOR Protection', () => {
let user1, user2
let mediaProgress1, mediaProgress2
beforeEach(async () => {
// Create two users
user1 = await Database.userModel.create({
username: 'user1',
pash: 'hashed_password_1',
type: 'user',
isActive: true
})
user2 = await Database.userModel.create({
username: 'user2',
pash: 'hashed_password_2',
type: 'user',
isActive: true
})
// Create library and book
const library = await Database.libraryModel.create({ name: 'Test Library', mediaType: 'book' })
const libraryFolder = await Database.libraryFolderModel.create({ path: '/test', libraryId: library.id })
const book = await Database.bookModel.create({ title: 'Test Book', audioFiles: [], tags: [], narrators: [], genres: [], chapters: [] })
const libraryItem = await Database.libraryItemModel.create({
libraryFiles: [],
mediaId: book.id,
mediaType: 'book',
libraryId: library.id,
libraryFolderId: libraryFolder.id
})
// Create media progress for each user
mediaProgress1 = await Database.mediaProgressModel.create({
userId: user1.id,
mediaItemId: book.id,
mediaItemType: 'book',
duration: 1000,
currentTime: 500,
isFinished: false
})
mediaProgress2 = await Database.mediaProgressModel.create({
userId: user2.id,
mediaItemId: book.id,
mediaItemType: 'book',
duration: 1000,
currentTime: 300,
isFinished: false
})
// Load media progresses into users
user1.mediaProgresses = await user1.getMediaProgresses()
user2.mediaProgresses = await user2.getMediaProgresses()
})
it('should allow user to delete their own media progress', async () => {
const fakeReq = {
user: user1,
params: { id: mediaProgress1.id }
}
const fakeRes = {
sendStatus: sinon.spy(),
status: sinon.stub().returnsThis(),
send: sinon.spy()
}
await MeController.removeMediaProgress(fakeReq, fakeRes)
expect(fakeRes.sendStatus.calledWith(200)).to.be.true
// Verify media progress was deleted
const deletedProgress = await Database.mediaProgressModel.findByPk(mediaProgress1.id)
expect(deletedProgress).to.be.null
})
it('should prevent user from deleting another users media progress (IDOR)', async () => {
const fakeReq = {
user: user1,
params: { id: mediaProgress2.id } // Trying to delete user2's progress
}
const fakeRes = {
sendStatus: sinon.spy(),
status: sinon.stub().returnsThis(),
send: sinon.spy()
}
await MeController.removeMediaProgress(fakeReq, fakeRes)
expect(fakeRes.sendStatus.calledWith(404)).to.be.true
// Verify media progress was NOT deleted
const existingProgress = await Database.mediaProgressModel.findByPk(mediaProgress2.id)
expect(existingProgress).to.not.be.null
expect(existingProgress.userId).to.equal(user2.id)
})
it('should return 404 for non-existent media progress', async () => {
const fakeReq = {
user: user1,
params: { id: 'non-existent-id' }
}
const fakeRes = {
sendStatus: sinon.spy(),
status: sinon.stub().returnsThis(),
send: sinon.spy()
}
await MeController.removeMediaProgress(fakeReq, fakeRes)
expect(fakeRes.sendStatus.calledWith(404)).to.be.true
})
})
describe('Bookmark Operations - Authorization Checks', () => {
let user1, user2
let library1, library2
let libraryItem1, libraryItem2
beforeEach(async () => {
// Create two users with different library access
user1 = await Database.userModel.create({
username: 'user1',
pash: 'hashed_password_1',
type: 'user',
isActive: true,
librariesAccessible: null // Access to all libraries
})
user2 = await Database.userModel.create({
username: 'user2',
pash: 'hashed_password_2',
type: 'user',
isActive: true,
librariesAccessible: [] // Will be set to specific library
})
// Create two libraries
library1 = await Database.libraryModel.create({ name: 'Library 1', mediaType: 'book' })
library2 = await Database.libraryModel.create({ name: 'Library 2', mediaType: 'book' })
// User2 only has access to library1
user2.librariesAccessible = [library1.id]
await user2.save()
const libraryFolder1 = await Database.libraryFolderModel.create({ path: '/test1', libraryId: library1.id })
const libraryFolder2 = await Database.libraryFolderModel.create({ path: '/test2', libraryId: library2.id })
const book1 = await Database.bookModel.create({ title: 'Book 1', audioFiles: [], tags: [], narrators: [], genres: [], chapters: [] })
const book2 = await Database.bookModel.create({ title: 'Book 2', audioFiles: [], tags: [], narrators: [], genres: [], chapters: [] })
libraryItem1 = await Database.libraryItemModel.create({
libraryFiles: [],
mediaId: book1.id,
mediaType: 'book',
libraryId: library1.id,
libraryFolderId: libraryFolder1.id
})
libraryItem2 = await Database.libraryItemModel.create({
libraryFiles: [],
mediaId: book2.id,
mediaType: 'book',
libraryId: library2.id,
libraryFolderId: libraryFolder2.id
})
// Initialize bookmarks
user1.bookmarks = []
user2.bookmarks = []
})
describe('createBookmark', () => {
it('should allow user to create bookmark for accessible library item', async () => {
const expandedItem = await Database.libraryItemModel.getExpandedById(libraryItem1.id)
const bookmark = { libraryItemId: libraryItem1.id, time: 100, title: 'Test Bookmark', createdAt: Date.now() }
const fakeReq = {
user: {
...user2.toJSON(),
id: user2.id,
username: user2.username,
checkCanAccessLibraryItem: () => true,
createBookmark: sinon.stub().resolves(bookmark),
toOldJSONForBrowser: () => ({ id: user2.id, username: user2.username })
},
params: { id: libraryItem1.id },
body: { time: 100, title: 'Test Bookmark' }
}
const fakeRes = {
sendStatus: sinon.spy(),
status: sinon.stub().returnsThis(),
send: sinon.spy(),
json: sinon.spy()
}
sinon.stub(Database.libraryItemModel, 'getExpandedById').resolves(expandedItem)
await MeController.createBookmark(fakeReq, fakeRes)
expect(fakeRes.json.calledOnce).to.be.true
expect(fakeRes.json.calledWith(bookmark)).to.be.true
Database.libraryItemModel.getExpandedById.restore()
})
it('should prevent user from creating bookmark for inaccessible library item (IDOR)', async () => {
const expandedItem = await Database.libraryItemModel.getExpandedById(libraryItem2.id)
const fakeReq = {
user: user2, // user2 doesn't have access to library2
params: { id: libraryItem2.id },
body: { time: 100, title: 'Test Bookmark' }
}
const fakeRes = {
sendStatus: sinon.spy(),
status: sinon.stub().returnsThis(),
send: sinon.spy(),
json: sinon.spy()
}
// Mock getExpandedById
sinon.stub(Database.libraryItemModel, 'getExpandedById').resolves(expandedItem)
await MeController.createBookmark(fakeReq, fakeRes)
expect(fakeRes.sendStatus.calledWith(403)).to.be.true
expect(fakeRes.json.called).to.be.false
Database.libraryItemModel.getExpandedById.restore()
})
it('should return 404 for non-existent library item', async () => {
const fakeReq = {
user: user1,
params: { id: 'non-existent-id' },
body: { time: 100, title: 'Test Bookmark' }
}
const fakeRes = {
sendStatus: sinon.spy(),
status: sinon.stub().returnsThis(),
send: sinon.spy(),
json: sinon.spy()
}
// Mock getExpandedById to return null
sinon.stub(Database.libraryItemModel, 'getExpandedById').resolves(null)
await MeController.createBookmark(fakeReq, fakeRes)
expect(fakeRes.sendStatus.calledWith(404)).to.be.true
Database.libraryItemModel.getExpandedById.restore()
})
it('should validate bookmark time parameter', async () => {
const expandedItem = await Database.libraryItemModel.getExpandedById(libraryItem1.id)
const fakeReq = {
user: {
...user1.toJSON(),
id: user1.id,
username: user1.username,
checkCanAccessLibraryItem: () => true
},
params: { id: libraryItem1.id },
body: { time: null, title: 'Test Bookmark' } // null time is invalid
}
const fakeRes = {
sendStatus: sinon.spy(),
status: sinon.stub().returnsThis(),
send: sinon.spy(),
json: sinon.spy()
}
sinon.stub(Database.libraryItemModel, 'getExpandedById').resolves(expandedItem)
await MeController.createBookmark(fakeReq, fakeRes)
expect(fakeRes.status.calledWith(400)).to.be.true
expect(fakeRes.send.calledWith('Invalid time')).to.be.true
Database.libraryItemModel.getExpandedById.restore()
})
})
describe('updateBookmark', () => {
beforeEach(async () => {
// Add existing bookmark to user1
user1.bookmarks = [{ libraryItemId: libraryItem1.id, time: 100, title: 'Original Title' }]
await user1.save()
})
it('should allow user to update bookmark for accessible library item', async () => {
const expandedItem = await Database.libraryItemModel.getExpandedById(libraryItem1.id)
const bookmark = { libraryItemId: libraryItem1.id, time: 100, title: 'Updated Title' }
const fakeReq = {
user: {
...user1.toJSON(),
id: user1.id,
username: user1.username,
checkCanAccessLibraryItem: () => true,
updateBookmark: sinon.stub().resolves(bookmark),
toOldJSONForBrowser: () => ({ id: user1.id, username: user1.username })
},
params: { id: libraryItem1.id },
body: { time: 100, title: 'Updated Title' }
}
const fakeRes = {
sendStatus: sinon.spy(),
status: sinon.stub().returnsThis(),
send: sinon.spy(),
json: sinon.spy()
}
sinon.stub(Database.libraryItemModel, 'getExpandedById').resolves(expandedItem)
await MeController.updateBookmark(fakeReq, fakeRes)
expect(fakeRes.json.calledOnce).to.be.true
expect(fakeRes.json.calledWith(bookmark)).to.be.true
Database.libraryItemModel.getExpandedById.restore()
})
it('should prevent user from updating bookmark for inaccessible library item (IDOR)', async () => {
const expandedItem = await Database.libraryItemModel.getExpandedById(libraryItem2.id)
const fakeReq = {
user: user2, // user2 doesn't have access to library2
params: { id: libraryItem2.id },
body: { time: 100, title: 'Updated Title' }
}
const fakeRes = {
sendStatus: sinon.spy(),
status: sinon.stub().returnsThis(),
send: sinon.spy(),
json: sinon.spy()
}
sinon.stub(Database.libraryItemModel, 'getExpandedById').resolves(expandedItem)
await MeController.updateBookmark(fakeReq, fakeRes)
expect(fakeRes.sendStatus.calledWith(403)).to.be.true
Database.libraryItemModel.getExpandedById.restore()
})
})
describe('removeBookmark', () => {
beforeEach(async () => {
// Add existing bookmark to user1
user1.bookmarks = [{ libraryItemId: libraryItem1.id, time: 100, title: 'Test Bookmark' }]
await user1.save()
})
it('should allow user to remove bookmark for accessible library item', async () => {
const expandedItem = await Database.libraryItemModel.getExpandedById(libraryItem1.id)
const fakeReq = {
user: {
...user1.toJSON(),
id: user1.id,
username: user1.username,
checkCanAccessLibraryItem: () => true,
findBookmark: sinon.stub().returns({ libraryItemId: libraryItem1.id, time: 100, title: 'Test Bookmark' }),
removeBookmark: sinon.stub().resolves(true),
toOldJSONForBrowser: () => ({ id: user1.id, username: user1.username })
},
params: { id: libraryItem1.id, time: '100' }
}
const fakeRes = {
sendStatus: sinon.spy(),
status: sinon.stub().returnsThis(),
send: sinon.spy()
}
sinon.stub(Database.libraryItemModel, 'getExpandedById').resolves(expandedItem)
await MeController.removeBookmark(fakeReq, fakeRes)
expect(fakeRes.sendStatus.calledWith(200)).to.be.true
Database.libraryItemModel.getExpandedById.restore()
})
it('should prevent user from removing bookmark for inaccessible library item (IDOR)', async () => {
const expandedItem = await Database.libraryItemModel.getExpandedById(libraryItem2.id)
const fakeReq = {
user: user2, // user2 doesn't have access to library2
params: { id: libraryItem2.id, time: '100' }
}
const fakeRes = {
sendStatus: sinon.spy(),
status: sinon.stub().returnsThis(),
send: sinon.spy()
}
sinon.stub(Database.libraryItemModel, 'getExpandedById').resolves(expandedItem)
await MeController.removeBookmark(fakeReq, fakeRes)
expect(fakeRes.sendStatus.calledWith(403)).to.be.true
Database.libraryItemModel.getExpandedById.restore()
})
it('should validate time parameter is a number', async () => {
const expandedItem = await Database.libraryItemModel.getExpandedById(libraryItem1.id)
const fakeReq = {
user: {
...user1.toJSON(),
id: user1.id,
username: user1.username,
checkCanAccessLibraryItem: () => true
},
params: { id: libraryItem1.id, time: 'not-a-number' }
}
const fakeRes = {
sendStatus: sinon.spy(),
status: sinon.stub().returnsThis(),
send: sinon.spy()
}
sinon.stub(Database.libraryItemModel, 'getExpandedById').resolves(expandedItem)
await MeController.removeBookmark(fakeReq, fakeRes)
expect(fakeRes.status.calledWith(400)).to.be.true
expect(fakeRes.send.calledWith('Invalid time')).to.be.true
Database.libraryItemModel.getExpandedById.restore()
})
})
})
describe('getItemListeningSessions - Authorization Check', () => {
let user1, user2
let library1, library2
let libraryItem1, libraryItem2
beforeEach(async () => {
// Create two users with different library access
user1 = await Database.userModel.create({
username: 'user1',
pash: 'hashed_password_1',
type: 'user',
isActive: true,
librariesAccessible: null // Access to all libraries
})
user2 = await Database.userModel.create({
username: 'user2',
pash: 'hashed_password_2',
type: 'user',
isActive: true,
librariesAccessible: [] // Will be set to specific library
})
// Create two libraries
library1 = await Database.libraryModel.create({ name: 'Library 1', mediaType: 'book' })
library2 = await Database.libraryModel.create({ name: 'Library 2', mediaType: 'book' })
// User2 only has access to library1
user2.librariesAccessible = [library1.id]
await user2.save()
const libraryFolder1 = await Database.libraryFolderModel.create({ path: '/test1', libraryId: library1.id })
const libraryFolder2 = await Database.libraryFolderModel.create({ path: '/test2', libraryId: library2.id })
const book1 = await Database.bookModel.create({ title: 'Book 1', audioFiles: [], tags: [], narrators: [], genres: [], chapters: [] })
const book2 = await Database.bookModel.create({ title: 'Book 2', audioFiles: [], tags: [], narrators: [], genres: [], chapters: [] })
libraryItem1 = await Database.libraryItemModel.create({
libraryFiles: [],
mediaId: book1.id,
mediaType: 'book',
libraryId: library1.id,
libraryFolderId: libraryFolder1.id
})
libraryItem2 = await Database.libraryItemModel.create({
libraryFiles: [],
mediaId: book2.id,
mediaType: 'book',
libraryId: library2.id,
libraryFolderId: libraryFolder2.id
})
})
it('should allow user to view listening sessions for accessible library item', async () => {
const expandedItem = await Database.libraryItemModel.getExpandedById(libraryItem1.id)
// Create mock context with getUserItemListeningSessionsHelper
const mockContext = {
getUserItemListeningSessionsHelper: sinon.stub().resolves([{ id: 'session1', timeListening: 300, startedAt: Date.now() }])
}
const fakeReq = {
user: {
...user1.toJSON(),
id: user1.id,
username: user1.username,
checkCanAccessLibraryItem: () => true
},
params: { libraryItemId: libraryItem1.id },
query: {}
}
const fakeRes = {
sendStatus: sinon.spy(),
status: sinon.stub().returnsThis(),
send: sinon.spy(),
json: sinon.spy()
}
sinon.stub(Database.libraryItemModel, 'getExpandedById').resolves(expandedItem)
sinon.stub(Database.podcastEpisodeModel, 'findByPk').resolves(null)
await MeController.getItemListeningSessions.bind(mockContext)(fakeReq, fakeRes)
expect(fakeRes.json.calledOnce).to.be.true
expect(fakeRes.sendStatus.called).to.be.false
// Verify the payload structure
const payload = fakeRes.json.firstCall.args[0]
expect(payload).to.have.property('total')
expect(payload).to.have.property('sessions')
Database.libraryItemModel.getExpandedById.restore()
Database.podcastEpisodeModel.findByPk.restore()
})
it('should prevent user from viewing listening sessions for inaccessible library item (IDOR)', async () => {
const expandedItem = await Database.libraryItemModel.getExpandedById(libraryItem2.id)
const fakeReq = {
user: user2, // user2 doesn't have access to library2
params: { libraryItemId: libraryItem2.id },
query: {}
}
const fakeRes = {
sendStatus: sinon.spy(),
status: sinon.stub().returnsThis(),
send: sinon.spy(),
json: sinon.spy()
}
sinon.stub(Database.libraryItemModel, 'getExpandedById').resolves(expandedItem)
sinon.stub(Database.podcastEpisodeModel, 'findByPk').resolves(null)
await MeController.getItemListeningSessions.bind(apiRouter)(fakeReq, fakeRes)
expect(fakeRes.sendStatus.calledWith(403)).to.be.true
expect(fakeRes.json.called).to.be.false
Database.libraryItemModel.getExpandedById.restore()
Database.podcastEpisodeModel.findByPk.restore()
})
it('should return 404 for non-existent library item', async () => {
const fakeReq = {
user: user1,
params: { libraryItemId: 'non-existent-id' },
query: {}
}
const fakeRes = {
sendStatus: sinon.spy(),
status: sinon.stub().returnsThis(),
send: sinon.spy(),
json: sinon.spy()
}
sinon.stub(Database.libraryItemModel, 'getExpandedById').resolves(null)
await MeController.getItemListeningSessions.bind(apiRouter)(fakeReq, fakeRes)
expect(fakeRes.sendStatus.calledWith(404)).to.be.true
Database.libraryItemModel.getExpandedById.restore()
})
})
})

View file

@ -35,10 +35,7 @@ describe('TitleCandidates', () => {
['adds candidate, removing author', `anna karenina by ${cleanAuthor}`, ['anna karenina']], ['adds candidate, removing author', `anna karenina by ${cleanAuthor}`, ['anna karenina']],
['does not add empty candidate after removing author', cleanAuthor, []], ['does not add empty candidate after removing author', cleanAuthor, []],
['adds candidate, removing subtitle', 'anna karenina: subtitle', ['anna karenina']], ['adds candidate, removing subtitle', 'anna karenina: subtitle', ['anna karenina']],
['adds candidate, not stripping subtitle for bare colon in title', '10:04', ['10:04']],
['adds candidate, not stripping subtitle for colon between words without space', 'making the mission:impossible movies', ['making the mission:impossible movies']],
['adds candidate + variant, removing "by ..."', 'anna karenina by arnold schwarzenegger', ['anna karenina', 'anna karenina by arnold schwarzenegger']], ['adds candidate + variant, removing "by ..."', 'anna karenina by arnold schwarzenegger', ['anna karenina', 'anna karenina by arnold schwarzenegger']],
['adds candidate + variant, removing "by ..." when title has bare colon', '10:04 by ben lerner', ['10:04', '10:04 by ben lerner']],
['adds candidate + variant, removing bitrate', 'anna karenina 64kbps', ['anna karenina', 'anna karenina 64kbps']], ['adds candidate + variant, removing bitrate', 'anna karenina 64kbps', ['anna karenina', 'anna karenina 64kbps']],
['adds candidate + variant, removing edition 1', 'anna karenina 2nd edition', ['anna karenina', 'anna karenina 2nd edition']], ['adds candidate + variant, removing edition 1', 'anna karenina 2nd edition', ['anna karenina', 'anna karenina 2nd edition']],
['adds candidate + variant, removing edition 2', 'anna karenina 4th ed.', ['anna karenina', 'anna karenina 4th ed.']], ['adds candidate + variant, removing edition 2', 'anna karenina 4th ed.', ['anna karenina', 'anna karenina 4th ed.']],

View file

@ -21,20 +21,6 @@ describe('parseNfoMetadata', () => {
expect(result.subtitle).to.equal('A Novel') expect(result.subtitle).to.equal('A Novel')
}) })
it('does not split title on bare colon without space', () => {
const nfoText = 'Title: 10:04'
const result = parseNfoMetadata(nfoText)
expect(result.title).to.equal('10:04')
expect(result.subtitle).to.be.undefined
})
it('does not split title on colon between words without space', () => {
const nfoText = 'Title: Making the Mission:Impossible Movies'
const result = parseNfoMetadata(nfoText)
expect(result.title).to.equal('Making the Mission:Impossible Movies')
expect(result.subtitle).to.be.undefined
})
it('parses authors', () => { it('parses authors', () => {
const nfoText = 'Author: F. Scott Fitzgerald' const nfoText = 'Author: F. Scott Fitzgerald'
const result = parseNfoMetadata(nfoText) const result = parseNfoMetadata(nfoText)