diff --git a/client/components/modals/item/tabs/Tools.vue b/client/components/modals/item/tabs/Tools.vue index 68220a99..ed1953c8 100644 --- a/client/components/modals/item/tabs/Tools.vue +++ b/client/components/modals/item/tabs/Tools.vue @@ -6,8 +6,8 @@
-

Make M4B Audiobook File

-

Generate a .M4B audiobook file with embedded metadata, cover image, and chapters.

+

{{ $strings.LabelToolsMakeM4b }}

+

{{ $strings.LabelToolsMakeM4bDescription }}

@@ -23,12 +23,12 @@
-

Split M4B to MP3's

-

Generate multiple MP3's split by chapters with embedded metadata, cover image, and chapters.

+

{{ $strings.LabelToolsSplitM4b }}

+

{{ $strings.LabelToolsSplitM4bDescription }}

- Not yet implemented + {{ $strings.MessageNotYetImplemented }}
@@ -37,8 +37,8 @@
-

Embed Metadata

-

Embed metadata into audio files including cover image and chapters.

+

{{ $strings.LabelToolsEmbedMetadata }}

+

{{ $strings.LabelToolsEmbedMetadataDescription }}

diff --git a/client/layouts/default.vue b/client/layouts/default.vue index b64d330c..4d9d1438 100644 --- a/client/layouts/default.vue +++ b/client/layouts/default.vue @@ -87,19 +87,19 @@ export default { this.socket.emit('auth', token) if (!this.isFirstSocketConnection || this.socketConnectionToastId !== null) { - this.updateSocketConnectionToast('Socket Connected', 'success', 5000) + this.updateSocketConnectionToast(this.$strings.ToastSocketConnected, 'success', 5000) } this.isFirstSocketConnection = false this.isSocketConnected = true }, connectError() { console.error('[SOCKET] connect error') - this.updateSocketConnectionToast('Socket Failed to Connect', 'error', null) + this.updateSocketConnectionToast(this.$strings.ToastSocketFailedToConnect, 'error', null) }, disconnect() { console.log('[SOCKET] Disconnected') this.isSocketConnected = false - this.updateSocketConnectionToast('Socket Disconnected', 'error', null) + this.updateSocketConnectionToast(this.$strings.ToastSocketDisconnected, 'error', null) }, reconnect() { console.error('[SOCKET] reconnected') diff --git a/client/pages/config/notifications.vue b/client/pages/config/notifications.vue index 57edb485..05e00cb1 100644 --- a/client/pages/config/notifications.vue +++ b/client/pages/config/notifications.vue @@ -2,10 +2,7 @@

{{ $strings.HeaderAppriseNotificationSettings }}

-

- In order to use this feature you will need to have an instance of Apprise API running or an api that will handle those same requests.
The Apprise API Url should be the full URL path to send the notification, e.g., if your API instance is served at - http://192.168.1.1:8337 then you would put http://192.168.1.1:8337/notify. -

+

@@ -173,4 +170,21 @@ export default { this.$root.socket.off('notifications_updated', this.notificationsUpdated) } } - \ No newline at end of file + + + \ No newline at end of file diff --git a/client/pages/upload/index.vue b/client/pages/upload/index.vue index d744a20d..9eb3108d 100644 --- a/client/pages/upload/index.vue +++ b/client/pages/upload/index.vue @@ -21,7 +21,7 @@

{{ isDragging ? $strings.LabelUploaderDropFiles : $strings.LabelUploaderDragAndDrop }}

-

or

+

{{ $strings.MessageOr }}

{{ $strings.ButtonChooseFiles }} diff --git a/client/strings/de.json b/client/strings/de.json index e44c114e..4c812b46 100644 --- a/client/strings/de.json +++ b/client/strings/de.json @@ -342,6 +342,12 @@ "LabelTimeRemaining": "{0} verbleibend", "LabelTimeToShift": "Zeit bis zum Wechsel in Sekunden", "LabelTitle": "Titel", + "LabelToolsEmbedMetadata": "Embed Metadata", + "LabelToolsEmbedMetadataDescription": "Embed metadata into audio files including cover image and chapters.", + "LabelToolsMakeM4b": "Make M4B Audiobook File", + "LabelToolsMakeM4bDescription": "Generate a .M4B audiobook file with embedded metadata, cover image, and chapters.", + "LabelToolsSplitM4b": "Split M4B to MP3's", + "LabelToolsSplitM4bDescription": "Create MP3's from an M4B split by chapters with embedded metadata, cover image, and chapters.", "LabelTotalTimeListened": "Gehörte Gesamtzeit", "LabelTrackFromFilename": "Titel von Dateiname", "LabelTrackFromMetadata": "Titel aus Metadaten", @@ -364,6 +370,7 @@ "LabelYourAudiobookDuration": "Laufzeit Ihres Hörbuchs", "LabelYourBookmarks": "Ihre Lesezeichen", "LabelYourProgress": "Ihre Fortschritte", + "MessageAppriseDescription": "To use this feature you will need to have an instance of Apprise API running or an api that will handle those same requests.
The Apprise API Url should be the full URL path to send the notification, e.g., if your API instance is served at http://192.168.1.1:8337 then you would put http://192.168.1.1:8337/notify.", "MessageBackupsDescription": "In Sicherungen werden Benutzer, Benutzerfortschritte, Details zu den Bibliotheksobjekten, Servereinstellungen und Bilder gespeichert", "MessageBackupsNote": "Die Sicherungen enthalten keine Dateien welche in Ihren Bibliotheksordnern gespeichert sind.", "MessageBatchQuickMatchDescription": "Der Schnellabgleich versucht, fehlende Titelbilder und Metadaten für die ausgewählten Artikel hinzuzufügen. Aktivieren Sie die nachstehenden Optionen, damit der Schnellabgleich vorhandene Titelbilder und/oder Metadaten überschreiben kann.", @@ -418,8 +425,10 @@ "MessageNoPodcastsFound": "Keine Podcasts gefunden", "MessageNoResults": "Keine Ergebnisse", "MessageNoSearchResultsFor": "Keine Suchergebnisse für \"{0}\"", + "MessageNotYetImplemented": "Not yet implemented", "MessageNoUpdateNecessary": "Keine Aktualisierung erforderlich", "MessageNoUpdatesWereNecessary": "Keine Aktualisierungen waren notwendig", + "MessageOr": "or", "MessagePodcastHasNoRSSFeedForMatching": "Podcast hat keine RSS-Feed-Url welche für den Abgleich verwendet werden kann", "MessageQuickMatchDescription": "Füllt leere Details und Titelbilder mit dem ersten Treffer aus '{0}'. Überschreibt keine Details, es sei denn, die Server-Einstellung \"Passende Metadaten bevorzugen\" ist aktiviert.", "MessageRemoveAllItemsWarning": "WARNUNG! Bei dieser Aktion werden alle Bibliotheksobjekte aus der Datenbank entfernt, einschließlich aller Aktualisierungen oder Übereinstimmungen, die Sie vorgenommen haben. Ihre eigentlichen Dateien bleiben davon unberührt. Sind Sie sicher?", @@ -505,6 +514,9 @@ "ToastRSSFeedCloseSuccess": "RSS-Feed geschlossen", "ToastSessionDeleteFailed": "Sitzung konnte nicht gelöscht werden", "ToastSessionDeleteSuccess": "Sitzung gelöscht", + "ToastSocketConnected": "Socket connected", + "ToastSocketDisconnected": "Socket disconnected", + "ToastSocketFailedToConnect": "Socket failed to connect", "ToastUserDeleteFailed": "Benutzer konnte nicht gelöscht werden", "ToastUserDeleteSuccess": "Benutzer gelöscht", "WeekdayFriday": "Freitag", diff --git a/client/strings/en-us.json b/client/strings/en-us.json index d803f497..9fd9aaed 100644 --- a/client/strings/en-us.json +++ b/client/strings/en-us.json @@ -342,6 +342,12 @@ "LabelTimeRemaining": "{0} remaining", "LabelTimeToShift": "Time to shift in seconds", "LabelTitle": "Title", + "LabelToolsEmbedMetadata": "Embed Metadata", + "LabelToolsEmbedMetadataDescription": "Embed metadata into audio files including cover image and chapters.", + "LabelToolsMakeM4b": "Make M4B Audiobook File", + "LabelToolsMakeM4bDescription": "Generate a .M4B audiobook file with embedded metadata, cover image, and chapters.", + "LabelToolsSplitM4b": "Split M4B to MP3's", + "LabelToolsSplitM4bDescription": "Create MP3's from an M4B split by chapters with embedded metadata, cover image, and chapters.", "LabelTotalTimeListened": "Total Time Listened", "LabelTrackFromFilename": "Track from Filename", "LabelTrackFromMetadata": "Track from Metadata", @@ -364,6 +370,7 @@ "LabelYourAudiobookDuration": "Your audiobook duration", "LabelYourBookmarks": "Your Bookmarks", "LabelYourProgress": "Your Progress", + "MessageAppriseDescription": "To use this feature you will need to have an instance of Apprise API running or an api that will handle those same requests.
The Apprise API Url should be the full URL path to send the notification, e.g., if your API instance is served at http://192.168.1.1:8337 then you would put http://192.168.1.1:8337/notify.", "MessageBackupsDescription": "Backups include users, user progress, library item details, server settings, and images stored in", "MessageBackupsNote": "Backups do not include any files stored in your library folders.", "MessageBatchQuickMatchDescription": "Quick Match will attempt to add missing covers and metadata for the selected items. Enable the options below to allow Quick Match to overwrite existing covers and/or metadata.", @@ -418,8 +425,10 @@ "MessageNoPodcastsFound": "No podcasts found", "MessageNoResults": "No Results", "MessageNoSearchResultsFor": "No search results for \"{0}\"", + "MessageNotYetImplemented": "Not yet implemented", "MessageNoUpdateNecessary": "No update necessary", "MessageNoUpdatesWereNecessary": "No updates were necessary", + "MessageOr": "or", "MessagePodcastHasNoRSSFeedForMatching": "Podcast has no RSS feed url to use for matching", "MessageQuickMatchDescription": "Populate empty item details & cover with first match result from '{0}'. Does not overwrite details unless 'Prefer matched metadata' server setting is enabled.", "MessageRemoveAllItemsWarning": "WARNING! This action will remove all library items from the database including any updates or matches you have made. This does not do anything to your actual files. Are you sure?", @@ -505,6 +514,9 @@ "ToastRSSFeedCloseSuccess": "RSS feed closed", "ToastSessionDeleteFailed": "Failed to delete session", "ToastSessionDeleteSuccess": "Session deleted", + "ToastSocketConnected": "Socket connected", + "ToastSocketDisconnected": "Socket disconnected", + "ToastSocketFailedToConnect": "Socket failed to connect", "ToastUserDeleteFailed": "Failed to delete user", "ToastUserDeleteSuccess": "User deleted", "WeekdayFriday": "Friday", diff --git a/client/strings/fr.json b/client/strings/fr.json index 5b55efb2..bab861c1 100644 --- a/client/strings/fr.json +++ b/client/strings/fr.json @@ -342,6 +342,12 @@ "LabelTimeRemaining": "{0} restantes", "LabelTimeToShift": "Temps de décalage en secondes", "LabelTitle": "Titre", + "LabelToolsEmbedMetadata": "Embed Metadata", + "LabelToolsEmbedMetadataDescription": "Embed metadata into audio files including cover image and chapters.", + "LabelToolsMakeM4b": "Make M4B Audiobook File", + "LabelToolsMakeM4bDescription": "Generate a .M4B audiobook file with embedded metadata, cover image, and chapters.", + "LabelToolsSplitM4b": "Split M4B to MP3's", + "LabelToolsSplitM4bDescription": "Create MP3's from an M4B split by chapters with embedded metadata, cover image, and chapters.", "LabelTotalTimeListened": "Temps d'Ecoute Total", "LabelTrackFromFilename": "Piste depuis le Fichier", "LabelTrackFromMetadata": "Piste depuis les Métadonnées", @@ -364,6 +370,7 @@ "LabelYourAudiobookDuration": "Durée de vos Livres Audios", "LabelYourBookmarks": "Vos Signets", "LabelYourProgress": "Votre Progression", + "MessageAppriseDescription": "To use this feature you will need to have an instance of Apprise API running or an api that will handle those same requests.
The Apprise API Url should be the full URL path to send the notification, e.g., if your API instance is served at http://192.168.1.1:8337 then you would put http://192.168.1.1:8337/notify.", "MessageBackupsDescription": "Les Sauvegardes incluent les utilisateurs, la progression de lecture par utilisateur, les détails des articles des bibliothèques, les paramètres du serveur et les images sauvegardées.", "MessageBackupsNote": "Les Sauvegardes n'incluent pas les fichiers de votre bibliothèque.", "MessageBatchQuickMatchDescription": "La Recherche par Correspondance Rapide tentera d'ajouter les couvertures et les métadonnées manquantes pour les articles sélectionnés. Activer l'option suivante pour autoriser la Recherche par Correspondance à écraser les données existantes.", @@ -418,8 +425,10 @@ "MessageNoPodcastsFound": "Pas de podcasts trouvés", "MessageNoResults": "Pas de Résultats", "MessageNoSearchResultsFor": "Pas de résultats de recherche pour \"{0}\"", + "MessageNotYetImplemented": "Not yet implemented", "MessageNoUpdateNecessary": "Pas de mise à jour nécessaire", "MessageNoUpdatesWereNecessary": "Aucune mise à jour n'était nécessaire", + "MessageOr": "or", "MessagePodcastHasNoRSSFeedForMatching": "Le Podcast n'a pas d'URL de flux RSS à utiliser pour la correspondance", "MessageQuickMatchDescription": "Renseigne les détails manquants ainsi que la couverture avec la première correspondance de '{0}'. N'écrase pas les données présentes à moins que le paramètre 'Préférer les Métadonnées par correspondance' soit activé.", "MessageRemoveAllItemsWarning": "ATTENTION! Cette action supprimera toute la base de données de la bibliothèque ainsi que les mises à jour ou correspondances qui auraient été effectuées. Cela n'a aucune incidence sur les fichiers de la bibliothèque. Voulez-vous continuer?", @@ -505,6 +514,9 @@ "ToastRSSFeedCloseSuccess": "Flux RSS fermé", "ToastSessionDeleteFailed": "Echec de la suppression de session", "ToastSessionDeleteSuccess": "Session supprimée", + "ToastSocketConnected": "Socket connected", + "ToastSocketDisconnected": "Socket disconnected", + "ToastSocketFailedToConnect": "Socket failed to connect", "ToastUserDeleteFailed": "Echec de la suppression de l'utilisateur", "ToastUserDeleteSuccess": "Utilisateur supprimé", "WeekdayFriday": "Vendredi", @@ -514,4 +526,4 @@ "WeekdayThursday": "Jeudi", "WeekdayTuesday": "Mardi", "WeekdayWednesday": "Mercredi" -} +} \ No newline at end of file diff --git a/client/strings/hr.json b/client/strings/hr.json index 86c565c5..d3868107 100644 --- a/client/strings/hr.json +++ b/client/strings/hr.json @@ -342,6 +342,12 @@ "LabelTimeRemaining": "{0} preostalo", "LabelTimeToShift": "Vrijeme za pomjeriti u sekundama", "LabelTitle": "Naslov", + "LabelToolsEmbedMetadata": "Embed Metadata", + "LabelToolsEmbedMetadataDescription": "Embed metadata into audio files including cover image and chapters.", + "LabelToolsMakeM4b": "Make M4B Audiobook File", + "LabelToolsMakeM4bDescription": "Generate a .M4B audiobook file with embedded metadata, cover image, and chapters.", + "LabelToolsSplitM4b": "Split M4B to MP3's", + "LabelToolsSplitM4bDescription": "Create MP3's from an M4B split by chapters with embedded metadata, cover image, and chapters.", "LabelTotalTimeListened": "Sveukupno vrijeme slušanja", "LabelTrackFromFilename": "Track iz imena datoteke", "LabelTrackFromMetadata": "Track iz metapodataka", @@ -364,6 +370,7 @@ "LabelYourAudiobookDuration": "Tvoje trajanje audiobooka", "LabelYourBookmarks": "Tvoje knjižne oznake", "LabelYourProgress": "Tvoj napredak", + "MessageAppriseDescription": "To use this feature you will need to have an instance of Apprise API running or an api that will handle those same requests.
The Apprise API Url should be the full URL path to send the notification, e.g., if your API instance is served at http://192.168.1.1:8337 then you would put http://192.168.1.1:8337/notify.", "MessageBackupsDescription": "Backups uključuju korisnike, korisnikov napredak, detalje stavki iz biblioteke, postavke server i slike iz", "MessageBackupsNote": "Backups ne uključuju nijedne datoteke koje su u folderima biblioteke.", "MessageBatchQuickMatchDescription": "Quick Match će probati dodati nedostale covere i metapodatke za odabrane stavke. Uključi postavke ispod da omočutie Quick Mathchu da zamijeni postojeće covere i/ili metapodatke.", @@ -418,8 +425,10 @@ "MessageNoPodcastsFound": "Nijedan podcast pronađen", "MessageNoResults": "Nema rezultata", "MessageNoSearchResultsFor": "Nema rezultata pretragee za \"{0}\"", + "MessageNotYetImplemented": "Not yet implemented", "MessageNoUpdateNecessary": "Aktualiziranje nije potrebno", "MessageNoUpdatesWereNecessary": "Aktualiziranje nije bilo potrebno", + "MessageOr": "or", "MessagePodcastHasNoRSSFeedForMatching": "Podcast nema RSS feed url za matchanje", "MessageQuickMatchDescription": "Popuni prazne detalje stavki i cover sa prvim match rezultato iz '{0}'. Ne briše detalje osim ako 'Prefer matched metadata' server postavka nije uključena.", "MessageRemoveAllItemsWarning": "UPOZORENJE! Ova radnja briše sve stavke iz biblioteke uključujući bilokakve aktualizacije ili matcheve. Ovo ne mjenja vaše lokalne datoteke. Jeste li sigurni?", @@ -505,6 +514,9 @@ "ToastRSSFeedCloseSuccess": "RSS Feed zatvoren", "ToastSessionDeleteFailed": "Neuspješno brisanje serije", "ToastSessionDeleteSuccess": "Sesija obrisana", + "ToastSocketConnected": "Socket connected", + "ToastSocketDisconnected": "Socket disconnected", + "ToastSocketFailedToConnect": "Socket failed to connect", "ToastUserDeleteFailed": "Neuspješno brisanje korisnika", "ToastUserDeleteSuccess": "Korisnik obrisan", "WeekdayFriday": "Petak", diff --git a/client/strings/it.json b/client/strings/it.json index ad535596..5e263944 100644 --- a/client/strings/it.json +++ b/client/strings/it.json @@ -342,6 +342,12 @@ "LabelTimeRemaining": "{0} rimanente", "LabelTimeToShift": "Time to shift in seconds", "LabelTitle": "Titolo", + "LabelToolsEmbedMetadata": "Embed Metadata", + "LabelToolsEmbedMetadataDescription": "Embed metadata into audio files including cover image and chapters.", + "LabelToolsMakeM4b": "Make M4B Audiobook File", + "LabelToolsMakeM4bDescription": "Generate a .M4B audiobook file with embedded metadata, cover image, and chapters.", + "LabelToolsSplitM4b": "Split M4B to MP3's", + "LabelToolsSplitM4bDescription": "Create MP3's from an M4B split by chapters with embedded metadata, cover image, and chapters.", "LabelTotalTimeListened": "Tempo totale di Ascolto", "LabelTrackFromFilename": "Traccia da nome file", "LabelTrackFromMetadata": "Traccia da Metadata", @@ -364,6 +370,7 @@ "LabelYourAudiobookDuration": "la tua durata dell'audiolibri", "LabelYourBookmarks": "I tuoi Preferiti", "LabelYourProgress": "I tuoi Progressi", + "MessageAppriseDescription": "To use this feature you will need to have an instance of Apprise API running or an api that will handle those same requests.
The Apprise API Url should be the full URL path to send the notification, e.g., if your API instance is served at http://192.168.1.1:8337 then you would put http://192.168.1.1:8337/notify.", "MessageBackupsDescription": "I backup includono utenti, progressi degli utenti, dettagli sugli elementi della libreria, impostazioni del server e immagini archiviate in", "MessageBackupsNote": "I backup non includono i file archiviati nelle cartelle della libreria.", "MessageBatchQuickMatchDescription": "Quick Match tenterà di aggiungere copertine e metadati mancanti per gli elementi selezionati. Attiva l'opzione per consentire a Quick Match di sovrascrivere copertine e/o metadati esistenti.", @@ -418,8 +425,10 @@ "MessageNoPodcastsFound": "Nessun podcasts trovato", "MessageNoResults": "Nessun Risultato", "MessageNoSearchResultsFor": "Nessun risultato per \"{0}\"", + "MessageNotYetImplemented": "Not yet implemented", "MessageNoUpdateNecessary": "Nessun aggiornamento necessario", "MessageNoUpdatesWereNecessary": "Nessun aggiornamento necessario", + "MessageOr": "or", "MessagePodcastHasNoRSSFeedForMatching": "Podcast non ha l'URL del feed RSS da utilizzare per il match", "MessageQuickMatchDescription": "Compila i dettagli dell'articolo vuoto e copri con il risultato della prima corrispondenza di '{0}'. Non sovrascrive i dettagli a meno che non sia abilitata l'impostazione del server \"Preferisci metadati corrispondenti\".", "MessageRemoveAllItemsWarning": "AVVERTIMENTO! Questa azione rimuoverà tutti gli elementi della libreria dal database, inclusi eventuali aggiornamenti o corrispondenze apportate. Questo non fa nulla ai tuoi file effettivi. Sei sicuro?", @@ -505,6 +514,9 @@ "ToastRSSFeedCloseSuccess": "RSS feed closed", "ToastSessionDeleteFailed": "Errore eliminazione sessione", "ToastSessionDeleteSuccess": "Sessione cancellata", + "ToastSocketConnected": "Socket connected", + "ToastSocketDisconnected": "Socket disconnected", + "ToastSocketFailedToConnect": "Socket failed to connect", "ToastUserDeleteFailed": "errore eliminazione utente", "ToastUserDeleteSuccess": "Utente eliminato", "WeekdayFriday": "Venerdì", diff --git a/client/strings/pl.json b/client/strings/pl.json index a2578351..1eb784e0 100644 --- a/client/strings/pl.json +++ b/client/strings/pl.json @@ -342,6 +342,12 @@ "LabelTimeRemaining": "Pozostało {0}", "LabelTimeToShift": "Czas do przesunięcia w sekundach", "LabelTitle": "Tytuł", + "LabelToolsEmbedMetadata": "Embed Metadata", + "LabelToolsEmbedMetadataDescription": "Embed metadata into audio files including cover image and chapters.", + "LabelToolsMakeM4b": "Make M4B Audiobook File", + "LabelToolsMakeM4bDescription": "Generate a .M4B audiobook file with embedded metadata, cover image, and chapters.", + "LabelToolsSplitM4b": "Split M4B to MP3's", + "LabelToolsSplitM4bDescription": "Create MP3's from an M4B split by chapters with embedded metadata, cover image, and chapters.", "LabelTotalTimeListened": "Całkowity czas odtwarzania", "LabelTrackFromFilename": "Ścieżka z nazwy pliku", "LabelTrackFromMetadata": "Ścieżka z metadanych", @@ -364,6 +370,7 @@ "LabelYourAudiobookDuration": "Czas trwania audiobooka", "LabelYourBookmarks": "Twoje zakładki", "LabelYourProgress": "Twój postęp", + "MessageAppriseDescription": "To use this feature you will need to have an instance of Apprise API running or an api that will handle those same requests.
The Apprise API Url should be the full URL path to send the notification, e.g., if your API instance is served at http://192.168.1.1:8337 then you would put http://192.168.1.1:8337/notify.", "MessageBackupsDescription": "Kopie zapasowe obejmują użytkowników, postępy użytkowników, szczegóły pozycji biblioteki, ustawienia serwera i obrazy przechowywane w", "MessageBackupsNote": "Kopie zapasowe nie obejmują żadnych plików przechowywanych w folderach biblioteki.", "MessageBatchQuickMatchDescription": "Quick Match będzie próbował dodać brakujące okładki i metadane dla wybranych elementów. Włącz poniższe opcje, aby umożliwić Quick Match nadpisanie istniejących okładek i/lub metadanych.", @@ -418,8 +425,10 @@ "MessageNoPodcastsFound": "Nie znaleziono podcastów", "MessageNoResults": "Brak wyników", "MessageNoSearchResultsFor": "Brak wyników wyszukiwania dla \"{0}\"", + "MessageNotYetImplemented": "Not yet implemented", "MessageNoUpdateNecessary": "Brak konieczności aktualizacji", "MessageNoUpdatesWereNecessary": "Brak aktualizacji", + "MessageOr": "or", "MessagePodcastHasNoRSSFeedForMatching": "Podcast nie ma adresu url kanału RSS, który mógłby zostać użyty do dopasowania", "MessageQuickMatchDescription": "Wypełnij puste informacje i okładkę pierwszym wynikiem dopasowania z '{0}'. Nie nadpisuje szczegółów, chyba że włączone jest ustawienie serwera 'Preferuj dopasowane metadane'.", "MessageRemoveAllItemsWarning": "UWAGA! Ta akcja usunie wszystkie elementy biblioteki z bazy danych, w tym wszystkie aktualizacje lub dopasowania, które zostały wykonane. Pliki pozostaną niezmienione. Czy jesteś pewien?", @@ -505,6 +514,9 @@ "ToastRSSFeedCloseSuccess": "Zamknięcie kanału RSS powiodło się", "ToastSessionDeleteFailed": "Nie udało się usunąć sesji", "ToastSessionDeleteSuccess": "Sesja usunięta", + "ToastSocketConnected": "Socket connected", + "ToastSocketDisconnected": "Socket disconnected", + "ToastSocketFailedToConnect": "Socket failed to connect", "ToastUserDeleteFailed": "Nie udało się usunąć użytkownika", "ToastUserDeleteSuccess": "Użytkownik usunięty", "WeekdayFriday": "Piątek", diff --git a/client/strings/zh-cn.json b/client/strings/zh-cn.json index 6fd4c91b..2c56641e 100644 --- a/client/strings/zh-cn.json +++ b/client/strings/zh-cn.json @@ -342,6 +342,12 @@ "LabelTimeRemaining": "剩余 {0}", "LabelTimeToShift": "快速移动时间以秒为单位", "LabelTitle": "标题", + "LabelToolsEmbedMetadata": "Embed Metadata", + "LabelToolsEmbedMetadataDescription": "Embed metadata into audio files including cover image and chapters.", + "LabelToolsMakeM4b": "Make M4B Audiobook File", + "LabelToolsMakeM4bDescription": "Generate a .M4B audiobook file with embedded metadata, cover image, and chapters.", + "LabelToolsSplitM4b": "Split M4B to MP3's", + "LabelToolsSplitM4bDescription": "Create MP3's from an M4B split by chapters with embedded metadata, cover image, and chapters.", "LabelTotalTimeListened": "总收听时间", "LabelTrackFromFilename": "从文件名获取音轨", "LabelTrackFromMetadata": "从源数据获取音轨", @@ -364,6 +370,7 @@ "LabelYourAudiobookDuration": "你的有声读物持续时间", "LabelYourBookmarks": "你的书签", "LabelYourProgress": "你的进度", + "MessageAppriseDescription": "To use this feature you will need to have an instance of Apprise API running or an api that will handle those same requests.
The Apprise API Url should be the full URL path to send the notification, e.g., if your API instance is served at http://192.168.1.1:8337 then you would put http://192.168.1.1:8337/notify.", "MessageBackupsDescription": "备份包括用户, 用户进度, 图书库项目详细信息, 服务器设置和图像, 存储在", "MessageBackupsNote": "备份不包括存储在您的图书库文件夹中的任何文件.", "MessageBatchQuickMatchDescription": "快速匹配将尝试为所选项目添加缺少的封面和元数据. 启用以下选项以允许快速匹配覆盖现有封面和或元数据.", @@ -418,8 +425,10 @@ "MessageNoPodcastsFound": "未找到播客", "MessageNoResults": "无结果", "MessageNoSearchResultsFor": "没有搜索到结果 \"{0}\"", + "MessageNotYetImplemented": "Not yet implemented", "MessageNoUpdateNecessary": "无需更新", "MessageNoUpdatesWereNecessary": "无需更新", + "MessageOr": "or", "MessagePodcastHasNoRSSFeedForMatching": "播客没有可用于匹配 RSS 源的 url", "MessageQuickMatchDescription": "使用来自 '{0}' 的第一个匹配结果填充空白详细信息和封面. 除非启用 '首选匹配元数据' 服务器设置, 否则不会覆盖详细信息.", "MessageRemoveAllItemsWarning": "警告! 此操作将从数据库中删除所有的图书库项, 包括您所做的任何更新或匹配. 这不会对实际文件产生任何影响. 你确定吗?", @@ -505,6 +514,9 @@ "ToastRSSFeedCloseSuccess": "RSS 源已关闭", "ToastSessionDeleteFailed": "删除会话失败", "ToastSessionDeleteSuccess": "会话已删除", + "ToastSocketConnected": "Socket connected", + "ToastSocketDisconnected": "Socket disconnected", + "ToastSocketFailedToConnect": "Socket failed to connect", "ToastUserDeleteFailed": "删除用户失败", "ToastUserDeleteSuccess": "用户已删除", "WeekdayFriday": "星期五", @@ -514,4 +526,4 @@ "WeekdayThursday": "星期四", "WeekdayTuesday": "星期二", "WeekdayWednesday": "星期三" -} +} \ No newline at end of file