mirror of
https://github.com/advplyr/audiobookshelf.git
synced 2025-12-31 11:38:47 -05:00
Compare commits
58 Commits
check_path
...
clean_dupl
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
81640464ba | ||
|
|
e669a8d378 | ||
|
|
8e01859075 | ||
|
|
84c9c6cb50 | ||
|
|
704c6f7bde | ||
|
|
f01055f6e6 | ||
|
|
759c58d3f7 | ||
|
|
357176b301 | ||
|
|
9bb4dc3ab0 | ||
|
|
709c33f27a | ||
|
|
4d846e225a | ||
|
|
5dc6d613bd | ||
|
|
63ccdb68f0 | ||
|
|
424ef1aec3 | ||
|
|
b6995ba5d1 | ||
|
|
9968743a93 | ||
|
|
c377b57601 | ||
|
|
262d0b46e3 | ||
|
|
32fc4f6555 | ||
|
|
81572adab6 | ||
|
|
1ad2e71fd5 | ||
|
|
db66b9eaeb | ||
|
|
28c2e62e61 | ||
|
|
96401c377c | ||
|
|
9d45880b37 | ||
|
|
9052ceedd3 | ||
|
|
4968864498 | ||
|
|
f44c2d9e11 | ||
|
|
0c8e334b1a | ||
|
|
abaa7b5ad0 | ||
|
|
df01e493ec | ||
|
|
949c8ce230 | ||
|
|
9eaa0c26cd | ||
|
|
d71f091e3e | ||
|
|
2589121908 | ||
|
|
ff425212e7 | ||
|
|
243baaf775 | ||
|
|
7275b1063b | ||
|
|
4fd97510b8 | ||
|
|
6e67b1d9dd | ||
|
|
0fc6afec26 | ||
|
|
c950ac7d69 | ||
|
|
8979e19e92 | ||
|
|
6a51cb07e8 | ||
|
|
846a8c3881 | ||
|
|
0cd698cc8d | ||
|
|
13d9462868 | ||
|
|
d8e2ff8b0e | ||
|
|
35c2a5c1a3 | ||
|
|
19dc096d22 | ||
|
|
535ebc10f0 | ||
|
|
7486a0659b | ||
|
|
273866fe92 | ||
|
|
6425d95deb | ||
|
|
68a39449a2 | ||
|
|
8e08458ea2 | ||
|
|
1119ddef8a | ||
|
|
3d0219a866 |
@@ -276,6 +276,11 @@ export default {
|
||||
text: this.$strings.ButtonIssues,
|
||||
value: 'issues',
|
||||
sublist: false
|
||||
},
|
||||
{
|
||||
text: this.$strings.LabelRSSFeedOpen,
|
||||
value: 'feed-open',
|
||||
sublist: false
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</trix-toolbar>
|
||||
<trix-editor :toolbar="toolbarId" :contenteditable="!disabledEditor" :class="['trix-content']" ref="trix" :input="computedId" :placeholder="placeholder" @trix-change="handleContentChange" @trix-initialize="handleInitialize" @trix-focus="processTrixFocus" @trix-blur="processTrixBlur" />
|
||||
<trix-editor :toolbar="toolbarId" :contenteditable="!disabledEditor" :class="['trix-content']" ref="trix" :input="computedId" :placeholder="placeholder" @trix-change="handleContentChange" @trix-initialize="handleInitialize" @trix-focus="processTrixFocus" @trix-blur="processTrixBlur" @trix-attachment-add="handleAttachmentAdd" />
|
||||
<input type="hidden" :name="inputName" :id="computedId" :value="editorContent" />
|
||||
</div>
|
||||
</template>
|
||||
@@ -316,6 +316,10 @@ export default {
|
||||
if (this.$refs.trix && this.$refs.trix.blur) {
|
||||
this.$refs.trix.blur()
|
||||
}
|
||||
},
|
||||
handleAttachmentAdd(event) {
|
||||
// Prevent pasting in images/any files from the browser
|
||||
event.attachment.remove()
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
|
||||
@@ -143,10 +143,18 @@ export default {
|
||||
localStorage.setItem('embedMetadataCodec', val)
|
||||
},
|
||||
getEncodingOptions() {
|
||||
return {
|
||||
codec: this.selectedCodec || 'aac',
|
||||
bitrate: this.selectedBitrate || '128k',
|
||||
channels: this.selectedChannels || 2
|
||||
if (this.showAdvancedView) {
|
||||
return {
|
||||
codec: this.customCodec || this.selectedCodec || 'aac',
|
||||
bitrate: this.customBitrate || this.selectedBitrate || '128k',
|
||||
channels: this.customChannels || this.selectedChannels || 2
|
||||
}
|
||||
} else {
|
||||
return {
|
||||
codec: this.selectedCodec || 'aac',
|
||||
bitrate: this.selectedBitrate || '128k',
|
||||
channels: this.selectedChannels || 2
|
||||
}
|
||||
}
|
||||
},
|
||||
setPreset() {
|
||||
|
||||
@@ -248,4 +248,4 @@ export default {
|
||||
transform: scale(0);
|
||||
}
|
||||
}
|
||||
</style>
|
||||
</style>
|
||||
|
||||
@@ -109,4 +109,4 @@ export default {
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
</script>
|
||||
|
||||
4
client/package-lock.json
generated
4
client/package-lock.json
generated
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "audiobookshelf-client",
|
||||
"version": "2.23.0",
|
||||
"version": "2.24.0",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "audiobookshelf-client",
|
||||
"version": "2.23.0",
|
||||
"version": "2.24.0",
|
||||
"license": "ISC",
|
||||
"dependencies": {
|
||||
"@nuxtjs/axios": "^5.13.6",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "audiobookshelf-client",
|
||||
"version": "2.23.0",
|
||||
"version": "2.24.0",
|
||||
"buildNumber": 1,
|
||||
"description": "Self-hosted audiobook and podcast client",
|
||||
"main": "index.js",
|
||||
|
||||
@@ -356,6 +356,8 @@ export default {
|
||||
|
||||
const encodeOptions = this.$refs.encoderOptionsCard.getEncodingOptions()
|
||||
|
||||
this.encodingOptions = encodeOptions
|
||||
|
||||
const queryParams = new URLSearchParams(encodeOptions)
|
||||
|
||||
this.processing = true
|
||||
|
||||
@@ -819,6 +819,17 @@ export default {
|
||||
-webkit-line-clamp: 4;
|
||||
max-height: calc(6 * 1lh);
|
||||
}
|
||||
|
||||
/* Safari-specific fix for the description clamping */
|
||||
@supports (-webkit-touch-callout: none) {
|
||||
#item-description {
|
||||
position: relative;
|
||||
display: block;
|
||||
overflow: hidden;
|
||||
max-height: calc(6 * 1lh);
|
||||
}
|
||||
}
|
||||
|
||||
#item-description.show-full {
|
||||
-webkit-line-clamp: unset;
|
||||
max-height: 999rem;
|
||||
|
||||
@@ -5,6 +5,7 @@ import { supplant } from './utils'
|
||||
const defaultCode = 'en-us'
|
||||
|
||||
const languageCodeMap = {
|
||||
ar: { label: 'عربي', dateFnsLocale: 'ar' },
|
||||
bg: { label: 'Български', dateFnsLocale: 'bg' },
|
||||
bn: { label: 'বাংলা', dateFnsLocale: 'bn' },
|
||||
ca: { label: 'Català', dateFnsLocale: 'ca' },
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -177,6 +177,7 @@
|
||||
"HeaderPlaylist": "Плейлист",
|
||||
"HeaderPlaylistItems": "Елементи от плейлист",
|
||||
"HeaderPodcastsToAdd": "Подкасти за Добавяне",
|
||||
"HeaderPresets": "Настройки по подразбиране",
|
||||
"HeaderPreviewCover": "Преглед на Корица",
|
||||
"HeaderRSSFeedGeneral": "RSS подробности",
|
||||
"HeaderRSSFeedIsOpen": "RSS емисията е отворена",
|
||||
@@ -219,6 +220,7 @@
|
||||
"LabelAccountTypeAdmin": "Администратор",
|
||||
"LabelAccountTypeGuest": "Гост",
|
||||
"LabelAccountTypeUser": "Потребител",
|
||||
"LabelActivities": "Дейности",
|
||||
"LabelActivity": "Дейност",
|
||||
"LabelAddToCollection": "Добави в Колекция",
|
||||
"LabelAddToCollectionBatch": "Добави {0} Книги в Колекция",
|
||||
@@ -253,7 +255,7 @@
|
||||
"LabelBackupLocation": "Местоположение на Архив",
|
||||
"LabelBackupsEnableAutomaticBackups": "Включи автоматично архивиране",
|
||||
"LabelBackupsEnableAutomaticBackupsHelp": "Архиви запазени в /metadata/backups",
|
||||
"LabelBackupsMaxBackupSize": "Максимален размер на архива (в GB)",
|
||||
"LabelBackupsMaxBackupSize": "Максимален размер на архива (в GB) (0 за неограничен)",
|
||||
"LabelBackupsMaxBackupSizeHelp": "За защита срещу грешки в конфигурацията, архивите ще се провалят ако надхвърлят конфигурирания размер.",
|
||||
"LabelBackupsNumberToKeep": "Брой архиви за запазване",
|
||||
"LabelBackupsNumberToKeepHelp": "Само 1 архив ще бъде премахнат на веднъж, така че ако вече имате повече архиви от това трябва да ги премахнете ръчно.",
|
||||
@@ -283,6 +285,7 @@
|
||||
"LabelContinueSeries": "Продължи серии",
|
||||
"LabelCover": "Корица",
|
||||
"LabelCoverImageURL": "URL на Корица",
|
||||
"LabelCoverProvider": "Източник за обложки",
|
||||
"LabelCreatedAt": "Създадено на",
|
||||
"LabelCronExpression": "Cron израз",
|
||||
"LabelCurrent": "Текущо",
|
||||
@@ -325,11 +328,20 @@
|
||||
"LabelEncodingClearItemCache": "Уверете се, че периодично изчиствате кеша на елементите.",
|
||||
"LabelEncodingFinishedM4B": "Завършеният M4B файл ще бъде поставен в папката на вашите аудиокниги на:",
|
||||
"LabelEncodingInfoEmbedded": "Метаданните ще бъдат вградени в аудио траковете в папката на вашите аудиокниги.",
|
||||
"LabelEncodingStartedNavigation": "Когато задачата е стартирана, можете да смените тази страница.",
|
||||
"LabelEncodingTimeWarning": "Кодирането може да отнеме до 30 минути.",
|
||||
"LabelEncodingWarningAdvancedSettings": "Внимание: Не променяйте тези настройки, ако не сте запознати с ffmpeg настройките за кодиране.",
|
||||
"LabelEncodingWatcherDisabled": "Ако сте изключили наблюдението на папки, ще е нужно да сканирате повторно аудио книгата.",
|
||||
"LabelEnd": "Край",
|
||||
"LabelEndOfChapter": "Край на глава",
|
||||
"LabelEpisode": "Епизод",
|
||||
"LabelEpisodeNotLinkedToRssFeed": "Епизодът не е свързан с RSS канал",
|
||||
"LabelEpisodeNumber": "Епизод #{0}",
|
||||
"LabelEpisodeTitle": "Заглавие на Епизод",
|
||||
"LabelEpisodeType": "Тип на Епизод",
|
||||
"LabelEpisodeUrlFromRssFeed": "URL адрес на епизод от RSS канал",
|
||||
"LabelEpisodes": "Епизоди",
|
||||
"LabelEpisodic": "Епизодичен",
|
||||
"LabelExample": "Пример",
|
||||
"LabelExpandSeries": "Покажи сериите",
|
||||
"LabelExpandSubSeries": "Покажи съб сериите",
|
||||
@@ -341,7 +353,9 @@
|
||||
"LabelFetchingMetadata": "Взимане на Метаданни",
|
||||
"LabelFile": "Файл",
|
||||
"LabelFileBirthtime": "Дата на създаване на файла",
|
||||
"LabelFileBornDate": "Роден {0}",
|
||||
"LabelFileModified": "Дата на модификация на файла",
|
||||
"LabelFileModifiedDate": "Променен {0}",
|
||||
"LabelFilename": "Име на файла",
|
||||
"LabelFilterByUser": "Филтриране по Потребител",
|
||||
"LabelFindEpisodes": "Намери Епизоди",
|
||||
@@ -355,14 +369,17 @@
|
||||
"LabelFontScale": "Мащаб на шрифта",
|
||||
"LabelFontStrikethrough": "Зачертан",
|
||||
"LabelFormat": "Формат",
|
||||
"LabelFull": "Пълен",
|
||||
"LabelGenre": "Жанр",
|
||||
"LabelGenres": "Жанрове",
|
||||
"LabelHardDeleteFile": "Пълно Изтриване на Файл",
|
||||
"LabelHasEbook": "Има е-книга",
|
||||
"LabelHasSupplementaryEbook": "Има допълнителна е-книга",
|
||||
"LabelHideSubtitles": "Скрий субтитри",
|
||||
"LabelHighestPriority": "Най-висок Приоритет",
|
||||
"LabelHost": "Хост",
|
||||
"LabelHour": "Час",
|
||||
"LabelHours": "Часа",
|
||||
"LabelIcon": "Икона",
|
||||
"LabelImageURLFromTheWeb": "URL на Изображение от Интернет",
|
||||
"LabelInProgress": "В процес на изпълнение",
|
||||
@@ -377,8 +394,11 @@
|
||||
"LabelIntervalEvery6Hours": "Всеки 6 часа",
|
||||
"LabelIntervalEveryDay": "Всеки ден",
|
||||
"LabelIntervalEveryHour": "Всеки час",
|
||||
"LabelIntervalEveryMinute": "Всяка минута",
|
||||
"LabelInvert": "Обърни",
|
||||
"LabelItem": "Елемент",
|
||||
"LabelJumpBackwardAmount": "Количество за прескачане назад",
|
||||
"LabelJumpForwardAmount": "Количество за прескачане напред",
|
||||
"LabelLanguage": "Език",
|
||||
"LabelLanguageDefaultServer": "Език по подразбиране на сървъра",
|
||||
"LabelLanguages": "Езици",
|
||||
@@ -393,6 +413,7 @@
|
||||
"LabelLess": "По-малко",
|
||||
"LabelLibrariesAccessibleToUser": "Библиотеки Достъпни за Потребителя",
|
||||
"LabelLibrary": "Библиотека",
|
||||
"LabelLibraryFilterSublistEmpty": "Не {0}",
|
||||
"LabelLibraryItem": "Елемент на Библиотека",
|
||||
"LabelLibraryName": "Име на Библиотека",
|
||||
"LabelLimit": "Лимит",
|
||||
@@ -405,6 +426,10 @@
|
||||
"LabelLowestPriority": "Най-нисък Приоритет",
|
||||
"LabelMatchExistingUsersBy": "Съпостави съществуващи потребители по",
|
||||
"LabelMatchExistingUsersByDescription": "Използва се за свързване на съществуващи потребители. След свързване потребителите ще бъдат съпоставени по уникален идентификатор от вашия доставчик на SSO",
|
||||
"LabelMaxEpisodesToDownload": "Максимален брой епизоди за сваляне. Използвай 0 за неограничен.",
|
||||
"LabelMaxEpisodesToDownloadPerCheck": "Максимален брой нови епизоди за сваляне за проверка",
|
||||
"LabelMaxEpisodesToKeep": "Максимален брой епизоди за запазване",
|
||||
"LabelMaxEpisodesToKeepHelp": "Стойност 0 указва без максимален лимит. След като нов епизод е автоматично свален, най-старият епизод ще бъде изтрит, ако имате повече от X епизода. Само по един епизод ще бъде изтриван за всеки нов свален такъв.",
|
||||
"LabelMediaPlayer": "Медия Плейър",
|
||||
"LabelMediaType": "Тип медия",
|
||||
"LabelMetaTag": "Мета Таг",
|
||||
@@ -412,6 +437,7 @@
|
||||
"LabelMetadataOrderOfPrecedenceDescription": "По-високите източници на метаданни ще заменят по-ниските",
|
||||
"LabelMetadataProvider": "Доставчик на Метаданни",
|
||||
"LabelMinute": "Минута",
|
||||
"LabelMinutes": "Минути",
|
||||
"LabelMissing": "Липсващо",
|
||||
"LabelMissingEbook": "Няма електронна книга",
|
||||
"LabelMissingSupplementaryEbook": "Няма допълнителна електронна книга",
|
||||
@@ -449,11 +475,14 @@
|
||||
"LabelOpenIDGroupClaimDescription": "Име на OpenID твърдението, което съдържа списък с групите на потребителя. Обикновено се нарича <code>groups</code>. <b>Ако е конфигурирано</b>, приложението автоматично ще присвоява роли въз основа на членството на потребителя в групи, при условие че тези групи са наименувани без чувствителност към регистъра като 'admin', 'user' или 'guest' в твърдението. Твърдението трябва да съдържа списък и ако потребителят принадлежи към множество групи, приложението ще присвои ролята, съответстваща на най-високото ниво на достъп. Ако няма съвпадение с група, достъпът ще бъде отказан.",
|
||||
"LabelOpenRSSFeed": "Отвори RSS Feed",
|
||||
"LabelOverwrite": "Презапиши",
|
||||
"LabelPaginationPageXOfY": "Страница {0} от {1}",
|
||||
"LabelPassword": "Парола",
|
||||
"LabelPath": "Път",
|
||||
"LabelPermanent": "Постоянен",
|
||||
"LabelPermissionsAccessAllLibraries": "Може да достъпи до всички библиотеки",
|
||||
"LabelPermissionsAccessAllTags": "Може да достъпи всички тагове",
|
||||
"LabelPermissionsAccessExplicitContent": "Може да достъпи експлицитно съдържание",
|
||||
"LabelPermissionsCreateEreader": "Може да създава електронен четец",
|
||||
"LabelPermissionsDelete": "Може да трие",
|
||||
"LabelPermissionsDownload": "Може да сваля",
|
||||
"LabelPermissionsUpdate": "Може да обновява",
|
||||
@@ -461,6 +490,8 @@
|
||||
"LabelPersonalYearReview": "Преглед на годината Ви ({0})",
|
||||
"LabelPhotoPathURL": "Път/URL на Снимка",
|
||||
"LabelPlayMethod": "Метод на Пускане",
|
||||
"LabelPlaybackRateIncrementDecrement": "Размер на увеличаване/намаляне при скоростта на възпроизвеждане",
|
||||
"LabelPlayerChapterNumberMarker": "{0} от {1}",
|
||||
"LabelPlaylists": "Плейлисти",
|
||||
"LabelPodcast": "Подкаст",
|
||||
"LabelPodcastSearchRegion": "Регион за Търсене на Подкасти",
|
||||
@@ -472,9 +503,12 @@
|
||||
"LabelPrimaryEbook": "Основна Електронна Книга",
|
||||
"LabelProgress": "Прогрес",
|
||||
"LabelProvider": "Доставчик",
|
||||
"LabelProviderAuthorizationValue": "Стойност на Authorization Header",
|
||||
"LabelPubDate": "Дата на публикуване",
|
||||
"LabelPublishYear": "Година на публикуване",
|
||||
"LabelPublishedDate": "Публикувани {0}",
|
||||
"LabelPublishedDecade": "Десетилетие на публикуване",
|
||||
"LabelPublishedDecades": "Десетилетия на публикуване",
|
||||
"LabelPublisher": "Издател",
|
||||
"LabelPublishers": "Издателство",
|
||||
"LabelRSSFeedCustomOwnerEmail": "Персонализиран имейл на собственика",
|
||||
@@ -484,6 +518,7 @@
|
||||
"LabelRSSFeedSlug": "идентификатор на RSS емисия",
|
||||
"LabelRSSFeedURL": "URL на RSS емисия",
|
||||
"LabelRandomly": "Случайно",
|
||||
"LabelReAddSeriesToContinueListening": "Добави отново в \"Продължете да слушате\"",
|
||||
"LabelRead": "Прочети",
|
||||
"LabelReadAgain": "Прочети отново",
|
||||
"LabelReadEbookWithoutProgress": "Прочети електронната книга без записване прогрес",
|
||||
@@ -493,29 +528,40 @@
|
||||
"LabelRedo": "Повтори",
|
||||
"LabelRegion": "Регион",
|
||||
"LabelReleaseDate": "Дата на Издаване",
|
||||
"LabelRemoveAllMetadataAbs": "Премахни всички metadata.abs файлове",
|
||||
"LabelRemoveAllMetadataJson": "Премахни всички metadata.json файлове",
|
||||
"LabelRemoveAudibleBranding": "Премахни въведението и заключението на Audible от главите",
|
||||
"LabelRemoveCover": "Премахни Корица",
|
||||
"LabelRemoveMetadataFile": "Премахни файловете с метаданни от папката на библиотеката",
|
||||
"LabelRemoveMetadataFileHelp": "Премахни всички metadata.json и metadata.abs файлове от вашата {0} папка.",
|
||||
"LabelRowsPerPage": "Редове на Страница",
|
||||
"LabelSearchTerm": "Търси Термин",
|
||||
"LabelSearchTitle": "Търси Заглавие",
|
||||
"LabelSearchTitleOrASIN": "Търси Заглавие или ASIN",
|
||||
"LabelSeason": "Сезон",
|
||||
"LabelSeasonNumber": "Сезон #{0}",
|
||||
"LabelSelectAll": "Избери всичко",
|
||||
"LabelSelectAllEpisodes": "Избери всички епизоди",
|
||||
"LabelSelectEpisodesShowing": "Избери {0} епизоди показани",
|
||||
"LabelSelectUsers": "Избери Потребители",
|
||||
"LabelSendEbookToDevice": "Изпрати електронна книга до ...",
|
||||
"LabelSequence": "Последователност",
|
||||
"LabelSerial": "Сериал",
|
||||
"LabelSeries": "От сериите",
|
||||
"LabelSeriesName": "Име на Серия",
|
||||
"LabelSeriesProgress": "Прогрес на Серия",
|
||||
"LabelServerLogLevel": "Ниво на сървърен журнал",
|
||||
"LabelServerYearReview": "Преглед на годината на сървъра ({0})",
|
||||
"LabelSetEbookAsPrimary": "Направи главен",
|
||||
"LabelSetEbookAsSupplementary": "Направи второстепенен",
|
||||
"LabelSettingsAllowIframe": "Разреши вграждане в iframe",
|
||||
"LabelSettingsAudiobooksOnly": "Само аудиокниги",
|
||||
"LabelSettingsAudiobooksOnlyHelp": "Активирането на тази настройка ще игнорира файловете на електронни книги, освен ако не са в папка с аудиокниги, в което случай ще бъдат зададени като допълнителни електронни книги",
|
||||
"LabelSettingsBookshelfViewHelp": "Скеуморфен дизайн с дървени рафтове",
|
||||
"LabelSettingsChromecastSupport": "Chromecast поддръжка",
|
||||
"LabelSettingsDateFormat": "Формат на Дата",
|
||||
"LabelSettingsEnableWatcher": "Автоматично сканиране на библиотеките за промени",
|
||||
"LabelSettingsEnableWatcherForLibrary": "Автоматично сканиране на библиотеката за промени",
|
||||
"LabelSettingsEnableWatcherHelp": "Включва автоматичното добавяне/обновяване на елементи, когато се открият промени във файловете. *Изисква рестарт на сървъра",
|
||||
"LabelSettingsEpubsAllowScriptedContent": "Позволи скриптово съдържание в epub-и",
|
||||
"LabelSettingsEpubsAllowScriptedContentHelp": "Позволи epub файловете да изпълняват скриптове. Препоръчително е да бъде изключено освен ако не се доверявате на източника на epub файловете.",
|
||||
@@ -527,10 +573,13 @@
|
||||
"LabelSettingsHideSingleBookSeriesHelp": "Сериите с една книга ще бъдат скрити от страницата на серията и рафтовете на началната страница.",
|
||||
"LabelSettingsHomePageBookshelfView": "Начална страница изглед на рафт",
|
||||
"LabelSettingsLibraryBookshelfView": "Библиотека изглед на рафт",
|
||||
"LabelSettingsLibraryMarkAsFinishedPercentComplete": "Процент завършеност е по-голям от",
|
||||
"LabelSettingsLibraryMarkAsFinishedTimeRemaining": "Оставащо време е по-малко от (секунди)",
|
||||
"LabelSettingsLibraryMarkAsFinishedWhen": "Отбелязване на мултимедиен елемент като завършен когато",
|
||||
"LabelSettingsOnlyShowLaterBooksInContinueSeries": "Пропусни предишни книги в Продължи Поредица",
|
||||
"LabelSettingsOnlyShowLaterBooksInContinueSeriesHelp": "Рафтът на началната страница 'Продължи поредицата' показва първата книга, която не е започната в поредици, в които има поне една завършена книга и няма книги в процес на четене. Активирането на тази настройка ще продължи поредицата от най-далечната завършена книга вместо от първата незапочната книга.",
|
||||
"LabelSettingsParseSubtitles": "Извлечи подзаглавия",
|
||||
"LabelSettingsParseSubtitlesHelp": "Извлича подзаглавия от имената на папките на аудиокнигите.<br>Подзаглавията трябва да бъдат разделени с \" - \"<br>например \"Заглавие на Книга - Тук е Подзаглавито\" има подзаглавие \"Тук е Подзаглавито\"",
|
||||
"LabelSettingsParseSubtitlesHelp": "Извлича подзаглавия от имената на папките на аудио книгите.<br>Подзаглавията трябва да бъдат разделени с \" - \"<br>например \"Заглавие на Книга - Тук е подзаглавието\" има подзаглавие \"Тук е подзаглавието\"",
|
||||
"LabelSettingsPreferMatchedMetadata": "Предпочети съвпадащи метаданни",
|
||||
"LabelSettingsPreferMatchedMetadataHelp": "Съвпадащите данни ще заменят детайлите на елемента при използване на Бързо Съпоставяне. По подразбиране Бързото Съпоставяне ще попълни само липсващите детайли.",
|
||||
"LabelSettingsSkipMatchingBooksWithASIN": "Пропусни съвпадащи книги, които вече имат ASIN",
|
||||
@@ -544,11 +593,19 @@
|
||||
"LabelSettingsStoreMetadataWithItem": "Запази метаданните с елемента",
|
||||
"LabelSettingsStoreMetadataWithItemHelp": "По подразбиране метаданните се съхраняват в /metadata/items, като активирате тази настройка метаданните ще се съхраняват в папката на елемента на вашата библиотека",
|
||||
"LabelSettingsTimeFormat": "Формат на Време",
|
||||
"LabelShare": "Сподели",
|
||||
"LabelShareDownloadableHelp": "Разреши на потребителите през връзка за споделяне да свалят zip файл с мултимедийния елемент.",
|
||||
"LabelShareOpen": "Общодостъпно",
|
||||
"LabelShareURL": "URL за споделяне",
|
||||
"LabelShowAll": "Покажи всички",
|
||||
"LabelShowSeconds": "Покажи секунди",
|
||||
"LabelShowSubtitles": "Показвай подзаглавия",
|
||||
"LabelSize": "Размер",
|
||||
"LabelSleepTimer": "Таймер за изключване",
|
||||
"LabelSlug": "Слъг",
|
||||
"LabelSortAscending": "Възходящ",
|
||||
"LabelSortDescending": "Низходящ",
|
||||
"LabelSortPubDate": "Подреди по дата на публикуване",
|
||||
"LabelStart": "Старт",
|
||||
"LabelStartTime": "Начално Време",
|
||||
"LabelStarted": "Стартирано",
|
||||
@@ -583,6 +640,11 @@
|
||||
"LabelThemeDark": "Тъмна",
|
||||
"LabelThemeLight": "Светла",
|
||||
"LabelTimeBase": "Времева Основа",
|
||||
"LabelTimeDurationXHours": "{0} часа",
|
||||
"LabelTimeDurationXMinutes": "{0} минути",
|
||||
"LabelTimeDurationXSeconds": "{0} секунди",
|
||||
"LabelTimeInMinutes": "Време в минути",
|
||||
"LabelTimeLeft": "остава {0}",
|
||||
"LabelTimeListened": "Време Слушано",
|
||||
"LabelTimeListenedToday": "Време Слушано Днес",
|
||||
"LabelTimeRemaining": "{0} оставащи",
|
||||
@@ -590,6 +652,7 @@
|
||||
"LabelTitle": "Заглавие",
|
||||
"LabelToolsEmbedMetadata": "Вграждане на Метаданни",
|
||||
"LabelToolsEmbedMetadataDescription": "Вграждане на метаданни в аудио файлове, включително корица и глави.",
|
||||
"LabelToolsM4bEncoder": "M4B кодировчик",
|
||||
"LabelToolsMakeM4b": "Направи M4B Аудиокнига Файл",
|
||||
"LabelToolsMakeM4bDescription": "Генериране на .M4B аудиокнига файл с вградени метаданни, корица и глави.",
|
||||
"LabelToolsSplitM4b": "Раздели M4B на MP3-ки",
|
||||
@@ -602,26 +665,32 @@
|
||||
"LabelTracksMultiTrack": "Многоканален",
|
||||
"LabelTracksNone": "Няма канали",
|
||||
"LabelTracksSingleTrack": "Единичен канал",
|
||||
"LabelTrailer": "Трейлър",
|
||||
"LabelType": "Тип",
|
||||
"LabelUnabridged": "Несъкратен",
|
||||
"LabelUndo": "Отмени",
|
||||
"LabelUnknown": "Неизвестен",
|
||||
"LabelUnknownPublishDate": "Неизвестна дата на публикуване",
|
||||
"LabelUpdateCover": "Обнови Корица",
|
||||
"LabelUpdateCoverHelp": "Позволи презаписване на съществуващите корици за избраните книги, когато се намери съвпадение",
|
||||
"LabelUpdateDetails": "Обнови Детайли",
|
||||
"LabelUpdateDetailsHelp": "Позволи презаписване на съществуващите детайли за избраните книги, когато се намери съвпадение",
|
||||
"LabelUpdatedAt": "Обновено на",
|
||||
"LabelUploaderDragAndDrop": "Плъзни и Пусни Файлове или Папки",
|
||||
"LabelUploaderDragAndDropFilesOnly": "Извлачване на файлове",
|
||||
"LabelUploaderDropFiles": "Пусни Файлове",
|
||||
"LabelUploaderItemFetchMetadataHelp": "Автоматично вземи заглавие, автор и серия",
|
||||
"LabelUseAdvancedOptions": "Използвай разширени опции",
|
||||
"LabelUseChapterTrack": "Използвай канал за глава",
|
||||
"LabelUseFullTrack": "Използвай пълен канал",
|
||||
"LabelUseZeroForUnlimited": "Използвай 0 за неограничен",
|
||||
"LabelUser": "Потребител",
|
||||
"LabelUsername": "Потребителско име",
|
||||
"LabelValue": "Стойност",
|
||||
"LabelVersion": "Версия",
|
||||
"LabelViewBookmarks": "Виж Отметки",
|
||||
"LabelViewChapters": "Виж Глави",
|
||||
"LabelViewPlayerSettings": "Виж настройки на плеъра",
|
||||
"LabelViewQueue": "Виж Опашка",
|
||||
"LabelVolume": "Сила на Звука",
|
||||
"LabelWeekdaysToRun": "Делници за изпълнение",
|
||||
|
||||
@@ -177,6 +177,7 @@
|
||||
"HeaderPlaylist": "Llista de Reproducció",
|
||||
"HeaderPlaylistItems": "Elements de la Llista de Reproducció",
|
||||
"HeaderPodcastsToAdd": "Pòdcasts a afegir",
|
||||
"HeaderPresets": "Valors predefinits",
|
||||
"HeaderPreviewCover": "Previsualització de la Portada",
|
||||
"HeaderRSSFeedGeneral": "Detalls RSS",
|
||||
"HeaderRSSFeedIsOpen": "La Font RSS està oberta",
|
||||
@@ -439,7 +440,7 @@
|
||||
"LabelMinute": "Minut",
|
||||
"LabelMinutes": "Minuts",
|
||||
"LabelMissing": "Absent",
|
||||
"LabelMissingEbook": "No té ebook",
|
||||
"LabelMissingEbook": "No té llibre electrònic",
|
||||
"LabelMissingSupplementaryEbook": "No té ebook complementari",
|
||||
"LabelMobileRedirectURIs": "URI de redirecció mòbil permeses",
|
||||
"LabelMobileRedirectURIsDescription": "Aquesta és una llista blanca d'URI de redirecció vàlides per a aplicacions mòbils. El predeterminat és <code> audiobookshelf</code>, que pots eliminar o complementar amb URI addicionals per a la integració d'aplicacions de tercers. Usant un asterisc (<code> *</code>) com a única entrada que permet qualsevol URI.",
|
||||
@@ -497,25 +498,25 @@
|
||||
"LabelPodcastType": "Tipus de pòdcast",
|
||||
"LabelPodcasts": "Pòdcasts",
|
||||
"LabelPort": "Port",
|
||||
"LabelPrefixesToIgnore": "Prefixos per Ignorar (no distingeix entre majúscules i minúscules.)",
|
||||
"LabelPrefixesToIgnore": "Prefixos a ignorar (no distingeix entre majúscules i minúscules)",
|
||||
"LabelPreventIndexing": "Evita que el vostre canal l'indexin els directoris de pòdcasts de l'iTunes i Google",
|
||||
"LabelPrimaryEbook": "Ebook Principal",
|
||||
"LabelPrimaryEbook": "Llibre electrònic principal",
|
||||
"LabelProgress": "Progrés",
|
||||
"LabelProvider": "Proveïdor",
|
||||
"LabelProviderAuthorizationValue": "Valor de l'encapçalament d'autorització",
|
||||
"LabelPubDate": "Data de Publicació",
|
||||
"LabelPublishYear": "Any de Publicació",
|
||||
"LabelPubDate": "Data de publicació",
|
||||
"LabelPublishYear": "Any de publicació",
|
||||
"LabelPublishedDate": "Publicat {0}",
|
||||
"LabelPublishedDecade": "Dècada de Publicació",
|
||||
"LabelPublishedDecade": "Dècada de publicació",
|
||||
"LabelPublishedDecades": "Dècades Publicades",
|
||||
"LabelPublisher": "Editor",
|
||||
"LabelPublishers": "Editors",
|
||||
"LabelRSSFeedCustomOwnerEmail": "Correu Electrònic Personalitzat del Propietari",
|
||||
"LabelRSSFeedCustomOwnerName": "Nom Personalitzat del Propietari",
|
||||
"LabelRSSFeedOpen": "Font RSS Oberta",
|
||||
"LabelRSSFeedPreventIndexing": "Evitar l'indexació",
|
||||
"LabelRSSFeedSlug": "Font RSS Slug",
|
||||
"LabelRSSFeedURL": "URL de la Font RSS",
|
||||
"LabelRSSFeedPreventIndexing": "Evita la indexació",
|
||||
"LabelRSSFeedSlug": "URL semàntic del canal RSS",
|
||||
"LabelRSSFeedURL": "URL del canal RSS",
|
||||
"LabelRandomly": "A l'atzar",
|
||||
"LabelReAddSeriesToContinueListening": "Reafegir la sèrie per continuar escoltant-la",
|
||||
"LabelRead": "Llegit",
|
||||
@@ -524,39 +525,40 @@
|
||||
"LabelRecentSeries": "Sèries recents",
|
||||
"LabelRecentlyAdded": "Addicions recents",
|
||||
"LabelRecommended": "Recomanats",
|
||||
"LabelRedo": "Refer",
|
||||
"LabelRedo": "Refés",
|
||||
"LabelRegion": "Regió",
|
||||
"LabelReleaseDate": "Data d'Estrena",
|
||||
"LabelRemoveAllMetadataAbs": "Eliminar tots els fitxers metadata.abs",
|
||||
"LabelRemoveAllMetadataJson": "Eliminar tots els fitxers metadata.json",
|
||||
"LabelRemoveCover": "Eliminar Coberta",
|
||||
"LabelReleaseDate": "Data d'estrena",
|
||||
"LabelRemoveAllMetadataAbs": "Elimina tots els fitxers metadata.abs",
|
||||
"LabelRemoveAllMetadataJson": "Elimina tots els fitxers metadata.json",
|
||||
"LabelRemoveAudibleBranding": "Elimina la introducció i el tancament de l'Audible dels capítols",
|
||||
"LabelRemoveCover": "Elimina la coberta",
|
||||
"LabelRemoveMetadataFile": "Eliminar fitxers de metadades en carpetes d'elements de biblioteca",
|
||||
"LabelRemoveMetadataFileHelp": "Elimina tots els fitxers metadata.json i metadata.abs de les vostres carpetes {0}.",
|
||||
"LabelRowsPerPage": "Files per Pàgina",
|
||||
"LabelSearchTerm": "Cercar Terme",
|
||||
"LabelSearchTitle": "Cercar Títol",
|
||||
"LabelSearchTitleOrASIN": "Cercar Títol o ASIN",
|
||||
"LabelRowsPerPage": "Files per pàgina",
|
||||
"LabelSearchTerm": "Cerca terme",
|
||||
"LabelSearchTitle": "Cerca títol",
|
||||
"LabelSearchTitleOrASIN": "Cerca títol o ASIN",
|
||||
"LabelSeason": "Temporada",
|
||||
"LabelSeasonNumber": "Temporada #{0}",
|
||||
"LabelSelectAll": "Seleccionar tot",
|
||||
"LabelSelectAllEpisodes": "Seleccionar tots els episodis",
|
||||
"LabelSeasonNumber": "{0}a temporada",
|
||||
"LabelSelectAll": "Selecciona-ho tot",
|
||||
"LabelSelectAllEpisodes": "Selecciona tots els episodis",
|
||||
"LabelSelectEpisodesShowing": "Seleccionar els {0} episodis visibles",
|
||||
"LabelSelectUsers": "Seleccionar usuaris",
|
||||
"LabelSendEbookToDevice": "Enviar Ebook a...",
|
||||
"LabelSequence": "Seqüència",
|
||||
"LabelSerial": "En sèrie",
|
||||
"LabelSeries": "Sèries",
|
||||
"LabelSeriesName": "Nom de la Sèrie",
|
||||
"LabelSeriesProgress": "Progrés de la Sèrie",
|
||||
"LabelSeries": "Sèrie",
|
||||
"LabelSeriesName": "Nom de la sèrie",
|
||||
"LabelSeriesProgress": "Progrés de la sèrie",
|
||||
"LabelServerLogLevel": "Nivell de registre del servidor",
|
||||
"LabelServerYearReview": "Resum de l'any del servidor ({0})",
|
||||
"LabelSetEbookAsPrimary": "Establir com a principal",
|
||||
"LabelSetEbookAsSupplementary": "Establir com a suplementari",
|
||||
"LabelSettingsAudiobooksOnly": "Només Audiollibres",
|
||||
"LabelSettingsAudiobooksOnlyHelp": "Activant aquesta opció s'ignoraran els fitxers d'ebook, excepte si estan dins d'una carpeta d'audiollibre, en aquest cas es marcaran com ebooks suplementaris",
|
||||
"LabelSettingsAudiobooksOnly": "Només audiollibres",
|
||||
"LabelSettingsAudiobooksOnlyHelp": "En activar aquesta opció s'ignoraran els fitxers de llibre electrònic, excepte si estan dins d'una carpeta d'audiollibre; en aquest cas es marcaran com a llibres suplementaris",
|
||||
"LabelSettingsBookshelfViewHelp": "Disseny esqueomorf amb prestatgeries de fusta",
|
||||
"LabelSettingsChromecastSupport": "Compatibilitat amb Chromecast",
|
||||
"LabelSettingsDateFormat": "Format de Data",
|
||||
"LabelSettingsDateFormat": "Format de data",
|
||||
"LabelSettingsEnableWatcherHelp": "Permet afegir/actualitzar elements automàticament quan es detectin canvis en els fitxers. *Requereix reiniciar el servidor",
|
||||
"LabelSettingsEpubsAllowScriptedContent": "Permetre scripts en epubs",
|
||||
"LabelSettingsEpubsAllowScriptedContentHelp": "Permetre que els fitxers epub executin scripts. Es recomana mantenir aquesta opció desactivada tret que confiïs en l'origen dels fitxers epub.",
|
||||
@@ -576,6 +578,8 @@
|
||||
"LabelSize": "Mida",
|
||||
"LabelSleepTimer": "Temporitzador de repòs",
|
||||
"LabelSlug": "Slug",
|
||||
"LabelSortAscending": "Ascendent",
|
||||
"LabelSortDescending": "Descendent",
|
||||
"LabelStart": "Inicia",
|
||||
"LabelStartTime": "Hora d'inici",
|
||||
"LabelStarted": "Iniciat",
|
||||
@@ -801,23 +805,25 @@
|
||||
"MessageQuickEmbedInProgress": "Integració ràpida en procés",
|
||||
"MessageQuickEmbedQueue": "En cua per a inserció ràpida ({0} en cua)",
|
||||
"MessageQuickMatchAllEpisodes": "Combina ràpidament tots els episodis",
|
||||
"MessageQuickMatchDescription": "Omple detalls d'elements buits i portades amb els primers resultats de '{0}'. No sobreescriu els detalls tret que l'opció \"Preferir metadades trobades\" del servidor estigui habilitada.",
|
||||
"MessageRemoveChapter": "Eliminar capítols",
|
||||
"MessageRemoveEpisodes": "Eliminar {0} episodi(s)",
|
||||
"MessageRemoveFromPlayerQueue": "Eliminar de la cua del reproductor",
|
||||
"MessageQuickMatchDescription": "Emplena els detalls i la coberta dels elements buits amb el resultat de la primera coincidència de «{0}». No sobreescriu els detalls tret que s'activi el paràmetre del servidor «Prefereix metadades coincidents».",
|
||||
"MessageRemoveChapter": "Elimina el capítol",
|
||||
"MessageRemoveEpisodes": "Elimina {0} episodi(s)",
|
||||
"MessageRemoveFromPlayerQueue": "Elimina de la cua del reproductor",
|
||||
"MessageRemoveUserWarning": "Segur que voleu suprimir permanentment l'usuari «{0}»?",
|
||||
"MessageReportBugsAndContribute": "Informa d'errors, sol·licita funcions i contribueix a",
|
||||
"MessageResetChaptersConfirm": "Segur que voleu desfer els canvis i revertir els capítols al seu estat original?",
|
||||
"MessageRestoreBackupConfirm": "Segur que voleu restaurar la còpia de seguretat creada a",
|
||||
"MessageRestoreBackupWarning": "Restaurar sobreescriurà tota la base de dades situada a /config i les imatges de portades a /metadata/items i /metadata/authors.<br /><br />La còpia de seguretat no modifica cap fitxer a les carpetes de la teva biblioteca. Si has activat l'opció del servidor per guardar portades i metadades a les carpetes de la biblioteca, aquests fitxers no es guarden ni sobreescriuen.<br /><br />Tots els clients que utilitzin el teu servidor s'actualitzaran automàticament.",
|
||||
"MessageScheduleRunEveryWeekdayAtTime": "Executa cada {0} a les {1}",
|
||||
"MessageSearchResultsFor": "Resultats de la cerca de",
|
||||
"MessageSelected": "{0} seleccionat(s)",
|
||||
"MessageSeriesSequenceCannotContainSpaces": "La seqüència de la sèrie no pot contenir espais",
|
||||
"MessageServerCouldNotBeReached": "No es va poder establir la connexió amb el servidor",
|
||||
"MessageSetChaptersFromTracksDescription": "Establir capítols utilitzant cada fitxer d'àudio com un capítol i el títol del capítol com el nom del fitxer d'àudio",
|
||||
"MessageShareExpirationWillBe": "La caducitat serà <strong>{0}</strong>",
|
||||
"MessageShareExpiresIn": "Caduca en {0}",
|
||||
"MessageShareURLWillBe": "La URL per compartir serà <strong>{0}</strong>",
|
||||
"MessageStartPlaybackAtTime": "Començar la reproducció per a \"{0}\" a {1}?",
|
||||
"MessageStartPlaybackAtTime": "Voleu començar la reproducció per a «{0}» a {1}?",
|
||||
"MessageTaskAudioFileNotWritable": "El fitxer d'àudio «{0}» no es pot escriure",
|
||||
"MessageTaskCanceledByUser": "Tasca cancel·lada per l'usuari",
|
||||
"MessageTaskDownloadingEpisodeDescription": "S'està baixant l'episodi «{0}»",
|
||||
@@ -917,6 +923,7 @@
|
||||
"ToastBackupRestoreFailed": "Error en restaurar la còpia de seguretat",
|
||||
"ToastBackupUploadFailed": "Error en carregar la còpia de seguretat",
|
||||
"ToastBackupUploadSuccess": "Còpia de seguretat carregada",
|
||||
"ToastBatchApplyDetailsToItemsSuccess": "S'han aplicat els detalls als elements",
|
||||
"ToastBatchDeleteFailed": "Error en l'eliminació per lots",
|
||||
"ToastBatchDeleteSuccess": "Eliminació per lots correcte",
|
||||
"ToastBatchQuickMatchFailed": "Error en la sincronització ràpida per lots!",
|
||||
@@ -930,6 +937,7 @@
|
||||
"ToastCachePurgeSuccess": "Memòria cau purgada amb èxit",
|
||||
"ToastChaptersHaveErrors": "Els capítols tenen errors",
|
||||
"ToastChaptersInvalidShiftAmountLast": "La quantitat de desplaçament no és vàlida. L'hora d'inici de l'últim capítol s'estendria més enllà de la durada d'aquest audiollibre.",
|
||||
"ToastChaptersInvalidShiftAmountStart": "La quantitat de desplaçament no és vàlida. El primer capítol tindria una durada zero o negativa i el sobreescriuria el segon capítol. Augmenteu la durada inicial del segon capítol.",
|
||||
"ToastChaptersMustHaveTitles": "Els capítols han de tenir un títol",
|
||||
"ToastChaptersRemoved": "Capítols eliminats",
|
||||
"ToastChaptersUpdated": "Capítols actualitzats",
|
||||
@@ -937,6 +945,7 @@
|
||||
"ToastCollectionRemoveSuccess": "Col·lecció eliminada",
|
||||
"ToastCollectionUpdateSuccess": "Col·lecció actualitzada",
|
||||
"ToastCoverUpdateFailed": "Error en actualitzar la portada",
|
||||
"ToastDateTimeInvalidOrIncomplete": "La data i hora no és vàlida o està incompleta",
|
||||
"ToastDeleteFileFailed": "No s'ha pogut suprimir el fitxer",
|
||||
"ToastDeleteFileSuccess": "Fitxer suprimit",
|
||||
"ToastDeviceAddFailed": "Error en afegir el dispositiu",
|
||||
@@ -985,7 +994,7 @@
|
||||
"ToastNewUserCreatedFailed": "No s'ha pogut crear el compte: «{0}»",
|
||||
"ToastNewUserCreatedSuccess": "Nou compte creat",
|
||||
"ToastNewUserLibraryError": "S'ha de seleccionar almenys una biblioteca",
|
||||
"ToastNewUserPasswordError": "Necessites una contrasenya, només el root pot estar sense contrasenya",
|
||||
"ToastNewUserPasswordError": "Cal una contrasenya; només l'usuari primari pot estar sense contrasenya",
|
||||
"ToastNewUserTagError": "S'ha de seleccionar almenys una etiqueta",
|
||||
"ToastNewUserUsernameError": "Introduïu un nom d'usuari",
|
||||
"ToastNoNewEpisodesFound": "No s'han trobat nous episodis",
|
||||
@@ -1028,7 +1037,7 @@
|
||||
"ToastScanFailed": "No s'ha pogut escanejar l'element de la biblioteca",
|
||||
"ToastSelectAtLeastOneUser": "Selecciona almenys un usuari",
|
||||
"ToastSendEbookToDeviceFailed": "Error en enviar l'ebook al dispositiu",
|
||||
"ToastSendEbookToDeviceSuccess": "Ebook enviat al dispositiu \"{0}\"",
|
||||
"ToastSendEbookToDeviceSuccess": "El llibre electrònic s'ha enviat al dispositiu «{0}»",
|
||||
"ToastSeriesSubmitFailedSameName": "No és possible afegir dues sèries amb el mateix nom",
|
||||
"ToastSeriesUpdateFailed": "Error en actualitzar la sèrie",
|
||||
"ToastSeriesUpdateSuccess": "Sèrie actualitzada",
|
||||
|
||||
@@ -705,6 +705,7 @@
|
||||
"LabelYourProgress": "Váš pokrok",
|
||||
"MessageAddToPlayerQueue": "Přidat do fronty přehrávače",
|
||||
"MessageAppriseDescription": "Abyste mohli používat tuto funkci, musíte mít spuštěnou instanci <a href=\"https://github.com/caronc/apprise-api\" target=\"_blank\">Apprise API</a> nebo API, které bude zpracovávat stejné požadavky. <br />Adresa URL API Apprise by měla být úplná URL cesta pro odeslání oznámení, např. pokud je vaše instance API obsluhována na adrese <code>http://192.168.1.1:8337</code> pak byste měli zadat <code>http://192.168.1.1:8337/notify</code>.",
|
||||
"MessageAsinCheck": "Ujistěte se, že používáte ASIN ze správného regionu Audible a ne z Amazonu.",
|
||||
"MessageBackupsDescription": "Zálohy zahrnují uživatele, průběh uživatele, podrobnosti o položkách knihovny, nastavení serveru a obrázky uložené v <code>/metadata/items</code> a <code>/metadata/authors</code>. Zálohy <strong>ne</strong> zahrnují všechny soubory uložené ve složkách knihovny.",
|
||||
"MessageBackupsLocationEditNote": "Poznámka: Změna umístění záloh nepřesune ani nezmění existující zálohy",
|
||||
"MessageBackupsLocationNoEditNote": "Poznámka: Umístění záloh je nastavené z proměnných prostředí a nelze zde změnit.",
|
||||
@@ -723,6 +724,7 @@
|
||||
"MessageChapterErrorStartGteDuration": "Neplatný čas začátku, musí být kratší než doba trvání audioknihy",
|
||||
"MessageChapterErrorStartLtPrev": "Neplatný čas začátku, musí být větší nebo roven času začátku předchozí kapitoly",
|
||||
"MessageChapterStartIsAfter": "Začátek kapitoly přesahuje konec audioknihy",
|
||||
"MessageChaptersNotFound": "Kapitoly nenalezeny",
|
||||
"MessageCheckingCron": "Kontrola cronu...",
|
||||
"MessageConfirmCloseFeed": "Opravdu chcete zavřít tento kanál?",
|
||||
"MessageConfirmDeleteBackup": "Opravdu chcete smazat zálohu pro {0}?",
|
||||
@@ -779,6 +781,7 @@
|
||||
"MessageForceReScanDescription": "znovu prohledá všechny soubory jako při novém skenování. ID3 tagy zvukových souborů OPF soubory a textové soubory budou skenovány jako nové.",
|
||||
"MessageImportantNotice": "Důležité upozornění!",
|
||||
"MessageInsertChapterBelow": "Vložit kapitolu níže",
|
||||
"MessageInvalidAsin": "Neplatný ASIN",
|
||||
"MessageItemsSelected": "{0} vybraných položek",
|
||||
"MessageItemsUpdated": "{0} položky byly aktualizovány",
|
||||
"MessageJoinUsOn": "Přidejte se k nám",
|
||||
|
||||
@@ -88,7 +88,7 @@
|
||||
"ButtonSave": "Speichern",
|
||||
"ButtonSaveAndClose": "Speichern & Schließen",
|
||||
"ButtonSaveTracklist": "Speichere die Titelliste",
|
||||
"ButtonScan": "Partial-Scan (nur geänderte/neue Medien)",
|
||||
"ButtonScan": "Scannen",
|
||||
"ButtonScanLibrary": "Bibliothek scannen",
|
||||
"ButtonScrollLeft": "Nach Links scrollen",
|
||||
"ButtonScrollRight": "Nach Rechts scrollen",
|
||||
@@ -856,6 +856,7 @@
|
||||
"MessageScheduleRunEveryWeekdayAtTime": "Immer {0} um {1} ausführen",
|
||||
"MessageSearchResultsFor": "Suchergebnisse für",
|
||||
"MessageSelected": "{0} ausgewählt",
|
||||
"MessageSeriesSequenceCannotContainSpaces": "Serie Abfolge kann keine Leerzeichen enthalten",
|
||||
"MessageServerCouldNotBeReached": "Server kann nicht erreicht werden",
|
||||
"MessageSetChaptersFromTracksDescription": "Kaitelerstellung basiert auf den existierenden einzelnen Audiodateien. Pro existierende Audiodatei wird 1 Kapitel erstellt, wobei deren Kapitelname aus dem Audiodateinamen extrahiert wird",
|
||||
"MessageShareExpirationWillBe": "Läuft am <strong>{0}</strong> ab",
|
||||
@@ -974,6 +975,8 @@
|
||||
"ToastCachePurgeFailed": "Cache leeren fehlgeschlagen",
|
||||
"ToastCachePurgeSuccess": "Cache geleert",
|
||||
"ToastChaptersHaveErrors": "Kapitel sind fehlerhaft",
|
||||
"ToastChaptersInvalidShiftAmountLast": "Die Verschiebung ist nicht möglich, da die Startzeit des letzten Kapitels über die Gesamtdauer dieses Hörbuchs hinausgehen würde.",
|
||||
"ToastChaptersInvalidShiftAmountStart": "Ungültige Höhe der Verschiebung. Das erste Kapitel hätte eine Länge von Null oder eine negative Länge und würde vom zweiten Kapitel überschrieben werden. Erhöhen Sie die Startdauer des zweiten Kapitels.",
|
||||
"ToastChaptersMustHaveTitles": "Kapitel benötigen eindeutige Namen",
|
||||
"ToastChaptersRemoved": "Kapitel entfernt",
|
||||
"ToastChaptersUpdated": "Kapitel aktualisiert",
|
||||
|
||||
@@ -499,7 +499,7 @@
|
||||
"LabelPodcastType": "Tipo de pódcast",
|
||||
"LabelPodcasts": "Pódcast",
|
||||
"LabelPort": "Puerto",
|
||||
"LabelPrefixesToIgnore": "Prefijos para Ignorar (no distingue entre mayúsculas y minúsculas.)",
|
||||
"LabelPrefixesToIgnore": "Prefijos para ignorar (no distingue entre mayúsculas y minúsculas)",
|
||||
"LabelPreventIndexing": "Evite que los directorios de pódcast de iTunes y Google indicen su suministro",
|
||||
"LabelPrimaryEbook": "Libro electrónico principal",
|
||||
"LabelProgress": "Progreso",
|
||||
@@ -515,7 +515,7 @@
|
||||
"LabelRSSFeedCustomOwnerEmail": "Correo electrónico de dueño personalizado",
|
||||
"LabelRSSFeedCustomOwnerName": "Nombre de dueño personalizado",
|
||||
"LabelRSSFeedOpen": "Suministro RSS abierto",
|
||||
"LabelRSSFeedPreventIndexing": "Prevenir indexado",
|
||||
"LabelRSSFeedPreventIndexing": "Evitar indización",
|
||||
"LabelRSSFeedSlug": "«Slug» de suministro RSS",
|
||||
"LabelRSSFeedURL": "URL de suministro RSS",
|
||||
"LabelRandomly": "Aleatorio",
|
||||
@@ -531,6 +531,7 @@
|
||||
"LabelReleaseDate": "Fecha de estreno",
|
||||
"LabelRemoveAllMetadataAbs": "Eliminar todos los archivos metadata.abs",
|
||||
"LabelRemoveAllMetadataJson": "Eliminar todos los archivos metadata.json",
|
||||
"LabelRemoveAudibleBranding": "Quitar introducción y cierre de Audible de los capítulos",
|
||||
"LabelRemoveCover": "Quitar cubierta",
|
||||
"LabelRemoveMetadataFile": "Eliminar archivos de metadatos en carpetas de elementos de biblioteca",
|
||||
"LabelRemoveMetadataFileHelp": "Elimine todos los archivos metadata.json y metadata.abs de sus carpetas {0}.",
|
||||
@@ -539,7 +540,7 @@
|
||||
"LabelSearchTitle": "Buscar título",
|
||||
"LabelSearchTitleOrASIN": "Buscar título o ASIN",
|
||||
"LabelSeason": "Temporada",
|
||||
"LabelSeasonNumber": "Sesión #{0}",
|
||||
"LabelSeasonNumber": "{0}.ª temporada",
|
||||
"LabelSelectAll": "Seleccionar todo",
|
||||
"LabelSelectAllEpisodes": "Seleccionar todos los episodios",
|
||||
"LabelSelectEpisodesShowing": "Seleccionar los {0} episodios visibles",
|
||||
@@ -749,7 +750,7 @@
|
||||
"MessageConfirmNotificationTestTrigger": "¿Activar esta notificación con datos de prueba?",
|
||||
"MessageConfirmPurgeCache": "Purgar la antememoria eliminará el directorio completo ubicado en <code>/metadata/cache</code>. <br /><br />¿Confirma que quiere eliminar el directorio de antememoria?",
|
||||
"MessageConfirmPurgeItemsCache": "Purgar la antememoria de elementos eliminará el directorio completo ubicado en <code>/metadata/cache/items</code>.<br />¿Lo confirma?",
|
||||
"MessageConfirmQuickEmbed": "¡Advertencia! La integración rápida no realiza copias de seguridad a ninguno de tus archivos de audio. Asegúrate de haber realizado una copia de los mismos previamente. <br><br>¿Deseas continuar?",
|
||||
"MessageConfirmQuickEmbed": "Atención: la incrustación rápida no realiza copias de respaldo a ninguno de sus archivos de audio. Cerciórese de haber realizado una copia de los mismos previamente. <br><br>¿Quiere continuar?",
|
||||
"MessageConfirmQuickMatchEpisodes": "El reconocimiento rápido de extensiones sobrescribirá los detalles si se encuentra una coincidencia. Se actualizarán las extensiones no reconocidas. ¿Quiere continuar?",
|
||||
"MessageConfirmReScanLibraryItems": "¿Confirma que quiere volver a analizar {0} elementos?",
|
||||
"MessageConfirmRemoveAllChapters": "¿Confirma que quiere quitar todos los capítulos?",
|
||||
@@ -842,7 +843,7 @@
|
||||
"MessageQuickEmbedInProgress": "Integración rápida en proceso",
|
||||
"MessageQuickEmbedQueue": "En cola para inserción rápida ({0} en cola)",
|
||||
"MessageQuickMatchAllEpisodes": "Combina rápidamente todos los episodios",
|
||||
"MessageQuickMatchDescription": "Rellenar detalles de elementos vacíos y portada con los primeros resultados de '{0}'. No sobrescribe los detalles a menos que la opción \"Preferir Metadatos Encontrados\" del servidor esté habilitada.",
|
||||
"MessageQuickMatchDescription": "Rellena los detalles y la cubierta de los elementos vacíos con el primer resultado coincidente de «{0}». No sobrescribe los detalles a menos que se active la opción del servidor «Preferir metadatos coincidentes».",
|
||||
"MessageRemoveChapter": "Quitar capítulo",
|
||||
"MessageRemoveEpisodes": "Quitar {0} episodio(s)",
|
||||
"MessageRemoveFromPlayerQueue": "Quitar de la cola de reproducción",
|
||||
@@ -855,6 +856,7 @@
|
||||
"MessageScheduleRunEveryWeekdayAtTime": "Ejecutar cada {0} a las {1}",
|
||||
"MessageSearchResultsFor": "Resultados de la búsqueda de",
|
||||
"MessageSelected": "{0} seleccionado(s)",
|
||||
"MessageSeriesSequenceCannotContainSpaces": "La secuencia de la serie no puede contener espacios",
|
||||
"MessageServerCouldNotBeReached": "No se pudo establecer la conexión con el servidor",
|
||||
"MessageSetChaptersFromTracksDescription": "Establecer capítulos usando cada archivo de audio como un capítulo y el título del capítulo como el nombre del archivo de audio",
|
||||
"MessageShareExpirationWillBe": "La caducidad será <strong>{0}</strong>",
|
||||
@@ -955,14 +957,14 @@
|
||||
"ToastBackupCreateSuccess": "Respaldo creado",
|
||||
"ToastBackupDeleteFailed": "Error al eliminar respaldo",
|
||||
"ToastBackupDeleteSuccess": "Respaldo eliminado",
|
||||
"ToastBackupInvalidMaxKeep": "Número no válido de copias de seguridad a conservar",
|
||||
"ToastBackupInvalidMaxSize": "Tamaño máximo de copia de seguridad no válido",
|
||||
"ToastBackupInvalidMaxKeep": "Número no válido de copias de respaldo para conservar",
|
||||
"ToastBackupInvalidMaxSize": "Tamaño máximo de copia de respaldo no válido",
|
||||
"ToastBackupRestoreFailed": "Error al restaurar el respaldo",
|
||||
"ToastBackupUploadFailed": "Error al subir el respaldo",
|
||||
"ToastBackupUploadFailed": "Error al cargar la copia de respaldo",
|
||||
"ToastBackupUploadSuccess": "Respaldo cargado",
|
||||
"ToastBatchApplyDetailsToItemsSuccess": "Detalles aplicados a los elementos",
|
||||
"ToastBatchDeleteFailed": "Falló la eliminación por lotes",
|
||||
"ToastBatchDeleteSuccess": "Borrado por lotes correcto",
|
||||
"ToastBatchDeleteSuccess": "Se eliminó por lotes correctamente",
|
||||
"ToastBatchQuickMatchFailed": "¡Error en la sincronización rápida por lotes!",
|
||||
"ToastBatchQuickMatchStarted": "¡Se inició el lote de búsqueda rápida de {0} libros!",
|
||||
"ToastBatchUpdateFailed": "Falló la actualización por lotes",
|
||||
@@ -974,6 +976,7 @@
|
||||
"ToastCachePurgeSuccess": "Se purgó la antememoria correctamente",
|
||||
"ToastChaptersHaveErrors": "Los capítulos tienen errores",
|
||||
"ToastChaptersInvalidShiftAmountLast": "Cantidad de desplazamiento no válida. La hora de inicio del último capítulo se extendería más allá de la duración de este audiolibro.",
|
||||
"ToastChaptersInvalidShiftAmountStart": "Cantidad de desplazamiento no válida. El primer capítulo tendría una duración cero o negativa y lo sobrescribiría el segundo capítulo. Aumente la duración inicial del segundo capítulo.",
|
||||
"ToastChaptersMustHaveTitles": "Los capítulos deben tener título",
|
||||
"ToastChaptersRemoved": "Capítulos eliminados",
|
||||
"ToastChaptersUpdated": "Capítulos actualizados",
|
||||
|
||||
@@ -530,6 +530,7 @@
|
||||
"LabelReleaseDate": "Date de parution",
|
||||
"LabelRemoveAllMetadataAbs": "Supprimer tous les fichiers metadata.abs",
|
||||
"LabelRemoveAllMetadataJson": "Supprimer tous les fichiers metadata.json",
|
||||
"LabelRemoveAudibleBranding": "Supprimer l’intro et la fin Audible des chapitres",
|
||||
"LabelRemoveCover": "Supprimer la couverture",
|
||||
"LabelRemoveMetadataFile": "Supprimer les fichiers de métadonnées dans les dossiers des éléments de la bibliothèque",
|
||||
"LabelRemoveMetadataFileHelp": "Supprimer tous les fichiers metadata.json et metadata.abs de vos dossiers {0}.",
|
||||
@@ -705,6 +706,8 @@
|
||||
"LabelYourProgress": "Votre progression",
|
||||
"MessageAddToPlayerQueue": "Ajouter en file d’attente",
|
||||
"MessageAppriseDescription": "Nécessite une instance d’<a href=\"https://github.com/caronc/apprise-api\" target=\"_blank\">API Apprise</a> pour utiliser cette fonctionnalité ou une api qui prend en charge les mêmes requêtes.<br />L’URL de l’API Apprise doit comprendre le chemin complet pour envoyer la notification. Par exemple, si votre instance écoute sur <code>http://192.168.1.1:8337</code> alors vous devez mettre <code>http://192.168.1.1:8337/notify</code>.",
|
||||
"MessageAsinCheck": "Assurez-vous d’utiliser l’ASIN de la bonne région Audible, et non d’Amazon.",
|
||||
"MessageAuthenticationOIDCChangesRestart": "Redémarrez votre serveur après avoir enregistré pour appliquer les modifications OIDC.",
|
||||
"MessageBackupsDescription": "Les sauvegardes incluent les utilisateurs, la progression des utilisateurs, les détails des éléments de la bibliothèque, les paramètres du serveur et les images stockées dans <code>/metadata/items</code> & <code>/metadata/authors</code>. Les sauvegardes <strong>n’incluent pas</strong> les fichiers stockés dans les dossiers de votre bibliothèque.",
|
||||
"MessageBackupsLocationEditNote": "Remarque : Mettre à jour l'emplacement de sauvegarde ne déplacera pas ou ne modifiera pas les sauvegardes existantes",
|
||||
"MessageBackupsLocationNoEditNote": "Remarque : l’emplacement de sauvegarde est défini via une variable d’environnement et ne peut pas être modifié ici.",
|
||||
@@ -723,6 +726,7 @@
|
||||
"MessageChapterErrorStartGteDuration": "Horodatage invalide car il doit débuter avant la fin du livre",
|
||||
"MessageChapterErrorStartLtPrev": "Horodatage invalide car il doit débuter au moins après le précédent chapitre",
|
||||
"MessageChapterStartIsAfter": "Le premier chapitre est situé au début de votre livre audio",
|
||||
"MessageChaptersNotFound": "Chapitres non trouvés",
|
||||
"MessageCheckingCron": "Vérification du cron…",
|
||||
"MessageConfirmCloseFeed": "Êtes-vous sûr·e de vouloir fermer ce flux ?",
|
||||
"MessageConfirmDeleteBackup": "Êtes-vous sûr·e de vouloir supprimer la sauvegarde de « {0} » ?",
|
||||
@@ -779,6 +783,7 @@
|
||||
"MessageForceReScanDescription": "analysera de nouveau tous les fichiers. Les étiquettes ID3 des fichiers audio, les fichiers OPF et les fichiers texte seront analysés comme s’ils étaient nouveaux.",
|
||||
"MessageImportantNotice": "Information importante !",
|
||||
"MessageInsertChapterBelow": "Insérer le chapitre ci-dessous",
|
||||
"MessageInvalidAsin": "ASIN invalide",
|
||||
"MessageItemsSelected": "{0} éléments sélectionnés",
|
||||
"MessageItemsUpdated": "{0} éléments mis à jour",
|
||||
"MessageJoinUsOn": "Rejoignez-nous sur",
|
||||
@@ -850,6 +855,7 @@
|
||||
"MessageScheduleRunEveryWeekdayAtTime": "Exécuté tous les {0} à {1}",
|
||||
"MessageSearchResultsFor": "Résultats de recherche pour",
|
||||
"MessageSelected": "{0} sélectionnés",
|
||||
"MessageSeriesSequenceCannotContainSpaces": "La séquence de séries ne peut pas contenir d’espaces",
|
||||
"MessageServerCouldNotBeReached": "Serveur inaccessible",
|
||||
"MessageSetChaptersFromTracksDescription": "Positionne un chapitre par fichier audio, avec le titre du fichier comme titre de chapitre",
|
||||
"MessageShareExpirationWillBe": "Expire le <strong>{0}</strong>",
|
||||
@@ -968,6 +974,8 @@
|
||||
"ToastCachePurgeFailed": "Échec de la purge du cache",
|
||||
"ToastCachePurgeSuccess": "Cache purgé avec succès",
|
||||
"ToastChaptersHaveErrors": "Les chapitres contiennent des erreurs",
|
||||
"ToastChaptersInvalidShiftAmountLast": "Durée de décalage non valide. L’heure de début du dernier chapitre pourrait dépasser la durée de ce livre audio.",
|
||||
"ToastChaptersInvalidShiftAmountStart": "Durée de décalage non valide. Le premier chapitre aurait une longueur nulle ou négative et serait écrasé par le second. Augmentez la durée de début du second chapitre.",
|
||||
"ToastChaptersMustHaveTitles": "Les chapitre doivent avoir un titre",
|
||||
"ToastChaptersRemoved": "Chapitres supprimés",
|
||||
"ToastChaptersUpdated": "Chapitres mis à jour",
|
||||
|
||||
@@ -10,6 +10,8 @@
|
||||
"ButtonApplyChapters": "החל פרקים",
|
||||
"ButtonAuthors": "סופרים",
|
||||
"ButtonBack": "חזור",
|
||||
"ButtonBatchEditPopulateFromExisting": "מלא משדות קיימים",
|
||||
"ButtonBatchEditPopulateMapDetails": "מלא פרטי מפה",
|
||||
"ButtonBrowseForFolder": "עיין בתיקייה",
|
||||
"ButtonCancel": "ביטול",
|
||||
"ButtonCancelEncode": "בטל קידוד",
|
||||
@@ -29,7 +31,9 @@
|
||||
"ButtonEdit": "ערוך",
|
||||
"ButtonEditChapters": "ערוך פרקים",
|
||||
"ButtonEditPodcast": "ערוך פודקאסט",
|
||||
"ButtonEnable": "הפעל",
|
||||
"ButtonEnable": "אפשר",
|
||||
"ButtonFireAndFail": "שלח בכישלון",
|
||||
"ButtonFireOnTest": "שלח באירוע בדיקה",
|
||||
"ButtonForceReScan": "סרוק מחדש בכוח",
|
||||
"ButtonFullPath": "נתיב מלא",
|
||||
"ButtonHide": "הסתר",
|
||||
@@ -37,7 +41,7 @@
|
||||
"ButtonIssues": "תקלות",
|
||||
"ButtonJumpBackward": "דלג אחורה",
|
||||
"ButtonJumpForward": "דלג קדימה",
|
||||
"ButtonLatest": "חדש ביותר",
|
||||
"ButtonLatest": "אחרון",
|
||||
"ButtonLibrary": "ספרייה",
|
||||
"ButtonLogout": "התנתק",
|
||||
"ButtonLookup": "חפש",
|
||||
@@ -70,7 +74,7 @@
|
||||
"ButtonReScan": "סרוק מחדש",
|
||||
"ButtonRead": "קרא",
|
||||
"ButtonReadLess": "קרא פחות",
|
||||
"ButtonReadMore": "קרא יותר",
|
||||
"ButtonReadMore": "קרא עוד",
|
||||
"ButtonRefresh": "רענן",
|
||||
"ButtonRemove": "הסר",
|
||||
"ButtonRemoveAll": "הסר הכל",
|
||||
@@ -86,7 +90,9 @@
|
||||
"ButtonSaveTracklist": "שמור רשימת רצועות",
|
||||
"ButtonScan": "סרוק",
|
||||
"ButtonScanLibrary": "סרוק ספרייה",
|
||||
"ButtonSearch": "חפש",
|
||||
"ButtonScrollLeft": "גלול שמאלה",
|
||||
"ButtonScrollRight": "גלול ימינה",
|
||||
"ButtonSearch": "חיפוש",
|
||||
"ButtonSelectFolderPath": "בחר נתיב לתיקייה",
|
||||
"ButtonSeries": "סדרה",
|
||||
"ButtonSetChaptersFromTracks": "קבע פרקים לפי הרצועות",
|
||||
@@ -96,7 +102,7 @@
|
||||
"ButtonStartM4BEncode": "התחל קידוד M4B",
|
||||
"ButtonStartMetadataEmbed": "התחל הטמעת מטא-נתונים",
|
||||
"ButtonStats": "סטטיסטיקות",
|
||||
"ButtonSubmit": "שלח",
|
||||
"ButtonSubmit": "שליחה",
|
||||
"ButtonTest": "בדיקה",
|
||||
"ButtonUnlinkOpenId": "נתק OpenID",
|
||||
"ButtonUpload": "העלה",
|
||||
@@ -122,26 +128,26 @@
|
||||
"HeaderChapters": "פרקים",
|
||||
"HeaderChooseAFolder": "בחר תיקייה",
|
||||
"HeaderCollection": "אוסף",
|
||||
"HeaderCollectionItems": "פריטי אוסף",
|
||||
"HeaderCollectionItems": "פרטי אוסף",
|
||||
"HeaderCover": "כריכה",
|
||||
"HeaderCurrentDownloads": "הורדות נוכחיות",
|
||||
"HeaderCustomMessageOnLogin": "הודעה מותאמת אישית בהתחברות",
|
||||
"HeaderCustomMetadataProviders": "ספקי מטא-נתונים מותאמים אישית",
|
||||
"HeaderDetails": "פרטים",
|
||||
"HeaderDownloadQueue": "תור הורדה",
|
||||
"HeaderEbookFiles": "קבצי ספר אלקטרוני",
|
||||
"HeaderEbookFiles": "קבצי Ebook",
|
||||
"HeaderEmail": "אימייל",
|
||||
"HeaderEmailSettings": "הגדרות אימייל",
|
||||
"HeaderEpisodes": "פרקים",
|
||||
"HeaderEreaderDevices": "התקני קריאה דיגיטליים",
|
||||
"HeaderEreaderSettings": "הגדרות התקני קריאה דיגיטליים",
|
||||
"HeaderEreaderSettings": "הגדרות קורא אלקטרוני",
|
||||
"HeaderFiles": "קבצים",
|
||||
"HeaderFindChapters": "מצא פרקים",
|
||||
"HeaderIgnoredFiles": "קבצים שנתעלמו",
|
||||
"HeaderItemFiles": "קבצי פריט",
|
||||
"HeaderItemMetadataUtils": "כלי מטא-נתונים",
|
||||
"HeaderLastListeningSession": "הפעלת האזנה אחרונה",
|
||||
"HeaderLatestEpisodes": "הפרקים העדכניים ביותר",
|
||||
"HeaderLatestEpisodes": "פרקים אחרונים",
|
||||
"HeaderLibraries": "ספריות",
|
||||
"HeaderLibraryFiles": "קבצי ספרייה",
|
||||
"HeaderLibraryStats": "סטטיסטיקות ספרייה",
|
||||
@@ -171,8 +177,9 @@
|
||||
"HeaderPlaylist": "רשימת השמעה",
|
||||
"HeaderPlaylistItems": "פריטי רשימת השמעה",
|
||||
"HeaderPodcastsToAdd": "פודקאסטים להוספה",
|
||||
"HeaderPresets": "קביעות מוגדרות מראש",
|
||||
"HeaderPreviewCover": "תצוגה מקדימה של כריכה",
|
||||
"HeaderRSSFeedGeneral": "פרטי ערוץ RSS",
|
||||
"HeaderRSSFeedGeneral": "פרטי RSS",
|
||||
"HeaderRSSFeedIsOpen": "ערוץ RSS פתוח",
|
||||
"HeaderRSSFeeds": "ערוצי RSS",
|
||||
"HeaderRemoveEpisode": "הסר פרק",
|
||||
@@ -188,14 +195,15 @@
|
||||
"HeaderSettingsExperimental": "תכונות ניסיוניות",
|
||||
"HeaderSettingsGeneral": "כללי",
|
||||
"HeaderSettingsScanner": "סורק",
|
||||
"HeaderSettingsWebClient": "מערך",
|
||||
"HeaderSleepTimer": "טיימר שינה",
|
||||
"HeaderStatsLargestItems": "הפריטים הגדולים ביותר",
|
||||
"HeaderStatsLongestItems": "הפריטים הארוכים ביותר (בשעות)",
|
||||
"HeaderStatsMinutesListeningChart": "דקות האזנה (בימים האחרונים)",
|
||||
"HeaderStatsRecentSessions": "הפעלות אחרונות",
|
||||
"HeaderStatsMinutesListeningChart": "דקות האזנה (7 ימים אחרונים)",
|
||||
"HeaderStatsRecentSessions": "האזנות אחרונות",
|
||||
"HeaderStatsTop10Authors": "10 היוצרים המובילים",
|
||||
"HeaderStatsTop5Genres": "הז'אנרים המובילים 5",
|
||||
"HeaderTableOfContents": "תוכן העניינים",
|
||||
"HeaderTableOfContents": "תוכן עניינים",
|
||||
"HeaderTools": "כלים",
|
||||
"HeaderUpdateAccount": "עדכן חשבון",
|
||||
"HeaderUpdateAuthor": "עדכן יוצר",
|
||||
@@ -212,15 +220,17 @@
|
||||
"LabelAccountTypeAdmin": "מנהל",
|
||||
"LabelAccountTypeGuest": "אורח",
|
||||
"LabelAccountTypeUser": "משתמש",
|
||||
"LabelActivities": "פעילויות",
|
||||
"LabelActivity": "פעילות",
|
||||
"LabelAddToCollection": "הוסף לאוסף",
|
||||
"LabelAddToCollectionBatch": "הוסף {0} ספרים לאוסף",
|
||||
"LabelAddToPlaylist": "הוסף לרשימת השמעה",
|
||||
"LabelAddToPlaylistBatch": "הוסף {0} פריטים לרשימת השמעה",
|
||||
"LabelAddedAt": "נוסף בתאריך",
|
||||
"LabelAddedAt": "נוסף ב-",
|
||||
"LabelAddedDate": "נוסף ב-{0}",
|
||||
"LabelAdminUsersOnly": "רק מנהלים",
|
||||
"LabelAll": "הכל",
|
||||
"LabelAllEpisodesDownloaded": "כל הפרקים הורדו",
|
||||
"LabelAllUsers": "כל המשתמשים",
|
||||
"LabelAllUsersExcludingGuests": "כל המשתמשים, ללא אורחים",
|
||||
"LabelAllUsersIncludingGuests": "כל המשתמשים כולל אורחים",
|
||||
@@ -230,10 +240,10 @@
|
||||
"LabelAudioBitrate": "קצב סיביות (לדוגמא 128k)",
|
||||
"LabelAudioChannels": "ערוצי קול (1 או 2)",
|
||||
"LabelAudioCodec": "קידוד קול",
|
||||
"LabelAuthor": "יוצר",
|
||||
"LabelAuthorFirstLast": "יוצר (שם פרטי שם משפחה)",
|
||||
"LabelAuthorLastFirst": "יוצר (שם משפחה, שם פרטי)",
|
||||
"LabelAuthors": "יוצרים",
|
||||
"LabelAuthor": "סופר",
|
||||
"LabelAuthorFirstLast": "סופר (שם, משפחה)",
|
||||
"LabelAuthorLastFirst": "סופר (משפחה, שם)",
|
||||
"LabelAuthors": "סופרים",
|
||||
"LabelAutoDownloadEpisodes": "הורד פרקים באופן אוטומטי",
|
||||
"LabelAutoFetchMetadata": "חפש והורד מטא-נתונים באופן אוטומטי",
|
||||
"LabelAutoFetchMetadataHelp": "מחפש ומוריד מטא-נתונים לשדות כותרת, יוצר וסדרה כדי לשפר את תהליך ההעלאה. ייתכן שיהיה צורך להתאים מטא-נתונים נוסף לאחר ההעלאה.",
|
||||
@@ -242,36 +252,48 @@
|
||||
"LabelAutoRegister": "הרשמה אוטומטית",
|
||||
"LabelAutoRegisterDescription": "יצירת משתמשים חדשים אוטומטית לאחר התחברות",
|
||||
"LabelBackToUser": "חזרה למשתמש",
|
||||
"LabelBackupAudioFiles": "גיבוי קבצי שמע",
|
||||
"LabelBackupLocation": "מיקום גיבוי",
|
||||
"LabelBackupsEnableAutomaticBackups": "הפעל גיבויים אוטומטיים",
|
||||
"LabelBackupsEnableAutomaticBackups": "גיבויים אוטומטיים",
|
||||
"LabelBackupsEnableAutomaticBackupsHelp": "גיבויים שמורים ב /metadata/backups",
|
||||
"LabelBackupsMaxBackupSize": "גודל הגיבוי המרבי (בג'יגה-בייט)",
|
||||
"LabelBackupsMaxBackupSize": "גודל הגיבוי המרבי (בג'יגה-בייט) (0 - ללא הגבלה)",
|
||||
"LabelBackupsMaxBackupSizeHelp": "כהגנה על עצמך מפני תצורה שגויה, הגיבויים ייכשלו אם הם יעברו את הגודל שהוגדר.",
|
||||
"LabelBackupsNumberToKeep": "מספר הגיבויים לשמירה",
|
||||
"LabelBackupsNumberToKeepHelp": "רק גיבוי אחד יוסר בכל פעם, לכן אם יש לך כבר יותר מגיבוי אחד יש להסיר אותם באופן ידני.",
|
||||
"LabelBitrate": "קצב סיביות",
|
||||
"LabelBonus": "בונוס",
|
||||
"LabelBooks": "ספרים",
|
||||
"LabelButtonText": "טקסט לחצן",
|
||||
"LabelByAuthor": "על ידי {0}",
|
||||
"LabelChangePassword": "שינוי סיסמה",
|
||||
"LabelChannels": "ערוצים",
|
||||
"LabelChapterCount": "{0} פרקים",
|
||||
"LabelChapterTitle": "כותרת הפרק",
|
||||
"LabelChapters": "פרקים",
|
||||
"LabelChaptersFound": "פרקים שנמצאו",
|
||||
"LabelClickForMoreInfo": "לחץ למידע נוסף",
|
||||
"LabelClickToUseCurrentValue": "לחץ לשימוש בערך הנוכחי",
|
||||
"LabelClosePlayer": "סגור נגן",
|
||||
"LabelCollapseSeries": "צמצום סדרה",
|
||||
"LabelCodec": "Coded",
|
||||
"LabelCollapseSeries": "הסתר סדרה",
|
||||
"LabelCollapseSubSeries": "הסתר תת סדרה",
|
||||
"LabelCollection": "אוסף",
|
||||
"LabelCollections": "אוספים",
|
||||
"LabelComplete": "מלא",
|
||||
"LabelComplete": "הושלם",
|
||||
"LabelConfirmPassword": "אישור סיסמה",
|
||||
"LabelContinueListening": "המשך האזנה",
|
||||
"LabelContinueReading": "המשך קריאה",
|
||||
"LabelContinueSeries": "המשך סדרה",
|
||||
"LabelCover": "כריכה",
|
||||
"LabelCoverImageURL": "כתובת התמונה ברשת",
|
||||
"LabelCoverProvider": "ספק כריכה",
|
||||
"LabelCreatedAt": "נוצר בתאריך",
|
||||
"LabelCronExpression": "ביטוי cron",
|
||||
"LabelCurrent": "נוכחי",
|
||||
"LabelCurrently": "כעת:",
|
||||
"LabelCustomCronExpression": "ביטוי cron מותאם אישית:",
|
||||
"LabelDatetime": "Datetime",
|
||||
"LabelDays": "ימים",
|
||||
"LabelDeleteFromFileSystemCheckbox": "מחיקה מהמערכת הקבצים (הסר סימון למחיקה רק ממסד הנתונים)",
|
||||
"LabelDescription": "תיאור",
|
||||
"LabelDeselectAll": "הסר בחירת כל הפריטים",
|
||||
@@ -282,51 +304,83 @@
|
||||
"LabelDiscFromFilename": "דיסק משם הקובץ",
|
||||
"LabelDiscFromMetadata": "דיסק מהמטא-נתונים",
|
||||
"LabelDiscover": "גלה",
|
||||
"LabelDownload": "הורד",
|
||||
"LabelDownload": "הורדה",
|
||||
"LabelDownloadNEpisodes": "הורד {0} פרקים",
|
||||
"LabelDownloadable": "ניתן להורדה",
|
||||
"LabelDuration": "משך",
|
||||
"LabelDurationComparisonExactMatch": "(התאמה מדוייקת)",
|
||||
"LabelDurationComparisonLonger": "({0} ארוך יותר)",
|
||||
"LabelDurationComparisonShorter": "({0} קצר יותר)",
|
||||
"LabelDurationFound": "משך נמצא:",
|
||||
"LabelEbook": "ספר אלקטרוני",
|
||||
"LabelEbooks": "ספרים אלקטרוניים",
|
||||
"LabelEdit": "עריכה",
|
||||
"LabelEmail": "דואר אלקטרוני",
|
||||
"LabelEmailSettingsFromAddress": "מאת",
|
||||
"LabelEmailSettingsRejectUnauthorized": "דחה תעודות לא מאושרות",
|
||||
"LabelEmailSettingsRejectUnauthorizedHelp": "השבתת אימות תעודת SSL עלולה לחשוף את החיבור שלך לסיכוני אבטחה, כגון התקפות \"אדם באמצע\". השבת אפשרות זו רק אם אתה מבין את ההשלכות ובוטח בשרת הדואר שאליו אתה מתחבר.",
|
||||
"LabelEmailSettingsSecure": "מאובטח",
|
||||
"LabelEmailSettingsSecureHelp": "אם מופעל, החיבור ישתמש ב-TLS בעת ההתחברות לשרת. אם לא, אז TLS יהיה בשימוש אם השרת תומך בהרחבת STARTTLS. ברוב המקרים מומלץ להפעיל את הגדרה זו אם אתה מתחבר לפורט 465. לפורט 587 או 25, השאר כבוי. (from nodemailer.com/smtp/#authentication)",
|
||||
"LabelEmailSettingsTestAddress": "כתובת לבדיקה",
|
||||
"LabelEmbeddedCover": "כריכה מוטמעת",
|
||||
"LabelEnable": "הפעל",
|
||||
"LabelEnd": "סיום",
|
||||
"LabelEnable": "אפשר",
|
||||
"LabelEncodingBackupLocation": "גיבוי של קבצי אודיו מקוריים יישמר ב:",
|
||||
"LabelEncodingChaptersNotEmbedded": "פרקים אינם מוטבעים בספרי אודיו מרובי רצועות.",
|
||||
"LabelEncodingClearItemCache": "הקפד לנקות מטמון פריטים מעת לעת.",
|
||||
"LabelEncodingFinishedM4B": "קובץ M4B סופי יישמר בתיקייה ה-audiobook ב:",
|
||||
"LabelEncodingInfoEmbedded": "מטה דאטה יוטמע ברצועות השמע בתוך תיקיית ה-audiobook.",
|
||||
"LabelEncodingStartedNavigation": "לאחר שהמשימה תתחיל אפשר לנווט לדף אחר.",
|
||||
"LabelEncodingTimeWarning": "קידוד יכול להימשך עד 30 דקות.",
|
||||
"LabelEncodingWarningAdvancedSettings": "אזהרה: אל תעדכן את ההגדרות האלה אלא אם כן אתה מכיר את אפשרויות קידוד ffmpeg.",
|
||||
"LabelEncodingWatcherDisabled": "אם ה-watcher כבוי, יש לסרוק את הספר מחדש לאחר מכן.",
|
||||
"LabelEnd": "סוף",
|
||||
"LabelEndOfChapter": "סוף הפרק",
|
||||
"LabelEpisode": "פרק",
|
||||
"LabelEpisodeNotLinkedToRssFeed": "פרק לא מקושר לערוץ RSS",
|
||||
"LabelEpisodeNumber": "פרק #{0}",
|
||||
"LabelEpisodeTitle": "כותרת הפרק",
|
||||
"LabelEpisodeType": "סוג הפרק",
|
||||
"LabelEpisodeUrlFromRssFeed": "קישור פרק מערוץ RSS",
|
||||
"LabelEpisodes": "פרקים",
|
||||
"LabelEpisodic": "ארעי",
|
||||
"LabelExample": "דוגמה",
|
||||
"LabelExpandSeries": "הרחב סדרה",
|
||||
"LabelExpandSubSeries": "הרחב תת סדרה",
|
||||
"LabelExplicit": "בוטה",
|
||||
"LabelExplicitChecked": "בוטה (מסומן)",
|
||||
"LabelExplicitUnchecked": "לא בוטה (לא מסומן)",
|
||||
"LabelExportOPML": "ייצוא OPML",
|
||||
"LabelFeedURL": "כתובת ערוץ",
|
||||
"LabelFetchingMetadata": "מושך מטא-נתונים",
|
||||
"LabelFile": "קובץ",
|
||||
"LabelFileBirthtime": "זמן יצירת הקובץ",
|
||||
"LabelFileModified": "הקובץ שונה",
|
||||
"LabelFilename": "שם הקובץ",
|
||||
"LabelFileBornDate": "נוצר {0}",
|
||||
"LabelFileModified": "קובץ נערך",
|
||||
"LabelFileModifiedDate": "שונה {0}",
|
||||
"LabelFilename": "שם קובץ",
|
||||
"LabelFilterByUser": "סינון לפי משתמש",
|
||||
"LabelFindEpisodes": "מצא פרקים",
|
||||
"LabelFinished": "הושלם",
|
||||
"LabelFolder": "תיקייה",
|
||||
"LabelFolders": "תיקיות",
|
||||
"LabelFontBold": "מודגש",
|
||||
"LabelFontBoldness": "עובי פונט",
|
||||
"LabelFontFamily": "משפחת הפונטים",
|
||||
"LabelFontItalic": "נטוי",
|
||||
"LabelFontScale": "קנה מידה של הפונט",
|
||||
"LabelFontScale": "גודל פונט",
|
||||
"LabelFontStrikethrough": "קו חוצה",
|
||||
"LabelFormat": "תבנית",
|
||||
"LabelGenre": "ז'אנר",
|
||||
"LabelGenres": "ז'אנרים",
|
||||
"LabelFull": "מלא",
|
||||
"LabelGenre": "סגנון",
|
||||
"LabelGenres": "סגנונות",
|
||||
"LabelHardDeleteFile": "מחיקה חזקה של הקובץ",
|
||||
"LabelHasEbook": "ספר אלקטרוני קיים",
|
||||
"LabelHasSupplementaryEbook": "קיים ספר אלקטרוני נלווה",
|
||||
"LabelHasEbook": "קיים ספר אלקטרוני",
|
||||
"LabelHasSupplementaryEbook": "קיים ספר אלקטרוני משלים",
|
||||
"LabelHideSubtitles": "הסתר תת כותרות",
|
||||
"LabelHighestPriority": "העדיפות הגבוהה ביותר",
|
||||
"LabelHost": "מארח",
|
||||
"LabelHour": "שעה",
|
||||
"LabelHours": "שעות",
|
||||
"LabelIcon": "סמל",
|
||||
"LabelImageURLFromTheWeb": "כתובת התמונה מהרשת",
|
||||
"LabelInProgress": "בתהליך",
|
||||
@@ -341,25 +395,30 @@
|
||||
"LabelIntervalEvery6Hours": "כל 6 שעות",
|
||||
"LabelIntervalEveryDay": "כל יום",
|
||||
"LabelIntervalEveryHour": "כל שעה",
|
||||
"LabelIntervalEveryMinute": "כל דקה",
|
||||
"LabelInvert": "הפוך",
|
||||
"LabelItem": "פריט",
|
||||
"LabelJumpBackwardAmount": "כמות הרצה לאחור",
|
||||
"LabelJumpForwardAmount": "כמות הרצה קדימה",
|
||||
"LabelLanguage": "שפה",
|
||||
"LabelLanguageDefaultServer": "שפת ברירת המחדל של השרת",
|
||||
"LabelLanguages": "שפות",
|
||||
"LabelLastBookAdded": "הספר האחרון שנוסף",
|
||||
"LabelLastBookUpdated": "הספר האחרון שעודכן",
|
||||
"LabelLastSeen": "נראה לאחרונה",
|
||||
"LabelLastTime": "הזמן האחרון",
|
||||
"LabelLastUpdate": "עדכון אחרון",
|
||||
"LabelLayout": "פריסה",
|
||||
"LabelLayoutSinglePage": "דף בודד",
|
||||
"LabelLayout": "Layout",
|
||||
"LabelLayoutSinglePage": "עמוד יחיד",
|
||||
"LabelLayoutSplitPage": "פיצול הדף",
|
||||
"LabelLess": "פחות",
|
||||
"LabelLibrariesAccessibleToUser": "ספריות נגישות למשתמש",
|
||||
"LabelLibrary": "ספרייה",
|
||||
"LabelLibraryFilterSublistEmpty": "לא {0}",
|
||||
"LabelLibraryItem": "פריט ספרייה",
|
||||
"LabelLibraryName": "שם הספרייה",
|
||||
"LabelLimit": "מגבלה",
|
||||
"LabelLineSpacing": "ריווח שורות",
|
||||
"LabelLineSpacing": "מרווח שורה",
|
||||
"LabelListenAgain": "האזן שוב",
|
||||
"LabelLogLevelDebug": "דיבוג",
|
||||
"LabelLogLevelInfo": "מידע",
|
||||
@@ -368,6 +427,10 @@
|
||||
"LabelLowestPriority": "העדיפות הנמוכה ביותר",
|
||||
"LabelMatchExistingUsersBy": "התאם משתמשים קיימים לפי",
|
||||
"LabelMatchExistingUsersByDescription": "משמש לחיבור משתמשים קיימים. לאחר החיבור, המשתמשים יותאמו לפי זיהוי ייחודי מספק ה-SSO שלך",
|
||||
"LabelMaxEpisodesToDownload": "מספר פרקים מקסימלי להורדה. 0 - ללא הגבלה.",
|
||||
"LabelMaxEpisodesToDownloadPerCheck": "מספר פרקים חדשים מקסימלי להורדה בכל בדיקה",
|
||||
"LabelMaxEpisodesToKeep": "מספר פרקים מקסימלי לשמור",
|
||||
"LabelMaxEpisodesToKeepHelp": "ערך של 0 קובע ללא מגבלה. לאחר הורדה אוטומטית של פרק חדש יימחק את הפרק הישן ביותר אם יש לך יותר מ-X פרקים. פעולה זו תמחק רק פרק אחד לכל הורדה חדשה.",
|
||||
"LabelMediaPlayer": "נגן מדיה",
|
||||
"LabelMediaType": "סוג מדיה",
|
||||
"LabelMetaTag": "תג מטא",
|
||||
@@ -375,6 +438,7 @@
|
||||
"LabelMetadataOrderOfPrecedenceDescription": "מקורות המטא-נתונים עם עדיפות גבוהה יחליפו מקורות עם עדיפות נמוכה יותר",
|
||||
"LabelMetadataProvider": "ספק מטא-נתונים",
|
||||
"LabelMinute": "דקה",
|
||||
"LabelMinutes": "דקות",
|
||||
"LabelMissing": "חסר",
|
||||
"LabelMissingEbook": "אין ספר אלקטרוני",
|
||||
"LabelMissingSupplementaryEbook": "אין ספר אלקטרוני נלווה",
|
||||
@@ -387,10 +451,11 @@
|
||||
"LabelNarrators": "מספרים",
|
||||
"LabelNew": "חדש",
|
||||
"LabelNewPassword": "סיסמה חדשה",
|
||||
"LabelNewestAuthors": "הסופרים החדשים ביותר",
|
||||
"LabelNewestAuthors": "הסופרים האחרונים",
|
||||
"LabelNewestEpisodes": "הפרקים החדשים ביותר",
|
||||
"LabelNextBackupDate": "תאריך הגיבוי הבא",
|
||||
"LabelNextScheduledRun": "הרצה מתוזמנת הבאה",
|
||||
"LabelNoCustomMetadataProviders": "אין ספקי מטא-נתונים מותאמים אישית",
|
||||
"LabelNoEpisodesSelected": "לא נבחרו פרקים",
|
||||
"LabelNotFinished": "לא הושלם",
|
||||
"LabelNotStarted": "לא התחיל",
|
||||
@@ -405,7 +470,9 @@
|
||||
"LabelNotificationsMaxQueueSize": "גודל התור המרבי לאירועי התראה",
|
||||
"LabelNotificationsMaxQueueSizeHelp": "האירועים מוגבלים לשליחה אחת לשנייה. האירועים יתעלמו אם התור מלא. הגדרה זו נועדה למנוע ספאם התראות.",
|
||||
"LabelNumberOfBooks": "מספר הספרים",
|
||||
"LabelNumberOfEpisodes": "מספר הפרקים",
|
||||
"LabelNumberOfEpisodes": "# פרקים",
|
||||
"LabelOpenIDAdvancedPermsClaimDescription": "שם OpenID claim המכילה הרשאות מתקדמות לפעולות משתמש בתוך האפליקציה, אשר יחולו על תפקידים שאינם מנהלי מערכת (<b>אם הוגדרה</b>). אם התביעה חסרה בתגובה, הגישה ל-ABS תידחה. אם אפשרות אחת חסרה, היא תטופל כ-<code>false</code> יש לוודא שטענת ספק הזהויות תואמת את המבנה הצפוי:",
|
||||
"LabelOpenIDClaims": "השאר את האפשרויות הבאות ריקות כדי להשבית הקצאת קבוצות והרשאות מתקדמת, ולאחר מכן להקצות אוטומטית את קבוצת 'משתמש'.",
|
||||
"LabelOpenRSSFeed": "פתח ערוץ RSS",
|
||||
"LabelOverwrite": "לשכפל",
|
||||
"LabelPassword": "סיסמה",
|
||||
@@ -433,13 +500,15 @@
|
||||
"LabelProvider": "ספק",
|
||||
"LabelPubDate": "תאריך פרסום",
|
||||
"LabelPublishYear": "שנת הפרסום",
|
||||
"LabelPublishedDate": "פורסם {0}",
|
||||
"LabelPublisher": "מוציא לאור",
|
||||
"LabelRSSFeedCustomOwnerEmail": "אימייל בעלים מותאם אישית",
|
||||
"LabelRSSFeedCustomOwnerName": "שם בעלים מותאם אישית",
|
||||
"LabelRSSFeedOpen": "פתח ערוץ RSS",
|
||||
"LabelRSSFeedOpen": "ערוץ RSS פתוח",
|
||||
"LabelRSSFeedPreventIndexing": "מנע רישום",
|
||||
"LabelRSSFeedSlug": "Slug של ערוץ ה-RSS",
|
||||
"LabelRSSFeedURL": "כתובת ערוץ ה-RSS",
|
||||
"LabelRandomly": "באופן אקראי",
|
||||
"LabelRead": "קריאה",
|
||||
"LabelReadAgain": "קרא שוב",
|
||||
"LabelReadEbookWithoutProgress": "קרא/י ספר אלקטרוני ללא שמירת התקדמות",
|
||||
@@ -465,7 +534,7 @@
|
||||
"LabelSeriesProgress": "התקדמות בסדרה",
|
||||
"LabelServerYearReview": "השנה בסקירה של השרת ({0})",
|
||||
"LabelSetEbookAsPrimary": "קבע כראשי",
|
||||
"LabelSetEbookAsSupplementary": "קבע כספר אלקטרוני נלווה",
|
||||
"LabelSetEbookAsSupplementary": "קבע כמשלים",
|
||||
"LabelSettingsAudiobooksOnly": "רק ספרי קול",
|
||||
"LabelSettingsAudiobooksOnlyHelp": "הפעלת ההגדרה הזו תתעלם מקבצי ספרים אלקטרוניים אלא אם כן הם נמצאים בתיקיית ספרי קול, שבמקרה זה יקבעו כספרים אלקטרוניים נלווים",
|
||||
"LabelSettingsBookshelfViewHelp": "עיצוב סקאומורפי עם מדפי עץ",
|
||||
@@ -500,7 +569,7 @@
|
||||
"LabelShowAll": "הצג הכל",
|
||||
"LabelSize": "גודל",
|
||||
"LabelSleepTimer": "טיימר שינה",
|
||||
"LabelStart": "התחלה",
|
||||
"LabelStart": "התחל",
|
||||
"LabelStartTime": "זמן התחלה",
|
||||
"LabelStarted": "התחיל",
|
||||
"LabelStartedAt": "התחיל ב",
|
||||
@@ -576,8 +645,8 @@
|
||||
"LabelViewQueue": "הצג תור נגן",
|
||||
"LabelVolume": "עוצמת קול",
|
||||
"LabelWeekdaysToRun": "ימי השבוע להרצה",
|
||||
"LabelYearReviewHide": "הסתר שנת סקירה",
|
||||
"LabelYearReviewShow": "הצג שנת סקירה",
|
||||
"LabelYearReviewHide": "הסתר סקירת שנה",
|
||||
"LabelYearReviewShow": "הצג סקירת שנה",
|
||||
"LabelYourAudiobookDuration": "משך הספר הקולי שלך",
|
||||
"LabelYourBookmarks": "הסימניות שלך",
|
||||
"LabelYourPlaylists": "הפלייליסטים שלך",
|
||||
@@ -628,8 +697,8 @@
|
||||
"MessageDownloadingEpisode": "מוריד פרק",
|
||||
"MessageDragFilesIntoTrackOrder": "גרור קבצים לסדר ההשמעה נכון",
|
||||
"MessageEmbedFinished": "ההטמעה הושלמה!",
|
||||
"MessageEpisodesQueuedForDownload": "{0} פרקים בתור להורדה",
|
||||
"MessageFeedURLWillBe": "כתובת URL של העדכון תהיה {0}",
|
||||
"MessageEpisodesQueuedForDownload": "{0} פרק/ים בתור להורדה",
|
||||
"MessageFeedURLWillBe": "כתובת ה- URL של הערוץ תהיה {0}",
|
||||
"MessageFetching": "מושך...",
|
||||
"MessageForceReScanDescription": "תבוצע סריקה מחדש כמו סריקה חדש מאפס, תגי ID3 של קבצי קול, קבצי OPF, וקבצי טקסט ייסרקו כחדשים.",
|
||||
"MessageImportantNotice": "הודעה חשובה!",
|
||||
@@ -644,7 +713,7 @@
|
||||
"MessageMapChapterTitles": "מפה שמות פרקים לפרקי הספר השמורים שלך ללא שינוי תגי זמן",
|
||||
"MessageMarkAllEpisodesFinished": "סמן את כל הפרקים כהסתיימו",
|
||||
"MessageMarkAllEpisodesNotFinished": "סמן את כל הפרקים כלא הסתיימו",
|
||||
"MessageMarkAsFinished": "סמן כהסתיים",
|
||||
"MessageMarkAsFinished": "סמן כהושלם",
|
||||
"MessageMarkAsNotFinished": "סמן כלא הסתיים",
|
||||
"MessageMatchBooksDescription": "ינסה להתאים ספרים בספריית הספרים שלך עם ספר מספק החיפוש הנבחר וימלא פרטים ריקים ותמונות כריכה. לא יחליף פרטים קיימים.",
|
||||
"MessageNoAudioTracks": "אין רצועות שמע",
|
||||
@@ -674,7 +743,7 @@
|
||||
"MessageNoSeries": "אין סדרות",
|
||||
"MessageNoTags": "אין תגיות",
|
||||
"MessageNoTasksRunning": "אין משימות פעילות",
|
||||
"MessageNoUpdatesWereNecessary": "לא היה צורך בעדכונים",
|
||||
"MessageNoUpdatesWereNecessary": "לא נדרש עדכון",
|
||||
"MessageNoUserPlaylists": "אין לך רשימות השמעה",
|
||||
"MessageNotYetImplemented": "עדיין לא מיושם",
|
||||
"MessageOr": "או",
|
||||
@@ -682,6 +751,7 @@
|
||||
"MessagePlayChapter": "הקשב לתחילת הפרק",
|
||||
"MessagePlaylistCreateFromCollection": "צור רשימת השמעה מאוסף",
|
||||
"MessagePodcastHasNoRSSFeedForMatching": "לפודקאסט אין כתובת URL של ערוץ RSS להתאמה",
|
||||
"MessagePodcastSearchField": "הזן מונח חיפוש או כתובת URL של ערוץ RSS",
|
||||
"MessageQuickMatchDescription": "ממלא פרטים ריקים וכריכות עם התוצאה הראשונה מ '{0}'. לא ימחק פרטים אלא אם הגדרת השרת 'העדף מטה-נתונים מותאמים' מופעלת.",
|
||||
"MessageRemoveChapter": "הסר פרק",
|
||||
"MessageRemoveEpisodes": "הסר {0} פרקים",
|
||||
@@ -708,7 +778,7 @@
|
||||
"NoteChangeRootPassword": "המשתמש root הוא המשתמש היחיד שיכולה להיות לו סיסמה ריקה",
|
||||
"NoteChapterEditorTimes": "הערה: זמן ההתחלה של הפרק הראשון חייב להישאר 0:00 וזמן ההתחלה של הפרק האחרון לא יכול לחרוג מהזמן של ספר השמע.",
|
||||
"NoteFolderPicker": "הערה: תיקיות שכבר מופו לא יוצגו",
|
||||
"NoteRSSFeedPodcastAppsHttps": "אזהרה: רוב יישומי הפודקאסט דורשים שכתובת ה-URL ערוץ ה-RSS תשתמש ב-HTTPS",
|
||||
"NoteRSSFeedPodcastAppsHttps": "אזהרה: רוב אפליקציות הפודקאסטים ידרשו שכתובת האתר של ערוץ ה-RSS תשתמש ב-HTTPS",
|
||||
"NoteRSSFeedPodcastAppsPubDate": "אזהרה: פרק אחד או יותר לא מכילים תאריך פרסום. חלק מיישומי הפודקאסט דורשים זאת.",
|
||||
"NoteUploaderFoldersWithMediaFiles": "תיקיות עם קבצי מדיה יעובדו כפריטי ספריה נפרדים.",
|
||||
"NoteUploaderOnlyAudioFiles": "אם מועלים רק קבצי שמע, כל קובץ שמע יעובד כספר שמע נפרד.",
|
||||
@@ -741,7 +811,7 @@
|
||||
"ToastCollectionUpdateSuccess": "האוסף עודכן בהצלחה",
|
||||
"ToastItemCoverUpdateSuccess": "כריכת הפריט עודכנה בהצלחה",
|
||||
"ToastItemDetailsUpdateSuccess": "פרטי הפריט עודכנו בהצלחה",
|
||||
"ToastItemMarkedAsFinishedFailed": "סימון כפריט כהושלם נכשל",
|
||||
"ToastItemMarkedAsFinishedFailed": "סימון כפריט שהושלם נכשל",
|
||||
"ToastItemMarkedAsFinishedSuccess": "הפריט סומן כהושלם בהצלחה",
|
||||
"ToastItemMarkedAsNotFinishedFailed": "סימון כפריט שלא הושלם נכשל",
|
||||
"ToastItemMarkedAsNotFinishedSuccess": "הפריט סומן כלא הושלם בהצלחה",
|
||||
|
||||
@@ -856,6 +856,7 @@
|
||||
"MessageScheduleRunEveryWeekdayAtTime": "Pokreni svaki {0} u {1}",
|
||||
"MessageSearchResultsFor": "Rezultati pretrage za",
|
||||
"MessageSelected": "{0} odabrano",
|
||||
"MessageSeriesSequenceCannotContainSpaces": "Slijed serijala ne može sadržavati praznine",
|
||||
"MessageServerCouldNotBeReached": "Nije moguće pristupiti poslužitelju",
|
||||
"MessageSetChaptersFromTracksDescription": "Postavi poglavlja koristeći se zvučnom datotekom kao poglavljem i nazivom datoteke kao naslovom poglavlja",
|
||||
"MessageShareExpirationWillBe": "Vrijeme isteka će biti <strong>{0}</strong>",
|
||||
|
||||
@@ -708,6 +708,7 @@
|
||||
"MessageAddToPlayerQueue": "Aggiungi alla coda di riproduzione",
|
||||
"MessageAppriseDescription": "Per utilizzare questa funzione è necessario disporre di un'istanza di <a href=\"https://github.com/caronc/apprise-api\" target=\"_blank\">Apprise API</a> in esecuzione o un'API che gestirà quelle stesse richieste. <br />L'API Url dovrebbe essere il percorso URL completo per inviare la notifica, ad esempio se la tua istanza API è servita cosi .<code>http://192.168.1.1:8337</code> Allora dovrai mettere <code>http://192.168.1.1:8337/notify</code>.",
|
||||
"MessageAsinCheck": "Assicurati di utilizzare l'ASIN della regione Audible corretta, non di Amazon.",
|
||||
"MessageAuthenticationOIDCChangesRestart": "Riavvia il tuo server dopo aver salvato per applicare le modifiche OIDC.",
|
||||
"MessageBackupsDescription": "I backup includono utenti, progressi degli utenti, dettagli sugli elementi della libreria, impostazioni del server e immagini archiviate in <code>/metadata/items</code> & <code>/metadata/authors</code>. I backup non includono i file archiviati nelle cartelle della libreria.",
|
||||
"MessageBackupsLocationEditNote": "Nota: l'aggiornamento della posizione di backup non sposterà o modificherà i backup esistenti",
|
||||
"MessageBackupsLocationNoEditNote": "Nota: la posizione del backup viene impostata tramite una variabile di ambiente e non può essere modificata qui.",
|
||||
@@ -855,6 +856,7 @@
|
||||
"MessageScheduleRunEveryWeekdayAtTime": "Esegui ogni {0} alle {1}",
|
||||
"MessageSearchResultsFor": "cerca risultati per",
|
||||
"MessageSelected": "{0} selezionati",
|
||||
"MessageSeriesSequenceCannotContainSpaces": "La sequenza della serie non può contenere spazi",
|
||||
"MessageServerCouldNotBeReached": "Impossibile raggiungere il server",
|
||||
"MessageSetChaptersFromTracksDescription": "Impostare i capitoli utilizzando ciascun file audio come capitolo e il titolo del capitolo come nome del file audio",
|
||||
"MessageShareExpirationWillBe": "Scadrà tra <strong>{0}</strong>",
|
||||
|
||||
@@ -177,6 +177,7 @@
|
||||
"HeaderPlaylist": "Playlista",
|
||||
"HeaderPlaylistItems": "Pozycje listy odtwarzania",
|
||||
"HeaderPodcastsToAdd": "Podcasty do dodania",
|
||||
"HeaderPresets": "Ustawienia wstępne",
|
||||
"HeaderPreviewCover": "Podgląd okładki",
|
||||
"HeaderRSSFeedGeneral": "Szczegóły RSS",
|
||||
"HeaderRSSFeedIsOpen": "Kanał RSS jest otwarty",
|
||||
@@ -219,6 +220,7 @@
|
||||
"LabelAccountTypeAdmin": "Administrator",
|
||||
"LabelAccountTypeGuest": "Gość",
|
||||
"LabelAccountTypeUser": "Użytkownik",
|
||||
"LabelActivities": "Aktywności",
|
||||
"LabelActivity": "Aktywność",
|
||||
"LabelAddToCollection": "Dodaj do kolekcji",
|
||||
"LabelAddToCollectionBatch": "Dodaj {0} książki do kolekcji",
|
||||
@@ -228,6 +230,7 @@
|
||||
"LabelAddedDate": "Dodano {0}",
|
||||
"LabelAdminUsersOnly": "Tylko użytkownicy administracyjni",
|
||||
"LabelAll": "Wszystkie",
|
||||
"LabelAllEpisodesDownloaded": "Wszystkie odcinki pobrane",
|
||||
"LabelAllUsers": "Wszyscy użytkownicy",
|
||||
"LabelAllUsersExcludingGuests": "Wszyscy użytkownicy z wyłączeniem gości",
|
||||
"LabelAllUsersIncludingGuests": "Wszyscy użytkownicy, łącznie z gośćmi",
|
||||
@@ -245,6 +248,7 @@
|
||||
"LabelAutoFetchMetadata": "Automatycznie pobierz metadane",
|
||||
"LabelAutoFetchMetadataHelp": "Pobiera metadane dotyczące tytułu, autora i serii, aby usprawnić przesyłanie. Po przesłaniu może być konieczne dopasowanie dodatkowych metadanych.",
|
||||
"LabelAutoLaunch": "Uruchom automatycznie",
|
||||
"LabelAutoLaunchDescription": "Automatyczne przekierowanie do dostawcy uwierzytelniania podczas przechodzenia na stronę logowania (ręczna zamiana ścieżki <code>/login?autoLaunch=0</code>)",
|
||||
"LabelAutoRegister": "Automatyczna rejestracja",
|
||||
"LabelAutoRegisterDescription": "Automatycznie utwórz nowych użytkowników po zalogowaniu",
|
||||
"LabelBackToUser": "Powrót",
|
||||
@@ -282,6 +286,7 @@
|
||||
"LabelContinueSeries": "Kontynuuj serię",
|
||||
"LabelCover": "Okładka",
|
||||
"LabelCoverImageURL": "URL okładki",
|
||||
"LabelCoverProvider": "Dostawca okładki",
|
||||
"LabelCreatedAt": "Utworzone",
|
||||
"LabelCronExpression": "Wyrażenie CRON",
|
||||
"LabelCurrent": "Aktualny",
|
||||
|
||||
@@ -212,9 +212,9 @@
|
||||
"HeaderUsers": "Пользователи",
|
||||
"HeaderYearReview": "Итоги {0} года",
|
||||
"HeaderYourStats": "Ваша статистика",
|
||||
"LabelAbridged": "Сокращенное издание",
|
||||
"LabelAbridged": "Сокращенная форма",
|
||||
"LabelAbridgedChecked": "Сокращено (отмечено)",
|
||||
"LabelAbridgedUnchecked": "Без сокращений (не отмечено)",
|
||||
"LabelAbridgedUnchecked": "Полное издание (не отмечено)",
|
||||
"LabelAccessibleBy": "Доступ",
|
||||
"LabelAccountType": "Тип учетной записи",
|
||||
"LabelAccountTypeAdmin": "Администратор",
|
||||
@@ -346,8 +346,8 @@
|
||||
"LabelExample": "Пример",
|
||||
"LabelExpandSeries": "Развернуть серию",
|
||||
"LabelExpandSubSeries": "Развернуть подсерию",
|
||||
"LabelExplicit": "Явный",
|
||||
"LabelExplicitChecked": "Явный (отмечено)",
|
||||
"LabelExplicit": "18+",
|
||||
"LabelExplicitChecked": "18+ (отмечено)",
|
||||
"LabelExplicitUnchecked": "Не явно (не отмечено)",
|
||||
"LabelExportOPML": "Экспорт OPML",
|
||||
"LabelFeedURL": "URL канала",
|
||||
@@ -856,6 +856,7 @@
|
||||
"MessageScheduleRunEveryWeekdayAtTime": "Запуск каждые {0} по {1}",
|
||||
"MessageSearchResultsFor": "Результаты поиска для",
|
||||
"MessageSelected": "{0} выбрано",
|
||||
"MessageSeriesSequenceCannotContainSpaces": "Последовательность серии должна быть без пропусков",
|
||||
"MessageServerCouldNotBeReached": "Не удалось связаться с сервером",
|
||||
"MessageSetChaptersFromTracksDescription": "Установка глав с использованием каждого аудиофайла в качестве главы и заголовка главы в качестве имени аудиофайла",
|
||||
"MessageShareExpirationWillBe": "Срок действия истекает <strong>{0}</strong>",
|
||||
|
||||
@@ -531,6 +531,7 @@
|
||||
"LabelReleaseDate": "Dátum vydania",
|
||||
"LabelRemoveAllMetadataAbs": "Odstrániť všetky súbory metadata.abs",
|
||||
"LabelRemoveAllMetadataJson": "Odstrániť všetky súbory metadata.json",
|
||||
"LabelRemoveAudibleBranding": "Odstrániť z kapitol Audible intro a outro",
|
||||
"LabelRemoveCover": "Odstrániť prebal",
|
||||
"LabelRemoveMetadataFile": "Odstrániť súbory metadát z priečinkov položiek v knižnici",
|
||||
"LabelRemoveMetadataFileHelp": "Odstrániť všetky súbory metadata.json a metadata.abs vo Vašich {0} priečinkoch.",
|
||||
@@ -707,6 +708,7 @@
|
||||
"MessageAddToPlayerQueue": "Pridať do zoznamu prehrávania",
|
||||
"MessageAppriseDescription": "Aby ste mohli používať túto funkciumusíte mať k dispozícii inštanciu <a href=\"https://github.com/caronc/apprise-api\" target=\"_blank\">Apprise API</a> alebo inú, ktorá dokáže spracovávať rovnaké požiadavky/requesty.<br/>Apprise URL musí byť úplná URL určená na zasielanie notifikácií, tj. ak napr. vaša APi beží na <code>http://192.168.1.1:8337</code>, vložte do daného poľa <code>http://192.168.1.1:8337/notify</code>.",
|
||||
"MessageAsinCheck": "Uistite sa, že používate ASIN zo správneho regiónu Audible, nie Amazonu.",
|
||||
"MessageAuthenticationOIDCChangesRestart": "Reštartujte svoj server po uložení, aby mohli byť použité zmeny OIDC.",
|
||||
"MessageBackupsDescription": "Zálohy pokrývajú používateľov, ich aktuálne stavy počúvania, detaily položiek knižnice, nastavenia servera a obrázky uložené v <code>/metadata/items</code> a <code>/metadata/authors</code>. Zálohy <strong>neobsahujú</strong> súbory v priečinkoch vašich knižníc.",
|
||||
"MessageBackupsLocationEditNote": "Poznámka: Zmena umiestnenia záloh nepresunie ani nezmení existujúce zálohy",
|
||||
"MessageBackupsLocationNoEditNote": "Poznámka: Umietnenie záloh je nastavené prostredníctvom premennej prostredia a nie je ho možné zmeniť z tohto miesta.",
|
||||
@@ -786,7 +788,7 @@
|
||||
"MessageItemsSelected": "{0} vybraných položiek",
|
||||
"MessageItemsUpdated": "{0} aktualizovaných položiek",
|
||||
"MessageJoinUsOn": "Pridajte sa k nám",
|
||||
"MessageLoading": "Načítanie...",
|
||||
"MessageLoading": "Načítavam...",
|
||||
"MessageLoadingFolders": "Načítanie priečinkov...",
|
||||
"MessageLogsDescription": "Záznamy logovania sú uložené v <code>/metadata/logs</code> vo forme JSON súborov. Záznamy kritických chýb sú uložené v <code>/metadata/logs/crash_logs.txt</code>.",
|
||||
"MessageM4BFailed": "M4B zlyhalo!",
|
||||
@@ -826,7 +828,7 @@
|
||||
"MessageNoSeries": "Žiadne série",
|
||||
"MessageNoTags": "Žiadne štítky",
|
||||
"MessageNoTasksRunning": "Žiadne prebiehajúce úlohy",
|
||||
"MessageNoUpdatesWereNecessary": "Žiadne nutné aktualizácie",
|
||||
"MessageNoUpdatesWereNecessary": "Neboli potrebné žiadne aktualizácie",
|
||||
"MessageNoUserPlaylists": "Nemáte žiadny playlist",
|
||||
"MessageNoUserPlaylistsHelp": "Playlisty sú súkromné. Každý playlist môže vidieť iba používateľ, ktorý ho vytvoril.",
|
||||
"MessageNotYetImplemented": "Ešte neimplementované",
|
||||
@@ -854,6 +856,7 @@
|
||||
"MessageScheduleRunEveryWeekdayAtTime": "Spustiť každú {0} o {1}",
|
||||
"MessageSearchResultsFor": "Výsledky vyhľadávania pre",
|
||||
"MessageSelected": "{0} vybrané",
|
||||
"MessageSeriesSequenceCannotContainSpaces": "Poradie série nemôže obsahovať medzery",
|
||||
"MessageServerCouldNotBeReached": "Nepodarilo sa pripojiť na server",
|
||||
"MessageSetChaptersFromTracksDescription": "Nastaviť jednotlivé zvukové súbory ako kapitoly a názvy zvukových súborov ako názvy týchto kapitol",
|
||||
"MessageShareExpirationWillBe": "Expiruje <strong>{0}</strong>",
|
||||
@@ -907,8 +910,8 @@
|
||||
"NoteChangeRootPassword": "Root používateľ je jediný používateľ, ktorý môže mať prázdne heslo",
|
||||
"NoteChapterEditorTimes": "Poznámka: Prvá kapitola musí vždy začínať v 0:00 a začiatok poslednej kapitoly nemôže prekročiť trvanie tejto audioknihy.",
|
||||
"NoteFolderPicker": "Poznámka: Priečinky, ktoré už boli priradené, sa ďalej nezobrazujú",
|
||||
"NoteRSSFeedPodcastAppsHttps": "Varovanie: Väčšina podcastových aplikácií vyžaduje, aby URL RSS zdroja vyžívala HTTPS",
|
||||
"NoteRSSFeedPodcastAppsPubDate": "Varovanie: 1 alebo viacero vašich epizód neobsahuje infomáciu o dátume vydania. Niektoré podcastové aplikácie ju vyžadujú.",
|
||||
"NoteRSSFeedPodcastAppsHttps": "Varovanie: Väčšina podcastových aplikácií požaduje URL RSS zdroja s HTTPS",
|
||||
"NoteRSSFeedPodcastAppsPubDate": "Varovanie: 1 alebo viac vašich epizód neobsahuje infomáciu o dátum vydania. Niektoré podcastové ju vyžadujú.",
|
||||
"NoteUploaderFoldersWithMediaFiles": "Priečinky obsahujúce súbory médií budú považované za samostatné položky knižnice.",
|
||||
"NoteUploaderOnlyAudioFiles": "Ak budú nahraté iba zvukové súbory, každý zvukový súbor bude považovaný za samostatnú audioknihu.",
|
||||
"NoteUploaderUnsupportedFiles": "Nepodporované súbory budú ignorované. Pri výbere alebo prenesení priečinka, budú všetky súbory, ktoré nie sú v priečinku niektorej z položiek, ignorované.",
|
||||
@@ -972,6 +975,8 @@
|
||||
"ToastCachePurgeFailed": "Vyčistenie vyrovnávacej pamäte zlyhalo",
|
||||
"ToastCachePurgeSuccess": "Vyrovnávacia pamäť vyčistená",
|
||||
"ToastChaptersHaveErrors": "Kapitoly obsahujú chyby",
|
||||
"ToastChaptersInvalidShiftAmountLast": "Neplatná hodnota veľkosti posunutia. Začiatok poslednej kapitoly by ležal za koncom audioknihy.",
|
||||
"ToastChaptersInvalidShiftAmountStart": "Nesprávna hodnota posunutia. Prvá kapitola by mala nulovú alebo zápornú dĺžku a bola by nahradená nasledujúcou kapitolou. Navýšte čas začiatku druhej kapitoly.",
|
||||
"ToastChaptersMustHaveTitles": "Kapitoly musia mať názvy",
|
||||
"ToastChaptersRemoved": "Kapitoly boli odstránené",
|
||||
"ToastChaptersUpdated": "Kapitoly boli aktualizované",
|
||||
|
||||
@@ -856,6 +856,7 @@
|
||||
"MessageScheduleRunEveryWeekdayAtTime": "Zaženi vsakih {0} ob {1}",
|
||||
"MessageSearchResultsFor": "Rezultati iskanja za",
|
||||
"MessageSelected": "{0} izbrano",
|
||||
"MessageSeriesSequenceCannotContainSpaces": "Zaporedje serij ne sme vsebovati presledkov",
|
||||
"MessageServerCouldNotBeReached": "Strežnika ni bilo mogoče doseči",
|
||||
"MessageSetChaptersFromTracksDescription": "Nastavi poglavja z uporabo vsake zvočne datoteke kot poglavja in naslova poglavja kot imena zvočne datoteke",
|
||||
"MessageShareExpirationWillBe": "Potečeno bo <strong>{0}</strong>",
|
||||
|
||||
@@ -856,6 +856,7 @@
|
||||
"MessageScheduleRunEveryWeekdayAtTime": "Запуск кожні {0} о {1}",
|
||||
"MessageSearchResultsFor": "Результати пошуку для",
|
||||
"MessageSelected": "Вибрано: {0}",
|
||||
"MessageSeriesSequenceCannotContainSpaces": "Послідовність серій не може містити пробілів",
|
||||
"MessageServerCouldNotBeReached": "Не вдалося підключитися до сервера",
|
||||
"MessageSetChaptersFromTracksDescription": "Створити глави з аудіодоріжок, встановивши назви файлів за заголовки",
|
||||
"MessageShareExpirationWillBe": "Термін сплине за <strong>{0}</strong>",
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
"ButtonChooseFiles": "选择文件",
|
||||
"ButtonClearFilter": "清除过滤器",
|
||||
"ButtonCloseFeed": "关闭源",
|
||||
"ButtonCloseSession": "关闭开放会话",
|
||||
"ButtonCloseSession": "关闭活动会话",
|
||||
"ButtonCollections": "收藏",
|
||||
"ButtonConfigureScanner": "配置扫描",
|
||||
"ButtonCreate": "创建",
|
||||
@@ -177,6 +177,7 @@
|
||||
"HeaderPlaylist": "播放列表",
|
||||
"HeaderPlaylistItems": "播放列表项目",
|
||||
"HeaderPodcastsToAdd": "要添加的播客",
|
||||
"HeaderPresets": "预设",
|
||||
"HeaderPreviewCover": "预览封面",
|
||||
"HeaderRSSFeedGeneral": "RSS 详细信息",
|
||||
"HeaderRSSFeedIsOpen": "RSS 源已打开",
|
||||
@@ -530,6 +531,7 @@
|
||||
"LabelReleaseDate": "发布日期",
|
||||
"LabelRemoveAllMetadataAbs": "删除所有 metadata.abs 文件",
|
||||
"LabelRemoveAllMetadataJson": "删除所有 metadata.json 文件",
|
||||
"LabelRemoveAudibleBranding": "删除章节中的 Audible 简介和结尾",
|
||||
"LabelRemoveCover": "移除封面",
|
||||
"LabelRemoveMetadataFile": "删除库项目文件夹中的元数据文件",
|
||||
"LabelRemoveMetadataFileHelp": "删除 {0} 文件夹中的所有 metadata.json 和 metadata.abs 文件.",
|
||||
@@ -706,6 +708,7 @@
|
||||
"MessageAddToPlayerQueue": "添加到播放队列",
|
||||
"MessageAppriseDescription": "要使用此功能,你需要运行一个 <a href=\"https://github.com/caronc/apprise-api\" target=\"_blank\">Apprise API</a> 实例或一个可以处理这些相同请求的 API. <br />Apprise API Url 应该是发送通知的完整 URL 路径, 例如: 如果你的 API 实例运行在 <code>http://192.168.1.1:8337</code>, 那么你可以输入 <code>http://192.168.1.1:8337/notify</code>.",
|
||||
"MessageAsinCheck": "确保你使用的 ASIN 来自正确的 Audible 地区, 而不是亚马逊.",
|
||||
"MessageAuthenticationOIDCChangesRestart": "保存后重新启动服务器以应用 OIDC 更改.",
|
||||
"MessageBackupsDescription": "备份包括用户, 用户进度, 媒体库项目详细信息, 服务器设置和图像, 存储在 <code>/metadata/items</code> & <code>/metadata/authors</code>. 备份不包括存储在你的媒体库文件夹中的任何文件.",
|
||||
"MessageBackupsLocationEditNote": "注意: 更新备份位置不会移动或修改现有备份",
|
||||
"MessageBackupsLocationNoEditNote": "注意: 备份位置是通过环境变量设置的, 不能在此处更改.",
|
||||
@@ -853,6 +856,7 @@
|
||||
"MessageScheduleRunEveryWeekdayAtTime": "每隔 {0} 在 {1} 运行一次",
|
||||
"MessageSearchResultsFor": "搜索结果",
|
||||
"MessageSelected": "{0} 已选择",
|
||||
"MessageSeriesSequenceCannotContainSpaces": "系列序列不能包含空格",
|
||||
"MessageServerCouldNotBeReached": "无法访问服务器",
|
||||
"MessageSetChaptersFromTracksDescription": "把每个音频文件设置为章节并将章节标题设置为音频文件名",
|
||||
"MessageShareExpirationWillBe": "到期日期为 <strong>{0}</strong>",
|
||||
@@ -971,6 +975,8 @@
|
||||
"ToastCachePurgeFailed": "清除缓存失败",
|
||||
"ToastCachePurgeSuccess": "缓存清除成功",
|
||||
"ToastChaptersHaveErrors": "章节有错误",
|
||||
"ToastChaptersInvalidShiftAmountLast": "偏移量无效. 最后一章的开始时间将超过这本有声读物的持续时间.",
|
||||
"ToastChaptersInvalidShiftAmountStart": "偏移量无效. 第一章的长度将为零或负数, 并会被第二章覆盖. 请增加第二章的起始时长.",
|
||||
"ToastChaptersMustHaveTitles": "章节必须有标题",
|
||||
"ToastChaptersRemoved": "已删除章节",
|
||||
"ToastChaptersUpdated": "章节已更新",
|
||||
|
||||
4
package-lock.json
generated
4
package-lock.json
generated
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "audiobookshelf",
|
||||
"version": "2.23.0",
|
||||
"version": "2.24.0",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "audiobookshelf",
|
||||
"version": "2.23.0",
|
||||
"version": "2.24.0",
|
||||
"license": "GPL-3.0",
|
||||
"dependencies": {
|
||||
"axios": "^0.27.2",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "audiobookshelf",
|
||||
"version": "2.23.0",
|
||||
"version": "2.24.0",
|
||||
"buildNumber": 1,
|
||||
"description": "Self-hosted audiobook and podcast server",
|
||||
"main": "index.js",
|
||||
|
||||
@@ -765,6 +765,15 @@ class Database {
|
||||
if (badSessionsRemoved > 0) {
|
||||
Logger.warn(`Removed ${badSessionsRemoved} sessions that were 3 seconds or less`)
|
||||
}
|
||||
|
||||
// Remove mediaProgresses with duplicate mediaItemId (remove the oldest updatedAt)
|
||||
const [duplicateMediaProgresses] = await this.sequelize.query(`SELECT id, mediaItemId FROM mediaProgresses WHERE (mediaItemId, updatedAt) IN (SELECT mediaItemId, MIN(updatedAt) FROM mediaProgresses GROUP BY mediaItemId HAVING COUNT(*) > 1)`)
|
||||
for (const duplicateMediaProgress of duplicateMediaProgresses) {
|
||||
Logger.warn(`Found duplicate mediaProgress for mediaItem "${duplicateMediaProgress.mediaItemId}" - removing it`)
|
||||
await this.mediaProgressModel.destroy({
|
||||
where: { id: duplicateMediaProgress.id }
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
async createTextSearchQuery(query) {
|
||||
|
||||
@@ -12,6 +12,7 @@ const { version } = require('../package.json')
|
||||
|
||||
// Utils
|
||||
const fileUtils = require('./utils/fileUtils')
|
||||
const { toNumber } = require('./utils/index')
|
||||
const Logger = require('./Logger')
|
||||
|
||||
const Auth = require('./Auth')
|
||||
@@ -84,12 +85,8 @@ class Server {
|
||||
global.DisableSsrfRequestFilter = (url) => whitelistedUrls.includes(new URL(url).hostname)
|
||||
}
|
||||
}
|
||||
|
||||
if (process.env.PODCAST_DOWNLOAD_TIMEOUT) {
|
||||
global.PodcastDownloadTimeout = process.env.PODCAST_DOWNLOAD_TIMEOUT
|
||||
} else {
|
||||
global.PodcastDownloadTimeout = 30000
|
||||
}
|
||||
global.PodcastDownloadTimeout = toNumber(process.env.PODCAST_DOWNLOAD_TIMEOUT, 30000)
|
||||
global.MaxFailedEpisodeChecks = toNumber(process.env.MAX_FAILED_EPISODE_CHECKS, 24)
|
||||
|
||||
if (!fs.pathExistsSync(global.ConfigPath)) {
|
||||
fs.mkdirSync(global.ConfigPath)
|
||||
|
||||
@@ -9,6 +9,7 @@ const fs = require('../libs/fsExtra')
|
||||
const { getPodcastFeed, findMatchingEpisodes } = require('../utils/podcastUtils')
|
||||
const { getFileTimestampsWithIno, filePathToPOSIX } = require('../utils/fileUtils')
|
||||
const { validateUrl } = require('../utils/index')
|
||||
const htmlSanitizer = require('../utils/htmlSanitizer')
|
||||
|
||||
const Scanner = require('../scanner/Scanner')
|
||||
const CoverManager = require('../managers/CoverManager')
|
||||
@@ -404,6 +405,15 @@ class PodcastController {
|
||||
const supportedStringKeys = ['title', 'subtitle', 'description', 'pubDate', 'episode', 'season', 'episodeType']
|
||||
for (const key in req.body) {
|
||||
if (supportedStringKeys.includes(key) && typeof req.body[key] === 'string') {
|
||||
// Sanitize description HTML
|
||||
if (key === 'description' && req.body[key]) {
|
||||
const sanitizedDescription = htmlSanitizer.sanitize(req.body[key])
|
||||
if (sanitizedDescription !== req.body[key]) {
|
||||
Logger.debug(`[PodcastController] Sanitized description from "${req.body[key]}" to "${sanitizedDescription}"`)
|
||||
req.body[key] = sanitizedDescription
|
||||
}
|
||||
}
|
||||
|
||||
updatePayload[key] = req.body[key]
|
||||
} else if (key === 'chapters' && Array.isArray(req.body[key]) && req.body[key].every((ch) => typeof ch === 'object' && ch.title && ch.start)) {
|
||||
updatePayload[key] = req.body[key]
|
||||
|
||||
@@ -203,7 +203,15 @@ class AbMergeManager {
|
||||
// Move library item tracks to cache
|
||||
for (const [index, trackPath] of task.data.originalTrackPaths.entries()) {
|
||||
const trackFilename = Path.basename(trackPath)
|
||||
const moveToPath = Path.join(task.data.itemCachePath, trackFilename)
|
||||
let moveToPath = Path.join(task.data.itemCachePath, trackFilename)
|
||||
|
||||
// If the track is the same as the temp file, we need to rename it to avoid overwriting it
|
||||
if (task.data.tempFilepath === moveToPath) {
|
||||
const trackExtname = Path.extname(task.data.tempFilepath)
|
||||
const newTrackFilename = Path.basename(task.data.tempFilepath, trackExtname) + '.backup' + trackExtname
|
||||
moveToPath = Path.join(task.data.itemCachePath, newTrackFilename)
|
||||
}
|
||||
|
||||
Logger.debug(`[AbMergeManager] Backing up original track "${trackPath}" to ${moveToPath}`)
|
||||
if (index === 0) {
|
||||
// copy the first track to the cache directory
|
||||
|
||||
@@ -30,7 +30,7 @@ class PodcastManager {
|
||||
this.currentDownload = null
|
||||
|
||||
this.failedCheckMap = {}
|
||||
this.MaxFailedEpisodeChecks = 24
|
||||
this.MaxFailedEpisodeChecks = global.MaxFailedEpisodeChecks
|
||||
}
|
||||
|
||||
getEpisodeDownloadsInQueue(libraryItemId) {
|
||||
@@ -345,7 +345,7 @@ class PodcastManager {
|
||||
// Allow up to MaxFailedEpisodeChecks failed attempts before disabling auto download
|
||||
if (!this.failedCheckMap[libraryItem.id]) this.failedCheckMap[libraryItem.id] = 0
|
||||
this.failedCheckMap[libraryItem.id]++
|
||||
if (this.failedCheckMap[libraryItem.id] >= this.MaxFailedEpisodeChecks) {
|
||||
if (this.MaxFailedEpisodeChecks !== 0 && this.failedCheckMap[libraryItem.id] >= this.MaxFailedEpisodeChecks) {
|
||||
Logger.error(`[PodcastManager] runEpisodeCheck ${this.failedCheckMap[libraryItem.id]} failed attempts at checking episodes for "${libraryItem.media.title}" - disabling auto download`)
|
||||
libraryItem.media.autoDownloadEpisodes = false
|
||||
delete this.failedCheckMap[libraryItem.id]
|
||||
@@ -384,7 +384,17 @@ class PodcastManager {
|
||||
Logger.error(`[PodcastManager] checkPodcastForNewEpisodes no feed url for ${podcastLibraryItem.media.title} (ID: ${podcastLibraryItem.id})`)
|
||||
return null
|
||||
}
|
||||
const feed = await getPodcastFeed(podcastLibraryItem.media.feedURL)
|
||||
const feed = await Promise.race([
|
||||
getPodcastFeed(podcastLibraryItem.media.feedURL),
|
||||
new Promise((_, reject) =>
|
||||
// The added second is to make sure that axios can fail first and only falls back later
|
||||
setTimeout(() => reject(new Error('Timeout. getPodcastFeed seemed to timeout but not triggering the timeout.')), global.PodcastDownloadTimeout + 1000)
|
||||
)
|
||||
]).catch((error) => {
|
||||
Logger.error(`[PodcastManager] checkPodcastForNewEpisodes failed to fetch feed for ${podcastLibraryItem.media.title} (ID: ${podcastLibraryItem.id}):`, error)
|
||||
return null
|
||||
})
|
||||
|
||||
if (!feed?.episodes) {
|
||||
Logger.error(`[PodcastManager] checkPodcastForNewEpisodes invalid feed payload for ${podcastLibraryItem.media.title} (ID: ${podcastLibraryItem.id})`, feed)
|
||||
return null
|
||||
|
||||
@@ -377,8 +377,17 @@ class Book extends Model {
|
||||
if (typeof payload.metadata[key] == 'number') {
|
||||
payload.metadata[key] = String(payload.metadata[key])
|
||||
}
|
||||
|
||||
|
||||
if ((typeof payload.metadata[key] === 'string' || payload.metadata[key] === null) && this[key] !== payload.metadata[key]) {
|
||||
// Sanitize description HTML
|
||||
if (key === 'description' && payload.metadata[key]) {
|
||||
const sanitizedDescription = htmlSanitizer.sanitize(payload.metadata[key])
|
||||
if (sanitizedDescription !== payload.metadata[key]) {
|
||||
Logger.debug(`[Book] "${this.title}" Sanitized description from "${payload.metadata[key]}" to "${sanitizedDescription}"`)
|
||||
payload.metadata[key] = sanitizedDescription
|
||||
}
|
||||
}
|
||||
|
||||
this[key] = payload.metadata[key] || null
|
||||
|
||||
if (key === 'title') {
|
||||
|
||||
@@ -2,6 +2,7 @@ const { DataTypes, Model } = require('sequelize')
|
||||
const { getTitlePrefixAtEnd, getTitleIgnorePrefix } = require('../utils')
|
||||
const Logger = require('../Logger')
|
||||
const libraryItemsPodcastFilters = require('../utils/queries/libraryItemsPodcastFilters')
|
||||
const htmlSanitizer = require('../utils/htmlSanitizer')
|
||||
|
||||
/**
|
||||
* @typedef PodcastExpandedProperties
|
||||
@@ -215,6 +216,15 @@ class Podcast extends Model {
|
||||
newKey = 'itunesPageURL'
|
||||
}
|
||||
if ((typeof payload.metadata[key] === 'string' || payload.metadata[key] === null) && payload.metadata[key] !== this[newKey]) {
|
||||
// Sanitize description HTML
|
||||
if (key === 'description' && payload.metadata[key]) {
|
||||
const sanitizedDescription = htmlSanitizer.sanitize(payload.metadata[key])
|
||||
if (sanitizedDescription !== payload.metadata[key]) {
|
||||
Logger.debug(`[Podcast] "${this.title}" Sanitized description from "${payload.metadata[key]}" to "${sanitizedDescription}"`)
|
||||
payload.metadata[key] = sanitizedDescription
|
||||
}
|
||||
}
|
||||
|
||||
this[newKey] = payload.metadata[key] || null
|
||||
|
||||
if (key === 'title') {
|
||||
|
||||
@@ -149,11 +149,12 @@ module.exports = {
|
||||
libraryId
|
||||
}
|
||||
const libraryItemIncludes = []
|
||||
if (includeRSSFeed) {
|
||||
if (filterGroup === 'feed-open' || includeRSSFeed) {
|
||||
const rssFeedRequired = filterGroup === 'feed-open'
|
||||
libraryItemIncludes.push({
|
||||
model: Database.feedModel,
|
||||
required: filterGroup === 'feed-open',
|
||||
separate: true
|
||||
required: rssFeedRequired,
|
||||
separate: !rssFeedRequired
|
||||
})
|
||||
}
|
||||
if (filterGroup === 'issues') {
|
||||
|
||||
Reference in New Issue
Block a user