From 679bdf36b117a59b4db0cd8022818acc5d17f5b7 Mon Sep 17 00:00:00 2001 From: Jorge <46056498+jorgectf@users.noreply.github.com> Date: Mon, 3 Jul 2023 09:15:04 +0200 Subject: [PATCH 001/216] Add CodeQL workflow --- .github/workflows/codeql.yml | 65 ++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 .github/workflows/codeql.yml diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml new file mode 100644 index 000000000..a77ab3e0a --- /dev/null +++ b/.github/workflows/codeql.yml @@ -0,0 +1,65 @@ +name: "CodeQL" + +on: + push: + branches: [ 'master' ] + pull_request: + # The branches below must be a subset of the branches above + branches: [ 'master' ] + schedule: + - cron: '16 5 * * 4' + +jobs: + analyze: + name: Analyze + runs-on: ubuntu-latest + permissions: + actions: read + contents: read + security-events: write + + strategy: + fail-fast: false + matrix: + language: [ 'javascript' ] + # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ] + # Use only 'java' to analyze code written in Java, Kotlin or both + # Use only 'javascript' to analyze code written in JavaScript, TypeScript or both + # Learn more about CodeQL language support at https://aka.ms/codeql-docs/language-support + + steps: + - name: Checkout repository + uses: actions/checkout@v3 + + # Initializes the CodeQL tools for scanning. + - name: Initialize CodeQL + uses: github/codeql-action/init@v2 + with: + languages: ${{ matrix.language }} + # If you wish to specify custom queries, you can do so here or in a config file. + # By default, queries listed here will override any specified in a config file. + # Prefix the list here with "+" to use these queries and those in the config file. + + # For more details on CodeQL's query packs, refer to: https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs + # queries: security-extended,security-and-quality + + + # Autobuild attempts to build any compiled languages (C/C++, C#, Go, Java, or Swift). + # If this step fails, then you should remove it and run the build manually (see below) + - name: Autobuild + uses: github/codeql-action/autobuild@v2 + + # ℹ️ Command-line programs to run using the OS shell. + # 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun + + # If the Autobuild fails above, remove it and uncomment the following three lines. + # modify them (or add more) to build your code if your project, please refer to the EXAMPLE below for guidance. + + # - run: | + # echo "Run, Build Application using script" + # ./location_of_script_within_repo/buildscript.sh + + - name: Perform CodeQL Analysis + uses: github/codeql-action/analyze@v2 + with: + category: "/language:${{matrix.language}}" From 2ebdb4482673371db2adb94c9e828ed209cc9a37 Mon Sep 17 00:00:00 2001 From: mikiher Date: Thu, 1 Feb 2024 12:03:12 +0200 Subject: [PATCH 002/216] Merge cover and media update in Match.vue into a single /media API call --- client/components/modals/item/tabs/Match.vue | 21 ++++-------------- server/controllers/LibraryItemController.js | 23 +++++++++++++------- 2 files changed, 19 insertions(+), 25 deletions(-) diff --git a/client/components/modals/item/tabs/Match.vue b/client/components/modals/item/tabs/Match.vue index b57e96122..ef4a7753b 100644 --- a/client/components/modals/item/tabs/Match.vue +++ b/client/components/modals/item/tabs/Match.vue @@ -533,24 +533,11 @@ export default { // Persist in local storage localStorage.setItem('selectedMatchUsage', JSON.stringify(this.selectedMatchUsage)) - if (updatePayload.metadata.cover) { - const coverPayload = { - url: updatePayload.metadata.cover - } - const success = await this.$axios.$post(`/api/items/${this.libraryItemId}/cover`, coverPayload).catch((error) => { - console.error('Failed to update', error) - return false - }) - if (success) { - this.$toast.success(this.$strings.ToastItemCoverUpdateSuccess) - } else { - this.$toast.error(this.$strings.ToastItemCoverUpdateFailed) - } - console.log('Updated cover') - delete updatePayload.metadata.cover - } - if (Object.keys(updatePayload).length) { + if (updatePayload.metadata.cover) { + updatePayload.url = updatePayload.metadata.cover + delete updatePayload.metadata.cover + } const mediaUpdatePayload = updatePayload const updateResult = await this.$axios.$patch(`/api/items/${this.libraryItemId}/media`, mediaUpdatePayload).catch((error) => { console.error('Failed to update', error) diff --git a/server/controllers/LibraryItemController.js b/server/controllers/LibraryItemController.js index 26b375a0f..dfa1daeac 100644 --- a/server/controllers/LibraryItemController.js +++ b/server/controllers/LibraryItemController.js @@ -124,6 +124,11 @@ class LibraryItemController { const libraryItem = req.libraryItem const mediaPayload = req.body + if (mediaPayload.url) { + await LibraryItemController.prototype.uploadCover.bind(this)(req, res, false) + if (res.writableEnded) return + } + // Book specific if (libraryItem.isBook) { await this.createAuthorsAndSeriesForItemUpdate(mediaPayload, libraryItem.libraryId) @@ -146,7 +151,7 @@ class LibraryItemController { seriesRemoved = libraryItem.media.metadata.series.filter(se => !seriesIdsInUpdate.includes(se.id)) } - const hasUpdates = libraryItem.media.update(mediaPayload) + const hasUpdates = libraryItem.media.update(mediaPayload) || mediaPayload.url if (hasUpdates) { libraryItem.updatedAt = Date.now() @@ -171,7 +176,7 @@ class LibraryItemController { } // POST: api/items/:id/cover - async uploadCover(req, res) { + async uploadCover(req, res, updateAndReturnJson = true) { if (!req.user.canUpload) { Logger.warn('User attempted to upload a cover without permission', req.user) return res.sendStatus(403) @@ -196,12 +201,14 @@ class LibraryItemController { return res.status(500).send('Unknown error occurred') } - await Database.updateLibraryItem(libraryItem) - SocketAuthority.emitter('item_updated', libraryItem.toJSONExpanded()) - res.json({ - success: true, - cover: result.cover - }) + if (updateAndReturnJson) { + await Database.updateLibraryItem(libraryItem) + SocketAuthority.emitter('item_updated', libraryItem.toJSONExpanded()) + res.json({ + success: true, + cover: result.cover + }) + } } // PATCH: api/items/:id/cover From e2bb0cfb7cb7fb4587eaf0ff346296c37c24b315 Mon Sep 17 00:00:00 2001 From: KeyboardHammer Date: Sat, 3 Feb 2024 21:48:35 -0600 Subject: [PATCH 003/216] add sorting to author page --- client/components/app/BookShelfToolbar.vue | 30 +++++++++++++++++++ .../pages/library/_library/authors/index.vue | 23 +++++++++++++- client/store/user.js | 4 ++- server/controllers/LibraryController.js | 1 + 4 files changed, 56 insertions(+), 2 deletions(-) diff --git a/client/components/app/BookShelfToolbar.vue b/client/components/app/BookShelfToolbar.vue index bd31768bb..74ab02f1f 100644 --- a/client/components/app/BookShelfToolbar.vue +++ b/client/components/app/BookShelfToolbar.vue @@ -98,6 +98,9 @@ @@ -183,6 +186,30 @@ export default { } ] }, + authorSortItems() { + return [ + { + text: this.$strings.LabelAuthorFirstLast, + value: 'name' + }, + { + text: this.$strings.LabelAuthorLastFirst, + value: 'lastFirst' + }, + { + text: this.$strings.LabelNumberOfBooks, + value: 'numBooks' + }, + { + text: this.$strings.LabelAddedAt, + value: 'addedAt' + }, + { + text: this.$strings.LabelLastUpdated, + value: 'lastUpdated' + } + ] + }, userIsAdminOrUp() { return this.$store.getters['user/getIsAdminOrUp'] }, @@ -455,6 +482,9 @@ export default { updateCollapseBookSeries() { this.saveSettings() }, + updateAuthorSort() { + this.saveSettings() + }, saveSettings() { this.$store.dispatch('user/updateUserSettings', this.settings) }, diff --git a/client/pages/library/_library/authors/index.vue b/client/pages/library/_library/authors/index.vue index 1f8e385be..a81865a56 100644 --- a/client/pages/library/_library/authors/index.vue +++ b/client/pages/library/_library/authors/index.vue @@ -48,9 +48,12 @@ export default { }, methods: { async init() { + this.settings = { ...this.$store.state.user.settings } this.authors = await this.$axios .$get(`/api/libraries/${this.currentLibraryId}/authors`) - .then((response) => response.authors) + .then((response) => { + return this.sortAuthors(response.authors) + }) .catch((error) => { console.error('Failed to load authors', error) return [] @@ -78,15 +81,33 @@ export default { }, editAuthor(author) { this.$store.commit('globals/showEditAuthorModal', author) + }, + sortAuthors(authors) { + const sortProp = this.settings.authorSortBy + const bDesc = this.settings.authorSortDesc === true ? -1 : 1 + return authors.sort((a, b) => { + if (typeof a[sortProp] === 'number' && typeof b[sortProp] === 'number') { + return a[sortProp] > b[sortProp] ? 1 * bDesc : -1 * bDesc + } + return a[sortProp].localeCompare(b[sortProp], undefined, { sensitivity: 'base' }) * bDesc + }) + }, + settingsUpdated(settings) { + for (const key in settings) { + this.settings[key] = settings[key] + } + this.sortAuthors(this.authors) } }, mounted() { this.init() + this.$eventBus.$on('user-settings', this.settingsUpdated) this.$root.socket.on('author_added', this.authorAdded) this.$root.socket.on('author_updated', this.authorUpdated) this.$root.socket.on('author_removed', this.authorRemoved) }, beforeDestroy() { + this.$eventBus.$off('user-settings', this.settingsUpdated) this.$root.socket.off('author_added', this.authorAdded) this.$root.socket.off('author_updated', this.authorUpdated) this.$root.socket.off('author_removed', this.authorRemoved) diff --git a/client/store/user.js b/client/store/user.js index 85babb09e..40a8813f5 100644 --- a/client/store/user.js +++ b/client/store/user.js @@ -11,7 +11,9 @@ export const state = () => ({ useChapterTrack: false, seriesSortBy: 'name', seriesSortDesc: false, - seriesFilterBy: 'all' + seriesFilterBy: 'all', + authorSortBy: 'name', + authorSortDesc: false, } }) diff --git a/server/controllers/LibraryController.js b/server/controllers/LibraryController.js index 70baff85c..b2500d4fd 100644 --- a/server/controllers/LibraryController.js +++ b/server/controllers/LibraryController.js @@ -636,6 +636,7 @@ class LibraryController { for (const author of authors) { const oldAuthor = author.getOldAuthor().toJSON() oldAuthor.numBooks = author.books.length + oldAuthor.lastFirst = author.lastFirst oldAuthors.push(oldAuthor) } From d24427aad8dd613d2035e0424930f705527b185a Mon Sep 17 00:00:00 2001 From: KeyboardHammer Date: Sat, 3 Feb 2024 22:04:40 -0600 Subject: [PATCH 004/216] fix property --- client/components/app/BookShelfToolbar.vue | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/client/components/app/BookShelfToolbar.vue b/client/components/app/BookShelfToolbar.vue index 74ab02f1f..9064c9147 100644 --- a/client/components/app/BookShelfToolbar.vue +++ b/client/components/app/BookShelfToolbar.vue @@ -205,8 +205,8 @@ export default { value: 'addedAt' }, { - text: this.$strings.LabelLastUpdated, - value: 'lastUpdated' + text: this.$strings.LabelUpdatedAt, + value: 'updatedAt' } ] }, From 19af7454f219106a717966522e2b7e1c968c4a28 Mon Sep 17 00:00:00 2001 From: mikiher Date: Wed, 7 Feb 2024 20:57:50 +0200 Subject: [PATCH 005/216] Force Update LibraryItem model updatedAt refresh (fixes #2593) --- server/models/LibraryItem.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/server/models/LibraryItem.js b/server/models/LibraryItem.js index ee8a4bb86..c8971e918 100644 --- a/server/models/LibraryItem.js +++ b/server/models/LibraryItem.js @@ -372,6 +372,9 @@ class LibraryItem extends Model { if (!areEquivalent(updatedLibraryItem[key], existingValue, true)) { Logger.debug(`[LibraryItem] "${libraryItemExpanded.media.title}" ${key} updated from ${existingValue} to ${updatedLibraryItem[key]}`) hasLibraryItemUpdates = true + if (key === 'updatedAt') { + libraryItemExpanded.changed('updatedAt', true) + } } } if (hasLibraryItemUpdates) { @@ -399,6 +402,7 @@ class LibraryItem extends Model { isInvalid: !!oldLibraryItem.isInvalid, mtime: oldLibraryItem.mtimeMs, ctime: oldLibraryItem.ctimeMs, + updatedAt: oldLibraryItem.updatedAt, birthtime: oldLibraryItem.birthtimeMs, size: oldLibraryItem.size, lastScan: oldLibraryItem.lastScan, From 60ea386c6db44ec5e6f30c1450f0a87327b63773 Mon Sep 17 00:00:00 2001 From: pmangro <160148596+pmangro@users.noreply.github.com> Date: Tue, 20 Feb 2024 05:57:52 -0300 Subject: [PATCH 006/216] Updated pt-br string --- client/strings/pt-br.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/client/strings/pt-br.json b/client/strings/pt-br.json index cd4e9cab0..5bb91aed0 100644 --- a/client/strings/pt-br.json +++ b/client/strings/pt-br.json @@ -396,7 +396,7 @@ "LabelPlayMethod": "Método de Reprodução", "LabelPodcast": "Podcast", "LabelPodcasts": "Podcasts", - "LabelPodcastSearchRegion": "Podcast search region", + "LabelPodcastSearchRegion": "Região para pesquisa de podcast", "LabelPodcastType": "Tipo de Podcast", "LabelPort": "Porta", "LabelPrefixesToIgnore": "Prefixos para Ignorar (sem distinção entre maiúsculas e minúsculas)", @@ -765,4 +765,4 @@ "ToastSocketFailedToConnect": "Falha na conexão do socket", "ToastUserDeleteFailed": "Falha ao apagar usuário", "ToastUserDeleteSuccess": "Usuário apagado" -} \ No newline at end of file +} From 2c589c1dbdca3b8926b6242fd0da8b50859a1677 Mon Sep 17 00:00:00 2001 From: lonezel <127624553+lonezel@users.noreply.github.com> Date: Tue, 20 Feb 2024 10:19:48 +0100 Subject: [PATCH 007/216] Update de.json Translated new strings to german - this is my first ever commit on Github, if I need to change something in my workflow let me know! --- client/strings/de.json | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/client/strings/de.json b/client/strings/de.json index ff8e991a8..5c43ef17c 100644 --- a/client/strings/de.json +++ b/client/strings/de.json @@ -32,8 +32,8 @@ "ButtonHide": "Ausblenden", "ButtonHome": "Startseite", "ButtonIssues": "Probleme", - "ButtonJumpBackward": "Jump Backward", - "ButtonJumpForward": "Jump Forward", + "ButtonJumpBackward": "Zurück springen", + "ButtonJumpForward": "Vorwärts springen", "ButtonLatest": "Neuste", "ButtonLibrary": "Bibliothek", "ButtonLogout": "Abmelden", @@ -43,7 +43,7 @@ "ButtonMatchAllAuthors": "Online Metadaten-Abgleich (alle Autoren)", "ButtonMatchBooks": "Online Metadaten-Abgleich (alle Medien)", "ButtonNevermind": "Abbrechen", - "ButtonNextChapter": "Next Chapter", + "ButtonNextChapter": "Nächstes Kapitel", "ButtonOk": "Ok", "ButtonOpenFeed": "Feed öffnen", "ButtonOpenManager": "Manager öffnen", @@ -51,7 +51,7 @@ "ButtonPlay": "Abspielen", "ButtonPlaying": "Spielt", "ButtonPlaylists": "Wiedergabelisten", - "ButtonPreviousChapter": "Previous Chapter", + "ButtonPreviousChapter": "Vorheriges Kapitel", "ButtonPurgeAllCache": "Cache leeren", "ButtonPurgeItemsCache": "Lösche Medien-Cache", "ButtonPurgeMediaProgress": "Lösche Hörfortschritte", @@ -109,7 +109,7 @@ "HeaderCollectionItems": "Sammlungseinträge", "HeaderCover": "Titelbild", "HeaderCurrentDownloads": "Aktuelle Downloads", - "HeaderCustomMetadataProviders": "Custom Metadata Providers", + "HeaderCustomMetadataProviders": "Benutzerdefinierte Metadata Anbieter", "HeaderDetails": "Details", "HeaderDownloadQueue": "Download Warteschlange", "HeaderEbookFiles": "E-Book Dateien", @@ -502,10 +502,10 @@ "LabelTagsAccessibleToUser": "Für Benutzer zugängliche Schlagwörter", "LabelTagsNotAccessibleToUser": "Für Benutzer nicht zugängliche Schlagwörter", "LabelTasks": "Laufende Aufgaben", - "LabelTextEditorBulletedList": "Bulleted list", + "LabelTextEditorBulletedList": "Aufzählungsliste", "LabelTextEditorLink": "Link", - "LabelTextEditorNumberedList": "Numbered list", - "LabelTextEditorUnlink": "Unlink", + "LabelTextEditorNumberedList": "nummerierte Liste", + "LabelTextEditorUnlink": "entkoppeln", "LabelTheme": "Theme", "LabelThemeDark": "Dunkel", "LabelThemeLight": "Hell", @@ -531,7 +531,7 @@ "LabelTracksSingleTrack": "Einzeldatei", "LabelType": "Typ", "LabelUnabridged": "Ungekürzt", - "LabelUndo": "Undo", + "LabelUndo": "Rückgängig machen", "LabelUnknown": "Unbekannt", "LabelUpdateCover": "Titelbild aktualisieren", "LabelUpdateCoverHelp": "Erlaube das Überschreiben bestehender Titelbilder für die ausgewählten Hörbücher, wenn eine Übereinstimmung gefunden wird", @@ -765,4 +765,4 @@ "ToastSocketFailedToConnect": "Verbindung zum WebSocket fehlgeschlagen", "ToastUserDeleteFailed": "Benutzer konnte nicht gelöscht werden", "ToastUserDeleteSuccess": "Benutzer gelöscht" -} \ No newline at end of file +} From a4dcb4f92ec42a13cd3236f3c203b44c4affdf24 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hunyady=20Mih=C3=A1ly?= Date: Tue, 20 Feb 2024 12:25:43 +0100 Subject: [PATCH 008/216] feat(i18n): add Hungarian translation --- client/plugins/i18n.js | 1 + client/strings/hu.json | 768 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 769 insertions(+) create mode 100644 client/strings/hu.json diff --git a/client/plugins/i18n.js b/client/plugins/i18n.js index d7fc972ef..a4a328c74 100644 --- a/client/plugins/i18n.js +++ b/client/plugins/i18n.js @@ -14,6 +14,7 @@ const languageCodeMap = { 'hr': { label: 'Hrvatski', dateFnsLocale: 'hr' }, 'it': { label: 'Italiano', dateFnsLocale: 'it' }, 'lt': { label: 'Lietuvių', dateFnsLocale: 'lt' }, + 'hu': { label: 'Magyar', dateFnsLocale: 'hu' }, 'nl': { label: 'Nederlands', dateFnsLocale: 'nl' }, 'no': { label: 'Norsk', dateFnsLocale: 'no' }, 'pl': { label: 'Polski', dateFnsLocale: 'pl' }, diff --git a/client/strings/hu.json b/client/strings/hu.json new file mode 100644 index 000000000..9d79f28eb --- /dev/null +++ b/client/strings/hu.json @@ -0,0 +1,768 @@ +{ + "ButtonAdd": "Hozzáadás", + "ButtonAddChapters": "Fejezetek hozzáadása", + "ButtonAddDevice": "Eszköz hozzáadása", + "ButtonAddLibrary": "Könyvtár hozzáadása", + "ButtonAddPodcasts": "Podcastok hozzáadása", + "ButtonAddUser": "Felhasználó hozzáadása", + "ButtonAddYourFirstLibrary": "Az első könyvtár hozzáadása", + "ButtonApply": "Alkalmaz", + "ButtonApplyChapters": "Fejezetek alkalmazása", + "ButtonAuthors": "Szerzők", + "ButtonBrowseForFolder": "Mappa keresése", + "ButtonCancel": "Mégse", + "ButtonCancelEncode": "Kódolás megszakítása", + "ButtonChangeRootPassword": "Gyökérjelszó megváltoztatása", + "ButtonCheckAndDownloadNewEpisodes": "Új epizódok ellenőrzése és letöltése", + "ButtonChooseAFolder": "Válassz egy mappát", + "ButtonChooseFiles": "Fájlok kiválasztása", + "ButtonClearFilter": "Szűrő törlése", + "ButtonCloseFeed": "Hírcsatorna bezárása", + "ButtonCollections": "Gyűjtemény", + "ButtonConfigureScanner": "Szkenner konfigurálása", + "ButtonCreate": "Létrehozás", + "ButtonCreateBackup": "Biztonsági másolat készítése", + "ButtonDelete": "Törlés", + "ButtonDownloadQueue": "Sor", + "ButtonEdit": "Szerkesztés", + "ButtonEditChapters": "Fejezetek szerkesztése", + "ButtonEditPodcast": "Podcast szerkesztése", + "ButtonForceReScan": "Újraszkennelés kényszerítése", + "ButtonFullPath": "Teljes útvonal", + "ButtonHide": "Elrejtés", + "ButtonHome": "Kezdőlap", + "ButtonIssues": "Problémák", + "ButtonJumpBackward": "Ugrás vissza", + "ButtonJumpForward": "Ugrás előre", + "ButtonLatest": "Legújabb", + "ButtonLibrary": "Könyvtár", + "ButtonLogout": "Kijelentkezés", + "ButtonLookup": "Keresés", + "ButtonManageTracks": "Sávok kezelése", + "ButtonMapChapterTitles": "Fejezetcímek hozzárendelése", + "ButtonMatchAllAuthors": "Minden szerző egyeztetése", + "ButtonMatchBooks": "Könyvek egyeztetése", + "ButtonNevermind": "Mindegy", + "ButtonNextChapter": "Következő fejezet", + "ButtonOk": "Oké", + "ButtonOpenFeed": "Hírcsatorna megnyitása", + "ButtonOpenManager": "Kezelő megnyitása", + "ButtonPause": "Szünet", + "ButtonPlay": "Lejátszás", + "ButtonPlaying": "Lejátszás folyamatban", + "ButtonPlaylists": "Lejátszási listák", + "ButtonPreviousChapter": "Előző fejezet", + "ButtonPurgeAllCache": "Összes gyorsítótár törlése", + "ButtonPurgeItemsCache": "Elemek gyorsítótárának törlése", + "ButtonPurgeMediaProgress": "Médialejátszás állapotának törlése", + "ButtonQueueAddItem": "Hozzáadás a sorhoz", + "ButtonQueueRemoveItem": "Eltávolítás a sorból", + "ButtonQuickMatch": "Gyors egyeztetés", + "ButtonRead": "Olvasás", + "ButtonRemove": "Eltávolítás", + "ButtonRemoveAll": "Összes eltávolítása", + "ButtonRemoveAllLibraryItems": "Összes könyvtárelem eltávolítása", + "ButtonRemoveFromContinueListening": "Eltávolítás a Folytatás hallgatásából", + "ButtonRemoveFromContinueReading": "Eltávolítás a Folytatás olvasásából", + "ButtonRemoveSeriesFromContinueSeries": "Sorozat eltávolítása a Folytatás sorozatokból", + "ButtonReScan": "Újraszkennelés", + "ButtonReset": "Visszaállítás", + "ButtonResetToDefault": "Alapértelmezésre állítás", + "ButtonRestore": "Visszaállítás", + "ButtonSave": "Mentés", + "ButtonSaveAndClose": "Mentés és bezárás", + "ButtonSaveTracklist": "Sávlista mentése", + "ButtonScan": "Szkennelés", + "ButtonScanLibrary": "Könyvtár szkennelése", + "ButtonSearch": "Keresés", + "ButtonSelectFolderPath": "Mappa útvonalának kiválasztása", + "ButtonSeries": "Sorozatok", + "ButtonSetChaptersFromTracks": "Fejezetek beállítása sávokból", + "ButtonShiftTimes": "Idők eltolása", + "ButtonShow": "Megjelenítés", + "ButtonStartM4BEncode": "M4B kódolás indítása", + "ButtonStartMetadataEmbed": "Metaadatok beágyazásának indítása", + "ButtonSubmit": "Beküldés", + "ButtonTest": "Teszt", + "ButtonUpload": "Feltöltés", + "ButtonUploadBackup": "Biztonsági másolat feltöltése", + "ButtonUploadCover": "Borító feltöltése", + "ButtonUploadOPMLFile": "OPML fájl feltöltése", + "ButtonUserDelete": "Felhasználó törlése {0}", + "ButtonUserEdit": "Felhasználó szerkesztése {0}", + "ButtonViewAll": "Összes megtekintése", + "ButtonYes": "Igen", + "ErrorUploadFetchMetadataAPI": "Hiba a metaadatok lekérésekor", + "ErrorUploadFetchMetadataNoResults": "Nem sikerült a metaadatok lekérése - próbálja meg frissíteni a címet és/vagy a szerzőt", + "ErrorUploadLacksTitle": "Cím szükséges", + "HeaderAccount": "Fiók", + "HeaderAdvanced": "Haladó", + "HeaderAppriseNotificationSettings": "Apprise értesítési beállítások", + "HeaderAudiobookTools": "Hangoskönyv fájlkezelő eszközök", + "HeaderAudioTracks": "Audiósávok", + "HeaderAuthentication": "Hitelesítés", + "HeaderBackups": "Biztonsági másolatok", + "HeaderChangePassword": "Jelszó megváltoztatása", + "HeaderChapters": "Fejezetek", + "HeaderChooseAFolder": "Válasszon egy mappát", + "HeaderCollection": "Gyűjtemény", + "HeaderCollectionItems": "Gyűjtemény elemek", + "HeaderCover": "Borító", + "HeaderCurrentDownloads": "Jelenlegi letöltések", + "HeaderCustomMetadataProviders": "Egyéni metaadat-szolgáltatók", + "HeaderDetails": "Részletek", + "HeaderDownloadQueue": "Letöltési sor", + "HeaderEbookFiles": "E-könyv fájlok", + "HeaderEmail": "E-mail", + "HeaderEmailSettings": "E-mail beállítások", + "HeaderEpisodes": "Epizódok", + "HeaderEreaderDevices": "E-olvasó eszközök", + "HeaderEreaderSettings": "E-olvasó beállítások", + "HeaderFiles": "Fájlok", + "HeaderFindChapters": "Fejezetek keresése", + "HeaderIgnoredFiles": "Figyelmen kívül hagyott fájlok", + "HeaderItemFiles": "Elemfájlok", + "HeaderItemMetadataUtils": "Elem metaadat eszközök", + "HeaderLastListeningSession": "Utolsó hallgatási munkamenet", + "HeaderLatestEpisodes": "Legújabb epizódok", + "HeaderLibraries": "Könyvtárak", + "HeaderLibraryFiles": "Könyvtárfájlok", + "HeaderLibraryStats": "Könyvtár statisztikák", + "HeaderListeningSessions": "Hallgatási munkamenetek", + "HeaderListeningStats": "Hallgatási statisztikák", + "HeaderLogin": "Bejelentkezés", + "HeaderLogs": "Naplók", + "HeaderManageGenres": "Műfajok kezelése", + "HeaderManageTags": "Címkék kezelése", + "HeaderMapDetails": "Részletek hozzárendelése", + "HeaderMatch": "Egyeztetés", + "HeaderMetadataOrderOfPrecedence": "Metaadatok előnyben részesítési sorrendje", + "HeaderMetadataToEmbed": "Beágyazandó metaadatok", + "HeaderNewAccount": "Új fiók", + "HeaderNewLibrary": "Új könyvtár", + "HeaderNotifications": "Értesítések", + "HeaderOpenIDConnectAuthentication": "OpenID Connect hitelesítés", + "HeaderOpenRSSFeed": "RSS hírcsatorna megnyitása", + "HeaderOtherFiles": "Egyéb fájlok", + "HeaderPasswordAuthentication": "Jelszó hitelesítés", + "HeaderPermissions": "Engedélyek", + "HeaderPlayerQueue": "Lejátszó sor", + "HeaderPlaylist": "Lejátszási lista", + "HeaderPlaylistItems": "Lejátszási lista elemek", + "HeaderPodcastsToAdd": "Hozzáadandó podcastok", + "HeaderPreviewCover": "Borító előnézete", + "HeaderRemoveEpisode": "Epizód eltávolítása", + "HeaderRemoveEpisodes": "{0} epizód eltávolítása", + "HeaderRSSFeedGeneral": "RSS részletek", + "HeaderRSSFeedIsOpen": "RSS hírcsatorna nyitva", + "HeaderRSSFeeds": "RSS hírcsatornák", + "HeaderSavedMediaProgress": "Mentett médialejátszási állapot", + "HeaderSchedule": "Ütemezés", + "HeaderScheduleLibraryScans": "Könyvtárak automatikus szkennelésének ütemezése", + "HeaderSession": "Munkamenet", + "HeaderSetBackupSchedule": "Biztonsági másolatok ütemezésének beállítása", + "HeaderSettings": "Beállítások", + "HeaderSettingsDisplay": "Kijelző", + "HeaderSettingsExperimental": "Kísérleti funkciók", + "HeaderSettingsGeneral": "Általános", + "HeaderSettingsScanner": "Szkenner", + "HeaderSleepTimer": "Alvásidőzítő", + "HeaderStatsLargestItems": "Legnagyobb elemek", + "HeaderStatsLongestItems": "Leghosszabb elemek (órákban)", + "HeaderStatsMinutesListeningChart": "Hallgatási percek (az utolsó 7 napban)", + "HeaderStatsRecentSessions": "Legutóbbi munkamenetek", + "HeaderStatsTop10Authors": "Top 10 szerzők", + "HeaderStatsTop5Genres": "Top 5 műfajok", + "HeaderTableOfContents": "Tartalomjegyzék", + "HeaderTools": "Eszközök", + "HeaderUpdateAccount": "Fiók frissítése", + "HeaderUpdateAuthor": "Szerző frissítése", + "HeaderUpdateDetails": "Részletek frissítése", + "HeaderUpdateLibrary": "Könyvtár frissítése", + "HeaderUsers": "Felhasználók", + "HeaderYourStats": "Saját statisztikák", + "LabelAbridged": "Tömörített", + "LabelAccountType": "Fióktípus", + "LabelAccountTypeAdmin": "Admin", + "LabelAccountTypeGuest": "Vendég", + "LabelAccountTypeUser": "Felhasználó", + "LabelActivity": "Tevékenység", + "LabelAdded": "Hozzáadva", + "LabelAddedAt": "Hozzáadás ideje", + "LabelAddToCollection": "Hozzáadás a gyűjteményhez", + "LabelAddToCollectionBatch": "{0} könyv hozzáadása a gyűjteményhez", + "LabelAddToPlaylist": "Hozzáadás a lejátszási listához", + "LabelAddToPlaylistBatch": "{0} elem hozzáadása a lejátszási listához", + "LabelAdminUsersOnly": "Csak admin felhasználók", + "LabelAll": "Minden", + "LabelAllUsers": "Minden felhasználó", + "LabelAllUsersExcludingGuests": "Minden felhasználó, vendégek kivételével", + "LabelAllUsersIncludingGuests": "Minden felhasználó, beleértve a vendégeket is", + "LabelAlreadyInYourLibrary": "Már a könyvtárában van", + "LabelAppend": "Hozzáfűzés", + "LabelAuthor": "Szerző", + "LabelAuthorFirstLast": "Szerző (Keresztnév Vezetéknév)", + "LabelAuthorLastFirst": "Szerző (Vezetéknév, Keresztnév)", + "LabelAuthors": "Szerzők", + "LabelAutoDownloadEpisodes": "Epizódok automatikus letöltése", + "LabelAutoFetchMetadata": "Metaadatok automatikus lekérése", + "LabelAutoFetchMetadataHelp": "Cím, szerző és sorozat metaadatok automatikus lekérése a feltöltés megkönnyítése érdekében. További metaadatok egyeztetése szükséges lehet a feltöltés után.", + "LabelAutoLaunch": "Automatikus indítás", + "LabelAutoLaunchDescription": "Automatikus átirányítás az hitelesítő szolgáltatóhoz a bejelentkezési oldalra navigáláskor (kézi felülbírálás útvonala /login?autoLaunch=0)", + "LabelAutoRegister": "Automatikus regisztráció", + "LabelAutoRegisterDescription": "Új felhasználók automatikus létrehozása bejelentkezés után", + "LabelBackToUser": "Vissza a felhasználóhoz", + "LabelBackupLocation": "Biztonsági másolat helye", + "LabelBackupsEnableAutomaticBackups": "Automatikus biztonsági másolatok engedélyezése", + "LabelBackupsEnableAutomaticBackupsHelp": "Biztonsági másolatok mentése a /metadata/backups mappába", + "LabelBackupsMaxBackupSize": "Maximális biztonsági másolat méret (GB-ban)", + "LabelBackupsMaxBackupSizeHelp": "A rossz konfiguráció elleni védelem érdekében a biztonsági másolatok meghiúsulnak, ha meghaladják a beállított méretet.", + "LabelBackupsNumberToKeep": "Megtartandó biztonsági másolatok száma", + "LabelBackupsNumberToKeepHelp": "Egyszerre csak 1 biztonsági másolat kerül eltávolításra, tehát ha már több biztonsági másolat van, mint ez a szám, akkor manuálisan kell eltávolítani őket.", + "LabelBitrate": "Bitráta", + "LabelBooks": "Könyvek", + "LabelButtonText": "Gomb szövege", + "LabelChangePassword": "Jelszó megváltoztatása", + "LabelChannels": "Csatornák", + "LabelChapters": "Fejezetek", + "LabelChaptersFound": "fejezet található", + "LabelChapterTitle": "Fejezet címe", + "LabelClickForMoreInfo": "További információkért kattintson", + "LabelClosePlayer": "Lejátszó bezárása", + "LabelCodec": "Kodek", + "LabelCollapseSeries": "Sorozat összecsukása", + "LabelCollection": "Gyűjtemény", + "LabelCollections": "Gyűjtemények", + "LabelComplete": "Teljes", + "LabelConfirmPassword": "Jelszó megerősítése", + "LabelContinueListening": "Hallgatás folytatása", + "LabelContinueReading": "Olvasás folytatása", + "LabelContinueSeries": "Sorozat folytatása", + "LabelCover": "Borító", + "LabelCoverImageURL": "Borítókép URL", + "LabelCreatedAt": "Létrehozás ideje", + "LabelCronExpression": "Cron kifejezés", + "LabelCurrent": "Jelenlegi", + "LabelCurrently": "Jelenleg:", + "LabelCustomCronExpression": "Egyéni Cron kifejezés:", + "LabelDatetime": "Dátumidő", + "LabelDeleteFromFileSystemCheckbox": "Törlés a fájlrendszerről (ne jelölje be, ha csak az adatbázisból szeretné eltávolítani)", + "LabelDescription": "Leírás", + "LabelDeselectAll": "Minden kijelölés megszüntetése", + "LabelDevice": "Eszköz", + "LabelDeviceInfo": "Eszköz információ", + "LabelDeviceIsAvailableTo": "Eszköz elérhető a következő számára...", + "LabelDirectory": "Könyvtár", + "LabelDiscFromFilename": "Lemez a fájlnévből", + "LabelDiscFromMetadata": "Lemez a metaadatokból", + "LabelDiscover": "Felfedezés", + "LabelDownload": "Letöltés", + "LabelDownloadNEpisodes": "{0} epizód letöltése", + "LabelDuration": "Időtartam", + "LabelDurationFound": "Megtalált időtartam:", + "LabelEbook": "E-könyv", + "LabelEbooks": "E-könyvek", + "LabelEdit": "Szerkesztés", + "LabelEmail": "E-mail", + "LabelEmailSettingsFromAddress": "Feladó címe", + "LabelEmailSettingsSecure": "Biztonságos", + "LabelEmailSettingsSecureHelp": "Ha igaz, a kapcsolat TLS-t használ a szerverhez való csatlakozáskor. Ha hamis, akkor TLS-t használ, ha a szerver támogatja a STARTTLS kiterjesztést. A legtöbb esetben állítsa ezt az értéket igazra, ha a 465-ös portra csatlakozik. A 587-es vagy 25-ös port esetében tartsa hamis értéken. (a nodemailer.com/smtp/#authentication oldalról)", + "LabelEmailSettingsTestAddress": "Teszt cím", + "LabelEmbeddedCover": "Beágyazott borító", + "LabelEnable": "Engedélyezés", + "LabelEnd": "Vége", + "LabelEpisode": "Epizód", + "LabelEpisodeTitle": "Epizód címe", + "LabelEpisodeType": "Epizód típusa", + "LabelExample": "Példa", + "LabelExplicit": "Explicit", + "LabelFeedURL": "Hírcsatorna URL", + "LabelFetchingMetadata": "Metaadatok lekérése", + "LabelFile": "Fájl", + "LabelFileBirthtime": "Fájl létrehozásának ideje", + "LabelFileModified": "Fájl módosításának ideje", + "LabelFilename": "Fájlnév", + "LabelFilterByUser": "Szűrés felhasználó szerint", + "LabelFindEpisodes": "Epizódok keresése", + "LabelFinished": "Befejezett", + "LabelFolder": "Mappa", + "LabelFolders": "Mappák", + "LabelFontBold": "Félkövér", + "LabelFontFamily": "Betűtípus család", + "LabelFontItalic": "Dőlt", + "LabelFontScale": "Betűméret skála", + "LabelFontStrikethrough": "Áthúzott", + "LabelFormat": "Formátum", + "LabelGenre": "Műfaj", + "LabelGenres": "Műfajok", + "LabelHardDeleteFile": "Fájl végleges törlése", + "LabelHasEbook": "Van e-könyve", + "LabelHasSupplementaryEbook": "Van kiegészítő e-könyve", + "LabelHighestPriority": "Legmagasabb prioritás", + "LabelHost": "Hoszt", + "LabelHour": "Óra", + "LabelIcon": "Ikon", + "LabelImageURLFromTheWeb": "Kép URL a weben", + "LabelIncludeInTracklist": "Beleértve a sávlistába", + "LabelIncomplete": "Befejezetlen", + "LabelInProgress": "Folyamatban", + "LabelInterval": "Intervallum", + "LabelIntervalCustomDailyWeekly": "Egyéni napi/heti", + "LabelIntervalEvery12Hours": "Minden 12 órában", + "LabelIntervalEvery15Minutes": "Minden 15 percben", + "LabelIntervalEvery2Hours": "Minden 2 órában", + "LabelIntervalEvery30Minutes": "Minden 30 percben", + "LabelIntervalEvery6Hours": "Minden 6 órában", + "LabelIntervalEveryDay": "Minden nap", + "LabelIntervalEveryHour": "Minden órában", + "LabelInvalidParts": "Érvénytelen részek", + "LabelInvert": "Megfordítás", + "LabelItem": "Elem", + "LabelLanguage": "Nyelv", + "LabelLanguageDefaultServer": "Szerver alapértelmezett nyelve", + "LabelLastBookAdded": "Utolsó hozzáadott könyv", + "LabelLastBookUpdated": "Utolsó frissített könyv", + "LabelLastSeen": "Utolsó látogatás", + "LabelLastTime": "Utolsó alkalom", + "LabelLastUpdate": "Utolsó frissítés", + "LabelLayout": "Elrendezés", + "LabelLayoutSinglePage": "Egyoldalas", + "LabelLayoutSplitPage": "Kétoldalas", + "LabelLess": "Kevesebb", + "LabelLibrariesAccessibleToUser": "A felhasználó számára elérhető könyvtárak", + "LabelLibrary": "Könyvtár", + "LabelLibraryItem": "Könyvtári elem", + "LabelLibraryName": "Könyvtár neve", + "LabelLimit": "Korlát", + "LabelLineSpacing": "Sorköz", + "LabelListenAgain": "Újrahallgatás", + "LabelLogLevelDebug": "Debug", + "LabelLogLevelInfo": "Információ", + "LabelLogLevelWarn": "Figyelmeztetés", + "LabelLookForNewEpisodesAfterDate": "Új epizódok keresése ezen a dátum után", + "LabelLowestPriority": "Legalacsonyabb prioritás", + "LabelMatchExistingUsersBy": "Meglévő felhasználók egyeztetése", + "LabelMatchExistingUsersByDescription": "Meglévő felhasználók összekapcsolására használt. Egyszer összekapcsolva, a felhasználók egyedülálló azonosítóval lesznek egyeztetve az Ön SSO szolgáltatójától", + "LabelMediaPlayer": "Médialejátszó", + "LabelMediaType": "Média típus", + "LabelMetadataOrderOfPrecedenceDescription": "A magasabb prioritású metaadat-források felülírják az alacsonyabb prioritásúakat", + "LabelMetadataProvider": "Metaadat-szolgáltató", + "LabelMetaTag": "Meta címke", + "LabelMetaTags": "Meta címkék", + "LabelMinute": "Perc", + "LabelMissing": "Hiányzó", + "LabelMissingParts": "Hiányzó részek", + "LabelMobileRedirectURIs": "Engedélyezett mobil átirányítási URI-k", + "LabelMobileRedirectURIsDescription": "Ez egy fehérlista az érvényes mobilalkalmazás-átirányítási URI-k számára. Az alapértelmezett audiobookshelf://oauth, amely eltávolítható vagy kiegészíthető további URI-kkal harmadik féltől származó alkalmazásintegráció érdekében. Ha az egyetlen bejegyzés egy csillag (*), akkor bármely URI engedélyezett.", + "LabelMore": "Több", + "LabelMoreInfo": "További információ", + "LabelName": "Név", + "LabelNarrator": "Előadó", + "LabelNarrators": "Előadók", + "LabelNew": "Új", + "LabelNewestAuthors": "Legújabb szerzők", + "LabelNewestEpisodes": "Legújabb epizódok", + "LabelNewPassword": "Új jelszó", + "LabelNextBackupDate": "Következő biztonsági másolat dátuma", + "LabelNextScheduledRun": "Következő ütemezett futtatás", + "LabelNoEpisodesSelected": "Nincsenek kiválasztott epizódok", + "LabelNotes": "Megjegyzések", + "LabelNotFinished": "Nem befejezett", + "LabelNotificationAppriseURL": "Apprise URL(ek)", + "LabelNotificationAvailableVariables": "Elérhető változók", + "LabelNotificationBodyTemplate": "Törzs sablon", + "LabelNotificationEvent": "Értesítési esemény", + "LabelNotificationsMaxFailedAttempts": "Maximális sikertelen próbálkozások", + "LabelNotificationsMaxFailedAttemptsHelp": "Az értesítések akkor kerülnek letiltásra, ha ennyiszer nem sikerül elküldeni őket", + "LabelNotificationsMaxQueueSize": "Maximális értesítési események sorának mérete", + "LabelNotificationsMaxQueueSizeHelp": "Az események korlátozva vannak, hogy másodpercenként 1-szer történjenek. Ha a sor maximális méretű, akkor az események figyelmen kívül lesznek hagyva. Ez megakadályozza az értesítések spamelését.", + "LabelNotificationTitleTemplate": "Cím sablon", + "LabelNotStarted": "Nem indult el", + "LabelNumberOfBooks": "Könyvek száma", + "LabelNumberOfEpisodes": "Epizódok száma", + "LabelOpenRSSFeed": "RSS hírcsatorna megnyitása", + "LabelOverwrite": "Felülírás", + "LabelPassword": "Jelszó", + "LabelPath": "Útvonal", + "LabelPermissionsAccessAllLibraries": "Hozzáférhet az összes könyvtárhoz", + "LabelPermissionsAccessAllTags": "Hozzáférhet az összes címkéhez", + "LabelPermissionsAccessExplicitContent": "Hozzáférhet explicit tartalomhoz", + "LabelPermissionsDelete": "Törölhet", + "LabelPermissionsDownload": "Letölthet", + "LabelPermissionsUpdate": "Frissíthet", + "LabelPermissionsUpload": "Feltölthet", + "LabelPhotoPathURL": "Fénykép útvonal/URL", + "LabelPlaylists": "Lejátszási listák", + "LabelPlayMethod": "Lejátszási módszer", + "LabelPodcast": "Podcast", + "LabelPodcasts": "Podcastok", + "LabelPodcastSearchRegion": "Podcast keresési régió", + "LabelPodcastType": "Podcast típus", + "LabelPort": "Port", + "LabelPrefixesToIgnore": "Figyelmen kívül hagyandó előtagok (nem érzékeny a kis- és nagybetűkre)", + "LabelPreventIndexing": "A hírcsatorna indexelésének megakadályozása az iTunes és a Google podcast könyvtáraiban", + "LabelPrimaryEbook": "Elsődleges e-könyv", + "LabelProgress": "Haladás", + "LabelProvider": "Szolgáltató", + "LabelPubDate": "Kiadás dátuma", + "LabelPublisher": "Kiadó", + "LabelPublishYear": "Kiadás éve", + "LabelRead": "Olvasás", + "LabelReadAgain": "Újraolvasás", + "LabelReadEbookWithoutProgress": "E-könyv olvasása haladás nélkül", + "LabelRecentlyAdded": "Nemrég hozzáadva", + "LabelRecentSeries": "Legutóbbi sorozatok", + "LabelRecommended": "Ajánlott", + "LabelRedo": "Újra", + "LabelRegion": "Régió", + "LabelReleaseDate": "Megjelenés dátuma", + "LabelRemoveCover": "Borító eltávolítása", + "LabelRowsPerPage": "Sorok száma oldalanként", + "LabelRSSFeedCustomOwnerEmail": "Egyéni tulajdonos e-mail", + "LabelRSSFeedCustomOwnerName": "Egyéni tulajdonos neve", + "LabelRSSFeedOpen": "RSS hírcsatorna nyitva", + "LabelRSSFeedPreventIndexing": "Indexelés megakadályozása", + "LabelRSSFeedSlug": "RSS hírcsatorna slug", + "LabelRSSFeedURL": "RSS hírcsatorna URL", + "LabelSearchTerm": "Keresési kifejezés", + "LabelSearchTitle": "Cím keresése", + "LabelSearchTitleOrASIN": "Cím vagy ASIN keresése", + "LabelSeason": "Évad", + "LabelSelectAllEpisodes": "Összes epizód kiválasztása", + "LabelSelectEpisodesShowing": "Kiválasztás {0} megjelenített epizód", + "LabelSelectUsers": "Felhasználók kiválasztása", + "LabelSendEbookToDevice": "E-könyv küldése...", + "LabelSequence": "Sorozat", + "LabelSeries": "Sorozat", + "LabelSeriesName": "Sorozat neve", + "LabelSeriesProgress": "Sorozat haladása", + "LabelSetEbookAsPrimary": "Beállítás elsődlegesként", + "LabelSetEbookAsSupplementary": "Beállítás kiegészítőként", + "LabelSettingsAudiobooksOnly": "Csak hangoskönyvek", + "LabelSettingsAudiobooksOnlyHelp": "Ennek a beállításnak az engedélyezése figyelmen kívül hagyja az e-könyv fájlokat, kivéve, ha azok egy hangoskönyv mappában vannak, ebben az esetben kiegészítő e-könyvként lesznek beállítva", + "LabelSettingsBookshelfViewHelp": "Skeuomorfikus dizájn fa polcokkal", + "LabelSettingsChromecastSupport": "Chromecast támogatás", + "LabelSettingsDateFormat": "Dátumformátum", + "LabelSettingsDisableWatcher": "Figyelő letiltása", + "LabelSettingsDisableWatcherForLibrary": "Mappafigyelő letiltása a könyvtárban", + "LabelSettingsDisableWatcherHelp": "Letiltja az automatikus elem hozzáadás/frissítés funkciót, amikor fájlváltozásokat észlel. *Szerver újraindítása szükséges", + "LabelSettingsEnableWatcher": "Figyelő engedélyezése", + "LabelSettingsEnableWatcherForLibrary": "Mappafigyelő engedélyezése a könyvtárban", + "LabelSettingsEnableWatcherHelp": "Engedélyezi az automatikus elem hozzáadás/frissítés funkciót, amikor fájlváltozásokat észlel. *Szerver újraindítása szükséges", + "LabelSettingsExperimentalFeatures": "Kísérleti funkciók", + "LabelSettingsExperimentalFeaturesHelp": "Fejlesztés alatt álló funkciók, amelyek visszajelzésre és tesztelésre szorulnak. Kattintson a github megbeszélés megnyitásához.", + "LabelSettingsFindCovers": "Borítók keresése", + "LabelSettingsFindCoversHelp": "Ha a hangoskönyvnek nincs beágyazott borítója vagy borítóképe a mappában, a szkenner megpróbálja megtalálni a borítót.
Megjegyzés: Ez meghosszabbítja a szkennelési időt", + "LabelSettingsHideSingleBookSeries": "Egykönyves sorozatok elrejtése", + "LabelSettingsHideSingleBookSeriesHelp": "A csak egy könyvet tartalmazó sorozatok el lesznek rejtve a sorozatok oldalról és a kezdőlap polcairól.", + "LabelSettingsHomePageBookshelfView": "Kezdőlap használja a könyvespolc nézetet", + "LabelSettingsLibraryBookshelfView": "Könyvtár használja a könyvespolc nézetet", + "LabelSettingsParseSubtitles": "Feliratok elemzése", + "LabelSettingsParseSubtitlesHelp": "Feliratok kinyerése a hangoskönyv mappaneveiből.
A feliratnak el kell különülnie egy \" - \" jellel
például: \"Könyv címe - Egy felirat itt\" esetén a felirat \"Egy felirat itt\"", + "LabelSettingsPreferMatchedMetadata": "Preferált egyeztetett metaadatok", + "LabelSettingsPreferMatchedMetadataHelp": "Az egyeztetett adatok felülírják az elem részleteit a Gyors egyeztetés használatakor. Alapértelmezés szerint a Gyors egyeztetés csak a hiányzó részleteket tölti ki.", + "LabelSettingsSkipMatchingBooksWithASIN": "Már ASIN-nel rendelkező könyvek egyeztetésének kihagyása", + "LabelSettingsSkipMatchingBooksWithISBN": "Már ISBN-nel rendelkező könyvek egyeztetésének kihagyása", + "LabelSettingsSortingIgnorePrefixes": "Előtagok figyelmen kívül hagyása rendezéskor", + "LabelSettingsSortingIgnorePrefixesHelp": "például az \"a\" előtag esetén a \"A könyv címe\" könyv címe \"Könyv címe, A\" szerint rendeződik", + "LabelSettingsSquareBookCovers": "Négyzet alakú könyvborítók használata", + "LabelSettingsSquareBookCoversHelp": "Négyzet alakú borítók használata az 1,6:1 arányú standard könyvborítók helyett", + "LabelSettingsStoreCoversWithItem": "Borítók tárolása az elemmel", + "LabelSettingsStoreCoversWithItemHelp": "Alapértelmezés szerint a borítók a /metadata/items mappában vannak tárolva, ennek a beállításnak az engedélyezése a borítókat a könyvtári elem mappájában tárolja. Csak egy \"cover\" nevű fájl lesz megtartva", + "LabelSettingsStoreMetadataWithItem": "Metaadatok tárolása az elemmel", + "LabelSettingsStoreMetadataWithItemHelp": "Alapértelmezés szerint a metaadatfájlok a /metadata/items mappában vannak tárolva, ennek a beállításnak az engedélyezése a metaadatfájlokat a könyvtári elem mappáiban tárolja", + "LabelSettingsTimeFormat": "Időformátum", + "LabelShowAll": "Mindent mutat", + "LabelSize": "Méret", + "LabelSleepTimer": "Alvásidőzítő", + "LabelSlug": "Rövid cím", + "LabelStart": "Kezdés", + "LabelStarted": "Elkezdődött", + "LabelStartedAt": "Kezdés ideje", + "LabelStartTime": "Kezdési idő", + "LabelStatsAudioTracks": "Audiósávok", + "LabelStatsAuthors": "Szerzők", + "LabelStatsBestDay": "Legjobb nap", + "LabelStatsDailyAverage": "Napi átlag", + "LabelStatsDays": "Napok", + "LabelStatsDaysListened": "Hallgatott napok", + "LabelStatsHours": "Órák", + "LabelStatsInARow": "egymás után", + "LabelStatsItemsFinished": "Befejezett elemek", + "LabelStatsItemsInLibrary": "Elemek a könyvtárban", + "LabelStatsMinutes": "percek", + "LabelStatsMinutesListening": "Hallgatási percek", + "LabelStatsOverallDays": "Összes nap", + "LabelStatsOverallHours": "Összes óra", + "LabelStatsWeekListening": "Heti hallgatás", + "LabelSubtitle": "Felirat", + "LabelSupportedFileTypes": "Támogatott fájltípusok", + "LabelTag": "Címke", + "LabelTags": "Címkék", + "LabelTagsAccessibleToUser": "A felhasználó számára elérhető címkék", + "LabelTagsNotAccessibleToUser": "A felhasználó számára nem elérhető címkék", + "LabelTasks": "Futó feladatok", + "LabelTextEditorBulletedList": "Pontozott lista", + "LabelTextEditorLink": "Link", + "LabelTextEditorNumberedList": "Számozott lista", + "LabelTextEditorUnlink": "Link eltávolítása", + "LabelTheme": "Téma", + "LabelThemeDark": "Sötét", + "LabelThemeLight": "Világos", + "LabelTimeBase": "Időalap", + "LabelTimeListened": "Hallgatott idő", + "LabelTimeListenedToday": "Ma hallgatott idő", + "LabelTimeRemaining": "{0} maradt", + "LabelTimeToShift": "Eltolás ideje másodpercben", + "LabelTitle": "Cím", + "LabelToolsEmbedMetadata": "Metaadatok beágyazása", + "LabelToolsEmbedMetadataDescription": "Metaadatok beágyazása az audiofájlokba, beleértve a borítóképet és a fejezeteket.", + "LabelToolsMakeM4b": "M4B Hangoskönyv fájl készítése", + "LabelToolsMakeM4bDescription": ".M4B hangoskönyv fájl generálása beágyazott metaadatokkal, borítóképpel és fejezetekkel.", + "LabelToolsSplitM4b": "M4B felosztása MP3-ra", + "LabelToolsSplitM4bDescription": "MP3 fájlok létrehozása egy M4B-ből, fejezetenként felosztva, beágyazott metaadatokkal, borítóképpel és fejezetekkel.", + "LabelTotalDuration": "Teljes időtartam", + "LabelTotalTimeListened": "Teljes hallgatási idő", + "LabelTrackFromFilename": "Sáv a fájlnévből", + "LabelTrackFromMetadata": "Sáv a metaadatokból", + "LabelTracks": "Sávok", + "LabelTracksMultiTrack": "Többsávos", + "LabelTracksNone": "Nincsenek sávok", + "LabelTracksSingleTrack": "Egysávos", + "LabelType": "Típus", + "LabelUnabridged": "Nem tömörített", + "LabelUndo": "Visszavonás", + "LabelUnknown": "Ismeretlen", + "LabelUpdateCover": "Borító frissítése", + "LabelUpdateCoverHelp": "Lehetővé teszi a meglévő borítók felülírását a kiválasztott könyveknél, amikor találatot talál", + "LabelUpdatedAt": "Frissítve", + "LabelUpdateDetails": "Részletek frissítése", + "LabelUpdateDetailsHelp": "Lehetővé teszi a meglévő részletek felülírását a kiválasztott könyveknél, amikor találatot talál", + "LabelUploaderDragAndDrop": "Fájlok vagy mappák húzása és elengedése", + "LabelUploaderDropFiles": "Fájlok elengedése", + "LabelUploaderItemFetchMetadataHelp": "Cím, szerző és sorozat automatikus lekérése", + "LabelUseChapterTrack": "Fejezetsáv használata", + "LabelUseFullTrack": "Teljes sáv használata", + "LabelUser": "Felhasználó", + "LabelUsername": "Felhasználónév", + "LabelValue": "Érték", + "LabelVersion": "Verzió", + "LabelViewBookmarks": "Könyvjelzők megtekintése", + "LabelViewChapters": "Fejezetek megtekintése", + "LabelViewQueue": "Lejátszó sor megtekintése", + "LabelVolume": "Hangerő", + "LabelWeekdaysToRun": "Futás napjai", + "LabelYourAudiobookDuration": "Hangoskönyv időtartama", + "LabelYourBookmarks": "Könyvjelzőid", + "LabelYourPlaylists": "Lejátszási listáid", + "LabelYourProgress": "Haladásod", + "MessageAddToPlayerQueue": "Hozzáadás a lejátszó sorhoz", + "MessageAppriseDescription": "Ennek a funkció használatához futtatnia kell egy Apprise API példányt vagy egy olyan API-t, amely kezeli ezeket a kéréseket.
Az Apprise API URL-nek a teljes URL útvonalat kell tartalmaznia az értesítés elküldéséhez, például, ha az API példánya a http://192.168.1.1:8337 címen szolgáltatva, akkor http://192.168.1.1:8337/notify értéket kell megadnia.", + "MessageBackupsDescription": "A biztonsági másolatok tartalmazzák a felhasználókat, a felhasználói haladást, a könyvtári elem részleteit, a szerver beállításait és a képeket, amelyek a /metadata/items és /metadata/authors mappákban vannak tárolva. A biztonsági másolatok nem tartalmazzák a könyvtári mappákban tárolt fájlokat.", + "MessageBatchQuickMatchDescription": "A Gyors egyeztetés megpróbálja hozzáadni a hiányzó borítókat és metaadatokat a kiválasztott elemekhez. Engedélyezze az alábbi opciókat, hogy a Gyors egyeztetés felülírhassa a meglévő borítókat és/vagy metaadatokat.", + "MessageBookshelfNoCollections": "Még nem készített gyűjteményeket", + "MessageBookshelfNoResultsForFilter": "Nincs eredmény a \"{0}: {1}\" szűrőre", + "MessageBookshelfNoRSSFeeds": "Nincsenek nyitott RSS hírcsatornák", + "MessageBookshelfNoSeries": "Nincsenek sorozatai", + "MessageChapterEndIsAfter": "A fejezet vége a hangoskönyv végét követi", + "MessageChapterErrorFirstNotZero": "Az első fejezetnek 0:00-kor kell kezdődnie", + "MessageChapterErrorStartGteDuration": "Érvénytelen kezdési idő, kevesebbnek kell lennie, mint a hangoskönyv időtartama", + "MessageChapterErrorStartLtPrev": "Érvénytelen kezdési idő, nagyobbnak kell lennie, mint az előző fejezet kezdési ideje", + "MessageChapterStartIsAfter": "A fejezet kezdete a hangoskönyv végét követi", + "MessageCheckingCron": "Cron ellenőrzése...", + "MessageConfirmCloseFeed": "Biztosan be szeretné zárni ezt a hírcsatornát?", + "MessageConfirmDeleteBackup": "Biztosan törölni szeretné a(z) {0} biztonsági másolatot?", + "MessageConfirmDeleteFile": "Ez törölni fogja a fájlt a fájlrendszerből. Biztos benne?", + "MessageConfirmDeleteLibrary": "Biztosan véglegesen törölni szeretné a(z) \"{0}\" könyvtárat?", + "MessageConfirmDeleteLibraryItem": "Ez eltávolítja a könyvtári elemet az adatbázisból és a fájlrendszerből. Biztos benne?", + "MessageConfirmDeleteLibraryItems": "Ez eltávolítja a(z) {0} könyvtári elemet az adatbázisból és a fájlrendszerből. Biztos benne?", + "MessageConfirmDeleteSession": "Biztosan törölni szeretné ezt a munkamenetet?", + "MessageConfirmForceReScan": "Biztosan kényszeríteni szeretné az újraszkennelést?", + "MessageConfirmMarkAllEpisodesFinished": "Biztosan meg szeretné jelölni az összes epizódot befejezettnek?", + "MessageConfirmMarkAllEpisodesNotFinished": "Biztosan meg szeretné jelölni az összes epizódot nem befejezettnek?", + "MessageConfirmMarkSeriesFinished": "Biztosan meg szeretné jelölni a sorozat összes könyvét befejezettnek?", + "MessageConfirmMarkSeriesNotFinished": "Biztosan meg szeretné jelölni a sorozat összes könyvét nem befejezettnek?", + "MessageConfirmQuickEmbed": "Figyelem! A Gyors beágyazás nem készít biztonsági másolatot az audiofájlokról. Győződjön meg arról, hogy van biztonsági másolata az audiofájlokról.

Szeretné folytatni?", + "MessageConfirmRemoveAllChapters": "Biztosan eltávolítja az összes fejezetet?", + "MessageConfirmRemoveAuthor": "Biztosan eltávolítja a(z) \"{0}\" szerzőt?", + "MessageConfirmRemoveCollection": "Biztosan eltávolítja a(z) \"{0}\" gyűjteményt?", + "MessageConfirmRemoveEpisode": "Biztosan eltávolítja a(z) \"{0}\" epizódot?", + "MessageConfirmRemoveEpisodes": "Biztosan eltávolítja a(z) {0} epizódot?", + "MessageConfirmRemoveListeningSessions": "Biztosan eltávolítja a(z) {0} hallgatási munkamenetet?", + "MessageConfirmRemoveNarrator": "Biztosan eltávolítja a(z) \"{0}\" előadót?", + "MessageConfirmRemovePlaylist": "Biztosan eltávolítja a(z) \"{0}\" lejátszási listáját?", + "MessageConfirmRenameGenre": "Biztosan át szeretné nevezni a(z) \"{0}\" műfajt \"{1}\"-re az összes elemnél?", + "MessageConfirmRenameGenreMergeNote": "Megjegyzés: Ez a műfaj már létezik, így össze lesznek vonva.", + "MessageConfirmRenameGenreWarning": "Figyelem! Egy hasonló, de eltérő nagybetűkkel rendelkező műfaj már létezik \"{0}\".", + "MessageConfirmRenameTag": "Biztosan át szeretné nevezni a(z) \"{0}\" címkét \"{1}\"-re az összes elemnél?", + "MessageConfirmRenameTagMergeNote": "Megjegyzés: Ez a címke már létezik, így össze lesznek vonva.", + "MessageConfirmRenameTagWarning": "Figyelem! Egy hasonló, de eltérő nagybetűkkel rendelkező címke már létezik \"{0}\".", + "MessageConfirmReScanLibraryItems": "Biztosan újra szeretné szkennelni a(z) {0} elemet?", + "MessageConfirmSendEbookToDevice": "Biztosan el szeretné küldeni a(z) {0} e-könyvet a(z) \"{1}\" eszközre?", + "MessageDownloadingEpisode": "Epizód letöltése", + "MessageDragFilesIntoTrackOrder": "Húzza a fájlokat a helyes sávrendbe", + "MessageEmbedFinished": "Beágyazás befejeződött!", + "MessageEpisodesQueuedForDownload": "{0} Epizód letöltésre várakozik", + "MessageFeedURLWillBe": "A hírcsatorna URL-je {0} lesz", + "MessageFetching": "Lekérés...", + "MessageForceReScanDescription": "minden fájlt újra szkennel, mint egy friss szkennelés. Az audiofájlok ID3 címkéi, OPF fájlok és szövegfájlok újként lesznek szkennelve.", + "MessageImportantNotice": "Fontos közlemény!", + "MessageInsertChapterBelow": "Fejezet beszúrása alulra", + "MessageItemsSelected": "{0} kiválasztott elem", + "MessageItemsUpdated": "{0} frissített elem", + "MessageJoinUsOn": "Csatlakozzon hozzánk: ", + "MessageListeningSessionsInTheLastYear": "{0} hallgatási munkamenet az elmúlt évben", + "MessageLoading": "Betöltés...", + "MessageLoadingFolders": "Mappák betöltése...", + "MessageM4BFailed": "M4B sikertelen!", + "MessageM4BFinished": "M4B befejeződött!", + "MessageMapChapterTitles": "Fejezetcímek hozzárendelése a meglévő hangoskönyv fejezeteihez anélkül, hogy az időbélyegeket módosítaná", + "MessageMarkAllEpisodesFinished": "Az összes epizód megjelölése befejezettnek", + "MessageMarkAllEpisodesNotFinished": "Az összes epizód megjelölése nem befejezettnek", + "MessageMarkAsFinished": "Megjelölés befejezettnek", + "MessageMarkAsNotFinished": "Megjelölés nem befejezettnek", + "MessageMatchBooksDescription": "megpróbálja egyeztetni a könyvtár könyveit egy kiválasztott keresési szolgáltató könyvével, és kitölti az üres részleteket és a borítót. Nem írja felül a részleteket.", + "MessageNoAudioTracks": "Nincsenek audiósávok", + "MessageNoAuthors": "Nincsenek szerzők", + "MessageNoBackups": "Nincsenek biztonsági másolatok", + "MessageNoBookmarks": "Nincsenek könyvjelzők", + "MessageNoChapters": "Nincsenek fejezetek", + "MessageNoCollections": "Nincsenek gyűjtemények", + "MessageNoCoversFound": "Nem találhatóak borítók", + "MessageNoDescription": "Nincs leírás", + "MessageNoDownloadsInProgress": "Jelenleg nincsenek folyamatban lévő letöltések", + "MessageNoDownloadsQueued": "Nincsenek várakozó letöltések", + "MessageNoEpisodeMatchesFound": "Nincs találat az epizódokra", + "MessageNoEpisodes": "Nincsenek epizódok", + "MessageNoFoldersAvailable": "Nincsenek elérhető mappák", + "MessageNoGenres": "Nincsenek műfajok", + "MessageNoIssues": "Nincsenek problémák", + "MessageNoItems": "Nincsenek elemek", + "MessageNoItemsFound": "Nem találhatóak elemek", + "MessageNoListeningSessions": "Nincsenek hallgatási munkamenetek", + "MessageNoLogs": "Nincsenek naplók", + "MessageNoMediaProgress": "Nincs előrehaladás a médialejátszásban", + "MessageNoNotifications": "Nincsenek értesítések", + "MessageNoPodcastsFound": "Nem találhatóak podcastok", + "MessageNoResults": "Nincsenek eredmények", + "MessageNoSearchResultsFor": "Nincs keresési eredmény erre: \"{0}\"", + "MessageNoSeries": "Nincsenek sorozatok", + "MessageNoTags": "Nincsenek címkék", + "MessageNoTasksRunning": "Nincsenek futó feladatok", + "MessageNotYetImplemented": "Még nem implementált", + "MessageNoUpdateNecessary": "Nincs szükség frissítésre", + "MessageNoUpdatesWereNecessary": "Nem volt szükség frissítésekre", + "MessageNoUserPlaylists": "Nincsenek felhasználói lejátszási listák", + "MessageOr": "vagy", + "MessagePauseChapter": "Fejezet lejátszásának szüneteltetése", + "MessagePlayChapter": "Fejezet elejének meghallgatása", + "MessagePlaylistCreateFromCollection": "Lejátszási lista létrehozása gyűjteményből", + "MessagePodcastHasNoRSSFeedForMatching": "A podcastnak nincs RSS hírcsatorna URL-je az egyeztetéshez", + "MessageQuickMatchDescription": "Üres elem részletek és borító feltöltése az első találati eredménnyel a(z) '{0}'-ból. Nem írja felül a részleteket, kivéve, ha a 'Preferált egyeztetett metaadatok' szerverbeállítás engedélyezve van.", + "MessageRemoveChapter": "Fejezet eltávolítása", + "MessageRemoveEpisodes": "Epizód(ok) eltávolítása: {0}", + "MessageRemoveFromPlayerQueue": "Eltávolítás a lejátszási sorból", + "MessageRemoveUserWarning": "Biztosan véglegesen törölni szeretné a(z) \"{0}\" felhasználót?", + "MessageReportBugsAndContribute": "Hibák jelentése, funkciók kérése és hozzájárulás itt:", + "MessageResetChaptersConfirm": "Biztosan alaphelyzetbe szeretné állítani a fejezeteket és visszavonni a módosításokat?", + "MessageRestoreBackupConfirm": "Biztosan vissza szeretné állítani a biztonsági másolatot, amely ekkor készült:", + "MessageRestoreBackupWarning": "A biztonsági mentés visszaállítása felülírja az egész adatbázist, amely a /config mappában található, valamint a borítóképeket a /metadata/items és /metadata/authors mappákban.

A biztonsági mentések nem módosítják a könyvtár mappáiban található fájlokat. Ha engedélyezte a szerverbeállításokat a borítóképek és a metaadatok könyvtármappákban való tárolására, akkor ezek nem kerülnek biztonsági mentésre vagy felülírásra.

A szerver használó összes kliens automatikusan frissül.", + "MessageSearchResultsFor": "Keresési eredmények", + "MessageSelected": "{0} kiválasztva", + "MessageServerCouldNotBeReached": "A szervert nem lehet elérni", + "MessageSetChaptersFromTracksDescription": "Fejezetek beállítása minden egyes hangfájlt egy fejezetként használva, és a fejezet címét a hangfájl neveként", + "MessageStartPlaybackAtTime": "\"{0}\" lejátszásának kezdése {1} -tól?", + "MessageThinking": "Gondolkodás...", + "MessageUploaderItemFailed": "A feltöltés sikertelen", + "MessageUploaderItemSuccess": "Sikeresen feltöltve!", + "MessageUploading": "Feltöltés...", + "MessageValidCronExpression": "Érvényes cron kifejezés", + "MessageWatcherIsDisabledGlobally": "A megfigyelő globálisan le van tiltva a szerver beállításokban", + "MessageXLibraryIsEmpty": "{0} könyvtár üres!", + "MessageYourAudiobookDurationIsLonger": "Az Ön hangoskönyvének hossza hosszabb, mint a talált időtartam", + "MessageYourAudiobookDurationIsShorter": "Az Ön hangoskönyvének hossza rövidebb, mint a talált időtartam", + "NoteChangeRootPassword": "A Root felhasználó az egyetlen felhasználó, akinek lehet üres jelszava", + "NoteChapterEditorTimes": "Megjegyzés: Az első fejezet kezdőidejének 0:00 kell lennie, és az utolsó fejezet kezdőideje nem haladhatja meg a hangoskönyv időtartamát.", + "NoteFolderPicker": "Megjegyzés: azok a mappák, amelyek már hozzá vannak rendelve, nem jelennek meg", + "NoteRSSFeedPodcastAppsHttps": "Figyelem: A legtöbb podcast alkalmazás megköveteli, hogy az RSS feed URL HTTPS-t használjon", + "NoteRSSFeedPodcastAppsPubDate": "Figyelem: Az egy vagy több epizódnak nincs Közzétételi dátuma. Néhány podcast alkalmazás ezt megköveteli.", + "NoteUploaderFoldersWithMediaFiles": "A médiafájlokat tartalmazó mappák külön könyvtári tételekként lesznek kezelve.", + "NoteUploaderOnlyAudioFiles": "Ha csak hangfájlokat tölt fel, akkor minden egyes hangfájl külön hangoskönyvként lesz kezelve.", + "NoteUploaderUnsupportedFiles": "A nem támogatott fájlok figyelmen kívül hagyásra kerülnek. Mappa kiválasztása vagy elengedésekor az elem mappáján kívüli egyéb fájlok figyelmen kívül lesznek hagyva.", + "PlaceholderNewCollection": "Új gyűjtemény neve", + "PlaceholderNewFolderPath": "Új mappa útvonala", + "PlaceholderNewPlaylist": "Új lejátszási lista neve", + "PlaceholderSearch": "Keresés..", + "PlaceholderSearchEpisode": "Epizód keresése..", + "ToastAccountUpdateFailed": "A fiók frissítése sikertelen", + "ToastAccountUpdateSuccess": "Fiók frissítve", + "ToastAuthorImageRemoveFailed": "A kép eltávolítása sikertelen", + "ToastAuthorImageRemoveSuccess": "Szerző képe eltávolítva", + "ToastAuthorUpdateFailed": "A szerző frissítése sikertelen", + "ToastAuthorUpdateMerged": "Szerző összevonva", + "ToastAuthorUpdateSuccess": "Szerző frissítve", + "ToastAuthorUpdateSuccessNoImageFound": "Szerző frissítve (nem található kép)", + "ToastBackupCreateFailed": "A biztonsági mentés létrehozása sikertelen", + "ToastBackupCreateSuccess": "Biztonsági mentés létrehozva", + "ToastBackupDeleteFailed": "A biztonsági mentés törlése sikertelen", + "ToastBackupDeleteSuccess": "Biztonsági mentés törölve", + "ToastBackupRestoreFailed": "A biztonsági mentés visszaállítása sikertelen", + "ToastBackupUploadFailed": "A biztonsági mentés feltöltése sikertelen", + "ToastBackupUploadSuccess": "Biztonsági mentés feltöltve", + "ToastBatchUpdateFailed": "Kötegelt frissítés sikertelen", + "ToastBatchUpdateSuccess": "Kötegelt frissítés sikeres", + "ToastBookmarkCreateFailed": "Könyvjelző létrehozása sikertelen", + "ToastBookmarkCreateSuccess": "Könyvjelző hozzáadva", + "ToastBookmarkRemoveFailed": "Könyvjelző eltávolítása sikertelen", + "ToastBookmarkRemoveSuccess": "Könyvjelző eltávolítva", + "ToastBookmarkUpdateFailed": "Könyvjelző frissítése sikertelen", + "ToastBookmarkUpdateSuccess": "Könyvjelző frissítve", + "ToastChaptersHaveErrors": "A fejezetek hibákat tartalmaznak", + "ToastChaptersMustHaveTitles": "A fejezeteknek címekkel kell rendelkezniük", + "ToastCollectionItemsRemoveFailed": "Elem(ek) eltávolítása a gyűjteményből sikertelen", + "ToastCollectionItemsRemoveSuccess": "Elem(ek) eltávolítva a gyűjteményből", + "ToastCollectionRemoveFailed": "Gyűjtemény eltávolítása sikertelen", + "ToastCollectionRemoveSuccess": "Gyűjtemény eltávolítva", + "ToastCollectionUpdateFailed": "Gyűjtemény frissítése sikertelen", + "ToastCollectionUpdateSuccess": "Gyűjtemény frissítve", + "ToastItemCoverUpdateFailed": "Elem borítójának frissítése sikertelen", + "ToastItemCoverUpdateSuccess": "Elem borítója frissítve", + "ToastItemDetailsUpdateFailed": "Elem részleteinek frissítése sikertelen", + "ToastItemDetailsUpdateSuccess": "Elem részletei frissítve", + "ToastItemDetailsUpdateUnneeded": "Nincsenek szükséges frissítések a tétel részletein", + "ToastItemMarkedAsFinishedFailed": "Megjelölés Befejezettként sikertelen", + "ToastItemMarkedAsFinishedSuccess": "Elem megjelölve Befejezettként", + "ToastItemMarkedAsNotFinishedFailed": "Nem sikerült Nem Befejezettként megjelölni az elemet", + "ToastItemMarkedAsNotFinishedSuccess": "Elem megjelölve Nem Befejezettként", + "ToastLibraryCreateFailed": "Könyvtár létrehozása sikertelen", + "ToastLibraryCreateSuccess": "\"{0}\" könyvtár létrehozva", + "ToastLibraryDeleteFailed": "Könyvtár törlése sikertelen", + "ToastLibraryDeleteSuccess": "Könyvtár törölve", + "ToastLibraryScanFailedToStart": "A beolvasás elindítása sikertelen", + "ToastLibraryScanStarted": "Könyvtár beolvasása elindítva", + "ToastLibraryUpdateFailed": "Könyvtár frissítése sikertelen", + "ToastLibraryUpdateSuccess": "\"{0}\" könyvtár frissítve", + "ToastPlaylistCreateFailed": "Lejátszási lista létrehozása sikertelen", + "ToastPlaylistCreateSuccess": "Lejátszási lista létrehozva", + "ToastPlaylistRemoveFailed": "Lejátszási lista eltávolítása sikertelen", + "ToastPlaylistRemoveSuccess": "Lejátszási lista eltávolítva", + "ToastPlaylistUpdateFailed": "Lejátszási lista frissítése sikertelen", + "ToastPlaylistUpdateSuccess": "Lejátszási lista frissítve", + "ToastPodcastCreateFailed": "Podcast létrehozása sikertelen", + "ToastPodcastCreateSuccess": "Podcast sikeresen létrehozva", + "ToastRemoveItemFromCollectionFailed": "Tétel eltávolítása a gyűjteményből sikertelen", + "ToastRemoveItemFromCollectionSuccess": "Tétel eltávolítva a gyűjteményből", + "ToastRSSFeedCloseFailed": "RSS feed bezárása sikertelen", + "ToastRSSFeedCloseSuccess": "RSS feed bezárva", + "ToastSendEbookToDeviceFailed": "E-könyv küldése az eszközre sikertelen", + "ToastSendEbookToDeviceSuccess": "E-könyv elküldve az eszközre \"{0}\"", + "ToastSeriesUpdateFailed": "Sorozat frissítése sikertelen", + "ToastSeriesUpdateSuccess": "Sorozat frissítése sikeres", + "ToastSessionDeleteFailed": "Munkamenet törlése sikertelen", + "ToastSessionDeleteSuccess": "Munkamenet törölve", + "ToastSocketConnected": "Socket csatlakoztatva", + "ToastSocketDisconnected": "Socket lecsatlakoztatva", + "ToastSocketFailedToConnect": "A Socket csatlakoztatása sikertelen", + "ToastUserDeleteFailed": "Felhasználó törlése sikertelen", + "ToastUserDeleteSuccess": "Felhasználó törölve" +} \ No newline at end of file From 3d66ec0761186f90f0179e1953b9c2e941d73752 Mon Sep 17 00:00:00 2001 From: pmangro <160148596+pmangro@users.noreply.github.com> Date: Tue, 20 Feb 2024 11:42:48 -0300 Subject: [PATCH 009/216] PT-BR size adjustment --- client/strings/pt-br.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/client/strings/pt-br.json b/client/strings/pt-br.json index 5bb91aed0..10dcdc22b 100644 --- a/client/strings/pt-br.json +++ b/client/strings/pt-br.json @@ -122,12 +122,12 @@ "HeaderFindChapters": "Localizar Capítulos", "HeaderIgnoredFiles": "Arquivos Ignorados", "HeaderItemFiles": "Arquivos de Itens", - "HeaderItemMetadataUtils": "Utilidades para Metadados de Itens", + "HeaderItemMetadataUtils": "Utilidades para Metadados dos Itens", "HeaderLastListeningSession": "Última sessão", "HeaderLatestEpisodes": "Últimos episódios", "HeaderLibraries": "Bibliotecas", "HeaderLibraryFiles": "Arquivos da Biblioteca", - "HeaderLibraryStats": "Estatisticas da Biblioteca", + "HeaderLibraryStats": "Estatísticas da Biblioteca", "HeaderListeningSessions": "Sessões", "HeaderListeningStats": "Estatísticas", "HeaderLogin": "Login", @@ -396,7 +396,7 @@ "LabelPlayMethod": "Método de Reprodução", "LabelPodcast": "Podcast", "LabelPodcasts": "Podcasts", - "LabelPodcastSearchRegion": "Região para pesquisa de podcast", + "LabelPodcastSearchRegion": "Podcast search region", "LabelPodcastType": "Tipo de Podcast", "LabelPort": "Porta", "LabelPrefixesToIgnore": "Prefixos para Ignorar (sem distinção entre maiúsculas e minúsculas)", @@ -410,7 +410,7 @@ "LabelRead": "Lido", "LabelReadAgain": "Ler novamente", "LabelReadEbookWithoutProgress": "Ler ebook sem armazenar progresso", - "LabelRecentlyAdded": "Recentemente Acrescentado", + "LabelRecentlyAdded": "Novidades", "LabelRecentSeries": "Séries Recentes", "LabelRecommended": "Recomendado", "LabelRedo": "Refazer", From 9f848b2c6462a822315c5aa06f036f21854f044a Mon Sep 17 00:00:00 2001 From: pmangro <160148596+pmangro@users.noreply.github.com> Date: Tue, 20 Feb 2024 17:28:37 -0300 Subject: [PATCH 010/216] Update pt-br.json - adjust terminology and typo --- client/strings/pt-br.json | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/client/strings/pt-br.json b/client/strings/pt-br.json index 10dcdc22b..fc626aff3 100644 --- a/client/strings/pt-br.json +++ b/client/strings/pt-br.json @@ -106,7 +106,7 @@ "HeaderChapters": "Capítulos", "HeaderChooseAFolder": "Escolha uma Pasta", "HeaderCollection": "Coleção", - "HeaderCollectionItems": "Itends da Coleção", + "HeaderCollectionItems": "Itens da Coleção", "HeaderCover": "Capas", "HeaderCurrentDownloads": "Downloads em andamento", "HeaderCustomMetadataProviders": "Fontes de Metadados Customizados", @@ -230,10 +230,10 @@ "LabelClickForMoreInfo": "Clique para mais informações", "LabelClosePlayer": "Fechar Reprodutor", "LabelCodec": "Codec", - "LabelCollapseSeries": "Fechar Séries", + "LabelCollapseSeries": "Fechar Série", "LabelCollection": "Coleção", "LabelCollections": "Coleções", - "LabelComplete": "Completo", + "LabelComplete": "Concluído", "LabelConfirmPassword": "Confirmar Senha", "LabelContinueListening": "Continuar Escutando", "LabelContinueReading": "Continuar Lendo", @@ -471,8 +471,8 @@ "LabelSettingsStoreCoversWithItemHelp": "Por padrão as capas são armazenadas em /metadata/items. Ao ativar essa configuração as capas serão armazenadas na pasta do item na sua biblioteca. Apenas um arquivo chamado \"cover\" será mantido", "LabelSettingsStoreMetadataWithItem": "Armazenar metadados com o item", "LabelSettingsStoreMetadataWithItemHelp": "Por padrão os arquivos de metadados são armazenados em /metadata/items. Ao ativar essa configuração os arquivos de metadados serão armazenadas nas pastas dos itens na sua biblioteca", - "LabelSettingsTimeFormat": "Formato do Tempo", - "LabelShowAll": "Mostrar Todos", + "LabelSettingsTimeFormat": "Formato da Tempo", + "LabelShowAll": "Exibir Todos", "LabelSize": "Tamanho", "LabelSleepTimer": "Timer", "LabelSlug": "Slug", @@ -487,7 +487,7 @@ "LabelStatsDays": "Dias", "LabelStatsDaysListened": "Dias Escutando", "LabelStatsHours": "Horas", - "LabelStatsInARow": "seguidas", + "LabelStatsInARow": "seguidos", "LabelStatsItemsFinished": "itens Concluídos", "LabelStatsItemsInLibrary": "itens na biblioteca", "LabelStatsMinutes": "minutos", @@ -643,7 +643,7 @@ "MessageNoLogs": "Sem Logs", "MessageNoMediaProgress": "Sem Progresso de Mídia", "MessageNoNotifications": "Sem Notificações", - "MessageNoPodcastsFound": "Nenhum podcasts encontrado", + "MessageNoPodcastsFound": "Nenhum podcast encontrado", "MessageNoResults": "Sem resultados", "MessageNoSearchResultsFor": "Sem resultados para \"{0}\"", "MessageNoSeries": "Sem Séries", From c07b7840e2a749969d143d8142f9af27aad741e5 Mon Sep 17 00:00:00 2001 From: DownloadableFox Date: Tue, 20 Feb 2024 21:14:55 -0500 Subject: [PATCH 011/216] Updated and fixed Spanish translation --- client/strings/es.json | 122 ++++++++++++++++++++--------------------- 1 file changed, 61 insertions(+), 61 deletions(-) diff --git a/client/strings/es.json b/client/strings/es.json index f2714c00c..4b85106c1 100644 --- a/client/strings/es.json +++ b/client/strings/es.json @@ -1,11 +1,11 @@ { "ButtonAdd": "Agregar", "ButtonAddChapters": "Agregar Capitulo", - "ButtonAddDevice": "Add Device", - "ButtonAddLibrary": "Add Library", + "ButtonAddDevice": "Agregar Dispositivo", + "ButtonAddLibrary": "Crear Biblioteca", "ButtonAddPodcasts": "Agregar Podcasts", - "ButtonAddUser": "Add User", - "ButtonAddYourFirstLibrary": "Agrega tu Primera Biblioteca", + "ButtonAddUser": "Crear Usuario", + "ButtonAddYourFirstLibrary": "Crea tu Primera Biblioteca", "ButtonApply": "Aplicar", "ButtonApplyChapters": "Aplicar Capítulos", "ButtonAuthors": "Autores", @@ -32,8 +32,8 @@ "ButtonHide": "Esconder", "ButtonHome": "Inicio", "ButtonIssues": "Problemas", - "ButtonJumpBackward": "Jump Backward", - "ButtonJumpForward": "Jump Forward", + "ButtonJumpBackward": "Retroceder", + "ButtonJumpForward": "Adelantar", "ButtonLatest": "Últimos", "ButtonLibrary": "Biblioteca", "ButtonLogout": "Cerrar Sesión", @@ -43,15 +43,15 @@ "ButtonMatchAllAuthors": "Encontrar Todos los Autores", "ButtonMatchBooks": "Encontrar Libros", "ButtonNevermind": "Olvidar", - "ButtonNextChapter": "Next Chapter", + "ButtonNextChapter": "Siguiente Capítulo", "ButtonOk": "Ok", "ButtonOpenFeed": "Abrir Fuente", "ButtonOpenManager": "Abrir Editor", - "ButtonPause": "Pause", + "ButtonPause": "Pausar", "ButtonPlay": "Reproducir", "ButtonPlaying": "Reproduciendo", "ButtonPlaylists": "Listas de Reproducción", - "ButtonPreviousChapter": "Previous Chapter", + "ButtonPreviousChapter": "Capítulo Anterior", "ButtonPurgeAllCache": "Purgar Todo el Cache", "ButtonPurgeItemsCache": "Purgar Elementos de Cache", "ButtonPurgeMediaProgress": "Purgar Progreso de Multimedia", @@ -92,15 +92,15 @@ "ButtonUserEdit": "Editar Usuario {0}", "ButtonViewAll": "Ver Todos", "ButtonYes": "Aceptar", - "ErrorUploadFetchMetadataAPI": "Error fetching metadata", - "ErrorUploadFetchMetadataNoResults": "Could not fetch metadata - try updating title and/or author", - "ErrorUploadLacksTitle": "Must have a title", + "ErrorUploadFetchMetadataAPI": "Error obteniendo metadatos", + "ErrorUploadFetchMetadataNoResults": "No se pudo obtener metadatos - Intenta actualizar el título y/o autor", + "ErrorUploadLacksTitle": "Se debe tener título", "HeaderAccount": "Cuenta", "HeaderAdvanced": "Avanzado", "HeaderAppriseNotificationSettings": "Ajustes de Notificaciones de Apprise", "HeaderAudiobookTools": "Herramientas de Gestión de Archivos de Audiolibro", "HeaderAudioTracks": "Pistas de Audio", - "HeaderAuthentication": "Authentication", + "HeaderAuthentication": "Autenticación", "HeaderBackups": "Respaldos", "HeaderChangePassword": "Cambiar Contraseña", "HeaderChapters": "Capítulos", @@ -109,7 +109,7 @@ "HeaderCollectionItems": "Elementos en la Colección", "HeaderCover": "Portada", "HeaderCurrentDownloads": "Descargando Actualmente", - "HeaderCustomMetadataProviders": "Custom Metadata Providers", + "HeaderCustomMetadataProviders": "Proveedores de metadatos personalizados", "HeaderDetails": "Detalles", "HeaderDownloadQueue": "Lista de Descarga", "HeaderEbookFiles": "Archivos de Ebook", @@ -136,15 +136,15 @@ "HeaderManageTags": "Administrar Etiquetas", "HeaderMapDetails": "Asignar Detalles", "HeaderMatch": "Encontrar", - "HeaderMetadataOrderOfPrecedence": "Metadata order of precedence", + "HeaderMetadataOrderOfPrecedence": "Orden de precedencia de metadatos", "HeaderMetadataToEmbed": "Metadatos para Insertar", "HeaderNewAccount": "Nueva Cuenta", "HeaderNewLibrary": "Nueva Biblioteca", "HeaderNotifications": "Notificaciones", - "HeaderOpenIDConnectAuthentication": "OpenID Connect Authentication", + "HeaderOpenIDConnectAuthentication": "Autenticación OpenID Connect", "HeaderOpenRSSFeed": "Abrir fuente RSS", "HeaderOtherFiles": "Otros Archivos", - "HeaderPasswordAuthentication": "Password Authentication", + "HeaderPasswordAuthentication": "Autenticación por contraseña", "HeaderPermissions": "Permisos", "HeaderPlayerQueue": "Fila del Reproductor", "HeaderPlaylist": "Lista de Reproducción", @@ -193,11 +193,11 @@ "LabelAddToCollectionBatch": "Se Añadieron {0} Libros a la Colección", "LabelAddToPlaylist": "Añadido a la Lista de Reproducción", "LabelAddToPlaylistBatch": "Se Añadieron {0} Artículos a la Lista de Reproducción", - "LabelAdminUsersOnly": "Admin users only", + "LabelAdminUsersOnly": "Solamente usuarios administradores", "LabelAll": "Todos", "LabelAllUsers": "Todos los Usuarios", - "LabelAllUsersExcludingGuests": "All users excluding guests", - "LabelAllUsersIncludingGuests": "All users including guests", + "LabelAllUsersExcludingGuests": "Todos los usuarios excepto invitados", + "LabelAllUsersIncludingGuests": "Todos los usuarios e invitados", "LabelAlreadyInYourLibrary": "Ya en la Biblioteca", "LabelAppend": "Adjuntar", "LabelAuthor": "Autor", @@ -205,12 +205,12 @@ "LabelAuthorLastFirst": "Autor (Apellido, Nombre)", "LabelAuthors": "Autores", "LabelAutoDownloadEpisodes": "Descargar Episodios Automáticamente", - "LabelAutoFetchMetadata": "Auto Fetch Metadata", - "LabelAutoFetchMetadataHelp": "Fetches metadata for title, author, and series to streamline uploading. Additional metadata may have to be matched after upload.", - "LabelAutoLaunch": "Auto Launch", - "LabelAutoLaunchDescription": "Redirect to the auth provider automatically when navigating to the login page (manual override path /login?autoLaunch=0)", - "LabelAutoRegister": "Auto Register", - "LabelAutoRegisterDescription": "Automatically create new users after logging in", + "LabelAutoFetchMetadata": "Actualizar Metadatos Automáticamente", + "LabelAutoFetchMetadataHelp": "Obtiene metadatos de título, autor y serie para agilizar la carga. Es posible que haya que cotejar metadatos adicionales después de la carga.", + "LabelAutoLaunch": "Lanzamiento automático", + "LabelAutoLaunchDescription": "Redirigir al proveedor de autenticación automáticamente al navegar a la página de inicio de sesión (ruta de sobreescritura manual /login?autoLaunch=0)", + "LabelAutoRegister": "Registro automático", + "LabelAutoRegisterDescription": "Crear usuarios automáticamente tras iniciar sesión", "LabelBackToUser": "Regresar a Usuario", "LabelBackupLocation": "Ubicación del Respaldo", "LabelBackupsEnableAutomaticBackups": "Habilitar Respaldo Automático", @@ -221,13 +221,13 @@ "LabelBackupsNumberToKeepHelp": "Solamente 1 respaldo se removerá a la vez. Si tiene mas respaldos guardados, debe removerlos manualmente.", "LabelBitrate": "Bitrate", "LabelBooks": "Libros", - "LabelButtonText": "Button Text", + "LabelButtonText": "Texto del botón", "LabelChangePassword": "Cambiar Contraseña", "LabelChannels": "Canales", "LabelChapters": "Capítulos", "LabelChaptersFound": "Capítulo Encontrado", "LabelChapterTitle": "Titulo del Capítulo", - "LabelClickForMoreInfo": "Click for more info", + "LabelClickForMoreInfo": "Click para más información", "LabelClosePlayer": "Cerrar Reproductor", "LabelCodec": "Codec", "LabelCollapseSeries": "Colapsar Serie", @@ -246,12 +246,12 @@ "LabelCurrently": "En este momento:", "LabelCustomCronExpression": "Expresión de Cron Personalizada:", "LabelDatetime": "Hora y Fecha", - "LabelDeleteFromFileSystemCheckbox": "Delete from file system (uncheck to only remove from database)", + "LabelDeleteFromFileSystemCheckbox": "Eliminar archivos del sistema (desmarcar para eliminar sólo de la base de datos)", "LabelDescription": "Descripción", "LabelDeselectAll": "Deseleccionar Todos", "LabelDevice": "Dispositivo", "LabelDeviceInfo": "Información de Dispositivo", - "LabelDeviceIsAvailableTo": "Device is available to...", + "LabelDeviceIsAvailableTo": "El dispositivo está disponible para...", "LabelDirectory": "Directorio", "LabelDiscFromFilename": "Disco a partir del Nombre del Archivo", "LabelDiscFromMetadata": "Disco a partir de Metadata", @@ -277,7 +277,7 @@ "LabelExample": "Ejemplo", "LabelExplicit": "Explicito", "LabelFeedURL": "Fuente de URL", - "LabelFetchingMetadata": "Fetching Metadata", + "LabelFetchingMetadata": "Obteniendo metadatos", "LabelFile": "Archivo", "LabelFileBirthtime": "Archivo Creado en", "LabelFileModified": "Archivo modificado", @@ -287,23 +287,23 @@ "LabelFinished": "Terminado", "LabelFolder": "Carpeta", "LabelFolders": "Carpetas", - "LabelFontBold": "Bold", + "LabelFontBold": "Negrilla", "LabelFontFamily": "Familia tipográfica", - "LabelFontItalic": "Italic", + "LabelFontItalic": "Itálica", "LabelFontScale": "Tamaño de Fuente", - "LabelFontStrikethrough": "Strikethrough", + "LabelFontStrikethrough": "Tachado", "LabelFormat": "Formato", "LabelGenre": "Genero", "LabelGenres": "Géneros", "LabelHardDeleteFile": "Eliminar Definitivamente", "LabelHasEbook": "Tiene Ebook", "LabelHasSupplementaryEbook": "Tiene Ebook Suplementario", - "LabelHighestPriority": "Highest priority", + "LabelHighestPriority": "Mayor prioridad", "LabelHost": "Host", "LabelHour": "Hora", "LabelIcon": "Icono", - "LabelImageURLFromTheWeb": "Image URL from the web", - "LabelIncludeInTracklist": "Incluir en Tracklist", + "LabelImageURLFromTheWeb": "URL de la imagen", + "LabelIncludeInTracklist": "Incluir en la Tracklist", "LabelIncomplete": "Incompleto", "LabelInProgress": "En Proceso", "LabelInterval": "Intervalo", @@ -340,20 +340,20 @@ "LabelLogLevelInfo": "Información", "LabelLogLevelWarn": "Advertencia", "LabelLookForNewEpisodesAfterDate": "Buscar Nuevos Episodios a partir de esta Fecha", - "LabelLowestPriority": "Lowest Priority", - "LabelMatchExistingUsersBy": "Match existing users by", - "LabelMatchExistingUsersByDescription": "Used for connecting existing users. Once connected, users will be matched by a unique id from your SSO provider", + "LabelLowestPriority": "Menor prioridad", + "LabelMatchExistingUsersBy": "Emparejar a los usuarios existentes por", + "LabelMatchExistingUsersByDescription": "Se utiliza para conectar usuarios existentes. Una vez conectados, los usuarios serán emparejados por un identificador único de su proveedor de SSO", "LabelMediaPlayer": "Reproductor de Medios", "LabelMediaType": "Tipo de Multimedia", - "LabelMetadataOrderOfPrecedenceDescription": "Higher priority metadata sources will override lower priority metadata sources", - "LabelMetadataProvider": "Proveedor de Metadata", - "LabelMetaTag": "Meta Tag", - "LabelMetaTags": "Meta Tags", + "LabelMetadataOrderOfPrecedenceDescription": "Las fuentes de metadatos de mayor prioridad prevalecerán sobre las de menor prioridad", + "LabelMetadataProvider": "Proveedor de Metadatos", + "LabelMetaTag": "Metaetiqueta", + "LabelMetaTags": "Metaetiquetas", "LabelMinute": "Minuto", "LabelMissing": "Ausente", "LabelMissingParts": "Partes Ausentes", - "LabelMobileRedirectURIs": "Allowed Mobile Redirect URIs", - "LabelMobileRedirectURIsDescription": "This is a whitelist of valid redirect URIs for mobile apps. The default one is audiobookshelf://oauth, which you can remove or supplement with additional URIs for third-party app integration. Using an asterisk (*) as the sole entry permits any URI.", + "LabelMobileRedirectURIs": "URIs de redirección a móviles permitidos", + "LabelMobileRedirectURIsDescription": "Esta es una lista de URIs válidos para redireccionamiento de apps móviles. La URI por defecto es audiobookshelf://oauth, la cual puedes remover or corroborar con URIs adicionales para la integración con apps de terceros. Utilizando un asterisco (*) como el único punto de entrada permite cualquier URI.", "LabelMore": "Más", "LabelMoreInfo": "Más Información", "LabelName": "Nombre", @@ -413,11 +413,11 @@ "LabelRecentlyAdded": "Agregado Recientemente", "LabelRecentSeries": "Series Recientes", "LabelRecommended": "Recomendados", - "LabelRedo": "Redo", + "LabelRedo": "Rehacer", "LabelRegion": "Región", "LabelReleaseDate": "Fecha de Estreno", "LabelRemoveCover": "Remover Portada", - "LabelRowsPerPage": "Rows per page", + "LabelRowsPerPage": "Filas por página", "LabelRSSFeedCustomOwnerEmail": "Email de dueño personalizado", "LabelRSSFeedCustomOwnerName": "Nombre de dueño personalizado", "LabelRSSFeedOpen": "Fuente RSS Abierta", @@ -430,7 +430,7 @@ "LabelSeason": "Temporada", "LabelSelectAllEpisodes": "Seleccionar todos los episodios", "LabelSelectEpisodesShowing": "Seleccionar los {0} episodios visibles", - "LabelSelectUsers": "Select users", + "LabelSelectUsers": "Seleccionar usuarios", "LabelSendEbookToDevice": "Enviar Ebook a...", "LabelSequence": "Secuencia", "LabelSeries": "Series", @@ -502,14 +502,14 @@ "LabelTagsAccessibleToUser": "Etiquetas Accessibles al Usuario", "LabelTagsNotAccessibleToUser": "Etiquetas no Accesibles al Usuario", "LabelTasks": "Tareas Corriendo", - "LabelTextEditorBulletedList": "Bulleted list", - "LabelTextEditorLink": "Link", - "LabelTextEditorNumberedList": "Numbered list", - "LabelTextEditorUnlink": "Unlink", + "LabelTextEditorBulletedList": "Lista con viñetas", + "LabelTextEditorLink": "Enlazar", + "LabelTextEditorNumberedList": "Lista numerada", + "LabelTextEditorUnlink": "Desenlazar", "LabelTheme": "Tema", "LabelThemeDark": "Oscuro", "LabelThemeLight": "Claro", - "LabelTimeBase": "Time Base", + "LabelTimeBase": "Tiempo Base", "LabelTimeListened": "Tiempo Escuchando", "LabelTimeListenedToday": "Tiempo Escuchando Hoy", "LabelTimeRemaining": "{0} restante", @@ -531,7 +531,7 @@ "LabelTracksSingleTrack": "Una pista", "LabelType": "Tipo", "LabelUnabridged": "No Abreviado", - "LabelUndo": "Undo", + "LabelUndo": "Deshacer", "LabelUnknown": "Desconocido", "LabelUpdateCover": "Actualizar Portada", "LabelUpdateCoverHelp": "Permitir sobrescribir las portadas existentes de los libros seleccionados cuando sean encontradas.", @@ -540,7 +540,7 @@ "LabelUpdateDetailsHelp": "Permitir sobrescribir detalles existentes de los libros seleccionados cuando sean encontrados", "LabelUploaderDragAndDrop": "Arrastre y suelte archivos o carpetas", "LabelUploaderDropFiles": "Suelte los Archivos", - "LabelUploaderItemFetchMetadataHelp": "Automatically fetch title, author, and series", + "LabelUploaderItemFetchMetadataHelp": "Buscar título, autor y series automáticamente", "LabelUseChapterTrack": "Usar pista por capitulo", "LabelUseFullTrack": "Usar pista completa", "LabelUser": "Usuario", @@ -574,15 +574,15 @@ "MessageConfirmDeleteBackup": "¿Está seguro de que desea eliminar el respaldo {0}?", "MessageConfirmDeleteFile": "Esto eliminará el archivo de su sistema de archivos. ¿Está seguro?", "MessageConfirmDeleteLibrary": "¿Está seguro de que desea eliminar permanentemente la biblioteca \"{0}\"?", - "MessageConfirmDeleteLibraryItem": "This will delete the library item from the database and your file system. Are you sure?", - "MessageConfirmDeleteLibraryItems": "This will delete {0} library items from the database and your file system. Are you sure?", + "MessageConfirmDeleteLibraryItem": "Esto removerá la librería de la base de datos y archivos en tu sistema. ¿Estás seguro?", + "MessageConfirmDeleteLibraryItems": "Esto removerá {0} elemento(s) de la librería en base de datos y archivos en tu sistema. ¿Estás seguro?", "MessageConfirmDeleteSession": "¿Está seguro de que desea eliminar esta sesión?", "MessageConfirmForceReScan": "¿Está seguro de que desea forzar un re-escaneo?", "MessageConfirmMarkAllEpisodesFinished": "¿Está seguro de que desea marcar todos los episodios como terminados?", "MessageConfirmMarkAllEpisodesNotFinished": "¿Está seguro de que desea marcar todos los episodios como no terminados?", "MessageConfirmMarkSeriesFinished": "¿Está seguro de que desea marcar todos los libros en esta serie como terminados?", "MessageConfirmMarkSeriesNotFinished": "¿Está seguro de que desea marcar todos los libros en esta serie como no terminados?", - "MessageConfirmQuickEmbed": "Warning! Quick embed will not backup your audio files. Make sure that you have a backup of your audio files.

Would you like to continue?", + "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.

¿Deseas continuar?", "MessageConfirmRemoveAllChapters": "¿Está seguro de que desea remover todos los capitulos?", "MessageConfirmRemoveAuthor": "¿Está seguro de que desea remover el autor \"{0}\"?", "MessageConfirmRemoveCollection": "¿Está seguro de que desea remover la colección \"{0}\"?", @@ -597,7 +597,7 @@ "MessageConfirmRenameTag": "¿Está seguro de que desea renombrar la etiqueta \"{0}\" a \"{1}\" de todos los elementos?", "MessageConfirmRenameTagMergeNote": "Nota: Esta etiqueta ya existe, por lo que se fusionarán.", "MessageConfirmRenameTagWarning": "Advertencia! Una etiqueta similar ya existe \"{0}\".", - "MessageConfirmReScanLibraryItems": "Are you sure you want to re-scan {0} items?", + "MessageConfirmReScanLibraryItems": "¿Estás seguro de querer re escanear {0} elemento(s)?", "MessageConfirmSendEbookToDevice": "¿Está seguro de que enviar {0} ebook(s) \"{1}\" al dispositivo \"{2}\"?", "MessageDownloadingEpisode": "Descargando Capitulo", "MessageDragFilesIntoTrackOrder": "Arrastra los archivos al orden correcto de las pistas.", @@ -668,7 +668,7 @@ "MessageRestoreBackupConfirm": "¿Está seguro de que desea para restaurar del respaldo creado en", "MessageRestoreBackupWarning": "Restaurar sobrescribirá toda la base de datos localizada en /config y las imágenes de portadas en /metadata/items y /metadata/authors.

El respaldo no modifica ningún archivo en las carpetas de su biblioteca. Si ha habilitado la opción del servidor para almacenar portadas y metadata en las carpetas de su biblioteca, esos archivos no se respaldan o sobrescriben.

Todos los clientes que usen su servidor se actualizarán automáticamente.", "MessageSearchResultsFor": "Resultados de la búsqueda de", - "MessageSelected": "{0} selected", + "MessageSelected": "{0} seleccionado(s)", "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", "MessageStartPlaybackAtTime": "Iniciar reproducción para \"{0}\" en {1}?", From 682aca0b2a3d8b10189c99cacff06ddf97bcf76e Mon Sep 17 00:00:00 2001 From: Teekeks Date: Thu, 22 Feb 2024 00:36:43 +0100 Subject: [PATCH 012/216] feat(i18n): made "Year in Review" UI elements translatable and added german translation for those --- .../components/stats/YearInReviewBanner.vue | 31 +++++++++++-------- client/strings/de.json | 9 ++++++ client/strings/en-us.json | 9 ++++++ 3 files changed, 36 insertions(+), 13 deletions(-) diff --git a/client/components/stats/YearInReviewBanner.vue b/client/components/stats/YearInReviewBanner.vue index f77360787..993443b55 100644 --- a/client/components/stats/YearInReviewBanner.vue +++ b/client/components/stats/YearInReviewBanner.vue @@ -7,9 +7,10 @@
- + @@ -20,24 +21,27 @@ chevron_left - + - Share + {{ + $strings.ButtonShare }} +
- +

{{ yearInReviewVariant + 1 }}

- + refresh - + chevron_right
@@ -46,7 +50,7 @@
- Share + {{ $strings.ButtonShare }}
@@ -56,24 +60,25 @@ chevron_left - + - Share + {{ $strings.ButtonShare }} +
- +

{{ yearInReviewServerVariant + 1 }}

- + refresh - + chevron_right
diff --git a/client/strings/de.json b/client/strings/de.json index 49037f4ba..3bfb91892 100644 --- a/client/strings/de.json +++ b/client/strings/de.json @@ -41,12 +41,14 @@ "ButtonMatchAllAuthors": "Online Metadaten-Abgleich (alle Autoren)", "ButtonMatchBooks": "Online Metadaten-Abgleich (alle Medien)", "ButtonNevermind": "Abbrechen", + "ButtonNext": "Nächste", "ButtonOk": "Ok", "ButtonOpenFeed": "Feed öffnen", "ButtonOpenManager": "Manager öffnen", "ButtonPlay": "Abspielen", "ButtonPlaying": "Spielt", "ButtonPlaylists": "Wiedergabelisten", + "ButtonPrevious": "Vorherige", "ButtonPurgeAllCache": "Cache leeren", "ButtonPurgeItemsCache": "Lösche Medien-Cache", "ButtonPurgeMediaProgress": "Lösche Hörfortschritte", @@ -54,6 +56,7 @@ "ButtonQueueRemoveItem": "Aus der Warteschlange entfernen", "ButtonQuickMatch": "Schnellabgleich", "ButtonRead": "Lesen", + "ButtonRefresh": "Neu Laden", "ButtonRemove": "Löschen", "ButtonRemoveAll": "Alles löschen", "ButtonRemoveAllLibraryItems": "Lösche alle Bibliothekseinträge", @@ -73,6 +76,7 @@ "ButtonSelectFolderPath": "Auswahl Ordnerpfad", "ButtonSeries": "Serien", "ButtonSetChaptersFromTracks": "Kapitelerstellung aus Audiodateien", + "ButtonShare": "Teilen", "ButtonShiftTimes": "Zeitverschiebung", "ButtonShow": "Anzeigen", "ButtonStartM4BEncode": "M4B-Kodierung starten", @@ -174,6 +178,7 @@ "HeaderUpdateDetails": "Details aktualisieren", "HeaderUpdateLibrary": "Bibliothek aktualisieren", "HeaderUsers": "Benutzer", + "HeaderYearReview": "Jahr {0} in Übersicht", "HeaderYourStats": "Eigene Statistiken", "LabelAbridged": "Gekürzt", "LabelAccountType": "Kontoart", @@ -385,6 +390,7 @@ "LabelPermissionsDownload": "Herunterladen", "LabelPermissionsUpdate": "Aktualisieren", "LabelPermissionsUpload": "Hochladen", + "LabelPersonalYearReview": "Dein Jahr in Übersicht ({0})", "LabelPhotoPathURL": "Foto Pfad/URL", "LabelPlaylists": "Wiedergabelisten", "LabelPlayMethod": "Abspielmethode", @@ -429,6 +435,7 @@ "LabelSeries": "Serien", "LabelSeriesName": "Serienname", "LabelSeriesProgress": "Serienfortschritt", + "LabelServerYearReview": "Server Jahr in Übersicht ({0})", "LabelSetEbookAsPrimary": "Als Hauptbuch setzen", "LabelSetEbookAsSupplementary": "Als Ergänzung setzen", "LabelSettingsAudiobooksOnly": "Nur Hörbücher", @@ -545,6 +552,8 @@ "LabelViewQueue": "Player-Warteschlange anzeigen", "LabelVolume": "Lautstärke", "LabelWeekdaysToRun": "Wochentage für die Ausführung", + "LabelYearReviewHide": "Verstecke Jahr in Übersicht", + "LabelYearReviewShow": "Zeige Jahr in Übersicht", "LabelYourAudiobookDuration": "Laufzeit deines Mediums", "LabelYourBookmarks": "Lesezeichen", "LabelYourPlaylists": "Eigene Wiedergabelisten", diff --git a/client/strings/en-us.json b/client/strings/en-us.json index e3349d1f1..4b2d6e4e3 100644 --- a/client/strings/en-us.json +++ b/client/strings/en-us.json @@ -41,12 +41,14 @@ "ButtonMatchAllAuthors": "Match All Authors", "ButtonMatchBooks": "Match Books", "ButtonNevermind": "Nevermind", + "ButtonNext": "Next", "ButtonOk": "Ok", "ButtonOpenFeed": "Open Feed", "ButtonOpenManager": "Open Manager", "ButtonPlay": "Play", "ButtonPlaying": "Playing", "ButtonPlaylists": "Playlists", + "ButtonPrevious": "Previous", "ButtonPurgeAllCache": "Purge All Cache", "ButtonPurgeItemsCache": "Purge Items Cache", "ButtonPurgeMediaProgress": "Purge Media Progress", @@ -54,6 +56,7 @@ "ButtonQueueRemoveItem": "Remove from queue", "ButtonQuickMatch": "Quick Match", "ButtonRead": "Read", + "ButtonRefresh": "Refresh", "ButtonRemove": "Remove", "ButtonRemoveAll": "Remove All", "ButtonRemoveAllLibraryItems": "Remove All Library Items", @@ -73,6 +76,7 @@ "ButtonSelectFolderPath": "Select Folder Path", "ButtonSeries": "Series", "ButtonSetChaptersFromTracks": "Set chapters from tracks", + "ButtonShare": "Share", "ButtonShiftTimes": "Shift Times", "ButtonShow": "Show", "ButtonStartM4BEncode": "Start M4B Encode", @@ -174,6 +178,7 @@ "HeaderUpdateDetails": "Update Details", "HeaderUpdateLibrary": "Update Library", "HeaderUsers": "Users", + "HeaderYearReview": "Year {0} in Review", "HeaderYourStats": "Your Stats", "LabelAbridged": "Abridged", "LabelAccountType": "Account Type", @@ -385,6 +390,7 @@ "LabelPermissionsDownload": "Can Download", "LabelPermissionsUpdate": "Can Update", "LabelPermissionsUpload": "Can Upload", + "LabelPersonalYearReview": "Your Year in Review ({0})", "LabelPhotoPathURL": "Photo Path/URL", "LabelPlaylists": "Playlists", "LabelPlayMethod": "Play Method", @@ -429,6 +435,7 @@ "LabelSeries": "Series", "LabelSeriesName": "Series Name", "LabelSeriesProgress": "Series Progress", + "LabelServerYearReview": "Server Year in Review ({0})", "LabelSetEbookAsPrimary": "Set as primary", "LabelSetEbookAsSupplementary": "Set as supplementary", "LabelSettingsAudiobooksOnly": "Audiobooks only", @@ -545,6 +552,8 @@ "LabelViewQueue": "View player queue", "LabelVolume": "Volume", "LabelWeekdaysToRun": "Weekdays to run", + "LabelYearReviewHide": "Hide Year in Review", + "LabelYearReviewShow": "See Year in Review", "LabelYourAudiobookDuration": "Your audiobook duration", "LabelYourBookmarks": "Your Bookmarks", "LabelYourPlaylists": "Your Playlists", From 46448ce1e931e0edf79b422be2bf79e5d3a422ac Mon Sep 17 00:00:00 2001 From: rasmuskoit Date: Thu, 22 Feb 2024 09:46:09 +0200 Subject: [PATCH 013/216] Adds estonian translation --- client/plugins/i18n.js | 1 + client/strings/et.json | 768 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 769 insertions(+) create mode 100644 client/strings/et.json diff --git a/client/plugins/i18n.js b/client/plugins/i18n.js index a4a328c74..021682cf2 100644 --- a/client/plugins/i18n.js +++ b/client/plugins/i18n.js @@ -10,6 +10,7 @@ const languageCodeMap = { 'de': { label: 'Deutsch', dateFnsLocale: 'de' }, 'en-us': { label: 'English', dateFnsLocale: 'enUS' }, 'es': { label: 'Español', dateFnsLocale: 'es' }, + 'et': { label: 'Eesti', dateFnsLocale: 'et' }, 'fr': { label: 'Français', dateFnsLocale: 'fr' }, 'hr': { label: 'Hrvatski', dateFnsLocale: 'hr' }, 'it': { label: 'Italiano', dateFnsLocale: 'it' }, diff --git a/client/strings/et.json b/client/strings/et.json new file mode 100644 index 000000000..f06417057 --- /dev/null +++ b/client/strings/et.json @@ -0,0 +1,768 @@ +{ + "ButtonAdd": "Lisa", + "ButtonAddChapters": "Lisa peatükid", + "ButtonAddDevice": "Lisa seade", + "ButtonAddLibrary": "Lisa raamatukogu", + "ButtonAddPodcasts": "Lisa podcastid", + "ButtonAddUser": "Lisa kasutaja", + "ButtonAddYourFirstLibrary": "Lisa oma esimene raamatukogu", + "ButtonApply": "Rakenda", + "ButtonApplyChapters": "Rakenda peatükid", + "ButtonAuthors": "Autorid", + "ButtonBrowseForFolder": "Sirvi kausta", + "ButtonCancel": "Tühista", + "ButtonCancelEncode": "Tühista kodeerimine", + "ButtonChangeRootPassword": "Muuda põhiparooli", + "ButtonCheckAndDownloadNewEpisodes": "Kontrolli ja laadi alla uued episoodid", + "ButtonChooseAFolder": "Vali kaust", + "ButtonChooseFiles": "Vali failid", + "ButtonClearFilter": "Tühista filter", + "ButtonCloseFeed": "Sulge voog", + "ButtonCollections": "Kogud", + "ButtonConfigureScanner": "Konfigureeri skanner", + "ButtonCreate": "Loo", + "ButtonCreateBackup": "Loo varundus", + "ButtonDelete": "Kustuta", + "ButtonDownloadQueue": "Järjekord", + "ButtonEdit": "Muuda", + "ButtonEditChapters": "Muuda peatükke", + "ButtonEditPodcast": "Muuda podcasti", + "ButtonForceReScan": "Sunnitud uuestiskaneerimine", + "ButtonFullPath": "Täielik asukoht", + "ButtonHide": "Peida", + "ButtonHome": "Avaleht", + "ButtonIssues": "Probleemid", + "ButtonJumpBackward": "Hüppa tagasi", + "ButtonJumpForward": "Hüppa edasi", + "ButtonLatest": "Uusim", + "ButtonLibrary": "Raamatukogu", + "ButtonLogout": "Logi välja", + "ButtonLookup": "Otsi", + "ButtonManageTracks": "Halda lugusid", + "ButtonMapChapterTitles": "Kaardista peatükkide pealkirjad", + "ButtonMatchAllAuthors": "Sobita kõik autorid", + "ButtonMatchBooks": "Sobita raamatud", + "ButtonNevermind": "Pole tähtis", + "ButtonNextChapter": "Järgmine peatükk", + "ButtonOk": "Ok", + "ButtonOpenFeed": "Ava voog", + "ButtonOpenManager": "Ava haldur", + "ButtonPause": "Peata", + "ButtonPlay": "Mängi", + "ButtonPlaying": "Mängib", + "ButtonPlaylists": "Esitusloendid", + "ButtonPreviousChapter": "Eelmine peatükk", + "ButtonPurgeAllCache": "Tühjenda kogu vahemälu", + "ButtonPurgeItemsCache": "Tühjenda esemete vahemälu", + "ButtonPurgeMediaProgress": "Tühjenda meedia edenemine", + "ButtonQueueAddItem": "Lisa järjekorda", + "ButtonQueueRemoveItem": "Eemalda järjekorrast", + "ButtonQuickMatch": "Kiire sobitamine", + "ButtonRead": "Loe", + "ButtonRemove": "Eemalda", + "ButtonRemoveAll": "Eemalda kõik", + "ButtonRemoveAllLibraryItems": "Eemalda kõik raamatukogu esemed", + "ButtonRemoveFromContinueListening": "Eemalda jätkake kuulamisest", + "ButtonRemoveFromContinueReading": "Eemalda jätkake lugemisest", + "ButtonRemoveSeriesFromContinueSeries": "Eemalda seeria jätkamisest", + "ButtonReScan": "Uuestiskaneeri", + "ButtonReset": "Lähtesta", + "ButtonResetToDefault": "Lähtesta vaikeseade", + "ButtonRestore": "Taasta", + "ButtonSave": "Salvesta", + "ButtonSaveAndClose": "Salvesta ja sulge", + "ButtonSaveTracklist": "Salvesta lugude loend", + "ButtonScan": "Skanneeri", + "ButtonScanLibrary": "Skanneeri raamatukogu", + "ButtonSearch": "Otsi", + "ButtonSelectFolderPath": "Vali kaustatee", + "ButtonSeries": "Sarjad", + "ButtonSetChaptersFromTracks": "Määra peatükid lugudest", + "ButtonShiftTimes": "Nihke ajad", + "ButtonShow": "Näita", + "ButtonStartM4BEncode": "Alusta M4B kodeerimist", + "ButtonStartMetadataEmbed": "Alusta metaandmete lisamist", + "ButtonSubmit": "Esita", + "ButtonTest": "Test", + "ButtonUpload": "Lae üles", + "ButtonUploadBackup": "Lae üles varundus", + "ButtonUploadCover": "Lae üles ümbris", + "ButtonUploadOPMLFile": "Lae üles OPML-fail", + "ButtonUserDelete": "Kustuta kasutaja {0}", + "ButtonUserEdit": "Muuda kasutajat {0}", + "ButtonViewAll": "Vaata kõiki", + "ButtonYes": "Jah", + "ErrorUploadFetchMetadataAPI": "Viga metaandmete hankimisel", + "ErrorUploadFetchMetadataNoResults": "Ei saanud metaandmeid hankida - proovi tiitlit ja/või autorit uuendada", + "ErrorUploadLacksTitle": "Peab olema pealkiri", + "HeaderAccount": "Konto", + "HeaderAdvanced": "Täpsem", + "HeaderAppriseNotificationSettings": "Apprise teavitamise seaded", + "HeaderAudiobookTools": "Heliraamatu failihaldustööriistad", + "HeaderAudioTracks": "Helirajad", + "HeaderAuthentication": "Autentimine", + "HeaderBackups": "Varukoopiad", + "HeaderChangePassword": "Muuda parooli", + "HeaderChapters": "Peatükid", + "HeaderChooseAFolder": "Vali kaust", + "HeaderCollection": "Kogu", + "HeaderCollectionItems": "Kogu esemed", + "HeaderCover": "Ümbris", + "HeaderCurrentDownloads": "Praegused allalaadimised", + "HeaderCustomMetadataProviders": "Kohandatud metaandmete pakkujad", + "HeaderDetails": "Detailid", + "HeaderDownloadQueue": "Allalaadimise järjekord", + "HeaderEbookFiles": "E-raamatute failid", + "HeaderEmail": "E-post", + "HeaderEmailSettings": "E-posti seaded", + "HeaderEpisodes": "Episoodid", + "HeaderEreaderDevices": "E-lugerite seadmed", + "HeaderEreaderSettings": "E-lugerite seadistused", + "HeaderFiles": "Failid", + "HeaderFindChapters": "Leia peatükid", + "HeaderIgnoredFiles": "Ignoreeritud failid", + "HeaderItemFiles": "Esemete failid", + "HeaderItemMetadataUtils": "Eseme metaandmete tööriistad", + "HeaderLastListeningSession": "Viimane kuulamissessioon", + "HeaderLatestEpisodes": "Viimased episoodid", + "HeaderLibraries": "Raamatukogud", + "HeaderLibraryFiles": "Raamatukogu failid", + "HeaderLibraryStats": "Raamatukogu statistika", + "HeaderListeningSessions": "Kuulamissessioonid", + "HeaderListeningStats": "Kuulamise statistika", + "HeaderLogin": "Logi sisse", + "HeaderLogs": "Logid", + "HeaderManageGenres": "Halda žanre", + "HeaderManageTags": "Halda silte", + "HeaderMapDetails": "Kaardi detailid", + "HeaderMatch": "Sobita", + "HeaderMetadataOrderOfPrecedence": "Metaandmete eelnevusjärjestus", + "HeaderMetadataToEmbed": "Manusta metaandmed", + "HeaderNewAccount": "Uus konto", + "HeaderNewLibrary": "Uus raamatukogu", + "HeaderNotifications": "Teatised", + "HeaderOpenIDConnectAuthentication": "OpenID Connect autentimine", + "HeaderOpenRSSFeed": "Ava RSS-voog", + "HeaderOtherFiles": "Muud failid", + "HeaderPasswordAuthentication": "Parooli autentimine", + "HeaderPermissions": "Õigused", + "HeaderPlayerQueue": "Mängija järjekord", + "HeaderPlaylist": "Mänguloend", + "HeaderPlaylistItems": "Mänguloendi esemed", + "HeaderPodcastsToAdd": "Lisatavad podcastid", + "HeaderPreviewCover": "Eelvaate kaas", + "HeaderRemoveEpisode": "Eemalda episood", + "HeaderRemoveEpisodes": "Eemalda {0} episoodi", + "HeaderRSSFeedGeneral": "RSS-i üksikasjad", + "HeaderRSSFeedIsOpen": "RSS-voog on avatud", + "HeaderRSSFeeds": "RSS-vooged", + "HeaderSavedMediaProgress": "Salvestatud meedia edenemine", + "HeaderSchedule": "Ajakava", + "HeaderScheduleLibraryScans": "Ajasta automaatsed raamatukogu skaneerimised", + "HeaderSession": "Sessioon", + "HeaderSetBackupSchedule": "Määra varunduse ajakava", + "HeaderSettings": "Seaded", + "HeaderSettingsDisplay": "Kuva", + "HeaderSettingsExperimental": "Katsetusfunktsioonid", + "HeaderSettingsGeneral": "Üldised", + "HeaderSettingsScanner": "Skanner", + "HeaderSleepTimer": "Uinaku taimer", + "HeaderStatsLargestItems": "Suurimad esemed", + "HeaderStatsLongestItems": "Kõige pikemad esemed (tunnid)", + "HeaderStatsMinutesListeningChart": "Kuulamise minutid (viimased 7 päeva)", + "HeaderStatsRecentSessions": "Hiljutised sessioonid", + "HeaderStatsTop10Authors": "Top 10 autorit", + "HeaderStatsTop5Genres": "Top 5 žanrit", + "HeaderTableOfContents": "Sisukord", + "HeaderTools": "Tööriistad", + "HeaderUpdateAccount": "Uuenda kontot", + "HeaderUpdateAuthor": "Uuenda autorit", + "HeaderUpdateDetails": "Uuenda detaile", + "HeaderUpdateLibrary": "Uuenda raamatukogu", + "HeaderUsers": "Kasutajad", + "HeaderYourStats": "Sinu statistika", + "LabelAbridged": "Kärbitud", + "LabelAccountType": "Konto tüüp", + "LabelAccountTypeAdmin": "Administraator", + "LabelAccountTypeGuest": "Külaline", + "LabelAccountTypeUser": "Kasutaja", + "LabelActivity": "Tegevus", + "LabelAdded": "Lisatud", + "LabelAddedAt": "Lisatud", + "LabelAddToCollection": "Lisa kogusse", + "LabelAddToCollectionBatch": "Lisa {0} raamatut kogusse", + "LabelAddToPlaylist": "Lisa mänguloendisse", + "LabelAddToPlaylistBatch": "Lisa {0} eset mänguloendisse", + "LabelAdminUsersOnly": "Ainult administraatorid", + "LabelAll": "Kõik", + "LabelAllUsers": "Kõik kasutajad", + "LabelAllUsersExcludingGuests": "Kõik kasutajad, välja arvatud külalised", + "LabelAllUsersIncludingGuests": "Kõik kasutajad, kaasa arvatud külalised", + "LabelAlreadyInYourLibrary": "Juba teie raamatukogus", + "LabelAppend": "Lisa", + "LabelAuthor": "Autor", + "LabelAuthorFirstLast": "Autor (Eesnimi Perekonnanimi)", + "LabelAuthorLastFirst": "Autor (Perekonnanimi, Eesnimi)", + "LabelAuthors": "Autorid", + "LabelAutoDownloadEpisodes": "Automaatne episoodide allalaadimine", + "LabelAutoFetchMetadata": "Automaatne metaandmete hankimine", + "LabelAutoFetchMetadataHelp": "Toob tiitli, autori ja seeria metaandmed üleslaadimise hõlbustamiseks. Lisametaandmed võivad pärast üleslaadimist vajada vastavust.", + "LabelAutoLaunch": "Automaatne käivitamine", + "LabelAutoLaunchDescription": "Suunab automaatselt autentimist pakkuvale teenusele, kui navigeeritakse sisselogimislehele (käsitsi ülekirjutuse tee /login?autoLaunch=0)", + "LabelAutoRegister": "Automaatne registreerimine", + "LabelAutoRegisterDescription": "Loo uued kasutajad automaatselt sisselogimisel", + "LabelBackToUser": "Tagasi kasutajale", + "LabelBackupLocation": "Varukoopia asukoht", + "LabelBackupsEnableAutomaticBackups": "Luba automaatsed varukoopiad", + "LabelBackupsEnableAutomaticBackupsHelp": "Varukoopiad salvestatakse /metadata/backups kausta", + "LabelBackupsMaxBackupSize": "Maksimaalne varukoopia suurus (GB-des)", + "LabelBackupsMaxBackupSizeHelp": "Kaitsena valesti seadistamise vastu ebaõnnestuvad varukoopiad, kui need ületavad seadistatud suuruse.", + "LabelBackupsNumberToKeep": "Varukoopiate arv, mida hoida", + "LabelBackupsNumberToKeepHelp": "Ühel ajal eemaldatakse ainult 1 varukoopia, seega kui teil on juba rohkem varukoopiaid kui siin määratud, peaksite need käsitsi eemaldama.", + "LabelBitrate": "Bittkiirus", + "LabelBooks": "Raamatud", + "LabelButtonText": "Nupu tekst", + "LabelChangePassword": "Muuda parooli", + "LabelChannels": "Kanalid", + "LabelChapters": "Peatükid", + "LabelChaptersFound": "peatükid leitud", + "LabelChapterTitle": "Peatüki pealkiri", + "LabelClickForMoreInfo": "Klõpsa lisateabe saamiseks", + "LabelClosePlayer": "Sulge mängija", + "LabelCodec": "Kodek", + "LabelCollapseSeries": "Ahenda seeria", + "LabelCollection": "Kogu", + "LabelCollections": "Kogud", + "LabelComplete": "Valmis", + "LabelConfirmPassword": "Kinnita parool", + "LabelContinueListening": "Jätka kuulamist", + "LabelContinueReading": "Jätka lugemist", + "LabelContinueSeries": "Jätka seeriat", + "LabelCover": "Ümbris", + "LabelCoverImageURL": "Ümbrise pildi URL", + "LabelCreatedAt": "Loodud", + "LabelCronExpression": "Croni valem", + "LabelCurrent": "Praegune", + "LabelCurrently": "Praegu:", + "LabelCustomCronExpression": "Kohandatud Croni valem:", + "LabelDatetime": "Kuupäev ja kellaaeg", + "LabelDeleteFromFileSystemCheckbox": "Kustuta failisüsteemist (ärge märkige seda ära, et eemaldada ainult andmebaasist)", + "LabelDescription": "Kirjeldus", + "LabelDeselectAll": "Tühista kõigi valimine", + "LabelDevice": "Seade", + "LabelDeviceInfo": "Seadme info", + "LabelDeviceIsAvailableTo": "Seade on saadaval kasutajale...", + "LabelDirectory": "Kataloog", + "LabelDiscFromFilename": "Ketas failinimest", + "LabelDiscFromMetadata": "Ketas metaandmetest", + "LabelDiscover": "Avasta", + "LabelDownload": "Lae alla", + "LabelDownloadNEpisodes": "Lae alla {0} episoodi", + "LabelDuration": "Kestus", + "LabelDurationFound": "Leitud kestus:", + "LabelEbook": "E-raamat", + "LabelEbooks": "E-raamatud", + "LabelEdit": "Muuda", + "LabelEmail": "E-post", + "LabelEmailSettingsFromAddress": "Saatja aadress", + "LabelEmailSettingsSecure": "Turvaline", + "LabelEmailSettingsSecureHelp": "Kui see on tõene, kasutab ühendus serveriga ühenduse loomisel TLS-i. Kui see on väär, kasutatakse TLS-i, kui server toetab STARTTLS-i laiendust. Enamikul juhtudest seadke see väärtus tõeks, kui ühendate pordile 465. Pordi 587 või 25 korral hoidke seda väär. (nodemailer.com/smtp/#authentication)", + "LabelEmailSettingsTestAddress": "Testi aadress", + "LabelEmbeddedCover": "Manustatud kaas", + "LabelEnable": "Luba", + "LabelEnd": "Lõpp", + "LabelEpisode": "Episood", + "LabelEpisodeTitle": "Episoodi pealkiri", + "LabelEpisodeType": "Episoodi tüüp", + "LabelExample": "Näide", + "LabelExplicit": "Vulgaarne", + "LabelFeedURL": "Voogu URL", + "LabelFetchingMetadata": "Metaandmete hankimine", + "LabelFile": "Fail", + "LabelFileBirthtime": "Faili sünniaeg", + "LabelFileModified": "Faili muudetud", + "LabelFilename": "Failinimi", + "LabelFilterByUser": "Filtri alusel kasutaja järgi", + "LabelFindEpisodes": "Otsi episoodid", + "LabelFinished": "Lõpetatud", + "LabelFolder": "Kaust", + "LabelFolders": "Kataloogid", + "LabelFontBold": "Paks", + "LabelFontFamily": "Fondi pere", + "LabelFontItalic": "Kaldkiri", + "LabelFontScale": "Fondi suurus", + "LabelFontStrikethrough": "Üle joonitud", + "LabelFormat": "Vorming", + "LabelGenre": "Žanr", + "LabelGenres": "Žanrid", + "LabelHardDeleteFile": "Faili lõplik kustutamine", + "LabelHasEbook": "On e-raamat", + "LabelHasSupplementaryEbook": "On täiendav e-raamat", + "LabelHighestPriority": "Kõrgeim prioriteet", + "LabelHost": "Host", + "LabelHour": "Tund", + "LabelIcon": "Ikoon", + "LabelImageURLFromTheWeb": "Pildi URL veebist", + "LabelIncludeInTracklist": "Kaasa jälgimisloendis", + "LabelIncomplete": "Puudulik", + "LabelInProgress": "Pooleli", + "LabelInterval": "Intervall", + "LabelIntervalCustomDailyWeekly": "Kohandatud päevane/nädalane", + "LabelIntervalEvery12Hours": "Iga 12 tunni tagant", + "LabelIntervalEvery15Minutes": "Iga 15 minuti tagant", + "LabelIntervalEvery2Hours": "Iga 2 tunni tagant", + "LabelIntervalEvery30Minutes": "Iga 30 minuti tagant", + "LabelIntervalEvery6Hours": "Iga 6 tunni tagant", + "LabelIntervalEveryDay": "Iga päev", + "LabelIntervalEveryHour": "Iga tunni tagant", + "LabelInvalidParts": "Vigased osad", + "LabelInvert": "Pööra ümber", + "LabelItem": "Kirje", + "LabelLanguage": "Keel", + "LabelLanguageDefaultServer": "Vaikeserveri keel", + "LabelLastBookAdded": "Viimati lisatud raamat", + "LabelLastBookUpdated": "Viimati uuendatud raamat", + "LabelLastSeen": "Viimati nähtud", + "LabelLastTime": "Viimati aeg", + "LabelLastUpdate": "Viimane uuendus", + "LabelLayout": "Paigutus", + "LabelLayoutSinglePage": "Üks lehekülg", + "LabelLayoutSplitPage": "Jagatud lehekülg", + "LabelLess": "Vähem", + "LabelLibrariesAccessibleToUser": "Kasutajale ligipääsetavad raamatukogud", + "LabelLibrary": "Raamatukogu", + "LabelLibraryItem": "Raamatukogu kirje", + "LabelLibraryName": "Raamatukogu nimi", + "LabelLimit": "Piirang", + "LabelLineSpacing": "Joonevahe", + "LabelListenAgain": "Kuula uuesti", + "LabelLogLevelDebug": "Silumine", + "LabelLogLevelInfo": "Teave", + "LabelLogLevelWarn": "Hoiatus", + "LabelLookForNewEpisodesAfterDate": "Otsi uusi episoodid pärast seda kuupäeva", + "LabelLowestPriority": "Madalaim prioriteet", + "LabelMatchExistingUsersBy": "Sobita olemasolevad kasutajad", + "LabelMatchExistingUsersByDescription": "Kasutatakse olemasolevate kasutajate ühendamiseks. Ühendatud kasutajaid sobitatakse teie SSO pakkuja unikaalse ID järgi.", + "LabelMediaPlayer": "Meediapleier", + "LabelMediaType": "Meedia tüüp", + "LabelMetadataOrderOfPrecedenceDescription": "Kõrgema prioriteediga metaandmete allikad võtavad üle madalama prioriteediga metaandmete allikad", + "LabelMetadataProvider": "Metaandmete pakkuja", + "LabelMetaTag": "Meta märge", + "LabelMetaTags": "Meta märgendid", + "LabelMinute": "Minut", + "LabelMissing": "Puudub", + "LabelMissingParts": "Puuduvad osad", + "LabelMobileRedirectURIs": "Lubatud mobiilile suunamise URI-d", + "LabelMobileRedirectURIsDescription": "See on mobiilirakenduste jaoks kehtivate suunamise URI-de lubatud nimekiri. Vaikimisi on selleks audiobookshelf://oauth, mida saate eemaldada või täiendada täiendavate URI-dega kolmanda osapoole rakenduste integreerimiseks. Tärni (*) ainukese kirjena kasutamine võimaldab mis tahes URI-d.", + "LabelMore": "Rohkem", + "LabelMoreInfo": "Rohkem infot", + "LabelName": "Nimi", + "LabelNarrator": "Jutustaja", + "LabelNarrators": "Jutustajad", + "LabelNew": "Uus", + "LabelNewestAuthors": "Uusimad autorid", + "LabelNewestEpisodes": "Uusimad episoodid", + "LabelNewPassword": "Uus parool", + "LabelNextBackupDate": "Järgmine varukoopia kuupäev", + "LabelNextScheduledRun": "Järgmine ajakava järgmine", + "LabelNoEpisodesSelected": "Episoodid pole valitud", + "LabelNotes": "Märkused", + "LabelNotFinished": "Ei ole lõpetatud", + "LabelNotificationAppriseURL": "Apprise URL-id", + "LabelNotificationAvailableVariables": "Saadaolevad muutujad", + "LabelNotificationBodyTemplate": "Keha mall", + "LabelNotificationEvent": "Teavituse sündmus", + "LabelNotificationsMaxFailedAttempts": "Maksimaalsed ebaõnnestunud katsed", + "LabelNotificationsMaxFailedAttemptsHelp": "Teatised keelatakse, kui need ebaõnnestuvad nii palju kordi", + "LabelNotificationsMaxQueueSize": "Teavituste sündmuste maksimaalne järjekorra suurus", + "LabelNotificationsMaxQueueSizeHelp": "Sündmused on piiratud 1 sekundiga. Sündmusi ignoreeritakse, kui järjekord on maksimumsuuruses. See takistab teavituste rämpsposti.", + "LabelNotificationTitleTemplate": "Pealkirja mall", + "LabelNotStarted": "Pole alustatud", + "LabelNumberOfBooks": "Raamatute arv", + "LabelNumberOfEpisodes": "Episoodide arv", + "LabelOpenRSSFeed": "Ava RSS voog", + "LabelOverwrite": "Kirjuta üle", + "LabelPassword": "Parool", + "LabelPath": "Asukoht", + "LabelPermissionsAccessAllLibraries": "Saab ligi kõikidele raamatukogudele", + "LabelPermissionsAccessAllTags": "Saab ligi kõikidele siltidele", + "LabelPermissionsAccessExplicitContent": "Saab ligi vulgaarsele sisule", + "LabelPermissionsDelete": "Saab kustutada", + "LabelPermissionsDownload": "Saab alla laadida", + "LabelPermissionsUpdate": "Saab uuendada", + "LabelPermissionsUpload": "Saab üles laadida", + "LabelPhotoPathURL": "Foto tee/URL", + "LabelPlaylists": "Mänguloendid", + "LabelPlayMethod": "Esitusmeetod", + "LabelPodcast": "Podcast", + "LabelPodcasts": "Podcastid", + "LabelPodcastSearchRegion": "Podcasti otsingu piirkond", + "LabelPodcastType": "Podcasti tüüp", + "LabelPort": "Port", + "LabelPrefixesToIgnore": "Eiramiseks eesliited (tõstutundetu)", + "LabelPreventIndexing": "Vältige oma voogu indekseerimist iTunes'i ja Google podcasti kataloogides", + "LabelPrimaryEbook": "Esmane e-raamat", + "LabelProgress": "Edenemine", + "LabelProvider": "Pakkuja", + "LabelPubDate": "Avaldamise kuupäev", + "LabelPublisher": "Kirjastaja", + "LabelPublishYear": "Aasta avaldamine", + "LabelRead": "Lugenud", + "LabelReadAgain": "Loe uuesti", + "LabelReadEbookWithoutProgress": "Lugege e-raamatut ilma edenemist säilitamata", + "LabelRecentlyAdded": "Hiljuti lisatud", + "LabelRecentSeries": "Hiljutised seeriad", + "LabelRecommended": "Soovitatud", + "LabelRedo": "Tee uuesti", + "LabelRegion": "Piirkond", + "LabelReleaseDate": "Väljalaske kuupäev", + "LabelRemoveCover": "Eemalda ümbris", + "LabelRowsPerPage": "Rida lehe kohta", + "LabelRSSFeedCustomOwnerEmail": "Kohandatud omaniku e-post", + "LabelRSSFeedCustomOwnerName": "Kohandatud omaniku nimi", + "LabelRSSFeedOpen": "Ava RSS voog", + "LabelRSSFeedPreventIndexing": "Vältige indekseerimist", + "LabelRSSFeedSlug": "RSS voog Slug", + "LabelRSSFeedURL": "RSS voog URL", + "LabelSearchTerm": "Otsingutermin", + "LabelSearchTitle": "Otsi pealkirja", + "LabelSearchTitleOrASIN": "Otsi pealkirja või ASIN-i", + "LabelSeason": "Hooaeg", + "LabelSelectAllEpisodes": "Vali kõik episoodid", + "LabelSelectEpisodesShowing": "Valige {0} näidatavat episoodi", + "LabelSelectUsers": "Valige kasutajad", + "LabelSendEbookToDevice": "Saada e-raamat seadmele...", + "LabelSequence": "Järjestus", + "LabelSeries": "Seeria", + "LabelSeriesName": "Seeria nimi", + "LabelSeriesProgress": "Seeria edenemine", + "LabelSetEbookAsPrimary": "Määra peamiseks", + "LabelSetEbookAsSupplementary": "Määra täiendavaks", + "LabelSettingsAudiobooksOnly": "Ainult heliraamatud", + "LabelSettingsAudiobooksOnlyHelp": "Selle seadistuse lubamine eirab e-raamatute faile, välja arvatud juhul, kui need on heliraamatu kaustas, kus need seatakse täiendavate e-raamatutena", + "LabelSettingsBookshelfViewHelp": "Skeumorfne kujundus puidust riiulitega", + "LabelSettingsChromecastSupport": "Chromecasti tugi", + "LabelSettingsDateFormat": "Kuupäeva vorming", + "LabelSettingsDisableWatcher": "Keela vaatamine", + "LabelSettingsDisableWatcherForLibrary": "Keela kaustavaatamine raamatukogu jaoks", + "LabelSettingsDisableWatcherHelp": "Keelab automaatse lisamise/uuendamise, kui failimuudatusi tuvastatakse. *Nõuab serveri taaskäivitamist", + "LabelSettingsEnableWatcher": "Luba vaatamine", + "LabelSettingsEnableWatcherForLibrary": "Luba kaustavaatamine raamatukogu jaoks", + "LabelSettingsEnableWatcherHelp": "Lubab automaatset lisamist/uuendamist, kui tuvastatakse failimuudatused. *Nõuab serveri taaskäivitamist", + "LabelSettingsExperimentalFeatures": "Eksperimentaalsed funktsioonid", + "LabelSettingsExperimentalFeaturesHelp": "Arengus olevad funktsioonid, mis vajavad teie tagasisidet ja abi testimisel. Klõpsake GitHubi arutelu avamiseks.", + "LabelSettingsFindCovers": "Leia ümbrised", + "LabelSettingsFindCoversHelp": "Kui teie heliraamatul pole sisseehitatud ümbrist ega ümbrise pilti kaustas, proovib skanner leida ümbrist.
Märkus: see pikendab skaneerimisaega", + "LabelSettingsHideSingleBookSeries": "Peida üksikute raamatute seeriad", + "LabelSettingsHideSingleBookSeriesHelp": "Ühe raamatuga seeriaid peidetakse seeria lehelt ja avalehe riiulitelt.", + "LabelSettingsHomePageBookshelfView": "Avaleht kasutage raamatukoguvaadet", + "LabelSettingsLibraryBookshelfView": "Raamatukogu kasutamiseks kasutage raamatukoguvaadet", + "LabelSettingsParseSubtitles": "Lugege subtiitreid", + "LabelSettingsParseSubtitlesHelp": "Eraldage subtiitrid heliraamatu kaustade nimedest.
Subtiitrid peavad olema eraldatud \" - \".
Näiteks: \"Raamatu pealkiri - Siin on alapealkiri\" alapealkiri on \"Siin on alapealkiri\"", + "LabelSettingsPreferMatchedMetadata": "Eelista sobitatud metaandmeid", + "LabelSettingsPreferMatchedMetadataHelp": "Sobitatud andmed kirjutavad Kiir Sobitamise kasutamisel üle üksikasjad.", + "LabelSettingsSkipMatchingBooksWithASIN": "Jätke ASIN-iga sobituvad raamatud vahele", + "LabelSettingsSkipMatchingBooksWithISBN": "Jätke ISBN-iga sobituvad raamatud vahele", + "LabelSettingsSortingIgnorePrefixes": "Ignoreeri eesliiteid sortimisel", + "LabelSettingsSortingIgnorePrefixesHelp": "nt. eesliidet \"the\" kasutades raamatu pealkiri \"The Book Title\" sorteeritakse \"Book Title, The\"", + "LabelSettingsSquareBookCovers": "Kasutage ruudukujulisi raamatu kaasi", + "LabelSettingsSquareBookCoversHelp": "Eelistage ruudukujulisi kaasi tavaliste 1.6:1 raamatu ümbrise asemel", + "LabelSettingsStoreCoversWithItem": "Salvesta kaaned üksusega", + "LabelSettingsStoreCoversWithItemHelp": "Vaikimisi salvestatakse kaaned /metadata/items kausta. Selle seadistuse lubamine salvestab kaaned teie raamatukogu üksuse kausta. Hoitakse ainult ühte faili nimega \"kaas\"", + "LabelSettingsStoreMetadataWithItem": "Salvesta metaandmed üksusega", + "LabelSettingsStoreMetadataWithItemHelp": "Vaikimisi salvestatakse metaandmed /metadata/items kausta. Selle seadistuse lubamine salvestab metaandmed teie raamatukogu üksuse kaustadesse", + "LabelSettingsTimeFormat": "Kellaaja vorming", + "LabelShowAll": "Näita kõiki", + "LabelSize": "Suurus", + "LabelSleepTimer": "Uinaku taimer", + "LabelSlug": "Slug", + "LabelStart": "Alusta", + "LabelStarted": "Alustatud", + "LabelStartedAt": "Alustatud", + "LabelStartTime": "Alustamise aeg", + "LabelStatsAudioTracks": "Audiojäljed", + "LabelStatsAuthors": "Autorid", + "LabelStatsBestDay": "Parim päev", + "LabelStatsDailyAverage": "Päevane keskmine", + "LabelStatsDays": "Päevad", + "LabelStatsDaysListened": "Kuulatud päevad", + "LabelStatsHours": "Tunnid", + "LabelStatsInARow": "järjest", + "LabelStatsItemsFinished": "Lõpetatud üksused", + "LabelStatsItemsInLibrary": "Üksused raamatukogus", + "LabelStatsMinutes": "minutit", + "LabelStatsMinutesListening": "Kuulamise minutid", + "LabelStatsOverallDays": "Kokku päevad", + "LabelStatsOverallHours": "Kokku tunnid", + "LabelStatsWeekListening": "Nädala kuulamine", + "LabelSubtitle": "Alapealkiri", + "LabelSupportedFileTypes": "Toetatud failitüübid", + "LabelTag": "Silt", + "LabelTags": "Sildid", + "LabelTagsAccessibleToUser": "Kasutajale kättesaadavad sildid", + "LabelTagsNotAccessibleToUser": "Kasutajale mittekättesaadavad sildid", + "LabelTasks": "Käimasolevad ülesanded", + "LabelTextEditorBulletedList": "Punktloend", + "LabelTextEditorLink": "Link", + "LabelTextEditorNumberedList": "Numberloend", + "LabelTextEditorUnlink": "Eemalda link", + "LabelTheme": "Teema", + "LabelThemeDark": "Tume", + "LabelThemeLight": "Hele", + "LabelTimeBase": "Aja alus", + "LabelTimeListened": "Kuulatud aeg", + "LabelTimeListenedToday": "Täna kuulatud aeg", + "LabelTimeRemaining": "{0} jäänud", + "LabelTimeToShift": "Nihutamiseks sekundites kuluv aeg", + "LabelTitle": "Pealkiri", + "LabelToolsEmbedMetadata": "Manusta metaandmed", + "LabelToolsEmbedMetadataDescription": "Manusta metaandmed helifailidesse, sealhulgas kaanepilt ja peatükid.", + "LabelToolsMakeM4b": "Loo M4B heliraamatu fail", + "LabelToolsMakeM4bDescription": "Loo .M4B heliraamatu fail, kuhu on manustatud metaandmed, kaanepilt ja peatükid.", + "LabelToolsSplitM4b": "Jaga M4B MP3-deks", + "LabelToolsSplitM4bDescription": "Loo MP3-d M4B-st peatükkide kaupa, kus on manustatud metaandmed, kaanepilt ja peatükid.", + "LabelTotalDuration": "Kogukestus", + "LabelTotalTimeListened": "Kogu kuulatud aeg", + "LabelTrackFromFilename": "Jälg nimest", + "LabelTrackFromMetadata": "Jälg metaandmetest", + "LabelTracks": "Jäljed", + "LabelTracksMultiTrack": "Mitmejälg", + "LabelTracksNone": "Ühtegi jälgimist", + "LabelTracksSingleTrack": "Üksikjälg", + "LabelType": "Tüüp", + "LabelUnabridged": "Täismahus", + "LabelUndo": "Võta tagasi", + "LabelUnknown": "Tundmatu", + "LabelUpdateCover": "Uuenda kaant", + "LabelUpdateCoverHelp": "Luba üle kirjutamine olemasolevate kaante jaoks valitud raamatutele, kui leitakse sobivus", + "LabelUpdatedAt": "Uuendatud", + "LabelUpdateDetails": "Uuenda üksikasju", + "LabelUpdateDetailsHelp": "Luba üle kirjutamine olemasolevate üksikasjade jaoks valitud raamatutele, kui leitakse sobivus", + "LabelUploaderDragAndDrop": "Lohista ja aseta faile või kaustu", + "LabelUploaderDropFiles": "Aseta failid", + "LabelUploaderItemFetchMetadataHelp": "Hangi automaatselt pealkiri, autor ja seeria", + "LabelUseChapterTrack": "Kasuta peatüki jälge", + "LabelUseFullTrack": "Kasuta täielikku jälge", + "LabelUser": "Kasutaja", + "LabelUsername": "Kasutajanimi", + "LabelValue": "Väärtus", + "LabelVersion": "Versioon", + "LabelViewBookmarks": "Vaata järjehoidjaid", + "LabelViewChapters": "Vaata peatükke", + "LabelViewQueue": "Vaata esitusjärjekorda", + "LabelVolume": "Heli tugevus", + "LabelWeekdaysToRun": "Päevad nädalas käivitamiseks", + "LabelYourAudiobookDuration": "Teie heliraamatu kestus", + "LabelYourBookmarks": "Teie järjehoidjad", + "LabelYourPlaylists": "Teie esitusloendid", + "LabelYourProgress": "Teie edenemine", + "MessageAddToPlayerQueue": "Lisa esitusjärjekorda", + "MessageAppriseDescription": "Selle funktsiooni kasutamiseks peate käivitama Apprise API eksemplari või API, mis töötleb samu päringuid.
Apprise API URL peaks olema täielik URL-rada teatise saatmiseks, näiteks kui teie API eksemplar töötab aadressil http://192.168.1.1:8337, siis peaksite sisestama http://192.168.1.1:8337/notify.", + "MessageBackupsDescription": "Varukoopiad hõlmavad kasutajaid, kasutajate edenemist, raamatukogu üksikasju, serveri seadeid ja kaustades /metadata/items ja /metadata/authors salvestatud pilte. Varukoopiad ei hõlma ühtegi teie raamatukogu kaustades olevat faili.", + "MessageBatchQuickMatchDescription": "Kiire sobitamine üritab lisada valitud üksustele puuduvad kaaned ja metaandmed. Luba allpool olevad valikud, et lubada Kiire sobitamine'il üle kirjutada olemasolevaid kaasi ja/või metaandmeid.", + "MessageBookshelfNoCollections": "Te pole veel ühtegi kogumit teinud", + "MessageBookshelfNoResultsForFilter": "Filtrile \"{0}: {1}\" pole tulemusi", + "MessageBookshelfNoRSSFeeds": "Ühtegi RSS-i voogu pole avatud", + "MessageBookshelfNoSeries": "Teil pole ühtegi seeriat", + "MessageChapterEndIsAfter": "Peatüki lõpp on pärast teie heliraamatu lõppu", + "MessageChapterErrorFirstNotZero": "Esimene peatükk peab algama 0-st", + "MessageChapterErrorStartGteDuration": "Vigane algusaeg peab olema väiksem kui heliraamatu kestus", + "MessageChapterErrorStartLtPrev": "Vigane algusaeg peab olema suurem või võrdne eelneva peatüki algusajaga", + "MessageChapterStartIsAfter": "Peatüki algus on pärast teie heliraamatu lõppu", + "MessageCheckingCron": "Croni kontrollimine...", + "MessageConfirmCloseFeed": "Olete kindel, et soovite selle voo sulgeda?", + "MessageConfirmDeleteBackup": "Olete kindel, et soovite varukoopia kustutada {0} kohta?", + "MessageConfirmDeleteFile": "See kustutab faili teie failisüsteemist. Olete kindel?", + "MessageConfirmDeleteLibrary": "Olete kindel, et soovite raamatukogu \"{0}\" lõplikult kustutada?", + "MessageConfirmDeleteLibraryItem": "See kustutab raamatukogu üksuse andmebaasist ja failisüsteemist. Olete kindel?", + "MessageConfirmDeleteLibraryItems": "See kustutab {0} raamatukogu üksust andmebaasist ja failisüsteemist. Olete kindel?", + "MessageConfirmDeleteSession": "Olete kindel, et soovite selle seansi kustutada?", + "MessageConfirmForceReScan": "Olete kindel, et soovite jõuga uuesti skannida?", + "MessageConfirmMarkAllEpisodesFinished": "Olete kindel, et soovite kõik episoodid lõpetatuks märkida?", + "MessageConfirmMarkAllEpisodesNotFinished": "Olete kindel, et soovite kõik episoodid mitte lõpetatuks märkida?", + "MessageConfirmMarkSeriesFinished": "Olete kindel, et soovite selle seeria kõik raamatud lõpetatuks märkida?", + "MessageConfirmMarkSeriesNotFinished": "Olete kindel, et soovite selle seeria kõik raamatud mitte lõpetatuks märkida?", + "MessageConfirmQuickEmbed": "Hoiatus! Quick Embed ei tee varukoopiaid teie helifailidest. Veenduge, et teil oleks varukoopia oma helifailidest.

Kas soovite jätkata?", + "MessageConfirmRemoveAllChapters": "Olete kindel, et soovite eemaldada kõik peatükid?", + "MessageConfirmRemoveAuthor": "Olete kindel, et soovite autori \"{0}\" eemaldada?", + "MessageConfirmRemoveCollection": "Olete kindel, et soovite kogumi \"{0}\" eemaldada?", + "MessageConfirmRemoveEpisode": "Olete kindel, et soovite episoodi \"{0}\" eemaldada?", + "MessageConfirmRemoveEpisodes": "Olete kindel, et soovite eemaldada {0} episoodi?", + "MessageConfirmRemoveListeningSessions": "Olete kindel, et soovite eemaldada {0} kuulamise sessiooni?", + "MessageConfirmRemoveNarrator": "Olete kindel, et soovite jutustaja \"{0}\" eemaldada?", + "MessageConfirmRemovePlaylist": "Olete kindel, et soovite eemaldada oma esitusloendi \"{0}\"?", + "MessageConfirmRenameGenre": "Olete kindel, et soovite žanri \"{0}\" ümber nimetada kujule \"{1}\" kõikidele üksustele?", + "MessageConfirmRenameGenreMergeNote": "Märkus: See žanr on juba olemas, nii et need ühendatakse.", + "MessageConfirmRenameGenreWarning": "Hoiatus! Sarnane žanr erineva puhvriga on juba olemas \"{0}\".", + "MessageConfirmRenameTag": "Olete kindel, et soovite silti \"{0}\" ümber nimetada kujule \"{1}\" kõikidele üksustele?", + "MessageConfirmRenameTagMergeNote": "Märkus: See silt on juba olemas, nii et need ühendatakse.", + "MessageConfirmRenameTagWarning": "Hoiatus! Sarnane silt erineva puhvriga on juba olemas \"{0}\".", + "MessageConfirmReScanLibraryItems": "Olete kindel, et soovite uuesti skannida {0} üksust?", + "MessageConfirmSendEbookToDevice": "Olete kindel, et soovite saata {0} e-raamatu \"{1}\" seadmesse \"{2}\"?", + "MessageDownloadingEpisode": "Episoodi allalaadimine", + "MessageDragFilesIntoTrackOrder": "Lohistage failid õigesse järjekorda", + "MessageEmbedFinished": "Manustamine lõpetatud!", + "MessageEpisodesQueuedForDownload": "{0} Episood(i) on allalaadimiseks järjekorras", + "MessageFeedURLWillBe": "Toite URL saab olema {0}", + "MessageFetching": "Hangitakse...", + "MessageForceReScanDescription": "skaneerib kõik failid uuesti nagu värsket skannimist. Heli faili ID3 silte, OPF faile ja tekstifaile skaneeritakse uuesti.", + "MessageImportantNotice": "Oluline märkus!", + "MessageInsertChapterBelow": "Sisesta peatükk allapoole", + "MessageItemsSelected": "{0} Valitud üksust", + "MessageItemsUpdated": "{0} Üksust on uuendatud", + "MessageJoinUsOn": "Liitu meiega", + "MessageListeningSessionsInTheLastYear": "Kuulamissessioone viimase aasta jooksul: {0}", + "MessageLoading": "Laadimine...", + "MessageLoadingFolders": "Kaustade laadimine...", + "MessageM4BFailed": "M4B ebaõnnestus!", + "MessageM4BFinished": "M4B lõpetatud!", + "MessageMapChapterTitles": "Kaarda peatükkide pealkirjad olemasolevatele heliraamatu peatükkidele, ajatempe ei muudeta", + "MessageMarkAllEpisodesFinished": "Märgi kõik episoodid lõpetatuks", + "MessageMarkAllEpisodesNotFinished": "Märgi kõik episoodid mitte lõpetatuks", + "MessageMarkAsFinished": "Märgi lõpetatuks", + "MessageMarkAsNotFinished": "Märgi mitte lõpetatuks", + "MessageMatchBooksDescription": "üritab raamatuid raamatukogus sobitada otsingupakkujast leitud raamatuga ning täita tühjad üksikasjad ja kaas. Ei üle kirjuta üksikasju.", + "MessageNoAudioTracks": "Ühtegi helijälge pole", + "MessageNoAuthors": "Ühtegi autori pole", + "MessageNoBackups": "Ühtegi varukoopia pole", + "MessageNoBookmarks": "Ühtegi järjehoidjat pole", + "MessageNoChapters": "Ühtegi peatükki pole", + "MessageNoCollections": "Ühtegi kogumit pole", + "MessageNoCoversFound": "Ühtegi kaant pole leitud", + "MessageNoDescription": "Kirjeldust pole", + "MessageNoDownloadsInProgress": "Praegu allalaadimisi pole", + "MessageNoDownloadsQueued": "Pole järjekorras allalaadimisi", + "MessageNoEpisodeMatchesFound": "Ühtegi episoodi vastet pole leitud", + "MessageNoEpisodes": "Ühtegi episoodi pole", + "MessageNoFoldersAvailable": "Ühtegi kausta pole saadaval", + "MessageNoGenres": "Ühtegi žanrit pole", + "MessageNoIssues": "Ühtegi probleemi pole", + "MessageNoItems": "Ühtegi üksust pole", + "MessageNoItemsFound": "Ühtegi üksust pole leitud", + "MessageNoListeningSessions": "Ühtegi kuulamissessiooni pole", + "MessageNoLogs": "Ühtegi logi pole", + "MessageNoMediaProgress": "Ühtegi meediaprogressi pole", + "MessageNoNotifications": "Ühtegi teavitust pole", + "MessageNoPodcastsFound": "Ühtegi podcasti pole leitud", + "MessageNoResults": "Ühtegi tulemust pole", + "MessageNoSearchResultsFor": "Otsingutulemusi pole märksõna kohta: \"{0}\"", + "MessageNoSeries": "Ühtegi seeriat pole", + "MessageNoTags": "Ühtegi silti pole", + "MessageNoTasksRunning": "Ühtegi käimasolevat ülesannet pole", + "MessageNotYetImplemented": "Pole veel ellu viidud", + "MessageNoUpdateNecessary": "Ühtegi värskendust pole vaja", + "MessageNoUpdatesWereNecessary": "Ühtegi värskendust polnud vaja", + "MessageNoUserPlaylists": "Teil pole ühtegi esitusloendit", + "MessageOr": "või", + "MessagePauseChapter": "Peata peatüki esitamine", + "MessagePlayChapter": "Kuula peatüki algust", + "MessagePlaylistCreateFromCollection": "Loo esitusloend kogumist", + "MessagePodcastHasNoRSSFeedForMatching": "Podcastil pole sobitamiseks RSS-voogu", + "MessageQuickMatchDescription": "täidab tühjad üksikasjad ja kaaned raamatukogus esimese otsingutulemusega rakendusest '{0}'. Ei üle kirjuta üksikasju, välja arvatud juhul, kui serveri sätetes on lubatud 'Eelista sobitatud metaandmeid'.", + "MessageRemoveChapter": "Eemalda peatükk", + "MessageRemoveEpisodes": "Eemalda {0} episood(i)", + "MessageRemoveFromPlayerQueue": "Eemalda esitusjärjekorrast", + "MessageRemoveUserWarning": "Olete kindel, et soovite kasutaja \"{0}\" lõplikult kustutada?", + "MessageReportBugsAndContribute": "Raporteeri vigu, palu funktsioone ja aita kaasa", + "MessageResetChaptersConfirm": "Olete kindel, et soovite peatükkide lähtestada ja tehtud muudatused tagasi võtta?", + "MessageRestoreBackupConfirm": "Olete kindel, et soovite taastada varukoopia, mis loodi", + "MessageRestoreBackupWarning": "Varukoopia taastamine kirjutab üle kogu /config ja /metadata/items & /metadata/authors kaustas oleva andmebaasi.

Varukoopiad ei muuda teie raamatukogukaustades olevaid faile. Kui olete lubanud serveri sätetel salvestada kaane kunsti ja metaandmed teie raamatukogu kaustadesse, siis neid ei varundata ega kirjutata üle.

Kõik teie serveri kasutavad kliendid värskendatakse automaatselt.", + "MessageSearchResultsFor": "Otsingutulemused märksõnale", + "MessageSelected": "{0} valitud", + "MessageServerCouldNotBeReached": "Serveriga ei saanud ühendust luua", + "MessageSetChaptersFromTracksDescription": "Määrake peatükid, kasutades iga helifaili peatükina ja peatüki pealkirjana helifaili nime", + "MessageStartPlaybackAtTime": "Alustage \"{0}\" esitamist kell {1}?", + "MessageThinking": "Mõtlen...", + "MessageUploaderItemFailed": "Üleslaadimine ebaõnnestus", + "MessageUploaderItemSuccess": "Edukalt üles laaditud!", + "MessageUploading": "Üles laadimine...", + "MessageValidCronExpression": "Kehtiv cron-väljend", + "MessageWatcherIsDisabledGlobally": "Vaatleja on ülemaailmselt keelatud serveri sätetes", + "MessageXLibraryIsEmpty": "{0} raamatukogu on tühi!", + "MessageYourAudiobookDurationIsLonger": "Teie heliraamatu kestus on pikem kui leitud kestus", + "MessageYourAudiobookDurationIsShorter": "Teie heliraamatu kestus on lühem kui leitud kestus", + "NoteChangeRootPassword": "Root kasutajal võib olla ainus kasutaja, kellel võib olla tühi parool", + "NoteChapterEditorTimes": "Märkus: Esimese peatüki algusaeg peab jääma 0:00 ja viimase peatüki algusaeg ei tohi ületada selle heliraamatu kestust.", + "NoteFolderPicker": "Märkus: juba kaardistatud kaustu ei kuvata", + "NoteRSSFeedPodcastAppsHttps": "Hoiatus: Enamik podcasti rakendusi nõuab, et RSS-voogu URL kasutaks HTTPS-i", + "NoteRSSFeedPodcastAppsPubDate": "Hoiatus: Üks või mitu teie episoodi ei sisalda publikatsioonikuupäeva. Mõned podcasti rakendused nõuavad seda.", + "NoteUploaderFoldersWithMediaFiles": "Kaustu, kus on meediat, käsitletakse eraldi raamatukogu üksustena.", + "NoteUploaderOnlyAudioFiles": "Kui laadite üles ainult helifaile, käsitletakse iga helifaili eraldi heliraamatuna.", + "NoteUploaderUnsupportedFiles": "Toetamata failid jäetakse tähelepanuta. Kausta valimisel või lohistamisel jäetakse tähelepanuta muud failid, mis pole üksuse kaustas.", + "PlaceholderNewCollection": "Uue kogumi nimi", + "PlaceholderNewFolderPath": "Uus kausta tee", + "PlaceholderNewPlaylist": "Uue esitusloendi nimi", + "PlaceholderSearch": "Otsi...", + "PlaceholderSearchEpisode": "Otsi episoodi...", + "ToastAccountUpdateFailed": "Konto värskendamine ebaõnnestus", + "ToastAccountUpdateSuccess": "Konto on värskendatud", + "ToastAuthorImageRemoveFailed": "Pildi eemaldamine ebaõnnestus", + "ToastAuthorImageRemoveSuccess": "Autori pilt on eemaldatud", + "ToastAuthorUpdateFailed": "Autori värskendamine ebaõnnestus", + "ToastAuthorUpdateMerged": "Autor liidetud", + "ToastAuthorUpdateSuccess": "Autor värskendatud", + "ToastAuthorUpdateSuccessNoImageFound": "Autor värskendatud (pilti ei leitud)", + "ToastBackupCreateFailed": "Varukoopia loomine ebaõnnestus", + "ToastBackupCreateSuccess": "Varukoopia loodud", + "ToastBackupDeleteFailed": "Varukoopia kustutamine ebaõnnestus", + "ToastBackupDeleteSuccess": "Varukoopia kustutatud", + "ToastBackupRestoreFailed": "Varukoopia taastamine ebaõnnestus", + "ToastBackupUploadFailed": "Varukoopia üles laadimine ebaõnnestus", + "ToastBackupUploadSuccess": "Varukoopia üles laaditud", + "ToastBatchUpdateFailed": "Partii värskendamine ebaõnnestus", + "ToastBatchUpdateSuccess": "Partii värskendamine õnnestus", + "ToastBookmarkCreateFailed": "Järjehoidja loomine ebaõnnestus", + "ToastBookmarkCreateSuccess": "Järjehoidja lisatud", + "ToastBookmarkRemoveFailed": "Järjehoidja eemaldamine ebaõnnestus", + "ToastBookmarkRemoveSuccess": "Järjehoidja eemaldatud", + "ToastBookmarkUpdateFailed": "Järjehoidja värskendamine ebaõnnestus", + "ToastBookmarkUpdateSuccess": "Järjehoidja värskendatud", + "ToastChaptersHaveErrors": "Peatükkidel on vigu", + "ToastChaptersMustHaveTitles": "Peatükkidel peab olema pealkiri", + "ToastCollectionItemsRemoveFailed": "Üksuse(te) eemaldamine kogumist ebaõnnestus", + "ToastCollectionItemsRemoveSuccess": "Üksus(ed) eemaldatud kogumist", + "ToastCollectionRemoveFailed": "Kogumi eemaldamine ebaõnnestus", + "ToastCollectionRemoveSuccess": "Kogum eemaldatud", + "ToastCollectionUpdateFailed": "Kogumi värskendamine ebaõnnestus", + "ToastCollectionUpdateSuccess": "Kogum värskendatud", + "ToastItemCoverUpdateFailed": "Üksuse kaane värskendamine ebaõnnestus", + "ToastItemCoverUpdateSuccess": "Üksuse kaas värskendatud", + "ToastItemDetailsUpdateFailed": "Üksuse üksikasjade värskendamine ebaõnnestus", + "ToastItemDetailsUpdateSuccess": "Üksuse üksikasjad värskendatud", + "ToastItemDetailsUpdateUnneeded": "Üksuse üksikasjade värskendamine pole vajalik", + "ToastItemMarkedAsFinishedFailed": "Märgistamine kui lõpetatud ebaõnnestus", + "ToastItemMarkedAsFinishedSuccess": "Üksus märgitud kui lõpetatud", + "ToastItemMarkedAsNotFinishedFailed": "Märgistamine kui mitte lõpetatud ebaõnnestus", + "ToastItemMarkedAsNotFinishedSuccess": "Üksus märgitud kui mitte lõpetatud", + "ToastLibraryCreateFailed": "Raamatukogu loomine ebaõnnestus", + "ToastLibraryCreateSuccess": "Raamatukogu \"{0}\" loodud", + "ToastLibraryDeleteFailed": "Raamatukogu kustutamine ebaõnnestus", + "ToastLibraryDeleteSuccess": "Raamatukogu kustutatud", + "ToastLibraryScanFailedToStart": "Skanneerimine ei käivitunud", + "ToastLibraryScanStarted": "Raamatukogu skaneerimine alustatud", + "ToastLibraryUpdateFailed": "Raamatukogu värskendamine ebaõnnestus", + "ToastLibraryUpdateSuccess": "Raamatukogu \"{0}\" värskendatud", + "ToastPlaylistCreateFailed": "Esitusloendi loomine ebaõnnestus", + "ToastPlaylistCreateSuccess": "Esitusloend loodud", + "ToastPlaylistRemoveFailed": "Esitusloendi eemaldamine ebaõnnestus", + "ToastPlaylistRemoveSuccess": "Esitusloend eemaldatud", + "ToastPlaylistUpdateFailed": "Esitusloendi värskendamine ebaõnnestus", + "ToastPlaylistUpdateSuccess": "Esitusloend värskendatud", + "ToastPodcastCreateFailed": "Podcasti loomine ebaõnnestus", + "ToastPodcastCreateSuccess": "Podcast loodud edukalt", + "ToastRemoveItemFromCollectionFailed": "Üksuse eemaldamine kogumist ebaõnnestus", + "ToastRemoveItemFromCollectionSuccess": "Üksus eemaldatud kogumist", + "ToastRSSFeedCloseFailed": "RSS-voogu sulgemine ebaõnnestus", + "ToastRSSFeedCloseSuccess": "RSS-voog suletud", + "ToastSendEbookToDeviceFailed": "E-raamatu saatmine seadmesse ebaõnnestus", + "ToastSendEbookToDeviceSuccess": "E-raamat saadetud seadmesse \"{0}\"", + "ToastSeriesUpdateFailed": "Sarja värskendamine ebaõnnestus", + "ToastSeriesUpdateSuccess": "Sarja värskendamine õnnestus", + "ToastSessionDeleteFailed": "Seansi kustutamine ebaõnnestus", + "ToastSessionDeleteSuccess": "Sessioon kustutatud", + "ToastSocketConnected": "Pesa ühendatud", + "ToastSocketDisconnected": "Pesa ühendus katkenud", + "ToastSocketFailedToConnect": "Pesa ühendamine ebaõnnestus", + "ToastUserDeleteFailed": "Kasutaja kustutamine ebaõnnestus", + "ToastUserDeleteSuccess": "Kasutaja kustutatud" +} \ No newline at end of file From def2b6425ba82a7dd50613431fdaa14e7555130e Mon Sep 17 00:00:00 2001 From: advplyr Date: Thu, 22 Feb 2024 16:30:41 -0600 Subject: [PATCH 014/216] Update:Username and password inputs on login page trim whitespace #2628 --- client/pages/login.vue | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/client/pages/login.vue b/client/pages/login.vue index c7efa0d05..9b7758d8a 100644 --- a/client/pages/login.vue +++ b/client/pages/login.vue @@ -10,9 +10,9 @@

Create Root User

- - - + + +

Directory Paths

@@ -34,10 +34,10 @@ - + - +
{{ processing ? 'Checking...' : $strings.ButtonSubmit }}
From 608b25de45e9a02836326686aa85b4fea08228b6 Mon Sep 17 00:00:00 2001 From: advplyr Date: Fri, 23 Feb 2024 16:59:46 -0600 Subject: [PATCH 015/216] Map en-us translations --- client/strings/cs.json | 9 +++++++++ client/strings/da.json | 9 +++++++++ client/strings/de.json | 4 +++- client/strings/en-us.json | 2 ++ client/strings/es.json | 9 +++++++++ client/strings/et.json | 9 +++++++++ client/strings/fr.json | 9 +++++++++ client/strings/gu.json | 9 +++++++++ client/strings/hi.json | 9 +++++++++ client/strings/hr.json | 9 +++++++++ client/strings/hu.json | 9 +++++++++ client/strings/it.json | 11 ++++++++++- client/strings/lt.json | 9 +++++++++ client/strings/nl.json | 9 +++++++++ client/strings/no.json | 9 +++++++++ client/strings/pl.json | 9 +++++++++ client/strings/pt-br.json | 11 ++++++++++- client/strings/ru.json | 9 +++++++++ client/strings/sv.json | 9 +++++++++ client/strings/zh-cn.json | 9 +++++++++ 20 files changed, 169 insertions(+), 3 deletions(-) diff --git a/client/strings/cs.json b/client/strings/cs.json index 3ab713efb..3134d60db 100644 --- a/client/strings/cs.json +++ b/client/strings/cs.json @@ -43,6 +43,7 @@ "ButtonMatchAllAuthors": "Spárovat všechny autory", "ButtonMatchBooks": "Spárovat Knihy", "ButtonNevermind": "Nevadí", + "ButtonNext": "Next", "ButtonNextChapter": "Next Chapter", "ButtonOk": "Ok", "ButtonOpenFeed": "Otevřít kanál", @@ -51,6 +52,7 @@ "ButtonPlay": "Přehrát", "ButtonPlaying": "Hraje", "ButtonPlaylists": "Seznamy skladeb", + "ButtonPrevious": "Previous", "ButtonPreviousChapter": "Previous Chapter", "ButtonPurgeAllCache": "Vyčistit veškerou mezipaměť", "ButtonPurgeItemsCache": "Vyčistit mezipaměť položek", @@ -59,6 +61,7 @@ "ButtonQueueRemoveItem": "Odstranit z fronty", "ButtonQuickMatch": "Rychlé přiřazení", "ButtonRead": "Číst", + "ButtonRefresh": "Refresh", "ButtonRemove": "Odstranit", "ButtonRemoveAll": "Odstranit vše", "ButtonRemoveAllLibraryItems": "Odstranit všechny položky knihovny", @@ -78,6 +81,7 @@ "ButtonSelectFolderPath": "Vybrat cestu ke složce", "ButtonSeries": "Série", "ButtonSetChaptersFromTracks": "Nastavit kapitoly ze stop", + "ButtonShare": "Share", "ButtonShiftTimes": "Časy posunu", "ButtonShow": "Zobrazit", "ButtonStartM4BEncode": "Spustit kódování M4B", @@ -180,6 +184,7 @@ "HeaderUpdateDetails": "Aktualizovat podrobnosti", "HeaderUpdateLibrary": "Aktualizovat knihovnu", "HeaderUsers": "Uživatelé", + "HeaderYearReview": "Year {0} in Review", "HeaderYourStats": "Vaše statistiky", "LabelAbridged": "Zkráceno", "LabelAccountType": "Typ účtu", @@ -391,6 +396,7 @@ "LabelPermissionsDownload": "Může stahovat", "LabelPermissionsUpdate": "Může aktualizovat", "LabelPermissionsUpload": "Může nahrávat", + "LabelPersonalYearReview": "Your Year in Review ({0})", "LabelPhotoPathURL": "Cesta k fotografii/URL", "LabelPlaylists": "Seznamy skladeb", "LabelPlayMethod": "Metoda přehrávání", @@ -436,6 +442,7 @@ "LabelSeries": "Série", "LabelSeriesName": "Název série", "LabelSeriesProgress": "Průběh série", + "LabelServerYearReview": "Server Year in Review ({0})", "LabelSetEbookAsPrimary": "Nastavit jako primární", "LabelSetEbookAsSupplementary": "Nastavit jako doplňkové", "LabelSettingsAudiobooksOnly": "Pouze audioknihy", @@ -552,6 +559,8 @@ "LabelViewQueue": "Zobrazit frontu přehrávače", "LabelVolume": "Hlasitost", "LabelWeekdaysToRun": "Dny v týdnu ke spuštění", + "LabelYearReviewHide": "Hide Year in Review", + "LabelYearReviewShow": "See Year in Review", "LabelYourAudiobookDuration": "Doba trvání vaší audioknihy", "LabelYourBookmarks": "Vaše záložky", "LabelYourPlaylists": "Vaše seznamy přehrávání", diff --git a/client/strings/da.json b/client/strings/da.json index d456cd51c..f79f19b1e 100644 --- a/client/strings/da.json +++ b/client/strings/da.json @@ -43,6 +43,7 @@ "ButtonMatchAllAuthors": "Match alle forfattere", "ButtonMatchBooks": "Match bøger", "ButtonNevermind": "Glem det", + "ButtonNext": "Next", "ButtonNextChapter": "Next Chapter", "ButtonOk": "OK", "ButtonOpenFeed": "Åbn feed", @@ -51,6 +52,7 @@ "ButtonPlay": "Afspil", "ButtonPlaying": "Afspiller", "ButtonPlaylists": "Afspilningslister", + "ButtonPrevious": "Previous", "ButtonPreviousChapter": "Previous Chapter", "ButtonPurgeAllCache": "Ryd al cache", "ButtonPurgeItemsCache": "Ryd elementcache", @@ -59,6 +61,7 @@ "ButtonQueueRemoveItem": "Fjern fra kø", "ButtonQuickMatch": "Hurtig Match", "ButtonRead": "Læs", + "ButtonRefresh": "Refresh", "ButtonRemove": "Fjern", "ButtonRemoveAll": "Fjern Alle", "ButtonRemoveAllLibraryItems": "Fjern Alle Bibliotekselementer", @@ -78,6 +81,7 @@ "ButtonSelectFolderPath": "Vælg Mappen Sti", "ButtonSeries": "Serie", "ButtonSetChaptersFromTracks": "Sæt kapitler fra spor", + "ButtonShare": "Share", "ButtonShiftTimes": "Skift Tider", "ButtonShow": "Vis", "ButtonStartM4BEncode": "Start M4B Kode", @@ -180,6 +184,7 @@ "HeaderUpdateDetails": "Opdater Detaljer", "HeaderUpdateLibrary": "Opdater Bibliotek", "HeaderUsers": "Brugere", + "HeaderYearReview": "Year {0} in Review", "HeaderYourStats": "Dine Statistikker", "LabelAbridged": "Abridged", "LabelAccountType": "Kontotype", @@ -391,6 +396,7 @@ "LabelPermissionsDownload": "Kan downloade", "LabelPermissionsUpdate": "Kan opdatere", "LabelPermissionsUpload": "Kan uploade", + "LabelPersonalYearReview": "Your Year in Review ({0})", "LabelPhotoPathURL": "Foto sti/URL", "LabelPlaylists": "Afspilningslister", "LabelPlayMethod": "Afspilningsmetode", @@ -436,6 +442,7 @@ "LabelSeries": "Serie", "LabelSeriesName": "Serienavn", "LabelSeriesProgress": "Seriefremskridt", + "LabelServerYearReview": "Server Year in Review ({0})", "LabelSetEbookAsPrimary": "Indstil som primær", "LabelSetEbookAsSupplementary": "Indstil som supplerende", "LabelSettingsAudiobooksOnly": "Kun lydbøger", @@ -552,6 +559,8 @@ "LabelViewQueue": "Se afspilningskø", "LabelVolume": "Volumen", "LabelWeekdaysToRun": "Ugedage til kørsel", + "LabelYearReviewHide": "Hide Year in Review", + "LabelYearReviewShow": "See Year in Review", "LabelYourAudiobookDuration": "Din lydbogsvarighed", "LabelYourBookmarks": "Dine bogmærker", "LabelYourPlaylists": "Dine spillelister", diff --git a/client/strings/de.json b/client/strings/de.json index 546631f38..46467734b 100644 --- a/client/strings/de.json +++ b/client/strings/de.json @@ -43,6 +43,7 @@ "ButtonMatchAllAuthors": "Online Metadaten-Abgleich (alle Autoren)", "ButtonMatchBooks": "Online Metadaten-Abgleich (alle Medien)", "ButtonNevermind": "Abbrechen", + "ButtonNext": "Next", "ButtonNextChapter": "Nächstes Kapitel", "ButtonOk": "Ok", "ButtonOpenFeed": "Feed öffnen", @@ -51,6 +52,7 @@ "ButtonPlay": "Abspielen", "ButtonPlaying": "Spielt", "ButtonPlaylists": "Wiedergabelisten", + "ButtonPrevious": "Previous", "ButtonPreviousChapter": "Vorheriges Kapitel", "ButtonPurgeAllCache": "Cache leeren", "ButtonPurgeItemsCache": "Lösche Medien-Cache", @@ -772,4 +774,4 @@ "ToastSocketFailedToConnect": "Verbindung zum WebSocket fehlgeschlagen", "ToastUserDeleteFailed": "Benutzer konnte nicht gelöscht werden", "ToastUserDeleteSuccess": "Benutzer gelöscht" -} +} \ No newline at end of file diff --git a/client/strings/en-us.json b/client/strings/en-us.json index faa8cdcc5..b8860ffa5 100644 --- a/client/strings/en-us.json +++ b/client/strings/en-us.json @@ -43,6 +43,7 @@ "ButtonMatchAllAuthors": "Match All Authors", "ButtonMatchBooks": "Match Books", "ButtonNevermind": "Nevermind", + "ButtonNext": "Next", "ButtonNextChapter": "Next Chapter", "ButtonOk": "Ok", "ButtonOpenFeed": "Open Feed", @@ -51,6 +52,7 @@ "ButtonPlay": "Play", "ButtonPlaying": "Playing", "ButtonPlaylists": "Playlists", + "ButtonPrevious": "Previous", "ButtonPreviousChapter": "Previous Chapter", "ButtonPurgeAllCache": "Purge All Cache", "ButtonPurgeItemsCache": "Purge Items Cache", diff --git a/client/strings/es.json b/client/strings/es.json index 4b85106c1..750524130 100644 --- a/client/strings/es.json +++ b/client/strings/es.json @@ -43,6 +43,7 @@ "ButtonMatchAllAuthors": "Encontrar Todos los Autores", "ButtonMatchBooks": "Encontrar Libros", "ButtonNevermind": "Olvidar", + "ButtonNext": "Next", "ButtonNextChapter": "Siguiente Capítulo", "ButtonOk": "Ok", "ButtonOpenFeed": "Abrir Fuente", @@ -51,6 +52,7 @@ "ButtonPlay": "Reproducir", "ButtonPlaying": "Reproduciendo", "ButtonPlaylists": "Listas de Reproducción", + "ButtonPrevious": "Previous", "ButtonPreviousChapter": "Capítulo Anterior", "ButtonPurgeAllCache": "Purgar Todo el Cache", "ButtonPurgeItemsCache": "Purgar Elementos de Cache", @@ -59,6 +61,7 @@ "ButtonQueueRemoveItem": "Remover de la Fila", "ButtonQuickMatch": "Encontrar Rápido", "ButtonRead": "Leer", + "ButtonRefresh": "Refresh", "ButtonRemove": "Remover", "ButtonRemoveAll": "Remover Todos", "ButtonRemoveAllLibraryItems": "Remover Todos los Elementos de la Biblioteca", @@ -78,6 +81,7 @@ "ButtonSelectFolderPath": "Seleccionar Ruta de Carpeta", "ButtonSeries": "Series", "ButtonSetChaptersFromTracks": "Seleccionar Capítulos Según las Pistas", + "ButtonShare": "Share", "ButtonShiftTimes": "Desplazar Tiempos", "ButtonShow": "Mostrar", "ButtonStartM4BEncode": "Iniciar Codificación M4B", @@ -180,6 +184,7 @@ "HeaderUpdateDetails": "Actualizar Detalles", "HeaderUpdateLibrary": "Actualizar Biblioteca", "HeaderUsers": "Usuarios", + "HeaderYearReview": "Year {0} in Review", "HeaderYourStats": "Tus Estadísticas", "LabelAbridged": "Abreviado", "LabelAccountType": "Tipo de Cuenta", @@ -391,6 +396,7 @@ "LabelPermissionsDownload": "Puede Descargar", "LabelPermissionsUpdate": "Puede Actualizar", "LabelPermissionsUpload": "Puede Subir", + "LabelPersonalYearReview": "Your Year in Review ({0})", "LabelPhotoPathURL": "Ruta de Acceso/URL de Foto", "LabelPlaylists": "Lista de Reproducción", "LabelPlayMethod": "Método de Reproducción", @@ -436,6 +442,7 @@ "LabelSeries": "Series", "LabelSeriesName": "Nombre de la Serie", "LabelSeriesProgress": "Progreso de la Serie", + "LabelServerYearReview": "Server Year in Review ({0})", "LabelSetEbookAsPrimary": "Establecer como primario", "LabelSetEbookAsSupplementary": "Establecer como suplementario", "LabelSettingsAudiobooksOnly": "Sólo Audiolibros", @@ -552,6 +559,8 @@ "LabelViewQueue": "Ver Fila del Reproductor", "LabelVolume": "Volumen", "LabelWeekdaysToRun": "Correr en Días de la Semana", + "LabelYearReviewHide": "Hide Year in Review", + "LabelYearReviewShow": "See Year in Review", "LabelYourAudiobookDuration": "Duración de tu Audiolibro", "LabelYourBookmarks": "Tus Marcadores", "LabelYourPlaylists": "Tus Listas", diff --git a/client/strings/et.json b/client/strings/et.json index f06417057..07f9eef0c 100644 --- a/client/strings/et.json +++ b/client/strings/et.json @@ -43,6 +43,7 @@ "ButtonMatchAllAuthors": "Sobita kõik autorid", "ButtonMatchBooks": "Sobita raamatud", "ButtonNevermind": "Pole tähtis", + "ButtonNext": "Next", "ButtonNextChapter": "Järgmine peatükk", "ButtonOk": "Ok", "ButtonOpenFeed": "Ava voog", @@ -51,6 +52,7 @@ "ButtonPlay": "Mängi", "ButtonPlaying": "Mängib", "ButtonPlaylists": "Esitusloendid", + "ButtonPrevious": "Previous", "ButtonPreviousChapter": "Eelmine peatükk", "ButtonPurgeAllCache": "Tühjenda kogu vahemälu", "ButtonPurgeItemsCache": "Tühjenda esemete vahemälu", @@ -59,6 +61,7 @@ "ButtonQueueRemoveItem": "Eemalda järjekorrast", "ButtonQuickMatch": "Kiire sobitamine", "ButtonRead": "Loe", + "ButtonRefresh": "Refresh", "ButtonRemove": "Eemalda", "ButtonRemoveAll": "Eemalda kõik", "ButtonRemoveAllLibraryItems": "Eemalda kõik raamatukogu esemed", @@ -78,6 +81,7 @@ "ButtonSelectFolderPath": "Vali kaustatee", "ButtonSeries": "Sarjad", "ButtonSetChaptersFromTracks": "Määra peatükid lugudest", + "ButtonShare": "Share", "ButtonShiftTimes": "Nihke ajad", "ButtonShow": "Näita", "ButtonStartM4BEncode": "Alusta M4B kodeerimist", @@ -180,6 +184,7 @@ "HeaderUpdateDetails": "Uuenda detaile", "HeaderUpdateLibrary": "Uuenda raamatukogu", "HeaderUsers": "Kasutajad", + "HeaderYearReview": "Year {0} in Review", "HeaderYourStats": "Sinu statistika", "LabelAbridged": "Kärbitud", "LabelAccountType": "Konto tüüp", @@ -391,6 +396,7 @@ "LabelPermissionsDownload": "Saab alla laadida", "LabelPermissionsUpdate": "Saab uuendada", "LabelPermissionsUpload": "Saab üles laadida", + "LabelPersonalYearReview": "Your Year in Review ({0})", "LabelPhotoPathURL": "Foto tee/URL", "LabelPlaylists": "Mänguloendid", "LabelPlayMethod": "Esitusmeetod", @@ -436,6 +442,7 @@ "LabelSeries": "Seeria", "LabelSeriesName": "Seeria nimi", "LabelSeriesProgress": "Seeria edenemine", + "LabelServerYearReview": "Server Year in Review ({0})", "LabelSetEbookAsPrimary": "Määra peamiseks", "LabelSetEbookAsSupplementary": "Määra täiendavaks", "LabelSettingsAudiobooksOnly": "Ainult heliraamatud", @@ -552,6 +559,8 @@ "LabelViewQueue": "Vaata esitusjärjekorda", "LabelVolume": "Heli tugevus", "LabelWeekdaysToRun": "Päevad nädalas käivitamiseks", + "LabelYearReviewHide": "Hide Year in Review", + "LabelYearReviewShow": "See Year in Review", "LabelYourAudiobookDuration": "Teie heliraamatu kestus", "LabelYourBookmarks": "Teie järjehoidjad", "LabelYourPlaylists": "Teie esitusloendid", diff --git a/client/strings/fr.json b/client/strings/fr.json index 3f04fab8d..bbf38e187 100644 --- a/client/strings/fr.json +++ b/client/strings/fr.json @@ -43,6 +43,7 @@ "ButtonMatchAllAuthors": "Chercher tous les auteurs", "ButtonMatchBooks": "Chercher les livres", "ButtonNevermind": "Non merci", + "ButtonNext": "Next", "ButtonNextChapter": "Next Chapter", "ButtonOk": "Ok", "ButtonOpenFeed": "Ouvrir le flux", @@ -51,6 +52,7 @@ "ButtonPlay": "Écouter", "ButtonPlaying": "En lecture", "ButtonPlaylists": "Listes de lecture", + "ButtonPrevious": "Previous", "ButtonPreviousChapter": "Previous Chapter", "ButtonPurgeAllCache": "Purger le cache", "ButtonPurgeItemsCache": "Purger le cache des articles", @@ -59,6 +61,7 @@ "ButtonQueueRemoveItem": "Supprimer de la liste de lecture", "ButtonQuickMatch": "Recherche rapide", "ButtonRead": "Lire", + "ButtonRefresh": "Refresh", "ButtonRemove": "Supprimer", "ButtonRemoveAll": "Supprimer tout", "ButtonRemoveAllLibraryItems": "Supprimer tous les articles de la bibliothèque", @@ -78,6 +81,7 @@ "ButtonSelectFolderPath": "Sélectionner le chemin du dossier", "ButtonSeries": "Séries", "ButtonSetChaptersFromTracks": "Positionner les chapitres par rapports aux pistes", + "ButtonShare": "Share", "ButtonShiftTimes": "Décaler l’horodatage du livre", "ButtonShow": "Afficher", "ButtonStartM4BEncode": "Démarrer l’encodage M4B", @@ -180,6 +184,7 @@ "HeaderUpdateDetails": "Mettre à jour les détails", "HeaderUpdateLibrary": "Mettre à jour la bibliothèque", "HeaderUsers": "Utilisateurs", + "HeaderYearReview": "Year {0} in Review", "HeaderYourStats": "Vos statistiques", "LabelAbridged": "Version courte", "LabelAccountType": "Type de compte", @@ -391,6 +396,7 @@ "LabelPermissionsDownload": "Peut télécharger", "LabelPermissionsUpdate": "Peut mettre à jour", "LabelPermissionsUpload": "Peut téléverser", + "LabelPersonalYearReview": "Your Year in Review ({0})", "LabelPhotoPathURL": "Chemin / URL des photos", "LabelPlaylists": "Listes de lecture", "LabelPlayMethod": "Méthode d’écoute", @@ -436,6 +442,7 @@ "LabelSeries": "Séries", "LabelSeriesName": "Nom de la série", "LabelSeriesProgress": "Progression de séries", + "LabelServerYearReview": "Server Year in Review ({0})", "LabelSetEbookAsPrimary": "Définir comme principale", "LabelSetEbookAsSupplementary": "Définir comme supplémentaire", "LabelSettingsAudiobooksOnly": "Livres audios seulement", @@ -552,6 +559,8 @@ "LabelViewQueue": "Afficher la liste de lecture", "LabelVolume": "Volume", "LabelWeekdaysToRun": "Jours de la semaine à exécuter", + "LabelYearReviewHide": "Hide Year in Review", + "LabelYearReviewShow": "See Year in Review", "LabelYourAudiobookDuration": "Durée de vos livres audios", "LabelYourBookmarks": "Vos signets", "LabelYourPlaylists": "Vos listes de lecture", diff --git a/client/strings/gu.json b/client/strings/gu.json index daa923dbe..2f3d9cd81 100644 --- a/client/strings/gu.json +++ b/client/strings/gu.json @@ -43,6 +43,7 @@ "ButtonMatchAllAuthors": "બધા મેળ ખાતા લેખકો શોધો", "ButtonMatchBooks": "મેળ ખાતી પુસ્તકો શોધો", "ButtonNevermind": "કંઈ વાંધો નહીં", + "ButtonNext": "Next", "ButtonNextChapter": "Next Chapter", "ButtonOk": "ઓકે", "ButtonOpenFeed": "ફીડ ખોલો", @@ -51,6 +52,7 @@ "ButtonPlay": "ચલાવો", "ButtonPlaying": "ચલાવી રહ્યું છે", "ButtonPlaylists": "પ્લેલિસ્ટ", + "ButtonPrevious": "Previous", "ButtonPreviousChapter": "Previous Chapter", "ButtonPurgeAllCache": "બધો Cache કાઢી નાખો", "ButtonPurgeItemsCache": "વસ્તુઓનો Cache કાઢી નાખો", @@ -59,6 +61,7 @@ "ButtonQueueRemoveItem": "કતારથી કાઢી નાખો", "ButtonQuickMatch": "ઝડપી મેળ ખવડાવો", "ButtonRead": "વાંચો", + "ButtonRefresh": "Refresh", "ButtonRemove": "કાઢી નાખો", "ButtonRemoveAll": "બધું કાઢી નાખો", "ButtonRemoveAllLibraryItems": "બધું પુસ્તકાલય વસ્તુઓ કાઢી નાખો", @@ -78,6 +81,7 @@ "ButtonSelectFolderPath": "ફોલ્ડર પથ પસંદ કરો", "ButtonSeries": "સિરીઝ", "ButtonSetChaptersFromTracks": "ટ્રેક્સથી પ્રકરણો સેટ કરો", + "ButtonShare": "Share", "ButtonShiftTimes": "સમય શિફ્ટ કરો", "ButtonShow": "બતાવો", "ButtonStartM4BEncode": "M4B એન્કોડ શરૂ કરો", @@ -180,6 +184,7 @@ "HeaderUpdateDetails": "Update Details", "HeaderUpdateLibrary": "Update Library", "HeaderUsers": "Users", + "HeaderYearReview": "Year {0} in Review", "HeaderYourStats": "Your Stats", "LabelAbridged": "Abridged", "LabelAccountType": "Account Type", @@ -391,6 +396,7 @@ "LabelPermissionsDownload": "Can Download", "LabelPermissionsUpdate": "Can Update", "LabelPermissionsUpload": "Can Upload", + "LabelPersonalYearReview": "Your Year in Review ({0})", "LabelPhotoPathURL": "Photo Path/URL", "LabelPlaylists": "Playlists", "LabelPlayMethod": "Play Method", @@ -436,6 +442,7 @@ "LabelSeries": "Series", "LabelSeriesName": "Series Name", "LabelSeriesProgress": "Series Progress", + "LabelServerYearReview": "Server Year in Review ({0})", "LabelSetEbookAsPrimary": "Set as primary", "LabelSetEbookAsSupplementary": "Set as supplementary", "LabelSettingsAudiobooksOnly": "Audiobooks only", @@ -552,6 +559,8 @@ "LabelViewQueue": "View player queue", "LabelVolume": "Volume", "LabelWeekdaysToRun": "Weekdays to run", + "LabelYearReviewHide": "Hide Year in Review", + "LabelYearReviewShow": "See Year in Review", "LabelYourAudiobookDuration": "Your audiobook duration", "LabelYourBookmarks": "Your Bookmarks", "LabelYourPlaylists": "Your Playlists", diff --git a/client/strings/hi.json b/client/strings/hi.json index a59b43ecd..01667b59f 100644 --- a/client/strings/hi.json +++ b/client/strings/hi.json @@ -43,6 +43,7 @@ "ButtonMatchAllAuthors": "सभी लेखकों को तलाश करें", "ButtonMatchBooks": "संबंधित पुस्तकों का मिलान करें", "ButtonNevermind": "कोई बात नहीं", + "ButtonNext": "Next", "ButtonNextChapter": "Next Chapter", "ButtonOk": "ठीक है", "ButtonOpenFeed": "फ़ीड खोलें", @@ -51,6 +52,7 @@ "ButtonPlay": "चलाएँ", "ButtonPlaying": "चल रही है", "ButtonPlaylists": "प्लेलिस्ट्स", + "ButtonPrevious": "Previous", "ButtonPreviousChapter": "Previous Chapter", "ButtonPurgeAllCache": "सभी Cache मिटाएं", "ButtonPurgeItemsCache": "आइटम Cache मिटाएं", @@ -59,6 +61,7 @@ "ButtonQueueRemoveItem": "कतार से हटाएं", "ButtonQuickMatch": "जल्दी से समानता की तलाश करें", "ButtonRead": "पढ़ लिया", + "ButtonRefresh": "Refresh", "ButtonRemove": "हटाएं", "ButtonRemoveAll": "सभी हटाएं", "ButtonRemoveAllLibraryItems": "पुस्तकालय की सभी आइटम हटाएं", @@ -78,6 +81,7 @@ "ButtonSelectFolderPath": "फ़ोल्डर का पथ चुनें", "ButtonSeries": "सीरीज", "ButtonSetChaptersFromTracks": "ट्रैक्स से अध्याय बनाएं", + "ButtonShare": "Share", "ButtonShiftTimes": "समय खिसकाए", "ButtonShow": "दिखाएं", "ButtonStartM4BEncode": "M4B एन्कोडिंग शुरू करें", @@ -180,6 +184,7 @@ "HeaderUpdateDetails": "Update Details", "HeaderUpdateLibrary": "Update Library", "HeaderUsers": "Users", + "HeaderYearReview": "Year {0} in Review", "HeaderYourStats": "Your Stats", "LabelAbridged": "Abridged", "LabelAccountType": "Account Type", @@ -391,6 +396,7 @@ "LabelPermissionsDownload": "Can Download", "LabelPermissionsUpdate": "Can Update", "LabelPermissionsUpload": "Can Upload", + "LabelPersonalYearReview": "Your Year in Review ({0})", "LabelPhotoPathURL": "Photo Path/URL", "LabelPlaylists": "Playlists", "LabelPlayMethod": "Play Method", @@ -436,6 +442,7 @@ "LabelSeries": "Series", "LabelSeriesName": "Series Name", "LabelSeriesProgress": "Series Progress", + "LabelServerYearReview": "Server Year in Review ({0})", "LabelSetEbookAsPrimary": "Set as primary", "LabelSetEbookAsSupplementary": "Set as supplementary", "LabelSettingsAudiobooksOnly": "Audiobooks only", @@ -552,6 +559,8 @@ "LabelViewQueue": "View player queue", "LabelVolume": "Volume", "LabelWeekdaysToRun": "Weekdays to run", + "LabelYearReviewHide": "Hide Year in Review", + "LabelYearReviewShow": "See Year in Review", "LabelYourAudiobookDuration": "Your audiobook duration", "LabelYourBookmarks": "Your Bookmarks", "LabelYourPlaylists": "Your Playlists", diff --git a/client/strings/hr.json b/client/strings/hr.json index 6e105ca29..8aa933c74 100644 --- a/client/strings/hr.json +++ b/client/strings/hr.json @@ -43,6 +43,7 @@ "ButtonMatchAllAuthors": "Matchaj sve autore", "ButtonMatchBooks": "Matchaj knjige", "ButtonNevermind": "Nije bitno", + "ButtonNext": "Next", "ButtonNextChapter": "Next Chapter", "ButtonOk": "Ok", "ButtonOpenFeed": "Otvori feed", @@ -51,6 +52,7 @@ "ButtonPlay": "Pokreni", "ButtonPlaying": "Playing", "ButtonPlaylists": "Playlists", + "ButtonPrevious": "Previous", "ButtonPreviousChapter": "Previous Chapter", "ButtonPurgeAllCache": "Isprazni sav cache", "ButtonPurgeItemsCache": "Isprazni Items Cache", @@ -59,6 +61,7 @@ "ButtonQueueRemoveItem": "Remove from queue", "ButtonQuickMatch": "Brzi match", "ButtonRead": "Pročitaj", + "ButtonRefresh": "Refresh", "ButtonRemove": "Ukloni", "ButtonRemoveAll": "Ukloni sve", "ButtonRemoveAllLibraryItems": "Ukloni sve stvari iz biblioteke", @@ -78,6 +81,7 @@ "ButtonSelectFolderPath": "Odaberi putanju do folder", "ButtonSeries": "Serije", "ButtonSetChaptersFromTracks": "Set chapters from tracks", + "ButtonShare": "Share", "ButtonShiftTimes": "Pomakni vremena", "ButtonShow": "Prikaži", "ButtonStartM4BEncode": "Pokreni M4B kodiranje", @@ -180,6 +184,7 @@ "HeaderUpdateDetails": "Aktualiziraj detalje", "HeaderUpdateLibrary": "Aktualiziraj biblioteku", "HeaderUsers": "Korinici", + "HeaderYearReview": "Year {0} in Review", "HeaderYourStats": "Tvoja statistika", "LabelAbridged": "Abridged", "LabelAccountType": "Vrsta korisničkog računa", @@ -391,6 +396,7 @@ "LabelPermissionsDownload": "Smije preuzimati", "LabelPermissionsUpdate": "Smije aktualizirati", "LabelPermissionsUpload": "Smije uploadati", + "LabelPersonalYearReview": "Your Year in Review ({0})", "LabelPhotoPathURL": "Slika putanja/URL", "LabelPlaylists": "Playlists", "LabelPlayMethod": "Vrsta reprodukcije", @@ -436,6 +442,7 @@ "LabelSeries": "Serije", "LabelSeriesName": "Ime serije", "LabelSeriesProgress": "Series Progress", + "LabelServerYearReview": "Server Year in Review ({0})", "LabelSetEbookAsPrimary": "Set as primary", "LabelSetEbookAsSupplementary": "Set as supplementary", "LabelSettingsAudiobooksOnly": "Audiobooks only", @@ -552,6 +559,8 @@ "LabelViewQueue": "View player queue", "LabelVolume": "Volume", "LabelWeekdaysToRun": "Radnih dana da radi", + "LabelYearReviewHide": "Hide Year in Review", + "LabelYearReviewShow": "See Year in Review", "LabelYourAudiobookDuration": "Tvoje trajanje audiobooka", "LabelYourBookmarks": "Tvoje knjižne oznake", "LabelYourPlaylists": "Your Playlists", diff --git a/client/strings/hu.json b/client/strings/hu.json index 9d79f28eb..d52957e1a 100644 --- a/client/strings/hu.json +++ b/client/strings/hu.json @@ -43,6 +43,7 @@ "ButtonMatchAllAuthors": "Minden szerző egyeztetése", "ButtonMatchBooks": "Könyvek egyeztetése", "ButtonNevermind": "Mindegy", + "ButtonNext": "Next", "ButtonNextChapter": "Következő fejezet", "ButtonOk": "Oké", "ButtonOpenFeed": "Hírcsatorna megnyitása", @@ -51,6 +52,7 @@ "ButtonPlay": "Lejátszás", "ButtonPlaying": "Lejátszás folyamatban", "ButtonPlaylists": "Lejátszási listák", + "ButtonPrevious": "Previous", "ButtonPreviousChapter": "Előző fejezet", "ButtonPurgeAllCache": "Összes gyorsítótár törlése", "ButtonPurgeItemsCache": "Elemek gyorsítótárának törlése", @@ -59,6 +61,7 @@ "ButtonQueueRemoveItem": "Eltávolítás a sorból", "ButtonQuickMatch": "Gyors egyeztetés", "ButtonRead": "Olvasás", + "ButtonRefresh": "Refresh", "ButtonRemove": "Eltávolítás", "ButtonRemoveAll": "Összes eltávolítása", "ButtonRemoveAllLibraryItems": "Összes könyvtárelem eltávolítása", @@ -78,6 +81,7 @@ "ButtonSelectFolderPath": "Mappa útvonalának kiválasztása", "ButtonSeries": "Sorozatok", "ButtonSetChaptersFromTracks": "Fejezetek beállítása sávokból", + "ButtonShare": "Share", "ButtonShiftTimes": "Idők eltolása", "ButtonShow": "Megjelenítés", "ButtonStartM4BEncode": "M4B kódolás indítása", @@ -180,6 +184,7 @@ "HeaderUpdateDetails": "Részletek frissítése", "HeaderUpdateLibrary": "Könyvtár frissítése", "HeaderUsers": "Felhasználók", + "HeaderYearReview": "Year {0} in Review", "HeaderYourStats": "Saját statisztikák", "LabelAbridged": "Tömörített", "LabelAccountType": "Fióktípus", @@ -391,6 +396,7 @@ "LabelPermissionsDownload": "Letölthet", "LabelPermissionsUpdate": "Frissíthet", "LabelPermissionsUpload": "Feltölthet", + "LabelPersonalYearReview": "Your Year in Review ({0})", "LabelPhotoPathURL": "Fénykép útvonal/URL", "LabelPlaylists": "Lejátszási listák", "LabelPlayMethod": "Lejátszási módszer", @@ -436,6 +442,7 @@ "LabelSeries": "Sorozat", "LabelSeriesName": "Sorozat neve", "LabelSeriesProgress": "Sorozat haladása", + "LabelServerYearReview": "Server Year in Review ({0})", "LabelSetEbookAsPrimary": "Beállítás elsődlegesként", "LabelSetEbookAsSupplementary": "Beállítás kiegészítőként", "LabelSettingsAudiobooksOnly": "Csak hangoskönyvek", @@ -552,6 +559,8 @@ "LabelViewQueue": "Lejátszó sor megtekintése", "LabelVolume": "Hangerő", "LabelWeekdaysToRun": "Futás napjai", + "LabelYearReviewHide": "Hide Year in Review", + "LabelYearReviewShow": "See Year in Review", "LabelYourAudiobookDuration": "Hangoskönyv időtartama", "LabelYourBookmarks": "Könyvjelzőid", "LabelYourPlaylists": "Lejátszási listáid", diff --git a/client/strings/it.json b/client/strings/it.json index 11865aad4..26a61fda9 100644 --- a/client/strings/it.json +++ b/client/strings/it.json @@ -43,6 +43,7 @@ "ButtonMatchAllAuthors": "Aggiungi metadata agli Autori", "ButtonMatchBooks": "Aggiungi metadata della Libreria", "ButtonNevermind": "Nevermind", + "ButtonNext": "Next", "ButtonNextChapter": "Prossimo Capitolo", "ButtonOk": "Ok", "ButtonOpenFeed": "Apri Feed", @@ -51,6 +52,7 @@ "ButtonPlay": "Play", "ButtonPlaying": "In Riproduzione", "ButtonPlaylists": "Playlists", + "ButtonPrevious": "Previous", "ButtonPreviousChapter": "Capitolo Precendente", "ButtonPurgeAllCache": "Elimina tutta la Cache", "ButtonPurgeItemsCache": "Elimina la Cache selezionata", @@ -59,6 +61,7 @@ "ButtonQueueRemoveItem": "Rimuovi dalla Coda", "ButtonQuickMatch": "Controlla Metadata Auto", "ButtonRead": "Leggi", + "ButtonRefresh": "Refresh", "ButtonRemove": "Rimuovi", "ButtonRemoveAll": "Rimuovi Tutto", "ButtonRemoveAllLibraryItems": "Rimuovi tutto il contenuto della libreria", @@ -78,6 +81,7 @@ "ButtonSelectFolderPath": "Seleziona percorso cartella", "ButtonSeries": "Serie", "ButtonSetChaptersFromTracks": "Impostare i capitoli dalle tracce", + "ButtonShare": "Share", "ButtonShiftTimes": "Ricerca veloce", "ButtonShow": "Mostra", "ButtonStartM4BEncode": "Inizia L'Encode del M4B", @@ -180,6 +184,7 @@ "HeaderUpdateDetails": "Aggiorna Dettagli", "HeaderUpdateLibrary": "Aggiorna Libreria", "HeaderUsers": "Utenti", + "HeaderYearReview": "Year {0} in Review", "HeaderYourStats": "Statistiche Personali", "LabelAbridged": "Abbreviato", "LabelAccountType": "Tipo di Account", @@ -391,6 +396,7 @@ "LabelPermissionsDownload": "Può Scaricare", "LabelPermissionsUpdate": "Può Aggiornare", "LabelPermissionsUpload": "Può caricare", + "LabelPersonalYearReview": "Your Year in Review ({0})", "LabelPhotoPathURL": "foto Path/URL", "LabelPlaylists": "Playlists", "LabelPlayMethod": "Metodo di riproduzione", @@ -436,6 +442,7 @@ "LabelSeries": "Serie", "LabelSeriesName": "Nome Serie", "LabelSeriesProgress": "Cominciato", + "LabelServerYearReview": "Server Year in Review ({0})", "LabelSetEbookAsPrimary": "Immposta come Primario", "LabelSetEbookAsSupplementary": "Imposta come Suplementare", "LabelSettingsAudiobooksOnly": "Solo Audiolibri", @@ -552,6 +559,8 @@ "LabelViewQueue": "Visualizza coda", "LabelVolume": "Volume", "LabelWeekdaysToRun": "Giorni feriali da eseguire", + "LabelYearReviewHide": "Hide Year in Review", + "LabelYearReviewShow": "See Year in Review", "LabelYourAudiobookDuration": "La durata dell'audiolibro", "LabelYourBookmarks": "I tuoi Preferiti", "LabelYourPlaylists": "le tue Playlist", @@ -765,4 +774,4 @@ "ToastSocketFailedToConnect": "Socket non riesce a connettersi", "ToastUserDeleteFailed": "Errore eliminazione utente", "ToastUserDeleteSuccess": "Utente eliminato" -} +} \ No newline at end of file diff --git a/client/strings/lt.json b/client/strings/lt.json index f98d5aee4..1c2558c90 100644 --- a/client/strings/lt.json +++ b/client/strings/lt.json @@ -43,6 +43,7 @@ "ButtonMatchAllAuthors": "Pritaikyti visus autorius", "ButtonMatchBooks": "Pritaikyti knygas", "ButtonNevermind": "Nesvarbu", + "ButtonNext": "Next", "ButtonNextChapter": "Next Chapter", "ButtonOk": "Ok", "ButtonOpenFeed": "Atidaryti srautą", @@ -51,6 +52,7 @@ "ButtonPlay": "Groti", "ButtonPlaying": "Grojama", "ButtonPlaylists": "Grojaraščiai", + "ButtonPrevious": "Previous", "ButtonPreviousChapter": "Previous Chapter", "ButtonPurgeAllCache": "Valyti visą saugyklą", "ButtonPurgeItemsCache": "Valyti elementų saugyklą", @@ -59,6 +61,7 @@ "ButtonQueueRemoveItem": "Pašalinti iš eilės", "ButtonQuickMatch": "Greitas pritaikymas", "ButtonRead": "Skaityti", + "ButtonRefresh": "Refresh", "ButtonRemove": "Pašalinti", "ButtonRemoveAll": "Pašalinti viską", "ButtonRemoveAllLibraryItems": "Pašalinti visus bibliotekos elementus", @@ -78,6 +81,7 @@ "ButtonSelectFolderPath": "Pasirinkti aplanko kelią", "ButtonSeries": "Serijos", "ButtonSetChaptersFromTracks": "Nustatyti skyrius iš takelių", + "ButtonShare": "Share", "ButtonShiftTimes": "Perstumti laikus", "ButtonShow": "Rodyti", "ButtonStartM4BEncode": "Pradėti M4B kodavimą", @@ -180,6 +184,7 @@ "HeaderUpdateDetails": "Atnaujinti informaciją", "HeaderUpdateLibrary": "Atnaujinti biblioteką", "HeaderUsers": "Naudotojai", + "HeaderYearReview": "Year {0} in Review", "HeaderYourStats": "Jūsų statistika", "LabelAbridged": "Santrauka", "LabelAccountType": "Paskyros tipas", @@ -391,6 +396,7 @@ "LabelPermissionsDownload": "Gali atsisiųsti", "LabelPermissionsUpdate": "Gali atnaujinti", "LabelPermissionsUpload": "Gali įkelti", + "LabelPersonalYearReview": "Your Year in Review ({0})", "LabelPhotoPathURL": "Nuotraukos kelias/URL", "LabelPlaylists": "Grojaraščiai", "LabelPlayMethod": "Grojimo metodas", @@ -436,6 +442,7 @@ "LabelSeries": "Serija", "LabelSeriesName": "Serijos pavadinimas", "LabelSeriesProgress": "Serijos progresas", + "LabelServerYearReview": "Server Year in Review ({0})", "LabelSetEbookAsPrimary": "Nustatyti kaip pagrindinę", "LabelSetEbookAsSupplementary": "Nustatyti kaip papildomą", "LabelSettingsAudiobooksOnly": "Tik garso knygos", @@ -552,6 +559,8 @@ "LabelViewQueue": "Peržiūrėti grotuvo eilę", "LabelVolume": "Garsumas", "LabelWeekdaysToRun": "Dienos, kuriomis vykdyti", + "LabelYearReviewHide": "Hide Year in Review", + "LabelYearReviewShow": "See Year in Review", "LabelYourAudiobookDuration": "Jūsų garso knygos trukmė", "LabelYourBookmarks": "Jūsų skirtukai", "LabelYourPlaylists": "Jūsų grojaraščiai", diff --git a/client/strings/nl.json b/client/strings/nl.json index 1c1ffa1bc..dd06146de 100644 --- a/client/strings/nl.json +++ b/client/strings/nl.json @@ -43,6 +43,7 @@ "ButtonMatchAllAuthors": "Alle auteurs matchen", "ButtonMatchBooks": "Alle boeken matchen", "ButtonNevermind": "Laat maar", + "ButtonNext": "Next", "ButtonNextChapter": "Next Chapter", "ButtonOk": "Ok", "ButtonOpenFeed": "Feed openen", @@ -51,6 +52,7 @@ "ButtonPlay": "Afspelen", "ButtonPlaying": "Speelt", "ButtonPlaylists": "Afspeellijsten", + "ButtonPrevious": "Previous", "ButtonPreviousChapter": "Previous Chapter", "ButtonPurgeAllCache": "Volledige cache legen", "ButtonPurgeItemsCache": "Onderdelen-cache legen", @@ -59,6 +61,7 @@ "ButtonQueueRemoveItem": "Uit wachtrij verwijderen", "ButtonQuickMatch": "Snelle match", "ButtonRead": "Lees", + "ButtonRefresh": "Refresh", "ButtonRemove": "Verwijder", "ButtonRemoveAll": "Alles verwijderen", "ButtonRemoveAllLibraryItems": "Verwijder volledige bibliotheekinhoud", @@ -78,6 +81,7 @@ "ButtonSelectFolderPath": "Maplocatie selecteren", "ButtonSeries": "Series", "ButtonSetChaptersFromTracks": "Maak hoofdstukken op basis van tracks", + "ButtonShare": "Share", "ButtonShiftTimes": "Tijden verschuiven", "ButtonShow": "Toon", "ButtonStartM4BEncode": "Start M4B-encoding", @@ -180,6 +184,7 @@ "HeaderUpdateDetails": "Details bijwerken", "HeaderUpdateLibrary": "Bibliotheek bijwerken", "HeaderUsers": "Gebruikers", + "HeaderYearReview": "Year {0} in Review", "HeaderYourStats": "Je statistieken", "LabelAbridged": "Verkort", "LabelAccountType": "Accounttype", @@ -391,6 +396,7 @@ "LabelPermissionsDownload": "Kan downloaden", "LabelPermissionsUpdate": "Kan bijwerken", "LabelPermissionsUpload": "Kan uploaden", + "LabelPersonalYearReview": "Your Year in Review ({0})", "LabelPhotoPathURL": "Foto pad/URL", "LabelPlaylists": "Afspeellijsten", "LabelPlayMethod": "Afspeelwijze", @@ -436,6 +442,7 @@ "LabelSeries": "Serie", "LabelSeriesName": "Naam serie", "LabelSeriesProgress": "Voortgang serie", + "LabelServerYearReview": "Server Year in Review ({0})", "LabelSetEbookAsPrimary": "Stel in als primair", "LabelSetEbookAsSupplementary": "Stel in als supplementair", "LabelSettingsAudiobooksOnly": "Alleen audiobooks", @@ -552,6 +559,8 @@ "LabelViewQueue": "Bekijk afspeelwachtrij", "LabelVolume": "Volume", "LabelWeekdaysToRun": "Weekdagen om te draaien", + "LabelYearReviewHide": "Hide Year in Review", + "LabelYearReviewShow": "See Year in Review", "LabelYourAudiobookDuration": "Je audioboekduur", "LabelYourBookmarks": "Je boekwijzers", "LabelYourPlaylists": "Je afspeellijsten", diff --git a/client/strings/no.json b/client/strings/no.json index 432115dfb..a29a7ef2e 100644 --- a/client/strings/no.json +++ b/client/strings/no.json @@ -43,6 +43,7 @@ "ButtonMatchAllAuthors": "Søk opp alle forfattere", "ButtonMatchBooks": "Søk opp bøker", "ButtonNevermind": "Avbryt", + "ButtonNext": "Next", "ButtonNextChapter": "Next Chapter", "ButtonOk": "Ok", "ButtonOpenFeed": "Åpne Feed", @@ -51,6 +52,7 @@ "ButtonPlay": "Spill av", "ButtonPlaying": "Spiller av", "ButtonPlaylists": "Spilleliste", + "ButtonPrevious": "Previous", "ButtonPreviousChapter": "Previous Chapter", "ButtonPurgeAllCache": "Tøm alle mellomlager", "ButtonPurgeItemsCache": "Tøm mellomlager", @@ -59,6 +61,7 @@ "ButtonQueueRemoveItem": "Fjern fra kø", "ButtonQuickMatch": "Kjapt søk", "ButtonRead": "Les", + "ButtonRefresh": "Refresh", "ButtonRemove": "Fjern", "ButtonRemoveAll": "Fjern alle", "ButtonRemoveAllLibraryItems": "Fjern alle bibliotekobjekter", @@ -78,6 +81,7 @@ "ButtonSelectFolderPath": "Velg mappe", "ButtonSeries": "Serier", "ButtonSetChaptersFromTracks": "Sett kapittel fra spor", + "ButtonShare": "Share", "ButtonShiftTimes": "Forskyv tider", "ButtonShow": "Vis", "ButtonStartM4BEncode": "Start M4B Koding", @@ -180,6 +184,7 @@ "HeaderUpdateDetails": "Oppdater detaljer", "HeaderUpdateLibrary": "Oppdater bibliotek", "HeaderUsers": "Brukere", + "HeaderYearReview": "Year {0} in Review", "HeaderYourStats": "Din statistikk", "LabelAbridged": "Forkortet", "LabelAccountType": "Kontotype", @@ -391,6 +396,7 @@ "LabelPermissionsDownload": "Kan laste ned", "LabelPermissionsUpdate": "Kan oppdatere", "LabelPermissionsUpload": "Kan laste opp", + "LabelPersonalYearReview": "Your Year in Review ({0})", "LabelPhotoPathURL": "Bilde sti/URL", "LabelPlaylists": "Spilleliste", "LabelPlayMethod": "Avspillingsmetode", @@ -436,6 +442,7 @@ "LabelSeries": "Serier", "LabelSeriesName": "Serier Navn", "LabelSeriesProgress": "Serier fremgang", + "LabelServerYearReview": "Server Year in Review ({0})", "LabelSetEbookAsPrimary": "Sett som primær", "LabelSetEbookAsSupplementary": "Sett som supplerende", "LabelSettingsAudiobooksOnly": "Kun lydbøker", @@ -552,6 +559,8 @@ "LabelViewQueue": "Vis spillerkø", "LabelVolume": "Volum", "LabelWeekdaysToRun": "Ukedager å kjøre", + "LabelYearReviewHide": "Hide Year in Review", + "LabelYearReviewShow": "See Year in Review", "LabelYourAudiobookDuration": "Din lydbok lengde", "LabelYourBookmarks": "Dine bokmerker", "LabelYourPlaylists": "Dine spillelister", diff --git a/client/strings/pl.json b/client/strings/pl.json index 7f0e44972..3189ccb78 100644 --- a/client/strings/pl.json +++ b/client/strings/pl.json @@ -43,6 +43,7 @@ "ButtonMatchAllAuthors": "Dopasuj wszystkich autorów", "ButtonMatchBooks": "Dopasuj książki", "ButtonNevermind": "Anuluj", + "ButtonNext": "Next", "ButtonNextChapter": "Next Chapter", "ButtonOk": "Ok", "ButtonOpenFeed": "Otwórz feed", @@ -51,6 +52,7 @@ "ButtonPlay": "Odtwarzaj", "ButtonPlaying": "Odtwarzane", "ButtonPlaylists": "Playlists", + "ButtonPrevious": "Previous", "ButtonPreviousChapter": "Previous Chapter", "ButtonPurgeAllCache": "Wyczyść dane tymczasowe", "ButtonPurgeItemsCache": "Wyczyść dane tymczasowe pozycji", @@ -59,6 +61,7 @@ "ButtonQueueRemoveItem": "Usuń z kolejki", "ButtonQuickMatch": "Szybkie dopasowanie", "ButtonRead": "Czytaj", + "ButtonRefresh": "Refresh", "ButtonRemove": "Usuń", "ButtonRemoveAll": "Usuń wszystko", "ButtonRemoveAllLibraryItems": "Usuń wszystkie elementy z biblioteki", @@ -78,6 +81,7 @@ "ButtonSelectFolderPath": "Wybierz ścieżkę folderu", "ButtonSeries": "Seria", "ButtonSetChaptersFromTracks": "Set chapters from tracks", + "ButtonShare": "Share", "ButtonShiftTimes": "Przesunięcie czasowe", "ButtonShow": "Pokaż", "ButtonStartM4BEncode": "Eksportuj jako plik M4B", @@ -180,6 +184,7 @@ "HeaderUpdateDetails": "Zaktualizuj szczegóły", "HeaderUpdateLibrary": "Zaktualizuj bibliotekę", "HeaderUsers": "Użytkownicy", + "HeaderYearReview": "Year {0} in Review", "HeaderYourStats": "Twoje statystyki", "LabelAbridged": "Abridged", "LabelAccountType": "Typ konta", @@ -391,6 +396,7 @@ "LabelPermissionsDownload": "Ma możliwość pobierania", "LabelPermissionsUpdate": "Ma możliwość aktualizowania", "LabelPermissionsUpload": "Ma możliwość dodawania", + "LabelPersonalYearReview": "Your Year in Review ({0})", "LabelPhotoPathURL": "Scieżka/URL do zdjęcia", "LabelPlaylists": "Playlists", "LabelPlayMethod": "Metoda odtwarzania", @@ -436,6 +442,7 @@ "LabelSeries": "Serie", "LabelSeriesName": "Nazwy serii", "LabelSeriesProgress": "Postęp w serii", + "LabelServerYearReview": "Server Year in Review ({0})", "LabelSetEbookAsPrimary": "Set as primary", "LabelSetEbookAsSupplementary": "Set as supplementary", "LabelSettingsAudiobooksOnly": "Audiobooks only", @@ -552,6 +559,8 @@ "LabelViewQueue": "Wyświetlaj kolejkę odtwarzania", "LabelVolume": "Głośność", "LabelWeekdaysToRun": "Dni tygodnia", + "LabelYearReviewHide": "Hide Year in Review", + "LabelYearReviewShow": "See Year in Review", "LabelYourAudiobookDuration": "Czas trwania audiobooka", "LabelYourBookmarks": "Twoje zakładki", "LabelYourPlaylists": "Your Playlists", diff --git a/client/strings/pt-br.json b/client/strings/pt-br.json index fc626aff3..14e7f52aa 100644 --- a/client/strings/pt-br.json +++ b/client/strings/pt-br.json @@ -43,6 +43,7 @@ "ButtonMatchAllAuthors": "Consultar Todos os Autores", "ButtonMatchBooks": "Consultar Livros", "ButtonNevermind": "Cancelar", + "ButtonNext": "Next", "ButtonNextChapter": "Próximo Capítulo", "ButtonOk": "Ok", "ButtonOpenFeed": "Abrir Feed", @@ -51,6 +52,7 @@ "ButtonPlay": "Reproduzir", "ButtonPlaying": "Reproduzindo", "ButtonPlaylists": "Lista de Reprodução", + "ButtonPrevious": "Previous", "ButtonPreviousChapter": "Capítulo Anterior", "ButtonPurgeAllCache": "Apagar Todo o Cache", "ButtonPurgeItemsCache": "Apagar o Cache de Itens", @@ -59,6 +61,7 @@ "ButtonQueueRemoveItem": "Remover da Lista", "ButtonQuickMatch": "Consulta rápida", "ButtonRead": "Ler", + "ButtonRefresh": "Refresh", "ButtonRemove": "Remover", "ButtonRemoveAll": "Remover Todos", "ButtonRemoveAllLibraryItems": "Remover Todos os Itens da Biblioteca", @@ -78,6 +81,7 @@ "ButtonSelectFolderPath": "Selecionar Caminho da Pasta", "ButtonSeries": "Séries", "ButtonSetChaptersFromTracks": "Definir Capítulos Segundo Faixas", + "ButtonShare": "Share", "ButtonShiftTimes": "Deslocar tempos", "ButtonShow": "Exibir", "ButtonStartM4BEncode": "Iniciar Codificação M4B", @@ -180,6 +184,7 @@ "HeaderUpdateDetails": "Atualizar Detalhes", "HeaderUpdateLibrary": "Atualizar Biblioteca", "HeaderUsers": "Usuários", + "HeaderYearReview": "Year {0} in Review", "HeaderYourStats": "Suas Estatísticas", "LabelAbridged": "Versão Abreviada", "LabelAccountType": "Tipo de Conta", @@ -391,6 +396,7 @@ "LabelPermissionsDownload": "Pode Fazer Download", "LabelPermissionsUpdate": "Pode Atualizar", "LabelPermissionsUpload": "Pode Fazer Upload", + "LabelPersonalYearReview": "Your Year in Review ({0})", "LabelPhotoPathURL": "Caminho/URL para Foto", "LabelPlaylists": "Listas de Reprodução", "LabelPlayMethod": "Método de Reprodução", @@ -436,6 +442,7 @@ "LabelSeries": "Série", "LabelSeriesName": "Nome da Série", "LabelSeriesProgress": "Progresso da Série", + "LabelServerYearReview": "Server Year in Review ({0})", "LabelSetEbookAsPrimary": "Definir como principal", "LabelSetEbookAsSupplementary": "Definir como complementar", "LabelSettingsAudiobooksOnly": "Apenas Audiobooks", @@ -552,6 +559,8 @@ "LabelViewQueue": "Ver fila do reprodutor", "LabelVolume": "Volume", "LabelWeekdaysToRun": "Dias da semana para executar", + "LabelYearReviewHide": "Hide Year in Review", + "LabelYearReviewShow": "See Year in Review", "LabelYourAudiobookDuration": "Duração do seu audiobook", "LabelYourBookmarks": "Seus Marcadores", "LabelYourPlaylists": "Suas Listas de Reprodução", @@ -765,4 +774,4 @@ "ToastSocketFailedToConnect": "Falha na conexão do socket", "ToastUserDeleteFailed": "Falha ao apagar usuário", "ToastUserDeleteSuccess": "Usuário apagado" -} +} \ No newline at end of file diff --git a/client/strings/ru.json b/client/strings/ru.json index 3657b596e..adc3b48b5 100644 --- a/client/strings/ru.json +++ b/client/strings/ru.json @@ -43,6 +43,7 @@ "ButtonMatchAllAuthors": "Найти всех авторов", "ButtonMatchBooks": "Найти книги", "ButtonNevermind": "Не важно", + "ButtonNext": "Next", "ButtonNextChapter": "Next Chapter", "ButtonOk": "Ok", "ButtonOpenFeed": "Открыть канал", @@ -51,6 +52,7 @@ "ButtonPlay": "Слушать", "ButtonPlaying": "Проигрывается", "ButtonPlaylists": "Плейлисты", + "ButtonPrevious": "Previous", "ButtonPreviousChapter": "Previous Chapter", "ButtonPurgeAllCache": "Очистить весь кэш", "ButtonPurgeItemsCache": "Очистить кэш элементов", @@ -59,6 +61,7 @@ "ButtonQueueRemoveItem": "Удалить из очереди", "ButtonQuickMatch": "Быстрый поиск", "ButtonRead": "Читать", + "ButtonRefresh": "Refresh", "ButtonRemove": "Удалить", "ButtonRemoveAll": "Удалить всё", "ButtonRemoveAllLibraryItems": "Удалить все элементы библиотеки", @@ -78,6 +81,7 @@ "ButtonSelectFolderPath": "Выберите путь папки", "ButtonSeries": "Серии", "ButtonSetChaptersFromTracks": "Установить главы из треков", + "ButtonShare": "Share", "ButtonShiftTimes": "Смещение", "ButtonShow": "Показать", "ButtonStartM4BEncode": "Начать кодирование M4B", @@ -180,6 +184,7 @@ "HeaderUpdateDetails": "Обновить детали", "HeaderUpdateLibrary": "Обновить библиотеку", "HeaderUsers": "Пользователи", + "HeaderYearReview": "Year {0} in Review", "HeaderYourStats": "Ваша статистика", "LabelAbridged": "Сокращенное издание", "LabelAccountType": "Тип учетной записи", @@ -391,6 +396,7 @@ "LabelPermissionsDownload": "Может скачивать", "LabelPermissionsUpdate": "Может обновлять", "LabelPermissionsUpload": "Может закачивать", + "LabelPersonalYearReview": "Your Year in Review ({0})", "LabelPhotoPathURL": "Путь к фото/URL", "LabelPlaylists": "Плейлисты", "LabelPlayMethod": "Метод воспроизведения", @@ -436,6 +442,7 @@ "LabelSeries": "Серия", "LabelSeriesName": "Имя серии", "LabelSeriesProgress": "Прогресс серии", + "LabelServerYearReview": "Server Year in Review ({0})", "LabelSetEbookAsPrimary": "Установить как основную", "LabelSetEbookAsSupplementary": "Установить как дополнительную", "LabelSettingsAudiobooksOnly": "Только аудиокниги", @@ -552,6 +559,8 @@ "LabelViewQueue": "Очередь воспроизведения", "LabelVolume": "Громкость", "LabelWeekdaysToRun": "Дни недели для запуска", + "LabelYearReviewHide": "Hide Year in Review", + "LabelYearReviewShow": "See Year in Review", "LabelYourAudiobookDuration": "Продолжительность Вашей книги", "LabelYourBookmarks": "Ваши закладки", "LabelYourPlaylists": "Ваши плейлисты", diff --git a/client/strings/sv.json b/client/strings/sv.json index 986f2c4bd..9560e765b 100644 --- a/client/strings/sv.json +++ b/client/strings/sv.json @@ -43,6 +43,7 @@ "ButtonMatchAllAuthors": "Matcha alla författare", "ButtonMatchBooks": "Matcha böcker", "ButtonNevermind": "Glöm det", + "ButtonNext": "Next", "ButtonNextChapter": "Next Chapter", "ButtonOk": "Okej", "ButtonOpenFeed": "Öppna flöde", @@ -51,6 +52,7 @@ "ButtonPlay": "Spela", "ButtonPlaying": "Spelar", "ButtonPlaylists": "Spellistor", + "ButtonPrevious": "Previous", "ButtonPreviousChapter": "Previous Chapter", "ButtonPurgeAllCache": "Rensa all cache", "ButtonPurgeItemsCache": "Rensa föremåls-cache", @@ -59,6 +61,7 @@ "ButtonQueueRemoveItem": "Ta bort från kön", "ButtonQuickMatch": "Snabb matchning", "ButtonRead": "Läs", + "ButtonRefresh": "Refresh", "ButtonRemove": "Ta bort", "ButtonRemoveAll": "Ta bort alla", "ButtonRemoveAllLibraryItems": "Ta bort alla biblioteksobjekt", @@ -78,6 +81,7 @@ "ButtonSelectFolderPath": "Välj mappens sökväg", "ButtonSeries": "Serie", "ButtonSetChaptersFromTracks": "Ställ in kapitel från spår", + "ButtonShare": "Share", "ButtonShiftTimes": "Förskjut tider", "ButtonShow": "Visa", "ButtonStartM4BEncode": "Starta M4B-kodning", @@ -180,6 +184,7 @@ "HeaderUpdateDetails": "Uppdatera detaljer", "HeaderUpdateLibrary": "Uppdatera bibliotek", "HeaderUsers": "Användare", + "HeaderYearReview": "Year {0} in Review", "HeaderYourStats": "Dina statistik", "LabelAbridged": "Förkortad", "LabelAccountType": "Kontotyp", @@ -391,6 +396,7 @@ "LabelPermissionsDownload": "Kan ladda ner", "LabelPermissionsUpdate": "Kan uppdatera", "LabelPermissionsUpload": "Kan ladda upp", + "LabelPersonalYearReview": "Your Year in Review ({0})", "LabelPhotoPathURL": "Bildsökväg/URL", "LabelPlaylists": "Spellistor", "LabelPlayMethod": "Spelläge", @@ -436,6 +442,7 @@ "LabelSeries": "Serie", "LabelSeriesName": "Serienamn", "LabelSeriesProgress": "Serieframsteg", + "LabelServerYearReview": "Server Year in Review ({0})", "LabelSetEbookAsPrimary": "Ange som primär", "LabelSetEbookAsSupplementary": "Ange som kompletterande", "LabelSettingsAudiobooksOnly": "Endast ljudböcker", @@ -552,6 +559,8 @@ "LabelViewQueue": "Visa spellista", "LabelVolume": "Volym", "LabelWeekdaysToRun": "Vardagar att köra", + "LabelYearReviewHide": "Hide Year in Review", + "LabelYearReviewShow": "See Year in Review", "LabelYourAudiobookDuration": "Din ljudboks varaktighet", "LabelYourBookmarks": "Dina bokmärken", "LabelYourPlaylists": "Dina spellistor", diff --git a/client/strings/zh-cn.json b/client/strings/zh-cn.json index fd7fe2903..c1d9345fc 100644 --- a/client/strings/zh-cn.json +++ b/client/strings/zh-cn.json @@ -43,6 +43,7 @@ "ButtonMatchAllAuthors": "匹配所有作者", "ButtonMatchBooks": "匹配图书", "ButtonNevermind": "没有关系", + "ButtonNext": "Next", "ButtonNextChapter": "Next Chapter", "ButtonOk": "确定", "ButtonOpenFeed": "打开源", @@ -51,6 +52,7 @@ "ButtonPlay": "播放", "ButtonPlaying": "正在播放", "ButtonPlaylists": "播放列表", + "ButtonPrevious": "Previous", "ButtonPreviousChapter": "Previous Chapter", "ButtonPurgeAllCache": "清理所有缓存", "ButtonPurgeItemsCache": "清理项目缓存", @@ -59,6 +61,7 @@ "ButtonQueueRemoveItem": "从队列中移除", "ButtonQuickMatch": "快速匹配", "ButtonRead": "读取", + "ButtonRefresh": "Refresh", "ButtonRemove": "移除", "ButtonRemoveAll": "移除所有", "ButtonRemoveAllLibraryItems": "移除所有媒体库项目", @@ -78,6 +81,7 @@ "ButtonSelectFolderPath": "选择文件夹路径", "ButtonSeries": "系列", "ButtonSetChaptersFromTracks": "将音轨设置为章节", + "ButtonShare": "Share", "ButtonShiftTimes": "快速调整时间", "ButtonShow": "显示", "ButtonStartM4BEncode": "开始 M4B 编码", @@ -180,6 +184,7 @@ "HeaderUpdateDetails": "更新详情", "HeaderUpdateLibrary": "更新媒体库", "HeaderUsers": "用户", + "HeaderYearReview": "Year {0} in Review", "HeaderYourStats": "你的统计数据", "LabelAbridged": "概要", "LabelAccountType": "帐户类型", @@ -391,6 +396,7 @@ "LabelPermissionsDownload": "可以下载", "LabelPermissionsUpdate": "可以更新", "LabelPermissionsUpload": "可以上传", + "LabelPersonalYearReview": "Your Year in Review ({0})", "LabelPhotoPathURL": "图片路径或 URL", "LabelPlaylists": "播放列表", "LabelPlayMethod": "播放方法", @@ -436,6 +442,7 @@ "LabelSeries": "系列", "LabelSeriesName": "系列名称", "LabelSeriesProgress": "系列进度", + "LabelServerYearReview": "Server Year in Review ({0})", "LabelSetEbookAsPrimary": "设置为主", "LabelSetEbookAsSupplementary": "设置为补充", "LabelSettingsAudiobooksOnly": "只有有声读物", @@ -552,6 +559,8 @@ "LabelViewQueue": "查看播放列表", "LabelVolume": "音量", "LabelWeekdaysToRun": "工作日运行", + "LabelYearReviewHide": "Hide Year in Review", + "LabelYearReviewShow": "See Year in Review", "LabelYourAudiobookDuration": "你的有声读物持续时间", "LabelYourBookmarks": "你的书签", "LabelYourPlaylists": "你的播放列表", From c799379a5486e2999fb95b5a0c16fea877d91272 Mon Sep 17 00:00:00 2001 From: JBlond Date: Sat, 24 Feb 2024 20:23:51 +0100 Subject: [PATCH 016/216] Update de strings --- client/strings/de.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/client/strings/de.json b/client/strings/de.json index 46467734b..5b2711c1c 100644 --- a/client/strings/de.json +++ b/client/strings/de.json @@ -43,7 +43,7 @@ "ButtonMatchAllAuthors": "Online Metadaten-Abgleich (alle Autoren)", "ButtonMatchBooks": "Online Metadaten-Abgleich (alle Medien)", "ButtonNevermind": "Abbrechen", - "ButtonNext": "Next", + "ButtonNext": "Vor", "ButtonNextChapter": "Nächstes Kapitel", "ButtonOk": "Ok", "ButtonOpenFeed": "Feed öffnen", @@ -52,7 +52,7 @@ "ButtonPlay": "Abspielen", "ButtonPlaying": "Spielt", "ButtonPlaylists": "Wiedergabelisten", - "ButtonPrevious": "Previous", + "ButtonPrevious": "Zurück", "ButtonPreviousChapter": "Vorheriges Kapitel", "ButtonPurgeAllCache": "Cache leeren", "ButtonPurgeItemsCache": "Lösche Medien-Cache", @@ -292,11 +292,11 @@ "LabelFinished": "Beendet", "LabelFolder": "Ordner", "LabelFolders": "Verzeichnisse", - "LabelFontBold": "Bold", + "LabelFontBold": "Fett", "LabelFontFamily": "Schriftfamilie", - "LabelFontItalic": "Italic", + "LabelFontItalic": "Kursiv", "LabelFontScale": "Schriftgröße", - "LabelFontStrikethrough": "Strikethrough", + "LabelFontStrikethrough": "Durchgestrichen", "LabelFormat": "Format", "LabelGenre": "Kategorie", "LabelGenres": "Kategorien", @@ -419,7 +419,7 @@ "LabelRecentlyAdded": "Kürzlich hinzugefügt", "LabelRecentSeries": "Aktuelle Serien", "LabelRecommended": "Empfohlen", - "LabelRedo": "Redo", + "LabelRedo": "Wiederholen", "LabelRegion": "Region", "LabelReleaseDate": "Veröffentlichungsdatum", "LabelRemoveCover": "Lösche Titelbild", From e6735e042e8f61559cf35992d50cecbee7b30aee Mon Sep 17 00:00:00 2001 From: mikiher Date: Sun, 25 Feb 2024 09:01:26 +0200 Subject: [PATCH 017/216] Fix dup author addition logic --- server/models/LibraryItem.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/server/models/LibraryItem.js b/server/models/LibraryItem.js index c7da31f6a..49b44f9ad 100644 --- a/server/models/LibraryItem.js +++ b/server/models/LibraryItem.js @@ -312,17 +312,18 @@ class LibraryItem extends Model { const existingAuthors = libraryItemExpanded.media.authors || [] const existingSeriesAll = libraryItemExpanded.media.series || [] const updatedAuthors = oldLibraryItem.media.metadata.authors || [] + const uniqueUpdatedAuthors = updatedAuthors.filter((au, idx) => updatedAuthors.findIndex(a => a.id === au.id) === idx) const updatedSeriesAll = oldLibraryItem.media.metadata.series || [] for (const existingAuthor of existingAuthors) { // Author was removed from Book - if (!updatedAuthors.some(au => au.id === existingAuthor.id)) { + if (!uniqueUpdatedAuthors.some(au => au.id === existingAuthor.id)) { Logger.debug(`[LibraryItem] "${libraryItemExpanded.media.title}" author "${existingAuthor.name}" was removed`) await this.sequelize.models.bookAuthor.removeByIds(existingAuthor.id, libraryItemExpanded.media.id) hasUpdates = true } } - for (const updatedAuthor of updatedAuthors) { + for (const updatedAuthor of uniqueUpdatedAuthors) { // Author was added if (!existingAuthors.some(au => au.id === updatedAuthor.id)) { Logger.debug(`[LibraryItem] "${libraryItemExpanded.media.title}" author "${updatedAuthor.name}" was added`) From 3a99cc56b7a992793dd61ffb31e5a75ef575abcb Mon Sep 17 00:00:00 2001 From: advplyr Date: Sun, 25 Feb 2024 12:56:04 -0600 Subject: [PATCH 018/216] Update:Debian packager script to use xz compression instead of zstd --- build/linuxpackager | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/build/linuxpackager b/build/linuxpackager index a43d4ed18..5f03a2e8e 100755 --- a/build/linuxpackager +++ b/build/linuxpackager @@ -50,9 +50,8 @@ echo "$controlfile" > dist/debian/DEBIAN/control; # Package debian pkg -t node18-linux-x64 -o dist/debian/usr/share/audiobookshelf/audiobookshelf . -fakeroot dpkg-deb --build dist/debian +fakeroot dpkg-deb -Zxz --build dist/debian mv dist/debian.deb "dist/$OUTPUT_FILE" -chmod +x "dist/$OUTPUT_FILE" echo "Finished! Filename: $OUTPUT_FILE" From b47793c365aaafee08db3cb4fe0b5a070029fb4f Mon Sep 17 00:00:00 2001 From: mikiher Date: Mon, 26 Feb 2024 14:00:25 +0200 Subject: [PATCH 019/216] Add cache control header for timestamped cover image requests --- server/controllers/LibraryItemController.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/server/controllers/LibraryItemController.js b/server/controllers/LibraryItemController.js index dfa1daeac..3fa7743a3 100644 --- a/server/controllers/LibraryItemController.js +++ b/server/controllers/LibraryItemController.js @@ -283,6 +283,9 @@ class LibraryItemController { return res.sendStatus(404) } + if (req.query.ts) + res.set('Cache-Control', 'private, max-age=86400') + if (raw) { // any value if (global.XAccel) { const encodedURI = encodeUriPath(global.XAccel + libraryItem.media.coverPath) From def2988e120b162da1f3e9df586813bccf156f63 Mon Sep 17 00:00:00 2001 From: advplyr Date: Mon, 26 Feb 2024 17:20:11 -0600 Subject: [PATCH 020/216] Update:Passport openid-client request timeout set to 10s (default was 3.5s) #2669 --- server/Auth.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/server/Auth.js b/server/Auth.js index cec3bc335..ad219dc25 100644 --- a/server/Auth.js +++ b/server/Auth.js @@ -76,6 +76,9 @@ class Auth { return } + // Custom req timeout see: https://github.com/panva/node-openid-client/blob/main/docs/README.md#customizing + OpenIDClient.custom.setHttpOptionsDefaults({ timeout: 10000 }) + const openIdIssuerClient = new OpenIDClient.Issuer({ issuer: global.ServerSettings.authOpenIDIssuerURL, authorization_endpoint: global.ServerSettings.authOpenIDAuthorizationURL, From 72172dcb331f73864abccee1b6aed44416fd207e Mon Sep 17 00:00:00 2001 From: Machou Date: Tue, 27 Feb 2024 08:56:31 +0100 Subject: [PATCH 021/216] Update fr.json --- client/strings/fr.json | 52 +++++++++++++++++++++--------------------- 1 file changed, 26 insertions(+), 26 deletions(-) diff --git a/client/strings/fr.json b/client/strings/fr.json index bbf38e187..81b6fa1b5 100644 --- a/client/strings/fr.json +++ b/client/strings/fr.json @@ -7,7 +7,7 @@ "ButtonAddUser": "Ajouter un utilisateur", "ButtonAddYourFirstLibrary": "Ajouter votre première bibliothèque", "ButtonApply": "Appliquer", - "ButtonApplyChapters": "Appliquer les chapitres", + "ButtonApplyChapters": "Appliquer aux chapitres", "ButtonAuthors": "Auteurs", "ButtonBrowseForFolder": "Naviguer vers le répertoire", "ButtonCancel": "Annuler", @@ -32,8 +32,8 @@ "ButtonHide": "Cacher", "ButtonHome": "Accueil", "ButtonIssues": "Parutions", - "ButtonJumpBackward": "Jump Backward", - "ButtonJumpForward": "Jump Forward", + "ButtonJumpBackward": "Retour", + "ButtonJumpForward": "Avancer", "ButtonLatest": "Dernière version", "ButtonLibrary": "Bibliothèque", "ButtonLogout": "Me déconnecter", @@ -43,8 +43,8 @@ "ButtonMatchAllAuthors": "Chercher tous les auteurs", "ButtonMatchBooks": "Chercher les livres", "ButtonNevermind": "Non merci", - "ButtonNext": "Next", - "ButtonNextChapter": "Next Chapter", + "ButtonNext": "Suivant", + "ButtonNextChapter": "Chapitre suivant", "ButtonOk": "Ok", "ButtonOpenFeed": "Ouvrir le flux", "ButtonOpenManager": "Ouvrir le gestionnaire", @@ -52,8 +52,8 @@ "ButtonPlay": "Écouter", "ButtonPlaying": "En lecture", "ButtonPlaylists": "Listes de lecture", - "ButtonPrevious": "Previous", - "ButtonPreviousChapter": "Previous Chapter", + "ButtonPrevious": "Précédent", + "ButtonPreviousChapter": "Chapitre précédent", "ButtonPurgeAllCache": "Purger le cache", "ButtonPurgeItemsCache": "Purger le cache des articles", "ButtonPurgeMediaProgress": "Purger la progression des médias", @@ -61,7 +61,7 @@ "ButtonQueueRemoveItem": "Supprimer de la liste de lecture", "ButtonQuickMatch": "Recherche rapide", "ButtonRead": "Lire", - "ButtonRefresh": "Refresh", + "ButtonRefresh": "Rafraîchir", "ButtonRemove": "Supprimer", "ButtonRemoveAll": "Supprimer tout", "ButtonRemoveAllLibraryItems": "Supprimer tous les articles de la bibliothèque", @@ -81,7 +81,7 @@ "ButtonSelectFolderPath": "Sélectionner le chemin du dossier", "ButtonSeries": "Séries", "ButtonSetChaptersFromTracks": "Positionner les chapitres par rapports aux pistes", - "ButtonShare": "Share", + "ButtonShare": "Partager", "ButtonShiftTimes": "Décaler l’horodatage du livre", "ButtonShow": "Afficher", "ButtonStartM4BEncode": "Démarrer l’encodage M4B", @@ -92,7 +92,7 @@ "ButtonUploadBackup": "Téléverser une sauvegarde", "ButtonUploadCover": "Téléverser une couverture", "ButtonUploadOPMLFile": "Téléverser un fichier OPML", - "ButtonUserDelete": "Effacer l’utilisateur {0}", + "ButtonUserDelete": "Supprimer l’utilisateur {0}", "ButtonUserEdit": "Modifier l’utilisateur {0}", "ButtonViewAll": "Afficher tout", "ButtonYes": "Oui", @@ -101,8 +101,8 @@ "ErrorUploadLacksTitle": "Doit avoir un titre", "HeaderAccount": "Compte", "HeaderAdvanced": "Avancé", - "HeaderAppriseNotificationSettings": "Configuration des Notifications Apprise", - "HeaderAudiobookTools": "Outils de Gestion de Fichier Audiobook", + "HeaderAppriseNotificationSettings": "Configuration des notifications Apprise", + "HeaderAudiobookTools": "Outils de gestion de fichiers de livres audio", "HeaderAudioTracks": "Pistes audio", "HeaderAuthentication": "Authentication", "HeaderBackups": "Sauvegardes", @@ -113,7 +113,7 @@ "HeaderCollectionItems": "Entrées de la collection", "HeaderCover": "Couverture", "HeaderCurrentDownloads": "Téléchargements en cours", - "HeaderCustomMetadataProviders": "Custom Metadata Providers", + "HeaderCustomMetadataProviders": "Fournisseurs de métadonnées personnalisés", "HeaderDetails": "Détails", "HeaderDownloadQueue": "File d’attente de téléchargements", "HeaderEbookFiles": "Fichier des livres numériques", @@ -292,11 +292,11 @@ "LabelFinished": "Terminé le", "LabelFolder": "Dossier", "LabelFolders": "Dossiers", - "LabelFontBold": "Bold", + "LabelFontBold": "Gras", "LabelFontFamily": "Polices de caractères", - "LabelFontItalic": "Italic", + "LabelFontItalic": "Italique", "LabelFontScale": "Taille de la police de caractère", - "LabelFontStrikethrough": "Strikethrough", + "LabelFontStrikethrough": "Barrer", "LabelFormat": "Format", "LabelGenre": "Genre", "LabelGenres": "Genres", @@ -419,7 +419,7 @@ "LabelRecentlyAdded": "Derniers ajouts", "LabelRecentSeries": "Séries récentes", "LabelRecommended": "Recommandé", - "LabelRedo": "Redo", + "LabelRedo": "Refaire", "LabelRegion": "Région", "LabelReleaseDate": "Date de parution", "LabelRemoveCover": "Supprimer la couverture", @@ -509,10 +509,10 @@ "LabelTagsAccessibleToUser": "Étiquettes accessibles à l’utilisateur", "LabelTagsNotAccessibleToUser": "Étiquettes non accessibles à l’utilisateur", "LabelTasks": "Tâches en cours", - "LabelTextEditorBulletedList": "Bulleted list", - "LabelTextEditorLink": "Link", - "LabelTextEditorNumberedList": "Numbered list", - "LabelTextEditorUnlink": "Unlink", + "LabelTextEditorBulletedList": "Liste à puces", + "LabelTextEditorLink": "Lien", + "LabelTextEditorNumberedList": "Liste numérotée", + "LabelTextEditorUnlink": "Dissocier", "LabelTheme": "Thème", "LabelThemeDark": "Sombre", "LabelThemeLight": "Clair", @@ -538,7 +538,7 @@ "LabelTracksSingleTrack": "Piste simple", "LabelType": "Type", "LabelUnabridged": "Version intégrale", - "LabelUndo": "Undo", + "LabelUndo": "Annuler", "LabelUnknown": "Inconnu", "LabelUpdateCover": "Mettre à jour la couverture", "LabelUpdateCoverHelp": "Autoriser la mise à jour de la couverture existante lorsqu’une correspondance est trouvée", @@ -559,8 +559,8 @@ "LabelViewQueue": "Afficher la liste de lecture", "LabelVolume": "Volume", "LabelWeekdaysToRun": "Jours de la semaine à exécuter", - "LabelYearReviewHide": "Hide Year in Review", - "LabelYearReviewShow": "See Year in Review", + "LabelYearReviewHide": "Masquer le bilan de l’année", + "LabelYearReviewShow": "Afficher le bilan de l’année", "LabelYourAudiobookDuration": "Durée de vos livres audios", "LabelYourBookmarks": "Vos signets", "LabelYourPlaylists": "Vos listes de lecture", @@ -692,7 +692,7 @@ "MessageYourAudiobookDurationIsShorter": "La durée de votre livre audio est plus courte que la durée trouvée", "NoteChangeRootPassword": "seul l’utilisateur « root » peut utiliser un mot de passe vide", "NoteChapterEditorTimes": "Information : l’horodatage du premier chapitre doit être à 0:00 et celui du dernier chapitre ne peut se situer au-delà de la durée du livre audio.", - "NoteFolderPicker": "Information : Les dossiers déjà surveillés ne sont pas affichés", + "NoteFolderPicker": "Information : les dossiers déjà surveillés ne sont pas affichés", "NoteRSSFeedPodcastAppsHttps": "Attention : la majorité des application de podcast nécessite une adresse de flux en HTTPS.", "NoteRSSFeedPodcastAppsPubDate": "Attention : un ou plusieurs de vos épisodes ne possèdent pas de date de publication. Certaines applications de podcast le requièrent.", "NoteUploaderFoldersWithMediaFiles": "Les dossiers contenant des fichiers multimédias seront traités comme des éléments distincts de la bibliothèque.", @@ -774,4 +774,4 @@ "ToastSocketFailedToConnect": "Échec de la connexion WebSocket", "ToastUserDeleteFailed": "Échec de la suppression de l’utilisateur", "ToastUserDeleteSuccess": "Utilisateur supprimé" -} \ No newline at end of file +} From 655bebfec4c6ba71751a7aa4a0f3e7af7f5e4789 Mon Sep 17 00:00:00 2001 From: Teekeks Date: Tue, 27 Feb 2024 18:30:05 +0100 Subject: [PATCH 022/216] feat: Expanded filter to include "has no ebook" and "has no supplementary ebooks" options --- client/components/controls/LibraryFilterSelect.vue | 8 ++++++++ client/strings/de.json | 2 ++ client/strings/en-us.json | 2 ++ server/utils/queries/libraryItemsBookFilters.js | 8 ++++++++ 4 files changed, 20 insertions(+) diff --git a/client/components/controls/LibraryFilterSelect.vue b/client/components/controls/LibraryFilterSelect.vue index 5ed4400b8..04dd11afe 100644 --- a/client/components/controls/LibraryFilterSelect.vue +++ b/client/components/controls/LibraryFilterSelect.vue @@ -368,9 +368,17 @@ export default { id: 'ebook', name: this.$strings.LabelHasEbook }, + { + id: 'no-ebook', + name: this.$strings.LabelMissingEbook + }, { id: 'supplementary', name: this.$strings.LabelHasSupplementaryEbook + }, + { + id: 'no-supplementary', + name: this.$strings.LabelMissingSupplementaryEbook } ] }, diff --git a/client/strings/de.json b/client/strings/de.json index 5b2711c1c..33b0fb1b9 100644 --- a/client/strings/de.json +++ b/client/strings/de.json @@ -356,7 +356,9 @@ "LabelMetaTags": "Meta Tags", "LabelMinute": "Minute", "LabelMissing": "Fehlend", + "LabelMissingEbook": "E-Book fehlt", "LabelMissingParts": "Fehlende Teile", + "LabelMissingSupplementaryEbook": "Ergänzendes E-Book fehlt", "LabelMobileRedirectURIs": "Erlaubte Weiterleitungs-URIs für die mobile App", "LabelMobileRedirectURIsDescription": "Dies ist eine Whitelist gültiger Umleitungs-URIs für mobile Apps. Der Standardwert ist audiobookshelf://oauth, den du entfernen oder durch zusätzliche URIs für die Integration von Drittanbieter-Apps ergänzen kannst. Die Verwendung eines Sternchens (*) als alleiniger Eintrag erlaubt jede URI.", "LabelMore": "Mehr", diff --git a/client/strings/en-us.json b/client/strings/en-us.json index b8860ffa5..2465f8737 100644 --- a/client/strings/en-us.json +++ b/client/strings/en-us.json @@ -356,7 +356,9 @@ "LabelMetaTags": "Meta Tags", "LabelMinute": "Minute", "LabelMissing": "Missing", + "LabelMissingEbook": "Has no ebook", "LabelMissingParts": "Missing Parts", + "LabelMissingSupplementaryEbook": "Has no supplementary ebook", "LabelMobileRedirectURIs": "Allowed Mobile Redirect URIs", "LabelMobileRedirectURIsDescription": "This is a whitelist of valid redirect URIs for mobile apps. The default one is audiobookshelf://oauth, which you can remove or supplement with additional URIs for third-party app integration. Using an asterisk (*) as the sole entry permits any URI.", "LabelMore": "More", diff --git a/server/utils/queries/libraryItemsBookFilters.js b/server/utils/queries/libraryItemsBookFilters.js index d23459b46..16a258476 100644 --- a/server/utils/queries/libraryItemsBookFilters.js +++ b/server/utils/queries/libraryItemsBookFilters.js @@ -204,6 +204,10 @@ module.exports = { mediaWhere['ebookFile'] = { [Sequelize.Op.not]: null } + } else if (value == 'no-ebook') { + mediaWhere['ebookFile'] = { + [Sequelize.Op.eq]: null + } } } else if (group === 'missing') { if (['asin', 'isbn', 'subtitle', 'publishedYear', 'description', 'publisher', 'language', 'cover'].includes(value)) { @@ -421,6 +425,10 @@ module.exports = { libraryItemWhere['libraryFiles'] = { [Sequelize.Op.substring]: `"isSupplementary":true` } + } else if (filterGroup === 'ebooks' && filterValue === 'no-supplementary') { + libraryItemWhere['libraryFiles'] = { + [Sequelize.Op.notLike]: Sequelize.literal(`\'%"isSupplementary":true%\'`), + } } else if (filterGroup === 'missing' && filterValue === 'authors') { authorInclude = { model: Database.authorModel, From 20ec54e085ef0d7491ddfe0b40bbcc50a2ba4852 Mon Sep 17 00:00:00 2001 From: pmangro <160148596+pmangro@users.noreply.github.com> Date: Tue, 27 Feb 2024 14:31:21 -0300 Subject: [PATCH 023/216] [PT-BR] Updated strings --- client/strings/pt-br.json | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/client/strings/pt-br.json b/client/strings/pt-br.json index 14e7f52aa..1d88c2096 100644 --- a/client/strings/pt-br.json +++ b/client/strings/pt-br.json @@ -43,7 +43,7 @@ "ButtonMatchAllAuthors": "Consultar Todos os Autores", "ButtonMatchBooks": "Consultar Livros", "ButtonNevermind": "Cancelar", - "ButtonNext": "Next", + "ButtonNext": "Próximo", "ButtonNextChapter": "Próximo Capítulo", "ButtonOk": "Ok", "ButtonOpenFeed": "Abrir Feed", @@ -52,7 +52,7 @@ "ButtonPlay": "Reproduzir", "ButtonPlaying": "Reproduzindo", "ButtonPlaylists": "Lista de Reprodução", - "ButtonPrevious": "Previous", + "ButtonPrevious": "Anterior", "ButtonPreviousChapter": "Capítulo Anterior", "ButtonPurgeAllCache": "Apagar Todo o Cache", "ButtonPurgeItemsCache": "Apagar o Cache de Itens", @@ -61,7 +61,7 @@ "ButtonQueueRemoveItem": "Remover da Lista", "ButtonQuickMatch": "Consulta rápida", "ButtonRead": "Ler", - "ButtonRefresh": "Refresh", + "ButtonRefresh": "Atualizar", "ButtonRemove": "Remover", "ButtonRemoveAll": "Remover Todos", "ButtonRemoveAllLibraryItems": "Remover Todos os Itens da Biblioteca", @@ -81,7 +81,7 @@ "ButtonSelectFolderPath": "Selecionar Caminho da Pasta", "ButtonSeries": "Séries", "ButtonSetChaptersFromTracks": "Definir Capítulos Segundo Faixas", - "ButtonShare": "Share", + "ButtonShare": "Compartilhar", "ButtonShiftTimes": "Deslocar tempos", "ButtonShow": "Exibir", "ButtonStartM4BEncode": "Iniciar Codificação M4B", @@ -184,7 +184,7 @@ "HeaderUpdateDetails": "Atualizar Detalhes", "HeaderUpdateLibrary": "Atualizar Biblioteca", "HeaderUsers": "Usuários", - "HeaderYearReview": "Year {0} in Review", + "HeaderYearReview": "Retrospectiva de {0} ", "HeaderYourStats": "Suas Estatísticas", "LabelAbridged": "Versão Abreviada", "LabelAccountType": "Tipo de Conta", @@ -396,13 +396,13 @@ "LabelPermissionsDownload": "Pode Fazer Download", "LabelPermissionsUpdate": "Pode Atualizar", "LabelPermissionsUpload": "Pode Fazer Upload", - "LabelPersonalYearReview": "Your Year in Review ({0})", + "LabelPersonalYearReview": "Sua Retrospectiva Anual ({0})", "LabelPhotoPathURL": "Caminho/URL para Foto", "LabelPlaylists": "Listas de Reprodução", "LabelPlayMethod": "Método de Reprodução", "LabelPodcast": "Podcast", "LabelPodcasts": "Podcasts", - "LabelPodcastSearchRegion": "Podcast search region", + "LabelPodcastSearchRegion": "Região de busca do podcast", "LabelPodcastType": "Tipo de Podcast", "LabelPort": "Porta", "LabelPrefixesToIgnore": "Prefixos para Ignorar (sem distinção entre maiúsculas e minúsculas)", @@ -442,7 +442,7 @@ "LabelSeries": "Série", "LabelSeriesName": "Nome da Série", "LabelSeriesProgress": "Progresso da Série", - "LabelServerYearReview": "Server Year in Review ({0})", + "LabelServerYearReview": "Retrospectiva Anual do Servidor ({0})", "LabelSetEbookAsPrimary": "Definir como principal", "LabelSetEbookAsSupplementary": "Definir como complementar", "LabelSettingsAudiobooksOnly": "Apenas Audiobooks", @@ -559,8 +559,8 @@ "LabelViewQueue": "Ver fila do reprodutor", "LabelVolume": "Volume", "LabelWeekdaysToRun": "Dias da semana para executar", - "LabelYearReviewHide": "Hide Year in Review", - "LabelYearReviewShow": "See Year in Review", + "LabelYearReviewHide": "Ocultar Retrospectiva Anual", + "LabelYearReviewShow": "Exibir Retrospectiva Anual", "LabelYourAudiobookDuration": "Duração do seu audiobook", "LabelYourBookmarks": "Seus Marcadores", "LabelYourPlaylists": "Suas Listas de Reprodução", @@ -774,4 +774,4 @@ "ToastSocketFailedToConnect": "Falha na conexão do socket", "ToastUserDeleteFailed": "Falha ao apagar usuário", "ToastUserDeleteSuccess": "Usuário apagado" -} \ No newline at end of file +} From 38f12f47950713557a92def0f6871fef2482c7cc Mon Sep 17 00:00:00 2001 From: advplyr Date: Tue, 27 Feb 2024 17:17:33 -0600 Subject: [PATCH 024/216] Fix:Podcast schedule max new episodes to download setting to 0 and fix input blurs #2680 --- client/components/modals/item/tabs/Schedule.vue | 11 ++++++++--- server/objects/mediaTypes/Podcast.js | 8 +++++++- server/utils/index.js | 4 +++- 3 files changed, 18 insertions(+), 5 deletions(-) diff --git a/client/components/modals/item/tabs/Schedule.vue b/client/components/modals/item/tabs/Schedule.vue index 032936d12..819ede191 100644 --- a/client/components/modals/item/tabs/Schedule.vue +++ b/client/components/modals/item/tabs/Schedule.vue @@ -20,7 +20,7 @@
- +

Max new episodes to download per check @@ -129,9 +129,12 @@ export default { return } } - if (this.$refs.maxEpisodesInput && this.$refs.maxEpisodesInput.isFocused) { + + if (this.$refs.maxEpisodesInput?.isFocused) { this.$refs.maxEpisodesInput.blur() - return + } + if (this.$refs.maxEpisodesToDownloadInput?.isFocused) { + this.$refs.maxEpisodesToDownloadInput.blur() } const updatePayload = { @@ -140,9 +143,11 @@ export default { if (this.enableAutoDownloadEpisodes) { updatePayload.autoDownloadSchedule = this.cronExpression } + this.newMaxEpisodesToKeep = Number(this.newMaxEpisodesToKeep) if (this.newMaxEpisodesToKeep !== this.maxEpisodesToKeep) { updatePayload.maxEpisodesToKeep = this.newMaxEpisodesToKeep } + this.newMaxNewEpisodesToDownload = Number(this.newMaxNewEpisodesToDownload) if (this.newMaxNewEpisodesToDownload !== this.maxNewEpisodesToDownload) { updatePayload.maxNewEpisodesToDownload = this.newMaxNewEpisodesToDownload } diff --git a/server/objects/mediaTypes/Podcast.js b/server/objects/mediaTypes/Podcast.js index a0e5de047..6f7ca337d 100644 --- a/server/objects/mediaTypes/Podcast.js +++ b/server/objects/mediaTypes/Podcast.js @@ -42,7 +42,13 @@ class Podcast { this.autoDownloadSchedule = podcast.autoDownloadSchedule || '0 * * * *' // Added in 2.1.3 so default to hourly this.lastEpisodeCheck = podcast.lastEpisodeCheck || 0 this.maxEpisodesToKeep = podcast.maxEpisodesToKeep || 0 - this.maxNewEpisodesToDownload = podcast.maxNewEpisodesToDownload || 3 + + // Default is 3 but 0 is allowed + if (typeof podcast.maxNewEpisodesToDownload !== 'number') { + this.maxNewEpisodesToDownload = 3 + } else { + this.maxNewEpisodesToDownload = podcast.maxNewEpisodesToDownload + } } toJSON() { diff --git a/server/utils/index.js b/server/utils/index.js index f75572ba0..6a89621b8 100644 --- a/server/utils/index.js +++ b/server/utils/index.js @@ -114,7 +114,9 @@ module.exports.reqSupportsWebp = (req) => { module.exports.areEquivalent = areEquivalent module.exports.copyValue = (val) => { - if (!val) return val === false ? false : null + if (val === undefined || val === '') return null + else if (!val) return val + if (!this.isObject(val)) return val if (Array.isArray(val)) { From f4a19e48ad21241c27f0b0f4c07cf3d758f37b45 Mon Sep 17 00:00:00 2001 From: mfcar Date: Wed, 28 Feb 2024 19:21:11 +0000 Subject: [PATCH 025/216] Update login page --- client/pages/login.vue | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/client/pages/login.vue b/client/pages/login.vue index 9b7758d8a..efdbba4d3 100644 --- a/client/pages/login.vue +++ b/client/pages/login.vue @@ -1,5 +1,5 @@