From f8ce9f58f1f6c733cd8104dcb8a16046bdbfce54 Mon Sep 17 00:00:00 2001 From: neon <18559658+neonsolstice@users.noreply.github.com> Date: Fri, 28 Aug 2026 12:26:31 -0600 Subject: [PATCH] i18n(client): sync translations from Crowdin (#1185) Keep sparse translated catalogs synchronized with reviewed Crowdin content. Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- client/src/locales/cs.json | 40 +++-- client/src/locales/da.json | 40 +++-- client/src/locales/de.json | 236 ++++++++++++++++++++++++--- client/src/locales/el.json | 40 +++-- client/src/locales/es.json | 40 +++-- client/src/locales/fi.json | 40 +++-- client/src/locales/fr.json | 320 ++++++++++++++++++++++++++++++++++--- client/src/locales/it.json | 204 ++++++++++++++++++++--- client/src/locales/ja.json | 38 +++-- client/src/locales/ko.json | 40 +++-- client/src/locales/nl.json | 40 +++-- client/src/locales/pl.json | 40 +++-- client/src/locales/pt.json | 228 +++++++++++++++++++++++--- client/src/locales/ro.json | 40 +++-- client/src/locales/ru.json | 40 +++-- client/src/locales/sl.json | 40 +++-- client/src/locales/sv.json | 40 +++-- client/src/locales/uk.json | 40 +++-- client/src/locales/zh.json | 40 +++-- 19 files changed, 1256 insertions(+), 330 deletions(-) diff --git a/client/src/locales/cs.json b/client/src/locales/cs.json index 0a41b992c..2c0cd23bc 100644 --- a/client/src/locales/cs.json +++ b/client/src/locales/cs.json @@ -6279,6 +6279,30 @@ "languages": "Jazyky", "series": "Série" }, + "bulkRename": { + "library": "Knihovna", + "selectLibraryPlaceholder": "Vyberte knihovnu...", + "noEligibleLibraries": "Žádné knihovny nemají povoleno přejmenování souboru. Povolte jej v nastavení knihovny.", + "refresh": "Aktualizovat", + "previewFailed": "Nepodařilo se načíst náhled", + "executionFailed": "Hromadné přejmenování se nezdařilo", + "openBookDetails": "Otevřít detaily knihy", + "filter": { + "all": "Vše" + }, + "status": { + "willRename": "Přejmenovat", + "unchanged": "Nezměněno", + "collision": "Kolize", + "noPattern": "Žádné gesto", + "error": "Chyba" + }, + "empty": { + "title": "Vyberte knihovnu pro spuštění", + "description": "Vyberte knihovnu výše pro zobrazení změn v náhledu, filtr podle stavu a použijte hromadný běh přejmenování.", + "chooseLibrary": "Vybrat knihovnu" + } + }, "bookDuplicates": { "scanSettings": "Nastavení skenování", "title": "Duplikovat knihy", @@ -6454,22 +6478,6 @@ "title": "Sloučit entity", "description": "Vyberte, která entita má být zachována. Ostatní budou sloučeny a odstraněny." } - }, - "bulkRename": { - "library": "Knihovna", - "selectLibraryPlaceholder": "Vyberte knihovnu...", - "noEligibleLibraries": "Žádné knihovny nemají povoleno přejmenování souboru. Povolte jej v nastavení knihovny.", - "refresh": "Aktualizovat", - "previewFailed": "Nepodařilo se načíst náhled", - "executionFailed": "Hromadné přejmenování se nezdařilo", - "openBookDetails": "Otevřít detaily knihy", - "filter": { - "all": "Vše" - }, - "status": { - "unchanged": "Nezměněno", - "error": "Chyba" - } } }, "views": { diff --git a/client/src/locales/da.json b/client/src/locales/da.json index 72e2a6493..4ad79363b 100644 --- a/client/src/locales/da.json +++ b/client/src/locales/da.json @@ -6314,6 +6314,30 @@ "languages": "Sprog", "series": "Serie" }, + "bulkRename": { + "library": "Bibliotek", + "selectLibraryPlaceholder": "Vælg et bibliotek...", + "noEligibleLibraries": "Ingen biblioteker har filnavnet aktiveret. Aktivér det i Biblioteks indstillinger.", + "refresh": "Opdater", + "previewFailed": "Kunne ikke indlæse forhåndsvisning", + "executionFailed": "Masse omdøbning mislykkedes", + "openBookDetails": "Åbn bogdetaljer", + "filter": { + "all": "Alle" + }, + "status": { + "willRename": "Vil Omdøbe", + "unchanged": "Uændret", + "collision": "Kollision", + "noPattern": "Intet Mønster", + "error": "Fejl" + }, + "empty": { + "title": "Vælg et bibliotek for at starte", + "description": "Vælg et bibliotek ovenfor for at forhåndsvise omdøbning ændringer, filter efter status, og anvend bulk omdøbe kørsel.", + "chooseLibrary": "Vælg Bibliotek" + } + }, "bookDuplicates": { "scanSettings": "Scan indstillinger", "title": "Dupliker Bøger", @@ -6488,22 +6512,6 @@ "title": "Flet Enheder", "description": "Vælg hvilken enhed der skal beholdes. De andre vil blive flettet ind i den og fjernet." } - }, - "bulkRename": { - "library": "Bibliotek", - "selectLibraryPlaceholder": "Vælg et bibliotek...", - "noEligibleLibraries": "Ingen biblioteker har filnavnet aktiveret. Aktivér det i Biblioteks indstillinger.", - "refresh": "Opdater", - "previewFailed": "Kunne ikke indlæse forhåndsvisning", - "executionFailed": "Masse omdøbning mislykkedes", - "openBookDetails": "Åbn bogdetaljer", - "filter": { - "all": "Alle" - }, - "status": { - "unchanged": "Uændret", - "error": "Fejl" - } } }, "views": { diff --git a/client/src/locales/de.json b/client/src/locales/de.json index 7fd52a1f0..86fddee50 100644 --- a/client/src/locales/de.json +++ b/client/src/locales/de.json @@ -2270,13 +2270,27 @@ "action": "Änderungen speichern", "blocked": "Das ungültige Muster vor dem Speichern korrigieren" }, + "examplesDescription": "Idioms die Rezepte decken nicht ab. Ein Muster, das in einem Schrägstrich endet, löst sich in einen Ordner und hält den hochgeladenen Dateinamen drin.", "examplesApply": "Anwenden", "examplesApplyAria": "{label} Muster anwenden", + "examplesUploadOnly": "Upload-Muster zur Referenz. Wechseln Sie zu einer Datei als Buch oder als Buchregel zu einer Datei, um eins anzuwenden.", + "examplesFileModeOnly": "Ordner als Buch benötigt ein eigenes Segment für Dateinamen, daher gilt dieses Idiom nur für \"Datei als Buch\"-bibliotheken.", "example": { "seriesOrStandalone": "Reihe oder eigenständiger Ordner", "optionalSubtitle": "Optionaler Untertitel", - "languageFolder": "Sprach-Verzeichnis" - } + "languageFolder": "Sprach-Verzeichnis", + "publisherFolder": "Verlags-Ordner", + "stackedOptional": "Gestapelte optionale Ordner", + "folderDrop": "Nur den Ordner, den Dateinamen beibehalten" + }, + "exampleCase": { + "complete": "Vollständig", + "noSeries": "Ohne Reihe", + "noSubtitle": "Kein Untertitel", + "noLanguage": "Keine Sprache", + "noPublisher": "Ohne Verlag" + }, + "unknownModifier": "Unbekannter Modifikator \"{modifier}\". Dieser wird ignoriert, sodass der Wert unverändert bleibt." }, "kobo": { "title": "Kobo-Synchronisierung", @@ -2317,6 +2331,8 @@ "twoWaySyncHint": "Synchronisiert die Leseposition zwischen BookOrbit und Kobo. Erfordert KEPUB-Zustellung für präzise Positionen und zuverlässige Wiederherstellung der Seite.", "syncHighlights": "BookOrbit-Markierungen mit Kobo synchronisieren", "syncHighlightsHint": "Sendet Markierungen, die in BookOrbit oder KOReader erstellt wurden, an Ihr Kobo. Kobo-Markierungen werden auch dann in BookOrbit importiert, wenn diese Option deaktiviert ist. Verknüpfte Anmerkungen synchronisieren Bearbeitungen und Löschungen in beide Richtungen. Erfordert KEPUB-Zustellung; das Buch auf dem Kobo muss das von BookOrbit heruntergeladene KEPUB sein.", + "storeSync": "Kobo Store-Titel einbeziehen", + "storeSyncHint": "Übermitteln Sie auch Bücher von Ihrem Kobo Account, einschließlich Kobo Plus käufe, neben Ihrer BookOrbit Bibliothek. Ohne dies erreichen nur Bücher von BookOrbit das Gerät. Store-Titel werden direkt von Kobo heruntergeladen und werden nicht zu Ihrer BookOrbit Bibliothek hinzugefügt.", "convertKepub": "In KEPUB konvertieren", "convertKepubHint": "Sendet geeignete EPUBs als KEPUB. Dies bleibt aktiviert, solange Fortschrittssynchronisierung oder Markierungen von BookOrbit zu Kobo aktiviert sind. Bei der nächsten Kobo-Synchronisierung werden betroffene Bücher erneut als KEPUB-Downloads angeboten; entfernen Sie eine alte EPUB-Kopie, falls Kobo diese weiterhin öffnet.", "forceHyphenation": "Silbentrennung erzwingen", @@ -2489,6 +2505,8 @@ "daysAgo": "vor {count} Tagen", "unknown": "Unbekannt", "updateAvailable": "Update verfügbar", + "manualUpdateRequired": "Manuelles Update erforderlich", + "manualUpdateExplanation": "Diese Plugin-Version kann keine eigenen Updates installieren. Laden Sie das \"bookorbit.koplugin\"-Plugin herunter und speichern sie es unter \"koreader/plugins/\" auf dem Gerät.", "upToDate": "Aktuell", "versionUnknown": "Version unbekannt", "latestPlugin": "Neuestes Plugin: v{version}", @@ -2502,6 +2520,23 @@ "usernamePlaceholder": "z. B. meinreader", "password": "Passwort", "passwordPlaceholder": "Mindestens 6 Zeichen", + "changeCredentials": { + "action": "Zugangsdaten ändern", + "title": "KOReader Zugangsdaten ändern", + "description": "Jedes BookOrbit-Konto hat eigene KOReader-Zugangsdaten. Ändern Sie sie es hier, ohne synchronisierte Daten zu löschen.", + "newPassword": "Neues Passwort", + "usernameInvalid": "Der Benutzername muss zwischen 3 und 100 Zeichen lang sein.", + "passwordPlaceholder": "Leer lassen, um das aktuelle Passwort beizubehalten", + "passwordHint": "Lassen Sie dieses Feld leer, um das aktuelle Passwort zu behalten.", + "passwordInvalid": "Das Passwort muss zwischen 6 und 128 Zeichen lang sein.", + "deviceNotice": "Geräte, die den vorherigen Login verwenden, müssen mit einem neu heruntergeladenen Plugin-Paket erneut verbunden oder aktualisiert werden.", + "showPassword": "Neues Passwort anzeigen", + "hidePassword": "Neues Passwort verbergen", + "save": "Anmeldedaten speichern", + "saving": "Speichern...", + "updated": "KOReader Zugangsdaten aktualisiert", + "updateFailed": "KOReader Anmeldedaten konnten nicht aktualisiert werden" + }, "creating": "Wird erstellt ...", "create": "Erstellen", "credentialsCreated": "KOReader-Synchronisierungsanmeldedaten erstellt", @@ -2518,6 +2553,8 @@ "credentialsCreatedLabel": "Anmeldedaten erstellt", "setup": "Einrichtung", "pluginServerUrl": "Plugin-Server-URL", + "syncUrl": "KOReader Sync-URL", + "syncUrlHint": "Funktioniert mit dem BookOrbit-Plugin und KOReader's eingebauter Fortschrittssynchronisierung.", "copied": "Kopiert", "copyUrl": "URL kopieren", "preconfiguredPlugin": "Vorkonfiguriertes BookOrbit-Plugin", @@ -2557,6 +2594,7 @@ "stockStep1Prefix": "Gehen Sie auf Ihrem KOReader-Gerät zu", "stockStep1Suffix": ".", "stockStep2": "Stellen Sie den benutzerdefinierten Synchronisierungsserver auf die oben gezeigte URL ein.", + "stockStep2InlineUrl": "Setze den benutzerdefinierten Sync-Server auf die folgende URL:", "stockStep3": "Geben Sie den erstellten Benutzernamen und das Passwort ein und tippen Sie dann auf Anmelden.", "locationNote": "BookOrbit speichert KOReader-kompatible EPUB-Positionen aus dem Web-Reader. Die Wiederherstellung sollte in etwa an der gleichen Position landen, wobei die genaue Zeilenplatzierung je nach Reader und EPUB-Layout variieren kann.", "dangerZone": "Gefahrenzone", @@ -2675,6 +2713,9 @@ "removeDeviceFailed": "Entfernen des Geräts fehlgeschlagen", "removeDeviceConfirmTitle": "{device} entfernen?", "removeDeviceConfirmBody": "Dies löscht dauerhaft den synchronisierten Fortschritt, die Leseaktivität und alle nicht zugeordneten Bucheinträge dieses Geräts, die von keinem anderen Gerät mehr gemeldet werden. Wenn das Gerät später erneut synchronisiert, erscheint es wieder als neuer Eintrag.", + "deleteDeviceDataConfirmTitle": "Synchronisierte Daten von {device} löschen?", + "deleteDeviceDataConfirmBody": "Dies löscht dauerhaft den synchronisierten Fortschritt dieses Geräts, die Seiten-für-Seiten-Leseaktivität und alle nicht übereinstimmenden Bucheinträge, die nicht mehr von einem anderen Gerät gemeldet werden. Das Lesen von Sessions, die bereits in deinen Statistiken aufgezeichnet wurden, wird beibehalten. Wenn das Gerät später erneut synchronisiert wird, wird es als neuer Eintrag wieder erscheinen.", + "devicesHint": "Das Abmelden des Gerätes blendet es aus, es behält jedoch seine Daten. Das Löschen der synchronisierten Daten kann nicht rückgängig gemacht werden.", "retire": "Archivieren", "retiring": "Archiviert...", "restore": "Wiederherstellen", @@ -2757,10 +2798,35 @@ }, "nav": { "title": "Einstellungen", + "ariaLabel": "Einstellungsbereiche", + "searchPlaceholder": "Sucheinstellungen", + "clearSearch": "Suche zurücksetzen", + "noResults": "Keine Einstellungen entsprechen {query}.", + "shortcutHint": "Drücke Cmd K um zu einer beliebigen Einstellung zu springen", + "groups": { + "you": "Du", + "library": "Bibliothek", + "devices": "Geräte & Synchronisation", + "server": "Server" + }, "descriptions": { + "profile": "Name, E-Mail, Passwort und aktive Sitzungen.", + "appearanceTheme": "Thema, Akzente Farbe, Hintergrund und Eckradius.", + "appearanceBookCovers": "Schatten, Buchrücken-Effekte und Platzhalter-Kunstwerk abdecken.", + "appearanceIcons": "Wählen Sie den Symbol-Stil, der in der gesamten App verwendet wird.", "appearanceLayout": "Standard Bibliotheksansicht, Dichte und Abstand.", "appearanceBehavior": "Wie die Bibliothek reagiert, wie Sie suchen und sortieren.", - "appearanceLanguage": "Interface-Sprache und regionale Formate." + "appearanceLanguage": "Interface-Sprache und regionale Formate.", + "readerEbook": "Schriftarten, Abstände und Seitenverhalten für eBooks.", + "readerPdf": "Rendering, Zoom, und Seite passend für PDFs.", + "readerComics": "Leserichtung und Seitenaufteilung für Comics.", + "readerAudio": "Wiedergabegeschwindigkeit, überspringe Intervalle und Sleep-Timer.", + "readerFonts": "Schriftarten während des Lesens verfügbar.", + "readerGeneral": "Standardwerte werden von jedem Lesemodus geteilt.", + "notifications": "Was BookOrbit erzählt und wo.", + "privacy": "Lese-Einsichten, gemeinsame Links und Aktivitätssichtbarkeit.", + "restrictions": "Altersbewertungen und verborgene Inhalte für dieses Konto.", + "accountActivity": "Lese- und Sitzungsaktivität pro Benutzer." } } }, @@ -3083,7 +3149,15 @@ "reason": { "locked": "{name} ist nach zu vielen fehlgeschlagenen Anmeldungen gesperrt", "neverSignedIn": "{name} hat sich noch nie angemeldet" - } + }, + "collapse": "Ausblenden", + "expand": "Anzeigen" + }, + "defaults": { + "title": "Standardwerte für neue Konten", + "appliesTo": "Gilt für Selbstregistrierung und OIDC", + "startingLibraries": "Start-Bibliotheken", + "startingLibrariesHint": "Leserechte automatisch für jedes neues Benutzerkonto." } } }, @@ -3209,7 +3283,9 @@ "noMatch": "Keine Markierungen entsprechen Ihren Filtern.", "resetFilters": "Filter zurücksetzen", "trashEmpty": "Papierkorb ist leer", - "noAnnotations": "Noch keine Markierungen. Im Web oder auf Ihrem E-Reader erstellte Markierungen erscheinen hier." + "noAnnotations": "Noch keine Markierungen. Im Web oder auf Ihrem E-Reader erstellte Markierungen erscheinen hier.", + "syncKoreaderBody": "Das Plugin lädt Anmerkungen mit ihren Positionen hoch.", + "goToLibrary": "Gehe zur Bibliothek" }, "toast": { "movedToTrash": "In den Papierkorb verschoben", @@ -3219,16 +3295,63 @@ "bulkTrashed": "{count, plural, =0 {Keine Markierungen in den Papierkorb verschoben} one {# Markierung in den Papierkorb verschoben} other {# Markierungen in den Papierkorb verschoben}}", "bulkRestored": "{count, plural, =0 {Keine Markierungen wiederhergestellt} one {# Markierung wiederhergestellt} other {# Markierungen wiederhergestellt}}", "bulkRecolored": "{count, plural, =0 {Farbe für keine Markierung geändert} one {Farbe für # Markierung geändert} other {Farbe für # Markierungen geändert}}", - "bulkRestyled": "{count, plural, =0 {Stil für keine Markierung geändert} one {Stil für # Markierung geändert} other {Stil für # Markierungen geändert}}" + "bulkRestyled": "{count, plural, =0 {Stil für keine Markierung geändert} one {Stil für # Markierung geändert} other {Stil für # Markierungen geändert}}", + "noteSaved": "Notiz gespeichert" }, + "railTitle": "{marks} Markierungen · {books} Bücher", + "lastTwelveMonths": "Letzte 12 Monate", + "colour": "Farbe", + "whereFrom": "Woher sie kommen", + "theShelf": "Das Regal", + "devices": "Geräte", + "reviewThem": "Diese überprüfen", + "anchorLost": "Anker verloren", + "anchorRepaired": "Repariert", + "notes": "Notizen", + "review": "Überprüfen", + "viewLabel": "Gruppieren und sortieren", "views": { + "newest": "Neueste zuerst", + "oldest": "Älteste zuerst", + "book": "Nach Buch", "color": "Nach Farbe", "source": "Nach Quelle" }, "matchCount": "{shown} von {total}", "moreActions": "Weitere Aktionen", "loadMore": "{count, plural, one {Lade 1 mehr} other {Lade # mehr}}", - "openBook": "Buch öffnen" + "openBook": "Buch öffnen", + "noteLabel": "Notiz", + "yourNote": "Ihre Notiz", + "notePlaceholder": "Sag', warum es wichtig war.", + "openAtThisPage": "An dieser Seite öffnen", + "positionAndSync": "Position & Synchronisierung", + "loadFailed": "Konnte die Highlights nicht laden. Versuche es in einem Moment erneut.", + "chips": { + "dateBetween": "{from} bis {to}", + "dateFrom": "Von {from}", + "dateUntil": "Bis {to}" + }, + "activitySummary": "{count, plural, one {# Hervorhebung zwischen {from} und {to}} other {# Hervorhebung zwischen {from} und {to}}}", + "book": "Buch", + "needsReview": "Benötigt Überprüfung" + }, + "sources": { + "web": "Web", + "koreader": "KOReader", + "kobo": "Kobo" + }, + "colors": { + "yellow": "Gelb", + "green": "Grün", + "blue": "Blau", + "pink": "Pink", + "orange": "Orange", + "red": "Rot", + "olive": "Olivgrün", + "cyan": "Cyan", + "purple": "Lila", + "gray": "Grau" } }, "audit": { @@ -3242,6 +3365,22 @@ "showLess": "Weniger anzeigen", "details": "Details", "hideDetails": "Details ausblenden", + "refresh": "Auditprotokolle aktualisieren", + "loadError": "Audit-Ereignisse konnten nicht geladen werden.", + "removeFilter": "Filter {value} entfernen", + "allActions": "Alle Aktionen", + "allEventTypes": "Alle Ereignistypen", + "allActors": "Alle Akteure", + "noActionsFound": "Keine passenden Aktionen", + "noActorsFound": "Keine passenden Akteure", + "noResourcesFound": "Keine passenden Zieltypen", + "unknownAction": "Unbekannte Aktion", + "unknownResource": "Anderer Zieltyp", + "allResources": "Alle Ressourcen", + "allTargetTypes": "Alle Zieltypen", + "quickDates": "Schnellauswahl Datum", + "today": "Heute", + "sevenDays": "7 Tage", "detailAction": "Aktion: {value}", "detailIp": "IP: {value}", "showing": "Zeige {from}-{to} von {total}", @@ -3268,6 +3407,22 @@ "action": "Aktion", "description": "Beschreibung", "ip": "IP" + }, + "resourceLabels": { + "Collection": "Sammlung", + "SmartScope": "Intelligenter Bereich", + "BookDockFile": "Buchdock-Datei", + "Author": "Autor", + "AppSettings": "App-Einstellungen", + "Genre": "Genre", + "Tag": "Tag", + "KoboDevice": "Kobo-Gerät", + "EmailProvider": "E-Mail-Anbieter", + "EmailTemplate": "E-Mail-Vorlage", + "EmailRecipient": "E-Mail-Empfänger" + }, + "actionLabels": { + "AuthSessionRevoke": "Sitzung widerrufen" } }, "auth": { @@ -3935,7 +4090,9 @@ "koboNotSynced": "Nicht synchronisiert", "koboNotSyncedTooltip": "Für die nächste Kobo-Synchronisierung vorgemerkt.", "filesNotFound": "Dateien nicht gefunden", - "filesNotFoundDescription": "Die Datei(en) für dieses Buch können auf dem Datenträger nicht mehr gefunden werden. Die Metadaten sind weiterhin verfügbar. Führen Sie einen Bibliotheks-Scan durch, um dies zu bestätigen, oder entfernen Sie den Eintrag." + "filesNotFoundDescription": "Die Datei(en) für dieses Buch können auf dem Datenträger nicht mehr gefunden werden. Die Metadaten sind weiterhin verfügbar. Führen Sie einen Bibliotheks-Scan durch, um dies zu bestätigen, oder entfernen Sie den Eintrag.", + "noSessionsYet": "Noch keine Lesesitzungen. Das Öffnen dieses Buches im Reader verfolgt Zeit, Tempo und Fortschritt pro Gerät.", + "activitySessions": "Sitzungen" }, "editMetadata": { "fieldCount": "{count, plural, =0 {keine Felder} one {ein Feld} other {# Felder}}", @@ -4173,6 +4330,29 @@ "paginationUnit": "Markierungen" }, "readingLog": { + "vitals": { + "sessions": "Sitzungen", + "avgSession": "Durchschnittliche Sitzung", + "addSession": "Sitzung hinzufügen" + }, + "ledger": { + "title": "Sitzungen", + "empty": "Noch keine Sitzungen aufgezeichnet", + "emptyHint": "Öffnen Sie das Buch im Reader, synchronisieren Sie ein Gerät oder fügen Sie eine Sitzung per Hand hinzu." + }, + "attempts": { + "sessionCount": "{count, plural, one {# Sitzung} other {# Sitzungen}}" + }, + "records": { + "longestSession": "Längste Sitzung", + "empty": "Die Aufzeichnungen erscheinen, sobald dieses Buch Sitzungen hat." + }, + "band": { + "curveSubSitting": "Eine Sitzung, Sitzung für Sitzung", + "traceSub": "Jeder Balken zeigt die Spanne einer Sitzung", + "traceSubWithBacktracks": "{count, plural, one {Jeder Balken zeigt eine Sitzung, # zurückgesprungen} other {Jeder Balken zeigt eine Sitzung, # zurückgesprungen}}", + "traceEmptyHint": "Sobald Sessions existieren, zeigen diese die gelesene Spanne, inklusive Rücksprünge auf vorherige Seiten." + }, "moreActionsAria": "Weitere Aktionen für das Leseprotokoll", "export": { "button": "Exportieren" @@ -6477,6 +6657,30 @@ "languages": "Sprachen", "series": "Reihen" }, + "bulkRename": { + "library": "Bibliothek", + "selectLibraryPlaceholder": "Bibliothek auswählen...", + "noEligibleLibraries": "Für keine Bibliothek ist das Umbenennen von Dateien aktiviert. Aktivieren Sie es in den Bibliothekseinstellungen.", + "refresh": "Aktualisieren", + "previewFailed": "Vorschau konnte nicht geladen werden", + "executionFailed": "Massenumbenennung fehlgeschlagen", + "openBookDetails": "Buchdetails öffnen", + "filter": { + "all": "Alle" + }, + "status": { + "willRename": "Wird umbenannt", + "unchanged": "Unverändert", + "collision": "Konflikt", + "noPattern": "Kein Muster", + "error": "Fehler" + }, + "empty": { + "title": "Bibliothek zum Starten auswählen", + "description": "Wählen Sie oben eine Bibliothek aus, um Umbenennungsänderungen in der Vorschau anzuzeigen, nach Status zu filtern und den Massenumbenennungslauf anzuwenden.", + "chooseLibrary": "Bibliothek wählen" + } + }, "bookDuplicates": { "scanSettings": "Scan-Einstellungen", "title": "Doppelte Bücher", @@ -6635,22 +6839,6 @@ "title": "Entitäten zusammenführen", "description": "Wählen Sie, welche Entität behalten werden soll. Die anderen werden in sie zusammengeführt und entfernt." } - }, - "bulkRename": { - "library": "Bibliothek", - "selectLibraryPlaceholder": "Bibliothek auswählen...", - "noEligibleLibraries": "Für keine Bibliothek ist das Umbenennen von Dateien aktiviert. Aktivieren Sie es in den Bibliothekseinstellungen.", - "refresh": "Aktualisieren", - "previewFailed": "Vorschau konnte nicht geladen werden", - "executionFailed": "Massenumbenennung fehlgeschlagen", - "openBookDetails": "Buchdetails öffnen", - "filter": { - "all": "Alle" - }, - "status": { - "unchanged": "Unverändert", - "error": "Fehler" - } } }, "views": { diff --git a/client/src/locales/el.json b/client/src/locales/el.json index cc313c3d7..fe65cc8d1 100644 --- a/client/src/locales/el.json +++ b/client/src/locales/el.json @@ -6581,6 +6581,30 @@ "languages": "Γλώσσες", "series": "Σειρά" }, + "bulkRename": { + "library": "Βιβλιοθήκη", + "selectLibraryPlaceholder": "Επιλέξτε μια βιβλιοθήκη...", + "noEligibleLibraries": "Καμία βιβλιοθήκη δεν έχει ενεργοποιημένη τη μετονομασία αρχείου. Ενεργοποιήστε την στις ρυθμίσεις βιβλιοθήκης.", + "refresh": "Ανανέωση", + "previewFailed": "Αποτυχία φόρτωσης προεπισκόπησης", + "executionFailed": "Η μαζική μετονομασία απέτυχε", + "openBookDetails": "Άνοιγμα λεπτομερειών βιβλίου", + "filter": { + "all": "Όλα" + }, + "status": { + "willRename": "Θα Μετονομαστεί", + "unchanged": "Αμετάβλητο", + "collision": "Σύγκρουση", + "noPattern": "Χωρίς Μοτίβο", + "error": "Σφάλμα" + }, + "empty": { + "title": "Επιλέξτε μια βιβλιοθήκη για να ξεκινήσετε", + "description": "Επιλέξτε μια παραπάνω βιβλιοθήκη για την προεπισκόπηση των αλλαγών μετονομασίας, φιλτράρετε κατά κατάσταση και εφαρμόστε την εκτέλεση της μαζικής μετονομασίας.", + "chooseLibrary": "Επιλογή Βιβλιοθήκης" + } + }, "bookDuplicates": { "scanSettings": "Σάρωση ρυθμίσεων", "title": "Διπλότυπα Βιβλία", @@ -6746,22 +6770,6 @@ "title": "Συγχώνευση Οντότητες", "description": "Επιλέξτε ποια οντότητα θα κρατήσει. Οι άλλοι θα συγχωνευθούν σε αυτό και θα αφαιρεθούν." } - }, - "bulkRename": { - "library": "Βιβλιοθήκη", - "selectLibraryPlaceholder": "Επιλέξτε μια βιβλιοθήκη...", - "noEligibleLibraries": "Καμία βιβλιοθήκη δεν έχει ενεργοποιημένη τη μετονομασία αρχείου. Ενεργοποιήστε την στις ρυθμίσεις βιβλιοθήκης.", - "refresh": "Ανανέωση", - "previewFailed": "Αποτυχία φόρτωσης προεπισκόπησης", - "executionFailed": "Η μαζική μετονομασία απέτυχε", - "openBookDetails": "Άνοιγμα λεπτομερειών βιβλίου", - "filter": { - "all": "Όλα" - }, - "status": { - "unchanged": "Αμετάβλητο", - "error": "Σφάλμα" - } } }, "views": { diff --git a/client/src/locales/es.json b/client/src/locales/es.json index d2a7896f4..50217e0fd 100644 --- a/client/src/locales/es.json +++ b/client/src/locales/es.json @@ -7951,6 +7951,30 @@ "languages": "Idiomas", "series": "Serie" }, + "bulkRename": { + "library": "Biblioteca", + "selectLibraryPlaceholder": "Seleccione una biblioteca...", + "noEligibleLibraries": "Ninguna biblioteca tiene habilitado el cambio de nombre de archivo. Habilítelo en la configuración de la biblioteca.", + "refresh": "Actualizar", + "previewFailed": "No se pudo cargar la vista previa", + "executionFailed": "Error al cambiar el nombre en masa", + "openBookDetails": "Detalles del libro abierto", + "filter": { + "all": "Todos" + }, + "status": { + "willRename": "Cambiará el nombre", + "unchanged": "Sin cambios", + "collision": "Colisión", + "noPattern": "Sin patrón", + "error": "Error" + }, + "empty": { + "title": "Elija una biblioteca para comenzar", + "description": "Seleccione una de las bibliotecas anteriores para obtener una vista previa de los cambios de nombre, filtrar por estado y aplicar la ejecución de cambio de nombre masivo.", + "chooseLibrary": "Elija biblioteca" + } + }, "bookDuplicates": { "scanSettings": "Configuración de escaneo", "title": "Libros duplicados", @@ -8197,22 +8221,6 @@ "list": "No se han podido cargar estas entradas.", "clean": "Error de limpieza." } - }, - "bulkRename": { - "library": "Biblioteca", - "selectLibraryPlaceholder": "Seleccione una biblioteca...", - "noEligibleLibraries": "Ninguna biblioteca tiene habilitado el cambio de nombre de archivo. Habilítelo en la configuración de la biblioteca.", - "refresh": "Actualizar", - "previewFailed": "No se pudo cargar la vista previa", - "executionFailed": "Error al cambiar el nombre en masa", - "openBookDetails": "Detalles del libro abierto", - "filter": { - "all": "Todos" - }, - "status": { - "unchanged": "Sin cambios", - "error": "Error" - } } }, "views": { diff --git a/client/src/locales/fi.json b/client/src/locales/fi.json index acc36e040..035d204c9 100644 --- a/client/src/locales/fi.json +++ b/client/src/locales/fi.json @@ -6195,6 +6195,30 @@ "languages": "Kielet", "series": "Sarja" }, + "bulkRename": { + "library": "Kirjasto", + "selectLibraryPlaceholder": "Valitse kirjasto...", + "noEligibleLibraries": "Yhtään kirjastoa ei ole nimetty uudelleen päällä. Ota se käyttöön kirjastojen asetuksista.", + "refresh": "Päivitä", + "previewFailed": "Esikatselun lataaminen epäonnistui", + "executionFailed": "Bulkin uudelleennimeäminen epäonnistui", + "openBookDetails": "Avaa kirjan tiedot", + "filter": { + "all": "Kaikki" + }, + "status": { + "willRename": "Uudelleennimeä", + "unchanged": "Muuttumaton", + "collision": "Törmäys", + "noPattern": "Ei Kuvio", + "error": "Virhe" + }, + "empty": { + "title": "Valitse kirjasto aloittaaksesi", + "description": "Valitse yllä oleva kirjasto, jos haluat esikatsella uudelleennimeä muutoksia, suodattaa statuksen mukaan ja käyttää suoritettua massaa.", + "chooseLibrary": "Valitse Kirjasto" + } + }, "bookDuplicates": { "scanSettings": "Skannaa asetukset", "title": "Monista Kirjat", @@ -6365,22 +6389,6 @@ "title": "Yhdistä Yksiköt", "description": "Valitse mikä entiteetti pitää. Muut yhdistetään siihen ja poistetaan." } - }, - "bulkRename": { - "library": "Kirjasto", - "selectLibraryPlaceholder": "Valitse kirjasto...", - "noEligibleLibraries": "Yhtään kirjastoa ei ole nimetty uudelleen päällä. Ota se käyttöön kirjastojen asetuksista.", - "refresh": "Päivitä", - "previewFailed": "Esikatselun lataaminen epäonnistui", - "executionFailed": "Bulkin uudelleennimeäminen epäonnistui", - "openBookDetails": "Avaa kirjan tiedot", - "filter": { - "all": "Kaikki" - }, - "status": { - "unchanged": "Muuttumaton", - "error": "Virhe" - } } }, "views": { diff --git a/client/src/locales/fr.json b/client/src/locales/fr.json index 3adf3e52b..b8fc36429 100644 --- a/client/src/locales/fr.json +++ b/client/src/locales/fr.json @@ -3991,7 +3991,13 @@ "action": "Télécharger", "audiobookZip": "Livre audio (ZIP)", "allFormatsZip": "Tous formats (ZIP)", - "primaryOnlyZip": "Principal uniquement (ZIP)" + "primaryOnlyZip": "Principal uniquement (ZIP)", + "preparing": "Préparation du téléchargement...", + "preparingExport": "Préparation de {count, plural, one {# livre} other {# livres} many {# livres}} pour le téléchargement...", + "progressPercent": "Téléchargement : {percent} sur {total}", + "progressBytes": "Téléchargement : {transferred}", + "failed": "Échec du téléchargement", + "exportFailed": "Échec de l'export" }, "sort": { "moveUp": "Monter", @@ -4048,6 +4054,7 @@ "collection": "Collection", "library": "Bibliothèque", "format": "Format", + "fileSize": "Taille du fichier principal", "addedAt": "Date d'ajout", "startedAt": "Date de début", "finishedAt": "Date de fin", @@ -4106,7 +4113,8 @@ "unit": { "days": "jours", "weeks": "semaines", - "months": "mois" + "months": "mois", + "megabytes": "Mo" }, "scorePreset": { "outstanding": "Excellent", @@ -4115,6 +4123,9 @@ "poor": "Faible" }, "scoreRangePlaceholder": "0-100", + "fileSizePlaceholder": "par ex. 10", + "fileSizeValueAria": "Taille du fichier principal en mégaoctets", + "fileSizeMaximumAria": "Taille maximale du fichier principal en mégaoctets", "valuePlaceholder": "valeur", "maxPlaceholder": "maximum", "to": "à", @@ -4659,6 +4670,32 @@ }, "files": { "title": "Fichiers de livres", + "stats": { + "files": "Fichiers", + "total": "Total", + "runtime": "Durée", + "formats": "Formats" + }, + "filesHeading": "Fichiers", + "allPresent": "Complet", + "groupedByReader": "regroupés par lecteur", + "thisFile": "Ce fichier", + "writeBackShort": "Réécriture", + "fieldsSet": "{filled} / {total} définis", + "writtenSummary": "{fields} et {count, plural, one {# autre champ} other {# autres champs} many {# autres champs}} sont écrits dans le {format}.", + "writtenSummaryAll": "{fields} sont écrits dans le {format}.", + "writtenNothing": "Aucun des {total} champs modifiables n'a encore de valeur.", + "writeBackOff": "La réécriture est désactivée pour ce livre.", + "editMetadata": "Modifier les métadonnées", + "showAllTracks": "Tout afficher", + "collapseTracks": "Réduire", + "moreTracks": "{count, plural, one {# piste de plus} other {# pistes de plus} many {# pistes de plus}}", + "tracksRolled": "{count, plural, one {# piste} other {# pistes} many {# pistes}}", + "fileDetails": "Détails du fichier", + "openDetails": "Ouvrir les détails du fichier", + "closeDetails": "Fermer les détails du fichier", + "trackFrom": "Piste {track} sur {total}, à partir de {time}", + "throughCopy": "{percent} de ce fichier", "fileCount": "{count, plural, =0 {pas de fichiers} one {# fichier} other {# fichiers} many {# fichiers}}", "synced": "Synchronisé {time}", "sortAria": "Trier les fichiers", @@ -5647,6 +5684,8 @@ } }, "collection": { + "visibleToAll": "Visible pour tous les utilisateurs", + "visibleToAllHint": "Tous les utilisateurs peuvent voir cette collection, mais vous seul pouvez modifier ses livres", "dialog": { "name": "Nom", "icon": "Icône", @@ -5726,7 +5765,7 @@ "whatsNew": "Quoi de neuf", "documentation": "Documentation", "help": "Aide", - "starOnGithub": "Étoile sur GitHub", + "starOnGithub": "Mettez une étoile sur GitHub", "new": "Nouveau", "newReleaseNotes": "Nouvelles notes de version disponibles", "account": "Compte", @@ -5860,7 +5899,8 @@ }, "viewModes": { "grid": "Vue en grille", - "list": "Vue en liste" + "list": "Vue en liste", + "table": "Vue en tableau" } }, "iconPicker": { @@ -7568,7 +7608,10 @@ "ownedOfExpected": "{owned} de {expected} dans la bibliothèque" }, "gaps": { - "label": "Lacunes possibles :" + "label": "Lacunes possibles :", + "missingCount": "{count, plural, one {# manquant} other {# manquants} many {# manquants}}", + "missingList": "Manquants : {list}", + "previewMore": "{shown} +{count}" }, "filters": { "title": "Filtres de série", @@ -7598,7 +7641,10 @@ "bookCount": "Nombre de livres", "recentAdditions": "Ajouts récents", "readingProgress": "Progrès en lecture" - } + }, + "clearSearch": "Effacer la recherche", + "noMatchHint": "Essayez une autre bibliothèque, ou effacez les filtres actifs.", + "emptyHint": "Les séries apparaissent dès que vos livres portent des métadonnées de série." }, "detail": { "pageTitle": "Série", @@ -7639,6 +7685,66 @@ "ascending": "Ascendant", "descending": "Décroissant" } + }, + "authorsPlus": "{authors} +{count}", + "track": { + "readCount": "{count, plural, one {# lu} other {# lus} many {# lus}}", + "readingCount": "{count, plural, one {# en cours} other {# en cours} many {# en cours}}", + "unreadCount": "{count, plural, one {# non lu} other {# non lus} many {# non lus}}", + "missingCount": "{count, plural, one {# manquant} other {# manquants} many {# manquants}}", + "slotMissing": "{number} absent de la bibliothèque", + "untitled": "Sans titre" + }, + "legend": { + "read": "Lu", + "reading": "En cours", + "unread": "En bibliothèque", + "missing": "Manquant" + }, + "status": { + "label": "Filtrer les séries par statut de lecture", + "all": "Toutes", + "reading": "En cours", + "unread": "Non commencées", + "complete": "Complètes", + "gaps": "Trous", + "read": "Lue", + "inProgress": "En cours", + "hasGaps": "Avec des trous", + "notStarted": "Non commencées" + }, + "index": { + "columnSeries": "Série", + "columnVolumes": "Volumes", + "columnRead": "Lus", + "columnNext": "À suivre", + "columnAdded": "Ajout", + "percent": "{value} %", + "captionReading": "{base} · {count, plural, one {# en cours} other {# en cours} many {# en cours}}", + "finished": "Lue de bout en bout", + "reading": "En cours", + "next": "Suivant", + "start": "Commencer" + }, + "grouping": { + "label": "Grouper par", + "none": "Aucun regroupement", + "letter": "Par lettre", + "library": "Par bibliothèque", + "status": "Par statut" + }, + "libraries": { + "more": "+{count}" + }, + "card": { + "oneVolume": "Un volume", + "oneVolumeShort": "1 vol", + "volumeCount": "{count, plural, one {# volume} other {# volumes} many {# volumes}}", + "readSummary": "{base} · {read} lus", + "publishedOf": "{owned} sur {total} parus", + "complete": "Complète", + "moreVolumes": "{count, plural, one {# volume de plus} other {# volumes de plus} many {# volumes de plus}}", + "label": "{name}, {read} volumes lus sur {total}" } }, "smartScope": { @@ -7884,6 +7990,135 @@ "languages": "Langues", "series": "Série" }, + "bulkRename": { + "library": "Bibliothèque", + "selectLibraryPlaceholder": "Sélectionnez une bibliothèque...", + "noEligibleLibraries": "Aucune bibliothèque n'a activé le changement de nom de fichier. Activez-le dans les paramètres de la bibliothèque.", + "refresh": "Actualiser", + "previewFailed": "Échec du chargement de l'aperçu", + "executionFailed": "Échec du changement de nom groupé", + "openBookDetails": "Détails du livre ouvert", + "openBook": "Ouvrir le livre", + "toRenameCount": "{count, plural, =0 {rien à renommer} one {# à renommer} other {# à renommer} many {# à renommer}}", + "applyCount": "{count, plural, one {Appliquer # renommage} other {Appliquer # renommages} many {Appliquer # renommages}}", + "search": { + "placeholder": "Rechercher un livre ou un chemin", + "label": "Rechercher un livre", + "clear": "Effacer la recherche" + }, + "filter": { + "all": "Tout", + "changes": "Modifications", + "conflicts": "Conflits", + "unchanged": "Inchangés" + }, + "status": { + "willRename": "Renommera", + "unchanged": "Inchangé", + "collision": "Collision", + "noPattern": "Aucun modèle", + "error": "Erreur" + }, + "group": { + "collision": "Conflit de destination", + "unchanged": "Déjà correct", + "noPattern": "Aucun modèle de nommage", + "error": "En erreur", + "includeAll": "Inclure tous les renommages « {kind} »", + "expand": "Développer « {kind} »", + "collapse": "Réduire « {kind} »", + "heldBack": "Ces éléments ne peuvent pas être renommés" + }, + "changeKind": { + "ungroup": "Regroupement de série supprimé", + "flatten": "Niveau de dossier redondant supprimé", + "yearRemoved": "Année de publication supprimée", + "yearAdded": "Année de publication ajoutée", + "yearCorrected": "Année de publication corrigée", + "authorSpelling": "Orthographe du nom d'auteur", + "capitalisation": "Casse et espacement", + "unsafeCharacters": "Caractères interdits remplacés", + "filenameRebuilt": "Nom de fichier reconstruit à partir des métadonnées", + "folderRenamed": "Dossier renommé", + "rebuilt": "Dossier et nom de fichier reconstruits", + "restructured": "Chemin restructuré", + "multiple": "Modifications multiples" + }, + "select": { + "ofSelected": "sur {total} sélectionnés", + "toggleAll": "Sélectionner ou désélectionner tous les renommages", + "toggleGroup": "Sélectionner ou désélectionner tous les renommages « {kind} »", + "toggleBook": "Renommer {title}" + }, + "review": { + "loadMore": "Charger plus", + "queue": "Renommages en attente", + "position": "{index} sur {total}", + "previous": "Livre précédent", + "next": "Livre suivant", + "keyboardHint": "déplacer", + "keyboardSkip": "ignorer", + "skip": "Ignorer", + "include": "Inclure", + "excluded": "Exclu", + "back": "Retour à la liste" + }, + "detail": { + "whatChanges": "Ce qui change", + "foldedFolders": "{count, plural, one {# dossier inchangé} other {# dossiers inchangés} many {# dossiers inchangés}}", + "onDisk": "Sur le disque", + "today": "Aujourd'hui", + "afterRename": "Après le renommage", + "showLibraryFolders": "Afficher les dossiers de la bibliothèque", + "hideLibraryFolders": "Masquer les dossiers de la bibliothèque", + "currentPath": "Chemin actuel", + "whyItMoves": "Pourquoi ce déplacement", + "levelTop": "Dossier principal", + "levelFolder": "Dossier {depth}", + "levelFilename": "Nom de fichier", + "levelRemoved": "Supprimé", + "tokenCount": "{count, plural, one {# jeton} other {# jetons} many {# jetons}}", + "optionalLevel": "Un niveau de dossier optionnel, produit par un groupe du modèle.", + "removedExplainer": "Le modèle de nommage ne prévoit aucun dossier à ce niveau : {folder} est donc supprimé et son contenu remonte d'un niveau.", + "conflictTitle": "Un autre fichier occupe déjà cette destination.", + "conflictBody": "Le renommage l'écraserait : ce livre est donc mis en attente jusqu'à la résolution du conflit.", + "siblings": "{count, plural, one {# autre avec la même modification} other {# autres avec la même modification} many {# autres avec la même modification}}", + "siblingsMore": "+{count} de plus" + }, + "empty": { + "title": "Choisissez une bibliothèque pour commencer", + "description": "Sélectionnez une bibliothèque ci-dessus pour prévisualiser les modifications de renommage, filtrer par statut et appliquer l'exécution de renommage groupé.", + "chooseLibrary": "Choisir la bibliothèque", + "noneTitle": "Rien à passer en revue", + "noneDescription": "Aucun livre ne correspond au filtre actuel. Effacez la recherche ou passez à Tout.", + "noMatch": "Aucun livre ne correspond à votre recherche." + }, + "confirmDialog": { + "willRename": "Seront renommés", + "skippedByYou": "Ignorés par vous", + "heldBack": "Mis en attente pour conflit", + "untouched": "Laissés inchangés", + "confirm": "{count, plural, one {Renommer # fichier} other {Renommer # fichiers} many {Renommer # fichiers}}", + "cannotRename": "Ne peuvent pas être renommés" + }, + "run": { + "preparing": "Préparation...", + "preparingHint": "Vérification de chaque fichier par rapport au modèle de nommage avant tout déplacement.", + "title": "Renommage : {done} sur {total}", + "runningHint": "Les fichiers sont en cours de renommage. Vous pouvez arrêter une fois le fichier actuel terminé.", + "stop": "Arrêter après ce fichier", + "resultTitle": "{done, plural, one {# fichier renommé sur {total}} other {# fichiers renommés sur {total}} many {# fichiers renommés sur {total}}}", + "resultFailed": "{count, plural, one {# échec} other {# échecs} many {# échecs}}", + "resultSkipped": "{count, plural, one {# ignoré} other {# ignorés} many {# ignorés}}", + "dismiss": "Fermer" + }, + "executionError": { + "http": "Le serveur a rejeté la requête (HTTP {status}).", + "noBody": "Le serveur n'a pas envoyé de corps de réponse.", + "incomplete": "La connexion s'est interrompue avant la fin du renommage. Il se peut que certains fichiers n'aient pas été renommés.", + "unknown": "Le renommage n'a pas pu être terminé." + } + }, "bookDuplicates": { "scanSettings": "Paramètres de numérisation", "title": "Livres en double", @@ -7979,7 +8214,8 @@ }, "actions": { "rename": "Renommer", - "split": "Diviser" + "split": "Diviser", + "merge": "Fusionner" }, "duplicates": { "similarity": "Similitude :", @@ -7999,7 +8235,20 @@ "percentSimilar": "{percent} % de similarité", "pairDetails": "Détails de la paire", "dismissEntityTitle": "Ignorer toutes les paires pour cette entité", - "dismissPairTitle": "Rejeter cette paire" + "dismissPairTitle": "Rejeter cette paire", + "groupsLabel": "Groupes de doublons possibles", + "keepThisOne": "À conserver", + "mergeAway": "À fusionner", + "notAMatch": "Pas de correspondance", + "notAMatchTitle": "Ignorer tous les éléments de ce groupe", + "selectPromptTitle": "Sélectionnez un groupe à examiner", + "selectPromptDescription": "Choisissez un groupe dans la liste pour comparer ses entités côte à côte.", + "backToList": "Retour aux groupes", + "noBookTitles": "Aucun livre associé à cette fiche", + "thresholdLabel": "Similarité minimale", + "thresholdValue": "{percent} %+", + "willBeMerged": "{count, plural, one {# entité sera fusionnée et supprimée} other {# entités seront fusionnées et supprimées} many {# entités seront fusionnées et supprimées}}", + "chooseTargetHint": "Sélectionnez l'entité à conserver. Tout le reste du groupe sera fusionné avec elle." }, "dismissed": { "loading": "Chargement des paires rejetées...", @@ -8023,7 +8272,44 @@ "nameDesc": "Nom Z-A", "fewestBooks": "Moins de livres", "mostBooks": "La plupart des livres" - } + }, + "sortByLabel": "Trier par", + "entityTypeLabel": "Type d'entité", + "resultCount": "{count, plural, =0 {aucune entité} one {# entité} other {# entités} many {# entités}}", + "selectedCount": "{count, plural, one {# sélectionnée} other {# sélectionnées} many {# sélectionnées}}", + "columns": { + "name": "Nom", + "sortName": "Nom de tri", + "books": "Livres", + "status": "Statut", + "actions": "Actions" + }, + "selectAllOnPage": "Sélectionner toutes les entités de cette page", + "selectEntity": "Sélectionner {name}", + "actionsFor": "Actions pour {name}", + "status": { + "noBooks": "Aucun livre" + }, + "filters": { + "all": "Tout", + "noBooks": "Aucun livre" + }, + "density": { + "label": "Hauteur des lignes", + "comfortable": "Confortable", + "compact": "Compact" + }, + "rowsPerPage": "Lignes par page", + "range": "Affichage de {from} à {to} sur {total}", + "pagination": "Pagination", + "previousPage": "Page précédente", + "nextPage": "Page suivante", + "goToPage": "Aller à la page {page}", + "morePages": "Pages supplémentaires", + "noEntitiesDescription": "Rien n'a encore été ajouté à ce type d'entité.", + "noMatchesTitle": "Aucun résultat", + "noMatchesDescription": "Aucune entité ne correspond à votre recherche et à vos filtres actuels.", + "clearFilters": "Effacer les filtres" }, "deleteMode": { "label": "Mode suppression", @@ -8130,22 +8416,6 @@ "list": "Impossible de charger ces entrées.", "clean": "Échec du nettoyage." } - }, - "bulkRename": { - "library": "Bibliothèque", - "selectLibraryPlaceholder": "Sélectionnez une bibliothèque...", - "noEligibleLibraries": "Aucune bibliothèque n'a activé le changement de nom de fichier. Activez-le dans les paramètres de la bibliothèque.", - "refresh": "Actualiser", - "previewFailed": "Échec du chargement de l'aperçu", - "executionFailed": "Échec du changement de nom groupé", - "openBookDetails": "Détails du livre ouvert", - "filter": { - "all": "Tout" - }, - "status": { - "unchanged": "Inchangé", - "error": "Erreur" - } } }, "views": { diff --git a/client/src/locales/it.json b/client/src/locales/it.json index cb9459262..8887688cb 100644 --- a/client/src/locales/it.json +++ b/client/src/locales/it.json @@ -841,6 +841,7 @@ "stepReport": "Rapporto", "stepReportTitle": "Rapporto sulla migrazione", "subtitleSource": "Configura la connessione al database all'istanza Booklore di origine.", + "genericSubtitleSource": "Configura la connessione alla tua applicazione di libreria sorgente.", "subtitleMappings": "Mappare gli utenti di origine per gli utenti di destinazione e tradurre i percorsi dei file.", "subtitleDryRun": "Visualizza in anteprima ciò che verrà importato prima di eseguire la migrazione in tempo reale.", "subtitleRun": "Avvia l'importazione dal vivo e monitora il suo progresso.", @@ -1075,6 +1076,7 @@ "syncMetadataToFiles": "Sincronizza i metadati sui file", "deleteLibrary": "Elimina libreria", "bookCount": "{count, plural, =0 {niente libri} one {# libro} other {# libri} many {# libri}}", + "booksUnit": "{count, plural, one {# libro} other {# libri}}", "folderCount": "{count, plural, =0 {nessuna cartella} one {# cartella} other {# cartelle} many {# cartelle}}", "fileMode": "Modalità file", "folderMode": "Modalità cartella", @@ -1106,6 +1108,8 @@ "onDiskUnit": "{size} sul disco", "noFilesIndexed": "Nessun file indicizzato", "formatEntry": "{format} {count}", + "formatOverflow": "{count, plural, one {+# formato in più} other {+# formati in più}}", + "extraFolders": "{count, plural, one {+# cartella in più} other {+# cartelle in più}}", "openLibrary": "Apri {name}", "moreActions": "Altre azioni per {name}", "statsFailed": "Impossibile caricare i conteggi delle librerie. Tutto il resto su questa pagina funziona ancora.", @@ -1115,12 +1119,16 @@ "sortLabel": "Ordina", "noMatchesTitle": "Nessuna libreria corrisponde a quel filtro", "noMatchesHint": "Nessuna corrispondenza per \"{query}\" per nome o percorso cartella.", + "totalLibraries": "{count, plural, one {# libreria in più} other {# librerie in più}}", "neverScanned": "Mai scansionato", "neverScannedHint": "Esegui una scansione per indicizzare le cartelle", "scanFailedAt": "Non riuscito: {time}", "scanningPercent": "Scansione al {pct}%", "scanCounting": "Conteggio file", "scanCounts": "{processed} di {total}", + "scanAdded": "{count, plural, one {+# elemento aggiunto} other {+# elementi aggiunti}}", + "scanUpdated": "{count, plural, one {# aggiornato} other {# aggiornati}}", + "scanMissing": "{count, plural, one {# mancante} other {# mancanti}}", "scanNoChange": "nessun cambiamento", "outcomeSeparator": ", ", "scanOutcome": "{trigger} - {outcome}", @@ -1137,9 +1145,61 @@ "default": "Ordine predefinito", "name": "Nome", "books": "Libri", - "size": "Dimensione sul disco" + "size": "Dimensione sul disco", + "lastScan": "Ultima scansione" + }, + "trigger": { + "manual": "Manuale", + "watcher": "Osservatore", + "schedule": "Pianificazione" + }, + "capability": { + "watch": "Monitoraggio cartelle", + "schedule": "Scansione programmata", + "fileWrite": "Scrivi su file", + "fileRename": "Rinomina file", + "on": "{name}: attivo", + "off": "{name}: disattivo", + "legendHint": "Il tratteggio indica che è disattivato" + }, + "stateOn": "Attivo", + "stateOff": "Disattivo", + "toggleDetail": "Mostra i dettagli di {name}", + "durationMs": "{ms} ms", + "durationSeconds": "{seconds}s", + "durationMinutes": "{minutes}m {seconds}s", + "history": { + "when": "Quando", + "trigger": "Attivazione", + "duration": "Durata", + "result": "Risultato", + "status": "Stato", + "statusValue": { + "running": "In corso", + "completed": "Completato", + "failed": "Fallito" + } }, "detail": { + "foldersTitle": "Cartelle & layout", + "metadataTitle": "Metadati e lettura", + "accessTitle": "Accesso", + "historyTitle": "Cronologia scansioni", + "path": "Percorso {index}", + "organization": "Organizzazione", + "excludePatterns": "Regole di esclusione", + "precedence": "Priorità della sorgente", + "allowedFormats": "Formati consentiti", + "countsAsStarted": "Conta come iniziato", + "countsAsFinished": "Conta come finito", + "peopleWithAccess": "Persone con accesso", + "added": "Aggiunto", + "coverShape": "Forma della copertina", + "coverShapeValue": { + "portrait": "2:3 verticale", + "square": "1:1 quadrato" + }, + "none": "Nessuno", "allSupported": "Tutti i formati supportati", "historyEmpty": "Questa biblioteca non è mai stata scansionata.", "historyFailed": "Impossibile caricare la cronologia di scansione per questa libreria." @@ -1214,13 +1274,24 @@ "howItWorks": { "title": "Come funziona.", "summary": "Ogni libro ottiene un punteggio su 100 in base a quanto sono completi i suoi metadati. Un peso è significativo solo accanto agli altri, quindi ogni campo sottostante mostra la parte di un punteggio finito di cui è responsabile. Raddoppiare ogni peso non cambia niente." + }, + "save": { + "upToDate": "Tutte le modifiche salvate." } }, "tabs": { "users": "Utenti", "account-activity": "Attività dell'account", "magic-links": "Collegamenti magici", - "oidc": "OIDC /SSO" + "oidc": "OIDC /SSO", + "server-fonts": "Caratteri del lettore" + }, + "serverFonts": { + "title": "Caratteri del lettore", + "subtitle": "Carica i caratteri che ogni utente può scegliere nel lettore eBook, senza caricarne i propri.", + "listLabel": "Caratteri del lettore", + "noFontsYet": "Nessun carattere del server", + "noFontsHint": "I caratteri che aggiungi qui appaiono nel lettore di ogni utente." } }, "common": { @@ -1233,6 +1304,7 @@ "opds": "OPDS", "kobo": "Kobo", "koreader": "KOReader", + "integrations": "Integrazioni", "hardcover": "Hardcover", "admin": "Ammin", "system": "Sistema", @@ -1240,12 +1312,22 @@ } }, "integrations": { + "title": "Integrazioni", + "subtitle": "Collega servizi esterni per sincronizzare i tuoi dati di lettura ed evidenziazioni.", + "noPermission": "Non hai il permesso di utilizzare alcuna integrazione.", "tabs": { - "hardcover": "Hardcover" + "hardcover": "Hardcover", + "readwise": "Readwise", + "storygraph": "StoryGraph" + }, + "providerSubtitles": { + "readwise": "Invia automaticamente i tuoi punti salienti a Readwise.", + "storygraph": "Sincronizza i progressi e lo stato di lettura su The StoryGraph." } }, "metadata": { "title": "Metadati", + "subtitle": "Configurare i provider di metadati, regole di corrispondenza, automazione e arricchimento degli autori.", "noPermission": "Non hai l'autorizzazione per gestire le impostazioni dei metadati.", "fields": { "title": "Titolo", @@ -1263,20 +1345,39 @@ "genres": "Generi", "narrators": "Narratori", "duration": "Durata", - "abridged": "Ridotto" + "abridged": "Ridotto", + "tags": "Tag", + "isbn13": "ISBN-13", + "isbn10": "ISBN-10", + "googleBooksId": "Google Books ID", + "goodreadsId": "Goodreads ID", + "amazonId": "Amazon ID", + "hardcoverId": "Hardcover ID", + "openLibraryId": "Open Library ID", + "itunesId": "iTunes ID", + "koboId": "Kobo ID", + "aladinId": "Aladin ID" }, "mergeStrategy": { "fillMissing": { "label": "Riempi mancante", - "description": "Scrivi solo se il campo è attualmente vuoto" + "description": "Scrivi solo se il campo è attualmente vuoto", + "short": "Riempi i vuoti" + }, + "mergeExisting": { + "label": "Unisci con uno esistente", + "description": "Mantieni i generi memorizzati e aggiungi i nuovi generi provider", + "short": "Unisci" }, "overwriteIfProvided": { "label": "Sovrascrivi se fornito", - "description": "Scrivi se il provider ha restituito un valore" + "description": "Scrivi se il provider ha restituito un valore", + "short": "Se fornito" }, "overwrite": { "label": "Sovrascrivi sempre", - "description": "Sostituisci sempre il valore esistente" + "description": "Sostituisci sempre il valore esistente", + "short": "Sempre" } }, "autoFetch": { @@ -1344,12 +1445,23 @@ "providers": { "availableSources": "Fonti disponibili", "saveChanges": "Salva modifiche", + "discard": "Scarta", + "configure": "Configura", "test": "Prova", "testing": "Prova...", + "testHint": "Controlla queste credenziali contro il servizio live. Non viene salvato nulla.", "enabled": "Abilitato", "retryIn": "Riprova tra {duration}", "runTestBeforeEnabling": "Eseguire il test prima di abilitare", "hardcoverEnableHint": "Eseguire il test con il token corrente per sbloccare l'interruttore di abilitazione.", + "searchPlaceholder": "Filtra le fonti", + "sourcesEnabled": "{enabled} di {total} abilitati", + "groupEnabled": "{enabled} di {total} abilitati", + "noMatches": "Nessuna sorgente corrisponde a questo filtro.", + "clearFilters": "Cancella filtri", + "filter": { + "label": "Filtra sorgenti per stato" + }, "badge": { "setupRequired": "Configurazione richiesta", "throttled": "Strozzato", @@ -1484,6 +1596,44 @@ "statusDisabled": "disabilitato", "statusNotConfigured": "non configurato", "done": "Fatto" + }, + "toolbar": { + "removeEverywhere": "Rimuovi da tutti i campi", + "allFields": "Tutti i campi", + "overridesOnly": "Solo sovrascrittura", + "clearFilters": "Cancella filtri" + }, + "providerState": { + "disabled": "Disabilitato", + "notConfigured": "Non configurato", + "disabledDetail": "{provider} è disattivato, quindi rimane nell'ordine ma è saltato.", + "notConfiguredDetail": "{provider} non ha ancora credenziali, quindi rimane nell'ordine ma è saltato." + }, + "detail": { + "priority": "Priorità del fornitore", + "priorityHint": "Il primo provider che restituisce un valore vince.", + "moveUp": "Muove il {provider} prima", + "moveDown": "Muove il {provider} dopo", + "result": "Risultato", + "resultHint": "Al prossimo aggiornamento questo campo si risolve in questo ordine:", + "noUsableProviders": "Nessun provider utilizzabile - questo campo non sarà riempito.", + "inheritGlobal": "Eredita regola globale", + "inheritingGlobal": "Eredendo la regola globale.", + "collapse": "Comprimi" + }, + "save": { + "upToDate": "Nessuna modifica non registrata", + "discard": "Scarta", + "action": "Salva {scope}" + }, + "confirm": { + "clearProviders": { + "title": "Rimuovere tutti i provider?", + "description": "Questo svuota la lista dei provider su tutti i 16 campi in {scope}. Niente viene salvato fino a quando non si sceglie Salva." + }, + "resetScope": { + "title": "Ripristina le impostazioni predefinite?" + } } }, "genreBlocklist": { @@ -6404,6 +6554,30 @@ "languages": "Lingue", "series": "Serie" }, + "bulkRename": { + "library": "Biblioteca", + "selectLibraryPlaceholder": "Seleziona una libreria...", + "noEligibleLibraries": "Nessuna libreria ha la ridenominazione dei file abilitata. Abilitalo nelle Impostazioni della Libreria.", + "refresh": "Aggiorna", + "previewFailed": "Impossibile caricare l'anteprima", + "executionFailed": "La ridenominazione collettiva non è riuscita", + "openBookDetails": "Apri i dettagli del libro", + "filter": { + "all": "Tutto" + }, + "status": { + "willRename": "Rinominerà", + "unchanged": "Invariato", + "collision": "Collisione", + "noPattern": "Nessun modello", + "error": "Errore" + }, + "empty": { + "title": "Scegli una libreria per iniziare", + "description": "Seleziona una libreria qui sopra per visualizzare in anteprima le modifiche di ridenominazione, filtrare per stato e applicare l'esecuzione di ridenominazione in blocco.", + "chooseLibrary": "Scegli Libreria" + } + }, "bookDuplicates": { "scanSettings": "Impostazioni di scansione", "title": "Libri duplicati", @@ -6579,22 +6753,6 @@ "title": "Unisci entità", "description": "Seleziona quale entità mantenere. Gli altri verranno uniti e rimossi." } - }, - "bulkRename": { - "library": "Biblioteca", - "selectLibraryPlaceholder": "Seleziona una libreria...", - "noEligibleLibraries": "Nessuna libreria ha la ridenominazione dei file abilitata. Abilitalo nelle Impostazioni della Libreria.", - "refresh": "Aggiorna", - "previewFailed": "Impossibile caricare l'anteprima", - "executionFailed": "La ridenominazione collettiva non è riuscita", - "openBookDetails": "Apri i dettagli del libro", - "filter": { - "all": "Tutto" - }, - "status": { - "unchanged": "Invariato", - "error": "Errore" - } } }, "views": { diff --git a/client/src/locales/ja.json b/client/src/locales/ja.json index 4ffc52e09..b773b3585 100644 --- a/client/src/locales/ja.json +++ b/client/src/locales/ja.json @@ -6537,6 +6537,29 @@ "languages": "言語", "series": "シリーズ" }, + "bulkRename": { + "library": "ライブラリ", + "noEligibleLibraries": "ファイル名が有効になっているライブラリがありません。ライブラリ設定で有効にしてください。", + "refresh": "更新", + "previewFailed": "プレビューの読み込みに失敗しました", + "executionFailed": "一括名称変更に失敗しました", + "openBookDetails": "本の詳細を開く", + "filter": { + "all": "すべて" + }, + "status": { + "willRename": "名前を変更する", + "unchanged": "変更なし", + "collision": "Collision", + "noPattern": "パターンなし", + "error": "エラー" + }, + "empty": { + "title": "開始するライブラリを選択", + "description": "上記のライブラリを選択すると、変更の名前をプレビューし、ステータスごとにフィルタを適用し、一括変更を実行できます。", + "chooseLibrary": "ライブラリを選択" + } + }, "bookDuplicates": { "scanSettings": "設定をスキャン", "title": "本を複製", @@ -6703,21 +6726,6 @@ "title": "エンティティを結合", "description": "保持するエンティティを選択します。その他のエンティティがマージされ、削除されます。" } - }, - "bulkRename": { - "library": "ライブラリ", - "noEligibleLibraries": "ファイル名が有効になっているライブラリがありません。ライブラリ設定で有効にしてください。", - "refresh": "更新", - "previewFailed": "プレビューの読み込みに失敗しました", - "executionFailed": "一括名称変更に失敗しました", - "openBookDetails": "本の詳細を開く", - "filter": { - "all": "すべて" - }, - "status": { - "unchanged": "変更なし", - "error": "エラー" - } } }, "views": { diff --git a/client/src/locales/ko.json b/client/src/locales/ko.json index 12989a1e0..d64204103 100644 --- a/client/src/locales/ko.json +++ b/client/src/locales/ko.json @@ -7418,6 +7418,30 @@ "languages": "언어", "series": "시리즈" }, + "bulkRename": { + "library": "라이브러리", + "selectLibraryPlaceholder": "라이브러리를 선택하세요...", + "noEligibleLibraries": "파일 이름 변경 기능이 활성화된 라이브러리가 없습니다. 라이브러리 설정에서 활성화해 주세요.", + "refresh": "새로고침", + "previewFailed": "미리보기를 불러오는 데 실패했습니다.", + "executionFailed": "일괄 이름 변경에 실패했습니다.", + "openBookDetails": "책 상세 정보 열기", + "filter": { + "all": "모두" + }, + "status": { + "willRename": "이름 변경 예정", + "unchanged": "변화 없음", + "collision": "충돌", + "noPattern": "패턴 없음", + "error": "오류" + }, + "empty": { + "title": "작업할 라이브러리를 선택하세요", + "description": "위에서 라이브러리를 선택하여 이름 변경 사항을 미리 확인하고, 상태별로 필터링하고, 일괄 이름 변경을 실행할 수 있습니다.", + "chooseLibrary": "라이브러리 선택" + } + }, "bookDuplicates": { "scanSettings": "스캔 설정", "title": "중복 도서", @@ -7664,22 +7688,6 @@ "list": "선택한 항목들을 불러올 수 없습니다.", "clean": "정리에 실패했습니다." } - }, - "bulkRename": { - "library": "라이브러리", - "selectLibraryPlaceholder": "라이브러리를 선택하세요...", - "noEligibleLibraries": "파일 이름 변경 기능이 활성화된 라이브러리가 없습니다. 라이브러리 설정에서 활성화해 주세요.", - "refresh": "새로고침", - "previewFailed": "미리보기를 불러오는 데 실패했습니다.", - "executionFailed": "일괄 이름 변경에 실패했습니다.", - "openBookDetails": "책 상세 정보 열기", - "filter": { - "all": "모두" - }, - "status": { - "unchanged": "변화 없음", - "error": "오류" - } } }, "views": { diff --git a/client/src/locales/nl.json b/client/src/locales/nl.json index 8055b06fb..91df63d5a 100644 --- a/client/src/locales/nl.json +++ b/client/src/locales/nl.json @@ -5783,6 +5783,30 @@ "languages": "Talen", "series": "Reeksen" }, + "bulkRename": { + "library": "Bibliotheek", + "selectLibraryPlaceholder": "Selecteer een bibliotheek...", + "noEligibleLibraries": "Geen bibliotheken hebben bestand hernoemen ingeschakeld. Schakel het in bij Bibliotheekinstellingen.", + "refresh": "Vernieuwen", + "previewFailed": "Voorbeeld laden mislukt", + "executionFailed": "Bulk hernoemen mislukt", + "openBookDetails": "Boekdetails openen", + "filter": { + "all": "Alle" + }, + "status": { + "willRename": "Wordt hernoemd", + "unchanged": "Ongewijzigd", + "collision": "Conflict", + "noPattern": "Geen patroon", + "error": "Fout" + }, + "empty": { + "title": "Kies een bibliotheek om te beginnen", + "description": "Selecteer hierboven een bibliotheek om hernoemwijzigingen te bekijken, op status te filteren en de bulk hernoem-actie toe te passen.", + "chooseLibrary": "Bibliotheek kiezen" + } + }, "bookDuplicates": { "groupsFound": "{count, plural, =0 {No duplicate groups} one {One duplicate group} other {# duplicate groups}}", "deleteDialog": { @@ -5885,22 +5909,6 @@ "title": "Entiteiten samenvoegen", "description": "Selecteer welke entiteit je wilt behouden. De andere worden erin samengevoegd en verwijderd." } - }, - "bulkRename": { - "library": "Bibliotheek", - "selectLibraryPlaceholder": "Selecteer een bibliotheek...", - "noEligibleLibraries": "Geen bibliotheken hebben bestand hernoemen ingeschakeld. Schakel het in bij Bibliotheekinstellingen.", - "refresh": "Vernieuwen", - "previewFailed": "Voorbeeld laden mislukt", - "executionFailed": "Bulk hernoemen mislukt", - "openBookDetails": "Boekdetails openen", - "filter": { - "all": "Alle" - }, - "status": { - "unchanged": "Ongewijzigd", - "error": "Fout" - } } }, "views": { diff --git a/client/src/locales/pl.json b/client/src/locales/pl.json index 7e6121984..5aa13e908 100644 --- a/client/src/locales/pl.json +++ b/client/src/locales/pl.json @@ -6236,6 +6236,30 @@ "languages": "Języki", "series": "Seria" }, + "bulkRename": { + "library": "Biblioteka", + "selectLibraryPlaceholder": "Wybierz bibliotekę...", + "noEligibleLibraries": "Żadna biblioteka nie ma włączonej zmiany nazwy pliku. Włącz tę opcję w Ustawieniach biblioteki.", + "refresh": "Odśwież", + "previewFailed": "Nie udało się załadować podglądu", + "executionFailed": "Zbiorcza zmiana nazwy nie powiodła się", + "openBookDetails": "Otwórz szczegóły książki", + "filter": { + "all": "Wszystko" + }, + "status": { + "willRename": "Zmieni nazwę", + "unchanged": "Niezmienione", + "collision": "Kolizja", + "noPattern": "Brak wzoru", + "error": "Błąd" + }, + "empty": { + "title": "Wybierz bibliotekę, aby rozpocząć", + "description": "Wybierz bibliotekę powyżej, aby wyświetlić podgląd zmian zmiany nazwy, filtrować według stanu i zastosować zbiorczą zmianę nazwy.", + "chooseLibrary": "Wybierz Bibliotekę" + } + }, "bookDuplicates": { "scanSettings": "Ustawienia skanowania", "title": "Duplikaty książek", @@ -6411,22 +6435,6 @@ "title": "Połącz podmioty", "description": "Wybierz, który element chcesz zachować. Pozostałe zostaną z nim połączone i usunięte." } - }, - "bulkRename": { - "library": "Biblioteka", - "selectLibraryPlaceholder": "Wybierz bibliotekę...", - "noEligibleLibraries": "Żadna biblioteka nie ma włączonej zmiany nazwy pliku. Włącz tę opcję w Ustawieniach biblioteki.", - "refresh": "Odśwież", - "previewFailed": "Nie udało się załadować podglądu", - "executionFailed": "Zbiorcza zmiana nazwy nie powiodła się", - "openBookDetails": "Otwórz szczegóły książki", - "filter": { - "all": "Wszystko" - }, - "status": { - "unchanged": "Niezmienione", - "error": "Błąd" - } } }, "views": { diff --git a/client/src/locales/pt.json b/client/src/locales/pt.json index d11949cc8..be50d35a6 100644 --- a/client/src/locales/pt.json +++ b/client/src/locales/pt.json @@ -4665,6 +4665,32 @@ }, "files": { "title": "Arquivos do livro", + "stats": { + "files": "Arquivos", + "total": "Total", + "runtime": "Tempo de execução", + "formats": "Formatos" + }, + "filesHeading": "Arquivos", + "allPresent": "Todos os presentes", + "groupedByReader": "agrupados pelo leitor", + "thisFile": "Este arquivo", + "writeBackShort": "Regravar", + "fieldsSet": "Definir {filled} / {total}", + "writtenSummary": "{fields} e {count, plural, one {# mais campo} other {Mais # campos}} estão escritos no {format}.", + "writtenSummaryAll": "{fields} estão escritos no {format}.", + "writtenNothing": "Nenhum dos campos {total} graváveis tem um valor ainda.", + "writeBackOff": "A regravação de metadados está desativada para este livro.", + "editMetadata": "Editar metadados", + "showAllTracks": "Mostrar todos", + "collapseTracks": "Recolher", + "moreTracks": "{count, plural, one {# livro} many {# livros} other {# livros}}", + "tracksRolled": "{count, plural, one {# livro} many {# livros} other {# livros}}", + "fileDetails": "Detalhes do arquivo", + "openDetails": "Abrir detalhes do livro", + "closeDetails": "Fechar detalhes do arquivo", + "trackFrom": "Rastrear {track} de {total}, do {time}", + "throughCopy": "Você está {percent} através desta cópia", "fileCount": "{count, plural, =0 {nenhum arquivo} one {# arquivo} many {# arquivos} other {# arquivos}}", "synced": "Sincronizado {time}", "sortAria": "Ordenar arquivos", @@ -7957,6 +7983,135 @@ "languages": "Idiomas", "series": "Séries" }, + "bulkRename": { + "library": "Biblioteca", + "selectLibraryPlaceholder": "Selecione uma biblioteca...", + "noEligibleLibraries": "Nenhuma biblioteca possui a renomeação de arquivos ativada. Ative isso em Configurações da Biblioteca.", + "refresh": "Atualizar", + "previewFailed": "Falha ao carregar a pré-visualização", + "executionFailed": "A renomeação em massa falhou", + "openBookDetails": "Abrir detalhes do livro", + "openBook": "Abrir o livro", + "toRenameCount": "{count, plural, =0 {nada para renomear} one {# para renomear} other {# para renomear}}", + "applyCount": "{count, plural, one {Aplique o nome #} other {Aplique nomes de #}}", + "search": { + "placeholder": "Encontre um livro ou caminho", + "label": "Encontre um livro", + "clear": "Limpar busca" + }, + "filter": { + "all": "Todos", + "changes": "Alterações", + "conflicts": "Conflitos", + "unchanged": "Inalterado" + }, + "status": { + "willRename": "Será Renomeado", + "unchanged": "Inalterado", + "collision": "Colisão", + "noPattern": "Sem Padrão", + "error": "Erro" + }, + "group": { + "collision": "Conflito de destino", + "unchanged": "Já está correto", + "noPattern": "Sem padrão de nomenclatura", + "error": "Errado", + "includeAll": "Incluir todas as renomeações de {kind}", + "expand": "Expandir {kind}", + "collapse": "Recolher {kind}", + "heldBack": "Estes não podem ser renomeados" + }, + "changeKind": { + "ungroup": "Agrupamento de séries removido", + "flatten": "Nível de pasta duplicado removido", + "yearRemoved": "Ano de publicação removido", + "yearAdded": "Ano de publicação adicionado", + "yearCorrected": "Ano de publicação corrigido", + "authorSpelling": "Grafia do nome do autor", + "capitalisation": "Capitalização e Espaçamento", + "unsafeCharacters": "Caracteres inseguros substituídos", + "filenameRebuilt": "Nome de arquivo reconstruído a partir dos metadados", + "folderRenamed": "Pasta renomeada", + "rebuilt": "Pasta e nome de arquivo recriados", + "restructured": "Caminho reestruturado", + "multiple": "Múltiplas alterações" + }, + "select": { + "ofSelected": "de {total} selecionados", + "toggleAll": "Selecionar ou limpar cada renomeação", + "toggleGroup": "Selecionar ou limpar todos os nomes do {kind} renomeados", + "toggleBook": "Renomear {title}" + }, + "review": { + "loadMore": "Carregando mais", + "queue": "Renomeações pendentes", + "position": "{index} de {total}", + "previous": "Livro anterior", + "next": "Próximo livro", + "keyboardHint": "mover", + "keyboardSkip": "pular", + "skip": "Pular", + "include": "Incluir", + "excluded": "Excluído", + "back": "Voltar à lista" + }, + "detail": { + "whatChanges": "O que muda", + "foldedFolders": "{count, plural, one {# pasta inalterada} other {# pastas inalteradas}}", + "onDisk": "No disco", + "today": "Hoje", + "afterRename": "Após renomear", + "showLibraryFolders": "Adicionar pasta da biblioteca", + "hideLibraryFolders": "Ocultar pastas da biblioteca", + "currentPath": "Caminho atual", + "whyItMoves": "Por que ele se move", + "levelTop": "Diretório raiz", + "levelFolder": "Pasta {depth}", + "levelFilename": "Nome do Arquivo", + "levelRemoved": "Removido", + "tokenCount": "{count, plural, one {# token} other {# tokens}}", + "optionalLevel": "Um nível de pasta opcional, produzido por um grupo no padrão.", + "removedExplainer": "O padrão de nomeação não tem nenhuma pasta neste nível, então o {folder} é descartado e seu conteúdo é movido para cima.", + "conflictTitle": "Outro arquivo já reivindicou este destino.", + "conflictBody": "Renomear iria substituí-lo, então este livro é mantido até que o conflito seja resolvido.", + "siblings": "{count, plural, one {# mais com a mesma mudança} other {# mais com a mesma alteração}}", + "siblingsMore": "+{count} a mais" + }, + "empty": { + "title": "Escolha uma Biblioteca para Iniciar", + "description": "Selecione uma biblioteca acima para pré-visualizar alterações de nome, filtrar por status e aplicar a execução da renomeação em massa.", + "chooseLibrary": "Escolher Biblioteca", + "noneTitle": "Nada para revisar", + "noneDescription": "Nenhum livro corresponde ao filtro atual. Limpe a pesquisa ou mude para tudo.", + "noMatch": "Nenhum livro corresponde a esta pesquisa." + }, + "confirmDialog": { + "willRename": "Será renomeado", + "skippedByYou": "Ignorado por você", + "heldBack": "Reteve como conflitos", + "untouched": "Deixado como está", + "confirm": "{count, plural, one {Renomeie # arquivo} other {Renomeie # arquivos}}", + "cannotRename": "Não pode ser renomeado" + }, + "run": { + "preparing": "Preparando…", + "preparingHint": "Verificando cada arquivo no padrão de nome antes de mover qualquer coisa.", + "title": "Renomeando {done} do {total}", + "runningHint": "Os arquivos estão sendo renomeados. Você pode parar após concluir o arquivo atual.", + "stop": "Parar após este arquivo", + "resultTitle": "{done, plural, one {Renomeado # de {total} Arquivos} other {Renomeado # de {total} arquivos}}", + "resultFailed": "{count, plural, one {# falhou} other {# falharam}}", + "resultSkipped": "{count, plural, one {# desconsiderado} other {# desconsiderados}}", + "dismiss": "Dispensar" + }, + "executionError": { + "http": "O servidor rejeitou o pedido (HTTP {status}).", + "noBody": "O servidor não enviou um corpo de resposta.", + "incomplete": "A conexão terminou antes da renomeação. Alguns arquivos podem não ter sido renomeados.", + "unknown": "A renomeação não pode ser concluída." + } + }, "bookDuplicates": { "scanSettings": "Configuração das Análises", "title": "Livros duplicados", @@ -8052,7 +8207,8 @@ }, "actions": { "rename": "Renomear", - "split": "Dividir" + "split": "Dividir", + "merge": "Mesclar" }, "duplicates": { "similarity": "Similaridade:", @@ -8072,7 +8228,20 @@ "percentSimilar": "{percent}% semelhante", "pairDetails": "Detalhes do par", "dismissEntityTitle": "Ignorar todos os pares desta entidade", - "dismissPairTitle": "Ignorar este par" + "dismissPairTitle": "Ignorar este par", + "groupsLabel": "Grupos com possíveis duplicações", + "keepThisOne": "Manter essa", + "mergeAway": "Mesclar de vez", + "notAMatch": "Sem correspondência", + "notAMatchTitle": "Descartar cada par neste grupo", + "selectPromptTitle": "Selecione um grupo para revisar", + "selectPromptDescription": "Escolha um grupo da lista para comparar suas entidades lado a lado.", + "backToList": "Voltar aos grupos", + "noBookTitles": "Não há livros ligados a este registro", + "thresholdLabel": "Mínimo de similaridade", + "thresholdValue": "{percent}%", + "willBeMerged": "{count, plural, one {# entidade será mesclada e removida} other {# entidades serão mescladas e removidas}}", + "chooseTargetHint": "Selecione a entidade para manter. Todo o resto do grupo se funde a ela." }, "dismissed": { "loading": "Carregando pares ignorados...", @@ -8096,7 +8265,44 @@ "nameDesc": "Nome Z-A", "fewestBooks": "Menos livros", "mostBooks": "Mais livros" - } + }, + "sortByLabel": "Ordenar por", + "entityTypeLabel": "Tipo de entidade", + "resultCount": "{count, plural, =0 {sem livros} one {# livro} other {# livros}}", + "selectedCount": "{count, plural, one {# selecionado} other {# selecionados}}", + "columns": { + "name": "Nome", + "sortName": "Classificar por nome", + "books": "Livros", + "status": "Status", + "actions": "Ações" + }, + "selectAllOnPage": "Selecionar todas as entidades nesta página", + "selectEntity": "Selecionar {name}", + "actionsFor": "Ações para {name}", + "status": { + "noBooks": "Nenhum livro" + }, + "filters": { + "all": "Todos", + "noBooks": "Nenhum livro" + }, + "density": { + "label": "Altura da linha", + "comfortable": "Confortável", + "compact": "Compacta" + }, + "rowsPerPage": "Linhas por página", + "range": "Mostrando {from}-{to} de {total}", + "pagination": "Paginação", + "previousPage": "Página anterior", + "nextPage": "Próxima página", + "goToPage": "Ir para a página {page}", + "morePages": "Páginas largas", + "noEntitiesDescription": "Nada foi adicionado a este tipo de entidade ainda.", + "noMatchesTitle": "Sem resultados", + "noMatchesDescription": "Nenhuma entidade corresponde à sua pesquisa e filtros atuais.", + "clearFilters": "Limpar filtros" }, "deleteMode": { "label": "Modo de exclusão", @@ -8203,22 +8409,6 @@ "list": "Não foi possível carregar estas entradas.", "clean": "Falha na limpeza." } - }, - "bulkRename": { - "library": "Biblioteca", - "selectLibraryPlaceholder": "Selecione uma biblioteca...", - "noEligibleLibraries": "Nenhuma biblioteca possui a renomeação de arquivos ativada. Ative isso em Configurações da Biblioteca.", - "refresh": "Atualizar", - "previewFailed": "Falha ao carregar a pré-visualização", - "executionFailed": "A renomeação em massa falhou", - "openBookDetails": "Abrir detalhes do livro", - "filter": { - "all": "Todos" - }, - "status": { - "unchanged": "Inalterado", - "error": "Erro" - } } }, "views": { diff --git a/client/src/locales/ro.json b/client/src/locales/ro.json index 0a7ec57f8..f2c1d7eef 100644 --- a/client/src/locales/ro.json +++ b/client/src/locales/ro.json @@ -6816,6 +6816,30 @@ "languages": "Limbi", "series": "Serii" }, + "bulkRename": { + "library": "Bibliotecă", + "selectLibraryPlaceholder": "Selectați o bibliotecă...", + "noEligibleLibraries": "Nicio bibliotecă nu are activată redenumirea fișierelor. Activați-o în Setările Bibliotecii.", + "refresh": "Împrospătează", + "previewFailed": "Încărcarea previzualizării a eșuat", + "executionFailed": "Redenumirea în masă a eșuat", + "openBookDetails": "Detalii carte deschisă", + "filter": { + "all": "Toate" + }, + "status": { + "willRename": "Va redenumi", + "unchanged": "Neautorizat", + "collision": "Coliziune", + "noPattern": "Niciun model", + "error": "Eroare" + }, + "empty": { + "title": "Alege o bibliotecă pentru a începe", + "description": "Selectați o bibliotecă de mai sus pentru a previzualiza modificările, a filtra după stare și a aplica redarea în masă rulată.", + "chooseLibrary": "Alege biblioteca" + } + }, "bookDuplicates": { "scanSettings": "Setări scanare", "title": "Cărți duplicate", @@ -6989,22 +7013,6 @@ "title": "Îmbinare Entități", "description": "Selectează ce entitate să păstreze. Ceilalți vor fi fuzionați și eliminați." } - }, - "bulkRename": { - "library": "Bibliotecă", - "selectLibraryPlaceholder": "Selectați o bibliotecă...", - "noEligibleLibraries": "Nicio bibliotecă nu are activată redenumirea fișierelor. Activați-o în Setările Bibliotecii.", - "refresh": "Împrospătează", - "previewFailed": "Încărcarea previzualizării a eșuat", - "executionFailed": "Redenumirea în masă a eșuat", - "openBookDetails": "Detalii carte deschisă", - "filter": { - "all": "Toate" - }, - "status": { - "unchanged": "Neautorizat", - "error": "Eroare" - } } }, "views": { diff --git a/client/src/locales/ru.json b/client/src/locales/ru.json index 6ede91e3e..e98dcdefa 100644 --- a/client/src/locales/ru.json +++ b/client/src/locales/ru.json @@ -6417,6 +6417,30 @@ "languages": "Языки", "series": "Серии" }, + "bulkRename": { + "library": "Библиотека", + "selectLibraryPlaceholder": "Выберите библиотеку...", + "noEligibleLibraries": "Не включено переименование файлов. Включите его в настройках библиотеки.", + "refresh": "Обновить", + "previewFailed": "Не удалось загрузить предпросмотр", + "executionFailed": "Массовое переименование не удалось", + "openBookDetails": "Открыть детали книги", + "filter": { + "all": "Все" + }, + "status": { + "willRename": "Переименовать", + "unchanged": "Без изменений", + "collision": "Столкновение", + "noPattern": "Без шаблона", + "error": "Ошибка" + }, + "empty": { + "title": "Выберите библиотеку для начала", + "description": "Выберите библиотеку выше, чтобы просмотреть изменения переименования, фильтра по статусу и применить запуск массового переименования.", + "chooseLibrary": "Выбрать библиотеку" + } + }, "bookDuplicates": { "scanSettings": "Настройки сканирования", "title": "Дубликат книг", @@ -6591,22 +6615,6 @@ "title": "Объединить сущности", "description": "Выберите, какой объект сохранить. Другие будут объединены в него и удалены." } - }, - "bulkRename": { - "library": "Библиотека", - "selectLibraryPlaceholder": "Выберите библиотеку...", - "noEligibleLibraries": "Не включено переименование файлов. Включите его в настройках библиотеки.", - "refresh": "Обновить", - "previewFailed": "Не удалось загрузить предпросмотр", - "executionFailed": "Массовое переименование не удалось", - "openBookDetails": "Открыть детали книги", - "filter": { - "all": "Все" - }, - "status": { - "unchanged": "Без изменений", - "error": "Ошибка" - } } }, "views": { diff --git a/client/src/locales/sl.json b/client/src/locales/sl.json index f8a2687ed..fb905ef3b 100644 --- a/client/src/locales/sl.json +++ b/client/src/locales/sl.json @@ -6939,6 +6939,30 @@ "languages": "Jeziki", "series": "Serija" }, + "bulkRename": { + "library": "Knjižnica", + "selectLibraryPlaceholder": "Izberi knjižnico...", + "noEligibleLibraries": "Nobena knjižnica nima omogočenega preimenovanja datotek. Omogočite ga v nastavitvah knjižnice.", + "refresh": "Osveži", + "previewFailed": "Predogleda ni bilo mogoče naložiti", + "executionFailed": "Množično preimenovanje ni uspelo", + "openBookDetails": "Odpri podrobnosti knjige", + "filter": { + "all": "Vse" + }, + "status": { + "willRename": "Bo preimenovano", + "unchanged": "Nespremenjeno", + "collision": "Trk", + "noPattern": "Ni vzorca", + "error": "Napaka" + }, + "empty": { + "title": "Izberite knjižnico za začetek", + "description": "Zgoraj izberite knjižnico za predogled sprememb preimenovanja, filtriranje po stanju in izvedbo množičnega preimenovanja.", + "chooseLibrary": "Izberi knjižnico" + } + }, "bookDuplicates": { "scanSettings": "Nastavitve skeniranja", "title": "Podvojene knjige", @@ -7114,22 +7138,6 @@ "title": "Združi entitete", "description": "Izberite, katero entiteto želite ohraniti. Ostale bodo združene vanjo in odstranjene." } - }, - "bulkRename": { - "library": "Knjižnica", - "selectLibraryPlaceholder": "Izberi knjižnico...", - "noEligibleLibraries": "Nobena knjižnica nima omogočenega preimenovanja datotek. Omogočite ga v nastavitvah knjižnice.", - "refresh": "Osveži", - "previewFailed": "Predogleda ni bilo mogoče naložiti", - "executionFailed": "Množično preimenovanje ni uspelo", - "openBookDetails": "Odpri podrobnosti knjige", - "filter": { - "all": "Vse" - }, - "status": { - "unchanged": "Nespremenjeno", - "error": "Napaka" - } } }, "views": { diff --git a/client/src/locales/sv.json b/client/src/locales/sv.json index 89729162b..d64cd3b74 100644 --- a/client/src/locales/sv.json +++ b/client/src/locales/sv.json @@ -6316,6 +6316,30 @@ "languages": "Språk", "series": "Serie" }, + "bulkRename": { + "library": "Bibliotek", + "selectLibraryPlaceholder": "Välj ett bibliotek...", + "noEligibleLibraries": "Inga bibliotek har filnamn aktiverat. Aktivera det i biblioteksinställningar.", + "refresh": "Uppdatera", + "previewFailed": "Det gick inte att ladda förhandsgranskning", + "executionFailed": "Bulknamnbyte misslyckades", + "openBookDetails": "Öppna bokdetaljer", + "filter": { + "all": "Alla" + }, + "status": { + "willRename": "Kommer byta namn", + "unchanged": "Oförändrad", + "collision": "Kollision", + "noPattern": "Inget mönster", + "error": "Fel" + }, + "empty": { + "title": "Välj ett bibliotek för att starta", + "description": "Välj ett bibliotek ovan för att förhandsgranska byta namn på ändringar, filtrera efter status, och tillämpa bulk byta namn kör.", + "chooseLibrary": "Välj bibliotek" + } + }, "bookDuplicates": { "scanSettings": "Skanna inställningar", "title": "Duplicera böcker", @@ -6490,22 +6514,6 @@ "title": "Slå ihop enheter", "description": "Välj vilken enhet du vill behålla. De andra kommer att slås samman till den och tas bort." } - }, - "bulkRename": { - "library": "Bibliotek", - "selectLibraryPlaceholder": "Välj ett bibliotek...", - "noEligibleLibraries": "Inga bibliotek har filnamn aktiverat. Aktivera det i biblioteksinställningar.", - "refresh": "Uppdatera", - "previewFailed": "Det gick inte att ladda förhandsgranskning", - "executionFailed": "Bulknamnbyte misslyckades", - "openBookDetails": "Öppna bokdetaljer", - "filter": { - "all": "Alla" - }, - "status": { - "unchanged": "Oförändrad", - "error": "Fel" - } } }, "views": { diff --git a/client/src/locales/uk.json b/client/src/locales/uk.json index 85ee8160d..4922361b9 100644 --- a/client/src/locales/uk.json +++ b/client/src/locales/uk.json @@ -6399,6 +6399,30 @@ "languages": "Мови", "series": "Серія" }, + "bulkRename": { + "library": "Бібліотека", + "selectLibraryPlaceholder": "Виберіть бібліотеку...", + "noEligibleLibraries": "Жодна бібліотека не має перейменування файлу. Увімкніть її в Налаштуваннях.", + "refresh": "Оновити", + "previewFailed": "Не вдалося завантажити попередній перегляд", + "executionFailed": "Не вдалося перейменувати основну назву", + "openBookDetails": "Відкрити відомості про книгу", + "filter": { + "all": "Всі" + }, + "status": { + "willRename": "Перейменуватиме", + "unchanged": "Без змін", + "collision": "Колізія", + "noPattern": "Шаблон відсутній", + "error": "Помилка" + }, + "empty": { + "title": "Виберіть бібліотеку, щоб почати", + "description": "Виберіть наведену вище бібліотеку для попереднього перегляду змін, фільтр за статусом і перейменування масових змін.", + "chooseLibrary": "Вибрати бібліотеку" + } + }, "bookDuplicates": { "scanSettings": "Параметри сканування", "title": "Дублікати книг", @@ -6570,22 +6594,6 @@ "title": "Об'єднати сутності", "description": "Оберіть, який об'єкт для збереження. Інші будуть об'єднані та видалені." } - }, - "bulkRename": { - "library": "Бібліотека", - "selectLibraryPlaceholder": "Виберіть бібліотеку...", - "noEligibleLibraries": "Жодна бібліотека не має перейменування файлу. Увімкніть її в Налаштуваннях.", - "refresh": "Оновити", - "previewFailed": "Не вдалося завантажити попередній перегляд", - "executionFailed": "Не вдалося перейменувати основну назву", - "openBookDetails": "Відкрити відомості про книгу", - "filter": { - "all": "Всі" - }, - "status": { - "unchanged": "Без змін", - "error": "Помилка" - } } }, "views": { diff --git a/client/src/locales/zh.json b/client/src/locales/zh.json index 1b16306cf..b4071caaf 100644 --- a/client/src/locales/zh.json +++ b/client/src/locales/zh.json @@ -6874,6 +6874,30 @@ "languages": "语文", "series": "系列" }, + "bulkRename": { + "library": "书库", + "selectLibraryPlaceholder": "请选择书库…", + "noEligibleLibraries": "没有启用文件重命名的库。请在书库设置中启用它。", + "refresh": "刷新", + "previewFailed": "加载预览失败", + "executionFailed": "批量重命名失败", + "openBookDetails": "打开书的详细信息", + "filter": { + "all": "所有的" + }, + "status": { + "willRename": "将重命名为", + "unchanged": "未更改", + "collision": "碰撞模式", + "noPattern": "没有图案", + "error": "错误" + }, + "empty": { + "title": "选择要开始的库", + "description": "选择上面的库来预览更改,按状态筛选,并应用批量重命名运行。", + "chooseLibrary": "选择书库" + } + }, "bookDuplicates": { "scanSettings": "扫描设置", "title": "复制书", @@ -7049,22 +7073,6 @@ "title": "合并实体", "description": "选择要保留的实体。其他实体将被合并并删除。" } - }, - "bulkRename": { - "library": "书库", - "selectLibraryPlaceholder": "请选择书库…", - "noEligibleLibraries": "没有启用文件重命名的库。请在书库设置中启用它。", - "refresh": "刷新", - "previewFailed": "加载预览失败", - "executionFailed": "批量重命名失败", - "openBookDetails": "打开书的详细信息", - "filter": { - "all": "所有的" - }, - "status": { - "unchanged": "未更改", - "error": "错误" - } } }, "views": {