From 604f17f60b78ea3a6d8a2a06687ef242f0db0e9d Mon Sep 17 00:00:00 2001 From: kuci-JK Date: Mon, 11 Aug 2025 22:53:01 +0200 Subject: [PATCH 01/27] Translated using Weblate (Czech) Currently translated at 98.6% (1123 of 1138 strings) Translation: Audiobookshelf/Abs Web Client Translate-URL: https://hosted.weblate.org/projects/audiobookshelf/abs-web-client/cs/ --- client/strings/cs.json | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/client/strings/cs.json b/client/strings/cs.json index 547806d37..cd9208e9e 100644 --- a/client/strings/cs.json +++ b/client/strings/cs.json @@ -199,6 +199,7 @@ "HeaderSettingsExperimental": "Experimentální funkce", "HeaderSettingsGeneral": "Obecné", "HeaderSettingsScanner": "Skener", + "HeaderSettingsSecurity": "Zabezpečení", "HeaderSettingsWebClient": "Webový klient", "HeaderSleepTimer": "Časovač vypnutí", "HeaderStatsLargestItems": "Největší položky", @@ -293,6 +294,7 @@ "LabelContinueListening": "Pokračovat v poslechu", "LabelContinueReading": "Pokračovat ve čtení", "LabelContinueSeries": "Pokračovat v sérii", + "LabelCorsAllowed": "Povolené CORS Origins", "LabelCover": "Obálka", "LabelCoverImageURL": "URL obrázku obálky", "LabelCoverProvider": "Poskytovatel obálky", @@ -418,6 +420,7 @@ "LabelLanguages": "Jazyky", "LabelLastBookAdded": "Poslední kniha přidána", "LabelLastBookUpdated": "Poslední kniha aktualizována", + "LabelLastProgressDate": "Poslední pokrok: {0}", "LabelLastSeen": "Naposledy viděno", "LabelLastTime": "Naposledy", "LabelLastUpdate": "Poslední aktualizace", @@ -430,6 +433,7 @@ "LabelLibraryFilterSublistEmpty": "Žádné {0}", "LabelLibraryItem": "Položka knihovny", "LabelLibraryName": "Název knihovny", + "LabelLibrarySortByProgress": "Aktualizace pokroku", "LabelLimit": "Omezit", "LabelLineSpacing": "Řádkování", "LabelListenAgain": "Poslouchat znovu", @@ -438,6 +442,7 @@ "LabelLogLevelWarn": "Varovat", "LabelLookForNewEpisodesAfterDate": "Hledat nové epizody po tomto datu", "LabelLowestPriority": "Nejnižší priorita", + "LabelMatchConfidence": "Jistota", "LabelMatchExistingUsersBy": "Přiřadit stávající uživatele podle", "LabelMatchExistingUsersByDescription": "Slouží k propojení stávajících uživatelů. Po propojení budou uživatelé přiřazeni k jedinečnému ID od poskytovatele SSO", "LabelMaxEpisodesToDownload": "Maximální # epizod pro stažení. Použijte 0 pro bez omezení.", @@ -801,6 +806,8 @@ "MessageFeedURLWillBe": "URL zdroje bude {0}", "MessageFetching": "Načítání...", "MessageForceReScanDescription": "znovu prohledá všechny soubory jako při novém skenování. ID3 tagy zvukových souborů OPF soubory a textové soubory budou skenovány jako nové.", + "MessageHeatmapListeningTimeTooltip": "{0} poslechnuto na {1}", + "MessageHeatmapNoListeningSessions": "Žádné relace poslouchání na {0}", "MessageImportantNotice": "Důležité upozornění!", "MessageInsertChapterBelow": "Vložit kapitolu níže", "MessageInvalidAsin": "Neplatný ASIN", @@ -1028,6 +1035,7 @@ "ToastInvalidImageUrl": "Neplatná URL obrázku", "ToastInvalidMaxEpisodesToDownload": "Neplatný maximální počet epizod ke stažení", "ToastInvalidUrl": "Neplatná URL", + "ToastInvalidUrls": "Alespoň jedna URL je neplatná", "ToastItemCoverUpdateSuccess": "Obálka předmětu byl aktualizována", "ToastItemDeletedFailed": "Smazání položky selhalo", "ToastItemDeletedSuccess": "Položka smazána", From d353cff1ae73eeb68b8ca8ade7eee374bfa222f3 Mon Sep 17 00:00:00 2001 From: Vito0912 <86927734+Vito0912@users.noreply.github.com> Date: Mon, 11 Aug 2025 07:17:35 +0200 Subject: [PATCH 02/27] Translated using Weblate (German) Currently translated at 100.0% (1138 of 1138 strings) Translation: Audiobookshelf/Abs Web Client Translate-URL: https://hosted.weblate.org/projects/audiobookshelf/abs-web-client/de/ --- client/strings/de.json | 1 + 1 file changed, 1 insertion(+) diff --git a/client/strings/de.json b/client/strings/de.json index 156667ec5..0e8f0995d 100644 --- a/client/strings/de.json +++ b/client/strings/de.json @@ -807,6 +807,7 @@ "MessageFeedURLWillBe": "Feed-URL wird {0} sein", "MessageFetching": "Wird abgerufen …", "MessageForceReScanDescription": "Durchsucht alle Dateien erneut, wie bei einem frischen Scan. ID3-Tags von Audiodateien, OPF-Dateien und Textdateien werden neu durchsucht.", + "MessageHeatmapListeningTimeTooltip": "{0} am {1} gehört", "MessageHeatmapNoListeningSessions": "Keine Hörsitzungen am {0}", "MessageImportantNotice": "Wichtiger Hinweis!", "MessageInsertChapterBelow": "Kapitel unten einfügen", From d268516fcb3754296371c426a5612e34ae1f11b4 Mon Sep 17 00:00:00 2001 From: Daniel Schosser Date: Mon, 11 Aug 2025 10:15:52 +0200 Subject: [PATCH 03/27] Translated using Weblate (German) Currently translated at 100.0% (1138 of 1138 strings) Translation: Audiobookshelf/Abs Web Client Translate-URL: https://hosted.weblate.org/projects/audiobookshelf/abs-web-client/de/ --- client/strings/de.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/strings/de.json b/client/strings/de.json index 0e8f0995d..017604ecb 100644 --- a/client/strings/de.json +++ b/client/strings/de.json @@ -807,7 +807,7 @@ "MessageFeedURLWillBe": "Feed-URL wird {0} sein", "MessageFetching": "Wird abgerufen …", "MessageForceReScanDescription": "Durchsucht alle Dateien erneut, wie bei einem frischen Scan. ID3-Tags von Audiodateien, OPF-Dateien und Textdateien werden neu durchsucht.", - "MessageHeatmapListeningTimeTooltip": "{0} am {1} gehört", + "MessageHeatmapListeningTimeTooltip": "{0} auf {1} gehört", "MessageHeatmapNoListeningSessions": "Keine Hörsitzungen am {0}", "MessageImportantNotice": "Wichtiger Hinweis!", "MessageInsertChapterBelow": "Kapitel unten einfügen", From 9238c388422e6056f6a7ccd5ecb6421d409ac97e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20F=C3=B6rster?= Date: Mon, 11 Aug 2025 16:34:05 +0200 Subject: [PATCH 04/27] Translated using Weblate (German) Currently translated at 100.0% (1138 of 1138 strings) Translation: Audiobookshelf/Abs Web Client Translate-URL: https://hosted.weblate.org/projects/audiobookshelf/abs-web-client/de/ --- client/strings/de.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/strings/de.json b/client/strings/de.json index 017604ecb..454e6c86b 100644 --- a/client/strings/de.json +++ b/client/strings/de.json @@ -1036,7 +1036,7 @@ "ToastInvalidImageUrl": "Ungültiger Bild URL", "ToastInvalidMaxEpisodesToDownload": "Ungültige Max. Anzahl an Episoden zum Herunterladen", "ToastInvalidUrl": "Ungültiger URL", - "ToastInvalidUrls": "Eine oder mehrere URLs sind in einem falschen Format", + "ToastInvalidUrls": "Eine oder mehrere URLs sind ungültig", "ToastItemCoverUpdateSuccess": "Titelbild aktualisiert", "ToastItemDeletedFailed": "Fehler beim löschen des Artikels", "ToastItemDeletedSuccess": "Artikel gelöscht", From bb477c617e0536ad406b126ab8fbb7bc015bd9ab Mon Sep 17 00:00:00 2001 From: Paolo Ricci Date: Tue, 12 Aug 2025 09:27:05 +0200 Subject: [PATCH 05/27] Translated using Weblate (Italian) Currently translated at 99.7% (1135 of 1138 strings) Translation: Audiobookshelf/Abs Web Client Translate-URL: https://hosted.weblate.org/projects/audiobookshelf/abs-web-client/it/ --- client/strings/it.json | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/client/strings/it.json b/client/strings/it.json index 7f4fd7c7a..04ef0ce42 100644 --- a/client/strings/it.json +++ b/client/strings/it.json @@ -1,6 +1,6 @@ { "ButtonAdd": "Aggiungi", - "ButtonAddApiKey": "Aggiungi chiave API", + "ButtonAddApiKey": "Aggiungi la chiave API", "ButtonAddChapters": "Aggiungi Capitoli", "ButtonAddDevice": "Aggiungi Dispositivo", "ButtonAddLibrary": "Aggiungi Libreria", @@ -121,6 +121,7 @@ "HeaderAccount": "Account", "HeaderAddCustomMetadataProvider": "Aggiungi fornitori di metadati personalizzati", "HeaderAdvanced": "Avanzate", + "HeaderApiKeys": "Le chiavi API", "HeaderAppriseNotificationSettings": "Apprendi le impostazioni di Notifica", "HeaderAudioTracks": "Tracce audio", "HeaderAudiobookTools": "Strumenti di gestione file audiolibri", @@ -164,6 +165,7 @@ "HeaderMetadataOrderOfPrecedence": "Priorità ordine Metadata", "HeaderMetadataToEmbed": "Metadata da incorporare", "HeaderNewAccount": "Nuovo Account", + "HeaderNewApiKey": "Nuova chiave API", "HeaderNewLibrary": "Nuova Libreria", "HeaderNotificationCreate": "Crea una notifica", "HeaderNotificationUpdate": "Aggiornamento della notifica", @@ -197,6 +199,7 @@ "HeaderSettingsExperimental": "Opzioni Sperimentali", "HeaderSettingsGeneral": "Generale", "HeaderSettingsScanner": "Scanner", + "HeaderSettingsSecurity": "Sicurezza", "HeaderSettingsWebClient": "Web Client", "HeaderSleepTimer": "Sveglia", "HeaderStatsLargestItems": "File pesanti", @@ -208,6 +211,7 @@ "HeaderTableOfContents": "Indice", "HeaderTools": "Strumenti", "HeaderUpdateAccount": "Aggiorna Account", + "HeaderUpdateApiKey": "Aggiornamento API chiave", "HeaderUpdateAuthor": "Aggiorna Autore", "HeaderUpdateDetails": "Aggiorna Dettagli", "HeaderUpdateLibrary": "Aggiorna Libreria", @@ -237,6 +241,10 @@ "LabelAllUsersExcludingGuests": "Tutti gli Utenti Esclusi gli ospiti", "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.", "LabelApiToken": "API Token", "LabelAppend": "Appese", "LabelAudioBitrate": "Audio Bitrate (es. 128k)", @@ -286,6 +294,7 @@ "LabelContinueListening": "Continua l'ascolto", "LabelContinueReading": "Continua la lettura", "LabelContinueSeries": "Continua serie", + "LabelCorsAllowed": "CORS consentiti Origine", "LabelCover": "Copertina", "LabelCoverImageURL": "Indirizzo della cover URL", "LabelCoverProvider": "Cover Sorgente", @@ -348,6 +357,10 @@ "LabelExample": "Esempio", "LabelExpandSeries": "Espandi Serie", "LabelExpandSubSeries": "Espandi Sub Serie", + "LabelExpired": "Scadenza", + "LabelExpiresAt": "Scade a", + "LabelExpiresInSeconds": "Scade in (secondi)", + "LabelExpiresNever": "Mai", "LabelExplicit": "Esplicito", "LabelExplicitChecked": "Esplicito (selezionato)", "LabelExplicitUnchecked": "Non Esplicito (selezionato)", @@ -407,6 +420,7 @@ "LabelLanguages": "Lingua", "LabelLastBookAdded": "Ultimo Libro Aggiunto", "LabelLastBookUpdated": "Ultimo Libro Aggiornato", + "LabelLastProgressDate": "Ultimi progressi: Si'", "LabelLastSeen": "Ultimi Visti", "LabelLastTime": "Ultima Volta", "LabelLastUpdate": "Ultimo Aggiornamento", @@ -419,6 +433,7 @@ "LabelLibraryFilterSublistEmpty": "Nessuno {0}", "LabelLibraryItem": "Elementi della biblioteca", "LabelLibraryName": "Nome della biblioteca", + "LabelLibrarySortByProgress": "Aggiornamento dei progressi", "LabelLimit": "Limiti", "LabelLineSpacing": "Interlinea", "LabelListenAgain": "Ascolta ancora", @@ -457,6 +472,7 @@ "LabelNewestEpisodes": "Nuovi episodi", "LabelNextBackupDate": "Data Prossimo Backup", "LabelNextScheduledRun": "Data prossima esecuzione schedulata", + "LabelNoApiKeys": "Nessuna chiave API", "LabelNoCustomMetadataProviders": "Nessun provider di metadati personalizzato", "LabelNoEpisodesSelected": "Nessun Episodio Selezionato", "LabelNotFinished": "Da completare", @@ -546,6 +562,7 @@ "LabelSelectAll": "Seleziona tutto", "LabelSelectAllEpisodes": "Seleziona tutti gli Episodi", "LabelSelectEpisodesShowing": "Selezionati {0} episodi da visualizzare", + "LabelSelectUser": "Seleziona l'utente", "LabelSelectUsers": "Selezione Utenti", "LabelSendEbookToDevice": "Invia il libro a...", "LabelSequence": "Sequenza", @@ -642,6 +659,7 @@ "LabelTheme": "Tema", "LabelThemeDark": "Scuro", "LabelThemeLight": "Chiaro", + "LabelThemeSepia": "Seppia", "LabelTimeBase": "Tempo base", "LabelTimeDurationXHours": "{0} Ore", "LabelTimeDurationXMinutes": "{0} minuti", @@ -710,7 +728,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.", "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.", "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.", @@ -732,6 +752,7 @@ "MessageChaptersNotFound": "Capitoli non trovati", "MessageCheckingCron": "Controllo cron...", "MessageConfirmCloseFeed": "Sei sicuro di voler chiudere questo feed?", + "MessageConfirmDeleteApiKey": "Sei sicuro di voler eliminare la chiave API \"{0}\"?", "MessageConfirmDeleteBackup": "Sei sicuro di voler eliminare il backup {0}?", "MessageConfirmDeleteDevice": "Sei sicuro/sicura di voler eliminare il lettore di libri {0}?", "MessageConfirmDeleteFile": "Questo eliminerà il file dal tuo file system. Sei sicuro?", @@ -759,6 +780,7 @@ "MessageConfirmRemoveAuthor": "Sei sicuro di voler rimuovere l'autore? \"{0}\"?", "MessageConfirmRemoveCollection": "Sei sicuro di voler rimuovere la Raccolta \"{0}\"?", "MessageConfirmRemoveEpisode": "Sei sicuro di voler rimuovere l'episodio \"{0}\"?", + "MessageConfirmRemoveEpisodeNote": "Nota: Questo non cancella il file audio a meno che non toggling \"Hard delete file\"", "MessageConfirmRemoveEpisodes": "Sei sicuro di voler rimuovere {0} episodi?", "MessageConfirmRemoveListeningSessions": "Sei sicuro di voler rimuovere {0} sessioni di Ascolto?", "MessageConfirmRemoveMetadataFiles": "Vuoi davvero rimuovere tutti i metadati.{0} file nelle cartelle degli elementi della tua libreria?", @@ -1002,6 +1024,8 @@ "ToastEpisodeDownloadQueueClearSuccess": "Coda di download degli episodi cancellata", "ToastEpisodeUpdateSuccess": "{0} episodi aggiornati", "ToastErrorCannotShare": "Impossibile condividere in modo nativo su questo dispositivo", + "ToastFailedToCreate": "Non creato", + "ToastFailedToDelete": "Non eliminata", "ToastFailedToLoadData": "Impossibile caricare i dati", "ToastFailedToMatch": "Impossibile abbinare", "ToastFailedToShare": "Impossibile condividere", @@ -1009,6 +1033,7 @@ "ToastInvalidImageUrl": "URL dell'immagine non valido", "ToastInvalidMaxEpisodesToDownload": "Numero massimo di episodi non valido da scaricare", "ToastInvalidUrl": "URL non valido", + "ToastInvalidUrls": "Uno o più URL sono invalidi", "ToastItemCoverUpdateSuccess": "Cover aggiornata", "ToastItemDeletedFailed": "Impossibile eliminare l'elemento", "ToastItemDeletedSuccess": "Elemento eliminato", @@ -1033,6 +1058,7 @@ "ToastMustHaveAtLeastOnePath": "Deve avere almeno un percorso", "ToastNameEmailRequired": "Nome ed email sono obbligatori", "ToastNameRequired": "Il nome è obbligatorio", + "ToastNewApiKeyUserError": "Deve selezionare un utente", "ToastNewEpisodesFound": "{0} nuovi episodi trovati", "ToastNewUserCreatedFailed": "Impossibile creare l'account: \"{0}\"", "ToastNewUserCreatedSuccess": "Nuovo account creato", From b290a4ada3451dc9ce8f8a67e5e38f0a89fe8dd2 Mon Sep 17 00:00:00 2001 From: Mathias Franco Date: Mon, 11 Aug 2025 10:36:30 +0200 Subject: [PATCH 06/27] Translated using Weblate (Dutch) Currently translated at 100.0% (1138 of 1138 strings) Translation: Audiobookshelf/Abs Web Client Translate-URL: https://hosted.weblate.org/projects/audiobookshelf/abs-web-client/nl/ --- client/strings/nl.json | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/client/strings/nl.json b/client/strings/nl.json index d5ba26db2..0dcd660e4 100644 --- a/client/strings/nl.json +++ b/client/strings/nl.json @@ -199,6 +199,7 @@ "HeaderSettingsExperimental": "Experimentele functies", "HeaderSettingsGeneral": "Algemeen", "HeaderSettingsScanner": "Scanner", + "HeaderSettingsSecurity": "Beveiliging", "HeaderSettingsWebClient": "Web Client", "HeaderSleepTimer": "Slaaptimer", "HeaderStatsLargestItems": "Grootste items", @@ -232,7 +233,7 @@ "LabelAddToPlaylist": "Toevoegen aan afspeellijst", "LabelAddToPlaylistBatch": "{0} onderdelen toevoegen aan afspeellijst", "LabelAddedAt": "Toegevoegd op", - "LabelAddedDate": "Toegevoegd {0}", + "LabelAddedDate": "{0} toegevoegd", "LabelAdminUsersOnly": "Enkel Admin gebruikers", "LabelAll": "Alle", "LabelAllEpisodesDownloaded": "Alle afleveringen gedownload", @@ -293,6 +294,7 @@ "LabelContinueListening": "Verder Luisteren", "LabelContinueReading": "Verder lezen", "LabelContinueSeries": "Doorgaan met Serie", + "LabelCorsAllowed": "CORS bronnen toestaan", "LabelCover": "Omslag", "LabelCoverImageURL": "Omslagafbeelding-URL", "LabelCoverProvider": "Omslag bron", @@ -805,6 +807,8 @@ "MessageFeedURLWillBe": "Feed URL zal {0} zijn", "MessageFetching": "Aan het ophalen...", "MessageForceReScanDescription": "zal alle bestanden opnieuw scannen als een verse scan. Audiobestanden ID3-tags, OPF-bestanden en textbestanden zullen als nieuw worden gescand.", + "MessageHeatmapListeningTimeTooltip": "{0} luistert op {1}", + "MessageHeatmapNoListeningSessions": "Geen luistersessies op {0}", "MessageImportantNotice": "Belangrijke opmerking!", "MessageInsertChapterBelow": "Hoofdstuk hieronder invoegen", "MessageInvalidAsin": "Ongeldige ASIN", @@ -1032,6 +1036,7 @@ "ToastInvalidImageUrl": "Ongeldige afbeeldings-URL", "ToastInvalidMaxEpisodesToDownload": "Ongeldig maximum aantal afleveringen om te downloaden", "ToastInvalidUrl": "Ongeldige URL", + "ToastInvalidUrls": "Een of meerdere URLs zijn ongeldig", "ToastItemCoverUpdateSuccess": "Omslag bijgewerkt", "ToastItemDeletedFailed": "Item verwijderen mislukt", "ToastItemDeletedSuccess": "Verwijderd item", From d1fabba86bebaa96301cd27fcc2cfc2be0c2ee0d Mon Sep 17 00:00:00 2001 From: Ivan Smoliakov Date: Tue, 12 Aug 2025 04:07:20 +0200 Subject: [PATCH 07/27] Translated using Weblate (Russian) Currently translated at 100.0% (1138 of 1138 strings) Translation: Audiobookshelf/Abs Web Client Translate-URL: https://hosted.weblate.org/projects/audiobookshelf/abs-web-client/ru/ --- client/strings/ru.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/strings/ru.json b/client/strings/ru.json index c8eed308b..db2a1a522 100644 --- a/client/strings/ru.json +++ b/client/strings/ru.json @@ -330,7 +330,7 @@ "LabelEmailSettingsFromAddress": "Адрес От", "LabelEmailSettingsRejectUnauthorized": "Отклонение неавторизованных сертификатов", "LabelEmailSettingsRejectUnauthorizedHelp": "Отключение проверки SSL-сертификата может подвергнуть ваше подключение рискам безопасности, таким как атаки типа \"man-in-the-middle\". Отключайте эту опцию только в том случае, если вы понимаете последствия и доверяете почтовому серверу, к которому подключаетесь.", - "LabelEmailSettingsSecure": "Безопасность", + "LabelEmailSettingsSecure": "Безопасно", "LabelEmailSettingsSecureHelp": "Если значение истинно, то соединение будет использовать TLS при подключении к серверу. Если значение ложно, то TLS будет использован, если сервер поддерживает расширение STARTTLS. В большинстве случаев установите это значение в истину, если вы подключаетесь к порту 465. Для порта 587 или 25 оставьте значение ложным. (из nodemailer.com/smtp/#authentication)", "LabelEmailSettingsTestAddress": "Тестовый адрес", "LabelEmbeddedCover": "Встроенная обложка", From 027e1efaca8dfdf40862f78201aaa892d8e0f2dc Mon Sep 17 00:00:00 2001 From: "Troj@" Date: Mon, 11 Aug 2025 10:45:47 +0200 Subject: [PATCH 08/27] Translated using Weblate (Belarusian) Currently translated at 66.5% (757 of 1138 strings) Translation: Audiobookshelf/Abs Web Client Translate-URL: https://hosted.weblate.org/projects/audiobookshelf/abs-web-client/be/ --- client/strings/be.json | 39 ++++++++++++++++++++++++++++++--------- 1 file changed, 30 insertions(+), 9 deletions(-) diff --git a/client/strings/be.json b/client/strings/be.json index 1e58d62b5..f812a13c9 100644 --- a/client/strings/be.json +++ b/client/strings/be.json @@ -110,7 +110,7 @@ "ButtonUpload": "Загрузіць", "ButtonUploadBackup": "Загрузіць рэзервовую копію", "ButtonUploadCover": "Загрузіць вокладку", - "ButtonUploadOPMLFile": "Загрузіць OPML файл", + "ButtonUploadOPMLFile": "Загрузіць файл OPML", "ButtonUserDelete": "Выдаліць карыстальніка {0}", "ButtonUserEdit": "Рэдагаваць карыстальніка {0}", "ButtonViewAll": "Прагледзець усе", @@ -294,7 +294,7 @@ "LabelContinueReading": "Працягнуць чытанне", "LabelContinueSeries": "Працягнуць серыі", "LabelCover": "Вокладка", - "LabelCoverImageURL": "URL малюнка вокладкі", + "LabelCoverImageURL": "URL выявы вокладкі", "LabelCoverProvider": "Крыніца вокладак", "LabelCreatedAt": "Дата стварэння", "LabelCronExpression": "Запіс Cron", @@ -354,6 +354,7 @@ "LabelExpiresInSeconds": "Тэрмін дзеяння заканчваецца праз (секунд)", "LabelExpiresNever": "Ніколі", "LabelExplicit": "Відверты", + "LabelExportOPML": "Экспарт OPML", "LabelFeedURL": "URL стужкі", "LabelFetchingMetadata": "Атрыманне метададзеных", "LabelFile": "Файл", @@ -370,6 +371,7 @@ "LabelHasSupplementaryEbook": "Мае дадатковую электронную кнігу", "LabelHideSubtitles": "Схаваць падзагалоўкі", "LabelHost": "Хост", + "LabelImageURLFromTheWeb": "URL выявы з інтэрнэту", "LabelInProgress": "У працэсе", "LabelIncomplete": "Незавершана", "LabelIntervalCustomDailyWeekly": "Карыстальніцкі штодзённы/штотыднёвы", @@ -400,6 +402,7 @@ "LabelLibraryFilterSublistEmpty": "Не {0}", "LabelLibraryItem": "Элемент бібліятэкі", "LabelLibraryName": "Імя бібліятэкі", + "LabelLibrarySortByProgress": "Прагрэс абноўлены", "LabelLimit": "Абмежаванне", "LabelLineSpacing": "Міжрадковы інтэрвал", "LabelListenAgain": "Паслухаць зноў", @@ -548,9 +551,9 @@ "LabelTimeToShift": "Час зрушэння ў секундах", "LabelTitle": "Назва", "LabelToolsEmbedMetadata": "Убудаваць метададзеныя", - "LabelToolsEmbedMetadataDescription": "Убудаваць метададзеныя ў аўдыёфайлы, уключаючы вокладку і раздзелы.", - "LabelToolsMakeM4bDescription": "Стварыць аўдыёкнігу ў фармаце .M4B з убудаванымі метададзенымі, вокладкай і раздзеламі.", - "LabelToolsSplitM4bDescription": "Стварэнне MP3 з M4B, падзеленага па раздзелах, з убудаванымі метададзенымі, вокладкай і раздзеламі.", + "LabelToolsEmbedMetadataDescription": "Убудаваць метададзеныя ў аўдыёфайлы, уключаючы выяву вокладкі і раздзелы.", + "LabelToolsMakeM4bDescription": "Стварыць аўдыёкнігу ў фармаце .M4B з убудаванымі метададзенымі, выявай вокладкі і раздзеламі.", + "LabelToolsSplitM4bDescription": "Стварэнне MP3 з M4B, падзеленага па раздзелах, з убудаванымі метададзенымі, выявай вокладкі і раздзеламі.", "LabelTotalDuration": "Агульная працягласць", "LabelTotalTimeListened": "Агульны час праслухоўвання", "LabelTrackFromFilename": "Дарожка з імя файла", @@ -612,6 +615,7 @@ "MessageConfirmEmbedMetadataInAudioFiles": "Ці ўпэўненыя вы, што жадаеце ўбудаваць метададзеныя ў {0} аўдыёфайлаў?", "MessageConfirmPurgeCache": "Ачышчэнне кэша выдаліць увесь каталог па адрасе /metadata/cache.

Ці сапраўды вы жадаеце выдаліць каталог кэша?", "MessageConfirmPurgeItemsCache": "Ачышчэнне кэша элементаў выдаліць увесь каталог па адрасе /metadata/cache/items.
Вы ўпэўнены?", + "MessageConfirmQuickMatchEpisodes": "Хуткае супадзенне эпізодаў перазапіша дэталі, калі супадзенне будзе знойдзена. Будуць абноўлены толькі эпізоды, якія не супадаюць. Вы ўпэўнены?", "MessageConfirmRemoveListeningSessions": "Вы ўпэўнены, што жадаеце выдаліць {0} сеансаў праслухоўвання?", "MessageConfirmRemoveMetadataFiles": "Ці ўпэўненыя вы, што жадаеце выдаліць усе файлы метададзеных{0} у тэчках элементаў вашай бібліятэкі?", "MessageConfirmRemovePlaylist": "Вы ўпэўненыя, што жадаеце выдаліць свой спіс прайгравання \"{0}\"?", @@ -622,6 +626,8 @@ "MessageEreaderDevices": "Каб забяспечыць дастаўку электронных кніг, вам можа спатрэбіцца дадаць вышэйзгаданы адрас электроннай пошты як дазволенага адпраўніка для кожнай прылады, пералічанай ніжэй.", "MessageFeedURLWillBe": "URL стужкі будзе {0}", "MessageFetching": "Атрыманне...", + "MessageInvalidAsin": "Няправільны ASIN", + "MessageItemsUpdated": "{0} элементаў абноўлена", "MessageLoading": "Загрузка...", "MessageLogsDescription": "Журналы захоўваюцца ў каталогу /metadata/logs у фармаце JSON. Журналы памылак захоўваюцца ў файле /metadata/logs/crashlogs.txt.", "MessageMapChapterTitles": "Супаставіць назвы раздзелаў з вашымі існуючымі раздзеламі аўдыякнігі без змянення часовых метак", @@ -641,13 +647,13 @@ "MessageNoUpdatesWereNecessary": "Абнаўленні не патрабаваліся", "MessageNoUserPlaylists": "У вас няма спісаў прайгравання", "MessageNoUserPlaylistsHelp": "Спісы прайгравання прыватныя. Толькі карыстальнік, які іх стварыў, можа іх бачыць.", - "MessageOpmlPreviewNote": "Заўвага: гэта папярэдні прагляд разабранага OPML-файла. Фактычная назва падкаста будзе ўзятая з RSS-стужкі.", + "MessageOpmlPreviewNote": "Заўвага: гэта папярэдні прагляд разабранага файла OPML. Фактычная назва падкаста будзе ўзятая з RSS-стужкі.", "MessagePlaylistCreateFromCollection": "Стварыць спіс прайгравання з калекцыі", "MessagePodcastHasNoRSSFeedForMatching": "У падкаста няма URL RSS-стужкі для супадзення", "MessagePodcastSearchField": "Увядзіце пошукавы запыт або URL RSS-стужкі", "MessageQuickMatchDescription": "Запоўніць пустыя дэталі элемента і вокладку першым вынікам супадзення з '{0}'. Не замяняе дэталі, калі опцыя «Аддаваць перавагу супадаючым метададзеным» на серверы не ўключана.", "MessageReportBugsAndContribute": "Паведамляйце пра памылкі, прапануйце новыя функцыі і ўдзельнічайце на", - "MessageRestoreBackupWarning": "Аднаўленне рэзервовай копіі перазапіша ўсю базу даных, размешчаную ў /config, а таксама вокладкі ў /metadata/items і /metadata/authors.

Рэзервовыя копіі не змяняюць файлы ў вашых тэчках бібліятэкі. Калі вы ўключылі наладкі сервера для захоўвання воклак і метададзеных у тэчках бібліятэкі, гэтыя файлы не будуць захаваныя ў рэзервовых копіях і не зменяцца.

Усе кліенты, якія карыстаюцца вашым серверам, будуць аўтаматычна абноўлены.", + "MessageRestoreBackupWarning": "Аднаўленне рэзервовай копіі перазапіша ўсю базу даных, размешчаную ў /config, а таксама выявы вокладкі ў /metadata/items і /metadata/authors.

Рэзервовыя копіі не змяняюць файлы ў вашых тэчках бібліятэкі. Калі вы ўключылі наладкі сервера для захоўвання воклак і метададзеных у тэчках бібліятэкі, гэтыя файлы не будуць захаваныя ў рэзервовых копіях і не зменяцца.

Усе кліенты, якія карыстаюцца вашым серверам, будуць аўтаматычна абноўлены.", "MessageScheduleRunEveryWeekdayAtTime": "Выконваць кожныя {0} у {1}", "MessageStartPlaybackAtTime": "Пачаць прайграванне для \"{0}\" з {1}?", "MessageTaskAudioFileNotWritable": "Аўдыёфайл \"{0}\" недаступны для запісу", @@ -668,13 +674,22 @@ "MessageTaskNoFilesToScan": "Няма файлаў для сканавання", "MessageTaskOpmlImport": "Імпарт OPML", "MessageTaskOpmlImportDescription": "Стварэнне падкастаў з {0} RSS-стужак", - "MessageTaskOpmlImportFeed": "Імпарт стужкі з OPML", + "MessageTaskOpmlImportFeed": "Імпарт стужкі OPML", "MessageTaskOpmlImportFeedDescription": "Імпартаванне RSS-стужкі \"{0}\"", "MessageTaskOpmlImportFeedFailed": "Не ўдалося атрымаць стужку падкаста", "MessageTaskOpmlImportFeedPodcastDescription": "Стварэнне падкаста \"{0}\"", "MessageTaskOpmlImportFeedPodcastExists": "Падкаст ужо існуе па гэтым шляху", "MessageTaskOpmlImportFeedPodcastFailed": "Не ўдалося стварыць падкаст", - "MessageTaskOpmlParseNoneFound": "У OPML-файле не знойдзена стужак", + "MessageTaskOpmlImportFinished": "Дададзена {0} падкастаў", + "MessageTaskOpmlParseFailed": "Не ўдалося разабраць файл OPML", + "MessageTaskOpmlParseFastFail": "Неправільны файл OPML: тэг не знойдзены АБО тэг не знойдзены", + "MessageTaskOpmlParseNoneFound": "У файле OPML не знойдзена стужак", + "MessageTaskScanItemsAdded": "{0} дададзена", + "MessageTaskScanItemsMissing": "{0} адсутнічае", + "MessageTaskScanItemsUpdated": "{0} абноўлена", + "MessageTaskScanNoChangesNeeded": "Змены не патрабуюцца", + "MessageTaskScanningFileChanges": "Сканіраванне змяненняў у файле \"{0}\"", + "MessageTaskScanningLibrary": "Сканіраванне бібліятэкі \"{0}\"", "MessageTaskTargetDirectoryNotWritable": "Мэтавы каталог недаступны для запісу", "NoteChapterEditorTimes": "Заўвага: Час пачатку першага раздзела павінен заставацца 0:00, а час пачатку апошняга раздзела не можа перавышаць працягласць гэтай аўдыякнігі.", "NoteRSSFeedPodcastAppsHttps": "Папярэджанне: большасць праграм для падкастаў патрабуюць, каб URL RSS-стужкі выкарыстоўваў HTTPS", @@ -687,6 +702,11 @@ "StatsBooksListenedTo": "кнігі, якія былі праслуханы", "StatsCollectionGrewTo": "Ваша калекцыя кніг павялічылася да…", "ToastAccountUpdateSuccess": "Уліковы запіс абноўлены", + "ToastAuthorImageRemoveSuccess": "Выява аўтара выдалена", + "ToastAuthorUpdateSuccess": "Аўтар абноўлены", + "ToastAuthorUpdateSuccessNoImageFound": "Аўтар абноўлены (малюнак не знойдзены)", + "ToastBackupInvalidMaxKeep": "Няправільная колькасць рэзервовых копій для захоўвання", + "ToastBackupInvalidMaxSize": "Няправільны максімальны памер рэзервовай копіі", "ToastBookmarkCreateFailed": "Не ўдалося стварыць закладку", "ToastDateTimeInvalidOrIncomplete": "Дата і час указаны некарэктна або не цалкам", "ToastDeviceTestEmailFailed": "Не ўдалося адправіць тэставае электроннае пісьмо", @@ -694,6 +714,7 @@ "ToastEncodeCancelSucces": "Кадаванне скасавана", "ToastEpisodeDownloadQueueClearFailed": "Не ўдалося ачысціць чаргу", "ToastEpisodeDownloadQueueClearSuccess": "Чарга спампоўкі эпізодаў ачышчана", + "ToastInvalidImageUrl": "Няправільны URL выявы", "ToastInvalidMaxEpisodesToDownload": "Няправільная максімальная колькасць эпізодаў для спампоўкі", "ToastItemMarkedAsFinishedFailed": "Не ўдалося пазначыць як Скончана", "ToastItemMarkedAsFinishedSuccess": "Элемент пазначаны як Завершаны", From 3a16acbba4a6810c729c87de0ec54951cab9b13b Mon Sep 17 00:00:00 2001 From: ugyes Date: Wed, 13 Aug 2025 08:31:47 +0200 Subject: [PATCH 09/27] Translated using Weblate (Hungarian) Currently translated at 99.8% (1136 of 1138 strings) Translation: Audiobookshelf/Abs Web Client Translate-URL: https://hosted.weblate.org/projects/audiobookshelf/abs-web-client/hu/ --- client/strings/hu.json | 3 +++ 1 file changed, 3 insertions(+) diff --git a/client/strings/hu.json b/client/strings/hu.json index 8fdbe52b4..bc77c561d 100644 --- a/client/strings/hu.json +++ b/client/strings/hu.json @@ -199,6 +199,7 @@ "HeaderSettingsExperimental": "Kísérleti funkciók", "HeaderSettingsGeneral": "Általános", "HeaderSettingsScanner": "Szkenner", + "HeaderSettingsSecurity": "Biztonság", "HeaderSettingsWebClient": "Webkliens", "HeaderSleepTimer": "Alvásidőzítő", "HeaderStatsLargestItems": "Legnagyobb elemek", @@ -293,6 +294,7 @@ "LabelContinueListening": "Hallgatás folytatása", "LabelContinueReading": "Olvasás folytatása", "LabelContinueSeries": "Sorozat folytatása", + "LabelCorsAllowed": "Megengedett CORS Originek", "LabelCover": "Borító", "LabelCoverImageURL": "Borítókép URL", "LabelCoverProvider": "Borító Szolgáltató", @@ -1032,6 +1034,7 @@ "ToastInvalidImageUrl": "Érvénytelen a kép URL címe", "ToastInvalidMaxEpisodesToDownload": "A letölthető epizódok száma érvénytelen", "ToastInvalidUrl": "Érvénytelen URL", + "ToastInvalidUrls": "Egy vagy több URL érvénytelen", "ToastItemCoverUpdateSuccess": "Elem borítója frissítve", "ToastItemDeletedFailed": "Nem sikerült törölni az elemet", "ToastItemDeletedSuccess": "Elem törölve", From 6d7639853ba972d0c8ee343cd73c438ed95332be Mon Sep 17 00:00:00 2001 From: Jan-Eric Myhrgren Date: Wed, 13 Aug 2025 13:26:02 +0200 Subject: [PATCH 10/27] Translated using Weblate (Swedish) Currently translated at 96.6% (1100 of 1138 strings) Translation: Audiobookshelf/Abs Web Client Translate-URL: https://hosted.weblate.org/projects/audiobookshelf/abs-web-client/sv/ --- client/strings/sv.json | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/client/strings/sv.json b/client/strings/sv.json index 208329460..15afc948f 100644 --- a/client/strings/sv.json +++ b/client/strings/sv.json @@ -198,6 +198,7 @@ "HeaderSettingsExperimental": "Experimentella funktioner", "HeaderSettingsGeneral": "Allmänt", "HeaderSettingsScanner": "Skanner", + "HeaderSettingsSecurity": "Säkerhet", "HeaderSettingsWebClient": "Webklient", "HeaderSleepTimer": "Timer för att sova", "HeaderStatsLargestItems": "Största objekten", @@ -241,6 +242,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", "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", @@ -291,6 +293,7 @@ "LabelContinueListening": "Fortsätt att lyssna", "LabelContinueReading": "Fortsätt att läsa", "LabelContinueSeries": "Fortsätt med serien", + "LabelCorsAllowed": "Godkänd CORS Origins", "LabelCover": "Omslag", "LabelCoverImageURL": "URL till omslagsbild", "LabelCoverProvider": "Källa för omslag", @@ -806,7 +809,7 @@ "MessageMarkAllEpisodesNotFinished": "Markera alla avsnitt som ej avslutade", "MessageMarkAsFinished": "Markera som avslutad", "MessageMarkAsNotFinished": "Markera som ej avslutad", - "MessageMatchBooksDescription": "kommer att försöka matcha böcker i biblioteket med en bok från den valda källan och fylla i uppgifter som saknas och omslag. Inga befintliga uppgifter kommer att ersättas.", + "MessageMatchBooksDescription": "kommer att försöka matcha böcker i biblioteket med en bok från den valda källan och fylla i uppgifter som saknas och omslag som saknas. Inga befintliga uppgifter kommer att ersättas.", "MessageNoAudioTracks": "Inga ljudfiler har hittats", "MessageNoAuthors": "Inga författare", "MessageNoBackups": "Inga säkerhetskopior", From b2a5fb46f194ce1af94ed8bd65f74634dd815aec Mon Sep 17 00:00:00 2001 From: Sneaky Date: Thu, 14 Aug 2025 19:50:21 +0200 Subject: [PATCH 11/27] Translated using Weblate (Swedish) Currently translated at 96.6% (1100 of 1138 strings) Translation: Audiobookshelf/Abs Web Client Translate-URL: https://hosted.weblate.org/projects/audiobookshelf/abs-web-client/sv/ --- client/strings/sv.json | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/client/strings/sv.json b/client/strings/sv.json index 15afc948f..f9f389191 100644 --- a/client/strings/sv.json +++ b/client/strings/sv.json @@ -181,6 +181,7 @@ "HeaderPlaylist": "Spellista", "HeaderPlaylistItems": "Böcker i spellistan", "HeaderPodcastsToAdd": "Podcaster att lägga till", + "HeaderPresets": "Förinställningar", "HeaderPreviewCover": "Förhandsgranska omslag", "HeaderRSSFeedGeneral": "RSS-information", "HeaderRSSFeedIsOpen": "RSS-flödet är öppet", @@ -419,6 +420,7 @@ "LabelLanguages": "Språk", "LabelLastBookAdded": "Bok senast adderad", "LabelLastBookUpdated": "Bok senast uppdaterad", + "LabelLastProgressDate": "Senaste framsteg: {0}", "LabelLastSeen": "Senast inloggad", "LabelLastTime": "Senaste tillfället", "LabelLastUpdate": "Senast uppdaterad", @@ -431,6 +433,7 @@ "LabelLibraryFilterSublistEmpty": "Ingen {0}", "LabelLibraryItem": "Objekt", "LabelLibraryName": "Biblioteksnamn", + "LabelLibrarySortByProgress": "Framsteg uppdaterat", "LabelLimit": "Begränsning", "LabelLineSpacing": "Radavstånd", "LabelListenAgain": "Lyssna igen", @@ -520,6 +523,7 @@ "LabelPrimaryEbook": "Primär e-bok", "LabelProgress": "Framsteg", "LabelProvider": "Källa", + "LabelProviderAuthorizationValue": "Värde för auktoriseringsheader", "LabelPubDate": "Publiceringsdatum", "LabelPublishYear": "Utgivningsår", "LabelPublishedDate": "Publicerad {0}", @@ -529,7 +533,7 @@ "LabelPublishers": "Utgivare", "LabelRSSFeedCustomOwnerEmail": "Anpassad ägarens e-post", "LabelRSSFeedCustomOwnerName": "Anpassat ägarnamn", - "LabelRSSFeedOpen": "Öppna RSS-flöde", + "LabelRSSFeedOpen": "RSS-flöde öppet", "LabelRSSFeedPreventIndexing": "Förhindra indexering", "LabelRSSFeedSlug": "RSS-flödesslag", "LabelRSSFeedURL": "URL-adress för RSS-flödet", @@ -612,14 +616,17 @@ "LabelSettingsTimeFormat": "Tidsformat", "LabelShare": "Dela", "LabelShareDownloadableHelp": "Tillåt att användare som fått en delad länk att ladda ner ett komprimerat objekt från biblioteket.", + "LabelShareOpen": "Delning öppet", "LabelShareURL": "Dela URL-länk", "LabelShowAll": "Visa alla", "LabelShowSeconds": "Visa i sekunder", "LabelShowSubtitles": "Visa underrubriker", "LabelSize": "Storlek", "LabelSleepTimer": "Sovtimer", + "LabelSlug": "Kortnamn", "LabelSortAscending": "Stigande", "LabelSortDescending": "Fallande", + "LabelSortPubDate": "Sortera efter publiceringsdatum", "LabelStart": "Start", "LabelStartTime": "Starttid", "LabelStarted": "Startad", @@ -708,6 +715,7 @@ "LabelViewPlayerSettings": "Visa inställningar för uppspelning", "LabelViewQueue": "Visa spellista", "LabelVolume": "Volym", + "LabelWebRedirectURLsDescription": "Auktorisera dessa URLer i din OAuth-leverantör för att tillåta omdirigering tillbaka till webbappen efter inloggning:", "LabelWeekdaysToRun": "Veckodagar att köra skanning", "LabelXBooks": "{0} böcker", "LabelXItems": "{0} objekt", From 8f310b6bf0a3830e105722d322225f1a1b876257 Mon Sep 17 00:00:00 2001 From: Hang Pham Date: Wed, 13 Aug 2025 16:11:29 +0200 Subject: [PATCH 12/27] Translated using Weblate (Vietnamese) Currently translated at 62.2% (708 of 1138 strings) Translation: Audiobookshelf/Abs Web Client Translate-URL: https://hosted.weblate.org/projects/audiobookshelf/abs-web-client/vi/ --- client/strings/vi-vn.json | 55 ++++++++++++++++++++++++++++++--------- 1 file changed, 43 insertions(+), 12 deletions(-) diff --git a/client/strings/vi-vn.json b/client/strings/vi-vn.json index 7dd46d4ae..b8a257209 100644 --- a/client/strings/vi-vn.json +++ b/client/strings/vi-vn.json @@ -1,5 +1,6 @@ { "ButtonAdd": "Thêm", + "ButtonAddApiKey": "Thêm API Key", "ButtonAddChapters": "Thêm Chương", "ButtonAddDevice": "Thêm Thiết Bị", "ButtonAddLibrary": "Thêm Thư Viện", @@ -9,6 +10,7 @@ "ButtonApply": "Áp Dụng", "ButtonApplyChapters": "Áp Dụng Chương", "ButtonAuthors": "Tác Giả", + "ButtonBack": "Quay lại", "ButtonBrowseForFolder": "Duyệt Thư Mục", "ButtonCancel": "Hủy", "ButtonCancelEncode": "Hủy Mã Hóa", @@ -17,7 +19,9 @@ "ButtonChooseAFolder": "Chọn một thư mục", "ButtonChooseFiles": "Chọn tập tin", "ButtonClearFilter": "Xóa Bộ Lọc", + "ButtonClose": "Đóng", "ButtonCloseFeed": "Đóng Feed", + "ButtonCloseSession": "Đóng phiên hiện tại", "ButtonCollections": "Bộ Sưu Tập", "ButtonConfigureScanner": "Cấu Hình Bộ Quét", "ButtonCreate": "Tạo", @@ -27,6 +31,10 @@ "ButtonEdit": "Chỉnh Sửa", "ButtonEditChapters": "Chỉnh Sửa Chương", "ButtonEditPodcast": "Chỉnh Sửa Podcast", + "ButtonEnable": "Kích hoạt", + "ButtonFireAndFail": "Chạy và báo lỗi", + "ButtonFireOnTest": "Chạy thử", + "ButtonForceReScan": "Quét lại", "ButtonFullPath": "Đường Dẫn Đầy Đủ", "ButtonHide": "Ẩn", "ButtonHome": "Trang Chủ", @@ -44,21 +52,28 @@ "ButtonNevermind": "Không Sao", "ButtonNext": "Tiếp Theo", "ButtonNextChapter": "Chương Tiếp Theo", + "ButtonNextItemInQueue": "Mục tiếp theo trong hàng đợi", + "ButtonOk": "Chấp nhận", "ButtonOpenFeed": "Mở Feed", "ButtonOpenManager": "Mở Quản Lý", "ButtonPause": "Tạm Dừng", "ButtonPlay": "Phát", + "ButtonPlayAll": "Phát tất cả", "ButtonPlaying": "Đang Phát", "ButtonPlaylists": "Danh Sách Phát", "ButtonPrevious": "Trước", "ButtonPreviousChapter": "Chương Trước", + "ButtonProbeAudioFile": "Kiểm tra tệp âm thanh", "ButtonPurgeAllCache": "Xóa Sạch Tất Cả Bộ Nhớ Cache", "ButtonPurgeItemsCache": "Xóa Sạch Bộ Nhớ Cache Các Mục", "ButtonQueueAddItem": "Thêm vào hàng đợi", "ButtonQueueRemoveItem": "Xóa khỏi hàng đợi", + "ButtonQuickEmbed": "Nhúng nhanh", "ButtonQuickMatch": "Khớp Nhanh", "ButtonReScan": "Quét Lại", "ButtonRead": "Đọc", + "ButtonReadLess": "Thu gọn", + "ButtonReadMore": "Đọc thêm", "ButtonRefresh": "Làm Mới", "ButtonRemove": "Xóa", "ButtonRemoveAll": "Xóa Tất Cả", @@ -74,6 +89,8 @@ "ButtonSaveTracklist": "Lưu Danh Sách Track", "ButtonScan": "Quét", "ButtonScanLibrary": "Quét Thư Viện", + "ButtonScrollLeft": "Cuộn trái", + "ButtonScrollRight": "Cuộn phải", "ButtonSearch": "Tìm Kiếm", "ButtonSelectFolderPath": "Chọn Đường Dẫn Thư Mục", "ButtonSetChaptersFromTracks": "Đặt chương từ các track", @@ -82,8 +99,10 @@ "ButtonShow": "Hiện", "ButtonStartM4BEncode": "Bắt đầu Mã Hóa M4B", "ButtonStartMetadataEmbed": "Bắt đầu Nhúng Dữ Liệu", + "ButtonStats": "Dữ liệu", "ButtonSubmit": "Gửi", "ButtonTest": "Kiểm Tra", + "ButtonUnlinkOpenId": "Huỷ liên kết OpenID", "ButtonUpload": "Tải Lên", "ButtonUploadBackup": "Tải Lên Bản Sao Lưu", "ButtonUploadCover": "Tải Lên Bìa", @@ -98,7 +117,7 @@ "HeaderAccount": "Tài Khoản", "HeaderAdvanced": "Nâng Cao", "HeaderAppriseNotificationSettings": "Cài Đặt Thông Báo Apprise", - "HeaderAudioTracks": "Các Track Âm Thanh", + "HeaderAudioTracks": "Danh Sách Âm Thanh", "HeaderAudiobookTools": "Công Cụ Quản Lý Tệp Truyện Nói", "HeaderAuthentication": "Xác Thực", "HeaderBackups": "Bản Sao Lưu", @@ -106,9 +125,10 @@ "HeaderChapters": "Chương", "HeaderChooseAFolder": "Chọn Một Thư Mục", "HeaderCollection": "Bộ Sưu Tập", - "HeaderCollectionItems": "Các Mục Bộ Sưu Tập", + "HeaderCollectionItems": "Danh sách Bộ Sưu Tập", "HeaderCover": "Bìa", "HeaderCurrentDownloads": "Tải Xuống Hiện Tại", + "HeaderCustomMessageOnLogin": "Tin nhắn tuỳ chọn khi đăng nhập", "HeaderCustomMetadataProviders": "Các Nhà Cung Cấp Metadata Tùy Chỉnh", "HeaderDetails": "Chi Tiết", "HeaderDownloadQueue": "Hàng Đợi Tải Xuống", @@ -139,6 +159,8 @@ "HeaderMetadataToEmbed": "Metadata để nhúng", "HeaderNewAccount": "Tài Khoản Mới", "HeaderNewLibrary": "Thư Viện Mới", + "HeaderNotificationCreate": "Tạo thông báo", + "HeaderNotificationUpdate": "Cập nhập thông báo", "HeaderNotifications": "Thông Báo", "HeaderOpenIDConnectAuthentication": "Xác Thực Mở ID Connect", "HeaderOpenRSSFeed": "Mở RSS Feed", @@ -146,6 +168,7 @@ "HeaderPasswordAuthentication": "Xác Thực Mật Khẩu", "HeaderPermissions": "Quyền Hạn", "HeaderPlayerQueue": "Hàng Đợi Người Chơi", + "HeaderPlayerSettings": "Cài đặt trình phát", "HeaderPlaylist": "Danh Sách Phát", "HeaderPlaylistItems": "Các Mục Danh Sách Phát", "HeaderPodcastsToAdd": "Podcasts để Thêm", @@ -156,6 +179,7 @@ "HeaderRemoveEpisodes": "Xóa {0} Tập", "HeaderSavedMediaProgress": "Tiến Trình Phương Tiện Đã Lưu", "HeaderSchedule": "Lịch Trình", + "HeaderScheduleEpisodeDownloads": "Đặt lịch tự động tải tập", "HeaderScheduleLibraryScans": "Lên Lịch Quét Tự Động Thư Viện", "HeaderSession": "Phiên", "HeaderSetBackupSchedule": "Đặt Lịch Sao Lưu", @@ -164,6 +188,7 @@ "HeaderSettingsExperimental": "Tính Năng Thử Nghiệm", "HeaderSettingsGeneral": "Chung", "HeaderSettingsScanner": "Máy Quét", + "HeaderSettingsSecurity": "Bảo mật", "HeaderSleepTimer": "Hẹn Giờ Tắt", "HeaderStatsLargestItems": "Các Mục Lớn Nhất", "HeaderStatsLongestItems": "Các Mục Dài Nhất (giờ)", @@ -174,6 +199,7 @@ "HeaderTableOfContents": "Mục Lục", "HeaderTools": "Công Cụ", "HeaderUpdateAccount": "Cập Nhật Tài Khoản", + "HeaderUpdateApiKey": "Cập nhập API Key", "HeaderUpdateAuthor": "Cập Nhật Tác Giả", "HeaderUpdateDetails": "Cập Nhật Chi Tiết", "HeaderUpdateLibrary": "Cập Nhật Thư Viện", @@ -190,6 +216,8 @@ "LabelAddToCollectionBatch": "Thêm {0} Sách vào Bộ Sưu Tập", "LabelAddToPlaylist": "Thêm vào Danh Sách Phát", "LabelAddedAt": "Đã Thêm Lúc", + "LabelAddedDate": "Đã thêm {0}", + "LabelAutoDownloadEpisodes": "Tự Động Tải Xuống Các Tập", "LabelBackupsMaxBackupSize": "Maximum backup size (in GB)", "LabelBooks": "Sách", "LabelButtonText": "Nút Văn Bản", @@ -231,7 +259,7 @@ "LabelDownloadNEpisodes": "Tải Xuống {0} Tập", "LabelDuration": "Thời Lượng", "LabelDurationFound": "Thời lượng được tìm thấy:", - "LabelEbooks": "Các Ebook", + "LabelEbooks": "", "LabelEdit": "Chỉnh Sửa", "LabelEmailSettingsFromAddress": "Địa chỉ Gửi từ", "LabelEmailSettingsSecure": "Bảo Mật", @@ -257,6 +285,7 @@ "LabelFolder": "Thư Mục", "LabelFolders": "Các Thư Mục", "LabelFontBold": "Đậm", + "LabelFontBoldness": "Chữ đậm", "LabelFontFamily": "Gia đình font", "LabelFontItalic": "Nghiêng", "LabelFontScale": "Tỷ lệ font", @@ -268,7 +297,7 @@ "LabelHasEbook": "Có ebook", "LabelHasSupplementaryEbook": "Có ebook bổ sung", "LabelHighestPriority": "Ưu tiên cao nhất", - "LabelHost": "Máy chủ", + "LabelHost": "Máy Chủ", "LabelHour": "Giờ", "LabelIcon": "Biểu tượng", "LabelImageURLFromTheWeb": "URL hình ảnh từ web", @@ -303,7 +332,7 @@ "LabelLibraryName": "Tên thư viện", "LabelLimit": "Giới hạn", "LabelLineSpacing": "Khoảng cách dòng", - "LabelListenAgain": "Nghe lại", + "LabelListenAgain": "Nghe Lại", "LabelLogLevelDebug": "Gỡ lỗi", "LabelLogLevelInfo": "Thông tin", "LabelLogLevelWarn": "Cảnh báo", @@ -312,13 +341,13 @@ "LabelMatchExistingUsersBy": "Kết hợp người dùng hiện có theo", "LabelMatchExistingUsersByDescription": "Sử dụng để kết nối người dùng hiện có. Khi kết nối, người dùng sẽ được kết hợp bằng một ID duy nhất từ nhà cung cấp SSO của bạn", "LabelMediaPlayer": "Trình phát đa phương tiện", - "LabelMediaType": "Loại phương tiện", + "LabelMediaType": "Loại Phương Tiện", "LabelMetaTag": "Thẻ Meta", "LabelMetaTags": "Các thẻ Meta", "LabelMetadataOrderOfPrecedenceDescription": "Nguồn siêu dữ liệu ưu tiên cao hơn sẽ ghi đè lên các nguồn siêu dữ liệu ưu tiên thấp hơn", "LabelMetadataProvider": "Nhà cung cấp siêu dữ liệu", "LabelMinute": "Phút", - "LabelMissing": "Thiếu", + "LabelMissing": "", "LabelMissingEbook": "Không có ebook", "LabelMissingSupplementaryEbook": "Không có ebook bổ sung", "LabelMobileRedirectURIs": "URI chuyển hướng di động được cho phép", @@ -335,7 +364,7 @@ "LabelNextBackupDate": "Ngày sao lưu tiếp theo", "LabelNextScheduledRun": "Chạy tiếp theo theo lịch trình", "LabelNoEpisodesSelected": "Không có tập nào được chọn", - "LabelNotFinished": "Chưa hoàn thành", + "LabelNotFinished": "Chưa Hoàn Thành", "LabelNotStarted": "Chưa bắt đầu", "LabelNotes": "Ghi chú", "LabelNotificationAppriseURL": "URL(s) thông báo", @@ -348,7 +377,7 @@ "LabelNotificationsMaxQueueSize": "Kích thước hàng đợi tối đa cho sự kiện thông báo", "LabelNotificationsMaxQueueSizeHelp": "Các sự kiện bị giới hạn mỗi giây chỉ gửi 1 lần. Các sự kiện sẽ bị bỏ qua nếu hàng đợi đạt kích thước tối đa. Điều này ngăn chặn spam thông báo.", "LabelNumberOfBooks": "Số lượng Sách", - "LabelNumberOfEpisodes": "# của Tập", + "LabelNumberOfEpisodes": "Số lượng tập", "LabelOpenRSSFeed": "Mở RSS Feed", "LabelOverwrite": "Ghi đè", "LabelPassword": "Mật khẩu", @@ -364,17 +393,19 @@ "LabelPhotoPathURL": "Đường dẫn/URL ảnh", "LabelPlayMethod": "Phương pháp phát", "LabelPlaylists": "Danh sách phát", + "LabelPodcast": "Podcast", "LabelPodcastSearchRegion": "Vùng tìm kiếm podcast", "LabelPodcastType": "Loại Podcast", - "LabelPodcasts": "Các podcast", + "LabelPodcasts": "Podcasts", "LabelPort": "Cổng", "LabelPrefixesToIgnore": "Tiền tố để bỏ qua (không phân biệt chữ hoa/chữ thường)", - "LabelPreventIndexing": "Ngăn chặn feed của bạn được chỉ mục bởi thư mục podcast của iTunes và Google", + "LabelPreventIndexing": "Ngăn Chặn Feed của bạn bị truy xuất bởi thư mục iTunes và Google podcast", "LabelPrimaryEbook": "Ebook chính", "LabelProgress": "Tiến độ", "LabelProvider": "Nhà cung cấp", "LabelPubDate": "Ngày Xuất bản", - "LabelPublishYear": "Năm Xuất bản", + "LabelPublishYear": "Năm Xuất Bản", + "LabelPublishedDate": "Xuất bản vào {0}", "LabelPublisher": "Nhà xuất bản", "LabelRSSFeedCustomOwnerEmail": "Email chủ sở hữu tùy chỉnh", "LabelRSSFeedCustomOwnerName": "Tên chủ sở hữu tùy chỉnh", From 7e2b51e6d292689d500c934a21bd03f516cc7e27 Mon Sep 17 00:00:00 2001 From: biuklija Date: Fri, 15 Aug 2025 12:04:10 +0200 Subject: [PATCH 13/27] Translated using Weblate (Croatian) Currently translated at 100.0% (1156 of 1156 strings) Translation: Audiobookshelf/Abs Web Client Translate-URL: https://hosted.weblate.org/projects/audiobookshelf/abs-web-client/hr/ --- client/strings/hr.json | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/client/strings/hr.json b/client/strings/hr.json index 7ef3f68e6..e1317908a 100644 --- a/client/strings/hr.json +++ b/client/strings/hr.json @@ -127,6 +127,7 @@ "HeaderAudiobookTools": "Alati za upravljanje datotekama zvučnih knjiga", "HeaderAuthentication": "Provjera autentičnosti", "HeaderBackups": "Sigurnosne kopije", + "HeaderBulkChapterModal": "Dodaj više poglavlja", "HeaderChangePassword": "Promjena zaporke", "HeaderChapters": "Poglavlja", "HeaderChooseAFolder": "Odaberi mapu", @@ -308,6 +309,7 @@ "LabelDeleteFromFileSystemCheckbox": "Izbriši datoteke (uklonite kvačicu ako stavku želite izbrisati samo iz baze podataka)", "LabelDescription": "Opis", "LabelDeselectAll": "Odznači sve", + "LabelDetectedPattern": "Prepoznat obrazac:", "LabelDevice": "Uređaj", "LabelDeviceInfo": "O uređaju", "LabelDeviceIsAvailableTo": "Uređaj je dostupan...", @@ -472,6 +474,7 @@ "LabelNewestAuthors": "Najnoviji autori", "LabelNewestEpisodes": "Najnoviji nastavci", "LabelNextBackupDate": "Sljedeća izrada sigurnosne kopije", + "LabelNextChapters": "Sljedeća poglavlja bit će:", "LabelNextScheduledRun": "Sljedeće zakazano izvođenje", "LabelNoApiKeys": "Nema API ključeva", "LabelNoCustomMetadataProviders": "Nema prilagođenih pružatelja meta-podataka", @@ -489,6 +492,7 @@ "LabelNotificationsMaxQueueSize": "Najveći broj događaja za obavijest u redu čekanja", "LabelNotificationsMaxQueueSizeHelp": "Događaji se mogu okinuti samo jednom u sekundi. Događaji će se zanemariti ako je red čekanja pun. Ovo sprečava prekomjerno slanje obavijesti.", "LabelNumberOfBooks": "Broj knjiga", + "LabelNumberOfChapters": "Broj poglavljâ:", "LabelNumberOfEpisodes": "broj nastavaka", "LabelOpenIDAdvancedPermsClaimDescription": "Naziv OpenID zahtjeva koji sadrži napredna dopuštenja za korisničke radnje u aplikaciji koje će se primijeniti na ne-administratorske uloge (ako su konfigurirane). Ako zahtjev nedostaje u odgovoru, pristup ABS-u neće se odobriti. Ako i jedna opcija nedostaje, smatrat će se da je false. Pripazite da zahtjev pružatelja identiteta uvijek odgovara očekivanoj strukturi:", "LabelOpenIDClaims": "Sljedeće opcije ostavite praznima ako želite onemogućiti napredno dodjeljivanje grupa i dozvola, odnosno ako želite automatski dodijeliti grupu 'korisnik'.", @@ -745,6 +749,7 @@ "MessageBookshelfNoResultsForFilter": "Nema rezultata za filter \"{0}: {1}\"", "MessageBookshelfNoResultsForQuery": "Vaš upit nema rezultata", "MessageBookshelfNoSeries": "Nemate niti jedan serijal", + "MessageBulkChapterPattern": "Koliko poglavlja želite dodati s ovim obrascem numeracije?", "MessageChapterEndIsAfter": "Kraj poglavlja je nakon kraja zvučne knjige", "MessageChapterErrorFirstNotZero": "Prvo poglavlje mora započeti u 0", "MessageChapterErrorStartGteDuration": "Netočno vrijeme početka, mora biti manje od trajanja zvučne knjige", @@ -948,6 +953,7 @@ "NotificationOnRSSFeedDisabledDescription": "Pokreće se kada su automatska preuzimanja nastavaka onemogućena zbog previše neuspjelih pokušaja", "NotificationOnRSSFeedFailedDescription": "Pokreće se u slučaju pogreške pri pokušaju automatskog preuzimanja nastavka s RSS izvora", "NotificationOnTestDescription": "Događaj za testiranje sustava obavijesti", + "PlaceholderBulkChapterInput": "Upišite naslov poglavlja ili ga numerirajte (npr. '1. nastavak', 'Poglavlje 10', '1.')", "PlaceholderNewCollection": "Ime nove zbirke", "PlaceholderNewFolderPath": "Nova putanja mape", "PlaceholderNewPlaylist": "Naziv novog popisa za izvođenje", @@ -1001,8 +1007,12 @@ "ToastBookmarkCreateFailed": "Izrada knjižne oznake nije uspjela", "ToastBookmarkCreateSuccess": "Knjižna oznaka dodana", "ToastBookmarkRemoveSuccess": "Knjižna oznaka uklonjena", + "ToastBulkChapterInvalidCount": "Upišite broj od 1 i 150", "ToastCachePurgeFailed": "Čišćenje predmemorije nije uspjelo", "ToastCachePurgeSuccess": "Predmemorija uspješno očišćena", + "ToastChapterLocked": "Poglavlje je zaključano.", + "ToastChapterStartTimeAdjusted": "Vrijeme početka poglavlja prilagođeno za {0} sekundi", + "ToastChaptersAllLocked": "Sva su poglavlja zaključana. Otključajte neka poglavlja za pomicanje njihovog vremena.", "ToastChaptersHaveErrors": "Poglavlja imaju pogreške", "ToastChaptersInvalidShiftAmountLast": "Neispravna vrijednost pomaka. Početak zadnjeg poglavlja bio bi nakon duljine trajanja ove zvučne knjige.", "ToastChaptersInvalidShiftAmountStart": "Neispravna vrijednost pomaka. Trajanje prvog poglavlja bilo bi nula ili negativno i drugo poglavlje bi ga prepisalo. Povećajte vrijeme početka drugog poglavlja.", @@ -1136,5 +1146,13 @@ "ToastUserPasswordChangeSuccess": "Zaporka je uspješno promijenjena", "ToastUserPasswordMismatch": "Zaporke se ne podudaraju", "ToastUserPasswordMustChange": "Nova zaporka ne smije biti jednaka staroj", - "ToastUserRootRequireName": "Obavezan je unos korisničkog imena root korisnika" + "ToastUserRootRequireName": "Obavezan je unos korisničkog imena root korisnika", + "TooltipAddChapters": "Dodavanje poglavlja", + "TooltipAddOneSecond": "Dodaj 1 sekundu", + "TooltipAdjustChapterStart": "Kliknite za uređivanje početnog vremena", + "TooltipLockAllChapters": "Zaključaj sva poglavlja", + "TooltipLockChapter": "Zaključaj poglavlje (Shift + klik za raspon)", + "TooltipSubtractOneSecond": "Oduzmi 1 sekundu", + "TooltipUnlockAllChapters": "Otključaj sva poglavlja", + "TooltipUnlockChapter": "Otključaj poglavlje (Shift+klik za raspon)" } From cea991b82f75ef2689ca57f39b46b25a57fa3219 Mon Sep 17 00:00:00 2001 From: vanapro1 Date: Fri, 15 Aug 2025 01:21:28 +0200 Subject: [PATCH 14/27] Translated using Weblate (Russian) Currently translated at 100.0% (1156 of 1156 strings) Translation: Audiobookshelf/Abs Web Client Translate-URL: https://hosted.weblate.org/projects/audiobookshelf/abs-web-client/ru/ --- client/strings/ru.json | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/client/strings/ru.json b/client/strings/ru.json index db2a1a522..efe38aebb 100644 --- a/client/strings/ru.json +++ b/client/strings/ru.json @@ -127,6 +127,7 @@ "HeaderAudiobookTools": "Инструменты файлов аудиокниг", "HeaderAuthentication": "Аутентификация", "HeaderBackups": "Бэкапы", + "HeaderBulkChapterModal": "Добавление нескольких глав", "HeaderChangePassword": "Изменить пароль", "HeaderChapters": "Главы", "HeaderChooseAFolder": "Выберите папку", @@ -308,6 +309,7 @@ "LabelDeleteFromFileSystemCheckbox": "Удалить из файловой системы (снимите флажок, чтобы удалить только из базы данных)", "LabelDescription": "Описание", "LabelDeselectAll": "Снять выделение", + "LabelDetectedPattern": "Обнаруженный образец:", "LabelDevice": "Устройство", "LabelDeviceInfo": "Информация об устройстве", "LabelDeviceIsAvailableTo": "Устройство доступно для...", @@ -472,6 +474,7 @@ "LabelNewestAuthors": "Новые авторы", "LabelNewestEpisodes": "Новые эпизоды", "LabelNextBackupDate": "Следующая дата бэкапирования", + "LabelNextChapters": "Следующие главы будут:", "LabelNextScheduledRun": "Следущий запланированный запуск", "LabelNoApiKeys": "API ключи отсутствуют", "LabelNoCustomMetadataProviders": "Нет пользовательских поставщиков метаданных", @@ -489,6 +492,7 @@ "LabelNotificationsMaxQueueSize": "Макс. размер очереди для событий уведомлений", "LabelNotificationsMaxQueueSizeHelp": "События ограничены 1 в секунду. События будут игнорированы если в очереди максимальное количество. Это предотвращает спам сообщениями.", "LabelNumberOfBooks": "Количество книг", + "LabelNumberOfChapters": "Кол-во глав:", "LabelNumberOfEpisodes": "# из эпизодов", "LabelOpenIDAdvancedPermsClaimDescription": "Имя утверждения OpenID, содержащего расширенные разрешения на действия пользователя в приложении, которые будут применяться к ролям, не являющимся администраторами (если они настроены). Если утверждение отсутствует в ответе, в доступе к ABS будет отказано. Если одна опция отсутствует, она будет рассматриваться как false. Убедитесь, что утверждение поставщика удостоверений соответствует ожидаемой структуре:", "LabelOpenIDClaims": "Оставьте следующие параметры пустыми, чтобы отключить расширенное назначение групп и разрешений, будет автоматически присвоена группа «Пользователь».", @@ -745,6 +749,7 @@ "MessageBookshelfNoResultsForFilter": "Нет Результатов для фильтра \"{0}: {1}\"", "MessageBookshelfNoResultsForQuery": "Нет результатов для запроса", "MessageBookshelfNoSeries": "У вас нет серий", + "MessageBulkChapterPattern": "Сколько глав вы хотели бы добавить, используя эту схему нумерации?", "MessageChapterEndIsAfter": "Конец главы после окончания вашей аудиокниги", "MessageChapterErrorFirstNotZero": "Первая глава должна начинаться с 0", "MessageChapterErrorStartGteDuration": "Неверное время начала, должно быть меньше продолжительности аудиокниги", @@ -948,6 +953,7 @@ "NotificationOnRSSFeedDisabledDescription": "Срабатывает, когда автоматическая загрузка эпизодов отключена из-за слишком большого количества неудачных попыток", "NotificationOnRSSFeedFailedDescription": "Срабатывает при сбое запроса RSS-канала на автоматическую загрузку эпизода", "NotificationOnTestDescription": "Событие для тестирования системы оповещения", + "PlaceholderBulkChapterInput": "Введите название главы или используйте нумерацию (например, \"Эпизод 1\", \"Глава 10\", \"1.\")", "PlaceholderNewCollection": "Новое имя коллекции", "PlaceholderNewFolderPath": "Путь к новой папке", "PlaceholderNewPlaylist": "Новое название плейлиста", @@ -1001,8 +1007,12 @@ "ToastBookmarkCreateFailed": "Не удалось создать закладку", "ToastBookmarkCreateSuccess": "Добавлена закладка", "ToastBookmarkRemoveSuccess": "Закладка удалена", + "ToastBulkChapterInvalidCount": "Введите число от 1 до 150", "ToastCachePurgeFailed": "Не удалось очистить кэш", "ToastCachePurgeSuccess": "Кэш успешно очищен", + "ToastChapterLocked": "Глава заблокирована.", + "ToastChapterStartTimeAdjusted": "Время начала главы скорректировано на {0} секунд", + "ToastChaptersAllLocked": "Все главы заблокированы. Разблокируйте некоторые главы, чтобы сдвинуть их время.", "ToastChaptersHaveErrors": "Главы имеют ошибки", "ToastChaptersInvalidShiftAmountLast": "Некорректное значение сдвига. Начало последней главы будет превышать продолжительность этой аудиокниги.", "ToastChaptersInvalidShiftAmountStart": "Некорректное значение сдвига. Первая глава будет иметь нулевую или отрицательную длину и будет перезаписана второй главой. Увеличьте начальную продолжительность второй главы.", @@ -1136,5 +1146,13 @@ "ToastUserPasswordChangeSuccess": "Пароль успешно изменен", "ToastUserPasswordMismatch": "Пароли не совпадают", "ToastUserPasswordMustChange": "Новый пароль не может совпадать со старым паролем", - "ToastUserRootRequireName": "Необходимо ввести имя пользователя root" + "ToastUserRootRequireName": "Необходимо ввести имя пользователя root", + "TooltipAddChapters": "Добавить главу(ы)", + "TooltipAddOneSecond": "Добавить 1 секунду", + "TooltipAdjustChapterStart": "Нажмите, чтобы настроить время начала", + "TooltipLockAllChapters": "Заблокировать все главы", + "TooltipLockChapter": "Заблокировать главу (Shift+клик для диапазона)", + "TooltipSubtractOneSecond": "Вычтите 1 секунду", + "TooltipUnlockAllChapters": "Разблокируйте все главы", + "TooltipUnlockChapter": "Разблокируйте главу (Shift+клик для диапазона)" } From b027f3bda1bf865343ef77d5872cec4e2207f020 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9C=D0=B0=D0=BA=D1=81=D0=B8=D0=BC=20=D0=93=D0=BE=D1=80?= =?UTF-8?q?=D0=BF=D0=B8=D0=BD=D1=96=D1=87?= Date: Fri, 15 Aug 2025 06:32:26 +0200 Subject: [PATCH 15/27] Translated using Weblate (Ukrainian) Currently translated at 100.0% (1156 of 1156 strings) Translation: Audiobookshelf/Abs Web Client Translate-URL: https://hosted.weblate.org/projects/audiobookshelf/abs-web-client/uk/ --- client/strings/uk.json | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/client/strings/uk.json b/client/strings/uk.json index f07c34045..a79849ac1 100644 --- a/client/strings/uk.json +++ b/client/strings/uk.json @@ -76,7 +76,7 @@ "ButtonReScan": "Пересканувати", "ButtonRead": "Читати", "ButtonReadLess": "Згорнути", - "ButtonReadMore": "Читати далі", + "ButtonReadMore": "Читати більше", "ButtonRefresh": "Оновити", "ButtonRemove": "Видалити", "ButtonRemoveAll": "Видалити все", @@ -127,6 +127,7 @@ "HeaderAudiobookTools": "Інструменти керування файлами книг", "HeaderAuthentication": "Автентифікація", "HeaderBackups": "Резервні копії", + "HeaderBulkChapterModal": "Додати кілька розділів", "HeaderChangePassword": "Змінити пароль", "HeaderChapters": "Глави", "HeaderChooseAFolder": "Обрати теку", @@ -292,7 +293,7 @@ "LabelComplete": "Завершити", "LabelConfirmPassword": "Підтвердити пароль", "LabelContinueListening": "Слухати далі", - "LabelContinueReading": "Читати далі", + "LabelContinueReading": "Продовжити читання", "LabelContinueSeries": "Продовжити серії", "LabelCorsAllowed": "Дозволені джерела CORS", "LabelCover": "Обкладинка", @@ -308,6 +309,7 @@ "LabelDeleteFromFileSystemCheckbox": "Видалити з файлової системи (зніміть прапорець, щоб видалити лише з бази даних)", "LabelDescription": "Опис", "LabelDeselectAll": "Скасувати вибір", + "LabelDetectedPattern": "Виявлений візерунок:", "LabelDevice": "Пристрій", "LabelDeviceInfo": "Про пристрій", "LabelDeviceIsAvailableTo": "Пристрій доступний для...", @@ -472,6 +474,7 @@ "LabelNewestAuthors": "Нові автори", "LabelNewestEpisodes": "Нові епізоди", "LabelNextBackupDate": "Дата наступного резервного копіювання", + "LabelNextChapters": "Наступні розділи будуть:", "LabelNextScheduledRun": "Наступний запланований запуск", "LabelNoApiKeys": "Без ключів API", "LabelNoCustomMetadataProviders": "Без постачальників метаданих", @@ -489,6 +492,7 @@ "LabelNotificationsMaxQueueSize": "Ліміт розміру черги сповіщень", "LabelNotificationsMaxQueueSizeHelp": "Події обмежені до 1 на секунду. Події буде проігноровано, якщо ліміт черги досягнуто. Це запобігає спаму сповіщеннями.", "LabelNumberOfBooks": "Кількість книг", + "LabelNumberOfChapters": "Кількість розділів:", "LabelNumberOfEpisodes": "Кількість серій", "LabelOpenIDAdvancedPermsClaimDescription": "Назва OpenID claim, що містить розширені дозволи на дії користувачів у додатку, які будуть застосовуватися до ролей, що не є адміністраторами (якщо налаштовано). Якщо у відповіді нема claim, у доступі до Audiobookshelf буде відмовлено. Якщо відсутня хоча б одна опція, відповідь буде вважатися хибною. Переконайтеся, що запит постачальника ідентифікаційних даних відповідає очікуваній структурі:", "LabelOpenIDClaims": "Не змінюйте наступні параметри, аби вимкнути розширене призначення груп і дозволів, автоматично призначаючи групу 'Користувач'.", @@ -745,6 +749,7 @@ "MessageBookshelfNoResultsForFilter": "Немає результатів з фільтром \"{0}: {1}\"", "MessageBookshelfNoResultsForQuery": "Немає результатів за запитом", "MessageBookshelfNoSeries": "У вас немає серій", + "MessageBulkChapterPattern": "Скільки розділів ви хочете додати за допомогою цієї схеми нумерації?", "MessageChapterEndIsAfter": "Кінець глави після завершення аудіокниги", "MessageChapterErrorFirstNotZero": "Перша глава повинна починатися з 0", "MessageChapterErrorStartGteDuration": "Час початку має бути меншим за тривалість аудіокниги", @@ -948,6 +953,7 @@ "NotificationOnRSSFeedDisabledDescription": "Виконується, коли автоматичне завантаження епізодів вимкнено через забагато невдалих спроб", "NotificationOnRSSFeedFailedDescription": "Виконується, коли запит RSS-каналу не вдається для автоматичного завантаження епізоду", "NotificationOnTestDescription": "Подія для тестування системи сповіщень", + "PlaceholderBulkChapterInput": "Введіть назву розділу або використовуйте нумерацію (наприклад, «Епізод 1», «Розділ 10», «1.»)", "PlaceholderNewCollection": "Нова назва добірки", "PlaceholderNewFolderPath": "Новий шлях до теки", "PlaceholderNewPlaylist": "Нова назва списку", @@ -1001,8 +1007,12 @@ "ToastBookmarkCreateFailed": "Не вдалося створити закладку", "ToastBookmarkCreateSuccess": "Закладку додано", "ToastBookmarkRemoveSuccess": "Закладку видалено", + "ToastBulkChapterInvalidCount": "Введіть число від 1 до 150", "ToastCachePurgeFailed": "Не вдалося очистити кеш", "ToastCachePurgeSuccess": "Кеш очищено", + "ToastChapterLocked": "Розділ заблоковано.", + "ToastChapterStartTimeAdjusted": "Час початку розділу змінено на {0} секунд", + "ToastChaptersAllLocked": "Усі розділи заблоковано. Розблокуйте деякі розділи, щоб змістити їхній час.", "ToastChaptersHaveErrors": "Глави містять помилки", "ToastChaptersInvalidShiftAmountLast": "Недійсна тривалість зсуву. Час початку останнього розділу перевищує тривалість цієї аудіокниги.", "ToastChaptersInvalidShiftAmountStart": "Недійсна величина зсуву. Перший розділ матиме нульову або від’ємну тривалість і буде перезаписаний другим розділом. Збільште початкову тривалість другого розділу.", @@ -1136,5 +1146,13 @@ "ToastUserPasswordChangeSuccess": "Пароль успішно змінено", "ToastUserPasswordMismatch": "Паролі не збігаються", "ToastUserPasswordMustChange": "Новий пароль не може співпадати з попереднім", - "ToastUserRootRequireName": "Потрібно ввести ім'я користувача root" + "ToastUserRootRequireName": "Потрібно ввести ім'я користувача root", + "TooltipAddChapters": "Додати розділ(и)", + "TooltipAddOneSecond": "Додати 1 секунду", + "TooltipAdjustChapterStart": "Натисніть, щоб налаштувати час початку", + "TooltipLockAllChapters": "Заблокувати всі розділи", + "TooltipLockChapter": "Заблокувати розділ (Shift+клацання для діапазону)", + "TooltipSubtractOneSecond": "Відніміть 1 секунду", + "TooltipUnlockAllChapters": "Розблокувати всі розділи", + "TooltipUnlockChapter": "Розблокувати розділ (Shift+клацання для діапазону)" } From c7a317a87b923552997b4ebc7d018e33f23f94b9 Mon Sep 17 00:00:00 2001 From: FiendFEARing Date: Fri, 15 Aug 2025 13:47:23 +0200 Subject: [PATCH 16/27] Translated using Weblate (Chinese (Simplified Han script)) Currently translated at 100.0% (1156 of 1156 strings) Translation: Audiobookshelf/Abs Web Client Translate-URL: https://hosted.weblate.org/projects/audiobookshelf/abs-web-client/zh_Hans/ --- client/strings/zh-cn.json | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/client/strings/zh-cn.json b/client/strings/zh-cn.json index 68994e7a1..67d587f0a 100644 --- a/client/strings/zh-cn.json +++ b/client/strings/zh-cn.json @@ -127,6 +127,7 @@ "HeaderAudiobookTools": "有声读物文件管理工具", "HeaderAuthentication": "身份验证", "HeaderBackups": "备份", + "HeaderBulkChapterModal": "添加多个章节", "HeaderChangePassword": "更改密码", "HeaderChapters": "章节", "HeaderChooseAFolder": "选择文件夹", @@ -308,6 +309,7 @@ "LabelDeleteFromFileSystemCheckbox": "从文件系统删除 (取消选中仅从数据库中删除)", "LabelDescription": "描述", "LabelDeselectAll": "全部取消选择", + "LabelDetectedPattern": "检测到的编号格式:", "LabelDevice": "设备", "LabelDeviceInfo": "设备信息", "LabelDeviceIsAvailableTo": "设备可用于...", @@ -472,6 +474,7 @@ "LabelNewestAuthors": "最新作者", "LabelNewestEpisodes": "最新剧集", "LabelNextBackupDate": "下次备份日期", + "LabelNextChapters": "后续章节示例:", "LabelNextScheduledRun": "下次任务运行", "LabelNoApiKeys": "无 API 密钥", "LabelNoCustomMetadataProviders": "没有自定义元数据提供商", @@ -489,6 +492,7 @@ "LabelNotificationsMaxQueueSize": "通知事件的最大队列大小", "LabelNotificationsMaxQueueSizeHelp": "通知事件被限制为每秒触发 1 个. 如果队列处于最大大小, 则将忽略事件. 这可以防止通知垃圾邮件.", "LabelNumberOfBooks": "图书数量", + "LabelNumberOfChapters": "章节数量:", "LabelNumberOfEpisodes": "# 集数", "LabelOpenIDAdvancedPermsClaimDescription": "OpenID 声明的名称, 该声明包含应用程序内用户操作的高级权限, 该权限将应用于非管理员角色(如果已配置). 如果响应中缺少声明, 获取 ABS 的权限将被拒绝. 如果缺少单个选项, 它将被视为 禁用. 确保身份提供商的声明与预期结构匹配:", "LabelOpenIDClaims": "将以下选项留空以禁用高级组和权限分配, 然后自动分配 'User' 组.", @@ -745,6 +749,7 @@ "MessageBookshelfNoResultsForFilter": "过滤器无结果 \"{0}: {1}\"", "MessageBookshelfNoResultsForQuery": "没有可查询的结果", "MessageBookshelfNoSeries": "你没有系列", + "MessageBulkChapterPattern": "您想用此编号模式添加多少个章节?", "MessageChapterEndIsAfter": "章节结束是在有声读物结束之后", "MessageChapterErrorFirstNotZero": "第一章节必须从 0 开始", "MessageChapterErrorStartGteDuration": "无效的开始时间, 必须小于有声读物持续时间", @@ -948,6 +953,7 @@ "NotificationOnRSSFeedDisabledDescription": "由于尝试失败次数过多而导致剧集自动下载被禁用时触发", "NotificationOnRSSFeedFailedDescription": "当用于自动下载剧集的 RSS 源请求失败时触发", "NotificationOnTestDescription": "测试通知系统的事件", + "PlaceholderBulkChapterInput": "请输入章节标题, 或使用编号格式 (例如: \"Episode 1\", \"Chapter 10\", \"1.\")", "PlaceholderNewCollection": "输入收藏夹名称", "PlaceholderNewFolderPath": "输入文件夹路径", "PlaceholderNewPlaylist": "输入播放列表名称", @@ -1001,8 +1007,12 @@ "ToastBookmarkCreateFailed": "创建书签失败", "ToastBookmarkCreateSuccess": "书签已添加", "ToastBookmarkRemoveSuccess": "书签已删除", + "ToastBulkChapterInvalidCount": "输入一个1到150之间的整数", "ToastCachePurgeFailed": "清除缓存失败", "ToastCachePurgeSuccess": "缓存清除成功", + "ToastChapterLocked": "章节已锁定.", + "ToastChapterStartTimeAdjusted": "章节开始时间已调整 {0} 秒", + "ToastChaptersAllLocked": "所有章节均已锁定. 请解锁要调整时间的章节.", "ToastChaptersHaveErrors": "章节有错误", "ToastChaptersInvalidShiftAmountLast": "偏移量无效. 最后一章的开始时间将超过这本有声读物的持续时间.", "ToastChaptersInvalidShiftAmountStart": "偏移量无效. 第一章的长度将为零或负数, 并会被第二章覆盖. 请增加第二章的起始时长.", @@ -1136,5 +1146,13 @@ "ToastUserPasswordChangeSuccess": "密码修改成功", "ToastUserPasswordMismatch": "密码不匹配", "ToastUserPasswordMustChange": "新密码不能与旧密码相同", - "ToastUserRootRequireName": "必须输入 root 用户名" + "ToastUserRootRequireName": "必须输入 root 用户名", + "TooltipAddChapters": "添加章节", + "TooltipAddOneSecond": "加 1 秒", + "TooltipAdjustChapterStart": "点击调整开始时间", + "TooltipLockAllChapters": "锁定所有章节", + "TooltipLockChapter": "锁定章节 (按住 Shift再点击, 可进行范围选择)", + "TooltipSubtractOneSecond": "减 1 秒", + "TooltipUnlockAllChapters": "解锁所有章节", + "TooltipUnlockChapter": "解锁章节 (按住 Shift再点击, 可进行范围选择)" } From 266db491aafb75e79b08af94ba8ed3046faa9950 Mon Sep 17 00:00:00 2001 From: Zhelyan Radoev Date: Sat, 16 Aug 2025 12:14:19 +0200 Subject: [PATCH 17/27] Translated using Weblate (Bulgarian) Currently translated at 83.9% (971 of 1156 strings) Translation: Audiobookshelf/Abs Web Client Translate-URL: https://hosted.weblate.org/projects/audiobookshelf/abs-web-client/bg/ --- client/strings/bg.json | 77 ++++++++++++++++++++++++++++++++++++++---- 1 file changed, 71 insertions(+), 6 deletions(-) diff --git a/client/strings/bg.json b/client/strings/bg.json index 9fc3f7af0..5d7e1218f 100644 --- a/client/strings/bg.json +++ b/client/strings/bg.json @@ -1,5 +1,6 @@ { "ButtonAdd": "Създай", + "ButtonAddApiKey": "Добави API ключ", "ButtonAddChapters": "Добави Глави", "ButtonAddDevice": "Добави Устройство", "ButtonAddLibrary": "Добави Библиотека", @@ -20,6 +21,7 @@ "ButtonChooseAFolder": "Избери Папка", "ButtonChooseFiles": "Избери Файлове", "ButtonClearFilter": "Изчисти филтър", + "ButtonClose": "Затвори", "ButtonCloseFeed": "Затвори стената", "ButtonCloseSession": "Затвори отворената сесия", "ButtonCollections": "Колекции", @@ -119,11 +121,13 @@ "HeaderAccount": "Профил", "HeaderAddCustomMetadataProvider": "Добави персонализиран доставчик на метаданни", "HeaderAdvanced": "Разширени настройки", + "HeaderApiKeys": "API ключове", "HeaderAppriseNotificationSettings": "Apprise Notification Опции", "HeaderAudioTracks": "Песни", "HeaderAudiobookTools": "Инструмент за Менижиране на Аудиокниги", "HeaderAuthentication": "Аутентикация", "HeaderBackups": "Архив", + "HeaderBulkChapterModal": "Добави няколко глави", "HeaderChangePassword": "Промяна на Парола", "HeaderChapters": "Глави", "HeaderChooseAFolder": "Избети Папка", @@ -162,6 +166,7 @@ "HeaderMetadataOrderOfPrecedence": "Предимство на Метаданни", "HeaderMetadataToEmbed": "Метаданни за Вграждане", "HeaderNewAccount": "Нов Профил", + "HeaderNewApiKey": "Нов API ключ", "HeaderNewLibrary": "Нова Библиотека", "HeaderNotificationCreate": "Създай нотификация", "HeaderNotificationUpdate": "Обнови нотификация", @@ -195,6 +200,7 @@ "HeaderSettingsExperimental": "Експериментални Функции", "HeaderSettingsGeneral": "Общи", "HeaderSettingsScanner": "Скенер", + "HeaderSettingsSecurity": "Сигурност", "HeaderSettingsWebClient": "Уеб клиент", "HeaderSleepTimer": "Таймер за заспиване", "HeaderStatsLargestItems": "Най-Големите Елементи", @@ -206,6 +212,7 @@ "HeaderTableOfContents": "Съдържание", "HeaderTools": "Инструменти", "HeaderUpdateAccount": "Обнови Профил", + "HeaderUpdateApiKey": "Обнови API ключ", "HeaderUpdateAuthor": "Обнови Автор", "HeaderUpdateDetails": "Обнови Детайли", "HeaderUpdateLibrary": "Обнови Библиотека", @@ -230,10 +237,15 @@ "LabelAddedDate": "Добавено", "LabelAdminUsersOnly": "Само за Администратори", "LabelAll": "Всичко", + "LabelAllEpisodesDownloaded": "Всички епизоди са изтеглени", "LabelAllUsers": "Всички Потребители", "LabelAllUsersExcludingGuests": "Всички потребители без гости", "LabelAllUsersIncludingGuests": "Всички потребители включително гости", "LabelAlreadyInYourLibrary": "Вече е в твоята библиотека", + "LabelApiKeyCreated": "API ключ \"{0}\" успешно създатен.", + "LabelApiKeyCreatedDescription": "Погрижете се да копирате API ключът сега, защото повече няма да можете да го виждате онново.", + "LabelApiKeyUser": "Действай от името на потребителя", + "LabelApiKeyUserDescription": "Този API ключ ще има същите права като на потребителя за чието име действа. В логовете ще изглежда все едно потребителя прави заявката.", "LabelApiToken": "АПИ Токен", "LabelAppend": "Добави", "LabelAudioBitrate": "Аудио битрейт (напр. 128k)", @@ -253,7 +265,7 @@ "LabelBackToUser": "Обратно към Потребител", "LabelBackupAudioFiles": "Създай резервно копие на аудио файлове", "LabelBackupLocation": "Местоположение на Архив", - "LabelBackupsEnableAutomaticBackups": "Включи автоматично архивиране", + "LabelBackupsEnableAutomaticBackups": "Автоматично архивиране", "LabelBackupsEnableAutomaticBackupsHelp": "Архиви запазени в /metadata/backups", "LabelBackupsMaxBackupSize": "Максимален размер на архива (в GB) (0 за неограничен)", "LabelBackupsMaxBackupSizeHelp": "За защита срещу грешки в конфигурацията, архивите ще се провалят ако надхвърлят конфигурирания размер.", @@ -272,7 +284,7 @@ "LabelChaptersFound": "намерени глави", "LabelClickForMoreInfo": "Кликни за повече информация", "LabelClickToUseCurrentValue": "Натисни да ползваш сегашната стойност", - "LabelClosePlayer": "Затвори", + "LabelClosePlayer": "Затвори плейъра", "LabelCodec": "Кодек", "LabelCollapseSeries": "Скрий сериите", "LabelCollapseSubSeries": "Свий подсерии", @@ -283,6 +295,7 @@ "LabelContinueListening": "Продължи слушане", "LabelContinueReading": "Продължи четене", "LabelContinueSeries": "Продължи серии", + "LabelCorsAllowed": "Разрешени CORS Origins", "LabelCover": "Корица", "LabelCoverImageURL": "URL на Корица", "LabelCoverProvider": "Източник за обложки", @@ -296,6 +309,7 @@ "LabelDeleteFromFileSystemCheckbox": "Изтрий от файловата система (отмени за да бъдат премахни само от базата данни)", "LabelDescription": "Описание", "LabelDeselectAll": "Премахни всички", + "LabelDetectedPattern": "Намерен образец:", "LabelDevice": "Устройство", "LabelDeviceInfo": "Информация за Устройство", "LabelDeviceIsAvailableTo": "Устройството е достъпно за ...", @@ -345,7 +359,11 @@ "LabelExample": "Пример", "LabelExpandSeries": "Покажи сериите", "LabelExpandSubSeries": "Покажи съб сериите", - "LabelExplicit": "С нецензурно съдържание", + "LabelExpired": "Изтекъл", + "LabelExpiresAt": "Изтича на", + "LabelExpiresInSeconds": "Изтича след (секунди)", + "LabelExpiresNever": "Никога", + "LabelExplicit": "Експлицитно", "LabelExplicitChecked": "С нецензурно съдържание (проверено)", "LabelExplicitUnchecked": "Без нецензурно съдържание (непроверено)", "LabelExportOPML": "Експортирай OPML", @@ -404,6 +422,7 @@ "LabelLanguages": "Езици", "LabelLastBookAdded": "Последно Добавена Книга", "LabelLastBookUpdated": "Последно Обновена Книга", + "LabelLastProgressDate": "Последен прогрес: {0}", "LabelLastSeen": "Последно Видян", "LabelLastTime": "Последно Време", "LabelLastUpdate": "Последно Обновяване", @@ -416,6 +435,7 @@ "LabelLibraryFilterSublistEmpty": "Не {0}", "LabelLibraryItem": "Елемент на Библиотека", "LabelLibraryName": "Име на Библиотека", + "LabelLibrarySortByProgress": "Прогресът е обновен", "LabelLimit": "Лимит", "LabelLineSpacing": "Междуредие", "LabelListenAgain": "Слушай отново", @@ -424,6 +444,7 @@ "LabelLogLevelWarn": "Предупреждение", "LabelLookForNewEpisodesAfterDate": "Търси нови епизоди след дата", "LabelLowestPriority": "Най-нисък Приоритет", + "LabelMatchConfidence": "Увереност", "LabelMatchExistingUsersBy": "Съпостави съществуващи потребители по", "LabelMatchExistingUsersByDescription": "Използва се за свързване на съществуващи потребители. След свързване потребителите ще бъдат съпоставени по уникален идентификатор от вашия доставчик на SSO", "LabelMaxEpisodesToDownload": "Максимален брой епизоди за сваляне. Използвай 0 за неограничен.", @@ -453,7 +474,9 @@ "LabelNewestAuthors": "Най-новите автори", "LabelNewestEpisodes": "Най-новите епизоди", "LabelNextBackupDate": "Следваща Дата на Архивиране", + "LabelNextChapters": "Следващите глави ще бъдат:", "LabelNextScheduledRun": "Следващо Планирано Изпълнение", + "LabelNoApiKeys": "Няма API ключове", "LabelNoCustomMetadataProviders": "Няма потребителски доставчици на метаданни", "LabelNoEpisodesSelected": "Няма избрани епизоди", "LabelNotFinished": "Не е приключено", @@ -469,6 +492,7 @@ "LabelNotificationsMaxQueueSize": "Максимален размер на опашката за известия", "LabelNotificationsMaxQueueSizeHelp": "Събитията са ограничени до изстрелване на 1 на секунда. Събитията ще бъдат игнорирани ако опашката е на максимален размер. Това предотвратява спамирането на известия.", "LabelNumberOfBooks": "Брой на Книги", + "LabelNumberOfChapters": "Брой глави:", "LabelNumberOfEpisodes": "Брой епизоди", "LabelOpenIDAdvancedPermsClaimDescription": "Име на OpenID твърдението, което съдържа разширени права за достъп до потребителски действия в приложението, които ще се прилагат за роли, различни от администраторските (ако е конфигурирано). Ако твърдението липсва в отговора, достъпът до ABS ще бъде отказан. Ако липсва една опция, тя ще се третира като false. Уверете се, че твърдението на доставчика на идентичност съответства на очакваната структура:", "LabelOpenIDClaims": "Оставете следните опции празни, за да деактивирате разширеното присвояване на групи, като автоматично ще бъде присвоена групата 'Потребител'.", @@ -513,7 +537,7 @@ "LabelPublishers": "Издателство", "LabelRSSFeedCustomOwnerEmail": "Персонализиран имейл на собственика", "LabelRSSFeedCustomOwnerName": "Персонализирано име на собственика", - "LabelRSSFeedOpen": "RSS Feed Оптворен", + "LabelRSSFeedOpen": "RSS Feed е отворен", "LabelRSSFeedPreventIndexing": "Предотвратете индексиране", "LabelRSSFeedSlug": "идентификатор на RSS емисия", "LabelRSSFeedURL": "URL на RSS емисия", @@ -543,6 +567,7 @@ "LabelSelectAll": "Избери всичко", "LabelSelectAllEpisodes": "Избери всички епизоди", "LabelSelectEpisodesShowing": "Избери {0} епизоди показани", + "LabelSelectUser": "Избери потребител", "LabelSelectUsers": "Избери Потребители", "LabelSendEbookToDevice": "Изпрати електронна книга до ...", "LabelSequence": "Последователност", @@ -639,6 +664,7 @@ "LabelTheme": "Тема", "LabelThemeDark": "Тъмна", "LabelThemeLight": "Светла", + "LabelThemeSepia": "Сепия", "LabelTimeBase": "Времева Основа", "LabelTimeDurationXHours": "{0} часа", "LabelTimeDurationXMinutes": "{0} минути", @@ -693,7 +719,11 @@ "LabelViewPlayerSettings": "Виж настройки на плеъра", "LabelViewQueue": "Виж Опашка", "LabelVolume": "Сила на Звука", + "LabelWebRedirectURLsDescription": "Разрешете тези URL-и във вашият OAuth доставчик, за да позволите пренасочването обратно към уеб приложението след вход:", + "LabelWebRedirectURLsSubfolder": "Подпапка за URL адреси за пренасочване", "LabelWeekdaysToRun": "Делници за изпълнение", + "LabelXBooks": "{0} книги", + "LabelXItems": "{0} елемента", "LabelYearReviewHide": "Скрий ревю на годината ти", "LabelYearReviewShow": "Виж ревю на годината ти", "LabelYourAudiobookDuration": "Продължителност на вашата аудиокнига", @@ -702,31 +732,50 @@ "LabelYourProgress": "Твоят прогрес", "MessageAddToPlayerQueue": "Добави към опашката на плейъра", "MessageAppriseDescription": "За да ползвате тази функция трябва да имате активна инстанция на Apprise API или на друго АПИ което да обработва тези заявки.
The Apprise API Url-а трябва дае пълния URL път за изпращане на известията, например, ако вашето АПИ ве подава от http://192.168.1.1:8337 трябва да сложитев http://192.168.1.1:8337/notify.", + "MessageAsinCheck": "Уверете се, че използвате ASIN от правилния Audible регион, а не от Amazon.", + "MessageAuthenticationLegacyTokenWarning": "Остарелите API токени ще бъдат премахнати в бъдеще. Вместо това използвайте API ключове.", + "MessageAuthenticationOIDCChangesRestart": "Рестартирайте сървърът след записването на настройките, за да активирате OIDC промените.", + "MessageAuthenticationSecurityMessage": "За осигуряването на по-добра сигурност, автентикацията беше подобрена. Всеки потребител ще трябва да се автентикира наново.", "MessageBackupsDescription": "Резервните копия включват потребители, напредък на потребителите, подробности за елементите в библиотеката, настройки на сървъра и изображения, съхранени в /metadata/items и /metadata/authors. Резервните копия не включват никакви файлове, съхранени в папките на вашата библиотека.", + "MessageBackupsLocationEditNote": "Забележка: Актуализирането на местоположението за архивиране няма да премести или промени съществуващите архиви", + "MessageBackupsLocationNoEditNote": "Забележка: Местоположението за архивиране се задава с помощта на променлива на средата и не може бъде променена от тук.", + "MessageBackupsLocationPathEmpty": "Пътят към местоположението за архивиране не може да бъде празен", + "MessageBatchEditPopulateMapDetailsAllHelp": "Популирайте активираните полета с данни от всички елементи. Полетата със няколко стоайности ще бъдат обединени", "MessageBatchQuickMatchDescription": "Бързото Съпоставяне ще опита да добави липсващи корици и метаданни за избраните елементи. Активирайте опциите по-долу, за да позволите на Бързото съпоставяне да презапише съществуващите корици и/или метаданни.", "MessageBookshelfNoCollections": "Все още нямате създадени колекции", + "MessageBookshelfNoCollectionsHelp": "Колекциите са публични. Всички потребители с достъп до библиотеката ще могат да ги виждат.", "MessageBookshelfNoRSSFeeds": "Няма отворени RSS feed-ове", "MessageBookshelfNoResultsForFilter": "Няма резултат за филтер \"{0}: {1}\"", "MessageBookshelfNoResultsForQuery": "Няма резултати от заявката", "MessageBookshelfNoSeries": "Нямаш сеЗЙ", + "MessageBulkChapterPattern": "Колко глави искате да добавите, използвайки тази схема за номериране?", "MessageChapterEndIsAfter": "Краят на главата е след края на вашата аудиокнига", "MessageChapterErrorFirstNotZero": "Първата глава трябва да започва от 0", "MessageChapterErrorStartGteDuration": "Началото на главата трябва да бъде по-малко от продължителността на аудиокнигата", "MessageChapterErrorStartLtPrev": "Началото на главата трябва да бъде по-голямо или равно на края на предишната глава", "MessageChapterStartIsAfter": "Началото на главата е след края на вашата аудиокнига", + "MessageChaptersNotFound": "Главите не са намерени", "MessageCheckingCron": "Проверяване на cron...", "MessageConfirmCloseFeed": "Сигурни ли сте, че искате да затворите този feed?", + "MessageConfirmDeleteApiKey": "Сигурни ли сте, че искате да изтриете API ключ \"{0}\"?", "MessageConfirmDeleteBackup": "Сигурни ли сте, че искате да изтриете този архив {0}?", + "MessageConfirmDeleteDevice": "Сигурни ли сте, че искате да изтриете е-четец \"{0}\"?", "MessageConfirmDeleteFile": "Това ще изтрие файла от файловата Ви система. Сигурни ли сте?", "MessageConfirmDeleteLibrary": "Сигурни ли сте, че искате да изтриете за винаги библиотека \"{0}\"?", "MessageConfirmDeleteLibraryItem": "Това ще изтрие елемента от базата данни и файловата Ви система. Сигурни ли сте?", "MessageConfirmDeleteLibraryItems": "Това ще изтрие {0} елемента от базата данни и файловата Ви система. Сигурни ли сте?", + "MessageConfirmDeleteMetadataProvider": "Сигурни ли сте, че искате да изтриете доставчика нa метаданни \"{0}\"?", + "MessageConfirmDeleteNotification": "Сигурни ли сте, че искате да изтриете това уведомление?", "MessageConfirmDeleteSession": "Сигурни ли сте, че искате да изтриете тази сесия?", + "MessageConfirmEmbedMetadataInAudioFiles": "Сигурнли ли сте, че искате да вградите метаданните в {0} аудио файла?", "MessageConfirmForceReScan": "Сигурни ли сте, че искате да принудите повторно сканиране?", "MessageConfirmMarkAllEpisodesFinished": "Сигурни ли сте, че искате да маркирате всички епизоди като завършени?", "MessageConfirmMarkAllEpisodesNotFinished": "Сигурни ли сте, че искате да маркирате всички епизоди като незавършени?", + "MessageConfirmMarkItemFinished": "Сигурни ли сте, че искате да маркирате \"{0}\" като приключено?", + "MessageConfirmMarkItemNotFinished": "Сигурни ли сте, че искате да маркирате \"{0}\" като неприключено?", "MessageConfirmMarkSeriesFinished": "Сигурни ли сте, че искате да маркирате всички книги в тази серия като завършени?", "MessageConfirmMarkSeriesNotFinished": "Сигурни ли сте, че искате да маркирате всички книги в тази серия като незавършени?", + "MessageConfirmNotificationTestTrigger": "Пуснете това уведомление с тестови данни?", "MessageConfirmPurgeCache": "Изчистването на кеша ще изтрие цялата директория в /metadata/cache.

Сигурни ли сте, че искате да премахнете директорията на кеша?", "MessageConfirmPurgeItemsCache": "Изчистването на кеша на елементите ще изтрие цялата директория в /metadata/cache/items.
Сигурни ли сте?", "MessageConfirmQuickEmbed": "Внимание! Бързото вграждане няма да архивира вашите аудио файлове. Уверете се, че имате резервно копие на вашите аудио файлове.

Искате ли да продължите?", @@ -745,19 +794,27 @@ "MessageConfirmRenameTag": "Сигурни ли сте, че искате да преименувате таг \"{0}\" на \"{1}\" за всички елементи?", "MessageConfirmRenameTagMergeNote": "Забележка: Този таг вече съществува и ще бъде слято.", "MessageConfirmRenameTagWarning": "Внимание! Вече съществува подобен таг с различно писане \"{0}\".", + "MessageConfirmResetProgress": "Сигурни ли сте, че искате да нулирате прогреса си?", "MessageConfirmSendEbookToDevice": "Сигурни ли сте, че искате да изпратите {0} електронна книга \"{1}\" до устройство \"{2}\"?", + "MessageConfirmUnlinkOpenId": "Сигурни ли сте, че искате да отвържете този потребител от OpenID?", + "MessageDaysListenedInTheLastYear": "{0} дни слушане през последната година", "MessageDownloadingEpisode": "Сваля епизод", "MessageDragFilesIntoTrackOrder": "Плъзнете файлове в правилния ред на каналите", + "MessageEmbedFailed": "Вграждането беше неуспешно!", "MessageEmbedFinished": "Вграждането завърши!", + "MessageEmbedQueue": "Поставено в опашката за вграждане на метаданни ({0} в опашката)", "MessageEpisodesQueuedForDownload": "{0} Епизод(и) са сложени за сваляне", "MessageEreaderDevices": "За да осигурите доставката на е-книги, може да се наложи да добавите горепосочения имейл адрес като валиден подател за всяко устройство, изброено по-долу.", "MessageFeedURLWillBe": "Адресът на емисията ще бъде {0}", "MessageFetching": "Извличане...", "MessageForceReScanDescription": "ще сканира всички файлове отново като прясно сканиране. Аудио файлове ID3 тагове, OPF файлове и текстови файлове ще бъдат сканирани като нови.", + "MessageHeatmapListeningTimeTooltip": "{0} слушане на {1}", + "MessageHeatmapNoListeningSessions": "Няма сесии за слушане на {0}", "MessageImportantNotice": "Важно Съобщение!", "MessageInsertChapterBelow": "Вмъкни глава под", - "MessageItemsSelected": "{0} избрани", - "MessageItemsUpdated": "{0} елемента обновени", + "MessageInvalidAsin": "Невалиден ASIN", + "MessageItemsSelected": "{0} избрани елемента", + "MessageItemsUpdated": "{0} обновени елемента", "MessageJoinUsOn": "Присъединете се към нас", "MessageLoading": "Зарежда...", "MessageLoadingFolders": "Зареждане на Папки...", @@ -778,6 +835,7 @@ "MessageNoCollections": "Няма колекции", "MessageNoCoversFound": "Не са намерени корици", "MessageNoDescription": "Няма описание", + "MessageNoDevices": "Няма устройства", "MessageNoDownloadsInProgress": "Няма изтегляния в прогрес", "MessageNoDownloadsQueued": "Няма изтегляния в опашка", "MessageNoEpisodeMatchesFound": "Няма намерени съвпадения за епизоди", @@ -791,6 +849,7 @@ "MessageNoLogs": "Няма логове", "MessageNoMediaProgress": "Няма прогрес на медията", "MessageNoNotifications": "Няма известия", + "MessageNoPodcastFeed": "Невалиден подкаст: Няма канал", "MessageNoPodcastsFound": "Няма намерени подкасти", "MessageNoResults": "Няма резултати", "MessageNoSearchResultsFor": "Няма резултати за \"{0}\"", @@ -799,13 +858,17 @@ "MessageNoTasksRunning": "Няма вършещи се задачи", "MessageNoUpdatesWereNecessary": "Няма нужда от обновяване", "MessageNoUserPlaylists": "Нямате създадени плейлисти", + "MessageNoUserPlaylistsHelp": "Плейлистите за частни. Само създалият ги потребител ще може да ги вижда.", "MessageNotYetImplemented": "Още не е изпълнено", "MessageOr": "или", "MessagePauseChapter": "Пауза на глава", "MessagePlayChapter": "Пусни налчалото на глава", "MessagePlaylistCreateFromCollection": "Създай плейлист от колекция", + "MessagePleaseWait": "Моля изчакайте...", "MessagePodcastHasNoRSSFeedForMatching": "Подкастът няма URL адрес на RSS feed за използване за съпоставяне", "MessagePodcastSearchField": "Въведи какво да търся или RSS емисия адрес", + "MessageQuickEmbedInProgress": "Бързото вграждане е в процес на изпълнение", + "MessageQuickEmbedQueue": "Поставено в опашката за бързо вграждане ({0} в опашката)", "MessageQuickMatchDescription": "Попълни празните детайли и корици с първия резултат от '{0}'. Не презаписва детайлите, освен ако не е активирана настройката 'Предпочети съвпадащи метаданни' на сървъра.", "MessageRemoveChapter": "Премахни глава", "MessageRemoveEpisodes": "Премахни {0} епизод(и)", @@ -815,10 +878,12 @@ "MessageResetChaptersConfirm": "Сигурни ли сте, че искате да нулирате главите и да отмените промените, които сте направили?", "MessageRestoreBackupConfirm": "Сигурни ли сте, че искате да възстановите архива създаден на", "MessageRestoreBackupWarning": "Възстановяването на архив ще презапише цялата база данни, намираща се в /config и кориците в /metadata/items & /metadata/authors.

Архивите не променят файловете в папките на вашата библиотека. Ако сте активирали настройките на сървъра за съхранение на корици и метаданни в папките на вашата библиотека, те няма да бъдат архивирани или презаписани.

Всички клиенти, използващи вашия сървър, ще бъдат автоматично обновени.", + "MessageScheduleRunEveryWeekdayAtTime": "Изпълни всеки {0} в {1}", "MessageSearchResultsFor": "Резултати от търсенето за", "MessageSelected": "{0} избрани", "MessageServerCouldNotBeReached": "Сървърът не може да бъде достигнат", "MessageSetChaptersFromTracksDescription": "Задайте глави, като използвате всеки аудио файл като глава и заглавие на главата като име на аудио файла", + "MessageShareExpiresIn": "Изтича след {0}", "MessageStartPlaybackAtTime": "Започни възпроизвеждане на \"{0}\" в {1}?", "MessageThinking": "Мисля...", "MessageUploaderItemFailed": "Неуспешно качване", From 5b9df84ba32307e4932f37ff45ef1eead25819cf Mon Sep 17 00:00:00 2001 From: owlcollector Date: Sat, 16 Aug 2025 15:57:36 +0200 Subject: [PATCH 18/27] Translated using Weblate (Japanese) Currently translated at 8.5% (99 of 1156 strings) Translation: Audiobookshelf/Abs Web Client Translate-URL: https://hosted.weblate.org/projects/audiobookshelf/abs-web-client/ja/ --- client/strings/ja.json | 34 ++++++++++++++++++++++++++++++++-- 1 file changed, 32 insertions(+), 2 deletions(-) diff --git a/client/strings/ja.json b/client/strings/ja.json index 3284d8a1f..05f83b4be 100644 --- a/client/strings/ja.json +++ b/client/strings/ja.json @@ -11,13 +11,17 @@ "ButtonApplyChapters": "チャプターを確定する", "ButtonAuthors": "作者", "ButtonBack": "戻る", + "ButtonBrowseForFolder": "フォルダーを選択する", "ButtonCancel": "キャンセル", + "ButtonCancelEncode": "エンコードを取り消す", "ButtonChangeRootPassword": "Rootのパスワードを変更する", "ButtonChooseAFolder": "フォルダーを選ぶ", "ButtonChooseFiles": "ファイルを選ぶ", "ButtonClearFilter": "絞り込みを解除", "ButtonClose": "閉じる", + "ButtonCloseFeed": "フィードを閉じる", "ButtonCollections": "コレクション", + "ButtonConfigureScanner": "スキャナーの設定", "ButtonCreate": "作成", "ButtonCreateBackup": "バックアップを作成する", "ButtonDelete": "削除", @@ -26,20 +30,35 @@ "ButtonEditChapters": "チャプターの編集", "ButtonEditPodcast": "ポッドキャストの編集", "ButtonEnable": "オンにする", + "ButtonForceReScan": "強制的に再スキャンする", + "ButtonFullPath": "絶対パス", "ButtonHide": "非表示", "ButtonHome": "ホーム", "ButtonJumpBackward": "巻き戻し", "ButtonJumpForward": "早送り", + "ButtonLatest": "最新", "ButtonLibrary": "ライブラリー", "ButtonLogout": "ログアウト", + "ButtonManageTracks": "トラックの管理", + "ButtonNevermind": "中止", + "ButtonNext": "次", + "ButtonNextChapter": "次のチャプター", "ButtonOk": "はい", - "ButtonPlay": "プレイ", + "ButtonOpenFeed": "フィードを開く", + "ButtonPause": "一時停止", + "ButtonPlay": "再生", + "ButtonPlayAll": "全て再生", "ButtonPlaying": "プレイ中", + "ButtonPlaylists": "プレイリスト", "ButtonPrevious": "先", + "ButtonPreviousChapter": "前のチャプター", + "ButtonPurgeAllCache": "全てのキャッシュを削除", + "ButtonPurgeItemsCache": "項目のキャッシュを削除", "ButtonQueueAddItem": "次に再生する", "ButtonQueueRemoveItem": "次に再生から削除", + "ButtonQuickEmbed": "クイック埋め込み", "ButtonReScan": "再スキャン", - "ButtonRead": "野村", + "ButtonRead": "読む", "ButtonReadLess": "閉じる", "ButtonReadMore": "もっと見る", "ButtonRefresh": "再読み込み", @@ -56,7 +75,18 @@ "ButtonScrollLeft": "左にスクロール", "ButtonScrollRight": "右にスクロール", "ButtonSearch": "検索", + "ButtonSeries": "シリーズ", "ButtonYes": "はい", + "HeaderAccount": "アカウント", + "HeaderChapters": "チャプター", + "HeaderCollection": "コレクション", + "HeaderCollectionItems": "コレクションの項目", + "HeaderDetails": "詳細", + "HeaderEbookFiles": "電子書籍ファイル", + "HeaderEpisodes": "エピソード", + "HeaderEreaderSettings": "電子書籍リーダーの設定", + "HeaderLatestEpisodes": "最新のエピソード", + "HeaderLibraries": "ライブラリー", "HeaderPlayerSettings": "プレーヤーの設定", "LabelBooks": "ほん", "LabelContinueListening": "続きから聞く", From 09121acbd5417df38d051c13605fe22975d49275 Mon Sep 17 00:00:00 2001 From: Zhelyan Radoev Date: Mon, 18 Aug 2025 18:58:51 +0200 Subject: [PATCH 19/27] Translated using Weblate (Bulgarian) Currently translated at 87.3% (1010 of 1156 strings) Translation: Audiobookshelf/Abs Web Client Translate-URL: https://hosted.weblate.org/projects/audiobookshelf/abs-web-client/bg/ --- client/strings/bg.json | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/client/strings/bg.json b/client/strings/bg.json index 5d7e1218f..ca14035f8 100644 --- a/client/strings/bg.json +++ b/client/strings/bg.json @@ -741,6 +741,7 @@ "MessageBackupsLocationNoEditNote": "Забележка: Местоположението за архивиране се задава с помощта на променлива на средата и не може бъде променена от тук.", "MessageBackupsLocationPathEmpty": "Пътят към местоположението за архивиране не може да бъде празен", "MessageBatchEditPopulateMapDetailsAllHelp": "Популирайте активираните полета с данни от всички елементи. Полетата със няколко стоайности ще бъдат обединени", + "MessageBatchEditPopulateMapDetailsItemHelp": "Попълнете активираните полета с информация за картата с данни от този елемент", "MessageBatchQuickMatchDescription": "Бързото Съпоставяне ще опита да добави липсващи корици и метаданни за избраните елементи. Активирайте опциите по-долу, за да позволите на Бързото съпоставяне да презапише съществуващите корици и/или метаданни.", "MessageBookshelfNoCollections": "Все още нямате създадени колекции", "MessageBookshelfNoCollectionsHelp": "Колекциите са публични. Всички потребители с достъп до библиотеката ще могат да ги виждат.", @@ -784,6 +785,7 @@ "MessageConfirmRemoveAuthor": "Сигурни ли сте, че искате да премахнете автор \"{0}\"?", "MessageConfirmRemoveCollection": "Сигурни ли сте, че искате да премахнете колекция \"{0}\"?", "MessageConfirmRemoveEpisode": "Сигурни ли сте, че искате да премахнете епизод \"{0}\"?", + "MessageConfirmRemoveEpisodeNote": "Забележка: Това няма да доведе до изтриване на аудио файла, освен ако не активирате опцията \"Твърдо изтриване на файла\"", "MessageConfirmRemoveEpisodes": "Сигурни ли сте, че искате да премахнете {0} епизода?", "MessageConfirmRemoveListeningSessions": "Сигурни ли сте, че искате да премахнете {0} слушателски сесии?", "MessageConfirmRemoveNarrator": "Сигурни ли сте, че искате да премахнете разказвач \"{0}\"?", @@ -885,6 +887,36 @@ "MessageSetChaptersFromTracksDescription": "Задайте глави, като използвате всеки аудио файл като глава и заглавие на главата като име на аудио файла", "MessageShareExpiresIn": "Изтича след {0}", "MessageStartPlaybackAtTime": "Започни възпроизвеждане на \"{0}\" в {1}?", + "MessageTaskDownloadingEpisodeDescription": "Изтегляне на епизод \"{0}\"", + "MessageTaskEmbeddingMetadata": "Вграждане на метаданни", + "MessageTaskEmbeddingMetadataDescription": "Вграждане на метаданни в аудиокнига \"{0}\"", + "MessageTaskEncodingM4bDescription": "Кодиране на аудиокнига \"{0}\" в единичен m4b файл", + "MessageTaskFailed": "Неуспешно", + "MessageTaskFailedToBackupAudioFile": "Неуспешно създаване на разервно копие на аудио файл \"{0}\"", + "MessageTaskFailedToCreateCacheDirectory": "Неуспешно създаване на директория за кеширане", + "MessageTaskFailedToEmbedMetadataInFile": "Неуспешно вграждане на метаданни във файл \"{0}\"", + "MessageTaskFailedToMergeAudioFiles": "Неуспешно сливане на аудио файловете", + "MessageTaskFailedToMoveM4bFile": "Неуспешно преместване на m4b файл", + "MessageTaskFailedToWriteMetadataFile": "Неуспешно записване на файла за метаданни", + "MessageTaskMatchingBooksInLibrary": "Съответстващи книги в библиотека \"{0}\"", + "MessageTaskNoFilesToScan": "Няма файлове за сканиране", + "MessageTaskOpmlImport": "OPML импортиране", + "MessageTaskOpmlImportDescription": "Създаване на подкасти от {0} RSS хранилки", + "MessageTaskOpmlImportFeedDescription": "Импортиране на RSS хранилка \"{0}\"", + "MessageTaskOpmlImportFeedPodcastDescription": "Създаване на подкаст \"{0}\"", + "MessageTaskOpmlImportFeedPodcastExists": "На този път вече съществува подкаст", + "MessageTaskOpmlImportFeedPodcastFailed": "Неуспешно създаване на подкаст", + "MessageTaskOpmlImportFinished": "Добавени {0} подкаста", + "MessageTaskOpmlParseFailed": "Неуспешно анализиране на OPML файла", + "MessageTaskOpmlParseFastFail": "Невалиден OPML файл, не беше намерен нито таг нито таг", + "MessageTaskOpmlParseNoneFound": "Няма намерени канали във OPML файла", + "MessageTaskScanItemsAdded": "{0} добавени", + "MessageTaskScanItemsMissing": "{0} липсващи", + "MessageTaskScanItemsUpdated": "{0} обновени", + "MessageTaskScanNoChangesNeeded": "Не са нужни промени", + "MessageTaskScanningFileChanges": "Проверка за промени във файловете в \"{0}\"", + "MessageTaskScanningLibrary": "Сканиране на \"{0}\" библиотека", + "MessageTaskTargetDirectoryNotWritable": "Целевата директория не е достъпна за запис", "MessageThinking": "Мисля...", "MessageUploaderItemFailed": "Неуспешно качване", "MessageUploaderItemSuccess": "Успешно качване!", @@ -902,11 +934,18 @@ "NoteUploaderFoldersWithMediaFiles": "Папките с медийни файлове ще бъдат обработени като отделни елементи на библиотеката.", "NoteUploaderOnlyAudioFiles": "Ако качвате само аудио файлове, то всеки аудио файл ще бъде обработен като отделна аудиокнига.", "NoteUploaderUnsupportedFiles": "Неподдържаните файлове се игнорират. При избор или пускане на папка, други файлове, които не са в папка на елемент, се игнорират.", + "NotificationOnBackupCompletedDescription": "Изпълнява се при завършване на създаване на резервно копие", + "NotificationOnBackupFailedDescription": "Изпълнява се при неуспешено създаване на резервно копие", + "NotificationOnEpisodeDownloadedDescription": "Изпълнява се при автоматично изтегляне на подкаст епизод", + "NotificationOnRSSFeedDisabledDescription": "Изпълнява се, когато автоматичното изтегляне на епизодите е деактивирано, поради твърде много неуспешни опити", "PlaceholderNewCollection": "Ново име на колекцията", "PlaceholderNewFolderPath": "Нов път на папката", "PlaceholderNewPlaylist": "Ново име на плейлиста", "PlaceholderSearch": "Търсене...", "PlaceholderSearchEpisode": "Търсене на Епизоди...", + "StatsAuthorsAdded": "добаврени автори", + "StatsBooksAdded": "добавени книги", + "StatsBooksFinished": "завършени книги", "ToastAccountUpdateSuccess": "Успешно обновяване на акаунта", "ToastAuthorImageRemoveSuccess": "Авторската снимка е премахната", "ToastAuthorUpdateMerged": "Обновяване на автора сливано", From a1e882cbf1adc815811bcfbd87ed5a0c82d70deb Mon Sep 17 00:00:00 2001 From: Daniel Schosser Date: Mon, 18 Aug 2025 09:00:56 +0200 Subject: [PATCH 20/27] Translated using Weblate (German) Currently translated at 100.0% (1156 of 1156 strings) Translation: Audiobookshelf/Abs Web Client Translate-URL: https://hosted.weblate.org/projects/audiobookshelf/abs-web-client/de/ --- client/strings/de.json | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/client/strings/de.json b/client/strings/de.json index 454e6c86b..f0c4443d4 100644 --- a/client/strings/de.json +++ b/client/strings/de.json @@ -127,6 +127,7 @@ "HeaderAudiobookTools": "Hörbuch-Dateiverwaltungswerkzeuge", "HeaderAuthentication": "Authentifizierung", "HeaderBackups": "Sicherungen", + "HeaderBulkChapterModal": "Mehrere Kapitel hinzufügen", "HeaderChangePassword": "Passwort ändern", "HeaderChapters": "Kapitel", "HeaderChooseAFolder": "Wähle einen Ordner", @@ -308,6 +309,7 @@ "LabelDeleteFromFileSystemCheckbox": "Löschen von der Festplatte + Datenbank (deaktivieren um nur aus der Datenbank zu entfernen)", "LabelDescription": "Beschreibung", "LabelDeselectAll": "Alles abwählen", + "LabelDetectedPattern": "Erkanntes Muster:", "LabelDevice": "Gerät", "LabelDeviceInfo": "Geräteinformationen", "LabelDeviceIsAvailableTo": "Dem Gerät ist es möglich zu ...", @@ -472,6 +474,7 @@ "LabelNewestAuthors": "Neueste Autoren", "LabelNewestEpisodes": "Neueste Episoden", "LabelNextBackupDate": "Nächstes Sicherungsdatum", + "LabelNextChapters": "Das nächste Kapitel ist:", "LabelNextScheduledRun": "Nächster planmäßiger Durchlauf", "LabelNoApiKeys": "Keine API-Schlüssel vorhanden", "LabelNoCustomMetadataProviders": "Keine benutzerdefinierten Metadata Anbieter", @@ -489,6 +492,7 @@ "LabelNotificationsMaxQueueSize": "Maximale Größe der Warteschlange für die Benachrichtigungsereignisse", "LabelNotificationsMaxQueueSizeHelp": "Es wird nur 1 Ereignis pro Sekunde ausgelöst. Ereignisse werden ignoriert, wenn die Warteschlange die maximale Größe erreicht hat. Dies verhindert Benachrichtigungsspamming.", "LabelNumberOfBooks": "Anzahl der Hörbücher", + "LabelNumberOfChapters": "Anzahl an Kapiteln:", "LabelNumberOfEpisodes": "Anzahl der Episoden", "LabelOpenIDAdvancedPermsClaimDescription": "Name des OpenID-Claims, der erweiterte Berechtigungen für Benutzeraktionen innerhalb der Anwendung enthält, die auf Nicht-Admin-Rollen angewendet werden (wenn konfiguriert). Wenn der Claim in der Antwort fehlt, wird der Zugang zu ABS verweigert. Fehlt eine einzelne Option, wird sie als false behandelt. Stelle sicher, dass der Claim des Identitätsanbieters der erwarteten Struktur entspricht:", "LabelOpenIDClaims": "Lass die folgenden Optionen leer, um die erweiterte Zuweisung von Gruppen und Berechtigungen zu deaktivieren und automatisch die 'User'-Gruppe zuzuweisen.", @@ -728,7 +732,7 @@ "LabelYourProgress": "Fortschritt", "MessageAddToPlayerQueue": "Zur Abspielwarteliste hinzufügen", "MessageAppriseDescription": "Um diese Funktion nutzen zu können, musst du eine Instanz von Apprise API laufen haben oder eine API verwenden welche dieselbe Anfragen bearbeiten kann.
Die Apprise API Url muss der vollständige URL-Pfad sein, an den die Benachrichtigung gesendet werden soll, z.B. wenn Ihre API-Instanz unter http://192.168.1.1:8337 läuft, würdest du http://192.168.1.1:8337/notify eingeben.", - "MessageAsinCheck": "Stellen Sie sicher, dass Sie die ASIN aus der richtigen Audible Region verwenden, nicht Amazon.", + "MessageAsinCheck": "Stelle sicher, dass die ASIN aus der richtigen Audible Region verwendet wird, nicht Amazon.", "MessageAuthenticationLegacyTokenWarning": "Alte API tokens werden in Zukunft entfernt. Benutze stattdessen API Keys.", "MessageAuthenticationOIDCChangesRestart": "Nach dem Speichern muss der Server neugestartet werden um die OIDC Änderungen zu übernehmen.", "MessageAuthenticationSecurityMessage": "Die Anmeldung wurde abgesichert. Benutzersitzungen werden getrennt, alle Benutzer müssen sich erneut anmelden.", @@ -745,6 +749,7 @@ "MessageBookshelfNoResultsForFilter": "Keine Ergebnisse für Filter \"{0}: {1}\"", "MessageBookshelfNoResultsForQuery": "Keine Ergebnisse für die Abfrage", "MessageBookshelfNoSeries": "Keine Serien vorhanden", + "MessageBulkChapterPattern": "Wie viele Kapitel mit diesem Nummerierungs-Muster sollen hinzugefügt werden?", "MessageChapterEndIsAfter": "Ungültige Kapitelendzeit: Kapitelende > Mediumende (Kapitelende liegt nach dem Ende des Mediums)", "MessageChapterErrorFirstNotZero": "Ungültige Kapitelstartzeit: Das erste Kapitel muss bei 0 beginnen", "MessageChapterErrorStartGteDuration": "Ungültige Kapitelstartzeit: Kapitelanfang > Mediumlänge (Kapitelanfang liegt zeitlich nach dem Ende des Mediums -> Lösung: Kapitelanfang < Mediumlänge)", @@ -948,6 +953,7 @@ "NotificationOnRSSFeedDisabledDescription": "Wird ausgeführt wenn automatische Downloads von Episoden wegen zu vielen fehlgeschlagenen Versuchen deaktiviert sind", "NotificationOnRSSFeedFailedDescription": "Wird ausgelöst, wenn die RSS-Feed-Anforderung für einen automatischen Episoden-Download fehlschlägt", "NotificationOnTestDescription": "Wird ausgeführt wenn das Benachrichtigungssystem getestet wird", + "PlaceholderBulkChapterInput": "Geben den Titel des Kapitels ein oder verwende eine Nummerierung (z. B. \"Episode 1\", \"Kapitel 10\", \"1.\")", "PlaceholderNewCollection": "Neuer Sammlungsname", "PlaceholderNewFolderPath": "Neuer Ordnerpfad", "PlaceholderNewPlaylist": "Neuer Wiedergabelistenname", @@ -1001,11 +1007,15 @@ "ToastBookmarkCreateFailed": "Lesezeichen konnte nicht erstellt werden", "ToastBookmarkCreateSuccess": "Lesezeichen hinzugefügt", "ToastBookmarkRemoveSuccess": "Lesezeichen entfernt", + "ToastBulkChapterInvalidCount": "Gebe eine Zahl zwischen 1 und 150 ein", "ToastCachePurgeFailed": "Cache leeren fehlgeschlagen", "ToastCachePurgeSuccess": "Cache geleert", + "ToastChapterLocked": "Kapitel ist freigegeben.", + "ToastChapterStartTimeAdjusted": "Kapitelbeginn um {0} Sekunden angepasst", + "ToastChaptersAllLocked": "Alle Kapitel sind gesperrt. Gebe einige Kapitel frei um die Zeiten anzupassen.", "ToastChaptersHaveErrors": "Kapitel sind fehlerhaft", "ToastChaptersInvalidShiftAmountLast": "Die Verschiebung ist nicht möglich, da die Startzeit des letzten Kapitels über die Gesamtdauer dieses Hörbuchs hinausgehen würde.", - "ToastChaptersInvalidShiftAmountStart": "Ungültige Höhe der Verschiebung. Das erste Kapitel hätte eine Länge von Null oder eine negative Länge und würde vom zweiten Kapitel überschrieben werden. Erhöhen Sie die Startdauer des zweiten Kapitels.", + "ToastChaptersInvalidShiftAmountStart": "Ungültige Höhe der Verschiebung. Das erste Kapitel hätte eine Länge von Null oder eine negative Länge und würde vom zweiten Kapitel überschrieben werden. Erhöhe die Startdauer des zweiten Kapitels.", "ToastChaptersMustHaveTitles": "Kapitel benötigen eindeutige Namen", "ToastChaptersRemoved": "Kapitel entfernt", "ToastChaptersUpdated": "Kapitel aktualisiert", @@ -1136,5 +1146,13 @@ "ToastUserPasswordChangeSuccess": "Passwort erfolgreich verändert", "ToastUserPasswordMismatch": "Passwörter stimmen nicht überein", "ToastUserPasswordMustChange": "Neues Passwort muss sich von altem Passwort unterscheiden", - "ToastUserRootRequireName": "Root Benutzername muss angegeben werden" + "ToastUserRootRequireName": "Root Benutzername muss angegeben werden", + "TooltipAddChapters": "Kapitel hinzufügen", + "TooltipAddOneSecond": "1 Sekunde hinzufügen", + "TooltipAdjustChapterStart": "Klicke um die Startzeit anzupassen", + "TooltipLockAllChapters": "Alle Kapitel sperren", + "TooltipLockChapter": "Kapitel sperren (Shift+Klick für mehrere)", + "TooltipSubtractOneSecond": "1 Sekunde abziehen", + "TooltipUnlockAllChapters": "Alle Kapitel freigeben", + "TooltipUnlockChapter": "Kapitel freigeben (Shift+Klick für mehrere)" } From 84e742f2a5c887dc6d212eb41fd2bb3b6b80aaa2 Mon Sep 17 00:00:00 2001 From: B0rax Date: Tue, 19 Aug 2025 11:47:42 +0200 Subject: [PATCH 21/27] Translated using Weblate (German) Currently translated at 100.0% (1156 of 1156 strings) Translation: Audiobookshelf/Abs Web Client Translate-URL: https://hosted.weblate.org/projects/audiobookshelf/abs-web-client/de/ --- client/strings/de.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/strings/de.json b/client/strings/de.json index f0c4443d4..bcd724c9b 100644 --- a/client/strings/de.json +++ b/client/strings/de.json @@ -953,7 +953,7 @@ "NotificationOnRSSFeedDisabledDescription": "Wird ausgeführt wenn automatische Downloads von Episoden wegen zu vielen fehlgeschlagenen Versuchen deaktiviert sind", "NotificationOnRSSFeedFailedDescription": "Wird ausgelöst, wenn die RSS-Feed-Anforderung für einen automatischen Episoden-Download fehlschlägt", "NotificationOnTestDescription": "Wird ausgeführt wenn das Benachrichtigungssystem getestet wird", - "PlaceholderBulkChapterInput": "Geben den Titel des Kapitels ein oder verwende eine Nummerierung (z. B. \"Episode 1\", \"Kapitel 10\", \"1.\")", + "PlaceholderBulkChapterInput": "Kapitelbezeichnung eingeben oder Nummerierung verwenden (z.B. 'Episode 1', 'Kapitel 10', '1.')", "PlaceholderNewCollection": "Neuer Sammlungsname", "PlaceholderNewFolderPath": "Neuer Ordnerpfad", "PlaceholderNewPlaylist": "Neuer Wiedergabelistenname", From ac7464ce7e464f54986dc82d058de4af0412e751 Mon Sep 17 00:00:00 2001 From: ugyes Date: Mon, 18 Aug 2025 17:22:02 +0200 Subject: [PATCH 22/27] Translated using Weblate (Hungarian) Currently translated at 99.8% (1154 of 1156 strings) Translation: Audiobookshelf/Abs Web Client Translate-URL: https://hosted.weblate.org/projects/audiobookshelf/abs-web-client/hu/ --- client/strings/hu.json | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/client/strings/hu.json b/client/strings/hu.json index bc77c561d..8f8836ada 100644 --- a/client/strings/hu.json +++ b/client/strings/hu.json @@ -127,6 +127,7 @@ "HeaderAudiobookTools": "Hangoskönyv fájlkezelő eszközök", "HeaderAuthentication": "Hitelesítés", "HeaderBackups": "Biztonsági másolatok", + "HeaderBulkChapterModal": "Több fejezet hozzáadása", "HeaderChangePassword": "Jelszó megváltoztatása", "HeaderChapters": "Fejezetek", "HeaderChooseAFolder": "Válasszon egy mappát", @@ -308,6 +309,7 @@ "LabelDeleteFromFileSystemCheckbox": "Törlés a fájlrendszerről (ne jelölje be, ha csak az adatbázisból szeretné eltávolítani)", "LabelDescription": "Leírás", "LabelDeselectAll": "Minden kijelölés megszüntetése", + "LabelDetectedPattern": "Észlelt minta:", "LabelDevice": "Eszköz", "LabelDeviceInfo": "Eszköz információ", "LabelDeviceIsAvailableTo": "Eszköz elérhető a következő számára...", @@ -472,6 +474,7 @@ "LabelNewestAuthors": "A legújabb szerzők", "LabelNewestEpisodes": "Legújabb epizódok", "LabelNextBackupDate": "Következő biztonsági másolat dátuma", + "LabelNextChapters": "A következő fejezetek:", "LabelNextScheduledRun": "Következő ütemezett futtatás", "LabelNoApiKeys": "Nincs API kulcs", "LabelNoCustomMetadataProviders": "Nincsenek egyedi metaadat szolgáltatók", @@ -489,6 +492,7 @@ "LabelNotificationsMaxQueueSize": "Maximális értesítési események sorának mérete", "LabelNotificationsMaxQueueSizeHelp": "Az események korlátozva vannak, hogy másodpercenként 1-szer történjenek. Ha a sor maximális méretű, akkor az események figyelmen kívül lesznek hagyva. Ez megakadályozza az értesítések spamelését.", "LabelNumberOfBooks": "Könyvek száma", + "LabelNumberOfChapters": "Fejezetek száma:", "LabelNumberOfEpisodes": "Epizódok száma", "LabelOpenIDAdvancedPermsClaimDescription": "Az OpenID-igény neve, amely a felhasználói műveletekre vonatkozó haladó jogosultságokat tartalmazza az alkalmazáson belül, és amely a nem adminisztrátori szerepkörökre vonatkozik (ha konfigurálva van). Ha az igény hiányzik a válaszból, az ABS-hez való hozzáférés megtagadásra kerül. Ha egyetlen opció hiányzik, azt false-ként fogja kezelni. Győződj meg arról, hogy az identitásszolgáltató igénye megfelel a várt struktúrának:", "LabelOpenIDClaims": "Hagyd üresen a következő opciókat, hogy letiltsd a haladó csoport- és jogosultság-hozzárendelést, ekkor automatikusan a ‘Felhasználó’ csoport kerül hozzárendelésre.", @@ -745,6 +749,7 @@ "MessageBookshelfNoResultsForFilter": "Nincs eredmény a \"{0}: {1}\" szűrőre", "MessageBookshelfNoResultsForQuery": "Nincs eredmény a lekérdezéshez", "MessageBookshelfNoSeries": "Nincsenek sorozatai", + "MessageBulkChapterPattern": "Hány fejezetet szeretne hozzáadni ezzel a számozási mintával?", "MessageChapterEndIsAfter": "A fejezet vége a hangoskönyv végét követi", "MessageChapterErrorFirstNotZero": "Az első fejezetnek 0:00-kor kell kezdődnie", "MessageChapterErrorStartGteDuration": "Érvénytelen kezdési idő, kevesebbnek kell lennie, mint a hangoskönyv időtartama", @@ -946,6 +951,7 @@ "NotificationOnRSSFeedDisabledDescription": "Akkor lép működésbe, ha az automatikus epizódletöltés a túl sok sikertelen próbálkozás miatt letiltásra kerül", "NotificationOnRSSFeedFailedDescription": "Akkor aktiválódik, ha az RSS feed kérés sikertelen az automatikus epizódletöltésnél", "NotificationOnTestDescription": "Esemény az értesítési rendszer teszteléséhez", + "PlaceholderBulkChapterInput": "Írja be a fejezet címét vagy használjon számozást (pl. „1. epizód”, „10. fejezet”, „1.”)", "PlaceholderNewCollection": "Új gyűjtemény neve", "PlaceholderNewFolderPath": "Új mappa útvonala", "PlaceholderNewPlaylist": "Új lejátszási lista neve", @@ -999,8 +1005,12 @@ "ToastBookmarkCreateFailed": "Könyvjelző létrehozása sikertelen", "ToastBookmarkCreateSuccess": "Könyvjelző hozzáadva", "ToastBookmarkRemoveSuccess": "Könyvjelző eltávolítva", + "ToastBulkChapterInvalidCount": "Írjon be egy számot 1 és 150 között", "ToastCachePurgeFailed": "A gyorsítótár törlése sikertelen", "ToastCachePurgeSuccess": "A gyorsítótár sikeresen törölve", + "ToastChapterLocked": "A fejezet zárolt.", + "ToastChapterStartTimeAdjusted": "A fejezet kezdési ideje {0} másodperccel módosítva", + "ToastChaptersAllLocked": "Minden fejezet zárolt. Nyisson meg néhány fejezetet, hogy módosítsa azok idejét.", "ToastChaptersHaveErrors": "A fejezetek hibákat tartalmaznak", "ToastChaptersInvalidShiftAmountLast": "Érvénytelen eltolási érték. Az utolsó fejezet kezdési időpontja túlnyúlna a hangoskönyv időtartamán.", "ToastChaptersInvalidShiftAmountStart": "Érvénytelen eltolási érték. Az első fejezet hossza nulla vagy negatív lenne, és a második fejezet felülírná. Növelje a második fejezet kezdő időtartamát.", @@ -1134,5 +1144,13 @@ "ToastUserPasswordChangeSuccess": "Jelszó sikeresen megváltoztatva", "ToastUserPasswordMismatch": "A jelszavak nem egyeznek", "ToastUserPasswordMustChange": "Az új jelszó nem egyezik a régi jelszóval", - "ToastUserRootRequireName": "Egy root felhasználónevet kell megadnia" + "ToastUserRootRequireName": "Egy root felhasználónevet kell megadnia", + "TooltipAddChapters": "Fejezet(ek) hozzáadása", + "TooltipAddOneSecond": "1 másodperc hozzáadása", + "TooltipAdjustChapterStart": "Kattintson a kezdési idő beállításához", + "TooltipLockAllChapters": "Az összes fejezet zárolása", + "TooltipLockChapter": "Fejezet zárolása (Shift+kattintás a tartományhoz)", + "TooltipSubtractOneSecond": "1 másodperc levonása", + "TooltipUnlockAllChapters": "Az összes fejezet feloldása", + "TooltipUnlockChapter": "Fejezet feloldása (Shift+kattintás a tartományhoz)" } From 73cf22b4995b5d1aa72a722be320fb5a3d0820b6 Mon Sep 17 00:00:00 2001 From: Jan-Eric Myhrgren Date: Tue, 19 Aug 2025 16:46:01 +0200 Subject: [PATCH 23/27] Translated using Weblate (Swedish) Currently translated at 96.7% (1118 of 1156 strings) Translation: Audiobookshelf/Abs Web Client Translate-URL: https://hosted.weblate.org/projects/audiobookshelf/abs-web-client/sv/ --- client/strings/sv.json | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/client/strings/sv.json b/client/strings/sv.json index f9f389191..377a88cc6 100644 --- a/client/strings/sv.json +++ b/client/strings/sv.json @@ -127,6 +127,7 @@ "HeaderAudiobookTools": "Hantering av ljudboksfiler", "HeaderAuthentication": "Autentisering", "HeaderBackups": "Säkerhetskopior", + "HeaderBulkChapterModal": "Addera flera kapitel", "HeaderChangePassword": "Ändra lösenord", "HeaderChapters": "Kapitel", "HeaderChooseAFolder": "Välj en mapp", @@ -308,6 +309,7 @@ "LabelDeleteFromFileSystemCheckbox": "Ta även bort från filsystem (avmarkera = raderar endast från databasen)", "LabelDescription": "Beskrivning", "LabelDeselectAll": "Avmarkera alla", + "LabelDetectedPattern": "Identifierat mönster:", "LabelDevice": "Enhet", "LabelDeviceInfo": "Enhetsinformation", "LabelDeviceIsAvailableTo": "Enhet är tillgänglig för...", @@ -472,6 +474,7 @@ "LabelNewestAuthors": "Senaste författarna", "LabelNewestEpisodes": "Senaste avsnitten", "LabelNextBackupDate": "Nästa tillfälle för säkerhetskopiering", + "LabelNextChapters": "Nästa kapitel kommer att vara:", "LabelNextScheduledRun": "Nästa schemalagda körning", "LabelNoApiKeys": "Ingen API-nyckel", "LabelNoCustomMetadataProviders": "Ingen egen källa för metadata", @@ -810,8 +813,8 @@ "MessageLoading": "Laddar...", "MessageLoadingFolders": "Laddar mappar...", "MessageLogsDescription": "Filer med loggningsinformation sparas i mappen /metadata/logs som JSON-filer.
Filer med information om krascher sparas i /metadata/logs/crash_logs.txt.", - "MessageM4BFailed": "M4B misslyckades!", - "MessageM4BFinished": "M4B klar!", + "MessageM4BFailed": "Skapandet av en M4B-fil misslyckades!", + "MessageM4BFinished": "Omkodningen till M4B är genomförd!", "MessageMapChapterTitles": "Kartlägg kapitelrubriker till dina befintliga ljudbokskapitel utan att justera tidstämplar", "MessageMarkAllEpisodesFinished": "Markera alla avsnitt som avslutade", "MessageMarkAllEpisodesNotFinished": "Markera alla avsnitt som ej avslutade", @@ -930,6 +933,7 @@ "NotificationOnBackupCompletedDescription": "Aktiveras när en backup är genomförd", "NotificationOnBackupFailedDescription": "Aktiveras när en backup misslyckas", "NotificationOnEpisodeDownloadedDescription": "Aktiveras när avsnitt i en podcast automatiskt har hämtats", + "PlaceholderBulkChapterInput": "Addera kapitlets titel eller numrera kapitlen (t.ex. 'Avsnitt 1', 'Kapitel 10', '1.)", "PlaceholderNewCollection": "Nytt namn på samlingen", "PlaceholderNewFolderPath": "Ny sökväg till mappen", "PlaceholderNewPlaylist": "Nytt namn på spellistan", @@ -980,9 +984,14 @@ "ToastBookmarkCreateFailed": "Det gick inte att skapa bokmärket", "ToastBookmarkCreateSuccess": "Bokmärket har adderats", "ToastBookmarkRemoveSuccess": "Bokmärket har raderats", + "ToastBulkChapterInvalidCount": "Ange ett nummer mellan 1 och 150", "ToastCachePurgeFailed": "Misslyckades med att rensa cachen", "ToastCachePurgeSuccess": "Rensning av cachen har genomförts", + "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", + "ToastChaptersInvalidShiftAmountLast": "Felaktig ändring. Det sista kapitlets starttid kommer att hamna efter den totala längden på ljudboken.", + "ToastChaptersInvalidShiftAmountStart": "Felaktig ändring. Det första kapitlets längd kommer att vara 0 eller ha ett negativt värde. Det kommer därför att skrivas över av det andra kapitlet. Öka starttiden för det andra kapitlet.", "ToastChaptersMustHaveTitles": "Kapitel måste ha titlar", "ToastChaptersRemoved": "Kapitlen har raderats", "ToastChaptersUpdated": "Kapitlen har uppdaterats", @@ -1048,6 +1057,7 @@ "ToastNoUpdatesNecessary": "Inga uppdateringar var nödvändiga", "ToastNotificationCreateFailed": "Misslyckades med att skapa meddelandet", "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", "ToastNotificationUpdateSuccess": "Meddelandet har uppdaterats", "ToastPlaylistCreateFailed": "Det gick inte att skapa spellistan", @@ -1079,7 +1089,7 @@ "ToastSendEbookToDeviceFailed": "Misslyckades med att skicka e-boken till enheten", "ToastSendEbookToDeviceSuccess": "E-boken skickad till enheten \"{0}\"", "ToastSeriesSubmitFailedSameName": "Det är inte möjligt att addera två serier med samma namn", - "ToastSeriesUpdateFailed": "Uppdateringen av serier misslyckades", + "ToastSeriesUpdateFailed": "Misslyckades med att uppdatera serien", "ToastSeriesUpdateSuccess": "Uppdateringen av serierna lyckades", "ToastServerSettingsUpdateSuccess": "Inställningarna för servern har uppdaterats", "ToastSessionDeleteFailed": "Misslyckades med att ta bort sessionen", @@ -1100,5 +1110,13 @@ "ToastUserPasswordChangeSuccess": "Lösenordet har ändrats", "ToastUserPasswordMismatch": "Lösenorden är inte identiska", "ToastUserPasswordMustChange": "Det nya lösenordet kan inte vara samma som det gamla", - "ToastUserRootRequireName": "Ett användarnamn för 'root' måste anges" + "ToastUserRootRequireName": "Ett användarnamn för 'root' måste anges", + "TooltipAddChapters": "Addera kapitel", + "TooltipAddOneSecond": "Öka med 1 sekund", + "TooltipAdjustChapterStart": "Klicka för att ändra starttiden", + "TooltipLockAllChapters": "Lås alla kapitel", + "TooltipLockChapter": "Lås kapitel (Tryck på Shift + Klick för att markera flera)", + "TooltipSubtractOneSecond": "Minska med 1 sekund", + "TooltipUnlockAllChapters": "Lås upp alla kapitel", + "TooltipUnlockChapter": "Lås upp kapitel (Tryck på Shift + Klick för att markera flera)" } From e196a6e5cac840852c44eee00cdb21429a650cdf Mon Sep 17 00:00:00 2001 From: owlcollector Date: Mon, 18 Aug 2025 18:04:23 +0200 Subject: [PATCH 24/27] Translated using Weblate (Japanese) Currently translated at 9.7% (113 of 1156 strings) Translation: Audiobookshelf/Abs Web Client Translate-URL: https://hosted.weblate.org/projects/audiobookshelf/abs-web-client/ja/ --- client/strings/ja.json | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/client/strings/ja.json b/client/strings/ja.json index 05f83b4be..c78ac0444 100644 --- a/client/strings/ja.json +++ b/client/strings/ja.json @@ -88,6 +88,8 @@ "HeaderLatestEpisodes": "最新のエピソード", "HeaderLibraries": "ライブラリー", "HeaderPlayerSettings": "プレーヤーの設定", + "HeaderSettingsGeneral": "一般", + "HeaderSettingsScanner": "スキャナー", "LabelBooks": "ほん", "LabelContinueListening": "続きから聞く", "LabelLanguage": "言語", @@ -97,5 +99,17 @@ "LabelNewPassword": "新しいのパスワード", "LabelPassword": "パスワード", "LabelPlaylists": "プレイリスト", - "LabelPodcast": "ポッドキャスト" + "LabelPodcast": "ポッドキャスト", + "LabelSettingsFindCovers": "表紙を探す", + "LabelSettingsFindCoversHelp": "もしオーディオブックに表紙が埋め込まれていない、もしくは表紙画像がフォルダー内に見つからなければ、スキャナーは表紙を探そうとします。
注記: これによってスキャン時間が長くなります", + "LabelSettingsParseSubtitles": "サブタイトルを抽出する", + "LabelSettingsParseSubtitlesHelp": "オーディオブックのフォルダー名からサブタイトルを抽出します。
サブタイトルは \"-\" で区切ってください
例: \"本のタイトル - ここにサブタイトル\" という名前だと \"ここにサブタイトル\" というサブタイトルになります", + "LabelSettingsPreferMatchedMetadata": "一致したメタデータを優先する", + "LabelSettingsPreferMatchedMetadataHelp": "クイックマッチを使用する時、一致したデータは書籍の詳細を上書きします。デフォルトでは、埋まっていない項目のみ入力されます。", + "LabelSettingsSortingIgnorePrefixes": "並び替えでプレフィックスを無視する", + "LabelSettingsSortingIgnorePrefixesHelp": "例: プレフィックス \"the\" の付いた本のタイトル \"The Book Title\" は \"Book Title, The\" として並び替えられます", + "LabelSettingsStoreCoversWithItem": "表紙を項目と一緒に保存する", + "LabelSettingsStoreCoversWithItemHelp": "デフォルトでは表紙は /metadata/items に保存されますが、この設定をオンにするとライブラリーの項目のフォルダーに保存されます。\"cover\" という名前のファイル一つのみが保持されます", + "LabelSettingsStoreMetadataWithItem": "メタデータを項目と一緒に保存する", + "LabelSettingsStoreMetadataWithItemHelp": "デフォルトではメタデータは/metadata/itemsに保存されますが、この設定をオンにするとライブラリーの項目のフォルダーに保存されます" } From b3d020b89f037a3bc92375d01dc669d6c9240c9e Mon Sep 17 00:00:00 2001 From: Jan-Eric Myhrgren Date: Wed, 20 Aug 2025 07:32:24 +0200 Subject: [PATCH 25/27] Translated using Weblate (Swedish) Currently translated at 96.8% (1121 of 1157 strings) Translation: Audiobookshelf/Abs Web Client Translate-URL: https://hosted.weblate.org/projects/audiobookshelf/abs-web-client/sv/ --- client/strings/sv.json | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/client/strings/sv.json b/client/strings/sv.json index 377a88cc6..c4ed24ef4 100644 --- a/client/strings/sv.json +++ b/client/strings/sv.json @@ -331,9 +331,9 @@ "LabelEmail": "E-post", "LabelEmailSettingsFromAddress": "Från e-postadress", "LabelEmailSettingsRejectUnauthorized": "Avvisa icke-autentiserade certifikat", - "LabelEmailSettingsRejectUnauthorizedHelp": "Inaktivering av SSL-certifikatsvalidering kan exponera din anslutning för säkerhetsrisker, såsom man-in-the-middle-attacker. Inaktivera bara denna inställning om du förstår implikationerna och litar på den epostserver du ansluter till.", + "LabelEmailSettingsRejectUnauthorizedHelp": "Om valideringen av SSL-certifikat stängs av kan det exponera din anslutning för säkerhetsrisker, som attacker av typen 'man-in-the-middle'. Stäng endast av denna inställning om du förstår konsekvenserna och litar på den epostserver du är ansluten till.", "LabelEmailSettingsSecure": "Säker", - "LabelEmailSettingsSecureHelp": "Om sant kommer anslutningen att använda TLS vid anslutning till servern. Om falskt används TLS om servern stöder STARTTLS-tillägget. I de flesta fall, om du ansluter till port 465, bör du ställa in detta värde till sant. För port 587 eller 25, låt det vara falskt. (från nodemailer.com/smtp/#authentication)", + "LabelEmailSettingsSecureHelp": "Om aktiverad kommer anslutningen att använda TLS vid anslutning till servern. Annars används TLS om servern stöder STARTTLS-tillägget. I de flesta fall, om du ansluter till port 465, bör detta alternativ vara aktiverat. För port 587 eller 25, bör det vara avstängt. (från nodemailer.com/smtp/#authentication)", "LabelEmailSettingsTestAddress": "E-postadress för test", "LabelEmbeddedCover": "Infogat omslag", "LabelEnable": "Aktivera", @@ -482,10 +482,10 @@ "LabelNotFinished": "Ej avslutad", "LabelNotStarted": "Ej påbörjad", "LabelNotes": "Anteckningar", - "LabelNotificationAppriseURL": "Apprise URL(er)", + "LabelNotificationAppriseURL": "Apprise URL-adress(er)", "LabelNotificationAvailableVariables": "Tillgängliga variabler", "LabelNotificationBodyTemplate": "Kroppsmall", - "LabelNotificationEvent": "Aviseringshändelse", + "LabelNotificationEvent": "Händelser som skickar ett meddelande", "LabelNotificationTitleTemplate": "Titelsmall", "LabelNotificationsMaxFailedAttempts": "Max antal misslyckade försök", "LabelNotificationsMaxFailedAttemptsHelp": "Aviseringar inaktiveras när de misslyckas med att skickas så många gånger", @@ -729,7 +729,7 @@ "LabelYourPlaylists": "Dina spellistor", "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 igång eller en API som hanterar dessa begäranden.
Apprise API-urlen bör vara hela URL-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.", + "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.", "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.", @@ -933,6 +933,9 @@ "NotificationOnBackupCompletedDescription": "Aktiveras när en backup är genomförd", "NotificationOnBackupFailedDescription": "Aktiveras när en backup misslyckas", "NotificationOnEpisodeDownloadedDescription": "Aktiveras när avsnitt i en podcast automatiskt har hämtats", + "NotificationOnRSSFeedDisabledDescription": "Aktiveras när den automatiska nedladdningen av avsnitt i en podcast stängts av pga för många misslyckade försök", + "NotificationOnRSSFeedFailedDescription": "Aktiveras när den automatiska nedladdningen av avsnitt i en podcast misslyckats", + "NotificationOnTestDescription": "Händelse för att testa meddelandesystemet", "PlaceholderBulkChapterInput": "Addera kapitlets titel eller numrera kapitlen (t.ex. 'Avsnitt 1', 'Kapitel 10', '1.)", "PlaceholderNewCollection": "Nytt namn på samlingen", "PlaceholderNewFolderPath": "Ny sökväg till mappen", @@ -958,7 +961,7 @@ "StatsTotalDuration": "Med den totala längden…", "StatsYearInReview": "- SAMMANSTÄLLNING AV ÅRET", "ToastAccountUpdateSuccess": "Kontot har uppdaterats", - "ToastAppriseUrlRequired": "En adress till Apprise måste anges", + "ToastAppriseUrlRequired": "En URL-adress till Apprise API måste anges", "ToastAsinRequired": "En ASIN-kod krävs", "ToastAuthorImageRemoveSuccess": "Författarens bild borttagen", "ToastAuthorNotFound": "Författaren \"{0}\" kunde inte identifieras", From 6aa9ecaabaae67f0bea09924042b284044ed7743 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9C=D0=B0=D0=BA=D1=81=D0=B8=D0=BC=20=D0=93=D0=BE=D1=80?= =?UTF-8?q?=D0=BF=D0=B8=D0=BD=D1=96=D1=87?= Date: Wed, 20 Aug 2025 07:01:55 +0200 Subject: [PATCH 26/27] Translated using Weblate (Ukrainian) Currently translated at 100.0% (1157 of 1157 strings) Translation: Audiobookshelf/Abs Web Client Translate-URL: https://hosted.weblate.org/projects/audiobookshelf/abs-web-client/uk/ --- client/strings/uk.json | 1 + 1 file changed, 1 insertion(+) diff --git a/client/strings/uk.json b/client/strings/uk.json index a79849ac1..9e6ac9f48 100644 --- a/client/strings/uk.json +++ b/client/strings/uk.json @@ -1096,6 +1096,7 @@ "ToastPlaylistUpdateSuccess": "Список відтворення оновлено", "ToastPodcastCreateFailed": "Не вдалося створити подкаст", "ToastPodcastCreateSuccess": "Подкаст успішно створено", + "ToastPodcastEpisodeUpdated": "Епізод оновлено", "ToastPodcastGetFeedFailed": "Не вдалося отримати фід подкасту", "ToastPodcastNoEpisodesInFeed": "У RSS-каналі не знайдено епізодів", "ToastPodcastNoRssFeed": "Подкаст не має RSS-каналу", From 6194c485496b7a1f0cb48374c40044ae43c20811 Mon Sep 17 00:00:00 2001 From: FiendFEARing Date: Wed, 20 Aug 2025 16:59:26 +0200 Subject: [PATCH 27/27] Translated using Weblate (Chinese (Simplified Han script)) Currently translated at 100.0% (1157 of 1157 strings) Translation: Audiobookshelf/Abs Web Client Translate-URL: https://hosted.weblate.org/projects/audiobookshelf/abs-web-client/zh_Hans/ --- client/strings/zh-cn.json | 1 + 1 file changed, 1 insertion(+) diff --git a/client/strings/zh-cn.json b/client/strings/zh-cn.json index 67d587f0a..42eee1ac5 100644 --- a/client/strings/zh-cn.json +++ b/client/strings/zh-cn.json @@ -1096,6 +1096,7 @@ "ToastPlaylistUpdateSuccess": "播放列表已更新", "ToastPodcastCreateFailed": "创建播客失败", "ToastPodcastCreateSuccess": "已成功创建播客", + "ToastPodcastEpisodeUpdated": "剧集已更新", "ToastPodcastGetFeedFailed": "无法获取播客信息", "ToastPodcastNoEpisodesInFeed": "RSS 订阅中未找到任何剧集", "ToastPodcastNoRssFeed": "播客没有 RSS 源",