diff --git a/client/components/modals/podcast/EpisodeFeed.vue b/client/components/modals/podcast/EpisodeFeed.vue
index 9c199325..b6c135b9 100644
--- a/client/components/modals/podcast/EpisodeFeed.vue
+++ b/client/components/modals/podcast/EpisodeFeed.vue
@@ -39,7 +39,7 @@
-
+
{{ buttonText }}
All episodes are downloaded
@@ -99,15 +99,16 @@ export default {
return Object.keys(this.selectedEpisodes).filter((key) => !!this.selectedEpisodes[key])
},
buttonText() {
- if (!this.episodesSelected.length) return 'No Episodes Selected'
- return `Download ${this.episodesSelected.length} Episode${this.episodesSelected.length > 1 ? 's' : ''}`
+ if (!this.episodesSelected.length) return this.$strings.LabelNoEpisodesSelected
+ if (this.episodesSelected.length === 1) return `${this.$strings.LabelDownload} ${this.$strings.LabelEpisode.toLowerCase()}`
+ return this.$getString('LabelDownloadNEpisodes', [this.episodesSelected.length])
},
itemEpisodes() {
if (!this.libraryItem) return []
return this.libraryItem.media.episodes || []
},
itemEpisodeMap() {
- var map = {}
+ const map = {}
this.itemEpisodes.forEach((item) => {
if (item.enclosure) map[item.enclosure.url.split('?')[0]] = true
})
@@ -116,29 +117,38 @@ export default {
episodesList() {
return this.episodesCleaned.filter((episode) => {
if (!this.searchText) return true
- return (episode.title && episode.title.toLowerCase().includes(this.searchText)) || (episode.subtitle && episode.subtitle.toLowerCase().includes(this.searchText))
+ return episode.title?.toLowerCase().includes(this.searchText) || episode.subtitle?.toLowerCase().includes(this.searchText)
})
+ },
+ selectAllLabel() {
+ if (this.episodesList.length === this.episodesCleaned.length) {
+ return this.$strings.LabelSelectAllEpisodes
+ }
+ const episodesNotDownloaded = this.episodesList.filter((ep) => !this.itemEpisodeMap[ep.cleanUrl]).length
+ return this.$getString('LabelSelectEpisodesShowing', [episodesNotDownloaded])
}
},
methods: {
inputUpdate() {
clearTimeout(this.searchTimeout)
this.searchTimeout = setTimeout(() => {
- if (!this.search || !this.search.trim()) {
+ if (!this.search?.trim()) {
this.searchText = ''
+ this.checkSetIsSelectedAll()
return
}
this.searchText = this.search.toLowerCase().trim()
+ this.checkSetIsSelectedAll()
}, 500)
},
toggleSelectAll(val) {
- for (const episode of this.episodesCleaned) {
+ for (const episode of this.episodesList) {
if (this.itemEpisodeMap[episode.cleanUrl]) this.selectedEpisodes[episode.cleanUrl] = false
else this.$set(this.selectedEpisodes, episode.cleanUrl, val)
}
},
checkSetIsSelectedAll() {
- for (const episode of this.episodesCleaned) {
+ for (const episode of this.episodesList) {
if (!this.itemEpisodeMap[episode.cleanUrl] && !this.selectedEpisodes[episode.cleanUrl]) {
this.selectAll = false
return
@@ -147,19 +157,19 @@ export default {
this.selectAll = true
},
toggleSelectEpisode(episode) {
- if (this.itemEpisodeMap[episode.enclosure.url?.split('?')[0]]) return
+ if (this.itemEpisodeMap[episode.cleanUrl]) return
this.$set(this.selectedEpisodes, episode.cleanUrl, !this.selectedEpisodes[episode.cleanUrl])
this.checkSetIsSelectedAll()
},
submit() {
- var episodesToDownload = []
+ let episodesToDownload = []
if (this.episodesSelected.length) {
episodesToDownload = this.episodesSelected.map((cleanUrl) => this.episodesCleaned.find((ep) => ep.cleanUrl == cleanUrl))
}
- var payloadSize = JSON.stringify(episodesToDownload).length
- var sizeInMb = payloadSize / 1024 / 1024
- var sizeInMbPretty = sizeInMb.toFixed(2) + 'MB'
+ const payloadSize = JSON.stringify(episodesToDownload).length
+ const sizeInMb = payloadSize / 1024 / 1024
+ const sizeInMbPretty = sizeInMb.toFixed(2) + 'MB'
console.log('Request size', sizeInMb)
if (sizeInMb > 4.99) {
return this.$toast.error(`Request is too large (${sizeInMbPretty}) should be < 5Mb`)
@@ -174,10 +184,9 @@ export default {
this.show = false
})
.catch((error) => {
- var errorMsg = error.response && error.response.data ? error.response.data : 'Failed to download episodes'
console.error('Failed to download episodes', error)
this.processing = false
- this.$toast.error(errorMsg)
+ this.$toast.error(error.response?.data || 'Failed to download episodes')
this.selectedEpisodes = {}
this.selectAll = false
diff --git a/client/plugins/i18n.js b/client/plugins/i18n.js
index 10f705b4..8f8860f1 100644
--- a/client/plugins/i18n.js
+++ b/client/plugins/i18n.js
@@ -34,7 +34,7 @@ Vue.prototype.$strings = { ...enUsStrings }
Vue.prototype.$getString = (key, subs) => {
if (!Vue.prototype.$strings[key]) return ''
- if (subs && Array.isArray(subs) && subs.length) {
+ if (subs?.length && Array.isArray(subs)) {
return supplant(Vue.prototype.$strings[key], subs)
}
return Vue.prototype.$strings[key]
diff --git a/client/strings/de.json b/client/strings/de.json
index a291baf6..62a0c2b1 100644
--- a/client/strings/de.json
+++ b/client/strings/de.json
@@ -103,6 +103,7 @@
"HeaderEmailSettings": "Email Settings",
"HeaderEpisodes": "Episoden",
"HeaderEreaderDevices": "Ereader Devices",
+ "HeaderEreaderSettings": "Ereader Settings",
"HeaderFiles": "Dateien",
"HeaderFindChapters": "Kapitel suchen",
"HeaderIgnoredFiles": "Ignorierte Dateien",
@@ -154,6 +155,7 @@
"HeaderStatsRecentSessions": "Neueste Ereignisse",
"HeaderStatsTop10Authors": "Top 10 Autoren",
"HeaderStatsTop5Genres": "Top 5 Kategorien",
+ "HeaderTableOfContents": "Table of Contents",
"HeaderTools": "Werkzeuge",
"HeaderUpdateAccount": "Konto aktualisieren",
"HeaderUpdateAuthor": "Autor aktualisieren",
@@ -221,6 +223,7 @@
"LabelDiscFromFilename": "CD aus dem Dateinamen",
"LabelDiscFromMetadata": "CD aus den Metadaten",
"LabelDownload": "Herunterladen",
+ "LabelDownloadNEpisodes": "Download {0} episodes",
"LabelDuration": "Laufzeit",
"LabelDurationFound": "Gefundene Laufzeit:",
"LabelEbook": "Ebook",
@@ -249,6 +252,7 @@
"LabelFinished": "beendet",
"LabelFolder": "Ordner",
"LabelFolders": "Verzeichnisse",
+ "LabelFontScale": "Font scale",
"LabelFormat": "Format",
"LabelGenre": "Kategorie",
"LabelGenres": "Kategorien",
@@ -280,12 +284,16 @@
"LabelLastSeen": "Zuletzt angesehen",
"LabelLastTime": "Letztes Mal",
"LabelLastUpdate": "Letzte Aktualisierung",
+ "LabelLayout": "Layout",
+ "LabelLayoutSinglePage": "Single page",
+ "LabelLayoutSplitPage": "Split page",
"LabelLess": "Weniger",
"LabelLibrariesAccessibleToUser": "Für Benutzer zugängliche Bibliotheken",
"LabelLibrary": "Bibliothek",
"LabelLibraryItem": "Bibliothekseintrag",
"LabelLibraryName": "Bibliotheksname",
"LabelLimit": "Begrenzung",
+ "LabelLineSpacing": "Line spacing",
"LabelListenAgain": "Erneut anhören",
"LabelLogLevelDebug": "Fehlersuche",
"LabelLogLevelInfo": "Informationen",
@@ -310,6 +318,7 @@
"LabelNewPassword": "Neues Passwort",
"LabelNextBackupDate": "Nächstes Sicherungsdatum",
"LabelNextScheduledRun": "Nächster planmäßiger Durchlauf",
+ "LabelNoEpisodesSelected": "No episodes selected",
"LabelNotes": "Hinweise",
"LabelNotFinished": "nicht beendet",
"LabelNotificationAppriseURL": "Apprise URL(s)",
@@ -369,6 +378,8 @@
"LabelSearchTitle": "Titel",
"LabelSearchTitleOrASIN": "Titel oder ASIN",
"LabelSeason": "Staffel",
+ "LabelSelectAllEpisodes": "Select all episodes",
+ "LabelSelectEpisodesShowing": "Select {0} episodes showing",
"LabelSendEbookToDevice": "Send Ebook to...",
"LabelSequence": "Reihenfolge",
"LabelSeries": "Serien",
@@ -388,6 +399,8 @@
"LabelSettingsExperimentalFeaturesHelp": "Funktionen welche sich in der Entwicklung befinden, benötigen Ihr Feedback und Ihre Hilfe beim Testen. Klicken Sie hier, um die Github-Diskussion zu öffnen.",
"LabelSettingsFindCovers": "Suche Titelbilder",
"LabelSettingsFindCoversHelp": "Wenn Ihr Medium kein eingebettetes Titelbild oder kein Titelbild im Ordner hat, versucht der Scanner, ein Titelbild online zu finden.
Hinweis: Dies verlängert die Scandauer",
+ "LabelSettingsHideSingleBookSeries": "Hide single book series",
+ "LabelSettingsHideSingleBookSeriesHelp": "Series that have a single book will be hidden from the series page and home page shelves.",
"LabelSettingsHomePageBookshelfView": "Startseite verwendet die Bücherregalansicht",
"LabelSettingsLibraryBookshelfView": "Bibliothek verwendet die Bücherregalansicht",
"LabelSettingsOverdriveMediaMarkers": "Verwende Overdrive Media Marker für Kapitel",
@@ -440,6 +453,9 @@
"LabelTagsAccessibleToUser": "Für Benutzer zugängliche Schlagwörter",
"LabelTagsNotAccessibleToUser": "Für Benutzer nicht zugängliche Schlagwörter",
"LabelTasks": "Laufende Aufgaben",
+ "LabelTheme": "Theme",
+ "LabelThemeDark": "Dark",
+ "LabelThemeLight": "Light",
"LabelTimeBase": "Basiszeit",
"LabelTimeListened": "Gehörte Zeit",
"LabelTimeListenedToday": "Heute gehörte Zeit",
diff --git a/client/strings/en-us.json b/client/strings/en-us.json
index 36fdec68..6348ee0c 100644
--- a/client/strings/en-us.json
+++ b/client/strings/en-us.json
@@ -223,6 +223,7 @@
"LabelDiscFromFilename": "Disc from Filename",
"LabelDiscFromMetadata": "Disc from Metadata",
"LabelDownload": "Download",
+ "LabelDownloadNEpisodes": "Download {0} episodes",
"LabelDuration": "Duration",
"LabelDurationFound": "Duration found:",
"LabelEbook": "Ebook",
@@ -317,6 +318,7 @@
"LabelNewPassword": "New Password",
"LabelNextBackupDate": "Next backup date",
"LabelNextScheduledRun": "Next scheduled run",
+ "LabelNoEpisodesSelected": "No episodes selected",
"LabelNotes": "Notes",
"LabelNotFinished": "Not Finished",
"LabelNotificationAppriseURL": "Apprise URL(s)",
@@ -376,6 +378,8 @@
"LabelSearchTitle": "Search Title",
"LabelSearchTitleOrASIN": "Search Title or ASIN",
"LabelSeason": "Season",
+ "LabelSelectAllEpisodes": "Select all episodes",
+ "LabelSelectEpisodesShowing": "Select {0} episodes showing",
"LabelSendEbookToDevice": "Send Ebook to...",
"LabelSequence": "Sequence",
"LabelSeries": "Series",
diff --git a/client/strings/es.json b/client/strings/es.json
index 5be5ab61..ad33e6ec 100644
--- a/client/strings/es.json
+++ b/client/strings/es.json
@@ -103,6 +103,7 @@
"HeaderEmailSettings": "Email Settings",
"HeaderEpisodes": "Episodios",
"HeaderEreaderDevices": "Ereader Devices",
+ "HeaderEreaderSettings": "Ereader Settings",
"HeaderFiles": "Elemento",
"HeaderFindChapters": "Buscar Capitulo",
"HeaderIgnoredFiles": "Ignorar Elemento",
@@ -154,6 +155,7 @@
"HeaderStatsRecentSessions": "Sesiones Recientes",
"HeaderStatsTop10Authors": "Top 10 Autores",
"HeaderStatsTop5Genres": "Top 5 Géneros",
+ "HeaderTableOfContents": "Table of Contents",
"HeaderTools": "Herramientas",
"HeaderUpdateAccount": "Actualizar Cuenta",
"HeaderUpdateAuthor": "Actualizar Autor",
@@ -221,6 +223,7 @@
"LabelDiscFromFilename": "Disco a partir del Nombre del Archivo",
"LabelDiscFromMetadata": "Disco a partir de Metadata",
"LabelDownload": "Descargar",
+ "LabelDownloadNEpisodes": "Download {0} episodes",
"LabelDuration": "Duración",
"LabelDurationFound": "Duración Comprobada:",
"LabelEbook": "Ebook",
@@ -249,6 +252,7 @@
"LabelFinished": "Terminado",
"LabelFolder": "Carpeta",
"LabelFolders": "Carpetas",
+ "LabelFontScale": "Font scale",
"LabelFormat": "Formato",
"LabelGenre": "Genero",
"LabelGenres": "Géneros",
@@ -280,12 +284,16 @@
"LabelLastSeen": "Ultima Vez Visto",
"LabelLastTime": "Ultima Vez",
"LabelLastUpdate": "Ultima Actualización",
+ "LabelLayout": "Layout",
+ "LabelLayoutSinglePage": "Single page",
+ "LabelLayoutSplitPage": "Split page",
"LabelLess": "Menos",
"LabelLibrariesAccessibleToUser": "Bibliotecas Disponibles para el Usuario",
"LabelLibrary": "Biblioteca",
"LabelLibraryItem": "Elemento de Biblioteca",
"LabelLibraryName": "Nombre de Biblioteca",
"LabelLimit": "Limites",
+ "LabelLineSpacing": "Line spacing",
"LabelListenAgain": "Escuchar Otra Vez",
"LabelLogLevelDebug": "Debug",
"LabelLogLevelInfo": "Info",
@@ -310,6 +318,7 @@
"LabelNewPassword": "Nueva Contraseña",
"LabelNextBackupDate": "Fecha del Siguiente Respaldo",
"LabelNextScheduledRun": "Próxima Ejecución Programada",
+ "LabelNoEpisodesSelected": "No episodes selected",
"LabelNotes": "Notas",
"LabelNotFinished": "No Terminado",
"LabelNotificationAppriseURL": "Apprise URL(s)",
@@ -369,6 +378,8 @@
"LabelSearchTitle": "Buscar Titulo",
"LabelSearchTitleOrASIN": "Buscar Titulo o ASIN",
"LabelSeason": "Temporada",
+ "LabelSelectAllEpisodes": "Select all episodes",
+ "LabelSelectEpisodesShowing": "Select {0} episodes showing",
"LabelSendEbookToDevice": "Send Ebook to...",
"LabelSequence": "Secuencia",
"LabelSeries": "Series",
@@ -388,6 +399,8 @@
"LabelSettingsExperimentalFeaturesHelp": "Funciones en desarrollo sobre las que esperamos sus comentarios y experiencia. Haga click aquí para abrir una conversación en Github.",
"LabelSettingsFindCovers": "Buscar Portadas",
"LabelSettingsFindCoversHelp": "Si tu audiolibro no tiene una portada incluida o la portada no esta dentro de la carpeta, el escaneador tratara de encontrar una portada.
Nota: Esto extenderá el tiempo de escaneo",
+ "LabelSettingsHideSingleBookSeries": "Hide single book series",
+ "LabelSettingsHideSingleBookSeriesHelp": "Series that have a single book will be hidden from the series page and home page shelves.",
"LabelSettingsHomePageBookshelfView": "La pagina de inicio usa la vista de librero",
"LabelSettingsLibraryBookshelfView": "La biblioteca usa la vista de librero",
"LabelSettingsOverdriveMediaMarkers": "Usar Markers de multimedia en Overdrive para estos capítulos",
@@ -440,6 +453,9 @@
"LabelTagsAccessibleToUser": "Etiquetas Accessible para el Usuario",
"LabelTagsNotAccessibleToUser": "Tags not Accessible to User",
"LabelTasks": "Tareas Corriendo",
+ "LabelTheme": "Theme",
+ "LabelThemeDark": "Dark",
+ "LabelThemeLight": "Light",
"LabelTimeBase": "Time Base",
"LabelTimeListened": "Tiempo Escuchando",
"LabelTimeListenedToday": "Tiempo Escuchando Hoy",
diff --git a/client/strings/fr.json b/client/strings/fr.json
index 6533fd87..17b229d1 100644
--- a/client/strings/fr.json
+++ b/client/strings/fr.json
@@ -103,6 +103,7 @@
"HeaderEmailSettings": "Configuration des e-mails",
"HeaderEpisodes": "Épisodes",
"HeaderEreaderDevices": "Lecteurs d'e-books",
+ "HeaderEreaderSettings": "Ereader Settings",
"HeaderFiles": "Fichiers",
"HeaderFindChapters": "Trouver les chapitres",
"HeaderIgnoredFiles": "Fichiers Ignorés",
@@ -154,6 +155,7 @@
"HeaderStatsRecentSessions": "Sessions récentes",
"HeaderStatsTop10Authors": "Top 10 Auteurs",
"HeaderStatsTop5Genres": "Top 5 Genres",
+ "HeaderTableOfContents": "Table of Contents",
"HeaderTools": "Outils",
"HeaderUpdateAccount": "Mettre à jour le compte",
"HeaderUpdateAuthor": "Mettre à jour l’auteur",
@@ -221,6 +223,7 @@
"LabelDiscFromFilename": "Disque depuis le fichier",
"LabelDiscFromMetadata": "Disque depuis les métadonnées",
"LabelDownload": "Téléchargement",
+ "LabelDownloadNEpisodes": "Download {0} episodes",
"LabelDuration": "Durée",
"LabelDurationFound": "Durée trouvée :",
"LabelEbook": "E-book",
@@ -249,6 +252,7 @@
"LabelFinished": "Fini(e)",
"LabelFolder": "Dossier",
"LabelFolders": "Dossiers",
+ "LabelFontScale": "Font scale",
"LabelFormat": "Format",
"LabelGenre": "Genre",
"LabelGenres": "Genres",
@@ -280,12 +284,16 @@
"LabelLastSeen": "Vu dernièrement",
"LabelLastTime": "Progression",
"LabelLastUpdate": "Dernière mise à jour",
+ "LabelLayout": "Layout",
+ "LabelLayoutSinglePage": "Single page",
+ "LabelLayoutSplitPage": "Split page",
"LabelLess": "Moins",
"LabelLibrariesAccessibleToUser": "Bibliothèque accessible à l’utilisateur",
"LabelLibrary": "Bibliothèque",
"LabelLibraryItem": "Article de bibliothèque",
"LabelLibraryName": "Nom de la bibliothèque",
"LabelLimit": "Limite",
+ "LabelLineSpacing": "Line spacing",
"LabelListenAgain": "Écouter à nouveau",
"LabelLogLevelDebug": "Debug",
"LabelLogLevelInfo": "Info",
@@ -310,6 +318,7 @@
"LabelNewPassword": "Nouveau mot de passe",
"LabelNextBackupDate": "Date de la prochaine sauvegarde",
"LabelNextScheduledRun": "Prochain lancement prévu",
+ "LabelNoEpisodesSelected": "No episodes selected",
"LabelNotes": "Notes",
"LabelNotFinished": "Non terminé(e)",
"LabelNotificationAppriseURL": "URL(s) d’Apprise",
@@ -369,6 +378,8 @@
"LabelSearchTitle": "Titre de recherche",
"LabelSearchTitleOrASIN": "Recherche du titre ou ASIN",
"LabelSeason": "Saison",
+ "LabelSelectAllEpisodes": "Select all episodes",
+ "LabelSelectEpisodesShowing": "Select {0} episodes showing",
"LabelSendEbookToDevice": "Envoyer l'e-book à...",
"LabelSequence": "Séquence",
"LabelSeries": "Séries",
@@ -388,6 +399,8 @@
"LabelSettingsExperimentalFeaturesHelp": "Fonctionnalités en cours de développement sur lesquelles nous attendons votre retour et expérience. Cliquez pour ouvrir la discussion Github.",
"LabelSettingsFindCovers": "Chercher des couvertures de livre",
"LabelSettingsFindCoversHelp": "Si votre livre audio ne possède pas de couverture intégrée ou une image de couverture dans le dossier, l’analyseur tentera de récupérer une couverture.
Attention, cela peut augmenter le temps d’analyse.",
+ "LabelSettingsHideSingleBookSeries": "Hide single book series",
+ "LabelSettingsHideSingleBookSeriesHelp": "Series that have a single book will be hidden from the series page and home page shelves.",
"LabelSettingsHomePageBookshelfView": "La page d’accueil utilise la vue étagère",
"LabelSettingsLibraryBookshelfView": "La bibliothèque utilise la vue étagère",
"LabelSettingsOverdriveMediaMarkers": "Utiliser Overdrive Media Marker pour les chapitres",
@@ -440,6 +453,9 @@
"LabelTagsAccessibleToUser": "Étiquettes accessibles à l’utilisateur",
"LabelTagsNotAccessibleToUser": "Tags not Accessible to User",
"LabelTasks": "Tâches en cours",
+ "LabelTheme": "Theme",
+ "LabelThemeDark": "Dark",
+ "LabelThemeLight": "Light",
"LabelTimeBase": "Base de temps",
"LabelTimeListened": "Temps d’écoute",
"LabelTimeListenedToday": "Nombres d’écoutes Aujourd’hui",
diff --git a/client/strings/gu.json b/client/strings/gu.json
index 436ad88b..b52e765b 100644
--- a/client/strings/gu.json
+++ b/client/strings/gu.json
@@ -103,6 +103,7 @@
"HeaderEmailSettings": "Email Settings",
"HeaderEpisodes": "Episodes",
"HeaderEreaderDevices": "Ereader Devices",
+ "HeaderEreaderSettings": "Ereader Settings",
"HeaderFiles": "Files",
"HeaderFindChapters": "Find Chapters",
"HeaderIgnoredFiles": "Ignored Files",
@@ -154,6 +155,7 @@
"HeaderStatsRecentSessions": "Recent Sessions",
"HeaderStatsTop10Authors": "Top 10 Authors",
"HeaderStatsTop5Genres": "Top 5 Genres",
+ "HeaderTableOfContents": "Table of Contents",
"HeaderTools": "Tools",
"HeaderUpdateAccount": "Update Account",
"HeaderUpdateAuthor": "Update Author",
@@ -221,6 +223,7 @@
"LabelDiscFromFilename": "Disc from Filename",
"LabelDiscFromMetadata": "Disc from Metadata",
"LabelDownload": "Download",
+ "LabelDownloadNEpisodes": "Download {0} episodes",
"LabelDuration": "Duration",
"LabelDurationFound": "Duration found:",
"LabelEbook": "Ebook",
@@ -249,6 +252,7 @@
"LabelFinished": "Finished",
"LabelFolder": "Folder",
"LabelFolders": "Folders",
+ "LabelFontScale": "Font scale",
"LabelFormat": "Format",
"LabelGenre": "Genre",
"LabelGenres": "Genres",
@@ -280,12 +284,16 @@
"LabelLastSeen": "Last Seen",
"LabelLastTime": "Last Time",
"LabelLastUpdate": "Last Update",
+ "LabelLayout": "Layout",
+ "LabelLayoutSinglePage": "Single page",
+ "LabelLayoutSplitPage": "Split page",
"LabelLess": "Less",
"LabelLibrariesAccessibleToUser": "Libraries Accessible to User",
"LabelLibrary": "Library",
"LabelLibraryItem": "Library Item",
"LabelLibraryName": "Library Name",
"LabelLimit": "Limit",
+ "LabelLineSpacing": "Line spacing",
"LabelListenAgain": "Listen Again",
"LabelLogLevelDebug": "Debug",
"LabelLogLevelInfo": "Info",
@@ -310,6 +318,7 @@
"LabelNewPassword": "New Password",
"LabelNextBackupDate": "Next backup date",
"LabelNextScheduledRun": "Next scheduled run",
+ "LabelNoEpisodesSelected": "No episodes selected",
"LabelNotes": "Notes",
"LabelNotFinished": "Not Finished",
"LabelNotificationAppriseURL": "Apprise URL(s)",
@@ -369,6 +378,8 @@
"LabelSearchTitle": "Search Title",
"LabelSearchTitleOrASIN": "Search Title or ASIN",
"LabelSeason": "Season",
+ "LabelSelectAllEpisodes": "Select all episodes",
+ "LabelSelectEpisodesShowing": "Select {0} episodes showing",
"LabelSendEbookToDevice": "Send Ebook to...",
"LabelSequence": "Sequence",
"LabelSeries": "Series",
@@ -388,6 +399,8 @@
"LabelSettingsExperimentalFeaturesHelp": "Features in development that could use your feedback and help testing. Click to open github discussion.",
"LabelSettingsFindCovers": "Find covers",
"LabelSettingsFindCoversHelp": "If your audiobook does not have an embedded cover or a cover image inside the folder, the scanner will attempt to find a cover.
Note: This will extend scan time",
+ "LabelSettingsHideSingleBookSeries": "Hide single book series",
+ "LabelSettingsHideSingleBookSeriesHelp": "Series that have a single book will be hidden from the series page and home page shelves.",
"LabelSettingsHomePageBookshelfView": "Home page use bookshelf view",
"LabelSettingsLibraryBookshelfView": "Library use bookshelf view",
"LabelSettingsOverdriveMediaMarkers": "Use Overdrive Media Markers for chapters",
@@ -440,6 +453,9 @@
"LabelTagsAccessibleToUser": "Tags Accessible to User",
"LabelTagsNotAccessibleToUser": "Tags not Accessible to User",
"LabelTasks": "Tasks Running",
+ "LabelTheme": "Theme",
+ "LabelThemeDark": "Dark",
+ "LabelThemeLight": "Light",
"LabelTimeBase": "Time Base",
"LabelTimeListened": "Time Listened",
"LabelTimeListenedToday": "Time Listened Today",
diff --git a/client/strings/hi.json b/client/strings/hi.json
index bef491d4..652f1f74 100644
--- a/client/strings/hi.json
+++ b/client/strings/hi.json
@@ -103,6 +103,7 @@
"HeaderEmailSettings": "Email Settings",
"HeaderEpisodes": "Episodes",
"HeaderEreaderDevices": "Ereader Devices",
+ "HeaderEreaderSettings": "Ereader Settings",
"HeaderFiles": "Files",
"HeaderFindChapters": "Find Chapters",
"HeaderIgnoredFiles": "Ignored Files",
@@ -154,6 +155,7 @@
"HeaderStatsRecentSessions": "Recent Sessions",
"HeaderStatsTop10Authors": "Top 10 Authors",
"HeaderStatsTop5Genres": "Top 5 Genres",
+ "HeaderTableOfContents": "Table of Contents",
"HeaderTools": "Tools",
"HeaderUpdateAccount": "Update Account",
"HeaderUpdateAuthor": "Update Author",
@@ -221,6 +223,7 @@
"LabelDiscFromFilename": "Disc from Filename",
"LabelDiscFromMetadata": "Disc from Metadata",
"LabelDownload": "Download",
+ "LabelDownloadNEpisodes": "Download {0} episodes",
"LabelDuration": "Duration",
"LabelDurationFound": "Duration found:",
"LabelEbook": "Ebook",
@@ -249,6 +252,7 @@
"LabelFinished": "Finished",
"LabelFolder": "Folder",
"LabelFolders": "Folders",
+ "LabelFontScale": "Font scale",
"LabelFormat": "Format",
"LabelGenre": "Genre",
"LabelGenres": "Genres",
@@ -280,12 +284,16 @@
"LabelLastSeen": "Last Seen",
"LabelLastTime": "Last Time",
"LabelLastUpdate": "Last Update",
+ "LabelLayout": "Layout",
+ "LabelLayoutSinglePage": "Single page",
+ "LabelLayoutSplitPage": "Split page",
"LabelLess": "Less",
"LabelLibrariesAccessibleToUser": "Libraries Accessible to User",
"LabelLibrary": "Library",
"LabelLibraryItem": "Library Item",
"LabelLibraryName": "Library Name",
"LabelLimit": "Limit",
+ "LabelLineSpacing": "Line spacing",
"LabelListenAgain": "Listen Again",
"LabelLogLevelDebug": "Debug",
"LabelLogLevelInfo": "Info",
@@ -310,6 +318,7 @@
"LabelNewPassword": "New Password",
"LabelNextBackupDate": "Next backup date",
"LabelNextScheduledRun": "Next scheduled run",
+ "LabelNoEpisodesSelected": "No episodes selected",
"LabelNotes": "Notes",
"LabelNotFinished": "Not Finished",
"LabelNotificationAppriseURL": "Apprise URL(s)",
@@ -369,6 +378,8 @@
"LabelSearchTitle": "Search Title",
"LabelSearchTitleOrASIN": "Search Title or ASIN",
"LabelSeason": "Season",
+ "LabelSelectAllEpisodes": "Select all episodes",
+ "LabelSelectEpisodesShowing": "Select {0} episodes showing",
"LabelSendEbookToDevice": "Send Ebook to...",
"LabelSequence": "Sequence",
"LabelSeries": "Series",
@@ -388,6 +399,8 @@
"LabelSettingsExperimentalFeaturesHelp": "Features in development that could use your feedback and help testing. Click to open github discussion.",
"LabelSettingsFindCovers": "Find covers",
"LabelSettingsFindCoversHelp": "If your audiobook does not have an embedded cover or a cover image inside the folder, the scanner will attempt to find a cover.
Note: This will extend scan time",
+ "LabelSettingsHideSingleBookSeries": "Hide single book series",
+ "LabelSettingsHideSingleBookSeriesHelp": "Series that have a single book will be hidden from the series page and home page shelves.",
"LabelSettingsHomePageBookshelfView": "Home page use bookshelf view",
"LabelSettingsLibraryBookshelfView": "Library use bookshelf view",
"LabelSettingsOverdriveMediaMarkers": "Use Overdrive Media Markers for chapters",
@@ -440,6 +453,9 @@
"LabelTagsAccessibleToUser": "Tags Accessible to User",
"LabelTagsNotAccessibleToUser": "Tags not Accessible to User",
"LabelTasks": "Tasks Running",
+ "LabelTheme": "Theme",
+ "LabelThemeDark": "Dark",
+ "LabelThemeLight": "Light",
"LabelTimeBase": "Time Base",
"LabelTimeListened": "Time Listened",
"LabelTimeListenedToday": "Time Listened Today",
diff --git a/client/strings/hr.json b/client/strings/hr.json
index 5b80c8d0..b7ace807 100644
--- a/client/strings/hr.json
+++ b/client/strings/hr.json
@@ -103,6 +103,7 @@
"HeaderEmailSettings": "Email Settings",
"HeaderEpisodes": "Epizode",
"HeaderEreaderDevices": "Ereader Devices",
+ "HeaderEreaderSettings": "Ereader Settings",
"HeaderFiles": "Datoteke",
"HeaderFindChapters": "Pronađi poglavlja",
"HeaderIgnoredFiles": "Zanemarene datoteke",
@@ -154,6 +155,7 @@
"HeaderStatsRecentSessions": "Nedavne sesije",
"HeaderStatsTop10Authors": "Top 10 autora",
"HeaderStatsTop5Genres": "Top 5 žanrova",
+ "HeaderTableOfContents": "Table of Contents",
"HeaderTools": "Alati",
"HeaderUpdateAccount": "Aktualiziraj Korisnički račun",
"HeaderUpdateAuthor": "Aktualiziraj autora",
@@ -221,6 +223,7 @@
"LabelDiscFromFilename": "CD iz imena datoteke",
"LabelDiscFromMetadata": "CD iz metapodataka",
"LabelDownload": "Preuzmi",
+ "LabelDownloadNEpisodes": "Download {0} episodes",
"LabelDuration": "Trajanje",
"LabelDurationFound": "Pronađeno trajanje:",
"LabelEbook": "Ebook",
@@ -249,6 +252,7 @@
"LabelFinished": "Finished",
"LabelFolder": "Folder",
"LabelFolders": "Folderi",
+ "LabelFontScale": "Font scale",
"LabelFormat": "Format",
"LabelGenre": "Genre",
"LabelGenres": "Žanrovi",
@@ -280,12 +284,16 @@
"LabelLastSeen": "Zadnje pogledano",
"LabelLastTime": "Prošli put",
"LabelLastUpdate": "Zadnja aktualizacija",
+ "LabelLayout": "Layout",
+ "LabelLayoutSinglePage": "Single page",
+ "LabelLayoutSplitPage": "Split page",
"LabelLess": "Manje",
"LabelLibrariesAccessibleToUser": "Biblioteke pristupačne korisniku",
"LabelLibrary": "Biblioteka",
"LabelLibraryItem": "Stavka biblioteke",
"LabelLibraryName": "Ime biblioteke",
"LabelLimit": "Limit",
+ "LabelLineSpacing": "Line spacing",
"LabelListenAgain": "Slušaj ponovno",
"LabelLogLevelDebug": "Debug",
"LabelLogLevelInfo": "Info",
@@ -310,6 +318,7 @@
"LabelNewPassword": "Nova lozinka",
"LabelNextBackupDate": "Next backup date",
"LabelNextScheduledRun": "Next scheduled run",
+ "LabelNoEpisodesSelected": "No episodes selected",
"LabelNotes": "Bilješke",
"LabelNotFinished": "Nedovršeno",
"LabelNotificationAppriseURL": "Apprise URL(s)",
@@ -369,6 +378,8 @@
"LabelSearchTitle": "Traži naslov",
"LabelSearchTitleOrASIN": "Traži naslov ili ASIN",
"LabelSeason": "Sezona",
+ "LabelSelectAllEpisodes": "Select all episodes",
+ "LabelSelectEpisodesShowing": "Select {0} episodes showing",
"LabelSendEbookToDevice": "Send Ebook to...",
"LabelSequence": "Sekvenca",
"LabelSeries": "Serije",
@@ -388,6 +399,8 @@
"LabelSettingsExperimentalFeaturesHelp": "Features u razvoju trebaju vaš feedback i pomoć pri testiranju. Klikni da odeš to Github discussionsa.",
"LabelSettingsFindCovers": "Pronađi covers",
"LabelSettingsFindCoversHelp": "Ako audiobook nema embedani cover or a cover sliku unutar foldera, skener će probati pronaći cover.
Bilješka: Ovo će produžiti trjanje skeniranja",
+ "LabelSettingsHideSingleBookSeries": "Hide single book series",
+ "LabelSettingsHideSingleBookSeriesHelp": "Series that have a single book will be hidden from the series page and home page shelves.",
"LabelSettingsHomePageBookshelfView": "Koristi bookshelf pogled za početnu stranicu",
"LabelSettingsLibraryBookshelfView": "Koristi bookshelf pogled za biblioteku",
"LabelSettingsOverdriveMediaMarkers": "Koristi Overdrive Media Markers za poglavlja",
@@ -440,6 +453,9 @@
"LabelTagsAccessibleToUser": "Tags dostupni korisniku",
"LabelTagsNotAccessibleToUser": "Tags not Accessible to User",
"LabelTasks": "Tasks Running",
+ "LabelTheme": "Theme",
+ "LabelThemeDark": "Dark",
+ "LabelThemeLight": "Light",
"LabelTimeBase": "Time Base",
"LabelTimeListened": "Vremena odslušano",
"LabelTimeListenedToday": "Vremena odslušano danas",
diff --git a/client/strings/it.json b/client/strings/it.json
index b6043575..339a65e8 100644
--- a/client/strings/it.json
+++ b/client/strings/it.json
@@ -103,6 +103,7 @@
"HeaderEmailSettings": "Email Settings",
"HeaderEpisodes": "Episodi",
"HeaderEreaderDevices": "Ereader Devices",
+ "HeaderEreaderSettings": "Ereader Settings",
"HeaderFiles": "File",
"HeaderFindChapters": "Trova Capitoli",
"HeaderIgnoredFiles": "File Ignorati",
@@ -154,6 +155,7 @@
"HeaderStatsRecentSessions": "Sessioni Recenti",
"HeaderStatsTop10Authors": "Top 10 Autori",
"HeaderStatsTop5Genres": "Top 5 Generi",
+ "HeaderTableOfContents": "Table of Contents",
"HeaderTools": "Strumenti",
"HeaderUpdateAccount": "Aggiorna Account",
"HeaderUpdateAuthor": "Aggiorna Autore",
@@ -221,6 +223,7 @@
"LabelDiscFromFilename": "Disco dal nome file",
"LabelDiscFromMetadata": "Disco dal Metadata",
"LabelDownload": "Download",
+ "LabelDownloadNEpisodes": "Download {0} episodes",
"LabelDuration": "Durata",
"LabelDurationFound": "Durata Trovata:",
"LabelEbook": "Ebook",
@@ -249,6 +252,7 @@
"LabelFinished": "Finita",
"LabelFolder": "Cartella",
"LabelFolders": "Cartelle",
+ "LabelFontScale": "Font scale",
"LabelFormat": "Format",
"LabelGenre": "Genere",
"LabelGenres": "Generi",
@@ -280,12 +284,16 @@
"LabelLastSeen": "Ultimi Visti",
"LabelLastTime": "Ultima Volta",
"LabelLastUpdate": "Ultimo Aggiornamento",
+ "LabelLayout": "Layout",
+ "LabelLayoutSinglePage": "Single page",
+ "LabelLayoutSplitPage": "Split page",
"LabelLess": "Poco",
"LabelLibrariesAccessibleToUser": "Librerie Accessibili agli Utenti",
"LabelLibrary": "Libreria",
"LabelLibraryItem": "Elementi della Library",
"LabelLibraryName": "Nome Libreria",
"LabelLimit": "Limiti",
+ "LabelLineSpacing": "Line spacing",
"LabelListenAgain": "Ri-ascolta",
"LabelLogLevelDebug": "Debug",
"LabelLogLevelInfo": "Info",
@@ -310,6 +318,7 @@
"LabelNewPassword": "Nuova Password",
"LabelNextBackupDate": "Data Prossimo Backup",
"LabelNextScheduledRun": "Data prossima esecuzione schedulata",
+ "LabelNoEpisodesSelected": "No episodes selected",
"LabelNotes": "Note",
"LabelNotFinished": "Da Completare",
"LabelNotificationAppriseURL": "Apprendi URL(s)",
@@ -369,6 +378,8 @@
"LabelSearchTitle": "Cerca Titolo",
"LabelSearchTitleOrASIN": "Cerca titolo o ASIN",
"LabelSeason": "Stagione",
+ "LabelSelectAllEpisodes": "Select all episodes",
+ "LabelSelectEpisodesShowing": "Select {0} episodes showing",
"LabelSendEbookToDevice": "Send Ebook to...",
"LabelSequence": "Sequenza",
"LabelSeries": "Serie",
@@ -388,6 +399,8 @@
"LabelSettingsExperimentalFeaturesHelp": "Funzionalità in fase di sviluppo che potrebbero utilizzare i tuoi feedback e aiutare i test. Fare clic per aprire la discussione github.",
"LabelSettingsFindCovers": "Trova covers",
"LabelSettingsFindCoversHelp": "Se il tuo audiolibro non ha una copertina incorporata o un'immagine di copertina all'interno della cartella, questa funzione tenterà di trovare una copertina.
Nota: aumenta il tempo di scansione",
+ "LabelSettingsHideSingleBookSeries": "Hide single book series",
+ "LabelSettingsHideSingleBookSeriesHelp": "Series that have a single book will be hidden from the series page and home page shelves.",
"LabelSettingsHomePageBookshelfView": "Home page con sfondo legno",
"LabelSettingsLibraryBookshelfView": "Libreria con sfondo legno",
"LabelSettingsOverdriveMediaMarkers": "Usa Overdrive Media Markers per i capitoli",
@@ -440,6 +453,9 @@
"LabelTagsAccessibleToUser": "Tags permessi agli Utenti",
"LabelTagsNotAccessibleToUser": "Tags not Accessible to User",
"LabelTasks": "Processi in esecuzione",
+ "LabelTheme": "Theme",
+ "LabelThemeDark": "Dark",
+ "LabelThemeLight": "Light",
"LabelTimeBase": "Time Base",
"LabelTimeListened": "Tempo di Ascolto",
"LabelTimeListenedToday": "Tempo di Ascolto Oggi",
diff --git a/client/strings/nl.json b/client/strings/nl.json
index 3ae10458..1763830b 100644
--- a/client/strings/nl.json
+++ b/client/strings/nl.json
@@ -103,6 +103,7 @@
"HeaderEmailSettings": "Email Settings",
"HeaderEpisodes": "Afleveringen",
"HeaderEreaderDevices": "Ereader Devices",
+ "HeaderEreaderSettings": "Ereader Settings",
"HeaderFiles": "Bestanden",
"HeaderFindChapters": "Zoek hoofdstukken",
"HeaderIgnoredFiles": "Genegeerde bestanden",
@@ -154,6 +155,7 @@
"HeaderStatsRecentSessions": "Recente sessies",
"HeaderStatsTop10Authors": "Top 10 auteurs",
"HeaderStatsTop5Genres": "Top 5 genres",
+ "HeaderTableOfContents": "Table of Contents",
"HeaderTools": "Tools",
"HeaderUpdateAccount": "Account bijwerken",
"HeaderUpdateAuthor": "Auteur bijwerken",
@@ -221,6 +223,7 @@
"LabelDiscFromFilename": "Schijf uit bestandsnaam",
"LabelDiscFromMetadata": "Schijf uit metadata",
"LabelDownload": "Download",
+ "LabelDownloadNEpisodes": "Download {0} episodes",
"LabelDuration": "Duur",
"LabelDurationFound": "Gevonden duur:",
"LabelEbook": "Ebook",
@@ -249,6 +252,7 @@
"LabelFinished": "Voltooid",
"LabelFolder": "Map",
"LabelFolders": "Mappen",
+ "LabelFontScale": "Font scale",
"LabelFormat": "Format",
"LabelGenre": "Genre",
"LabelGenres": "Genres",
@@ -280,12 +284,16 @@
"LabelLastSeen": "Laatst gezien",
"LabelLastTime": "Laatste keer",
"LabelLastUpdate": "Laatste update",
+ "LabelLayout": "Layout",
+ "LabelLayoutSinglePage": "Single page",
+ "LabelLayoutSplitPage": "Split page",
"LabelLess": "Minder",
"LabelLibrariesAccessibleToUser": "Voor gebruiker toegankelijke bibliotheken",
"LabelLibrary": "Bibliotheek",
"LabelLibraryItem": "Library Item",
"LabelLibraryName": "Library Name",
"LabelLimit": "Limiet",
+ "LabelLineSpacing": "Line spacing",
"LabelListenAgain": "Luister opnieuw",
"LabelLogLevelDebug": "Debug",
"LabelLogLevelInfo": "Info",
@@ -310,6 +318,7 @@
"LabelNewPassword": "Nieuw wachtwoord",
"LabelNextBackupDate": "Volgende back-up datum",
"LabelNextScheduledRun": "Volgende geplande run",
+ "LabelNoEpisodesSelected": "No episodes selected",
"LabelNotes": "Notities",
"LabelNotFinished": "Niet Voltooid",
"LabelNotificationAppriseURL": "Apprise URL(s)",
@@ -369,6 +378,8 @@
"LabelSearchTitle": "Zoek titel",
"LabelSearchTitleOrASIN": "Zoek titel of ASIN",
"LabelSeason": "Seizoen",
+ "LabelSelectAllEpisodes": "Select all episodes",
+ "LabelSelectEpisodesShowing": "Select {0} episodes showing",
"LabelSendEbookToDevice": "Send Ebook to...",
"LabelSequence": "Sequentie",
"LabelSeries": "Serie",
@@ -388,6 +399,8 @@
"LabelSettingsExperimentalFeaturesHelp": "Functies in ontwikkeling die je feedback en testing kunnen gebruiken. Klik om de Github-discussie te openen.",
"LabelSettingsFindCovers": "Zoek covers",
"LabelSettingsFindCoversHelp": "Als je audioboek geen ingesloten cover of cover in de map heeft, zal de scanner proberen een cover te vinden.
Opmerking: Dit zal de scan-duur verlengen",
+ "LabelSettingsHideSingleBookSeries": "Hide single book series",
+ "LabelSettingsHideSingleBookSeriesHelp": "Series that have a single book will be hidden from the series page and home page shelves.",
"LabelSettingsHomePageBookshelfView": "Boekenplank-view voor homepagina",
"LabelSettingsLibraryBookshelfView": "Boekenplank-view voor bibliotheek",
"LabelSettingsOverdriveMediaMarkers": "Gebruik Overdrive media markers voor hoofdstukken",
@@ -440,6 +453,9 @@
"LabelTagsAccessibleToUser": "Tags toegankelijk voor de gebruiker",
"LabelTagsNotAccessibleToUser": "Tags niet toegankelijk voor de gebruiker",
"LabelTasks": "Lopende taken",
+ "LabelTheme": "Theme",
+ "LabelThemeDark": "Dark",
+ "LabelThemeLight": "Light",
"LabelTimeBase": "Tijdsbasis",
"LabelTimeListened": "Tijd geluisterd",
"LabelTimeListenedToday": "Tijd geluisterd vandaag",
diff --git a/client/strings/pl.json b/client/strings/pl.json
index 854c74e9..c83300ee 100644
--- a/client/strings/pl.json
+++ b/client/strings/pl.json
@@ -103,6 +103,7 @@
"HeaderEmailSettings": "Email Settings",
"HeaderEpisodes": "Rozdziały",
"HeaderEreaderDevices": "Ereader Devices",
+ "HeaderEreaderSettings": "Ereader Settings",
"HeaderFiles": "Pliki",
"HeaderFindChapters": "Wyszukaj rozdziały",
"HeaderIgnoredFiles": "Zignoruj pliki",
@@ -154,6 +155,7 @@
"HeaderStatsRecentSessions": "Ostatnie sesje",
"HeaderStatsTop10Authors": "Top 10 Autorów",
"HeaderStatsTop5Genres": "Top 5 Gatunków",
+ "HeaderTableOfContents": "Table of Contents",
"HeaderTools": "Narzędzia",
"HeaderUpdateAccount": "Zaktualizuj konto",
"HeaderUpdateAuthor": "Zaktualizuj autorów",
@@ -221,6 +223,7 @@
"LabelDiscFromFilename": "Oznaczenie dysku z nazwy pliku",
"LabelDiscFromMetadata": "Oznaczenie dysku z metadanych",
"LabelDownload": "Pobierz",
+ "LabelDownloadNEpisodes": "Download {0} episodes",
"LabelDuration": "Czas trwania",
"LabelDurationFound": "Znaleziona długość:",
"LabelEbook": "Ebook",
@@ -249,6 +252,7 @@
"LabelFinished": "Zakończone",
"LabelFolder": "Folder",
"LabelFolders": "Foldery",
+ "LabelFontScale": "Font scale",
"LabelFormat": "Format",
"LabelGenre": "Gatunek",
"LabelGenres": "Gatunki",
@@ -280,12 +284,16 @@
"LabelLastSeen": "Ostatnio widziany",
"LabelLastTime": "Ostatni czas",
"LabelLastUpdate": "Ostatnia aktualizacja",
+ "LabelLayout": "Layout",
+ "LabelLayoutSinglePage": "Single page",
+ "LabelLayoutSplitPage": "Split page",
"LabelLess": "Mniej",
"LabelLibrariesAccessibleToUser": "Biblioteki dostępne dla użytkownika",
"LabelLibrary": "Biblioteka",
"LabelLibraryItem": "Element biblioteki",
"LabelLibraryName": "Nazwa biblioteki",
"LabelLimit": "Limit",
+ "LabelLineSpacing": "Line spacing",
"LabelListenAgain": "Słuchaj ponownie",
"LabelLogLevelDebug": "Debug",
"LabelLogLevelInfo": "Informacja",
@@ -310,6 +318,7 @@
"LabelNewPassword": "Nowe hasło",
"LabelNextBackupDate": "Next backup date",
"LabelNextScheduledRun": "Next scheduled run",
+ "LabelNoEpisodesSelected": "No episodes selected",
"LabelNotes": "Uwagi",
"LabelNotFinished": "Nieukończone",
"LabelNotificationAppriseURL": "URLe Apprise",
@@ -369,6 +378,8 @@
"LabelSearchTitle": "Wyszukaj tytuł",
"LabelSearchTitleOrASIN": "Szukaj tytuł lub ASIN",
"LabelSeason": "Sezon",
+ "LabelSelectAllEpisodes": "Select all episodes",
+ "LabelSelectEpisodesShowing": "Select {0} episodes showing",
"LabelSendEbookToDevice": "Send Ebook to...",
"LabelSequence": "Kolejność",
"LabelSeries": "Serie",
@@ -388,6 +399,8 @@
"LabelSettingsExperimentalFeaturesHelp": "Funkcje w trakcie rozwoju, które mogą zyskanć na Twojej opinii i pomocy w testowaniu. Kliknij, aby otworzyć dyskusję na githubie.",
"LabelSettingsFindCovers": "Szukanie okładek",
"LabelSettingsFindCoversHelp": "Jeśli audiobook nie posiada zintegrowanej okładki albo w folderze nie zostanie znaleziony plik okładki, skaner podejmie próbę pobrania okładki z sieci.
Uwaga: może to wydłuzyć proces skanowania",
+ "LabelSettingsHideSingleBookSeries": "Hide single book series",
+ "LabelSettingsHideSingleBookSeriesHelp": "Series that have a single book will be hidden from the series page and home page shelves.",
"LabelSettingsHomePageBookshelfView": "Widok półki z książkami na stronie głównej",
"LabelSettingsLibraryBookshelfView": "Widok półki z książkami na stronie biblioteki",
"LabelSettingsOverdriveMediaMarkers": "Użyj markerów Overdrive Media Markers dla rozdziałów",
@@ -440,6 +453,9 @@
"LabelTagsAccessibleToUser": "Tagi dostępne dla użytkownika",
"LabelTagsNotAccessibleToUser": "Tags not Accessible to User",
"LabelTasks": "Tasks Running",
+ "LabelTheme": "Theme",
+ "LabelThemeDark": "Dark",
+ "LabelThemeLight": "Light",
"LabelTimeBase": "Time Base",
"LabelTimeListened": "Czas odtwarzania",
"LabelTimeListenedToday": "Czas odtwarzania dzisiaj",
diff --git a/client/strings/ru.json b/client/strings/ru.json
index 33c46cd2..a852a42e 100644
--- a/client/strings/ru.json
+++ b/client/strings/ru.json
@@ -103,6 +103,7 @@
"HeaderEmailSettings": "Настройки Email",
"HeaderEpisodes": "Эпизоды",
"HeaderEreaderDevices": "Устройства E-книга",
+ "HeaderEreaderSettings": "Ereader Settings",
"HeaderFiles": "Файлы",
"HeaderFindChapters": "Найти главы",
"HeaderIgnoredFiles": "Игнорируемые Файлы",
@@ -154,6 +155,7 @@
"HeaderStatsRecentSessions": "Последние сеансы",
"HeaderStatsTop10Authors": "Топ 10 авторов",
"HeaderStatsTop5Genres": "Топ 5 жанров",
+ "HeaderTableOfContents": "Table of Contents",
"HeaderTools": "Инструменты",
"HeaderUpdateAccount": "Обновить учетную запись",
"HeaderUpdateAuthor": "Обновить автора",
@@ -221,6 +223,7 @@
"LabelDiscFromFilename": "Диск из Имени файла",
"LabelDiscFromMetadata": "Диск из Метаданных",
"LabelDownload": "Скачать",
+ "LabelDownloadNEpisodes": "Download {0} episodes",
"LabelDuration": "Длина",
"LabelDurationFound": "Найденная длина:",
"LabelEbook": "E-книга",
@@ -249,6 +252,7 @@
"LabelFinished": "Закончен",
"LabelFolder": "Папка",
"LabelFolders": "Папки",
+ "LabelFontScale": "Font scale",
"LabelFormat": "Формат",
"LabelGenre": "Жанр",
"LabelGenres": "Жанры",
@@ -280,12 +284,16 @@
"LabelLastSeen": "Последнее сканирование",
"LabelLastTime": "Последний по времени",
"LabelLastUpdate": "Последний обновленный",
+ "LabelLayout": "Layout",
+ "LabelLayoutSinglePage": "Single page",
+ "LabelLayoutSplitPage": "Split page",
"LabelLess": "Менее",
"LabelLibrariesAccessibleToUser": "Библиотеки доступные для пользователя",
"LabelLibrary": "Библиотека",
"LabelLibraryItem": "Элемент библиотеки",
"LabelLibraryName": "Имя библиотеки",
"LabelLimit": "Лимит",
+ "LabelLineSpacing": "Line spacing",
"LabelListenAgain": "Послушать снова",
"LabelLogLevelDebug": "Debug",
"LabelLogLevelInfo": "Info",
@@ -310,6 +318,7 @@
"LabelNewPassword": "Новый пароль",
"LabelNextBackupDate": "Следующая дата бэкапирования",
"LabelNextScheduledRun": "Следущий запланированный запуск",
+ "LabelNoEpisodesSelected": "No episodes selected",
"LabelNotes": "Заметки",
"LabelNotFinished": "Не завершено",
"LabelNotificationAppriseURL": "URL(ы) для извещений",
@@ -369,6 +378,8 @@
"LabelSearchTitle": "Поиск по названию",
"LabelSearchTitleOrASIN": "Поиск по названию или ASIN",
"LabelSeason": "Сезон",
+ "LabelSelectAllEpisodes": "Select all episodes",
+ "LabelSelectEpisodesShowing": "Select {0} episodes showing",
"LabelSendEbookToDevice": "Отправить e-книгу в...",
"LabelSequence": "Последовательность",
"LabelSeries": "Серия",
@@ -388,6 +399,8 @@
"LabelSettingsExperimentalFeaturesHelp": "Функционал в разработке на который Вы могли бы дать отзыв или помочь в тестировании. Нажмите для открытия обсуждения на github.",
"LabelSettingsFindCovers": "Найти обложки",
"LabelSettingsFindCoversHelp": "Если у Ваших аудиокниг нет встроенной обложки или файла обложки в папке книги, то сканер попробует найти обложку.
Примечание: Это увеличит время сканирования",
+ "LabelSettingsHideSingleBookSeries": "Hide single book series",
+ "LabelSettingsHideSingleBookSeriesHelp": "Series that have a single book will be hidden from the series page and home page shelves.",
"LabelSettingsHomePageBookshelfView": "Вид книжной полки на Домашней странице",
"LabelSettingsLibraryBookshelfView": "Вид книжной полки в Библиотеке",
"LabelSettingsOverdriveMediaMarkers": "Overdrive Media Markers для глав",
@@ -440,6 +453,9 @@
"LabelTagsAccessibleToUser": "Теги доступные для пользователя",
"LabelTagsNotAccessibleToUser": "Теги не доступные для пользователя",
"LabelTasks": "Запущенные задачи",
+ "LabelTheme": "Theme",
+ "LabelThemeDark": "Dark",
+ "LabelThemeLight": "Light",
"LabelTimeBase": "Временная база",
"LabelTimeListened": "Время прослушивания",
"LabelTimeListenedToday": "Время прослушивания сегодня",
diff --git a/client/strings/zh-cn.json b/client/strings/zh-cn.json
index cf36ef9a..660c7de1 100644
--- a/client/strings/zh-cn.json
+++ b/client/strings/zh-cn.json
@@ -223,6 +223,7 @@
"LabelDiscFromFilename": "从文件名获取光盘",
"LabelDiscFromMetadata": "从元数据获取光盘",
"LabelDownload": "下载",
+ "LabelDownloadNEpisodes": "Download {0} episodes",
"LabelDuration": "持续时间",
"LabelDurationFound": "找到持续时间:",
"LabelEbook": "电子书",
@@ -317,6 +318,7 @@
"LabelNewPassword": "新密码",
"LabelNextBackupDate": "下次备份日期",
"LabelNextScheduledRun": "下次任务运行",
+ "LabelNoEpisodesSelected": "No episodes selected",
"LabelNotes": "注释",
"LabelNotFinished": "未听完",
"LabelNotificationAppriseURL": "通知 URL(s)",
@@ -376,6 +378,8 @@
"LabelSearchTitle": "搜索标题",
"LabelSearchTitleOrASIN": "搜索标题或 ASIN",
"LabelSeason": "季",
+ "LabelSelectAllEpisodes": "Select all episodes",
+ "LabelSelectEpisodesShowing": "Select {0} episodes showing",
"LabelSendEbookToDevice": "发送电子书到...",
"LabelSequence": "序列",
"LabelSeries": "系列",
@@ -395,6 +399,8 @@
"LabelSettingsExperimentalFeaturesHelp": "开发中的功能需要你的反馈并帮助测试. 点击打开 github 讨论.",
"LabelSettingsFindCovers": "查找封面",
"LabelSettingsFindCoversHelp": "如果你的有声读物在文件夹中没有嵌入封面或封面图像, 扫描将尝试查找封面.
注意: 这将延长扫描时间",
+ "LabelSettingsHideSingleBookSeries": "Hide single book series",
+ "LabelSettingsHideSingleBookSeriesHelp": "Series that have a single book will be hidden from the series page and home page shelves.",
"LabelSettingsHomePageBookshelfView": "首页使用书架视图",
"LabelSettingsLibraryBookshelfView": "媒体库使用书架视图",
"LabelSettingsOverdriveMediaMarkers": "对章节使用 Overdrive 媒体标记",