diff --git a/client/strings/es.json b/client/strings/es.json
index a7000640..53bfad69 100644
--- a/client/strings/es.json
+++ b/client/strings/es.json
@@ -1,5 +1,6 @@
{
"ButtonAdd": "Añadir",
+ "ButtonAddApiKey": "Añadir clave API",
"ButtonAddChapters": "Añadir capítulos",
"ButtonAddDevice": "Añadir dispositivo",
"ButtonAddLibrary": "Añadir biblioteca",
@@ -20,6 +21,7 @@
"ButtonChooseAFolder": "Elegir una carpeta",
"ButtonChooseFiles": "Elegir archivos",
"ButtonClearFilter": "Quitar filtros",
+ "ButtonClose": "Cerrar",
"ButtonCloseFeed": "Cerrar suministro",
"ButtonCloseSession": "Cerrar la sesión abierta",
"ButtonCollections": "Colecciones",
@@ -119,6 +121,7 @@
"HeaderAccount": "Cuenta",
"HeaderAddCustomMetadataProvider": "Añadir proveedor de metadatos personalizado",
"HeaderAdvanced": "Avanzado",
+ "HeaderApiKeys": "Claves API",
"HeaderAppriseNotificationSettings": "Configuración de notificaciones de Apprise",
"HeaderAudioTracks": "Pistas de audio",
"HeaderAudiobookTools": "Herramientas de Gestión de Archivos de Audiolibro",
@@ -163,6 +166,7 @@
"HeaderMetadataOrderOfPrecedence": "Orden de precedencia de metadatos",
"HeaderMetadataToEmbed": "Metadatos para Insertar",
"HeaderNewAccount": "Cuenta nueva",
+ "HeaderNewApiKey": "Nueva clave API",
"HeaderNewLibrary": "Biblioteca nueva",
"HeaderNotificationCreate": "Crear notificación",
"HeaderNotificationUpdate": "Notificación de actualización",
@@ -196,6 +200,7 @@
"HeaderSettingsExperimental": "Funcionalidades experimentales",
"HeaderSettingsGeneral": "Generales",
"HeaderSettingsScanner": "Escáner",
+ "HeaderSettingsSecurity": "Seguridad",
"HeaderSettingsWebClient": "Cliente web",
"HeaderSleepTimer": "Temporizador de apagado",
"HeaderStatsLargestItems": "Elementos más grandes",
@@ -207,6 +212,7 @@
"HeaderTableOfContents": "Sumario",
"HeaderTools": "Herramientas",
"HeaderUpdateAccount": "Actualizar cuenta",
+ "HeaderUpdateApiKey": "Actualizar clave API",
"HeaderUpdateAuthor": "Actualizar autor",
"HeaderUpdateDetails": "Actualizar detalles",
"HeaderUpdateLibrary": "Actualizar biblioteca",
diff --git a/client/strings/eu.json b/client/strings/eu.json
new file mode 100644
index 00000000..0967ef42
--- /dev/null
+++ b/client/strings/eu.json
@@ -0,0 +1 @@
+{}
diff --git a/client/strings/hu.json b/client/strings/hu.json
index 8f8836ad..fc7fa8b7 100644
--- a/client/strings/hu.json
+++ b/client/strings/hu.json
@@ -812,6 +812,8 @@
"MessageFeedURLWillBe": "A hírcsatorna URL-je {0} lesz",
"MessageFetching": "Lekérdezé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.",
+ "MessageHeatmapListeningTimeTooltip": "{0} hallgatja ezen {1}",
+ "MessageHeatmapNoListeningSessions": "Nincs hallgatás folyamatban ezen: {0}",
"MessageImportantNotice": "Fontos közlemény!",
"MessageInsertChapterBelow": "Fejezet beszúrása alulra",
"MessageInvalidAsin": "Érvénytelen ASIN",
@@ -1094,6 +1096,7 @@
"ToastPlaylistUpdateSuccess": "Lejátszási lista frissítve",
"ToastPodcastCreateFailed": "Podcast létrehozása sikertelen",
"ToastPodcastCreateSuccess": "A podcast sikeresen létrehozva",
+ "ToastPodcastEpisodeUpdated": "Epizód frissítve",
"ToastPodcastGetFeedFailed": "Nem sikerült podcast feedet kapni",
"ToastPodcastNoEpisodesInFeed": "Nincsenek epizódok az RSS hírcsatornában",
"ToastPodcastNoRssFeed": "A podcastnak nincs RSS-hírcsatornája",
diff --git a/client/strings/it.json b/client/strings/it.json
index 04ef0ce4..a032a3c9 100644
--- a/client/strings/it.json
+++ b/client/strings/it.json
@@ -127,6 +127,7 @@
"HeaderAudiobookTools": "Strumenti di gestione file audiolibri",
"HeaderAuthentication": "Authenticazione",
"HeaderBackups": "Backup",
+ "HeaderBulkChapterModal": "Aggiungere più capitoli",
"HeaderChangePassword": "Cambia la password",
"HeaderChapters": "Capitoli",
"HeaderChooseAFolder": "Seleziona la cartella",
@@ -211,7 +212,7 @@
"HeaderTableOfContents": "Indice",
"HeaderTools": "Strumenti",
"HeaderUpdateAccount": "Aggiorna Account",
- "HeaderUpdateApiKey": "Aggiornamento API chiave",
+ "HeaderUpdateApiKey": "Aggiornamento chiave API",
"HeaderUpdateAuthor": "Aggiorna Autore",
"HeaderUpdateDetails": "Aggiorna Dettagli",
"HeaderUpdateLibrary": "Aggiorna Libreria",
@@ -242,9 +243,9 @@
"LabelAllUsersIncludingGuests": "Tutti gli Utenti Inclusi gli ospiti",
"LabelAlreadyInYourLibrary": "Già esistente nella libreria",
"LabelApiKeyCreated": "API Key \"{0}\" creato con successo.",
- "LabelApiKeyCreatedDescription": "Assicurarsi di copiare la chiave API ora come non sarà in grado di rivedere questo.",
- "LabelApiKeyUser": "Atto per conto dell'utente",
- "LabelApiKeyUserDescription": "Questa chiave API avrà le stesse autorizzazioni dell'utente che agisce per conto di. Questo apparirà lo stesso nei registri come se l'utente stesse facendo la richiesta.",
+ "LabelApiKeyCreatedDescription": "Assicurarsi di copiare la chiave API ora poiché non si potrà rivederla.",
+ "LabelApiKeyUser": "Agisce per conto dell'utente",
+ "LabelApiKeyUserDescription": "Questa chiave API avrà le stesse autorizzazioni dell'utente per conto del quale agisce. Apparirà nei registri come se l'utente stesse facendo la richiesta.",
"LabelApiToken": "API Token",
"LabelAppend": "Appese",
"LabelAudioBitrate": "Audio Bitrate (es. 128k)",
@@ -434,6 +435,7 @@
"LabelLibraryItem": "Elementi della biblioteca",
"LabelLibraryName": "Nome della biblioteca",
"LabelLibrarySortByProgress": "Aggiornamento dei progressi",
+ "LabelLibrarySortByProgressStarted": "Data di inizio",
"LabelLimit": "Limiti",
"LabelLineSpacing": "Interlinea",
"LabelListenAgain": "Ascolta ancora",
@@ -442,6 +444,7 @@
"LabelLogLevelWarn": "Allarme",
"LabelLookForNewEpisodesAfterDate": "Cerca nuovi episodi dopo questa data",
"LabelLowestPriority": "Priorità Minima",
+ "LabelMatchConfidence": "Fiducia",
"LabelMatchExistingUsersBy": "Abbina gli utenti esistenti per",
"LabelMatchExistingUsersByDescription": "Utilizzato per connettere gli utenti esistenti. Una volta connessi, gli utenti verranno abbinati a un ID univoco dal tuo provider SSO",
"LabelMaxEpisodesToDownload": "Max # di episodi da scaricare. Usa 0 per illimitati.",
@@ -471,6 +474,7 @@
"LabelNewestAuthors": "Nuovi autori",
"LabelNewestEpisodes": "Nuovi episodi",
"LabelNextBackupDate": "Data Prossimo Backup",
+ "LabelNextChapters": "I prossimi capitoli saranno:",
"LabelNextScheduledRun": "Data prossima esecuzione schedulata",
"LabelNoApiKeys": "Nessuna chiave API",
"LabelNoCustomMetadataProviders": "Nessun provider di metadati personalizzato",
@@ -488,6 +492,7 @@
"LabelNotificationsMaxQueueSize": "Coda Massima di notifiche eventi",
"LabelNotificationsMaxQueueSizeHelp": "Le notifiche sono limitate per 1 al secondo, per evitare lo spamming le notifiche verrano ignorare se superano la coda.",
"LabelNumberOfBooks": "Numero di libri",
+ "LabelNumberOfChapters": "Numero di capitoli:",
"LabelNumberOfEpisodes": "Numero di episodi",
"LabelOpenIDAdvancedPermsClaimDescription": "Nome dell'attestazione OpenID che contiene autorizzazioni avanzate per le azioni dell'utente all'interno dell'applicazione che verranno applicate ai ruoli non amministratori (se configurato). Se il reclamo manca nella risposta, l'accesso ad ABS verrà negato. Se manca una singola opzione, verrà trattata comefalsa
. Assicurati che l'attestazione del provider di identità corrisponda alla struttura prevista:",
"LabelOpenIDClaims": "Lasciare vuote le seguenti opzioni per disabilitare l'assegnazione avanzata di gruppi e autorizzazioni, assegnando quindi automaticamente il gruppo \"Utente\".",
@@ -728,9 +733,9 @@
"MessageAddToPlayerQueue": "Aggiungi alla coda di riproduzione",
"MessageAppriseDescription": "Per utilizzare questa funzione è necessario disporre di un'istanza di Apprise API in esecuzione o un'API che gestirà quelle stesse richieste.
L'API Url dovrebbe essere il percorso URL completo per inviare la notifica, ad esempio se la tua istanza API è servita cosi .http://192.168.1.1:8337
Allora dovrai mettere http://192.168.1.1:8337/notify
.",
"MessageAsinCheck": "Assicurati di utilizzare l'ASIN della regione Audible corretta, non di Amazon.",
- "MessageAuthenticationLegacyTokenWarning": "I gettoni API legacy verranno rimossi in futuro. Utilizzare API tasti invece.",
+ "MessageAuthenticationLegacyTokenWarning": "I token API legacy verranno rimossi in futuro. Utilizzare piuttosto le chiavi API.",
"MessageAuthenticationOIDCChangesRestart": "Riavvia il tuo server dopo aver salvato per applicare le modifiche OIDC.",
- "MessageAuthenticationSecurityMessage": "L'autenticazione è stata migliorata per la sicurezza. Tutti gli utenti sono tenuti a re-login.",
+ "MessageAuthenticationSecurityMessage": "L'autenticazione è stata migliorata per incrementare la sicurezza. Tutti gli utenti sono tenuti a rieffettuare il login.",
"MessageBackupsDescription": "I backup includono utenti, progressi degli utenti, dettagli sugli elementi della libreria, impostazioni del server e immagini archiviate in /metadata/items
& /metadata/authors
. I backup non includono i file archiviati nelle cartelle della libreria.",
"MessageBackupsLocationEditNote": "Nota: l'aggiornamento della posizione di backup non sposterà o modificherà i backup esistenti",
"MessageBackupsLocationNoEditNote": "Nota: la posizione del backup viene impostata tramite una variabile di ambiente e non può essere modificata qui.",
@@ -744,6 +749,7 @@
"MessageBookshelfNoResultsForFilter": "Nessun risultato per il filtro \"{0}: {1}\"",
"MessageBookshelfNoResultsForQuery": "Nessun risultato per la query",
"MessageBookshelfNoSeries": "Non c'è nessuna Serie",
+ "MessageBulkChapterPattern": "Quanti capitoli vuoi aggiungere con questo motivo di numerazione?",
"MessageChapterEndIsAfter": "La fine del capitolo è dopo la fine del tuo audiolibro",
"MessageChapterErrorFirstNotZero": "Il primo capitolo deve iniziare da 0",
"MessageChapterErrorStartGteDuration": "L'ora di inizio non valida deve essere inferiore alla durata dell'audiolibro",
@@ -806,6 +812,8 @@
"MessageFeedURLWillBe": "l’URL del flusso sarà {0}",
"MessageFetching": "Recupero info…",
"MessageForceReScanDescription": "eseguirà nuovamente la scansione di tutti i file come una nuova scansione. I tag ID3 dei file audio, i file OPF e i file di testo verranno scansionati come nuovi.",
+ "MessageHeatmapListeningTimeTooltip": "{0} in ascolto su {1}",
+ "MessageHeatmapNoListeningSessions": "Nessuna sessione di ascolto su {0}",
"MessageImportantNotice": "Avviso Importante!",
"MessageInsertChapterBelow": "Inserisci capitolo sotto",
"MessageInvalidAsin": "ASIN non Valido",
@@ -945,6 +953,7 @@
"NotificationOnRSSFeedDisabledDescription": "Attivato quando i download automatici degli episodi vengono disabilitati a causa di troppi tentativi falliti",
"NotificationOnRSSFeedFailedDescription": "Attivato quando la richiesta del feed RSS per il download automatico di un episodio fallisce",
"NotificationOnTestDescription": "test il sistema di notifica",
+ "PlaceholderBulkChapterInput": "Inserire il titolo del capitolo o utilizzate la numerazione (es. 'Episodio 1', 'Capitolo 10', '1.')",
"PlaceholderNewCollection": "Nome Nuova Raccolta",
"PlaceholderNewFolderPath": "Nuovo Percorso Cartella",
"PlaceholderNewPlaylist": "Nome nuova playlist",
@@ -998,8 +1007,12 @@
"ToastBookmarkCreateFailed": "Creazione segnalibro fallita",
"ToastBookmarkCreateSuccess": "Segnalibro creato",
"ToastBookmarkRemoveSuccess": "Segnalibro Rimosso",
+ "ToastBulkChapterInvalidCount": "Inserire un numero tra 1 e 150",
"ToastCachePurgeFailed": "Impossibile eliminare la cache",
"ToastCachePurgeSuccess": "Cache eliminata correttamente",
+ "ToastChapterLocked": "Il capitolo è bloccato.",
+ "ToastChapterStartTimeAdjusted": "Tempo di inizio del capitolo modificato di {0} secondi",
+ "ToastChaptersAllLocked": "Tutti i capitoli sono bloccati. Sblocca alcuni capitoli per modificarne i tempi.",
"ToastChaptersHaveErrors": "I capitoli contengono errori",
"ToastChaptersInvalidShiftAmountLast": "Quantità di spostamento non valida. L'orario di inizio dell'ultimo capitolo si estenderebbe oltre la durata di questo audiolibro.",
"ToastChaptersInvalidShiftAmountStart": "Quantità di spostamento non valida. Il primo capitolo avrebbe una lunghezza pari a zero o negativa e verrebbe sovrascritto dal secondo capitolo. Aumentare la durata iniziale del secondo capitolo.",
@@ -1083,6 +1096,7 @@
"ToastPlaylistUpdateSuccess": "Playlist Aggiornata",
"ToastPodcastCreateFailed": "Errore creazione podcast",
"ToastPodcastCreateSuccess": "Podcast creato correttamente",
+ "ToastPodcastEpisodeUpdated": "Episodio aggiornato",
"ToastPodcastGetFeedFailed": "Impossibile ottenere il feed del podcast",
"ToastPodcastNoEpisodesInFeed": "Nessun episodio trovato nel feed RSS",
"ToastPodcastNoRssFeed": "Il podcast non ha un feed RSS",
@@ -1133,5 +1147,13 @@
"ToastUserPasswordChangeSuccess": "Password modificata con successo",
"ToastUserPasswordMismatch": "Le password non corrispondono",
"ToastUserPasswordMustChange": "La nuova password non può corrispondere alla vecchia password",
- "ToastUserRootRequireName": "È necessario immettere un nome utente root"
+ "ToastUserRootRequireName": "È necessario immettere un nome utente root",
+ "TooltipAddChapters": "Aggiungere capitolo/i",
+ "TooltipAddOneSecond": "Aggiungere 1 secondo",
+ "TooltipAdjustChapterStart": "Clicca per modificare il tempo di inizio",
+ "TooltipLockAllChapters": "Bloccare tutti i capitoli",
+ "TooltipLockChapter": "Bloccare capitolo (Shift+click per intervallo)",
+ "TooltipSubtractOneSecond": "Sottrarre 1 secondo",
+ "TooltipUnlockAllChapters": "Sbloccare tutti i capitoli",
+ "TooltipUnlockChapter": "Sbloccare capitolo (Shift+click per intervallo)"
}
diff --git a/client/strings/nl.json b/client/strings/nl.json
index 0dcd660e..708ea7a9 100644
--- a/client/strings/nl.json
+++ b/client/strings/nl.json
@@ -127,6 +127,7 @@
"HeaderAudiobookTools": "Audioboekbestandbeheer tools",
"HeaderAuthentication": "Authenticatie",
"HeaderBackups": "Back-ups",
+ "HeaderBulkChapterModal": "Meerdere hoofdstukken toevoegen",
"HeaderChangePassword": "Wachtwoord wijzigen",
"HeaderChapters": "Hoofdstukken",
"HeaderChooseAFolder": "Map kiezen",
@@ -308,6 +309,7 @@
"LabelDeleteFromFileSystemCheckbox": "Verwijderen uit bestandssysteem (uncheck om alleen uit database te verwijderen)",
"LabelDescription": "Beschrijving",
"LabelDeselectAll": "Deselecteer alle",
+ "LabelDetectedPattern": "Gedetecteerd patroon:",
"LabelDevice": "Apparaat",
"LabelDeviceInfo": "Apparaat info",
"LabelDeviceIsAvailableTo": "Apparaat is beschikbaar voor...",
@@ -376,6 +378,7 @@
"LabelFilterByUser": "Filter op gebruiker",
"LabelFindEpisodes": "Zoek afleveringen",
"LabelFinished": "Voltooid",
+ "LabelFinishedDate": "Voltooid {0}",
"LabelFolder": "Map",
"LabelFolders": "Mappen",
"LabelFontBold": "Vetgedrukt",
@@ -434,6 +437,8 @@
"LabelLibraryItem": "Bibliotheekonderdeel",
"LabelLibraryName": "Bibliotheeknaam",
"LabelLibrarySortByProgress": "Voortuigang geüpdatet",
+ "LabelLibrarySortByProgressFinished": "Datum voltooid",
+ "LabelLibrarySortByProgressStarted": "Datum gestart",
"LabelLimit": "Limiet",
"LabelLineSpacing": "Regelruimte",
"LabelListenAgain": "Opnieuw Beluisteren",
@@ -472,6 +477,7 @@
"LabelNewestAuthors": "Nieuwste Auteurs",
"LabelNewestEpisodes": "Nieuwste Afleveringen",
"LabelNextBackupDate": "Volgende back-up datum",
+ "LabelNextChapters": "Volgende hoofdstukken zijn:",
"LabelNextScheduledRun": "Volgende geplande run",
"LabelNoApiKeys": "Geen API keys",
"LabelNoCustomMetadataProviders": "Geen custom metadata bronnen",
@@ -489,6 +495,7 @@
"LabelNotificationsMaxQueueSize": "Max rijgrootte voor notificatie gebeurtenissen",
"LabelNotificationsMaxQueueSizeHelp": "Gebeurtenissen zijn beperkt tot 1 aftrap per seconde. Gebeurtenissen zullen genegeerd worden als de rij aan de maximale grootte zit. Dit voorkomt notificatie-spamming.",
"LabelNumberOfBooks": "Aantal Boeken",
+ "LabelNumberOfChapters": "Aantal hoofdstukken:",
"LabelNumberOfEpisodes": "# Afleveringen",
"LabelOpenIDAdvancedPermsClaimDescription": "Naam van de OpenID-claim die geavanceerde machtigingen bevat voor gebruikersacties binnen de applicatie die van toepassing zijn op niet-beheerdersrollen (indien geconfigureerd). Als de claim ontbreekt in het antwoord, wordt toegang tot ABS geweigerd. Als er één optie ontbreekt, wordt deze behandeld als false
. Zorg ervoor dat de claim van de identiteitsprovider overeenkomt met de verwachte structuur:",
"LabelOpenIDClaims": "Laat de volgende opties leeg om geavanceerde groeps- en machtigingstoewijzing uit te schakelen en de groep 'Gebruiker' automatisch toe te wijzen.",
@@ -631,6 +638,7 @@
"LabelStartTime": "Starttijd",
"LabelStarted": "Gestart",
"LabelStartedAt": "Gestart op",
+ "LabelStartedDate": "Gestart {0}",
"LabelStatsAudioTracks": "Audiotracks",
"LabelStatsAuthors": "Auteurs",
"LabelStatsBestDay": "Beste dag",
@@ -745,6 +753,7 @@
"MessageBookshelfNoResultsForFilter": "Geen resultaten voor filter \"{0}: {1}\"",
"MessageBookshelfNoResultsForQuery": "Geen resultaten voor query",
"MessageBookshelfNoSeries": "Je hebt geen series",
+ "MessageBulkChapterPattern": "Hoeveel hoofdstukken wilt u met dit nummeringspatroon toevoegen?",
"MessageChapterEndIsAfter": "Hoofdstukeinde is na het einde van je audioboek",
"MessageChapterErrorFirstNotZero": "Eerste hoofdstuk moet starten op 0",
"MessageChapterErrorStartGteDuration": "Ongeldig: starttijd moet kleiner zijn dan duur van audioboek",
@@ -948,6 +957,7 @@
"NotificationOnRSSFeedDisabledDescription": "Wordt geactiveerd wanneer automatische afleveringsdownloads zijn uitgeschakeld vanwege te veel mislukte pogingen",
"NotificationOnRSSFeedFailedDescription": "Getriggerd wanneer de RSS feed aanvraag faalt voor een automatische aflevering download",
"NotificationOnTestDescription": "Event voor het testen van het notificatiesysteem",
+ "PlaceholderBulkChapterInput": "Voer een hoofdstuktitel in of gebruik nummering (bijv. 'Aflevering 1', 'Hoofdstuk 10', '1.')",
"PlaceholderNewCollection": "Nieuwe naam collectie",
"PlaceholderNewFolderPath": "Nieuwe locatie map",
"PlaceholderNewPlaylist": "Nieuwe naam afspeellijst",
@@ -1001,8 +1011,12 @@
"ToastBookmarkCreateFailed": "Aanmaken boekwijzer mislukt",
"ToastBookmarkCreateSuccess": "boekwijzer toegevoegd",
"ToastBookmarkRemoveSuccess": "Boekwijzer verwijderd",
+ "ToastBulkChapterInvalidCount": "Voer een nummer in tussen 1 en 150",
"ToastCachePurgeFailed": "Cache wissen is mislukt",
"ToastCachePurgeSuccess": "Cache succesvol verwijderd",
+ "ToastChapterLocked": "Hoofdstuk is vergrendeld.",
+ "ToastChapterStartTimeAdjusted": "Hoofdstukstarttijd aangepast met {0} seconden",
+ "ToastChaptersAllLocked": "Alle hoofdstukken zijn vergrendeld. Ontgrendel sommige hoofdstukken om hun tijd te verschuiven.",
"ToastChaptersHaveErrors": "Hoofdstukken bevatten fouten",
"ToastChaptersInvalidShiftAmountLast": "Ongeldige shift-tijd. De starttijd van het laatste hoofdstuk zou langer zijn dan de duur van dit audioboek.",
"ToastChaptersInvalidShiftAmountStart": "Ongeldige shift-lengte. Het eerste hoofdstuk zou nul of een negatieve lengte hebben en zou worden overschreven door het tweede hoofdstuk. Verleng de startduur van het tweede hoofdstuk.",
@@ -1086,6 +1100,7 @@
"ToastPlaylistUpdateSuccess": "Afspeellijst bijgewerkt",
"ToastPodcastCreateFailed": "Podcast aanmaken mislukt",
"ToastPodcastCreateSuccess": "Podcast aangemaakt",
+ "ToastPodcastEpisodeUpdated": "Aflevering bijgewerkt",
"ToastPodcastGetFeedFailed": "Podcast feed ophalen mislukt",
"ToastPodcastNoEpisodesInFeed": "Geen afleveringen gevonden in RSS feed",
"ToastPodcastNoRssFeed": "Podcast heeft geen RSS feed",
@@ -1136,5 +1151,13 @@
"ToastUserPasswordChangeSuccess": "Wachtwoord succesvol gewijzigd",
"ToastUserPasswordMismatch": "Wachtwoorden komen niet overeen",
"ToastUserPasswordMustChange": "Het nieuwe wachtwoord kan niet overeenkomen met het oude wachtwoord",
- "ToastUserRootRequireName": "U moet een root-gebruikersnaam invoeren"
+ "ToastUserRootRequireName": "U moet een root-gebruikersnaam invoeren",
+ "TooltipAddChapters": "Hoofdstuk(ken) toevoegen",
+ "TooltipAddOneSecond": "1 seconde toevoegen",
+ "TooltipAdjustChapterStart": "Klik om de starttijd aan te passen",
+ "TooltipLockAllChapters": "Alle hoofdstukken vergrendelen",
+ "TooltipLockChapter": "Hoofdstuk vergrendelen (Shift+klikken voor bereik)",
+ "TooltipSubtractOneSecond": "Trek 1 seconde af",
+ "TooltipUnlockAllChapters": "Alle hoofdstukken ontgrendelen",
+ "TooltipUnlockChapter": "Hoofdstuk ontgrendelen (Shift+klikken voor bereik)"
}
diff --git a/client/strings/ru.json b/client/strings/ru.json
index efe38aeb..4dd99fd4 100644
--- a/client/strings/ru.json
+++ b/client/strings/ru.json
@@ -17,12 +17,12 @@
"ButtonCancel": "Отмена",
"ButtonCancelEncode": "Отменить кодирование",
"ButtonChangeRootPassword": "Поменять мастер пароль",
- "ButtonCheckAndDownloadNewEpisodes": "Проверка и Загрузка новых эпизодов",
+ "ButtonCheckAndDownloadNewEpisodes": "Скачать новые выпуски",
"ButtonChooseAFolder": "Выбор папки",
"ButtonChooseFiles": "Выбор файлов",
"ButtonClearFilter": "Очистить фильтр",
"ButtonClose": "Закрыть",
- "ButtonCloseFeed": "Закрыть канал",
+ "ButtonCloseFeed": "Закрыть ленту",
"ButtonCloseSession": "Закрыть открытый сеанс",
"ButtonCollections": "Коллекции",
"ButtonConfigureScanner": "Конфигурация сканера",
@@ -56,7 +56,7 @@
"ButtonNextChapter": "Следующая глава",
"ButtonNextItemInQueue": "Следующий элемент в очереди",
"ButtonOk": "Ок",
- "ButtonOpenFeed": "Открыть канал",
+ "ButtonOpenFeed": "Открыть ленту",
"ButtonOpenManager": "Открыть менеджер",
"ButtonPause": "Пауза",
"ButtonPlay": "Слушать",
@@ -142,7 +142,7 @@
"HeaderEbookFiles": "Файлы e-книг",
"HeaderEmail": "E-mail",
"HeaderEmailSettings": "Настройки Email",
- "HeaderEpisodes": "Эпизоды",
+ "HeaderEpisodes": "Выпуски",
"HeaderEreaderDevices": "Устройства E-книга",
"HeaderEreaderSettings": "Настройки E-ридера",
"HeaderFiles": "Файлы",
@@ -151,7 +151,7 @@
"HeaderItemFiles": "Файлы элемента",
"HeaderItemMetadataUtils": "Утилиты",
"HeaderLastListeningSession": "Последний сеанс прослушивания",
- "HeaderLatestEpisodes": "Последние эпизоды",
+ "HeaderLatestEpisodes": "Последние выпуски",
"HeaderLibraries": "Библиотеки",
"HeaderLibraryFiles": "Файлы библиотеки",
"HeaderLibraryStats": "Статистика библиотеки",
@@ -173,7 +173,7 @@
"HeaderNotifications": "Уведомления",
"HeaderOpenIDConnectAuthentication": "Аутентификация OpenID Connect",
"HeaderOpenListeningSessions": "Открытые сеансы прослушивания",
- "HeaderOpenRSSFeed": "Открыть RSS-канал",
+ "HeaderOpenRSSFeed": "Открыть RSS-ленту",
"HeaderOtherFiles": "Другие файлы",
"HeaderPasswordAuthentication": "Аутентификация по паролю",
"HeaderPermissions": "Разрешения",
@@ -185,13 +185,13 @@
"HeaderPresets": "Пресеты",
"HeaderPreviewCover": "Предпросмотр обложки",
"HeaderRSSFeedGeneral": "Сведения о RSS",
- "HeaderRSSFeedIsOpen": "RSS-канал открыт",
- "HeaderRSSFeeds": "RSS-каналы",
- "HeaderRemoveEpisode": "Удалить эпизод",
- "HeaderRemoveEpisodes": "Удалить {0} эпизодов",
+ "HeaderRSSFeedIsOpen": "RSS-лента открыта",
+ "HeaderRSSFeeds": "RSS-ленты",
+ "HeaderRemoveEpisode": "Удалить выпуск",
+ "HeaderRemoveEpisodes": "Удалить {0} выпусков",
"HeaderSavedMediaProgress": "Прогресс медиа сохранен",
"HeaderSchedule": "Планировщик",
- "HeaderScheduleEpisodeDownloads": "Запланируйте автоматическую загрузку эпизодов",
+ "HeaderScheduleEpisodeDownloads": "Запланировать автоматическое скачивание выпусков",
"HeaderScheduleLibraryScans": "Планировщик автоматического сканирования библиотеки",
"HeaderSession": "Сеансы",
"HeaderSetBackupSchedule": "Установить планировщик бэкапов",
@@ -237,7 +237,7 @@
"LabelAddedDate": "Добавлено {0}",
"LabelAdminUsersOnly": "Только для пользователей с правами администратора",
"LabelAll": "Все",
- "LabelAllEpisodesDownloaded": "Все эпизоды загружены",
+ "LabelAllEpisodesDownloaded": "Все выпуски скачаны",
"LabelAllUsers": "Все пользователи",
"LabelAllUsersExcludingGuests": "Все пользователи, кроме гостей",
"LabelAllUsersIncludingGuests": "Все пользователи, включая гостей",
@@ -255,7 +255,7 @@
"LabelAuthorFirstLast": "Автор (Имя Фамилия)",
"LabelAuthorLastFirst": "Автор (Фамилия, Имя)",
"LabelAuthors": "Авторы",
- "LabelAutoDownloadEpisodes": "Скачивать эпизоды автоматически",
+ "LabelAutoDownloadEpisodes": "Скачивать выпуски автоматически",
"LabelAutoFetchMetadata": "Автоматическое извлечение метаданных",
"LabelAutoFetchMetadataHelp": "Извлекает метаданные для названия, автора и серии для упрощения загрузки. После загрузки может потребоваться сопоставление дополнительных метаданных.",
"LabelAutoLaunch": "Автозапуск",
@@ -277,7 +277,7 @@
"LabelButtonText": "Текст кнопки",
"LabelByAuthor": "{0}",
"LabelChangePassword": "Изменить пароль",
- "LabelChannels": "Каналы",
+ "LabelChannels": "Ленты",
"LabelChapterCount": "{0} Главы",
"LabelChapterTitle": "Название главы",
"LabelChapters": "Главы",
@@ -318,7 +318,7 @@
"LabelDiscFromMetadata": "Диск из Метаданных",
"LabelDiscover": "Не начато",
"LabelDownload": "Скачать",
- "LabelDownloadNEpisodes": "Скачать {0} эпизодов",
+ "LabelDownloadNEpisodes": "Скачать {0} выпусков",
"LabelDownloadable": "Загружаемый",
"LabelDuration": "Длительность",
"LabelDurationComparisonExactMatch": "(точное совпадение)",
@@ -348,13 +348,13 @@
"LabelEncodingWatcherDisabled": "Если у вас отключено наблюдение за папкой, вам нужно будет повторно пересканировать эту аудиокнигу.",
"LabelEnd": "Конец",
"LabelEndOfChapter": "Конец главы",
- "LabelEpisode": "Эпизод",
- "LabelEpisodeNotLinkedToRssFeed": "Эпизод, не связанный с RSS-каналом",
- "LabelEpisodeNumber": "Эпизод #{0}",
- "LabelEpisodeTitle": "Имя эпизода",
- "LabelEpisodeType": "Тип эпизода",
- "LabelEpisodeUrlFromRssFeed": "URL-адрес эпизода из RSS-ленты",
- "LabelEpisodes": "Эпизодов",
+ "LabelEpisode": "Выпуск",
+ "LabelEpisodeNotLinkedToRssFeed": "Выпуск, не связанный с RSS-лентой",
+ "LabelEpisodeNumber": "Выпуск #{0}",
+ "LabelEpisodeTitle": "Название выпуска",
+ "LabelEpisodeType": "Тип выпуска",
+ "LabelEpisodeUrlFromRssFeed": "URL-адрес выпуска из RSS-ленты",
+ "LabelEpisodes": "Выпуски",
"LabelEpisodic": "Эпизодический",
"LabelExample": "Пример",
"LabelExpandSeries": "Развернуть серию",
@@ -367,7 +367,7 @@
"LabelExplicitChecked": "18+ (отмечено)",
"LabelExplicitUnchecked": "+18 (не отмечено)",
"LabelExportOPML": "Экспорт OPML",
- "LabelFeedURL": "URL канала",
+ "LabelFeedURL": "URL-адрес ленты",
"LabelFetchingMetadata": "Извлечение метаданных",
"LabelFile": "Файл",
"LabelFileBirthtime": "Дата создания",
@@ -376,8 +376,9 @@
"LabelFileModifiedDate": "Изменено {0}",
"LabelFilename": "Имя файла",
"LabelFilterByUser": "Фильтр по пользователю",
- "LabelFindEpisodes": "Найти эпизоды",
+ "LabelFindEpisodes": "Найти выпуски",
"LabelFinished": "Закончен",
+ "LabelFinishedDate": "Завершено {0}",
"LabelFolder": "Папка",
"LabelFolders": "Папки",
"LabelFontBold": "Жирный",
@@ -436,21 +437,23 @@
"LabelLibraryItem": "Элемент библиотеки",
"LabelLibraryName": "Имя библиотеки",
"LabelLibrarySortByProgress": "Прогресс обновлён",
+ "LabelLibrarySortByProgressFinished": "Дата завершения",
+ "LabelLibrarySortByProgressStarted": "Дата начала",
"LabelLimit": "Лимит",
"LabelLineSpacing": "Межстрочный интервал",
"LabelListenAgain": "Послушать снова",
"LabelLogLevelDebug": "Debug",
"LabelLogLevelInfo": "Info",
"LabelLogLevelWarn": "Предупреждение",
- "LabelLookForNewEpisodesAfterDate": "Искать новые эпизоды после этой даты",
+ "LabelLookForNewEpisodesAfterDate": "Искать новые выпуски после этой даты",
"LabelLowestPriority": "Самый низкий приоритет",
"LabelMatchConfidence": "Уверенность",
"LabelMatchExistingUsersBy": "Сопоставление существующих пользователей по",
"LabelMatchExistingUsersByDescription": "Используется для подключения существующих пользователей. После подключения пользователям будет присвоен уникальный идентификатор от поставщика единого входа",
- "LabelMaxEpisodesToDownload": "Максимальное количество эпизодов для загрузки. Используйте 0 для неограниченного количества.",
- "LabelMaxEpisodesToDownloadPerCheck": "Максимальное количество новых эпизодов для загрузки за одну проверку",
- "LabelMaxEpisodesToKeep": "Максимальное количество сохраняемых эпизодов",
- "LabelMaxEpisodesToKeepHelp": "Значение 0 не устанавливает максимального ограничения. После автоматической загрузки нового эпизода самый старый эпизод будет удален, если у вас более X эпизодов. При этом будет удален только 1 эпизод за каждую новую загрузку.",
+ "LabelMaxEpisodesToDownload": "Максимальное количество выпусков для скачивания. Используйте 0 для неограниченного количества.",
+ "LabelMaxEpisodesToDownloadPerCheck": "Максимальное количество новых выпусков для скачивания за один раз",
+ "LabelMaxEpisodesToKeep": "Максимальное количество сохраняемых выпусков",
+ "LabelMaxEpisodesToKeepHelp": "Значение 0 не устанавливает максимального ограничения. После автоматической скачивании нового выпуска самый старый будет удалён, если у вас их уже более X выпусков. При этом будет удалён только 1 выпуск за каждое новое скачивание.",
"LabelMediaPlayer": "Медиа проигрыватель",
"LabelMediaType": "Тип медиа",
"LabelMetaTag": "Мета тег",
@@ -472,13 +475,13 @@
"LabelNew": "Новый",
"LabelNewPassword": "Новый пароль",
"LabelNewestAuthors": "Новые авторы",
- "LabelNewestEpisodes": "Новые эпизоды",
+ "LabelNewestEpisodes": "Новые выпуски",
"LabelNextBackupDate": "Следующая дата бэкапирования",
"LabelNextChapters": "Следующие главы будут:",
"LabelNextScheduledRun": "Следущий запланированный запуск",
"LabelNoApiKeys": "API ключи отсутствуют",
"LabelNoCustomMetadataProviders": "Нет пользовательских поставщиков метаданных",
- "LabelNoEpisodesSelected": "Эпизоды не выбраны",
+ "LabelNoEpisodesSelected": "Нет выбранных выпусков",
"LabelNotFinished": "Не завершено",
"LabelNotStarted": "Не запущено",
"LabelNotes": "Заметки",
@@ -493,11 +496,11 @@
"LabelNotificationsMaxQueueSizeHelp": "События ограничены 1 в секунду. События будут игнорированы если в очереди максимальное количество. Это предотвращает спам сообщениями.",
"LabelNumberOfBooks": "Количество книг",
"LabelNumberOfChapters": "Кол-во глав:",
- "LabelNumberOfEpisodes": "# из эпизодов",
+ "LabelNumberOfEpisodes": "# из выпусков",
"LabelOpenIDAdvancedPermsClaimDescription": "Имя утверждения OpenID, содержащего расширенные разрешения на действия пользователя в приложении, которые будут применяться к ролям, не являющимся администраторами (если они настроены). Если утверждение отсутствует в ответе, в доступе к ABS будет отказано. Если одна опция отсутствует, она будет рассматриваться как false
. Убедитесь, что утверждение поставщика удостоверений соответствует ожидаемой структуре:",
"LabelOpenIDClaims": "Оставьте следующие параметры пустыми, чтобы отключить расширенное назначение групп и разрешений, будет автоматически присвоена группа «Пользователь».",
"LabelOpenIDGroupClaimDescription": "Имя утверждения OpenID, содержащего список групп пользователя. Обычно их называют groups
. Если эта настройка настроена, приложение будет автоматически назначать роли на основе членства пользователя в группах при условии, что эти группы названы в утверждении без учета регистра \"admin\", \"user\" или \"guest\". Утверждение должно содержать список, и если пользователь принадлежит к нескольким группам, то приложение назначит роль, соответствующую самому высокому уровню доступа. Если ни одна из групп не совпадает, доступ будет запрещен.",
- "LabelOpenRSSFeed": "Открыть RSS-канал",
+ "LabelOpenRSSFeed": "Открыть RSS-ленту",
"LabelOverwrite": "Перезаписать",
"LabelPaginationPageXOfY": "Страница {0} из {1}",
"LabelPassword": "Пароль",
@@ -539,8 +542,8 @@
"LabelRSSFeedCustomOwnerName": "Пользовательское Имя владельца",
"LabelRSSFeedOpen": "Открыть RSS-ленту",
"LabelRSSFeedPreventIndexing": "Запретить индексирование",
- "LabelRSSFeedSlug": "Встроить RSS-канал",
- "LabelRSSFeedURL": "URL RSS-канала",
+ "LabelRSSFeedSlug": "Ключевое слово RSS-ленты",
+ "LabelRSSFeedURL": "URL-адрес RSS-ленты",
"LabelRandomly": "Случайно",
"LabelReAddSeriesToContinueListening": "Повторно добавить серию в «Продолжить слушать»",
"LabelRead": "Читать",
@@ -565,8 +568,8 @@
"LabelSeason": "Сезон",
"LabelSeasonNumber": "Сезон #{0}",
"LabelSelectAll": "Выбрать все",
- "LabelSelectAllEpisodes": "Выбрать все эпизоды",
- "LabelSelectEpisodesShowing": "Выберите {0} эпизодов для показа",
+ "LabelSelectAllEpisodes": "Выбрать все выпуски",
+ "LabelSelectEpisodesShowing": "Выберите {0} выпусков для отображения",
"LabelSelectUser": "Выбрать пользователя",
"LabelSelectUsers": "Выбор пользователей",
"LabelSendEbookToDevice": "Отправить e-книгу в...",
@@ -635,6 +638,7 @@
"LabelStartTime": "Время начала",
"LabelStarted": "Начат",
"LabelStartedAt": "Начато В",
+ "LabelStartedDate": "Начато {0}",
"LabelStatsAudioTracks": "Аудио треки",
"LabelStatsAuthors": "Авторы",
"LabelStatsBestDay": "Лучший День",
@@ -745,7 +749,7 @@
"MessageBatchQuickMatchDescription": "Быстрый Поиск попытается добавить отсутствующие обложки и метаданные для выбранных элементов. Включите параметры ниже, чтобы разрешить Быстрому Поиску перезаписывать существующие обложки и/или метаданные.",
"MessageBookshelfNoCollections": "Вы еще не создали ни одной коллекции",
"MessageBookshelfNoCollectionsHelp": "Коллекции являются общедоступными. Все пользователи, имеющие доступ к библиотеке, могут их просматривать.",
- "MessageBookshelfNoRSSFeeds": "Нет открытых RSS-каналов",
+ "MessageBookshelfNoRSSFeeds": "Нет открытых RSS-лент",
"MessageBookshelfNoResultsForFilter": "Нет Результатов для фильтра \"{0}: {1}\"",
"MessageBookshelfNoResultsForQuery": "Нет результатов для запроса",
"MessageBookshelfNoSeries": "У вас нет серий",
@@ -757,7 +761,7 @@
"MessageChapterStartIsAfter": "Глава начинается после окончания аудиокниги",
"MessageChaptersNotFound": "Главы не найденны",
"MessageCheckingCron": "Проверка cron...",
- "MessageConfirmCloseFeed": "Вы уверены, что хотите закрыть этот канал?",
+ "MessageConfirmCloseFeed": "Вы уверены, что хотите закрыть эту ленту?",
"MessageConfirmDeleteApiKey": "Вы уверены, что хотите удалить API ключ \"{0}\"?",
"MessageConfirmDeleteBackup": "Вы уверены, что хотите удалить бэкап для {0}?",
"MessageConfirmDeleteDevice": "Вы уверены, что хотите удалить устройство для чтения электронных книг \"{0}\"?",
@@ -770,8 +774,8 @@
"MessageConfirmDeleteSession": "Вы уверены, что хотите удалить этот сеанс?",
"MessageConfirmEmbedMetadataInAudioFiles": "Вы уверены, что хотите вставить метаданные в {0} аудиофайлов?",
"MessageConfirmForceReScan": "Вы уверены, что хотите принудительно выполнить повторное сканирование?",
- "MessageConfirmMarkAllEpisodesFinished": "Вы уверены, что хотите отметить все эпизоды как завершенные?",
- "MessageConfirmMarkAllEpisodesNotFinished": "Вы уверены, что хотите отметить все эпизоды как не завершенные?",
+ "MessageConfirmMarkAllEpisodesFinished": "Вы уверены, что хотите отметить все выпуски как прослушанные?",
+ "MessageConfirmMarkAllEpisodesNotFinished": "Вы уверены, что хотите отметить все выпуски как непрослушанные?",
"MessageConfirmMarkItemFinished": "Вы уверены, что хотите отметить «{0}» как завершенную?",
"MessageConfirmMarkItemNotFinished": "Вы уверены, что хотите отметить «{0}» как не завершенную?",
"MessageConfirmMarkSeriesFinished": "Вы уверены, что хотите отметить все книги этой серии как завершенные?",
@@ -780,14 +784,14 @@
"MessageConfirmPurgeCache": "Очистка кэша удалит весь каталог в /metadata/cache
.
Вы уверены, что хотите удалить каталог кэша?",
"MessageConfirmPurgeItemsCache": "Очистка кэша элементов удалит весь каталог в /metadata/cache/items
.
Вы уверены?",
"MessageConfirmQuickEmbed": "Предупреждение! Быстрое встраивание не позволяет создавать резервные копии аудиофайлов. Убедитесь, что у вас есть резервная копия аудиофайлов.
Хотите продолжить?",
- "MessageConfirmQuickMatchEpisodes": "При обнаружении совпадений информация о эпизодах быстрого поиска будет перезаписана. Будут обновлены только несопоставимые эпизоды. Вы уверены?",
+ "MessageConfirmQuickMatchEpisodes": "При обнаружении совпадений информация о выпусках быстрого поиска будет перезаписана. Будут обновлены только несопоставимые выпуски. Вы уверены?",
"MessageConfirmReScanLibraryItems": "Вы уверены, что хотите пересканировать {0} элементов?",
"MessageConfirmRemoveAllChapters": "Вы уверены, что хотите удалить все главы?",
"MessageConfirmRemoveAuthor": "Вы уверены, что хотите удалить автора \"{0}\"?",
"MessageConfirmRemoveCollection": "Вы уверены, что хотите удалить коллекцию \"{0}\"?",
- "MessageConfirmRemoveEpisode": "Вы уверены, что хотите удалить эпизод \"{0}\"?",
+ "MessageConfirmRemoveEpisode": "Вы уверены, что хотите удалить выпуск «{0}»?",
"MessageConfirmRemoveEpisodeNote": "Примечание: Это не приведет к удалению аудиофайла, если не включить опцию \"Жесткое удаление файла\"",
- "MessageConfirmRemoveEpisodes": "Вы уверены, что хотите удалить {0} эпизодов?",
+ "MessageConfirmRemoveEpisodes": "Вы уверены, что хотите удалить {0} выпусков?",
"MessageConfirmRemoveListeningSessions": "Вы уверены, что хотите удалить {0} сеансов прослушивания?",
"MessageConfirmRemoveMetadataFiles": "Вы уверены, что хотите удалить все файлы metadata. {0} файлов из папок элементов вашей библиотеки?",
"MessageConfirmRemoveNarrator": "Вы уверены, что хотите удалить чтеца \"{0}\"?",
@@ -802,14 +806,14 @@
"MessageConfirmSendEbookToDevice": "Вы уверены, что хотите отправить {0} e-книгу \"{1}\" на устройство \"{2}\"?",
"MessageConfirmUnlinkOpenId": "Вы уверены, что хотите отвязать этого пользователя от OpenID?",
"MessageDaysListenedInTheLastYear": "{0} дней прослушивания за последний год",
- "MessageDownloadingEpisode": "Эпизод скачивается",
+ "MessageDownloadingEpisode": "Скачивание выпуска",
"MessageDragFilesIntoTrackOrder": "Перетащите файлы для исправления порядка треков",
"MessageEmbedFailed": "Вставка не удалась!",
"MessageEmbedFinished": "Встраивание завершено!",
"MessageEmbedQueue": "Поставлен в очередь для внедрения метаданных ({0} в очереди)",
- "MessageEpisodesQueuedForDownload": "{0} Эпизод(ов) запланировано для закачки",
+ "MessageEpisodesQueuedForDownload": "{0} выпуск(ов) запланировано для скачивания",
"MessageEreaderDevices": "Чтобы обеспечить доставку электронных книг, вам может потребоваться добавить указанный выше адрес электронной почты в качестве действительного отправителя для каждого устройства, перечисленного ниже.",
- "MessageFeedURLWillBe": "URL канала будет {0}",
+ "MessageFeedURLWillBe": "URL-адрес ленты будет {0}",
"MessageFetching": "Завершается...",
"MessageForceReScanDescription": "будет сканировать все файлы снова, как свежее сканирование. Теги ID3 аудиофайлов, OPF-файлы и текстовые файлы будут сканироваться как новые.",
"MessageHeatmapListeningTimeTooltip": "{0} прослушивание на {1}",
@@ -826,8 +830,8 @@
"MessageM4BFailed": "M4B Ошибка!",
"MessageM4BFinished": "M4B Завершено!",
"MessageMapChapterTitles": "Сопоставление названий глав с существующими главами аудиокниги без корректировки временных меток",
- "MessageMarkAllEpisodesFinished": "Отметить все эпизоды как завершенные",
- "MessageMarkAllEpisodesNotFinished": "Отметить все эпизоды как не завершенные",
+ "MessageMarkAllEpisodesFinished": "Отметить все выпуски как прослушанные",
+ "MessageMarkAllEpisodesNotFinished": "Отметить все выпуски как непрослушанные",
"MessageMarkAsFinished": "Отметить, как завершенную",
"MessageMarkAsNotFinished": "Отметить, как не завершенную",
"MessageMatchBooksDescription": "попытается сопоставить книги в библиотеке с книгой из выбранного поставщика поиска и заполнить пустые детали и обложку. Не перезаписывает сведения.",
@@ -842,8 +846,8 @@
"MessageNoDevices": "Нет устройств",
"MessageNoDownloadsInProgress": "В настоящее время загрузка не выполняется",
"MessageNoDownloadsQueued": "Нет загрузок в очереди",
- "MessageNoEpisodeMatchesFound": "Совпадения эпизодов не найдены",
- "MessageNoEpisodes": "Нет эпизодов",
+ "MessageNoEpisodeMatchesFound": "Совпадения выпусков не найдены",
+ "MessageNoEpisodes": "Нету выпусков",
"MessageNoFoldersAvailable": "Нет доступных папок",
"MessageNoGenres": "Нет жанров",
"MessageNoIssues": "Нет проблем",
@@ -853,7 +857,7 @@
"MessageNoLogs": "Нет записей",
"MessageNoMediaProgress": "Нет прогресса медиа",
"MessageNoNotifications": "Нет уведомлений",
- "MessageNoPodcastFeed": "Недопустимый подкаст: Нет канала",
+ "MessageNoPodcastFeed": "Недопустимый подкаст: Нет ленты",
"MessageNoPodcastsFound": "Подкасты не найдены",
"MessageNoResults": "Нет результатов",
"MessageNoSearchResultsFor": "Нет результатов поиска для \"{0}\"",
@@ -864,20 +868,20 @@
"MessageNoUserPlaylists": "У вас нет плейлистов",
"MessageNoUserPlaylistsHelp": "Списки воспроизведения являются конфиденциальными. Только пользователь, который их создает, может их видеть.",
"MessageNotYetImplemented": "Пока не реализовано",
- "MessageOpmlPreviewNote": "Примечание: Это предварительный просмотр разобранного файла OPML. Фактическое название подкаста будет взято из RSS-канала.",
+ "MessageOpmlPreviewNote": "Примечание: Это предварительный просмотр разобранного файла OPML. Фактическое название подкаста будет взято из RSS-ленты.",
"MessageOr": "или",
"MessagePauseChapter": "Пауза воспроизведения главы",
"MessagePlayChapter": "Прослушать начало главы",
"MessagePlaylistCreateFromCollection": "Создать плейлист из коллекции",
"MessagePleaseWait": "Пожалуйста подождите...",
- "MessagePodcastHasNoRSSFeedForMatching": "Подкаст не имеет URL-адреса RSS-канала, который можно использовать для поиска",
- "MessagePodcastSearchField": "Введите поисковый запрос или URL-адрес RSS-канала",
+ "MessagePodcastHasNoRSSFeedForMatching": "Подкаст не имеет URL-адреса RSS-ленты, который можно использовать для поиска",
+ "MessagePodcastSearchField": "Введите поисковый запрос или URL-адрес RSS-ленты",
"MessageQuickEmbedInProgress": "Быстрое внедрение в процессе выполнения",
"MessageQuickEmbedQueue": "Поставлен в очередь для быстрого внедрения ({0} в очереди)",
- "MessageQuickMatchAllEpisodes": "Быстрое сопоставление всех эпизодов",
+ "MessageQuickMatchAllEpisodes": "Быстрое сопоставление всех выпусков",
"MessageQuickMatchDescription": "Заполняет пустые детали элемента и обложку первым результатом поиска из «{0}». Не перезаписывает сведения, если не включен параметр сервера 'Предпочитать метаданные поиска'.",
"MessageRemoveChapter": "Удалить главу",
- "MessageRemoveEpisodes": "Удалить {0} эпизод(ов)",
+ "MessageRemoveEpisodes": "Удалить {0} выпуск(ов)",
"MessageRemoveFromPlayerQueue": "Удалить из очереди воспроизведения",
"MessageRemoveUserWarning": "Вы уверены, что хотите навсегда удалить пользователя \"{0}\"?",
"MessageReportBugsAndContribute": "Сообщайте об ошибках, запрашивайте функции и вносите свой вклад на",
@@ -897,7 +901,7 @@
"MessageStartPlaybackAtTime": "Начать воспроизведение для \"{0}\" с {1}?",
"MessageTaskAudioFileNotWritable": "Аудиофайл \"{0}\" недоступен для записи",
"MessageTaskCanceledByUser": "Задание отменено пользователем",
- "MessageTaskDownloadingEpisodeDescription": "Загрузка эпизода \"{0}\"",
+ "MessageTaskDownloadingEpisodeDescription": "Скачивание выпуска «{0}»",
"MessageTaskEmbeddingMetadata": "Внедрение метаданных",
"MessageTaskEmbeddingMetadataDescription": "Встраивание метаданных в аудиокнигу \"{0}\"",
"MessageTaskEncodingM4b": "Кодировка M4B",
@@ -912,9 +916,9 @@
"MessageTaskMatchingBooksInLibrary": "Сопоставление книг в библиотеке \"{0}\"",
"MessageTaskNoFilesToScan": "Нет файлов для сканирования",
"MessageTaskOpmlImport": "Импорт OPML",
- "MessageTaskOpmlImportDescription": "Создание подкастов из {0} RSS-каналов",
+ "MessageTaskOpmlImportDescription": "Создание подкастов из {0} RSS-ленты",
"MessageTaskOpmlImportFeed": "Канал импорта OPML",
- "MessageTaskOpmlImportFeedDescription": "Импорт RSS-канала \"{0}\"",
+ "MessageTaskOpmlImportFeedDescription": "Импорт RSS-ленты «{0}»",
"MessageTaskOpmlImportFeedFailed": "Не удалось получить ленту подкаста",
"MessageTaskOpmlImportFeedPodcastDescription": "Создание подкаста \"{0}\"",
"MessageTaskOpmlImportFeedPodcastExists": "Подкаст уже существует по адресу",
@@ -922,7 +926,7 @@
"MessageTaskOpmlImportFinished": "Добавлено {0} подкастов",
"MessageTaskOpmlParseFailed": "Не удалось разобрать OPML-файл",
"MessageTaskOpmlParseFastFail": "Недопустимый тег файла OPML не найден ИЛИ тег не найден",
- "MessageTaskOpmlParseNoneFound": "В OPML-файле не найдено ни одного канала",
+ "MessageTaskOpmlParseNoneFound": "В OPML-файле не найдено ни одной ленты",
"MessageTaskScanItemsAdded": "{0} добавлено",
"MessageTaskScanItemsMissing": "{0} отсутствует",
"MessageTaskScanItemsUpdated": "{0} обновлено",
@@ -942,23 +946,23 @@
"NoteChangeRootPassword": "Пользователь root — единственный пользователь, который может иметь пустой пароль",
"NoteChapterEditorTimes": "Примечание: Время начала первой главы должно оставаться в 0:00, а время начала последней главы не может превышать продолжительность этой аудиокниги.",
"NoteFolderPicker": "Примечание: папки, уже сопоставленные, не будут отображаться",
- "NoteRSSFeedPodcastAppsHttps": "Предупреждение: Большинству приложений подкастов потребуется, чтобы URL-адрес RSS-канала использовал HTTPS",
- "NoteRSSFeedPodcastAppsPubDate": "Предупреждение: 1 или более эпизодов не имеют даты публикации. Некоторые приложения для подкастов требуют этого.",
+ "NoteRSSFeedPodcastAppsHttps": "Предупреждение: Большинству приложений подкастов потребуется, чтобы URL-адрес RSS-ленты использовал HTTPS",
+ "NoteRSSFeedPodcastAppsPubDate": "Предупреждение: 1 или более выпусков не имеют даты публикации. Некоторые приложения для подкастов требуют этого.",
"NoteUploaderFoldersWithMediaFiles": "Папки с медиафайлами будут обрабатываться как отдельные элементы библиотеки.",
"NoteUploaderOnlyAudioFiles": "Если загружать только аудиофайлы, то каждый аудиофайл будет обрабатываться как отдельная аудиокнига.",
"NoteUploaderUnsupportedFiles": "Неподдерживаемые файлы игнорируются. При выборе или удалении папки другие файлы, не находящиеся в папке элемента, игнорируются.",
"NotificationOnBackupCompletedDescription": "Запускается при завершении резервного копирования",
"NotificationOnBackupFailedDescription": "Срабатывает при сбое резервного копирования",
- "NotificationOnEpisodeDownloadedDescription": "Запускается при автоматической загрузке эпизода подкаста",
- "NotificationOnRSSFeedDisabledDescription": "Срабатывает, когда автоматическая загрузка эпизодов отключена из-за слишком большого количества неудачных попыток",
- "NotificationOnRSSFeedFailedDescription": "Срабатывает при сбое запроса RSS-канала на автоматическую загрузку эпизода",
+ "NotificationOnEpisodeDownloadedDescription": "Запускается при автоматической скачивании выпуска подкаста",
+ "NotificationOnRSSFeedDisabledDescription": "Срабатывает, когда автоматическая скачка выпусков отключена из-за слишком большого количества неудачных попыток",
+ "NotificationOnRSSFeedFailedDescription": "Срабатывает при сбое запроса RSS-ленты на автоматическую скачивание выпуска",
"NotificationOnTestDescription": "Событие для тестирования системы оповещения",
- "PlaceholderBulkChapterInput": "Введите название главы или используйте нумерацию (например, \"Эпизод 1\", \"Глава 10\", \"1.\")",
+ "PlaceholderBulkChapterInput": "Введите название главы или используйте нумерацию (например, «Выпуск 1», «Глава 10», «1.»)",
"PlaceholderNewCollection": "Новое имя коллекции",
"PlaceholderNewFolderPath": "Путь к новой папке",
"PlaceholderNewPlaylist": "Новое название плейлиста",
"PlaceholderSearch": "Поиск...",
- "PlaceholderSearchEpisode": "Поиск эпизода...",
+ "PlaceholderSearchEpisode": "Поиск выпуска...",
"StatsAuthorsAdded": "авторов добавлено",
"StatsBooksAdded": "книг добавлено",
"StatsBooksAdditional": "Некоторые дополнения включают в себя…",
@@ -1034,8 +1038,8 @@
"ToastEncodeCancelFailed": "Не удалось отменить кодирование",
"ToastEncodeCancelSucces": "Кодирование отменено",
"ToastEpisodeDownloadQueueClearFailed": "Не удалось очистить очередь",
- "ToastEpisodeDownloadQueueClearSuccess": "Очередь загрузки эпизода очищена",
- "ToastEpisodeUpdateSuccess": "{0 эпизодов обновлено",
+ "ToastEpisodeDownloadQueueClearSuccess": "Очищена очередь скачивания выпусков",
+ "ToastEpisodeUpdateSuccess": "{0} выпусков обновлено",
"ToastErrorCannotShare": "Невозможно предоставить общий доступ на этом устройстве",
"ToastFailedToCreate": "Не удалось создать",
"ToastFailedToDelete": "Не удалось удалить",
@@ -1044,7 +1048,7 @@
"ToastFailedToShare": "Не удалось поделиться",
"ToastFailedToUpdate": "Не удалось обновить",
"ToastInvalidImageUrl": "Неверный URL изображения",
- "ToastInvalidMaxEpisodesToDownload": "Недопустимое максимальное количество загружаемых эпизодов",
+ "ToastInvalidMaxEpisodesToDownload": "Недопустимое максимальное количество скачиваемых выпусков",
"ToastInvalidUrl": "Неверный URL",
"ToastInvalidUrls": "Один или несколько URL неверны",
"ToastItemCoverUpdateSuccess": "Обложка элемента обновлена",
@@ -1072,15 +1076,15 @@
"ToastNameEmailRequired": "Имя и адрес электронной почты обязательны",
"ToastNameRequired": "Имя обязательно для заполнения",
"ToastNewApiKeyUserError": "Необходимо выбрать пользователя",
- "ToastNewEpisodesFound": "{0} новых эпизодов найдено",
+ "ToastNewEpisodesFound": "Найдено {0} новых выпусков",
"ToastNewUserCreatedFailed": "Не удалось создать учетную запись: \"{0}\"",
"ToastNewUserCreatedSuccess": "Новая учетная запись создана",
"ToastNewUserLibraryError": "Необходимо выбрать хотя бы одну библиотеку",
"ToastNewUserPasswordError": "Должен иметь пароль, только пользователь root может иметь пустой пароль",
"ToastNewUserTagError": "Необходимо выбрать хотя бы один тег",
"ToastNewUserUsernameError": "Введите имя пользователя",
- "ToastNoNewEpisodesFound": "Новых эпизодов не найдено",
- "ToastNoRSSFeed": "У подкаста нет RSS-канала",
+ "ToastNoNewEpisodesFound": "Новых выпусков нету",
+ "ToastNoRSSFeed": "У подкаста нет RSS-ленты",
"ToastNoUpdatesNecessary": "Обновления не требуются",
"ToastNotificationCreateFailed": "Не удалось создать уведомление",
"ToastNotificationDeleteFailed": "Не удалось удалить уведомление",
@@ -1096,16 +1100,17 @@
"ToastPlaylistUpdateSuccess": "Плейлист обновлен",
"ToastPodcastCreateFailed": "Не удалось создать подкаст",
"ToastPodcastCreateSuccess": "Подкаст успешно создан",
+ "ToastPodcastEpisodeUpdated": "Выпуск обновлён",
"ToastPodcastGetFeedFailed": "Не удалось получить ленту подкастов",
- "ToastPodcastNoEpisodesInFeed": "В RSS-ленте эпизодов не найдено",
- "ToastPodcastNoRssFeed": "В подкасте нет RSS-канала",
+ "ToastPodcastNoEpisodesInFeed": "В RSS-ленте выпусков не найдено",
+ "ToastPodcastNoRssFeed": "В подкасте нет RSS-ленты",
"ToastProgressIsNotBeingSynced": "Прогресс не синхронизируется, перезапустите воспроизведение",
"ToastProviderCreatedFailed": "Не удалось добавить провайдера",
"ToastProviderCreatedSuccess": "Добавлен новый провайдер",
"ToastProviderNameAndUrlRequired": "Имя и URL обязательные",
"ToastProviderRemoveSuccess": "Провайдер удален",
- "ToastRSSFeedCloseFailed": "Не удалось закрыть RSS-канал",
- "ToastRSSFeedCloseSuccess": "RSS-канал закрыт",
+ "ToastRSSFeedCloseFailed": "Не удалось закрыть RSS-ленту",
+ "ToastRSSFeedCloseSuccess": "RSS-лента закрыта",
"ToastRemoveFailed": "Не удалось удалить",
"ToastRemoveItemFromCollectionFailed": "Не удалось удалить элемент из коллекции",
"ToastRemoveItemFromCollectionSuccess": "Элемент удален из коллекции",
diff --git a/client/strings/sl.json b/client/strings/sl.json
index 42c861bd..0047ac3a 100644
--- a/client/strings/sl.json
+++ b/client/strings/sl.json
@@ -127,6 +127,7 @@
"HeaderAudiobookTools": "Orodja za upravljanje datotek zvočnih knjig",
"HeaderAuthentication": "Avtentikacija",
"HeaderBackups": "Varnostne kopije",
+ "HeaderBulkChapterModal": "Dodaj več poglavij",
"HeaderChangePassword": "Zamenjaj geslo",
"HeaderChapters": "Poglavja",
"HeaderChooseAFolder": "Izberite mapo",
@@ -199,6 +200,7 @@
"HeaderSettingsExperimental": "Eksperimentalne funkcije",
"HeaderSettingsGeneral": "Splošno",
"HeaderSettingsScanner": "Pregledovalnik",
+ "HeaderSettingsSecurity": "Varnost",
"HeaderSettingsWebClient": "Spletni odjemalec",
"HeaderSleepTimer": "Časovnik za izklop",
"HeaderStatsLargestItems": "Največji elementi",
@@ -293,6 +295,7 @@
"LabelContinueListening": "Nadaljuj poslušanje",
"LabelContinueReading": "Nadaljuj branje",
"LabelContinueSeries": "Nadaljuj s serijo",
+ "LabelCorsAllowed": "Dovoljeni CORS viri",
"LabelCover": "Naslovnica",
"LabelCoverImageURL": "URL naslovne slike",
"LabelCoverProvider": "Ponudnik naslovnic",
@@ -306,6 +309,7 @@
"LabelDeleteFromFileSystemCheckbox": "Izbriši iz datotečnega sistema (počisti polje, če želiš odstraniti samo iz zbirke podatkov)",
"LabelDescription": "Opis",
"LabelDeselectAll": "Odznači vse",
+ "LabelDetectedPattern": "Zaznan vzorec:",
"LabelDevice": "Naprava",
"LabelDeviceInfo": "Podatki o napravi",
"LabelDeviceIsAvailableTo": "Naprava je na voljo za...",
@@ -470,6 +474,7 @@
"LabelNewestAuthors": "Najnovejši avtorji",
"LabelNewestEpisodes": "Najnovejše epizode",
"LabelNextBackupDate": "Naslednji datum varnostnega kopiranja",
+ "LabelNextChapters": "Naslednja poglavja bodo:",
"LabelNextScheduledRun": "Naslednji načrtovani zagon",
"LabelNoApiKeys": "Ni API ključev",
"LabelNoCustomMetadataProviders": "Ni ponudnikov metapodatkov po meri",
@@ -487,6 +492,7 @@
"LabelNotificationsMaxQueueSize": "Največja velikost čakalne vrste za dogodke obvestil",
"LabelNotificationsMaxQueueSizeHelp": "Dogodki so omejeni na sprožitev 1 na sekundo. Dogodki bodo prezrti, če je čakalna vrsta najvišja. To preprečuje neželeno pošiljanje obvestil.",
"LabelNumberOfBooks": "Število knjig",
+ "LabelNumberOfChapters": "Število poglavij:",
"LabelNumberOfEpisodes": "# epizod",
"LabelOpenIDAdvancedPermsClaimDescription": "Ime zahtevka OpenID, ki vsebuje napredna dovoljenja za uporabniška dejanja v aplikaciji, ki bodo veljala za neskrbniške vloge (če je konfigurirano). Če trditev manjka v odgovoru, bo dostop do ABS zavrnjen. Če ena možnost manjka, bo obravnavana kot false
. Zagotovite, da se zahtevek ponudnika identitete ujema s pričakovano strukturo:",
"LabelOpenIDClaims": "Pustite naslednje možnosti prazne, da onemogočite napredno dodeljevanje skupin in dovoljenj, nato pa samodejno dodelite skupino 'Uporabnik'.",
@@ -743,6 +749,7 @@
"MessageBookshelfNoResultsForFilter": "Ni rezultatov za filter \"{0}: {1}\"",
"MessageBookshelfNoResultsForQuery": "Ni rezultatov za poizvedbo",
"MessageBookshelfNoSeries": "Nimate serij",
+ "MessageBulkChapterPattern": "Koliko poglavij želite dodati s tem vzorcem oštevilčenja?",
"MessageChapterEndIsAfter": "Konec poglavja je po koncu zvočne knjige",
"MessageChapterErrorFirstNotZero": "Prvo poglavje se mora začeti pri 0",
"MessageChapterErrorStartGteDuration": "Neveljaven začetni čas, mora biti krajši od trajanja zvočne knjige",
@@ -805,6 +812,8 @@
"MessageFeedURLWillBe": "URL vira bo {0}",
"MessageFetching": "Pridobivam...",
"MessageForceReScanDescription": "bo znova pregledal vse datoteke kot pregled od začetka. Oznake ID3 zvočnih datotek, datoteke OPF in besedilne datoteke bodo pregledane kot nove.",
+ "MessageHeatmapListeningTimeTooltip": "{0} posluša na {1}",
+ "MessageHeatmapNoListeningSessions": "Ni sej poslušanj na {0}",
"MessageImportantNotice": "Pomembno obvestilo!",
"MessageInsertChapterBelow": "Spodaj vstavite poglavje",
"MessageInvalidAsin": "Neveljaven ASIN",
@@ -944,6 +953,7 @@
"NotificationOnRSSFeedDisabledDescription": "Sproži se, ko so samodejni prenosi epizod onemogočeni zaradi preveč neuspelih poskusov",
"NotificationOnRSSFeedFailedDescription": "Sproži se, ko zahteva za vir RSS za samodejni prenos epizode ne uspe",
"NotificationOnTestDescription": "Dogodek za testiranje sistema obveščanja",
+ "PlaceholderBulkChapterInput": "Vnesite naslov poglavja ali uporabite oštevilčenje (npr. 'Epizoda 1', 'Poglavje 10', '1.')",
"PlaceholderNewCollection": "Novo ime zbirke",
"PlaceholderNewFolderPath": "Pot nove mape",
"PlaceholderNewPlaylist": "Novo ime seznama predvajanja",
@@ -997,8 +1007,12 @@
"ToastBookmarkCreateFailed": "Zaznamka ni bilo mogoče ustvariti",
"ToastBookmarkCreateSuccess": "Zaznamek dodan",
"ToastBookmarkRemoveSuccess": "Zaznamek odstranjen",
+ "ToastBulkChapterInvalidCount": "Vnesite število med 1 in 150",
"ToastCachePurgeFailed": "Čiščenje predpomnilnika ni uspelo",
"ToastCachePurgeSuccess": "Predpomnilnik je bil uspešno očiščen",
+ "ToastChapterLocked": "Poglavje je zaklenjeno.",
+ "ToastChapterStartTimeAdjusted": "Začetni čas poglavja je bil prilagojen za {0} sekund",
+ "ToastChaptersAllLocked": "Vsa poglavja so zaklenjena. Odklenite nekatera poglavja, da premaknete njihove čase.",
"ToastChaptersHaveErrors": "Poglavja imajo napake",
"ToastChaptersInvalidShiftAmountLast": "Neveljavna vrednost zamika. Začetni čas zadnjega poglavja bi presegel trajanje te zvočne knjige.",
"ToastChaptersInvalidShiftAmountStart": "Neveljavna vrednost zamika. Prvo poglavje bi imelo ničelno ali negativno dolžino in bi ga prepisalo drugo poglavje. Povečajte začetno trajanje drugega poglavja.",
@@ -1032,6 +1046,7 @@
"ToastInvalidImageUrl": "Neveljaven URL slike",
"ToastInvalidMaxEpisodesToDownload": "Neveljavno največje število epizod za prenos",
"ToastInvalidUrl": "Neveljaven URL",
+ "ToastInvalidUrls": "Eden ali več URL-jev je neveljavnih",
"ToastItemCoverUpdateSuccess": "Naslovnica elementa je bila posodobljena",
"ToastItemDeletedFailed": "Elementa ni bilo mogoče izbrisati",
"ToastItemDeletedSuccess": "Element je bil izbrisan",
@@ -1081,6 +1096,7 @@
"ToastPlaylistUpdateSuccess": "Seznam predvajanja je bil posodobljen",
"ToastPodcastCreateFailed": "Podcasta ni bilo mogoče ustvariti",
"ToastPodcastCreateSuccess": "Podcast je bil uspešno ustvarjen",
+ "ToastPodcastEpisodeUpdated": "Epizoda je bila posodobljena",
"ToastPodcastGetFeedFailed": "Vira podcasta ni bilo mogoče pridobiti",
"ToastPodcastNoEpisodesInFeed": "V viru RSS ni bilo mogoče najti nobene epizode",
"ToastPodcastNoRssFeed": "Podcast nima vira RSS",
@@ -1131,5 +1147,13 @@
"ToastUserPasswordChangeSuccess": "Geslo je bilo uspešno spremenjeno",
"ToastUserPasswordMismatch": "Gesli se ne ujemata",
"ToastUserPasswordMustChange": "Novo geslo se ne sme ujemati s starim geslom",
- "ToastUserRootRequireName": "Vnesti morate korensko uporabniško ime"
+ "ToastUserRootRequireName": "Vnesti morate korensko uporabniško ime",
+ "TooltipAddChapters": "Dodaj poglavje(-a)",
+ "TooltipAddOneSecond": "Dodaj 1 sekundo",
+ "TooltipAdjustChapterStart": "Kliknite za prilagoditev začetnega časa",
+ "TooltipLockAllChapters": "Zakleni vsa poglavja",
+ "TooltipLockChapter": "Zakleni poglavje (Shift+klik za obseg)",
+ "TooltipSubtractOneSecond": "Odštej 1 sekundo",
+ "TooltipUnlockAllChapters": "Odkleni vsa poglavja",
+ "TooltipUnlockChapter": "Odkleni poglavje (Shift+klik za obseg)"
}
diff --git a/client/strings/sv.json b/client/strings/sv.json
index c4ed24ef..45917401 100644
--- a/client/strings/sv.json
+++ b/client/strings/sv.json
@@ -106,7 +106,7 @@
"ButtonStats": "Statistik",
"ButtonSubmit": "Skicka",
"ButtonTest": "Testa",
- "ButtonUnlinkOpenId": "Koppla från OpenID",
+ "ButtonUnlinkOpenId": "Koppla ifrån OpenID",
"ButtonUpload": "Ladda upp",
"ButtonUploadBackup": "Läs in säkerhetskopia",
"ButtonUploadCover": "Ladda upp omslag",
@@ -244,7 +244,7 @@
"LabelAlreadyInYourLibrary": "Finns redan i samlingen",
"LabelApiKeyCreated": "API-nyckel \"{0}\" har adderats.",
"LabelApiKeyCreatedDescription": "Se till att kopiera API-nyckeln omedelbart eftersom du inte kommer att kunna se den igen.",
- "LabelApiKeyUser": "Agera på uppdrag av användare",
+ "LabelApiKeyUser": "Utför på uppdrag av användare",
"LabelApiKeyUserDescription": "Denna API-nyckel kommer att ha samma behörigheter som användaren den agerar på uppdrag av. Detta kommer att visas på samma sätt i loggarna som om användaren gjorde begäran.",
"LabelApiToken": "API-token",
"LabelAppend": "Lägg till",
@@ -301,7 +301,7 @@
"LabelCoverProvider": "Källa för omslag",
"LabelCreatedAt": "Skapad",
"LabelCronExpression": "Schemaläggning med hjälp av Cron (Cron Expression)",
- "LabelCurrent": "Nuvarande plats",
+ "LabelCurrent": "Nuvarande omslag",
"LabelCurrently": "För närvarande:",
"LabelCustomCronExpression": "Anpassat Cron-uttryck:",
"LabelDatetime": "Datum och klockslag",
@@ -370,14 +370,15 @@
"LabelFeedURL": "URL-adress för flödet",
"LabelFetchingMetadata": "Hämtar metadata",
"LabelFile": "Fil",
- "LabelFileBirthtime": "Tidpunkt, fil skapad",
+ "LabelFileBirthtime": "Tidpunkt, adderad",
"LabelFileBornDate": "Skapad {0}",
- "LabelFileModified": "Tidpunkt, fil ändrad",
+ "LabelFileModified": "Tidpunkt, ändrad",
"LabelFileModifiedDate": "Ändrad {0}",
"LabelFilename": "Filnamn",
"LabelFilterByUser": "Välj användare",
"LabelFindEpisodes": "Sök avsnitt",
"LabelFinished": "Avslutad",
+ "LabelFinishedDate": "Avslutad {0}",
"LabelFolder": "Mapp",
"LabelFolders": "Mappar",
"LabelFontBold": "Fetstil",
@@ -436,6 +437,8 @@
"LabelLibraryItem": "Objekt",
"LabelLibraryName": "Biblioteksnamn",
"LabelLibrarySortByProgress": "Framsteg uppdaterat",
+ "LabelLibrarySortByProgressFinished": "Avslutsdag",
+ "LabelLibrarySortByProgressStarted": "Startdag",
"LabelLimit": "Begränsning",
"LabelLineSpacing": "Radavstånd",
"LabelListenAgain": "Lyssna igen",
@@ -446,7 +449,7 @@
"LabelLowestPriority": "Lägst prioritet",
"LabelMatchConfidence": "Förtroende",
"LabelMatchExistingUsersBy": "Matcha befintliga användare med",
- "LabelMatchExistingUsersByDescription": "Används för att koppla existerande användare. När kopplingen sker kommer användaren att matchas med ett unikt ID från SSO-leverantören.",
+ "LabelMatchExistingUsersByDescription": "Används för att ansluta befintlig användare. När anslutningen sker kommer användaren att matchas med ett unikt ID från SSO-leverantören.",
"LabelMaxEpisodesToDownload": "Maximalt antal avsnitt att ladda ner (0 = obegränsat).",
"LabelMaxEpisodesToDownloadPerCheck": "Maximalt antal nya avsnitt att ladda ner per tillfälle",
"LabelMaxEpisodesToKeep": "Maximalt antal avsnitt att behålla",
@@ -459,7 +462,7 @@
"LabelMetadataProvider": "Källa för metadata",
"LabelMinute": "Minut",
"LabelMinutes": "Minuter",
- "LabelMissing": "Saknar",
+ "LabelMissing": "Saknas",
"LabelMissingEbook": "Saknar e-bok",
"LabelMissingSupplementaryEbook": "Saknar kompletterande e-bok",
"LabelMobileRedirectURIs": "Tillåtna mobila omdirigerings-URI:er",
@@ -469,7 +472,7 @@
"LabelName": "Namn",
"LabelNarrator": "Uppläsare",
"LabelNarrators": "Uppläsare",
- "LabelNew": "Ny plats",
+ "LabelNew": "Nytt omslag",
"LabelNewPassword": "Nytt lösenord",
"LabelNewestAuthors": "Senaste författarna",
"LabelNewestEpisodes": "Senaste avsnitten",
@@ -492,6 +495,7 @@
"LabelNotificationsMaxQueueSize": "Max köstorlek för aviseringsevenemang",
"LabelNotificationsMaxQueueSizeHelp": "Evenemang är begränsade till att utlösa ett per sekund. Evenemang kommer att ignoreras om kön är full. Detta förhindrar aviseringsspam.",
"LabelNumberOfBooks": "Antal böcker",
+ "LabelNumberOfChapters": "Antal kapitel:",
"LabelNumberOfEpisodes": "# av Avsnitt",
"LabelOpenIDAdvancedPermsClaimDescription": "Namn på OpenID-anspråket som innehåller avancerade behörigheter för användaråtgärder i applikationen, vilka gäller för icke-administratörsroller (om konfigurerat). Om anspråket saknas i svaret kommer åtkomst till ABS att nekas. Om ett enskilt alternativ saknas kommer det att behandlas som falskt
. Se till att identitetsleverantörens anspråk matchar den förväntade strukturen:",
"LabelOpenIDClaims": "Lämna följande alternativ tomma för att inaktivera avancerad grupp- och behörighetstilldelning, och tilldela då automatiskt gruppen 'Användare'.",
@@ -634,6 +638,7 @@
"LabelStartTime": "Starttid",
"LabelStarted": "Startad",
"LabelStartedAt": "Startades",
+ "LabelStartedDate": "Påbörjad {0}",
"LabelStatsAudioTracks": "Ljudfiler",
"LabelStatsAuthors": "Författare",
"LabelStatsBestDay": "Bästa dag",
@@ -686,10 +691,10 @@
"LabelTotalTimeListened": "Total tid lyssnad",
"LabelTrackFromFilename": "Plats från filnamnet",
"LabelTrackFromMetadata": "Plats från metadata",
- "LabelTracks": "Spår",
- "LabelTracksMultiTrack": "Flerspårigt",
- "LabelTracksNone": "Inga spår",
- "LabelTracksSingleTrack": "Enspårigt",
+ "LabelTracks": "Ljudspår",
+ "LabelTracksMultiTrack": "Flera ljudspår",
+ "LabelTracksNone": "Inga ljudspår",
+ "LabelTracksSingleTrack": "Ett ljudspår",
"LabelTrailer": "Trailer",
"LabelType": "Typ",
"LabelUnabridged": "Oavkortad",
@@ -730,6 +735,7 @@
"LabelYourProgress": "Framsteg",
"MessageAddToPlayerQueue": "Lägg till i spellistan",
"MessageAppriseDescription": "För att använda den här funktionen behöver du ha en instans av Apprise API startad eller ett API som hanterar dessa förfrågningar.
URL-adressen till Apprise API bör vara hela sökvägen för att skicka meddelandet, t.ex., om din API-instans är tillgänglig på http://192.168.1.1:8337
, bör du ange http://192.168.1.1:8337/notify
.",
+ "MessageAsinCheck": "Säkerställ att du använder ASIN-kod för rätt region/område.",
"MessageAuthenticationLegacyTokenWarning": "Legacy API-koder kommer att raderas i framtiden. Använd denna istället: API Keys.",
"MessageAuthenticationOIDCChangesRestart": "Du måste starta om servern efter att du ändrat eller adderat OIDC (OpenID Connect).",
"MessageAuthenticationSecurityMessage": "Identifieringen av användare har förbättrats av säkerhetsskäl. Alla användare måste därför logga in på nytt.",
@@ -773,7 +779,7 @@
"MessageConfirmMarkSeriesFinished": "Är du säker på att du vill markera alla böcker i denna serie som avslutade?",
"MessageConfirmMarkSeriesNotFinished": "Är du säker på att du vill markera alla böcker i denna serie som ej avslutade?",
"MessageConfirmPurgeCache": "När du rensar cashen kommer katalogen /metadata/cache
att raderas.
Är du säker på att du vill radera katalogen?",
- "MessageConfirmPurgeItemsCache": "När du rensar cashen för föremål kommer katalogen /metadata/cache/items
att raderas.
Är du säker på att du vill radera katalogen?",
+ "MessageConfirmPurgeItemsCache": "När du rensar cashen för objekten kommer katalogen /metadata/cache/items
att raderas.
Är du säker på att du vill radera katalogen?",
"MessageConfirmQuickEmbed": "VARNING! När du infogar metadata i dina ljudfiler kommer INGEN SÄKERHETSKOPIA av filerna att göras. Se därför till att först säkerhetskopiera ljudfilerna.
Vill du fortsätta?",
"MessageConfirmQuickMatchEpisodes": "Snabbmatchning av avsnitt kommer att ersätta befintlig information vid en träff. Endast omatchade avsnitt kommer att uppdateras. Vill du fortsätta?",
"MessageConfirmReScanLibraryItems": "Är du säker på att du vill göra en ny skanning för {0} objekt?",
@@ -808,7 +814,7 @@
"MessageInsertChapterBelow": "Infoga kapitel nedanför",
"MessageInvalidAsin": "Felaktig ASIN-kod",
"MessageItemsSelected": "{0} objekt markerade",
- "MessageItemsUpdated": "{0} Objekt uppdaterade",
+ "MessageItemsUpdated": "{0} objekt uppdaterade",
"MessageJoinUsOn": "Anslut dig till oss på",
"MessageLoading": "Laddar...",
"MessageLoadingFolders": "Laddar mappar...",
@@ -881,7 +887,7 @@
"MessageSetChaptersFromTracksDescription": "Använd varje ljudfil som ett kapitel och ljudfilens namn som kapitlets rubrik",
"MessageShareExpirationWillBe": "Giltig till kommer att bli {0}",
"MessageShareExpiresIn": "Upphör om {0}",
- "MessageStartPlaybackAtTime": "Starta uppspelning av \"{0}\" vid tidpunkt {1}?",
+ "MessageStartPlaybackAtTime": "Starta uppspelning av \"{0}\" från tidpunkt {1}?",
"MessageTaskAudioFileNotWritable": "Det går inte att skriva till ljudfilen \"{0}\"",
"MessageTaskCanceledByUser": "Uppgiften avslutades av användaren",
"MessageTaskDownloadingEpisodeDescription": "Laddar ner avsnitt \"{0}\"",
@@ -915,7 +921,7 @@
"MessageTaskTargetDirectoryNotWritable": "Det är inte tillåtet att skriva i den angivna katalogen",
"MessageThinking": "Tänker...",
"MessageUploaderItemFailed": "Misslyckades med att ladda upp",
- "MessageUploaderItemSuccess": "har blivit uppladdad!",
+ "MessageUploaderItemSuccess": "har blivit uppladdat!",
"MessageUploading": "Laddar upp...",
"MessageValidCronExpression": "Giltigt cron-uttryck",
"MessageWatcherIsDisabledGlobally": "Automatisk bevakning av förändringar är inaktiverad under rubriken 'Inställningar'",
@@ -979,7 +985,7 @@
"ToastBackupInvalidMaxSize": "Felaktig storlek på backup har angivits",
"ToastBackupRestoreFailed": "Det gick inte att återställa säkerhetskopian",
"ToastBackupUploadFailed": "Det gick inte att ladda upp säkerhetskopian",
- "ToastBackupUploadSuccess": "Säkerhetskopian uppladdad",
+ "ToastBackupUploadSuccess": "Säkerhetskopian har laddats upp",
"ToastBatchApplyDetailsToItemsSuccess": "Informationen har adderats till alla objekt",
"ToastBatchQuickMatchStarted": "Snabbmatchning av {0} böcker har påbörjats!",
"ToastBatchUpdateFailed": "Batchuppdateringen misslyckades",
@@ -990,6 +996,7 @@
"ToastBulkChapterInvalidCount": "Ange ett nummer mellan 1 och 150",
"ToastCachePurgeFailed": "Misslyckades med att rensa cachen",
"ToastCachePurgeSuccess": "Rensning av cachen har genomförts",
+ "ToastChapterLocked": "Kapitlet är låst.",
"ToastChapterStartTimeAdjusted": "Kapitlets starttid justerades med {0} sekunder",
"ToastChaptersAllLocked": "Alla kapitel är låsta. Lås upp några av dem för att kunna ändra deras tider.",
"ToastChaptersHaveErrors": "Kapitlen har fel",
@@ -1022,8 +1029,9 @@
"ToastFailedToShare": "Misslyckades med att dela",
"ToastFailedToUpdate": "Misslyckades med att uppdatera",
"ToastInvalidImageUrl": "Felaktig URL-adress till omslagsbilden",
- "ToastInvalidMaxEpisodesToDownload": "Ogiltigt maximalt antal avsnitt att ladda ner",
+ "ToastInvalidMaxEpisodesToDownload": "Felaktigt värde angivet för maximalt antal avsnitt att ladda ner",
"ToastInvalidUrl": "Felaktig URL-adress",
+ "ToastInvalidUrls": "En eller flera URL-adresser är felaktig",
"ToastItemCoverUpdateSuccess": "Objektets omslag har uppdaterats",
"ToastItemDeletedFailed": "Misslyckades med att radera objektet",
"ToastItemDeletedSuccess": "Objektet har raderats",
@@ -1052,7 +1060,7 @@
"ToastNewUserCreatedFailed": "Misslyckades med att skapa kontot \"{0}\"",
"ToastNewUserCreatedSuccess": "Ett nytt konto har skapats",
"ToastNewUserLibraryError": "Minst ett bibliotek måste anges",
- "ToastNewUserPasswordError": "Ett lösenord måste anges. Endast användaren 'root' kan vara utan lösenord.",
+ "ToastNewUserPasswordError": "Ett lösenord måste anges. Endast användaren 'root' tillåts sakna lösenord.",
"ToastNewUserTagError": "Minst en tagg måste läggas till",
"ToastNewUserUsernameError": "Ange ett användarnamn",
"ToastNoNewEpisodesFound": "Inga nya avsnitt kunde hittas",
@@ -1062,6 +1070,7 @@
"ToastNotificationDeleteFailed": "Misslyckades med att radera meddelandet",
"ToastNotificationFailedMaximum": "Maximalt antal misslyckade försök måste vara större än eller lika med 0",
"ToastNotificationSettingsUpdateSuccess": "Inställningarna för meddelanden har ändrats",
+ "ToastNotificationTestTriggerFailed": "Misslyckades med att skicka testmeddelandet",
"ToastNotificationUpdateSuccess": "Meddelandet har uppdaterats",
"ToastPlaylistCreateFailed": "Det gick inte att skapa spellistan",
"ToastPlaylistCreateSuccess": "Spellistan skapad",
@@ -1069,6 +1078,7 @@
"ToastPlaylistUpdateSuccess": "Spellistan har uppdaterats",
"ToastPodcastCreateFailed": "Misslyckades med att skapa podcasten",
"ToastPodcastCreateSuccess": "Podcasten skapades framgångsrikt",
+ "ToastPodcastEpisodeUpdated": "Avsnittet har uppdaterats",
"ToastPodcastNoEpisodesInFeed": "Inga avsnitt finns i RSS-flödet",
"ToastPodcastNoRssFeed": "Denna podcast har ingen RSS-flöde",
"ToastProviderCreatedFailed": "Misslyckades med att addera en källa",
diff --git a/client/strings/uk.json b/client/strings/uk.json
index 9e6ac9f4..6f2ed293 100644
--- a/client/strings/uk.json
+++ b/client/strings/uk.json
@@ -378,6 +378,7 @@
"LabelFilterByUser": "Фільтрувати за користувачем",
"LabelFindEpisodes": "Знайти епізоди",
"LabelFinished": "Завершено",
+ "LabelFinishedDate": "Завершено {0}",
"LabelFolder": "Тека",
"LabelFolders": "Теки",
"LabelFontBold": "Жирний",
@@ -436,6 +437,8 @@
"LabelLibraryItem": "Елемент бібліотеки",
"LabelLibraryName": "Назва бібліотеки",
"LabelLibrarySortByProgress": "Прогрес оновлено",
+ "LabelLibrarySortByProgressFinished": "Дата завершення",
+ "LabelLibrarySortByProgressStarted": "Дата початку",
"LabelLimit": "Обмеження",
"LabelLineSpacing": "Відстань між рядками",
"LabelListenAgain": "Слухати знову",
@@ -635,6 +638,7 @@
"LabelStartTime": "Час початку",
"LabelStarted": "Стартував",
"LabelStartedAt": "Почато з",
+ "LabelStartedDate": "Розпочато {0}",
"LabelStatsAudioTracks": "Аудіодоріжки",
"LabelStatsAuthors": "Автори",
"LabelStatsBestDay": "Найкращий день",
diff --git a/client/strings/zh-cn.json b/client/strings/zh-cn.json
index 42eee1ac..0cfc63d0 100644
--- a/client/strings/zh-cn.json
+++ b/client/strings/zh-cn.json
@@ -378,6 +378,7 @@
"LabelFilterByUser": "按用户筛选",
"LabelFindEpisodes": "查找剧集",
"LabelFinished": "已听完",
+ "LabelFinishedDate": "完成于 {0}",
"LabelFolder": "文件夹",
"LabelFolders": "文件夹",
"LabelFontBold": "加粗",
@@ -436,6 +437,8 @@
"LabelLibraryItem": "媒体库项目",
"LabelLibraryName": "媒体库名称",
"LabelLibrarySortByProgress": "进度更新时间",
+ "LabelLibrarySortByProgressFinished": "完成日期",
+ "LabelLibrarySortByProgressStarted": "开始日期",
"LabelLimit": "限制",
"LabelLineSpacing": "行间距",
"LabelListenAgain": "再次收听",
@@ -635,6 +638,7 @@
"LabelStartTime": "开始时间",
"LabelStarted": "开始于",
"LabelStartedAt": "收听始于",
+ "LabelStartedDate": "开始于 {0}",
"LabelStatsAudioTracks": "音轨",
"LabelStatsAuthors": "作者",
"LabelStatsBestDay": "单日最高",