diff --git a/API/I18N/de.json b/API/I18N/de.json index 37b9a3ba6..e825c30f2 100644 --- a/API/I18N/de.json +++ b/API/I18N/de.json @@ -80,5 +80,81 @@ "reading-list-permission": "Sie haben keine Berechtigung für diese Leseliste oder die Liste existiert nicht", "delete-library-while-scan": "Sie können eine Bibliothek nicht löschen, während ein Scanvorgang läuft. Bitte warten Sie, bis der Scanvorgang abgeschlossen ist oder starten Sie Kavita neu und versuchen Sie es dann zu löschen", "generic-library-update": "Es gab ein schwerwiegendes Problem bei der Aktualisierung der Bibliothek.", - "generic-read-progress": "Es gab ein Problem beim Erfassen des Fortschritts" + "generic-read-progress": "Es gab ein Problem beim Erfassen des Fortschritts", + "reading-list-updated": "Aktualisiert", + "reading-list-item-delete": "Element(e) konnte(n) nicht gelöscht werden", + "reading-list-deleted": "Leseliste wurde gelöscht", + "generic-reading-list-delete": "Es gab ein Problem beim Löschen der Leseliste", + "generic-reading-list-create": "Es gab ein Problem bei der Erstellung der Leseliste", + "generic-reading-list-update": "Es gab ein Problem bei der Aktualisierung der Leseliste", + "reading-list-doesnt-exist": "Die Leseliste existiert nicht", + "series-restricted": "Der Benutzer hat keinen Zugriff auf diese Serie", + "generic-series-update": "Beim Aktualisieren der Serie ist ein Fehler aufgetreten", + "series-updated": "Erfolgreich aktualisiert", + "update-metadata-fail": "Metadaten konnten nicht aktualisiert werden", + "job-already-running": "Aufgabe läuft bereits", + "generic-cover-series-save": "Das Coverbild konnte nicht für die Serie gespeichert werden", + "generic-cover-library-save": "Das Coverbild konnte nicht für die Bibliothek gespeichert werden", + "no-series-collection": "Es konnten keine Serien zur Sammlung hinzugefügt werden", + "generic-user-pref": "Es gab ein Problem beim Speichern von Präferenzen", + "browse-recently-added": "Zuletzt hinzugefügtes ansehen", + "search-description": "Suche nach Serien, Sammlungen oder Leselisten", + "not-authenticated": "Benutzer ist nicht authentifiziert", + "scrobble-bad-payload": "Schlechte Daten vom Scrobble Anbieter", + "theme-doesnt-exist": "Designdatei fehlt oder ist ungültig", + "epub-malformed": "Die Datei ist fehlerhaft formatiert! Kann nicht gelesen werden.", + "collection-tag-duplicate": "Eine Sammlung mit diesem Namen existiert bereits", + "send-to-permission": "Nicht-EPUB oder -PDF können nicht an Geräte gesendet werden, da sie von Kindle nicht unterstützt werden", + "progress-must-exist": "Der Fortschritt muss beim Benutzer vorhanden sein", + "device-duplicate": "Ein Gerät mit diesem Namen existiert bereits", + "device-not-created": "Dieses Gerät existiert noch nicht. Bitte zuerst erstellen", + "reading-list-name-exists": "Eine Leseliste mit diesem Namen existiert bereits", + "user-no-access-library-from-series": "Der Benutzer hat keinen Zugang zu der Bibliothek, der zu dieser Serie gehört", + "series-restricted-age-restriction": "Benutzer darf diese Serie aufgrund von Altersbeschränkungen nicht sehen", + "book-num": "Buch {0}", + "issue-num": "Fehler {0}{1}", + "chapter-num": "Kapitel {0}", + "reading-list-position": "Position konnte nicht aktualisiert werden", + "libraries-restricted": "Benutzer hat keinen Zugriff auf jegliche Bibliothek", + "no-series": "Es konnte keine Serie zur Bibliothek hinzugefügt werden", + "generic-scrobble-hold": "Beim Pausieren der Funktion ist ein Fehler aufgetreten", + "generic-series-delete": "Es gab ein Fehler beim Löschen der Serie", + "age-restriction-not-applicable": "Keine Einschränkung", + "generic-relationship": "Es gab ein Problem bei der Aktualisierung von Relationen", + "encode-as-warning": "Sie können nicht in PNG konvertieren. Für Covers verwenden Sie Covers aktualisieren. Lesezeichen und Favicons können nicht zurückkodiert werden.", + "ip-address-invalid": "IP-Adresse '{0}' ist ungültig", + "bookmark-dir-permissions": "Das Lesezeichenverzeichnis hat nicht die richtigen Rechte für die Verwendung durch Kavita", + "total-backups": "Die Gesamtzahl der Backups muss zwischen 1 und 30 liegen", + "total-logs": "Die Gesamtzahl der Protokolle muss zwischen 1 und 30 liegen", + "stats-permission-denied": "Sie sind nicht berechtigt, die Statistiken eines anderen Benutzers einzusehen", + "url-not-valid": "Url gibt kein gültiges Bild zurück oder erfordert Autorisierung", + "url-required": "Sie müssen eine Url angeben, um zu verwenden", + "generic-cover-collection-save": "Das Coverbild konnte nicht für die Sammlung gespeichert werden", + "generic-cover-reading-list-save": "Das Coverbild konnte nicht für die Leseliste gespeichert werden", + "generic-cover-chapter-save": "Das Coverbild konnte nicht für das Kapitel gespeichert werden", + "access-denied": "Sie haben keinen Zugriff", + "reset-chapter-lock": "Die Cover Sperre konnte für das Kapitel nicht zurückgesetzt werden", + "generic-user-delete": "Der Benutzer konnte nicht gelöscht werden", + "opds-disabled": "OPDS ist auf diesem Server nicht aktiviert", + "recently-added": "Zuletzt hinzugefügt", + "reading-lists": "Leselisten", + "libraries": "Alle Bibliotheken", + "collections": "Alle Sammlungen", + "browse-reading-lists": "Leselisten durchsuchen", + "browse-libraries": "Bibliotheken durchsuchen", + "browse-collections": "Sammlungen durchsuchen", + "search": "Suche", + "reading-list-restricted": "Die Leseliste existiert nicht oder Sie haben keinen Zugriff darauf", + "query-required": "Sie müssen einen Abfrageparameter angeben", + "favicon-doesnt-exist": "Favicon existiert nicht", + "unable-to-register-k+": "Die Lizenz kann aufgrund eines Fehlers nicht registriert werden. Wenden Sie sich an den Kavita+ Support", + "anilist-cred-expired": "AniList Zugangsdaten sind abgelaufen oder nicht vorhanden", + "bad-copy-files-for-download": "Dateien konnten nicht in das Temporärverzeichnis des Archivdownloads kopiert werden.", + "generic-create-temp-archive": "Es gab ein Fehler bei der Erstellung eines temporären Archivs", + "epub-html-missing": "Die entsprechende HTML-Datei für diese Seite konnte nicht gefunden werden", + "collection-tag-title-required": "Titel der Sammlung darf nicht leer sein", + "reading-list-title-required": "Leselisten Titel darf nicht leer sein", + "volume-num": "Band {0}", + "on-deck": "On Deck", + "browse-on-deck": "On Deck durchsuchen" } diff --git a/API/I18N/es.json b/API/I18N/es.json index 0967ef424..72e8fef93 100644 --- a/API/I18N/es.json +++ b/API/I18N/es.json @@ -1 +1,5 @@ -{} +{ + "bad-credentials": "Las credenciales son incorrectas", + "confirm-email": "Debes confirmar el correo electrónico primero", + "disabled-account": "La cuenta está deshabilitada. Contacta con un administrador." +} diff --git a/API/I18N/hi.json b/API/I18N/hi.json new file mode 100644 index 000000000..5fb9edd0a --- /dev/null +++ b/API/I18N/hi.json @@ -0,0 +1,160 @@ +{ + "generic-device-create": "डिवाइस बनाते समय एक त्रुटि हुई", + "validate-email": "हम आपके ईमेल की पुष्टि नहीं कर पा रहे हैं: {0}", + "confirm-token-gen": "पुष्टिकरण टोकन उत्पन्न करने में एक समस्याआ रही है", + "denied": "अनुमति नहीं है", + "permission-denied": "आपको इस ऑपरेशन की अनुमति नहीं है", + "password-required": "अपना खाता बदलने के लिए आपको अपना मौजूदा पासवर्ड दर्ज करना होगा,जब तक आप व्यवस्थापक न हों", + "invalid-password": "अवैध पासवर्ड", + "invalid-payload": "अमान्य पेलोड", + "age-restriction-update": "आयु प्रतिबंध को अद्यतन करने में त्रुटि आ रही है", + "generic-user-update": "उपयोगकर्ता को अपडेट करते समय एक एक्सेप्शन आ रहा है", + "user-already-invited": "उपयोगकर्ता को इस ईमेल के अंतर्गत पहले ही आमंत्रित किया जा चुका है और उसने अभी तक आमंत्रण स्वीकार नहीं किया है।", + "invalid-email-confirmation": "अवैध ईमेल पुष्टिकरण", + "password-updated": "पासवर्ड अपडेट किया गया", + "not-accessible": "आपका सर्वर बाह्य रूप से पहुंच योग्य नहीं है", + "email-sent": "ईमेल भेजा", + "generic-invite-email": "आमंत्रण ईमेल पुनः भेजने में एक समस्या है", + "file-missing": "पुस्तक में फ़ाइल नहीं मिली", + "generic-error": "कुछ गलत हो गया, फिर से कोशिश करें", + "device-doesnt-exist": "डिवाइस मौजूद नहीं है", + "generic-device-delete": "डिवाइस को हटाते समय एक त्रुटि हुई", + "send-to-device-status": "अपने डिवाइस पर फ़ाइलों को स्थानांतरित करना", + "volume-doesnt-exist": "वोलूम(Volume) मौजूद नहीं है", + "bookmark-doesnt-exist": "बुकमार्क मौजूद नहीं है", + "invalid-filename": "अमान्य फ़ाइल नाम", + "library-name-exists": "पुस्तकालय का नाम पहले से ही मौजूद है। कृपया सर्वर पर एक अद्वितीय नाम चुनें।।", + "no-library-access": "उपयोगकर्ता के पास इस पुस्तकालय तक पहुंच नहीं है", + "user-doesnt-exist": "उपयोगकर्ता मौजूद नहीं है", + "generic-library-update": "लाइब्रेरी(Library) को अपडेट करने में एक गंभीर समस्या है।", + "pdf-doesnt-exist": "जब यह होना चाहिए तो पीडीएफ मौजूद नहीं है", + "invalid-access": "अवैध पहुँच", + "perform-scan": "कृपया इस श्रृंखला(Series) या पुस्तकालय(Library) पर एक स्कैन करें और फिर से कोशिश करें", + "generic-clear-bookmarks": "बुकमार्क साफ़ नहीं किए जा सके", + "bookmark-permission": "आपको बुकमार्क/अनबुकमार्क करने की अनुमति नहीं है", + "cache-file-find": "कैश्ड छवि(Image) नहीं मिल सका। पुनः लोड करें और फिर से प्रयास करें।।", + "reading-list-permission": "इस सूची में आपको अनुमति नहीं है या सूची मौजूद नहीं है", + "reading-list-position": "स्थिति अपडेट नहीं की जा सका", + "reading-list-updated": "अपडेटेड", + "reading-list-deleted": "पठन सूची(Reading List) को हटा दिया गया", + "generic-reading-list-update": "पठन सूची(Reading List) को अपडेट करने में एक समस्या है", + "reading-list-doesnt-exist": "पठन सूची(Reading List) मौजूद नहीं है", + "no-series": "पुस्तकालय के लिए श्रृंखला(Series) नहीं मिल सका", + "no-series-collection": "संग्रह(Collection) के लिए श्रृंखला(Series) नहीं मिल सका", + "generic-scrobble-hold": "होल्ड जोड़ते समय एक त्रुटि उत्पन्न हुई", + "generic-series-update": "श्रृंखला(Series) को अपडेट करने में त्रुटि हुई", + "update-metadata-fail": "मेटाडाटा अद्यतन नहीं कर सका", + "total-backups": "कुल बैकअप 1 और 30 के बीच होना चाहिए", + "total-logs": "कुल लॉग 1 और 30 के बीच होना चाहिए", + "url-not-valid": "Url एक वैध छवि वापस नहीं करता है या प्राधिकरण की आवश्यकता है", + "url-required": "आपको उपयोग करने के लिए एक URL पास करना होगा", + "generic-cover-chapter-save": "कवर छवि को अध्याय में बचाने में असमर्थ", + "generic-cover-library-save": "पुस्तकालय(Library) में कवर छवि को बचाने में असमर्थ", + "access-denied": "आपके पास पहुंच नहीं है", + "browse-recently-added": "हाल ही में जोड़ा गया ब्राउज़ करें", + "browse-libraries": "पुस्तकालयों द्वारा ब्राउज़ करें", + "query-required": "आपको एक क्वेरी पैरामीटर पास करना होगा", + "search": "खोज", + "scrobble-bad-payload": "Scrobble प्रदाता से बुरा पेलोड", + "epub-malformed": "फ़ाइल विकृत है! पढ़ा नहीं जा सकता हैं।।", + "epub-html-missing": "उस पृष्ठ(Page) के लिए उपयुक्त HTML नहीं मिल सका", + "reading-list-title-required": "पठन सूची शीर्षक खाली नहीं हो सकता", + "device-duplicate": "इस नाम के साथ पहले से मौजूद एक डिवाइस", + "progress-must-exist": "उपयोगकर्ता पर प्रगति होना चाहिए", + "confirm-email": "आपको पहले अपने ईमेल की पुष्टि करनी होगी", + "reading-list-name-exists": "इस नाम की पठन सूची पहले से मौजूद है", + "series-restricted-age-restriction": "उपयोगकर्ता को आयु प्रतिबंध के कारण इस श्रृंखला को देखने की अनुमति नहीं है", + "volume-num": "वॉल्यूम {0}", + "book-num": "बुक {0}", + "issue-num": "अंक(Issue) {0}{1}", + "bad-credentials": "आपकी क्रेडेंशियल सही नहीं हैं", + "locked-out": "आपको कई प्राधिकरण प्रयासों के कारण बंद कर दिया गया है। कृपया 10 मिनट प्रतीक्षा करें।।", + "register-user": "उपयोगकर्ता पंजीकरण करते समय कुछ गलत हो गया", + "disabled-account": "आपका खाता अक्षम है। सर्वर व्यवस्थापक से संपर्क करें।।", + "invalid-token": "अमान्य टोकन", + "unable-to-reset-key": "कुछ गलत हो गया, कुंजी को रीसेट करने में असमर्थ", + "nothing-to-do": "कुछ नहीं करना", + "share-multiple-emails": "आप एकाधिक खातों में ईमेल साझा नहीं कर सकते", + "generate-token": "पुष्टिकरण ईमेल टोकन उत्पन्न करने में एक समस्याआ रही है। लॉग देखें", + "no-user": "उपयोगकर्ता मौजूद नहीं है", + "username-taken": "उपयोगकर्ता नाम पहले से ही लिया गया है", + "user-already-confirmed": "उपयोगकर्ता पहले से ही पुष्टि की है", + "manual-setup-fail": "मैनुअल सेटअप पूरा करने में असमर्थ है। कृपया निमंत्रण रद्द करें और फिर से बनाएँ", + "user-already-registered": "उपयोगकर्ता पहले से ही {0} के रूप में पंजीकृत है", + "generic-invite-user": "एक्सेप्शन आ रहा है उपयोगकर्ता को आमंत्रित करने का एक समस्या आ रहा है। कृपया लॉग की जाँच करें।।", + "generic-user-email-update": "उपयोगकर्ता के लिए ईमेल अद्यतन करने में असमर्थ। लॉग की जाँच करें।।", + "generic-password-update": "नए पासवर्ड की पुष्टि करते समय एक अप्रत्याशित त्रुटि आ रहा है", + "forgot-password-generic": "यदि यह हमारे डेटाबेस में मौजूद है तो ईमेल को भेजा जाएगा", + "user-migration-needed": "इस उपयोगकर्ता को माइग्रेट करने की जरूरत है। उन्हें लॉग आउट करें और माइग्रेशन प्रवाह को ट्रिगर करने के लिए लॉगिन करें", + "chapter-doesnt-exist": "अध्याय मौजूद नहीं है", + "series-doesnt-exist": "सीरीज(Series) मौजूद नहीं है", + "generic-device-update": "डिवाइस को अपडेट करते समय एक त्रुटि हुई", + "not-accessible-password": "आपका सर्वर पहुंच योग्य नहीं है. आपका पासवर्ड रीसेट करने का लिंक लॉग में है", + "admin-already-exists": "व्यवस्थापक पहले से ही मौजूद है", + "invalid-username": "अमान्य उपयोगकर्ता नाम", + "critical-email-migration": "ईमेल माइग्रेशन के दौरान एक समस्या थी. समर्थन से संपर्क करें", + "greater-0": "{0} 0 से अधिक होना चाहिए", + "send-to-kavita-email": "सेंड टु डिवाइस कविता की ईमेल सेवा के साथ इस्तेमाल नहीं किया जा सकता है। कृपया अपना खुद का ईमेल विन्यास करें।", + "generic-send-to": "डिवाइस पर फ़ाइल भेजने में त्रुटि हुई", + "collection-updated": "कलेक्शन सफलतापूर्वक अपडेट किया गया", + "collection-doesnt-exist": "कलेक्शन मौजूद नहीं है", + "bookmarks-empty": "बुकमार्क खाली नहीं हो सकता", + "no-cover-image": "कोई कवर नहीं", + "must-be-defined": "{0} को परिभाषित किया जाना चाहिए", + "generic-favicon": "डोमेन के लिए फ़ेविकॉन लाने में एक समस्या है", + "file-doesnt-exist": "फ़ाइल मौजूद नहीं है", + "generic-library": "एक महत्वपूर्ण समस्या है। फिर से प्रयास करें।।", + "library-doesnt-exist": "पुस्तकालय(Library) मौजूद नहीं है", + "invalid-path": "अवैध पथ", + "no-image-for-page": "पृष्ठ {0} के लिए ऐसी कोई छवि नहीं। फिर से कैश की अनुमति देने के लिए ताज़ा प्रयास करें।।", + "delete-library-while-scan": "आप पुस्तकालय को नष्ट नहीं कर सकते जबकि स्कैन प्रगति पर है।", + "duplicate-bookmark": "डुप्लिकेट बुकमार्क प्रविष्टि पहले से मौजूद है", + "reading-list-item-delete": "आइटम को नष्ट नहीं कर सकता", + "generic-read-progress": "प्रगति को सहेजने में एक समस्या है", + "bookmark-save": "बुकमार्क नहीं बचा सकता", + "valid-number": "मान्य पृष्ठ(Page) संख्या होना चाहिए", + "libraries-restricted": "उपयोगकर्ता को किसी भी पुस्तकालय(Library) तक पहुंच अधिकार नहीं है", + "name-required": "नाम खाली नहीं हो सकता है", + "generic-reading-list-delete": "पठन सूची(Reading List) को हटाने में एक समस्या है", + "generic-series-delete": "श्रृंखला(Series) को हटाने का एक समस्या है", + "generic-reading-list-create": "पठन सूची(Reading List) को बनाने में एक समस्या है", + "series-restricted": "उपयोगकर्ता के पास इस श्रृंखला(Series) तक पहुंच नहीं है", + "series-updated": "सफलतापूर्वक अपडेटेड", + "job-already-running": "पहले से ही चल रहा है", + "ip-address-invalid": "आईपी एड्रेस '{0}' अमान्य है", + "age-restriction-not-applicable": "कोई प्रतिबंध नहीं", + "generic-relationship": "रिश्तों को अपडेट करने में एक समस्या हुई", + "generic-cover-series-save": "श्रृंखला(Series) के लिए कवर छवि(Cover Image) को बचाने में असमर्थ", + "encode-as-warning": "आप पीएनजी में परिवर्तित नहीं कर सकते। कवर के लिए, रिफ्रेश कवर का उपयोग करें। बुकमार्क और favicons को वापस कोडित नहीं किया जा सकता है।।", + "chapter-num": "अध्याय {0}", + "bookmark-dir-permissions": "Bookmark डायरेक्टरी के पास Kavita के लिए सही अनुमति नहीं है", + "stats-permission-denied": "आप किसी अन्य उपयोगकर्ता के आंकड़े देखने के लिए अधिकृत नहीं हैं", + "generic-cover-collection-save": "संग्रह(Collection) के लिए कवर छवि को बचाने में असमर्थ", + "browse-reading-lists": "पठन सूचियों द्वारा ब्राउज़ करें", + "generic-cover-reading-list-save": "पठन सूचि(Reading List) में कवर छवि(Cover Image) को बचाने में असमर्थ", + "on-deck": "डेक पर", + "reset-chapter-lock": "अध्याय के लिए कवर लॉक को रीसेट करने में असमर्थ", + "opds-disabled": "इस सर्वर पर OPDS सक्षम नहीं है", + "reading-lists": "पठन सूची", + "collections": "सभी संग्रह", + "browse-collections": "संग्रह द्वारा ब्राउज़ करें", + "theme-doesnt-exist": "थीम फ़ाइल लापता या अमान्य", + "bad-copy-files-for-download": "फ़ाइलों को अस्थायी निर्देशिका संग्रह डाउनलोड करने में असमर्थ।।", + "generic-user-delete": "उपयोगकर्ता को नष्ट नहीं कर सकता", + "generic-user-pref": "प्राथमिकताएँ सहेजने में एक समस्या है", + "browse-on-deck": "डेक पर ब्राउज़ करें", + "recently-added": "हाल ही में जोड़ा गया", + "reading-list-restricted": "पठन सूची मौजूद नहीं है या आपके पास एक्सेस नहीं है", + "search-description": "श्रृंखला, संग्रह, या पठन सूची के लिए खोज", + "favicon-doesnt-exist": "Favicon मौजूद नहीं है", + "anilist-cred-expired": "AniList Credentials समाप्त हो गया है या निर्धारित नहीं है", + "collection-tag-title-required": "संग्रह(Collection) शीर्षक खाली नहीं हो सकता", + "libraries": "सभी पुस्तकालय", + "not-authenticated": "उपयोगकर्ता प्रमाणित नहीं है", + "unable-to-register-k+": "त्रुटि के कारण लाइसेंस पंजीकृत करने में असमर्थ। Kavita+ समर्थन तक पहुंचें", + "generic-create-temp-archive": "वहाँ एक समस्या अस्थायी संग्रह बनाने में", + "collection-tag-duplicate": "इस नाम के साथ संग्रह पहले से मौजूद है", + "send-to-permission": "किंडल पर समर्थित नहीं होने के रूप में उपकरणों के लिए गैर-EPUB या PDF नहीं भेजा जा सकता", + "device-not-created": "यह डिवाइस अभी तक मौजूद नहीं है। कृपया पहले बनाएं", + "user-no-access-library-from-series": "उपयोगकर्ता के पास पुस्तकालय तक पहुंच नहीं है इस श्रृंखला के अंतर्गत आता है" +} diff --git a/API/I18N/it.json b/API/I18N/it.json index 18cec6798..399e908c6 100644 --- a/API/I18N/it.json +++ b/API/I18N/it.json @@ -8,7 +8,7 @@ "invalid-password": "Password non valida", "invalid-token": "Token non valido", "unable-to-reset-key": "Qualcosa è andato storto, impossibile reimpostare la chiave", - "invalid-payload": "Carico non valido", + "invalid-payload": "Payload non valido", "nothing-to-do": "Nulla da fare", "share-multiple-emails": "Non puoi condividere email su più account", "generate-token": "Si è verificato un problema durante la generazione di un token di email di conferma. Vedi i log", @@ -31,7 +31,7 @@ "invalid-username": "nome utente non valido", "critical-email-migration": "Si è verificato un problema durante la migrazione della posta elettronica. Contatta il supporto", "name-required": "Il nome non può essere vuoto", - "valid-number": "Il file non è stato trovato nel libro", + "valid-number": "Deve essere un numero di pagina valido", "reading-list-permission": "Non disponi delle autorizzazioni per questo elenco di lettura o l'elenco non esiste", "reading-list-position": "Impossibile aggiornare la posizione", "reading-list-updated": "Aggiornato", @@ -108,5 +108,53 @@ "invalid-filename": "Nome file non valido", "invalid-path": "Percorso non valido", "user-doesnt-exist": "L'utente non esiste", - "reading-list-name-exists": "Esiste già un elenco di letture con questo nome" + "reading-list-name-exists": "Esiste già un elenco di letture con questo nome", + "delete-library-while-scan": "Non è possibile eliminare una libreria mentre è in corso una scansione. Attendi il completamento della scansione o riavvia Kavita, quindi prova a eliminare", + "no-image-for-page": "Nessuna immagine simile per la pagina {0}. Prova ad aggiornare per consentire il re-cache.", + "browse-recently-added": "Sfoglia Aggiunti di recente", + "generic-cover-series-save": "Impossibile salvare l'immagine di copertina nella serie", + "reset-chapter-lock": "Impossibile reimpostare il blocco del coperchio per il capitolo", + "generic-cover-chapter-save": "Impossibile salvare l'immagine di copertina nel capitolo", + "recently-added": "Aggiunto recentemente", + "device-doesnt-exist": "Il dispositivo non esiste", + "generic-device-create": "Si è verificato un errore durante la creazione del dispositivo", + "generic-device-update": "Si è verificato un errore durante l'aggiornamento del dispositivo", + "generic-device-delete": "Si è verificato un errore durante l'eliminazione del dispositivo", + "greater-0": "{0} deve essere maggiore di 0", + "send-to-kavita-email": "Invia al dispositivo non può essere utilizzato con il servizio e-mail di Kavita. Si prega di configurare il proprio.", + "generic-send-to": "Si è verificato un errore durante l'invio dei file al dispositivo", + "generic-favicon": "Si è verificato un problema durante il recupero della favicon per il dominio", + "library-name-exists": "Il nome della libreria esiste già. Scegli un nome univoco per il server.", + "generic-library": "Si è verificato un problema critico. Per favore riprova.", + "no-library-access": "L'utente non ha accesso a questa libreria", + "generic-library-update": "Si è verificato un problema critico durante l'aggiornamento della libreria.", + "pdf-doesnt-exist": "PDF non esiste quando dovrebbe", + "invalid-access": "Accesso non valido", + "perform-scan": "Esegui una scansione su questa serie o libreria e riprova", + "generic-read-progress": "Si è verificato un problema durante il salvataggio dei progressi", + "generic-clear-bookmarks": "Impossibile cancellare i segnalibri", + "bookmark-permission": "Non sei autorizzato ad aggiungere/rimuovere i segnalibri", + "bookmark-save": "Impossibile salvare il segnalibro", + "cache-file-find": "Impossibile trovare l'immagine memorizzata nella cache. Ricarica e riprova.", + "total-backups": "I backup totali devono essere compresi tra 1 e 30", + "total-logs": "I log totali devono essere compresi tra 1 e 30", + "stats-permission-denied": "Non sei autorizzato a visualizzare le statistiche di un altro utente", + "url-not-valid": "L'URL non restituisce un'immagine valida o richiede l'autorizzazione", + "url-required": "Devi passare un URL da usare", + "generic-cover-collection-save": "Impossibile salvare l'immagine di copertina nella raccolta", + "generic-cover-reading-list-save": "Impossibile salvare l'immagine di copertina in Elenco di lettura", + "generic-cover-library-save": "Impossibile salvare l'immagine di copertina nella Libreria", + "access-denied": "Non hai accesso", + "generic-user-delete": "Impossibile eliminare l'utente", + "generic-user-pref": "Si è verificato un problema durante il salvataggio delle preferenze", + "opds-disabled": "OPDS non è abilitato su questo server", + "on-deck": "Sul Ponte", + "browse-on-deck": "Sfoglia Sul ponte", + "reading-lists": "Liste di lettura", + "browse-reading-lists": "Sfoglia Liste di lettura", + "libraries": "Tutte le Librerie", + "browse-libraries": "Sfoglia Librerie", + "collections": "Tutte le Collezioni", + "browse-collections": "Sfoglia per Collezioni", + "reading-list-restricted": "L'elenco di lettura non esiste o non hai accesso" } diff --git a/API/I18N/ja.json b/API/I18N/ja.json index 384986fcf..9a903c892 100644 --- a/API/I18N/ja.json +++ b/API/I18N/ja.json @@ -1,3 +1,4 @@ { - "chapter-num": "章 {0}" + "chapter-num": "章 {0}", + "invalid-token": "無効トークン" } diff --git a/API/I18N/und.json b/API/I18N/kn.json similarity index 100% rename from API/I18N/und.json rename to API/I18N/kn.json diff --git a/README.md b/README.md index ecacc940a..a57bfaafa 100644 --- a/README.md +++ b/README.md @@ -103,8 +103,12 @@ Thank you to [ JetBrains](http: ## Palace-Designs We would like to extend a big thank you to [](https://www.palace-designs.com/) who hosts our infrastructure pro-bono. -## Weblate -Thank you to [Weblate](https://hosted.weblate.org/engage/kavita/) who hosts our localization infrastructure pro-bono. If you want to help localize Kavita, please visit them. +## Localization +Thank you to [Weblate](https://hosted.weblate.org/engage/kavita/) who hosts our localization infrastructure pro-bono. If you want to see Kavita in your language, please help us localize. + + + Translation status + ## Huntr We would like to extend a big thank you to [Huntr](https://huntr.dev/repos/kareadita/kavita) who has worked with Kavita in reporting security vulnerabilities. If you are interested in diff --git a/UI/Web/package-lock.json b/UI/Web/package-lock.json index 8b8b16066..b8fe594d6 100644 --- a/UI/Web/package-lock.json +++ b/UI/Web/package-lock.json @@ -8,31 +8,31 @@ "name": "kavita-webui", "version": "0.4.2", "dependencies": { - "@angular/animations": "^16.1.6", - "@angular/cdk": "^16.1.5", - "@angular/common": "^16.1.6", - "@angular/compiler": "^16.1.6", - "@angular/core": "^16.1.6", - "@angular/forms": "^16.1.6", - "@angular/localize": "^16.1.6", - "@angular/platform-browser": "^16.1.6", - "@angular/platform-browser-dynamic": "^16.1.6", - "@angular/router": "^16.1.6", - "@fortawesome/fontawesome-free": "^6.4.0", + "@angular/animations": "^16.1.8", + "@angular/cdk": "^16.1.7", + "@angular/common": "^16.1.8", + "@angular/compiler": "^16.1.8", + "@angular/core": "^16.1.8", + "@angular/forms": "^16.1.8", + "@angular/localize": "^16.1.8", + "@angular/platform-browser": "^16.1.8", + "@angular/platform-browser-dynamic": "^16.1.8", + "@angular/router": "^16.1.8", + "@fortawesome/fontawesome-free": "^6.4.2", "@iharbeck/ngx-virtual-scroller": "^16.0.0", "@iplab/ngx-file-upload": "^16.0.1", "@microsoft/signalr": "^7.0.9", "@ng-bootstrap/ng-bootstrap": "^15.1.0", - "@ngneat/transloco": "^4.3.0", - "@ngneat/transloco-locale": "^4.1.0", - "@ngneat/transloco-persist-lang": "^4.0.0", - "@ngneat/transloco-persist-translations": "^4.0.0", - "@ngneat/transloco-preload-langs": "^4.0.1", + "@ngneat/transloco": "^5.0.6", + "@ngneat/transloco-locale": "^5.1.1", + "@ngneat/transloco-persist-lang": "^5.0.0", + "@ngneat/transloco-persist-translations": "^5.0.0", + "@ngneat/transloco-preload-langs": "^5.0.0", "@popperjs/core": "^2.11.7", "@swimlane/ngx-charts": "^20.1.2", "@tweenjs/tween.js": "^21.0.0", "@types/file-saver": "^2.0.5", - "bootstrap": "^5.2.3", + "bootstrap": "^5.3.1", "eventsource": "^2.0.2", "file-saver": "^2.0.5", "lazysizes": "^5.3.2", @@ -46,24 +46,24 @@ "rxjs": "^7.8.0", "screenfull": "^6.0.2", "swiper": "^8.4.6", - "tslib": "^2.3.0", + "tslib": "^2.6.1", "zone.js": "^0.13.0" }, "devDependencies": { - "@angular-devkit/build-angular": "^16.1.5", + "@angular-devkit/build-angular": "^16.1.8", "@angular-eslint/builder": "^16.1.0", "@angular-eslint/eslint-plugin": "^16.1.0", "@angular-eslint/eslint-plugin-template": "^16.1.0", "@angular-eslint/schematics": "^16.1.0", "@angular-eslint/template-parser": "^16.1.0", - "@angular/cli": "^16.1.5", - "@angular/compiler-cli": "^16.1.6", - "@ngneat/transloco-optimize": "^3.0.2", + "@angular/cli": "^16.1.8", + "@angular/compiler-cli": "^16.1.8", + "@ngneat/transloco-optimize": "^5.0.2", "@types/d3": "^7.4.0", - "@types/node": "^20.4.4", - "@typescript-eslint/eslint-plugin": "^6.1.0", - "@typescript-eslint/parser": "^6.1.0", - "eslint": "^8.45.0", + "@types/node": "^20.4.8", + "@typescript-eslint/eslint-plugin": "^6.2.1", + "@typescript-eslint/parser": "^6.2.1", + "eslint": "^8.46.0", "karma-coverage": "~2.2.0", "ts-node": "~10.9.1", "typescript": "^5.1.6", @@ -92,12 +92,12 @@ } }, "node_modules/@angular-devkit/architect": { - "version": "0.1601.5", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1601.5.tgz", - "integrity": "sha512-f6oOXR+0gXdMl2papEkTt28GJJBsYtuuoHSQYM09UltkXPkj4bc9QEOzRXKQ0hDjNYYj3UT00E3CalBO/5uGTA==", + "version": "0.1601.8", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1601.8.tgz", + "integrity": "sha512-kOXVGwsQnZvtz2UZNefcEy64Jiwq0eSoQUeozvDXOaYRJABLjPKI2YaarvKC9/Z1SGLuje0o/eRJO4T8aRk9rQ==", "dev": true, "dependencies": { - "@angular-devkit/core": "16.1.5", + "@angular-devkit/core": "16.1.8", "rxjs": "7.8.1" }, "engines": { @@ -107,15 +107,15 @@ } }, "node_modules/@angular-devkit/build-angular": { - "version": "16.1.5", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-16.1.5.tgz", - "integrity": "sha512-F78nvdDgVknqA9MekZ6xnmwKLH+qIQ5gBuP+/JnUiSZs1u1i8qS/GGNUL+T/Zsxk1HMRbG+erQ7N6nn1sBKMMw==", + "version": "16.1.8", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-16.1.8.tgz", + "integrity": "sha512-iyElPBQdcJq2plw5YqSz4mzNUfSRXI3ISFTEwPtimzPOorsj/OxB3Z6kJ8fDUsBAJ5OKR7xL7VnQJJ3S+05RhQ==", "dev": true, "dependencies": { "@ampproject/remapping": "2.2.1", - "@angular-devkit/architect": "0.1601.5", - "@angular-devkit/build-webpack": "0.1601.5", - "@angular-devkit/core": "16.1.5", + "@angular-devkit/architect": "0.1601.8", + "@angular-devkit/build-webpack": "0.1601.8", + "@angular-devkit/core": "16.1.8", "@babel/core": "7.22.5", "@babel/generator": "7.22.7", "@babel/helper-annotate-as-pure": "7.22.5", @@ -127,7 +127,7 @@ "@babel/runtime": "7.22.5", "@babel/template": "7.22.5", "@discoveryjs/json-ext": "0.5.7", - "@ngtools/webpack": "16.1.5", + "@ngtools/webpack": "16.1.8", "@vitejs/plugin-basic-ssl": "1.0.1", "ansi-colors": "4.1.3", "autoprefixer": "10.4.14", @@ -137,7 +137,7 @@ "cacache": "17.1.3", "chokidar": "3.5.3", "copy-webpack-plugin": "11.0.0", - "critters": "0.0.19", + "critters": "0.0.20", "css-loader": "6.8.1", "esbuild-wasm": "0.17.19", "fast-glob": "3.2.12", @@ -235,12 +235,12 @@ "dev": true }, "node_modules/@angular-devkit/build-webpack": { - "version": "0.1601.5", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1601.5.tgz", - "integrity": "sha512-Mc61mrSFFpplBMl11r8ryUrKRDf9Clugnpe8770JcoDe99xEsBFwUUMRS9xNqmVroCgdLMxFijgLSI1ANkUvMg==", + "version": "0.1601.8", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1601.8.tgz", + "integrity": "sha512-LUMA3xNnN4IY/FPaqyF6rzba+QVxl3vA+v0l71CBIKNU+Qee6D9xe8KG0Bn7relqDhWZOSHY0nhhO2mBoz4iQg==", "dev": true, "dependencies": { - "@angular-devkit/architect": "0.1601.5", + "@angular-devkit/architect": "0.1601.8", "rxjs": "7.8.1" }, "engines": { @@ -254,9 +254,9 @@ } }, "node_modules/@angular-devkit/core": { - "version": "16.1.5", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-16.1.5.tgz", - "integrity": "sha512-0Mui2Nuib7kzOLWkz18v1OdxK6wd0SWdSFsAXavrRv03495vv+JUqVq0z0vGMtcbURkjOxIwdj3coj+Y0szkPQ==", + "version": "16.1.8", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-16.1.8.tgz", + "integrity": "sha512-dSRD/+bGanArIXkj+kaU1kDFleZeQMzmBiOXX+pK0Ah9/0Yn1VmY3RZh1zcX9vgIQXV+t7UPrTpOjaERMUtVGw==", "dev": true, "dependencies": { "ajv": "8.12.0", @@ -280,12 +280,12 @@ } }, "node_modules/@angular-devkit/schematics": { - "version": "16.1.5", - "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-16.1.5.tgz", - "integrity": "sha512-s6D/I0pfJJ7+XaAYyXh6IsS3Tya4WKeBuVcWWE7IK6TMEd5a1yDQ5O9RO2/G8UcxBwlKZmeuFbJkclpF6q3hYA==", + "version": "16.1.8", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-16.1.8.tgz", + "integrity": "sha512-6LyzMdFJs337RTxxkI2U1Ndw0CW5mMX/aXWl8d7cW2odiSrAg8IdlMqpc+AM8+CPfsB0FtS1aWkEZqJLT0jHOg==", "dev": true, "dependencies": { - "@angular-devkit/core": "16.1.5", + "@angular-devkit/core": "16.1.8", "jsonc-parser": "3.2.0", "magic-string": "0.30.0", "ora": "5.4.1", @@ -396,9 +396,9 @@ } }, "node_modules/@angular/animations": { - "version": "16.1.6", - "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-16.1.6.tgz", - "integrity": "sha512-LsU3/qXom/tLB76Exvjz+7SkifwJ9QG/+gSjWj+DTVlj1+dO7awb8iWQi+YmTmqN7ijTJi9ye6is3iuJSYuCLw==", + "version": "16.1.8", + "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-16.1.8.tgz", + "integrity": "sha512-aIAf8EAZomgXMF6AP0wTPAc04Cvw+nL9nkEVwQNVxMByZpcbnnqHWHokLD8es8DzlwDT+EIZS4wZMBA4XUmPyA==", "dependencies": { "tslib": "^2.3.0" }, @@ -406,13 +406,13 @@ "node": "^16.14.0 || >=18.10.0" }, "peerDependencies": { - "@angular/core": "16.1.6" + "@angular/core": "16.1.8" } }, "node_modules/@angular/cdk": { - "version": "16.1.5", - "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-16.1.5.tgz", - "integrity": "sha512-8wjYhLwW9bWicBYSdDXuN71SBP7NbJmXs+XiWiRkaFUkVDeU9z8Qkitogl+qqsSXvsOmi+12MowrbJ3tPizaLw==", + "version": "16.1.7", + "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-16.1.7.tgz", + "integrity": "sha512-KLiqzbilkGBtQcaNdqjN16XyNdQxEkN4Oqbg6coahWqwvEVEdhNwLrwOJcCHMH2vvMzCd4XHaOnAxQjVy5pkjQ==", "dependencies": { "tslib": "^2.3.0" }, @@ -426,15 +426,15 @@ } }, "node_modules/@angular/cli": { - "version": "16.1.5", - "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-16.1.5.tgz", - "integrity": "sha512-um9hWEU3HUMRnQnaDfw0QSNdDLbdLA9tSzp81kz3Rx2VFsSssCABq6xQ+7w09xCUx0jg88r1lBPc2pwV7Pu7FQ==", + "version": "16.1.8", + "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-16.1.8.tgz", + "integrity": "sha512-amOIHMq8EvixhnI+do5Bcy6IZSFAJx0njhhLM4ltDuNUczH8VH0hNegZKxhb8K87AMO8jITFM+NLrzccyghsDQ==", "dev": true, "dependencies": { - "@angular-devkit/architect": "0.1601.5", - "@angular-devkit/core": "16.1.5", - "@angular-devkit/schematics": "16.1.5", - "@schematics/angular": "16.1.5", + "@angular-devkit/architect": "0.1601.8", + "@angular-devkit/core": "16.1.8", + "@angular-devkit/schematics": "16.1.8", + "@schematics/angular": "16.1.8", "@yarnpkg/lockfile": "1.1.0", "ansi-colors": "4.1.3", "ini": "4.1.1", @@ -460,9 +460,9 @@ } }, "node_modules/@angular/common": { - "version": "16.1.6", - "resolved": "https://registry.npmjs.org/@angular/common/-/common-16.1.6.tgz", - "integrity": "sha512-30Y8DGs+oosA+BcDZd1SuZ4HDT+DVZ6lVT4L+mBUH1BSkNna08FrbmrGQxO82CcxU6ZK0q1YLVkkb5cGx8y9ew==", + "version": "16.1.8", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-16.1.8.tgz", + "integrity": "sha512-Zm+Ysxdf74VwG3mbAqs2v1QFUR+h9RyJBXF5VFABEpgFw7NUOBKrayjJmKjgZ0TBAmL2+nXehJgcPph3zNp3sg==", "dependencies": { "tslib": "^2.3.0" }, @@ -470,14 +470,14 @@ "node": "^16.14.0 || >=18.10.0" }, "peerDependencies": { - "@angular/core": "16.1.6", + "@angular/core": "16.1.8", "rxjs": "^6.5.3 || ^7.4.0" } }, "node_modules/@angular/compiler": { - "version": "16.1.6", - "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-16.1.6.tgz", - "integrity": "sha512-BVDfKZLMb7mmLwdek+ZyzI43Zv0WNNNqnYpMeOI6egmkhtjNCxpQAy2YFKgNPse3bBGP8tKutwAtBB+Lqu/Kcw==", + "version": "16.1.8", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-16.1.8.tgz", + "integrity": "sha512-jF2zk3LjrcI/xpjJG6yoLiL2t2l5227i8SjhRUawAL1sy0xtb/PiSLjCNhuSgyixbB/8az/YezZe11MSg48FDg==", "dependencies": { "tslib": "^2.3.0" }, @@ -485,7 +485,7 @@ "node": "^16.14.0 || >=18.10.0" }, "peerDependencies": { - "@angular/core": "16.1.6" + "@angular/core": "16.1.8" }, "peerDependenciesMeta": { "@angular/core": { @@ -494,9 +494,9 @@ } }, "node_modules/@angular/compiler-cli": { - "version": "16.1.6", - "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-16.1.6.tgz", - "integrity": "sha512-unWmH2CcuCkVuEr1fQuzlJtSGzRirsyg8cGQmRh16orx6N8oa/fCvxYRSOed/5aE9YiRpIFZ2TQWT2myY10/6Q==", + "version": "16.1.8", + "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-16.1.8.tgz", + "integrity": "sha512-Whk3RBnEYwN0c6Mo7hU6JDpHSyKONmIQEN8ViHJXwmyHK8w+/Z27iBw10QiyWUMtYb4tIM1xSLhRFAwH/3WnPQ==", "dev": true, "dependencies": { "@babel/core": "7.22.5", @@ -517,14 +517,14 @@ "node": "^16.14.0 || >=18.10.0" }, "peerDependencies": { - "@angular/compiler": "16.1.6", + "@angular/compiler": "16.1.8", "typescript": ">=4.9.3 <5.2" } }, "node_modules/@angular/core": { - "version": "16.1.6", - "resolved": "https://registry.npmjs.org/@angular/core/-/core-16.1.6.tgz", - "integrity": "sha512-tUXvVLc+Vbl8Se7hajwyUTNmKD9uPq+SZH6x8sRM2n5azzjBZltOoJfzxK5JKAkiFf/KkQhteHkMBfoDLZ2tmw==", + "version": "16.1.8", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-16.1.8.tgz", + "integrity": "sha512-XtOpY9HA85hPGrPwe1rgE8NJ3bFWbuJFx4SUlzB66k9B5jo8bD2Dxl/0id55RFS5gmvCe/Qhh0zoGyMpkWjMHA==", "dependencies": { "tslib": "^2.3.0" }, @@ -537,9 +537,9 @@ } }, "node_modules/@angular/forms": { - "version": "16.1.6", - "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-16.1.6.tgz", - "integrity": "sha512-6MMQx3qCFrXyX4sSNvQRLRm6smGZshMjuWSCSkyEvvTYpZSA3F7h8ba762PDKYE3vMAON2OczCr8y9MyjBEruA==", + "version": "16.1.8", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-16.1.8.tgz", + "integrity": "sha512-V36q42ExvL93T7oYvRf4Z2z2V/kOm0wgaFgkNSiBHgIpuwvrAZ9nRZBui5Fqdnep3xKYd980vAaTtACA1blv3Q==", "dependencies": { "tslib": "^2.3.0" }, @@ -547,16 +547,16 @@ "node": "^16.14.0 || >=18.10.0" }, "peerDependencies": { - "@angular/common": "16.1.6", - "@angular/core": "16.1.6", - "@angular/platform-browser": "16.1.6", + "@angular/common": "16.1.8", + "@angular/core": "16.1.8", + "@angular/platform-browser": "16.1.8", "rxjs": "^6.5.3 || ^7.4.0" } }, "node_modules/@angular/localize": { - "version": "16.1.6", - "resolved": "https://registry.npmjs.org/@angular/localize/-/localize-16.1.6.tgz", - "integrity": "sha512-DNcY2N6OXNe/SFqupEggGFSnKgKJSHGMN+1qIpadG7cLJitAJS1Z6yh57+sqOJQT8LPP2qm53ab+NF0tib45tg==", + "version": "16.1.8", + "resolved": "https://registry.npmjs.org/@angular/localize/-/localize-16.1.8.tgz", + "integrity": "sha512-xnO6YSTo6DVAoOVSSRIdyTSdq3fqPyMuicEKX/hIExAlEWy/CjB3gWMxtcuKLko3xrMwBBaf14wKMB+pqcMHMw==", "dependencies": { "@babel/core": "7.22.5", "fast-glob": "3.3.0", @@ -571,8 +571,8 @@ "node": "^16.14.0 || >=18.10.0" }, "peerDependencies": { - "@angular/compiler": "16.1.6", - "@angular/compiler-cli": "16.1.6" + "@angular/compiler": "16.1.8", + "@angular/compiler-cli": "16.1.8" } }, "node_modules/@angular/localize/node_modules/fast-glob": { @@ -591,9 +591,9 @@ } }, "node_modules/@angular/platform-browser": { - "version": "16.1.6", - "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-16.1.6.tgz", - "integrity": "sha512-qHwQpqhcWFAwroWwe7iiSsJrs38lrW82vHEm/sX/fcbUuLtqEDaNMf90KqzeSPIkFEkX5wwUZxdRwEh2bepf6g==", + "version": "16.1.8", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-16.1.8.tgz", + "integrity": "sha512-wfUCVU7DLMHy5Rw7LY8KSTuLk0ff2bWElT6WSAKXXFEPjQiWuXbbIe+gglJX5HFQQHoyVwNbsSDIIgEp535Kvw==", "dependencies": { "tslib": "^2.3.0" }, @@ -601,9 +601,9 @@ "node": "^16.14.0 || >=18.10.0" }, "peerDependencies": { - "@angular/animations": "16.1.6", - "@angular/common": "16.1.6", - "@angular/core": "16.1.6" + "@angular/animations": "16.1.8", + "@angular/common": "16.1.8", + "@angular/core": "16.1.8" }, "peerDependenciesMeta": { "@angular/animations": { @@ -612,9 +612,9 @@ } }, "node_modules/@angular/platform-browser-dynamic": { - "version": "16.1.6", - "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-16.1.6.tgz", - "integrity": "sha512-NZ3bcXgWq9k0pJE7EvZsatvY8++5NzAtxCdV9IM+fqgzBzkSR4le0Iud4hdBSNQF1DOwwB8KdU7Xpe9q4YsdqA==", + "version": "16.1.8", + "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-16.1.8.tgz", + "integrity": "sha512-mhQH78Zn/oFe+U8DmVvPJ0/7neDlnKcgktQ7f1vFNibRLqkmHW/o1vZ0B7CAmO+yzGbB8mt+RBCFAfA7g3oRDg==", "dependencies": { "tslib": "^2.3.0" }, @@ -622,16 +622,16 @@ "node": "^16.14.0 || >=18.10.0" }, "peerDependencies": { - "@angular/common": "16.1.6", - "@angular/compiler": "16.1.6", - "@angular/core": "16.1.6", - "@angular/platform-browser": "16.1.6" + "@angular/common": "16.1.8", + "@angular/compiler": "16.1.8", + "@angular/core": "16.1.8", + "@angular/platform-browser": "16.1.8" } }, "node_modules/@angular/router": { - "version": "16.1.6", - "resolved": "https://registry.npmjs.org/@angular/router/-/router-16.1.6.tgz", - "integrity": "sha512-4+MniaDghKurV117URJZzCQBNCdMfiu6lRpTdcKWbHgGZqOQRG9N/gcHah5eLYVB0s6mfQ1OQ9HavNyjujF6Fg==", + "version": "16.1.8", + "resolved": "https://registry.npmjs.org/@angular/router/-/router-16.1.8.tgz", + "integrity": "sha512-p11Mz0qQbl26fcEEQ9LEUZhKrca9kqSwMWgxBRMWZl0AgtbWQadiVdjiQY0rvpohI7qSO8m3s7CFIQLKIOEvYQ==", "dependencies": { "tslib": "^2.3.0" }, @@ -639,9 +639,9 @@ "node": "^16.14.0 || >=18.10.0" }, "peerDependencies": { - "@angular/common": "16.1.6", - "@angular/core": "16.1.6", - "@angular/platform-browser": "16.1.6", + "@angular/common": "16.1.8", + "@angular/core": "16.1.8", + "@angular/platform-browser": "16.1.8", "rxjs": "^6.5.3 || ^7.4.0" } }, @@ -2788,18 +2788,18 @@ } }, "node_modules/@eslint-community/regexpp": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.5.1.tgz", - "integrity": "sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ==", + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.6.2.tgz", + "integrity": "sha512-pPTNuaAG3QMH+buKyBIGJs3g/S5y0caxw0ygM3YyE6yJFySwiGGSzA+mM3KJ8QQvzeLh3blwgSonkFjgQdxzMw==", "dev": true, "engines": { "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } }, "node_modules/@eslint/eslintrc": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.0.tgz", - "integrity": "sha512-Lj7DECXqIVCqnqjjHMPna4vn6GJcMgul/wuS0je9OZ9gsL0zzDpKPVtcG1HaDVc+9y+qgXneTeUMbCqXJNpH1A==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.1.tgz", + "integrity": "sha512-9t7ZA7NGGK8ckelF0PQCfcxIUzs1Md5rrO6U/c+FIQNanea5UZC0wqKXH4vHBccmu4ZJgZ2idtPeW7+Q2npOEA==", "dev": true, "dependencies": { "ajv": "^6.12.4", @@ -2887,18 +2887,18 @@ } }, "node_modules/@eslint/js": { - "version": "8.44.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.44.0.tgz", - "integrity": "sha512-Ag+9YM4ocKQx9AarydN0KY2j0ErMHNIocPDrVo8zAE44xLTjEtz81OdR68/cydGtk6m6jDb5Za3r2useMzYmSw==", + "version": "8.46.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.46.0.tgz", + "integrity": "sha512-a8TLtmPi8xzPkCbp/OGFUo5yhRkHM2Ko9kOWP4znJr0WAhWyThaw3PnwX4vOTWOAMsV2uRt32PPDcEz63esSaA==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, "node_modules/@fortawesome/fontawesome-free": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-free/-/fontawesome-free-6.4.0.tgz", - "integrity": "sha512-0NyytTlPJwB/BF5LtRV8rrABDbe3TdTXqNB3PdZ+UUUZAEIrdOJdmABqKjt4AXwIoJNaRVVZEXxpNrqvE1GAYQ==", + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-free/-/fontawesome-free-6.4.2.tgz", + "integrity": "sha512-m5cPn3e2+FDCOgi1mz0RexTUvvQibBebOUlUlW0+YrMjDTPkiJ6VTKukA1GRsvRw+12KyJndNjj0O4AgTxm2Pg==", "hasInstallScript": true, "engines": { "node": ">=6" @@ -2966,7 +2966,6 @@ "version": "8.0.2", "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", - "dev": true, "dependencies": { "string-width": "^5.1.2", "string-width-cjs": "npm:string-width@^4.2.0", @@ -2983,7 +2982,6 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "dev": true, "engines": { "node": ">=12" }, @@ -2995,7 +2993,6 @@ "version": "6.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "dev": true, "engines": { "node": ">=12" }, @@ -3006,14 +3003,12 @@ "node_modules/@isaacs/cliui/node_modules/emoji-regex": { "version": "9.2.2", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" }, "node_modules/@isaacs/cliui/node_modules/string-width": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "dev": true, "dependencies": { "eastasianwidth": "^0.2.0", "emoji-regex": "^9.2.2", @@ -3030,7 +3025,6 @@ "version": "7.1.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dev": true, "dependencies": { "ansi-regex": "^6.0.1" }, @@ -3045,7 +3039,6 @@ "version": "8.1.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", - "dev": true, "dependencies": { "ansi-styles": "^6.1.0", "string-width": "^5.0.1", @@ -3176,28 +3169,27 @@ } }, "node_modules/@ngneat/transloco": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@ngneat/transloco/-/transloco-4.3.0.tgz", - "integrity": "sha512-KUhGvp1ki+jvrM2PO27Tgzme1HkFmvDgS+7VyGxHta35wZEyoH6/r/EAXvfurPeYgaP6IaEMhUvAVT1WDgYwUg==", + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/@ngneat/transloco/-/transloco-5.0.6.tgz", + "integrity": "sha512-pt0jiU0co0nT72bhodT9ervBvSgl1jVUrTbLsHwjtP3WoJZxfOmXN21j5MSA/GJFRkolceI8+yWqtG7jux+WDg==", "dependencies": { - "@ngneat/transloco-utils": "3.0.5", + "@ngneat/transloco-utils": "^5.0.0", "flat": "5.0.2", + "fs-extra": "^11.0.0", + "glob": "^10.0.0", "lodash.kebabcase": "^4.1.1", "ora": "^5.4.1", - "replace-in-file": "^6.2.0", + "replace-in-file": "^7.0.1", "tslib": "^2.2.0" }, "peerDependencies": { - "@angular/core": ">=13.0.0", - "fs-extra": ">=9.1.0", - "glob": ">=7.1.7", - "rxjs": ">=6.0.0" + "@angular/core": ">=16.0.0" } }, "node_modules/@ngneat/transloco-locale": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@ngneat/transloco-locale/-/transloco-locale-4.1.0.tgz", - "integrity": "sha512-xtev6RXEPXh3kJ/xR/aq52z3ZVlv2wCGfc2kT+LQhLsW045zT0e5PJPHjO/xGNmp+T/Z8Axu1h08KwRQUW4Jyg==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/@ngneat/transloco-locale/-/transloco-locale-5.1.1.tgz", + "integrity": "sha512-klGQPwYi50hnLkVl619ywttLPigR+zVR4JeeETKyeIJ5bNSNI1oXABPME+CP1Viht2hOsfKdNIQ3GPCIdIJHRQ==", "dependencies": { "tslib": "^2.2.0" }, @@ -3208,91 +3200,74 @@ } }, "node_modules/@ngneat/transloco-optimize": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@ngneat/transloco-optimize/-/transloco-optimize-3.0.2.tgz", - "integrity": "sha512-yCRJGofjIZSCcEf38UEmYkQ3Ez38PKtx88CC2FgbcLgmkdkUB2/xVeRtUN6f0nNt2bJSgMtJvwm7BrttVIACDg==", + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@ngneat/transloco-optimize/-/transloco-optimize-5.0.2.tgz", + "integrity": "sha512-01qjbgkZCzp2sjcUquhuAu3PX4nkhnFPReCY2aWsaVppbsOo19y+LWPEmqnIN+Dane0eczb+v61oDYAvmwQQ/A==", "dev": true, "dependencies": { "command-line-args": "^5.2.0", "flat": "^5.0.2", - "glob": "^7.1.7" + "glob": "^10.0.0" }, "bin": { "transloco-optimize": "src/index.js" - } - }, - "node_modules/@ngneat/transloco-optimize/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" }, "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": ">=16" } }, "node_modules/@ngneat/transloco-persist-lang": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@ngneat/transloco-persist-lang/-/transloco-persist-lang-4.0.0.tgz", - "integrity": "sha512-OpYph1obkcB9clC5JGUMkD/Bb8n/jLYkqYUEOHf7/Y/0LcJpLiSTydN99+UhTND03uKAzDcP0WaQvAZaPnXxrw==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@ngneat/transloco-persist-lang/-/transloco-persist-lang-5.0.0.tgz", + "integrity": "sha512-vBpHQqTeKZT+V+uvIIEv+KyCq+8HFkCa7lnjvWwcgGupSYjTvZp4PxUm+KOLLmaTIzJDL1OQEaszQ84EzX6Mzg==", "dependencies": { "tslib": "^2.2.0" }, "peerDependencies": { - "@angular/core": ">=13.0.0", - "@ngneat/transloco": ">=4.0.0", - "rxjs": ">=6.0.0" + "@angular/core": ">=16.0.0", + "@ngneat/transloco": ">=5.0.0" } }, "node_modules/@ngneat/transloco-persist-translations": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@ngneat/transloco-persist-translations/-/transloco-persist-translations-4.0.0.tgz", - "integrity": "sha512-PeU8JLZbxdmD4JCjRWTbtL26P2yXhjwFs7Tol4sKXsHYBU1VAf7hLshxcN5PWDpkF9rVjcroOZHFNHyRcqR5jA==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@ngneat/transloco-persist-translations/-/transloco-persist-translations-5.0.0.tgz", + "integrity": "sha512-QLM9X9aDRPLZhNK8f8h/4eqjhSJvHoGHRSQ+CoS3qkOXteEdOQXeYzWPHSmvDHc5lN3zNRy6sjHrBQEiZQLCKw==", "dependencies": { "tslib": "^2.2.0" }, "peerDependencies": { - "@angular/core": ">=13.0.0", - "@ngneat/transloco": ">=4.0.0", - "rxjs": ">=6.0.0" + "@angular/core": ">=16.0.0", + "@ngneat/transloco": ">=5.0.0" } }, "node_modules/@ngneat/transloco-preload-langs": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@ngneat/transloco-preload-langs/-/transloco-preload-langs-4.0.1.tgz", - "integrity": "sha512-CcFQSHs/cU6PQ8vq5EVR9XuMS824KsSuNK3jkNLBGrciP09d59yRbRhhNQDWqynY5lNQ1qUtN7djv+9bNa/phQ==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@ngneat/transloco-preload-langs/-/transloco-preload-langs-5.0.0.tgz", + "integrity": "sha512-4ub18hzu5cHcgd7QGUQFl/MqbX8ZsHE6LInY7QFSLG6PpqrKSon+JqXjyWo8hxka8Ae5tMU5fDEEZCRXN19dlw==", "dependencies": { "tslib": "^2.2.0" }, "peerDependencies": { - "@angular/core": ">=13.0.0", - "@ngneat/transloco": ">=4.0.0", - "rxjs": ">=6.0.0" + "@angular/core": ">=16.0.0", + "@ngneat/transloco": ">=5.0.0" } }, "node_modules/@ngneat/transloco-utils": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@ngneat/transloco-utils/-/transloco-utils-3.0.5.tgz", - "integrity": "sha512-Xn9GaLUocXSPMhErNHbUyoloDm9sb+JaYszZJFL9F8em6frPQDSJxcYk9pV0caWpAU8INlksJSYgx1LXAH18mw==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@ngneat/transloco-utils/-/transloco-utils-5.0.0.tgz", + "integrity": "sha512-e0S+GWyBTmLix9KfYWW/rScYdqQz3z3znNSb+foaA5T3jWs4CPLVo+PV0No7kGjqom8Wy8H3lLvztfhHxYSLyA==", "dependencies": { "cosmiconfig": "^8.1.3", "tslib": "^2.3.0" + }, + "engines": { + "node": ">=16" } }, "node_modules/@ngtools/webpack": { - "version": "16.1.5", - "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-16.1.5.tgz", - "integrity": "sha512-XQkanGAtB9S2EE14xa/04hPNYSkAzJOeaHJkirfqk/p40p8nA2pNsfLYCMd2N7K4kzqcET8UYAZ+wIpQxp12HA==", + "version": "16.1.8", + "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-16.1.8.tgz", + "integrity": "sha512-co2SC1a822655Ek2f6fkMFsswHeCm2obNceb0kftLSpqomCgPAC3T447pB3TE1Iw+BEMFdjrAgIrp3nyYWwHsQ==", "dev": true, "engines": { "node": "^16.14.0 || >=18.10.0", @@ -3703,7 +3678,6 @@ "version": "0.11.0", "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", - "dev": true, "optional": true, "engines": { "node": ">=14" @@ -3725,13 +3699,13 @@ } }, "node_modules/@schematics/angular": { - "version": "16.1.5", - "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-16.1.5.tgz", - "integrity": "sha512-GwSweqKGjMc9oqU6fukqYKlBflCCDA/l2qfA60YIdf4SubaZnIUpkpNXTbWeFRPJh8zQShb8OZE7cVj8MZRruw==", + "version": "16.1.8", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-16.1.8.tgz", + "integrity": "sha512-gTHy1A/E9BCr0sj3VCr6eBYkgVkO96QWiZcFumedGnvstvp5wiCoIoJPLLfYaxVt1vt08xmnmS3OZ3r0qCLdpA==", "dev": true, "dependencies": { - "@angular-devkit/core": "16.1.5", - "@angular-devkit/schematics": "16.1.5", + "@angular-devkit/core": "16.1.8", + "@angular-devkit/schematics": "16.1.8", "jsonc-parser": "3.2.0" }, "engines": { @@ -4257,9 +4231,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "20.4.4", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.4.4.tgz", - "integrity": "sha512-CukZhumInROvLq3+b5gLev+vgpsIqC2D0deQr/yS1WnxvmYLlJXZpaQrQiseMY+6xusl79E04UjWoqyr+t1/Ew==", + "version": "20.4.8", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.4.8.tgz", + "integrity": "sha512-0mHckf6D2DiIAzh8fM8f3HQCvMKDpK94YQ0DSVkfWTG9BZleYIWudw9cJxX8oCk9bM+vAkDyujDV6dmKHbvQpg==", "dev": true }, "node_modules/@types/qs": { @@ -4335,16 +4309,16 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.1.0.tgz", - "integrity": "sha512-qg7Bm5TyP/I7iilGyp6DRqqkt8na00lI6HbjWZObgk3FFSzH5ypRwAHXJhJkwiRtTcfn+xYQIMOR5kJgpo6upw==", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.2.1.tgz", + "integrity": "sha512-iZVM/ALid9kO0+I81pnp1xmYiFyqibAHzrqX4q5YvvVEyJqY+e6rfTXSCsc2jUxGNqJqTfFSSij/NFkZBiBzLw==", "dev": true, "dependencies": { "@eslint-community/regexpp": "^4.5.1", - "@typescript-eslint/scope-manager": "6.1.0", - "@typescript-eslint/type-utils": "6.1.0", - "@typescript-eslint/utils": "6.1.0", - "@typescript-eslint/visitor-keys": "6.1.0", + "@typescript-eslint/scope-manager": "6.2.1", + "@typescript-eslint/type-utils": "6.2.1", + "@typescript-eslint/utils": "6.2.1", + "@typescript-eslint/visitor-keys": "6.2.1", "debug": "^4.3.4", "graphemer": "^1.4.0", "ignore": "^5.2.4", @@ -4371,13 +4345,13 @@ } }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/type-utils": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.1.0.tgz", - "integrity": "sha512-kFXBx6QWS1ZZ5Ni89TyT1X9Ag6RXVIVhqDs0vZE/jUeWlBv/ixq2diua6G7ece6+fXw3TvNRxP77/5mOMusx2w==", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.2.1.tgz", + "integrity": "sha512-fTfCgomBMIgu2Dh2Or3gMYgoNAnQm3RLtRp+jP7A8fY+LJ2+9PNpi5p6QB5C4RSP+U3cjI0vDlI3mspAkpPVbQ==", "dev": true, "dependencies": { - "@typescript-eslint/typescript-estree": "6.1.0", - "@typescript-eslint/utils": "6.1.0", + "@typescript-eslint/typescript-estree": "6.2.1", + "@typescript-eslint/utils": "6.2.1", "debug": "^4.3.4", "ts-api-utils": "^1.0.1" }, @@ -4398,17 +4372,17 @@ } }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/utils": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.1.0.tgz", - "integrity": "sha512-wp652EogZlKmQoMS5hAvWqRKplXvkuOnNzZSE0PVvsKjpexd/XznRVHAtrfHFYmqaJz0DFkjlDsGYC9OXw+OhQ==", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.2.1.tgz", + "integrity": "sha512-eBIXQeupYmxVB6S7x+B9SdBeB6qIdXKjgQBge2J+Ouv8h9Cxm5dHf/gfAZA6dkMaag+03HdbVInuXMmqFB/lKQ==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", "@types/json-schema": "^7.0.12", "@types/semver": "^7.5.0", - "@typescript-eslint/scope-manager": "6.1.0", - "@typescript-eslint/types": "6.1.0", - "@typescript-eslint/typescript-estree": "6.1.0", + "@typescript-eslint/scope-manager": "6.2.1", + "@typescript-eslint/types": "6.2.1", + "@typescript-eslint/typescript-estree": "6.2.1", "semver": "^7.5.4" }, "engines": { @@ -4456,15 +4430,15 @@ "dev": true }, "node_modules/@typescript-eslint/parser": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.1.0.tgz", - "integrity": "sha512-hIzCPvX4vDs4qL07SYzyomamcs2/tQYXg5DtdAfj35AyJ5PIUqhsLf4YrEIFzZcND7R2E8tpQIZKayxg8/6Wbw==", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.2.1.tgz", + "integrity": "sha512-Ld+uL1kYFU8e6btqBFpsHkwQ35rw30IWpdQxgOqOh4NfxSDH6uCkah1ks8R/RgQqI5hHPXMaLy9fbFseIe+dIg==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "6.1.0", - "@typescript-eslint/types": "6.1.0", - "@typescript-eslint/typescript-estree": "6.1.0", - "@typescript-eslint/visitor-keys": "6.1.0", + "@typescript-eslint/scope-manager": "6.2.1", + "@typescript-eslint/types": "6.2.1", + "@typescript-eslint/typescript-estree": "6.2.1", + "@typescript-eslint/visitor-keys": "6.2.1", "debug": "^4.3.4" }, "engines": { @@ -4484,13 +4458,13 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.1.0.tgz", - "integrity": "sha512-AxjgxDn27hgPpe2rQe19k0tXw84YCOsjDJ2r61cIebq1t+AIxbgiXKvD4999Wk49GVaAcdJ/d49FYel+Pp3jjw==", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.2.1.tgz", + "integrity": "sha512-UCqBF9WFqv64xNsIEPfBtenbfodPXsJ3nPAr55mGPkQIkiQvgoWNo+astj9ZUfJfVKiYgAZDMnM6dIpsxUMp3Q==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.1.0", - "@typescript-eslint/visitor-keys": "6.1.0" + "@typescript-eslint/types": "6.2.1", + "@typescript-eslint/visitor-keys": "6.2.1" }, "engines": { "node": "^16.0.0 || >=18.0.0" @@ -4585,9 +4559,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.1.0.tgz", - "integrity": "sha512-+Gfd5NHCpDoHDOaU/yIF3WWRI2PcBRKKpP91ZcVbL0t5tQpqYWBs3z/GGhvU+EV1D0262g9XCnyqQh19prU0JQ==", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.2.1.tgz", + "integrity": "sha512-528bGcoelrpw+sETlyM91k51Arl2ajbNT9L4JwoXE2dvRe1yd8Q64E4OL7vHYw31mlnVsf+BeeLyAZUEQtqahQ==", "dev": true, "engines": { "node": "^16.0.0 || >=18.0.0" @@ -4598,13 +4572,13 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.1.0.tgz", - "integrity": "sha512-nUKAPWOaP/tQjU1IQw9sOPCDavs/iU5iYLiY/6u7gxS7oKQoi4aUxXS1nrrVGTyBBaGesjkcwwHkbkiD5eBvcg==", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.2.1.tgz", + "integrity": "sha512-G+UJeQx9AKBHRQBpmvr8T/3K5bJa485eu+4tQBxFq0KoT22+jJyzo1B50JDT9QdC1DEmWQfdKsa8ybiNWYsi0Q==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.1.0", - "@typescript-eslint/visitor-keys": "6.1.0", + "@typescript-eslint/types": "6.2.1", + "@typescript-eslint/visitor-keys": "6.2.1", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -4780,12 +4754,12 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.1.0.tgz", - "integrity": "sha512-yQeh+EXhquh119Eis4k0kYhj9vmFzNpbhM3LftWQVwqVjipCkwHBQOZutcYW+JVkjtTG9k8nrZU1UoNedPDd1A==", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.2.1.tgz", + "integrity": "sha512-iTN6w3k2JEZ7cyVdZJTVJx2Lv7t6zFA8DCrJEHD2mwfc16AEvvBWVhbFh34XyG2NORCd0viIgQY1+u7kPI0WpA==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.1.0", + "@typescript-eslint/types": "6.2.1", "eslint-visitor-keys": "^3.4.1" }, "engines": { @@ -5611,9 +5585,9 @@ "dev": true }, "node_modules/bootstrap": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.3.0.tgz", - "integrity": "sha512-UnBV3E3v4STVNQdms6jSGO2CvOkjUMdDAVR2V5N4uCMdaIkaQjbcEAMqRimDHIs4uqBYzDAKCQwCB+97tJgHQw==", + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.3.1.tgz", + "integrity": "sha512-jzwza3Yagduci2x0rr9MeFSORjcHpt0lRZukZPZQJT1Dth5qzV7XcgGqYzi39KGAVYR8QEDVoO0ubFKOxzMG+g==", "funding": [ { "type": "github", @@ -5625,13 +5599,14 @@ } ], "peerDependencies": { - "@popperjs/core": "^2.11.7" + "@popperjs/core": "^2.11.8" } }, "node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -6065,7 +6040,8 @@ "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true }, "node_modules/connect-history-api-fallback": { "version": "2.0.0", @@ -6289,9 +6265,9 @@ "dev": true }, "node_modules/critters": { - "version": "0.0.19", - "resolved": "https://registry.npmjs.org/critters/-/critters-0.0.19.tgz", - "integrity": "sha512-Fm4ZAXsG0VzWy1U30rP4qxbaWGSsqXDgSupJW1OUJGDAs0KWC+j37v7p5a2kZ9BPJvhRzWm3be+Hc9WvQOBUOw==", + "version": "0.0.20", + "resolved": "https://registry.npmjs.org/critters/-/critters-0.0.20.tgz", + "integrity": "sha512-CImNRorKOl5d8TWcnAz5n5izQ6HFsvz29k327/ELy6UFcmbiZNOsinaKvzv16WZR0P6etfSWYzE47C4/56B3Uw==", "dev": true, "dependencies": { "chalk": "^4.1.0", @@ -6377,7 +6353,6 @@ "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -6943,8 +6918,7 @@ "node_modules/eastasianwidth": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", - "dev": true + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" }, "node_modules/ee-first": { "version": "1.1.1", @@ -7198,27 +7172,27 @@ } }, "node_modules/eslint": { - "version": "8.45.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.45.0.tgz", - "integrity": "sha512-pd8KSxiQpdYRfYa9Wufvdoct3ZPQQuVuU5O6scNgMuOMYuxvH0IGaYK0wUFjo4UYYQQCUndlXiMbnxopwvvTiw==", + "version": "8.46.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.46.0.tgz", + "integrity": "sha512-cIO74PvbW0qU8e0mIvk5IV3ToWdCq5FYG6gWPHHkx6gNdjlbAYvtfHmlCMXxjcoVaIdwy/IAt3+mDkZkfvb2Dg==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.4.0", - "@eslint/eslintrc": "^2.1.0", - "@eslint/js": "8.44.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.1", + "@eslint/js": "^8.46.0", "@humanwhocodes/config-array": "^0.11.10", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", - "ajv": "^6.10.0", + "ajv": "^6.12.4", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", "debug": "^4.3.2", "doctrine": "^3.0.0", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.0", - "eslint-visitor-keys": "^3.4.1", - "espree": "^9.6.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.2", + "espree": "^9.6.1", "esquery": "^1.4.2", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", @@ -7252,9 +7226,9 @@ } }, "node_modules/eslint-scope": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.0.tgz", - "integrity": "sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==", + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", "dev": true, "dependencies": { "esrecurse": "^4.3.0", @@ -7268,9 +7242,9 @@ } }, "node_modules/eslint-visitor-keys": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz", - "integrity": "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==", + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.2.tgz", + "integrity": "sha512-8drBzUEyZ2llkpCA67iYrgEssKDUu68V8ChqqOfFupIaG/LCVPUT+CoGJpT77zJprs4T/W7p07LP7zAIMuweVw==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -7502,9 +7476,9 @@ } }, "node_modules/espree": { - "version": "9.6.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.0.tgz", - "integrity": "sha512-1FH/IiruXZ84tpUlm0aCUEwMl2Ho5ilqVh0VvQXw+byAz/4SAciyHLlfmL5WYqsvD38oymdUwBss0LtK8m4s/A==", + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", "dev": true, "dependencies": { "acorn": "^8.9.0", @@ -8014,7 +7988,6 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", - "dev": true, "dependencies": { "cross-spawn": "^7.0.0", "signal-exit": "^4.0.1" @@ -8081,7 +8054,6 @@ "version": "11.1.1", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz", "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==", - "dev": true, "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", @@ -8224,7 +8196,6 @@ "version": "10.3.1", "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.1.tgz", "integrity": "sha512-9BKYcEeIs7QwlCYs+Y3GBvqAMISufUS0i2ELd11zpZjxI5V9iyRj0HgzB5/cLf2NY4vcYBTYzJ7GIui7j/4DOw==", - "dev": true, "dependencies": { "foreground-child": "^3.1.0", "jackspeak": "^2.0.3", @@ -8263,7 +8234,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, "dependencies": { "balanced-match": "^1.0.0" } @@ -8272,7 +8242,6 @@ "version": "9.0.3", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", - "dev": true, "dependencies": { "brace-expansion": "^2.0.1" }, @@ -8326,8 +8295,7 @@ "node_modules/graceful-fs": { "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" }, "node_modules/graphemer": { "version": "1.4.0", @@ -9383,8 +9351,7 @@ "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" }, "node_modules/isobject": { "version": "3.0.1", @@ -9504,7 +9471,6 @@ "version": "2.2.1", "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.2.1.tgz", "integrity": "sha512-MXbxovZ/Pm42f6cDIDkl3xpwv1AGwObKwfmjs2nQePiy85tP3fatofl3FC1aBsOtP/6fq5SbtgHwWcMsLP+bDw==", - "dev": true, "dependencies": { "@isaacs/cliui": "^8.0.2" }, @@ -9720,7 +9686,6 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, "dependencies": { "universalify": "^2.0.0" }, @@ -10275,6 +10240,7 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, "dependencies": { "brace-expansion": "^1.1.7" }, @@ -10295,7 +10261,6 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", - "dev": true, "engines": { "node": ">=8" } @@ -11667,6 +11632,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, "engines": { "node": ">=0.10.0" } @@ -11675,7 +11641,6 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, "engines": { "node": ">=8" } @@ -11690,7 +11655,6 @@ "version": "1.10.0", "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.0.tgz", "integrity": "sha512-tZFEaRQbMLjwrsmidsGJ6wDMv0iazJWk6SfIKnY4Xru8auXgmJkOBa5DUbYFcFD2Rzk2+KDlIiF0GVXNCbgC7g==", - "dev": true, "dependencies": { "lru-cache": "^9.1.1 || ^10.0.0", "minipass": "^5.0.0 || ^6.0.2" @@ -11706,7 +11670,6 @@ "version": "10.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.0.tgz", "integrity": "sha512-svTf/fzsKHffP42sujkO/Rjs37BCIsQVRCeNYIm9WN8rgT7ffoUnRtZCqU+6BqcSBdv8gwJeTz8knJpgACeQMw==", - "dev": true, "engines": { "node": "14 || >=16.14" } @@ -12262,13 +12225,13 @@ } }, "node_modules/replace-in-file": { - "version": "6.3.5", - "resolved": "https://registry.npmjs.org/replace-in-file/-/replace-in-file-6.3.5.tgz", - "integrity": "sha512-arB9d3ENdKva2fxRnSjwBEXfK1npgyci7ZZuwysgAp7ORjHSyxz6oqIjTEv8R0Ydl4Ll7uOAZXL4vbkhGIizCg==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/replace-in-file/-/replace-in-file-7.0.1.tgz", + "integrity": "sha512-KbhgPq04eA+TxXuUxpgWIH9k/TjF+28ofon2PXP7vq6izAILhxOtksCVcLuuQLtyjouBaPdlH6RJYYcSPVxCOA==", "dependencies": { "chalk": "^4.1.2", - "glob": "^7.2.0", - "yargs": "^17.2.1" + "glob": "^8.1.0", + "yargs": "^17.7.2" }, "bin": { "replace-in-file": "bin/cli.js" @@ -12291,6 +12254,14 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, + "node_modules/replace-in-file/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, "node_modules/replace-in-file/node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", @@ -12323,19 +12294,18 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "node_modules/replace-in-file/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "minimatch": "^5.0.1", + "once": "^1.3.0" }, "engines": { - "node": "*" + "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -12349,6 +12319,17 @@ "node": ">=8" } }, + "node_modules/replace-in-file/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/replace-in-file/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -12925,7 +12906,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, "dependencies": { "shebang-regex": "^3.0.0" }, @@ -12937,7 +12917,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, "engines": { "node": ">=8" } @@ -12969,7 +12948,6 @@ "version": "4.0.2", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.0.2.tgz", "integrity": "sha512-MY2/qGx4enyjprQnFaZsHib3Yadh3IXyV2C321GY0pjGfVBu4un0uDJkwgdxqO+Rdx8JMT8IfJIRwbYVz3Ob3Q==", - "dev": true, "engines": { "node": ">=14" }, @@ -13268,7 +13246,6 @@ "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -13294,7 +13271,6 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, "dependencies": { "ansi-regex": "^5.0.1" }, @@ -13784,9 +13760,9 @@ } }, "node_modules/tslib": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.0.tgz", - "integrity": "sha512-7At1WUettjcSRHXCyYtTselblcHl9PJFFVKiCAy/bY97+BPZXSQ2wbq0P9s8tK2G7dFQfNnlJnPAiArVBVBsfA==" + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz", + "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==" }, "node_modules/tsutils": { "version": "3.21.0", @@ -13956,7 +13932,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", - "dev": true, "engines": { "node": ">= 10.0.0" } @@ -14597,7 +14572,6 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, "dependencies": { "isexe": "^2.0.0" }, @@ -14695,7 +14669,6 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -14712,7 +14685,6 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -14727,7 +14699,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, "dependencies": { "color-name": "~1.1.4" }, @@ -14738,8 +14709,7 @@ "node_modules/wrap-ansi-cjs/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "node_modules/wrap-ansi/node_modules/ansi-styles": { "version": "4.3.0", diff --git a/UI/Web/package.json b/UI/Web/package.json index 3551b0963..3aa732bb0 100644 --- a/UI/Web/package.json +++ b/UI/Web/package.json @@ -13,31 +13,31 @@ }, "private": true, "dependencies": { - "@angular/animations": "^16.1.6", - "@angular/cdk": "^16.1.5", - "@angular/common": "^16.1.6", - "@angular/compiler": "^16.1.6", - "@angular/core": "^16.1.6", - "@angular/forms": "^16.1.6", - "@angular/localize": "^16.1.6", - "@angular/platform-browser": "^16.1.6", - "@angular/platform-browser-dynamic": "^16.1.6", - "@angular/router": "^16.1.6", - "@fortawesome/fontawesome-free": "^6.4.0", + "@angular/animations": "^16.1.8", + "@angular/cdk": "^16.1.7", + "@angular/common": "^16.1.8", + "@angular/compiler": "^16.1.8", + "@angular/core": "^16.1.8", + "@angular/forms": "^16.1.8", + "@angular/localize": "^16.1.8", + "@angular/platform-browser": "^16.1.8", + "@angular/platform-browser-dynamic": "^16.1.8", + "@angular/router": "^16.1.8", + "@fortawesome/fontawesome-free": "^6.4.2", "@iharbeck/ngx-virtual-scroller": "^16.0.0", "@iplab/ngx-file-upload": "^16.0.1", "@microsoft/signalr": "^7.0.9", "@ng-bootstrap/ng-bootstrap": "^15.1.0", - "@ngneat/transloco": "^4.3.0", - "@ngneat/transloco-locale": "^4.1.0", - "@ngneat/transloco-persist-lang": "^4.0.0", - "@ngneat/transloco-persist-translations": "^4.0.0", - "@ngneat/transloco-preload-langs": "^4.0.1", + "@ngneat/transloco": "^5.0.6", + "@ngneat/transloco-locale": "^5.1.1", + "@ngneat/transloco-persist-lang": "^5.0.0", + "@ngneat/transloco-persist-translations": "^5.0.0", + "@ngneat/transloco-preload-langs": "^5.0.0", "@popperjs/core": "^2.11.7", "@swimlane/ngx-charts": "^20.1.2", "@tweenjs/tween.js": "^21.0.0", "@types/file-saver": "^2.0.5", - "bootstrap": "^5.2.3", + "bootstrap": "^5.3.1", "eventsource": "^2.0.2", "file-saver": "^2.0.5", "lazysizes": "^5.3.2", @@ -51,24 +51,24 @@ "rxjs": "^7.8.0", "screenfull": "^6.0.2", "swiper": "^8.4.6", - "tslib": "^2.3.0", + "tslib": "^2.6.1", "zone.js": "^0.13.0" }, "devDependencies": { - "@angular-devkit/build-angular": "^16.1.5", + "@angular-devkit/build-angular": "^16.1.8", "@angular-eslint/builder": "^16.1.0", "@angular-eslint/eslint-plugin": "^16.1.0", "@angular-eslint/eslint-plugin-template": "^16.1.0", "@angular-eslint/schematics": "^16.1.0", "@angular-eslint/template-parser": "^16.1.0", - "@angular/cli": "^16.1.5", - "@angular/compiler-cli": "^16.1.6", - "@ngneat/transloco-optimize": "^3.0.2", + "@angular/cli": "^16.1.8", + "@angular/compiler-cli": "^16.1.8", + "@ngneat/transloco-optimize": "^5.0.2", "@types/d3": "^7.4.0", - "@types/node": "^20.4.4", - "@typescript-eslint/eslint-plugin": "^6.1.0", - "@typescript-eslint/parser": "^6.1.0", - "eslint": "^8.45.0", + "@types/node": "^20.4.8", + "@typescript-eslint/eslint-plugin": "^6.2.1", + "@typescript-eslint/parser": "^6.2.1", + "eslint": "^8.46.0", "karma-coverage": "~2.2.0", "ts-node": "~10.9.1", "typescript": "^5.1.6", diff --git a/UI/Web/src/app/_interceptors/error.interceptor.ts b/UI/Web/src/app/_interceptors/error.interceptor.ts index a7815c439..9d9f081f2 100644 --- a/UI/Web/src/app/_interceptors/error.interceptor.ts +++ b/UI/Web/src/app/_interceptors/error.interceptor.ts @@ -41,7 +41,7 @@ export class ErrorInterceptor implements HttpInterceptor { break; default: // Don't throw multiple Something unexpected went wrong - const genericError = this.translocoService.translate('errors.generic'); + let genericError = translate('errors.generic'); if (this.toastr.previousToastMessage !== 'Something unexpected went wrong.' && this.toastr.previousToastMessage !== genericError) { this.toast(genericError); } diff --git a/UI/Web/src/app/book-reader/_components/book-reader/book-reader.component.html b/UI/Web/src/app/book-reader/_components/book-reader/book-reader.component.html index 2a69f2566..b6da4f459 100644 --- a/UI/Web/src/app/book-reader/_components/book-reader/book-reader.component.html +++ b/UI/Web/src/app/book-reader/_components/book-reader/book-reader.component.html @@ -1,5 +1,5 @@ - -
+
+
{{t('skip-header')}} @@ -141,8 +141,8 @@
- - ({{t('incognito-mode-label')}}) + + ({{t('incognito-mode-label')}}) {{bookTitle}}
@@ -154,6 +154,5 @@
- - -
+ + diff --git a/UI/Web/src/app/book-reader/_components/book-reader/book-reader.component.ts b/UI/Web/src/app/book-reader/_components/book-reader/book-reader.component.ts index bc10c0197..141a74f47 100644 --- a/UI/Web/src/app/book-reader/_components/book-reader/book-reader.component.ts +++ b/UI/Web/src/app/book-reader/_components/book-reader/book-reader.component.ts @@ -306,7 +306,7 @@ export class BookReaderComponent implements OnInit, AfterViewInit, OnDestroy { @ViewChild('readingHtml', {static: false}) bookContentElemRef!: ElementRef; @ViewChild('readingSection', {static: false}) readingSectionElemRef!: ElementRef; @ViewChild('stickyTop', {static: false}) stickyTopElemRef!: ElementRef; - @ViewChild('reader', {static: true}) reader!: ElementRef; + @ViewChild('reader', {static: false}) reader!: ElementRef; get BookPageLayoutMode() { @@ -855,7 +855,7 @@ export class BookReaderComponent implements OnInit, AfterViewInit, OnDestroy { promptForPage() { - const question = 'There are ' + (this.maxPages - 1) + ' pages. What page do you want to go to?'; + const question = translate('book-reader.go-to-page-prompt', {totalPages: this.maxPages - 1}); const goToPageNum = window.prompt(question, ''); if (goToPageNum === null || goToPageNum.trim().length === 0) { return null; } return goToPageNum; @@ -1597,6 +1597,4 @@ export class BookReaderComponent implements OnInit, AfterViewInit, OnDestroy { refreshPersonalToC() { this.refreshPToC.emit(); } - - protected readonly undefined = undefined; } diff --git a/UI/Web/src/app/cards/series-card/series-card.component.ts b/UI/Web/src/app/cards/series-card/series-card.component.ts index 29e5cf1de..7b85df8fc 100644 --- a/UI/Web/src/app/cards/series-card/series-card.component.ts +++ b/UI/Web/src/app/cards/series-card/series-card.component.ts @@ -24,6 +24,30 @@ import {RelationshipPipe} from "../../pipe/relationship.pipe"; import {Device} from "../../_models/device/device"; import {TranslocoService} from "@ngneat/transloco"; +function deepClone(obj: any): any { + if (obj === null || typeof obj !== 'object') { + return obj; + } + + if (obj instanceof Array) { + return obj.map(item => deepClone(item)); + } + + const clonedObj: any = {}; + + for (const key in obj) { + if (Object.prototype.hasOwnProperty.call(obj, key)) { + if (typeof obj[key] === 'object' && obj[key] !== null) { + clonedObj[key] = deepClone(obj[key]); + } else { + clonedObj[key] = obj[key]; + } + } + } + + return clonedObj; +} + @Component({ selector: 'app-series-card', standalone: true, @@ -85,11 +109,12 @@ export class SeriesCardComponent implements OnInit, OnChanges { ngOnChanges(changes: any) { if (this.data) { - this.actions = this.actionFactoryService.getSeriesActions((action: ActionItem, series: Series) => this.handleSeriesActionCallback(action, series)); + this.actions = [...this.actionFactoryService.getSeriesActions((action: ActionItem, series: Series) => this.handleSeriesActionCallback(action, series))]; if (this.isOnDeck) { const othersIndex = this.actions.findIndex(obj => obj.title === 'others'); - if (this.actions[othersIndex].children.findIndex(o => o.action === Action.RemoveFromOnDeck) < 0) { - this.actions[othersIndex].children.push({ + const othersAction = deepClone(this.actions[othersIndex]) as ActionItem; + if (othersAction.children.findIndex(o => o.action === Action.RemoveFromOnDeck) < 0) { + othersAction.children.push({ action: Action.RemoveFromOnDeck, title: 'remove-from-on-deck', callback: (action: ActionItem, series: Series) => this.handleSeriesActionCallback(action, series), @@ -97,6 +122,7 @@ export class SeriesCardComponent implements OnInit, OnChanges { requiresAdmin: false, children: [], }); + this.actions[othersIndex] = othersAction; } } this.cdRef.markForCheck(); diff --git a/UI/Web/src/app/library-detail/library-detail.component.ts b/UI/Web/src/app/library-detail/library-detail.component.ts index 64ade9979..d34d111f5 100644 --- a/UI/Web/src/app/library-detail/library-detail.component.ts +++ b/UI/Web/src/app/library-detail/library-detail.component.ts @@ -173,6 +173,7 @@ export class LibraryDetailComponent implements OnInit { return; } this.seriesService.getSeries(seriesAdded.seriesId).subscribe(s => { + if (this.series.filter(sObj => s.id === sObj.id).length > 0) return; this.series = [...this.series, s].sort((s1: Series, s2: Series) => { if (s1.sortName < s2.sortName) return -1; if (s1.sortName > s2.sortName) return 1; diff --git a/UI/Web/src/app/manga-reader/_components/manga-reader/manga-reader.component.ts b/UI/Web/src/app/manga-reader/_components/manga-reader/manga-reader.component.ts index 7f2901e2d..68d148150 100644 --- a/UI/Web/src/app/manga-reader/_components/manga-reader/manga-reader.component.ts +++ b/UI/Web/src/app/manga-reader/_components/manga-reader/manga-reader.component.ts @@ -1497,7 +1497,8 @@ export class MangaReaderComponent implements OnInit, AfterViewInit, OnDestroy { // This is menu only code promptForPage() { - const goToPageNum = window.prompt('There are ' + this.maxPages + ' pages. What page would you like to go to?', ''); + const question = translate('book-reader.go-to-page-prompt', {totalPages: this.maxPages}); + const goToPageNum = window.prompt(question, ''); if (goToPageNum === null || goToPageNum.trim().length === 0) { return null; } return goToPageNum; } diff --git a/UI/Web/src/app/reading-list/_components/draggable-ordered-list/draggable-ordered-list.component.html b/UI/Web/src/app/reading-list/_components/draggable-ordered-list/draggable-ordered-list.component.html index 8b5e86ff5..ca0562b6b 100644 --- a/UI/Web/src/app/reading-list/_components/draggable-ordered-list/draggable-ordered-list.component.html +++ b/UI/Web/src/app/reading-list/_components/draggable-ordered-list/draggable-ordered-list.component.html @@ -7,8 +7,8 @@
- - {{t('reorder-label')}} +
diff --git a/UI/Web/src/app/shared/_services/download.service.ts b/UI/Web/src/app/shared/_services/download.service.ts index cdbd03226..70e8ffb7f 100644 --- a/UI/Web/src/app/shared/_services/download.service.ts +++ b/UI/Web/src/app/shared/_services/download.service.ts @@ -1,18 +1,27 @@ import { HttpClient } from '@angular/common/http'; -import { Inject, Injectable } from '@angular/core'; +import {DestroyRef, inject, Inject, Injectable} from '@angular/core'; import { Series } from 'src/app/_models/series'; import { environment } from 'src/environments/environment'; import { ConfirmService } from '../confirm.service'; import { Chapter } from 'src/app/_models/chapter'; import { Volume } from 'src/app/_models/volume'; -import { asyncScheduler, BehaviorSubject, Observable, tap, finalize, of, filter } from 'rxjs'; +import { + asyncScheduler, + BehaviorSubject, + Observable, + tap, + finalize, + of, + filter, +} from 'rxjs'; import { SAVER, Saver } from '../_providers/saver.provider'; import { download, Download } from '../_models/download'; import { PageBookmark } from 'src/app/_models/readers/page-bookmark'; -import { switchMap, takeWhile, throttleTime } from 'rxjs/operators'; +import {switchMap, take, takeWhile, throttleTime} from 'rxjs/operators'; import { AccountService } from 'src/app/_services/account.service'; import { BytesPipe } from 'src/app/pipe/bytes.pipe'; import {translate} from "@ngneat/transloco"; +import {takeUntilDestroyed} from "@angular/core/rxjs-interop"; export const DEBOUNCE_TIME = 100; @@ -42,6 +51,7 @@ export type DownloadEntityType = 'volume' | 'chapter' | 'series' | 'bookmark' | */ export type DownloadEntity = Series | Volume | Chapter | PageBookmark[] | undefined; + @Injectable({ providedIn: 'root' }) @@ -56,10 +66,12 @@ export class DownloadService { private downloadsSource: BehaviorSubject = new BehaviorSubject([]); public activeDownloads$ = this.downloadsSource.asObservable(); + private readonly destroyRef = inject(DestroyRef); constructor(private httpClient: HttpClient, private confirmService: ConfirmService, @Inject(SAVER) private save: Saver, private accountService: AccountService) { } + /** * Returns the entity subtitle (for the event widget) for a given entity * @param downloadEntityType @@ -117,7 +129,7 @@ export class DownloadService { } - this.accountService.currentUser$.pipe(switchMap(user => { + this.accountService.currentUser$.pipe(take(1), switchMap(user => { if (user && user.preferences.promptForDownloadSize) { return sizeCheckCall; } @@ -138,7 +150,8 @@ export class DownloadService { finalize(() => { if (callback) callback(undefined); })) - })).subscribe(() => {}); + }), takeUntilDestroyed(this.destroyRef) + ).subscribe(() => {}); } private downloadSeriesSize(seriesId: number) { diff --git a/UI/Web/src/app/user-settings/_pipes/device-platform.pipe.ts b/UI/Web/src/app/user-settings/_pipes/device-platform.pipe.ts index aa47de148..e95d43788 100644 --- a/UI/Web/src/app/user-settings/_pipes/device-platform.pipe.ts +++ b/UI/Web/src/app/user-settings/_pipes/device-platform.pipe.ts @@ -15,7 +15,7 @@ export class DevicePlatformPipe implements PipeTransform { case DevicePlatform.Kindle: return 'Kindle'; case DevicePlatform.Kobo: return 'Kobo'; case DevicePlatform.PocketBook: return 'PocketBook'; - case DevicePlatform.Custom: return this.translocoService.translate('device.platform-pipe.custom'); + case DevicePlatform.Custom: return this.translocoService.translate('device-platform-pipe.custom'); default: return value + ''; } } diff --git a/UI/Web/src/assets/langs/de.json b/UI/Web/src/assets/langs/de.json new file mode 100644 index 000000000..18c8e3bb7 --- /dev/null +++ b/UI/Web/src/assets/langs/de.json @@ -0,0 +1,1687 @@ +{ + "login": { + "title": "Anmelden", + "username": "{{common.username}}", + "password": "{{common.password}}", + "password-validation": "{{validation.password-validation}}", + "forgot-password": "Passwort vergessen?", + "submit": "{{common.submit}}" + }, + "dashboard": { + "no-libraries": "Es sind noch keine Bibliotheken eingerichtet. Konfigurieren Sie einige in", + "server-settings-link": "Servereinstellungen", + "not-granted": "Sie haben keinen Zugang zu Bibliotheken erhalten.", + "on-deck-title": "On Deck", + "recently-updated-title": "Kürzlich aktualisierte Serien", + "recently-added-title": "Neu hinzugefügte Serien" + }, + "edit-user": { + "edit": "{{common.edit}}", + "close": "{{common.close}}", + "username": "{{common.username}}", + "required": "{{validation.required-field}}", + "email": "{{common.email}}", + "not-valid-email": "{{validation.valid-email}}", + "cancel": "{{common.cancel}}", + "saving": "Speichern…", + "update": "Aktualisierung" + }, + "user-scrobble-history": { + "title": "Scrobble-Verlauf", + "description": "Hier finden Sie alle Scrobble-Ereignisse, die mit Ihrem Konto verknüpft sind. Damit es Ereignisse gibt, müssen Sie einen aktiven Scrobble-Anbieter konfiguriert haben. Alle Ereignisse, die verarbeitet wurden, werden nach einem Monat gelöscht. Wenn es nicht verarbeitete Ereignisse gibt, können diese wahrscheinlich keine Übereinstimmungen im Vorfeld finden. Wenden Sie sich bitte an Ihren Administrator, damit diese korrigiert werden.", + "filter-label": "Filtern", + "created-header": "Erstellt", + "last-modified-header": "Zuletzt geändert", + "type-header": "Typ", + "series-header": "Serie", + "data-header": "Daten", + "is-processed-header": "Wird verarbeitet", + "no-data": "Keine Daten", + "volume-and-chapter-num": "Band {{v}} Kapitel {{n}}", + "rating": "Bewertung {{r}}", + "not-applicable": "Nicht anwendbar", + "processed": "Verarbeitet", + "not-processed": "Nicht verarbeitet" + }, + "scrobble-event-type-pipe": { + "chapter-read": "Lesefortschritt", + "score-updated": "Bewertung Aktualisierung", + "want-to-read-add": "Möchte ich lesen: hinzufügen", + "want-to-read-remove": "Möchte ich lesen: entfernen", + "review": "Aktualisierung überprüfung" + }, + "spoiler": { + "click-to-show": "Spoiler, klicke zum Anzeigen" + }, + "review-series-modal": { + "title": "Rezension bearbeiten", + "tagline-label": "", + "review-label": "Rezension", + "close": "{{common.close}}", + "save": "{{common.save}}" + }, + "review-card-modal": { + "close": "{{common.close}}", + "user-review": "{{username}}'s Rezension", + "external-mod": "(extern)", + "go-to-review": "Zur Rezension" + }, + "review-card": { + "your-review": "Dies ist deine Rezension", + "external-review": "Externe Rezension", + "local-review": "Rezension", + "rating-percentage": "Bewertung {{r}}%" + }, + "want-to-read": { + "title": "Möchte ich lesen", + "series-count": "{{common.series-count}}", + "no-items": "Es sind keine Einträge vorhanden. Versuchen Sie, eine Serie hinzuzufügen.", + "no-items-filtered": "Keine Einträge entsprechen Ihrem aktuellen Filter." + }, + "user-preferences": { + "title": "Benutzer Dashboard", + "pref-description": "Dies sind globale Einstellungen, die an Ihr Konto gebunden sind.", + "account-tab": "Konto", + "preferences-tab": "Präferenzen", + "3rd-party-clients-tab": "Drittanbieter Clienten", + "theme-tab": "Motiv", + "devices-tab": "Geräte", + "stats-tab": "Statistiken", + "scrobbling-tab": "Scrobbling", + "success-toast": "Benutzerpräferenzen aktualisiert", + "global-settings-title": "Globale Einstellungen", + "page-layout-mode-label": "Seitenlayoutmodus", + "page-layout-mode-tooltip": "Zeige Elemente als Kachel oder in der Listenansicht auf der Seriendetails Seite an.", + "locale-label": "Lokal", + "locale-tooltip": "Die Sprache, die Kavita verwenden soll", + "blur-unread-summaries-label": "Ungelesene Zusammenfassungen verschleiern", + "blur-unread-summaries-tooltip": "Blendet den Zusammenfassungstext bei Bänden oder Kapiteln aus, die noch nicht gelesen wurden (um Spoiler zu vermeiden)", + "prompt-on-download-label": "Aufforderung beim Herunterladen", + "prompt-on-download-tooltip": "Aufforderung, wenn ein Download die Größe von {{size}}MB überschreitet", + "disable-animations-label": "Animationen deaktivieren", + "disable-animations-tooltip": "Schaltet die Animationen auf der Website aus. Nützlich für E-Ink-Leser.", + "collapse-series-relationships-label": "Serienbeziehungen reduzieren", + "collapse-series-relationships-tooltip": "Sollte Kavita Serien zeigen, die keine Verbindungen haben, oder ist das Elternteil/Prequel", + "share-series-reviews-label": "Bewertungen von Serien teilen", + "share-series-reviews-tooltip": "Soll Kavita deine Rezensionen zu Serien für andere Nutzer aufnehmen", + "image-reader-settings-title": "Bildleser", + "reading-direction-label": "Leserichtung", + "reading-direction-tooltip": "Richtung, in die geklicken werden müssen, um zur nächsten Seite zu gelangen. Von rechts nach links bedeutet, dass man auf die linke Seite des Bildschirms klickt, um zur nächsten Seite zu gelangen.", + "scaling-option-label": "Skalierungsoptionen", + "scaling-option-tooltip": "So wird das Bild auf den Bildschirm skaliert.", + "page-splitting-label": "Seitenaufteilung", + "page-splitting-tooltip": "Wie wird ein Bild in voller Breite geteilt (d.h. linkes und rechtes Bild werden kombiniert)", + "reading-mode-label": "Lesemodus", + "layout-mode-label": "Layoutmodus", + "layout-mode-tooltip": "Rendert ein einzelnes Bild auf dem Bildschirm oder zwei nebeneinander liegende Bilder", + "background-color-label": "Hintergrundfarbe", + "auto-close-menu-label": "Menü Automatisch schließen", + "show-screen-hints-label": "Bildschirmtipps anzeigen", + "emulate-comic-book-label": "Comicbuch nachbilden", + "swipe-to-paginate-label": "Zum Umblättern wischen", + "book-reader-settings-title": "Buch-Reader", + "tap-to-paginate-label": "Tippen zum Umblättern", + "tap-to-paginate-tooltip": "Sollten die Seiten des Buchlesebildschirms ein Antippen erlauben, um zur vorherigen/nächsten Seite zu gelangen", + "immersive-mode-label": "Immersiver Modus", + "immersive-mode-tooltip": "Das Menü wird nach einem Klick auf das Reader-Dokument ausgeblendet und das Tippen zum Umblättern eingeschaltet", + "reading-direction-book-label": "Leserichtung", + "reading-direction-book-tooltip": "Richtung, in die zu klicken ist, um zur nächsten Seite zu gelangen. Von rechts nach links bedeutet, dass man auf die linke Seite des Bildschirms klickt, um zur nächsten Seite zu gelangen.", + "font-family-label": "Schriftart", + "font-family-tooltip": "Schriftart, die geladen werden soll. Standard lädt die Standardschriftart des Buches", + "writing-style-label": "Schreibstil", + "writing-style-tooltip": "Ändert die Richtung des Textes. Horizontal ist von links nach rechts, vertikal von oben nach unten.", + "layout-mode-book-label": "Layoutmodus", + "layout-mode-book-tooltip": "", + "color-theme-book-label": "Farbe Motiv", + "color-theme-book-tooltip": "Welches Farb Motiv soll für den Inhalt und das Menü des Buchlesers verwendet werden", + "font-size-book-label": "Schriftgröße", + "line-height-book-label": "Zeilenabstände", + "line-height-book-tooltip": "Wie viel Abstand zwischen den Zeilen im Buch", + "margin-book-label": "", + "margin-book-tooltip": "Wie viel Abstand auf jeder Seite des Bildschirms. Auf mobilen Geräten wird dieser Wert unabhängig von dieser Einstellung auf 0 gesetzt.", + "clients-opds-alert": "OPDS ist auf diesem Server nicht aktiviert. Tachiyomi-Benutzer sind davon nicht betroffen.", + "clients-opds-description": "Alle Clienten von Drittanbietern verwenden entweder den API-Schlüssel oder die unten stehende Verbindungsurl. Diese sind wie Passwörter, vertraulich behandeln.", + "clients-api-key-tooltip": "Der API-Schlüssel ist wie ein Passwort. Bitte vertraulich behandeln.", + "clients-opds-url-tooltip": "OPDS URL", + "reset": "{{common.reset}}", + "save": "{{common.save}}" + }, + "user-holds": { + "title": "", + "description": "" + }, + "theme-manager": { + "title": "", + "looking-for-theme": "", + "looking-for-theme-continued": "", + "scan": "", + "site-themes": "", + "set-default": "", + "apply": "{{common.apply}}", + "applied": "", + "updated-toastr": "", + "scan-queued": "" + }, + "theme": { + "theme-dark": "", + "theme-black": "", + "theme-paper": "", + "theme-white": "" + }, + "restriction-selector": { + "title": "", + "description": "", + "not-applicable-for-admins": "", + "age-rating-label": "", + "no-restriction": "", + "include-unknowns-label": "", + "include-unknowns-tooltip": "" + }, + "site-theme-provider-pipe": { + "system": "", + "user": "Benutzer" + }, + "manage-devices": { + "title": "", + "description": "", + "devices-title": "", + "no-devices": "", + "platform-label": "", + "email-label": "", + "add": "{{common.add}}", + "delete": "{{common.delete}}", + "edit": "{{common.edit}}" + }, + "edit-device": { + "device-name-label": "", + "email-label": "{{common.email}}", + "email-tooltip": "", + "device-platform-label": "", + "save": "{{common.save}}", + "required-field": "{{validation.required-field}}", + "valid-email": "{{validation.valid-email}}" + }, + "change-password": { + "password-label": "{{common.password}}", + "current-password-label": "", + "new-password-label": "", + "confirm-password-label": "", + "reset": "{{common.reset}}", + "edit": "{{common.edit}}", + "cancel": "{{common.cancel}}", + "save": "{{common.save}}", + "required-field": "{{validation.required-field}}", + "passwords-must-match": "", + "permission-error": "" + }, + "change-email": { + "email-label": "{{common.email}}", + "current-password-label": "", + "email-not-confirmed": "", + "email-updated-title": "", + "email-updated-description": "", + "setup-user-account": "", + "invite-url-label": "", + "invite-url-tooltip": "", + "permission-error": "", + "required-field": "{{validation.required-field}}", + "reset": "{{common.reset}}", + "edit": "{{common.edit}}", + "cancel": "{{common.cancel}}", + "save": "{{common.save}}" + }, + "change-age-restriction": { + "age-restriction-label": "", + "unknowns": "", + "reset": "{{common.reset}}", + "edit": "{{common.edit}}", + "cancel": "{{common.cancel}}", + "save": "{{common.save}}" + }, + "api-key": { + "copy": "", + "regen-warning": "", + "no-key": "", + "confirm-reset": "", + "key-reset": "" + }, + "scrobbling-providers": { + "title": "", + "requires": "", + "token-expired": "", + "no-token-set": "", + "token-set": "", + "generate": "", + "instructions": "", + "token-input-label": "", + "edit": "{{common.edit}}", + "cancel": "{{common.cancel}}", + "save": "{{common.save}}" + }, + "typeahead": { + "locked-field": "", + "close": "{{common.close}}", + "loading": "{{common.loading}}", + "add-item": "", + "no-data": "", + "add-custom-item": "" + }, + "generic-list-modal": { + "close": "{{common.close}}", + "clear": "", + "filter": "", + "open-filtered-search": "" + }, + "user-stats-info-cards": { + "total-pages-read-label": "", + "total-pages-read-tooltip": "{{user-stats-info-cards.total-pages-read-label}}: {{value}}", + "total-words-read-label": "", + "total-words-read-tooltip": "{{user-stats-info-cards.total-words-read-label}}: {{value}}", + "time-spent-reading-label": "", + "time-spent-reading-tooltip": "{{user-stats-info-cards.time-spent-reading-label}}: {{value}}", + "chapters-read-label": "", + "chapters-read-tooltip": "{{user-stats-info-cards.chapters-read-label}}: {{value}}", + "avg-reading-per-week-label": "", + "last-active-label": "", + "chapters": "{{value}} Kapitel" + }, + "user-stats": { + "library-read-progress-title": "", + "read-percentage": "" + }, + "top-readers": { + "title": "", + "time-selection-label": "", + "comics-label": "", + "manga-label": "", + "books-label": "", + "this-week": "{{time-periods.this-week}}", + "last-7-days": "{{time-periods.last-7-days}}", + "last-30-days": "{{time-periods.last-30-days}}", + "last-90-days": "{{time-periods.last-90-days}}", + "last-year": "{{time-periods.last-year}}", + "all-time": "{{time-periods.all-time}}" + }, + "role-selector": { + "title": "" + }, + "directory-picker": { + "title": "", + "close": "{{common.close}}", + "path-label": "", + "path-placeholder": "", + "instructions": "", + "type-header": "", + "name-header": "Name", + "cancel": "{{common.cancel}}", + "share": "", + "help": "{{common.help}}" + }, + "library-access-modal": { + "select-all": "{{common.select-all}}", + "deselect-all": "{{common.deselect-all}}", + "title": "", + "close": "{{common.close}}", + "reset": "{{common.reset}}", + "cancel": "{{common.cancel}}", + "save": "{{common.save}}", + "no-data": "" + }, + "time-periods": { + "this-week": "", + "last-7-days": "", + "last-30-days": "", + "last-90-days": "", + "last-year": "", + "all-time": "" + }, + "device-platform-pipe": { + "custom": "" + }, + "day-of-week-pipe": { + "monday": "Montag", + "tuesday": "Dienstag", + "wednesday": "Mittwoch", + "thursday": "Donnerstag", + "friday": "Freitag", + "saturday": "Samstag", + "sunday": "Sonntag" + }, + "cbl-import-result-pipe": { + "success": "", + "partial": "", + "failure": "" + }, + "cbl-conflict-reason-pipe": { + "all-series-missing": "", + "chapter-missing": "", + "empty-file": "", + "name-conflict": "", + "series-collision": "", + "series-missing": "", + "volume-missing": "", + "all-chapter-missing": "", + "invalid-file": "", + "success": "" + }, + "time-duration-pipe": { + "hours": "{{value}} Stunden", + "minutes": "{{value}} Minuten", + "days": "{{value}} Tage", + "months": "{{value}} Monate", + "years": "{{value}} Jahre" + }, + "time-ago-pipe": { + "just-now": "", + "min-ago": "vor einer Minute", + "mins-ago": "vor {{value}} Minuten", + "hour-ago": "vor einer Stunde", + "hours-ago": "vor {{value}} Stunden", + "day-ago": "vor einem Tag", + "days-ago": "vor {{value}} Tagen", + "month-ago": "vor einem Monat", + "months-ago": "vor {{value}} Monaten", + "year-ago": "vor einem Jahr", + "years-ago": "vor {{value}} Jahren" + }, + "relationship-pipe": { + "adaptation": "", + "alternative-setting": "", + "alternative-version": "", + "character": "", + "contains": "", + "doujinshi": "", + "other": "", + "prequel": "", + "sequel": "", + "side-story": "", + "spin-off": "", + "parent": "", + "edition": "" + }, + "publication-status-pipe": { + "ongoing": "", + "hiatus": "", + "completed": "", + "cancelled": "", + "ended": "" + }, + "person-role-pipe": { + "artist": "", + "character": "", + "colorist": "", + "cover-artist": "", + "editor": "", + "inker": "", + "letterer": "", + "penciller": "", + "publisher": "", + "writer": "", + "other": "" + }, + "manga-format-pipe": { + "epub": "", + "archive": "", + "image": "", + "pdf": "", + "unknown": "" + }, + "library-type-pipe": { + "book": "", + "comic": "", + "manga": "" + }, + "age-rating-pipe": { + "unknown": "", + "early-childhood": "", + "adults-only": "", + "everyone": "", + "everyone-10-plus": "", + "g": "", + "kids-to-adults": "", + "mature": "", + "ma15-plus": "", + "mature-17-plus": "", + "rating-pending": "", + "teen": "", + "x18-plus": "", + "not-applicable": "", + "pg": "", + "r18-plus": "" + }, + "reset-password": { + "title": "", + "description": "", + "email-label": "{{common.email}}", + "required-field": "{{validation.required-field}}", + "valid-email": "{{validation.valid-email}}", + "submit": "{{common.submit}}" + }, + "reset-password-modal": { + "title": "", + "new-password-label": "", + "error-label": "", + "close": "{{common.close}}", + "cancel": "{{common.cancel}}", + "save": "{{common.save}}" + }, + "all-series": { + "series-count": "{{common.series-count}}" + }, + "announcements": { + "title": "" + }, + "changelog": { + "installed": "", + "download": "", + "published-label": "", + "available": "", + "description": "", + "description-continued": "" + }, + "invite-user": { + "title": "", + "close": "{{common.close}}", + "description": "", + "email": "{{common.email}}", + "required-field": "{{common.required-field}}", + "setup-user-title": "", + "setup-user-description": "", + "setup-user-account": "", + "setup-user-account-tooltip": "", + "invite-url-label": "", + "invite": "", + "inviting": "", + "cancel": "{{common.cancel}}" + }, + "library-selector": { + "title": "Bibliotheken", + "select-all": "{{common.select-all}}", + "deselect-all": "{{common.deselect-all}}", + "no-data": "" + }, + "license": { + "title": "Kavita+ Lizenz", + "manage": "", + "invalid-license-tooltip": "", + "check": "", + "cancel": "{{common.cancel}}", + "edit": "{{common.edit}}", + "buy": "Kaufen", + "activate": "Aktivieren", + "renew": "", + "no-license-key": "", + "license-valid": "", + "license-not-valid": "", + "loading": "{{common.loading}}", + "activate-description": "", + "activate-license-label": "", + "activate-email-label": "{{common.email}}", + "activate-delete": "Löschen", + "activate-save": "{{common.save}}" + }, + "book-line-overlay": { + "copy": "Kopieren", + "bookmark": "Lesezeichen", + "close": "{{common.close}}", + "required-field": "{{common.required-field}}", + "bookmark-label": "Lesezeichen Name", + "save": "{{common.save}}" + }, + "book-reader": { + "title": "", + "page-label": "", + "pagination-header": "", + "go-to-page": "", + "go-to-last-page": "", + "prev-page": "", + "next-page": "", + "prev-chapter": "", + "next-chapter": "", + "skip-header": "", + "virtual-pages": "", + "settings-header": "Einstellungen", + "table-of-contents-header": "", + "bookmarks-header": "Lesezeichen", + "toc-header": "", + "loading-book": "", + "go-back": "", + "incognito-mode-alt": "", + "incognito-mode-label": "", + "next": "", + "previous": "" + }, + "personal-table-of-contents": { + "no-data": "", + "page": "", + "delete": "" + }, + "confirm-email": { + "title": "", + "description": "", + "error-label": "", + "username-label": "{{common.username}}", + "password-label": "{{common.password}}", + "email-label": "{{common.email}}", + "required-field": "{{common.required-field}}", + "valid-email": "{{common.valid-email}}", + "password-validation": "{{validation.password-validation}}", + "register": "" + }, + "confirm-email-change": { + "title": "", + "non-confirm-description": "", + "confirm-description": "", + "success": "" + }, + "confirm-reset-password": { + "title": "", + "description": "", + "password-label": "{{common.password}}", + "required-field": "{{validation.required-field}}", + "submit": "{{common.submit}}", + "password-validation": "{{validation.password-validation}}" + }, + "register": { + "title": "", + "description": "", + "username-label": "{{common.username}}", + "email-label": "{{common.email}}", + "email-tooltip": "", + "password-label": "{{common.password}}", + "required-field": "{{validation.required-field}}", + "valid-email": "{{validation.valid-email}}", + "password-validation": "{{validation.password-validation}}", + "register": "" + }, + "series-detail": { + "page-settings-title": "", + "close": "{{common.close}}", + "layout-mode-label": "{{user-preferences.layout-mode-book-label}}", + "layout-mode-option-card": "", + "layout-mode-option-list": "", + "continue-from": "", + "read": "{{common.read}}", + "continue": "", + "read-options-alt": "", + "incognito": "", + "remove-from-want-to-read": "", + "add-to-want-to-read": "", + "edit-series-alt": "", + "download-series--tooltip": "", + "downloading-status": "", + "user-reviews-alt": "", + "storyline-tab": "", + "books-tab": "Bücher", + "volumes-tab": "Bände", + "specials-tab": "", + "related-tab": "", + "recommendations-tab": "", + "send-to": "", + "no-pages": "{{toasts.no-pages}}", + "no-chapters": "", + "cover-change": "" + }, + "series-metadata-detail": { + "links-title": "", + "genres-title": "", + "tags-title": "", + "collections-title": "{{side-nav.collections}}", + "reading-lists-title": "{{side-nav.reading-lists}}", + "writers-title": "", + "cover-artists-title": "", + "characters-title": "", + "colorists-title": "", + "editors-title": "", + "inkers-title": "", + "letterers-title": "", + "translators-title": "", + "pencillers-title": "", + "publishers-title": "", + "promoted": "{{common.promoted}}", + "see-more": "", + "see-less": "" + }, + "badge-expander": { + "more-items": "" + }, + "read-more": { + "read-more": "", + "read-less": "" + }, + "update-notification-modal": { + "title": "", + "close": "{{common.close}}", + "help": "", + "download": "" + }, + "side-nav-companion-bar": { + "page-settings-title": "{{series-detail.page-settings-title}}", + "open-filter-and-sort": "", + "close-filter-and-sort": "", + "filter-and-sort-alt": "" + }, + "side-nav": { + "home": "", + "want-to-read": "", + "collections": "", + "reading-lists": "", + "bookmarks": "Lesezeichen", + "filter-label": "", + "all-series": "", + "clear": "", + "donate": "Spenden" + }, + "library-settings-modal": { + "close": "{{common.close}}", + "edit-title": "", + "add-title": "", + "general-tab": "", + "folder-tab": "", + "cover-tab": "", + "advanced-tab": "", + "name-label": "", + "library-name-unique": "", + "last-scanned-label": "", + "type-label": "", + "type-tooltip": "", + "folder-description": "", + "browse": "", + "help-us-part-1": "", + "help-us-part-2": "", + "help-us-part-3": "", + "naming-conventions-part-1": "", + "naming-conventions-part-2": "", + "naming-conventions-part-3": "", + "cover-description": "", + "cover-description-extra": "", + "manage-collection-label": "", + "manage-collection-tooltip": "", + "manage-reading-list-label": "", + "manage-reading-list-tooltip": "", + "allow-scrobbling-label": "", + "allow-scrobbling-tooltip": "", + "folder-watching-label": "", + "folder-watching-tooltip": "", + "include-in-dashboard-label": "", + "include-in-dashboard-tooltip": "", + "include-in-recommendation-label": "", + "include-in-recommendation-tooltip": "", + "include-in-search-label": "", + "include-in-search-tooltip": "", + "force-scan": "", + "force-scan-tooltip": "", + "reset": "{{common.reset}}", + "cancel": "{{common.cancel}}", + "next": "", + "save": "{{common.save}}", + "required-field": "{{validation.required-field}}" + }, + "reader-settings": { + "general-settings-title": "", + "font-family-label": "{{user-preferences.font-family-label}}", + "font-size-label": "{{user-preferences.font-size-book-label}}", + "line-spacing-label": "{{user-preferences.line-height-book-label}}", + "margin-label": "{{user-preferences.margin-book-label}}", + "reset-to-defaults": "", + "reader-settings-title": "", + "reading-direction-label": "{{user-preferences.reading-direction-book-label}}", + "right-to-left": "", + "left-to-right": "", + "horizontal": "", + "vertical": "", + "writing-style-label": "{{user-preferences.writing-style-label}}", + "writing-style-tooltip": "", + "tap-to-paginate-label": "", + "tap-to-paginate-tooltip": "", + "on": "An", + "off": "Aus", + "immersive-mode-label": "{{user-preferences.immersive-mode-label}}", + "immersive-mode-tooltip": "", + "fullscreen-label": "", + "fullscreen-tooltip": "", + "exit": "", + "enter": "", + "layout-mode-label": "{{user-preferences.layout-mode-book-label}}", + "layout-mode-tooltip": "", + "layout-mode-option-scroll": "", + "layout-mode-option-1col": "", + "layout-mode-option-2col": "", + "color-theme-title": "", + "theme-dark": "", + "theme-black": "", + "theme-white": "", + "theme-paper": "" + }, + "table-of-contents": { + "no-data": "" + }, + "bookmarks": { + "title": "{{side-nav.bookmarks}}", + "series-count": "{{common.series-count}}", + "no-data": "", + "no-data-2": "", + "confirm-delete": "", + "confirm-single-delete": "", + "delete-success": "", + "delete-single-success": "" + }, + "bulk-operations": { + "title": "", + "items-selected": "", + "mark-as-unread": "", + "mark-as-read": "", + "deselect-all": "{{common.deselect-all}}" + }, + "card-detail-drawer": { + "general-tab": "", + "metadata-tab": "", + "cover-tab": "", + "info-tab": "", + "no-summary": "", + "writers-title": "{{series-metadata-detail.writers-title}}", + "genres-title": "{{series-metadata-detail.genres-title}}", + "publishers-title": "{{series-metadata-detail.publishers-title}}", + "tags-title": "{{series-metadata-detail.tags-title}}", + "not-defined": "", + "read": "{{common.read}}", + "unread": "", + "files": "", + "pages": "", + "added": "", + "size": "" + }, + "card-detail-layout": { + "total-items": "" + }, + "card-item": { + "cannot-read": "" + }, + "chapter-metadata-detail": { + "no-data": "", + "writers-title": "{{series-metadata-detail.writers-title}}", + "publishers-title": "{{series-metadata-detail.publishers-title}}", + "characters-title": "{{series-metadata-detail.characters-title}}", + "translators-title": "{{series-metadata-detail.translators-title}}", + "letterers-title": "{{series-metadata-detail.letterers-title}}", + "colorists-title": "{{series-metadata-detail.colorists-title}}", + "inkers-title": "{{series-metadata-detail.inkers-title}}", + "pencillers-title": "{{series-metadata-detail.pencillers-title}}", + "cover-artists-title": "{{series-metadata-detail.cover-artists-title}}", + "editors-title": "{{series-metadata-detail.editors-title}}" + }, + "cover-image-chooser": { + "drag-n-drop": "", + "upload": "", + "upload-continued": "", + "url-label": "", + "load": "", + "back": "", + "reset-cover-tooltip": "", + "reset": "{{common.reset}}", + "image-num": "", + "apply": "{{common.apply}}", + "applied": "{{theme-manager.applied}}" + }, + "download-indicator": { + "progress": "" + }, + "edit-series-relation": { + "description-part-1": "", + "description-part-2": "", + "target-series": "", + "relationship": "", + "remove": "", + "add-relationship": "", + "parent": "{{relationship-pipe.parent}}" + }, + "entity-info-cards": { + "tags-title": "{{series-metadata-detail.tags-title}}", + "characters-title": "{{series-metadata-detail.characters-title}}", + "release-date-title": "", + "release-date-tooltip": "", + "age-rating-title": "", + "length-title": "", + "pages-count": "", + "words-count": "", + "reading-time-title": "", + "date-added-title": "", + "size-title": "", + "id-title": "", + "links-title": "{{series-metadata-detail.links-title}}", + "isbn-title": "", + "last-read-title": "", + "less-than-hour": "", + "range-hours": "{{value}} {{hourWord}}", + "hour": "", + "hours": "", + "read-time-title": "{{series-info-cards.read-time-title}}" + }, + "series-info-cards": { + "release-date-title": "{{entity-info-cards.release-date-title}}", + "release-year-tooltip": "", + "age-rating-title": "", + "language-title": "", + "publication-status-title": "", + "publication-status-tooltip": "", + "scrobbling-title": "", + "scrobbling-tooltip": "", + "on": "", + "off": "", + "disabled": "", + "format-title": "", + "last-read-title": "", + "length-title": "", + "read-time-title": "", + "less-than-hour": "", + "hour": "", + "hours": "", + "time-left-title": "", + "ongoing": "", + "pages-count": "", + "words-count": "" + }, + "bulk-add-to-collection": { + "title": "", + "promoted": "", + "close": "", + "filter-label": "", + "clear": "", + "no-data": "", + "loading": "", + "collection-label": "", + "create": "" + }, + "entity-title": { + "special": "", + "issue-num": "", + "chapter": "" + }, + "external-series-card": { + "open-external": "" + }, + "list-item": { + "read": "" + }, + "manage-alerts": { + "description-part-1": "", + "description-part-2": "", + "filter-label": "", + "clear-alerts": "", + "extension-header": "", + "file-header": "", + "comment-header": "", + "details-header": "" + }, + "manage-email-settings": { + "title": "", + "description": "", + "send-to-warning": "", + "email-url-label": "", + "email-url-tooltip": "", + "reset": "", + "test": "", + "host-name-label": "", + "host-name-tooltip": "", + "host-name-validation": "", + "reset-to-default": "", + "save": "" + }, + "manage-library": { + "title": "", + "add-library": "", + "no-data": "", + "loading": "", + "last-scanned-title": "", + "shared-folders-title": "", + "type-title": "", + "scan-library": "", + "delete-library": "", + "delete-library-by-name": "", + "edit-library": "", + "edit-library-by-name": "" + }, + "manage-media-settings": { + "encode-as-description-part-1": "", + "encode-as-description-part-2": "", + "encode-as-description-part-3": "", + "encode-as-warning": "", + "media-warning": "", + "encode-as-label": "", + "encode-as-tooltip": "", + "bookmark-dir-label": "", + "bookmark-dir-tooltip": "", + "change": "", + "reset-to-default": "", + "reset": "", + "save": "", + "media-issue-title": "", + "scrobble-issue-title": "" + }, + "manage-scrobble-errors": { + "description": "", + "filter-label": "", + "clear-errors": "", + "series-header": "", + "created-header": "", + "comment-header": "", + "edit-header": "", + "edit-item-alt": "" + }, + "default-date-pipe": { + "never": "" + }, + "manage-settings": { + "notice": "", + "restart-required": "", + "base-url-label": "", + "base-url-tooltip": "", + "ip-address-label": "", + "ip-address-tooltip": "", + "port-label": "", + "port-tooltip": "", + "backup-label": "", + "backup-tooltip": "", + "log-label": "", + "log-tooltip": "", + "logging-level-label": "", + "logging-level-tooltip": "", + "cache-size-label": "", + "cache-size-tooltip": "", + "on-deck-last-progress-label": "", + "on-deck-last-progress-tooltip": "", + "on-deck-last-chapter-add-label": "", + "on-deck-last-chapter-add-tooltip": "", + "allow-stats-label": "", + "allow-stats-tooltip-part-1": "", + "allow-stats-tooltip-part-2": "", + "send-data": "", + "opds-label": "", + "opds-tooltip": "", + "enable-opds": "", + "folder-watching-label": "", + "folder-watching-tooltip": "", + "enable-folder-watching": "", + "reset-to-default": "", + "reset": "", + "save": "", + "cache-size-validation": "", + "field-required": "", + "max-logs-validation": "", + "min-logs-validation": "", + "min-days-validation": "", + "min-cache-validation": "", + "max-backup-validation": "", + "min-backup-validation": "", + "ip-address-validation": "", + "base-url-validation": "" + }, + "manage-system": { + "title": "", + "version-title": "", + "installId-title": "", + "more-info-title": "", + "home-page-title": "", + "wiki-title": "", + "discord-title": "", + "donations-title": "", + "source-title": "", + "feature-request-title": "" + }, + "manage-tasks-settings": { + "title": "", + "library-scan-label": "", + "library-scan-tooltip": "", + "library-database-backup-label": "", + "library-database-backup-tooltip": "", + "adhoc-tasks-title": "", + "job-title-header": "", + "description-header": "", + "action-header": "", + "reset-to-default": "", + "reset": "", + "save": "", + "recurring-tasks-title": "", + "last-executed-header": "", + "cron-header": "", + "convert-media-task": "", + "convert-media-task-desc": "", + "convert-media-success": "", + "bust-cache-task": "", + "bust-cache-task-desc": "", + "bust-cache-task-success": "", + "clear-reading-cache-task": "", + "clear-reading-cache-task-desc": "", + "clear-reading-cache-task-success": "", + "clean-up-want-to-read-task": "", + "clean-up-want-to-read-task-desc": "", + "clean-up-want-to-read-task-success": "", + "backup-database-task": "", + "backup-database-task-desc": "", + "backup-database-task-success": "", + "download-logs-task": "", + "download-logs-task-desc": "", + "analyze-files-task": "", + "analyze-files-task-desc": "", + "analyze-files-task-success": "", + "check-for-updates-task": "", + "check-for-updates-task-desc": "" + }, + "manage-users": { + "title": "", + "invite": "", + "you-alt": "", + "pending-title": "", + "delete-user-tooltip": "", + "delete-user-alt": "", + "edit-user-tooltip": "", + "edit-user-alt": "", + "resend-invite-tooltip": "", + "resend-invite-alt": "", + "setup-user-tooltip": "", + "setup-user-alt": "", + "change-password-tooltip": "", + "change-password-alt": "", + "resend": "", + "setup": "", + "last-active-title": "", + "roles-title": "", + "none": "", + "never": "", + "online-now-tooltip": "", + "sharing-title": "", + "no-data": "", + "loading": "" + }, + "edit-collection-tags": { + "title": "", + "required-field": "", + "save": "", + "close": "", + "cancel": "", + "general-tab": "", + "cover-image-tab": "", + "series-tab": "", + "name-label": "", + "name-validation": "", + "promote-label": "", + "promote-tooltip": "", + "summary-label": "", + "series-title": "", + "deselect-all": "", + "select-all": "" + }, + "library-detail": { + "library-tab": "", + "recommended-tab": "" + }, + "library-recommended": { + "no-data": "", + "more-in-genre": "", + "rediscover": "", + "highly-rated": "", + "quick-catchups": "", + "quick-reads": "", + "on-deck": "" + }, + "admin-dashboard": { + "title": "", + "general-tab": "", + "users-tab": "", + "libraries-tab": "", + "media-tab": "", + "logs-tab": "", + "email-tab": "", + "tasks-tab": "", + "statistics-tab": "", + "system-tab": "", + "kavita+-tab": "", + "kavita+-desc-part-1": "", + "kavita+-desc-part-2": "", + "kavita+-desc-part-3": "" + }, + "collection-detail": { + "no-data": "", + "no-data-filtered": "", + "title-alt": "" + }, + "all-collections": { + "title": "", + "item-count": "", + "no-data": "", + "create-one-part-1": "", + "create-one-part-2": "" + }, + "carousel-reel": { + "prev-items": "", + "next-items": "" + }, + "draggable-ordered-list": { + "instructions-alt": "", + "reorder-label": "", + "remove-item-alt": "" + }, + "reading-lists": { + "title": "", + "item-count": "", + "no-data": "", + "create-one-part-1": "", + "create-one-part-2": "" + }, + "reading-list-item": { + "remove": "", + "read": "" + }, + "reading-list-detail": { + "item-count": "", + "page-settings-title": "", + "remove-read": "", + "order-numbers-label": "", + "continue": "", + "read": "", + "read-options-alt": "", + "incognito-alt": "", + "no-data": "" + }, + "events-widget": { + "title-alt": "", + "dismiss-all": "", + "update-available": "", + "downloading-item": "", + "more-info": "", + "close": "", + "users-online-count": "", + "active-events-title": "", + "no-data": "" + }, + "shortcuts-modal": { + "title": "", + "close": "", + "prev-page": "", + "next-page": "", + "go-to": "", + "bookmark": "", + "double-click": "", + "close-reader": "", + "toggle-menu": "" + }, + "grouped-typeahead": { + "files": "", + "chapters": "", + "people": "", + "tags": "", + "genres": "", + "libraries": "", + "reading-lists": "", + "collections": "", + "close": "", + "loading": "" + }, + "nav-header": { + "skip-alt": "", + "search-series-alt": "", + "search-alt": "", + "promoted": "", + "no-data": "", + "scroll-to-top-alt": "", + "server-settings": "", + "settings": "", + "help": "", + "announcements": "", + "logout": "" + }, + "add-to-list-modal": { + "title": "", + "close": "", + "filter-label": "", + "promoted-alt": "", + "no-data": "", + "loading": "", + "reading-list-label": "", + "create": "" + }, + "edit-reading-list-modal": { + "title": "", + "general-tab": "", + "cover-image-tab": "", + "close": "", + "save": "", + "year-validation": "", + "month-validation": "", + "name-unique-validation": "", + "required-field": "", + "summary-label": "", + "year-label": "", + "month-label": "", + "ending-title": "", + "starting-title": "", + "promote-label": "", + "promote-tooltip": "" + }, + "import-cbl-modal": { + "close": "", + "title": "", + "import-description": "", + "validate-description": "", + "validate-warning": "", + "validate-no-issue": "", + "validate-no-issue-description": "", + "dry-run-description": "", + "prev": "", + "import": "", + "restart": "", + "next": "", + "import-step": "", + "validate-cbl-step": "", + "dry-run-step": "", + "final-import-step": "" + }, + "pdf-reader": { + "loading-message": "", + "incognito-mode": "", + "light-theme-alt": "", + "dark-theme-alt": "", + "close-reader-alt": "" + }, + "infinite-reader": { + "continuous-reading-prev-chapter-alt": "", + "continuous-reading-prev-chapter": "", + "continuous-reading-next-chapter-alt": "", + "continuous-reading-next-chapter": "" + }, + "manga-reader": { + "back": "", + "save-globally": "", + "incognito-alt": "", + "incognito-title": "", + "shortcuts-menu-alt": "", + "prev-page-tooltip": "", + "next-page-tooltip": "", + "prev-chapter-tooltip": "", + "next-chapter-tooltip": "", + "first-page-tooltip": "", + "last-page-tooltip": "", + "left-to-right-alt": "", + "right-to-left-alt": "", + "reading-direction-tooltip": "", + "reading-mode-tooltip": "", + "collapse": "", + "fullscreen": "", + "settings-tooltip": "", + "image-splitting-label": "", + "image-scaling-label": "", + "height": "", + "width": "", + "original": "", + "auto-close-menu-label": "", + "swipe-enabled-label": "", + "enable-comic-book-label": "", + "brightness-label": "", + "first-time-reading-manga": "", + "layout-mode-switched": "", + "no-next-chapter": "", + "no-prev-chapter": "", + "user-preferences-updated": "" + }, + "metadata-filter": { + "filter-title": "", + "format-label": "", + "format-tooltip": "", + "libraries-label": "", + "collections-label": "", + "genres-label": "", + "tags-label": "", + "cover-artist-label": "", + "writer-label": "", + "publisher-label": "", + "penciller-label": "", + "letterer-label": "", + "inker-label": "", + "editor-label": "", + "colorist-label": "", + "character-label": "", + "translator-label": "", + "read-progress-label": "", + "unread": "", + "read": "", + "in-progress": "", + "rating-label": "", + "age-rating-label": "", + "language-label": "", + "publication-status-label": "", + "series-name-label": "", + "series-name-tooltip": "", + "release-label": "", + "min": "", + "max": "", + "sort-by-label": "", + "ascending-alt": "", + "descending-alt": "", + "reset": "", + "apply": "" + }, + "sort-field-pipe": { + "sort-name": "", + "created": "", + "last-modified": "", + "last-chapter-added": "", + "time-to-read": "", + "release-year": "" + }, + "edit-series-modal": { + "title": "", + "general-tab": "", + "metadata-tab": "", + "people-tab": "", + "web-links-tab": "", + "cover-image-tab": "", + "related-tab": "", + "info-tab": "", + "collections-label": "", + "genres-label": "", + "tags-label": "", + "cover-artist-label": "", + "writer-label": "", + "publisher-label": "", + "penciller-label": "", + "letterer-label": "", + "inker-label": "", + "editor-label": "", + "colorist-label": "", + "character-label": "", + "translator-label": "", + "language-label": "", + "age-rating-label": "", + "publication-status-label": "", + "required-field": "", + "close": "", + "name-label": "", + "sort-name-label": "", + "localized-name-label": "", + "summary-label": "", + "release-year-label": "", + "web-link-description": "", + "web-link-label": "", + "add-link-alt": "", + "remove-link-alt": "", + "cover-image-description": "", + "save": "", + "field-locked-alt": "", + "info-title": "", + "library-title": "", + "format-title": "", + "created-title": "", + "last-read-title": "", + "last-added-title": "", + "last-scanned-title": "", + "folder-path-title": "", + "publication-status-title": "", + "total-pages-title": "", + "total-items-title": "", + "max-items-title": "", + "size-title": "", + "loading": "", + "added-title": "", + "last-modified-title": "", + "view-files": "", + "pages-title": "", + "chapter-title": "", + "volume-num": "", + "highest-count-tooltip": "", + "max-issue-tooltip": "" + }, + "day-breakdown": { + "title": "", + "x-axis-label": "", + "y-axis-label": "" + }, + "file-breakdown-stats": { + "format-title": "", + "format-tooltip": "", + "visualisation-label": "", + "data-table-label": "", + "extension-header": "", + "format-header": "", + "total-size-header": "", + "total-files-header": "", + "not-classified": "", + "total-file-size-title": "" + }, + "reading-activity": { + "title": "", + "legend-label": "", + "x-axis-label": "", + "y-axis-label": "", + "no-data": "", + "time-frame-label": "", + "this-week": "", + "last-7-days": "", + "last-30-days": "", + "last-90-days": "", + "last-year": "", + "all-time": "" + }, + "manga-format-stats": { + "title": "", + "visualisation-label": "", + "data-table-label": "", + "format-header": "", + "count-header": "" + }, + "publication-status-stats": { + "title": "", + "visualisation-label": "", + "data-table-label": "", + "year-header": "", + "count-header": "" + }, + "server-stats": { + "total-series-label": "", + "total-series-tooltip": "", + "total-volumes-label": "", + "total-volumes-tooltip": "", + "total-files-label": "", + "total-files-tooltip": "", + "total-size-label": "", + "total-genres-label": "", + "total-genres-tooltip": "", + "total-tags-label": "", + "total-tags-tooltip": "", + "total-people-label": "", + "total-people-tooltip": "", + "total-read-time-label": "", + "total-read-time-tooltip": "", + "series": "", + "reads": "", + "release-years-title": "", + "most-active-users-title": "", + "popular-libraries-title": "", + "popular-series-title": "", + "recently-read-title": "", + "genre-count": "", + "tag-count": "", + "people-count": "", + "tags": "", + "people": "", + "genres": "" + }, + "errors": { + "series-doesnt-exist": "", + "collection-invalid-access": "", + "unknown-crit": "", + "user-not-auth": "", + "error-code": "", + "download": "", + "not-found": "", + "generic": "", + "rejected-cover-upload": "", + "invalid-confirmation-url": "", + "invalid-confirmation-email": "", + "invalid-password-reset-url": "" + }, + "toasts": { + "regen-cover": "", + "no-pages": "", + "download-in-progress": "", + "scan-queued": "", + "server-settings-updated": "", + "reset-ip-address": "", + "reset-base-url": "", + "unauthorized-1": "", + "unauthorized-2": "", + "no-updates": "", + "confirm-delete-user": "", + "user-deleted": "", + "email-sent-to-user": "", + "click-email-link": "", + "series-added-to-collection": "", + "no-series-collection-warning": "", + "collection-updated": "", + "reading-list-deleted": "", + "reading-list-updated": "", + "confirm-delete-reading-list": "", + "item-removed": "", + "nothing-to-remove": "", + "series-added-to-reading-list": "", + "volumes-added-to-reading-list": "", + "chapter-added-to-reading-list": "", + "multiple-added-to-reading-list": "", + "select-files-warning": "", + "reading-list-imported": "", + "incognito-off": "", + "email-service-reset": "", + "email-service-reachable": "", + "email-service-unresponsive": "", + "refresh-covers-queued": "", + "library-file-analysis-queued": "", + "entity-read": "", + "entity-unread": "", + "mark-read": "", + "mark-unread": "", + "series-removed-want-to-read": "", + "series-deleted": "", + "file-send-to": "", + "theme-missing": "", + "email-sent": "", + "k+-license-saved": "", + "k+-unlocked": "", + "k+-error": "", + "k+-delete-key": "", + "library-deleted": "", + "copied-to-clipboard": "", + "book-settings-info": "", + "no-next-chapter": "", + "no-prev-chapter": "", + "load-next-chapter": "", + "load-prev-chapter": "", + "account-registration-complete": "", + "account-migration-complete": "", + "password-reset": "", + "password-updated": "", + "forced-scan-queued": "", + "library-created": "", + "anilist-token-updated": "", + "age-restriction-updated": "", + "email-sent-to-no-existing": "", + "email-sent-to": "", + "change-email-private": "", + "device-updated": "", + "device-created": "", + "confirm-regen-covers": "", + "alert-long-running": "", + "confirm-delete-multiple-series": "", + "confirm-delete-series": "", + "alert-bad-theme": "", + "confirm-library-delete": "", + "confirm-library-type-change": "", + "confirm-download-size": "" + }, + "actionable": { + "scan-library": "", + "refresh-covers": "", + "analyze-files": "", + "settings": "", + "edit": "", + "mark-as-read": "", + "mark-as-unread": "", + "scan-series": "", + "add-to": "", + "add-to-want-to-read": "", + "remove-from-want-to-read": "", + "remove-from-on-deck": "", + "others": "", + "add-to-reading-list": "", + "add-to-collection": "", + "send-to": "", + "delete": "", + "download": "", + "read-incognito": "", + "details": "", + "view-series": "", + "clear": "", + "import-cbl": "" + }, + "preferences": { + "left-to-right": "", + "right-to-left": "", + "horizontal": "", + "vertical": "", + "automatic": "", + "fit-to-height": "", + "fit-to-width": "", + "original": "", + "fit-to-screen": "", + "no-split": "", + "webtoon": "", + "single": "", + "double": "", + "double-manga": "", + "scroll": "", + "1-column": "", + "2-column": "", + "cards": "", + "list": "", + "up-to-down": "" + }, + "validation": { + "required-field": "", + "valid-email": "", + "password-validation": "" + }, + "entity-type": { + "volume": "", + "chapter": "", + "series": "", + "bookmark": "", + "logs": "" + }, + "common": { + "reset-to-default": "", + "close": "", + "cancel": "", + "create": "", + "save": "", + "reset": "", + "add": "", + "apply": "", + "delete": "", + "edit": "", + "help": "", + "submit": "", + "email": "", + "read": "", + "loading": "", + "username": "", + "password": "", + "promoted": "", + "select-all": "", + "deselect-all": "", + "series-count": "", + "item-count": "", + "book-num": "", + "issue-hash-num": "", + "issue-num": "", + "chapter-num": "", + "volume-num": "" + } +} diff --git a/UI/Web/src/assets/langs/en.json b/UI/Web/src/assets/langs/en.json index 42f9bbb03..0ca67efc9 100644 --- a/UI/Web/src/assets/langs/en.json +++ b/UI/Web/src/assets/langs/en.json @@ -615,8 +615,8 @@ "incognito-mode-alt": "Incognito mode is on. Toggle to turn off.", "incognito-mode-label": "Incognito Mode", "next": "Next", - "previous": "Previous" - + "previous": "Previous", + "go-to-page-prompt": "There are {{totalPages}} pages. What page do you want to go to?" }, "personal-table-of-contents": { @@ -1474,7 +1474,8 @@ "layout-mode-switched": "Layout mode switched to Single due to insufficient space to render double layout", "no-next-chapter": "No Next Chapter", "no-prev-chapter": "No Previous Chapter", - "user-preferences-updated": "User preferences updated" + "user-preferences-updated": "User preferences updated", + "emulate-comic-book-label": "{{user-preferences.emulate-comic-book-label}}" }, "metadata-filter": { @@ -1787,7 +1788,8 @@ "details": "Details", "view-series": "View Series", "clear": "Clear", - "import-cbl": "Import CBL" + "import-cbl": "Import CBL", + "read": "Read" }, "preferences": { diff --git a/UI/Web/src/assets/langs/es.json b/UI/Web/src/assets/langs/es.json index e0aa2d05f..7efeb75c1 100644 --- a/UI/Web/src/assets/langs/es.json +++ b/UI/Web/src/assets/langs/es.json @@ -405,5 +405,11 @@ "chapter-missing": "{{series}}: Capítulo {{chapter}} no presente en Kavita. Este item será saltado.", "empty-file": "El archivo CBL está vacío. Ninguna acción realizada.", "name-conflict": "Una lista de lectura que coincide con el archivo CBL ({{readingListName}}) ya existe en tu cuenta." + }, + "library-type-pipe": { + "manga": "Manga" + }, + "age-rating-pipe": { + "unknown": "Desconocido" } } diff --git a/UI/Web/src/assets/langs/it.json b/UI/Web/src/assets/langs/it.json new file mode 100644 index 000000000..5844aa9c9 --- /dev/null +++ b/UI/Web/src/assets/langs/it.json @@ -0,0 +1,1687 @@ +{ + "login": { + "title": "Login", + "username": "{{common.username}}", + "password": "{{common.password}}", + "password-validation": "{{validation.password-validation}}", + "forgot-password": "Password Dimenticata?", + "submit": "{{common.submit}}" + }, + "dashboard": { + "no-libraries": "Non ci sono ancora librerie configurate. Configurale in", + "server-settings-link": "Impostazioni Server", + "not-granted": "Non ti è stato concesso l'accesso a nessuna libreria.", + "on-deck-title": "Sul Ponte", + "recently-updated-title": "Serie recentemente aggiornata", + "recently-added-title": "Serie appena aggiunta" + }, + "edit-user": { + "edit": "{{common.edit}}", + "close": "{{common.close}}", + "username": "{{common.username}}", + "required": "{{validation.required-field}}", + "email": "{{common.email}}", + "not-valid-email": "{{validation.valid-email}}", + "cancel": "{{common.cancel}}", + "saving": "Salvataggio…", + "update": "Aggiornamento" + }, + "user-scrobble-history": { + "title": "Storico Scrobble", + "description": "Qui troverai tutti gli eventi di scrobble collegati al tuo account. Affinché gli eventi esistano, è necessario disporre di un provider di scrobble attivo configurato. Tutti gli eventi che sono stati elaborati verranno cancellati dopo un mese. Se sono presenti eventi non elaborati, è probabile che non possano formare corrispondenze a monte. Contatta il tuo amministratore per farli correggere.", + "filter-label": "Filtra", + "created-header": "Creato", + "last-modified-header": "Ultima modifica", + "type-header": "Tipo", + "series-header": "Serie", + "data-header": "Data", + "is-processed-header": "È processato", + "no-data": "Nessun dato", + "volume-and-chapter-num": "Volume {{v}} Capitolo {{n}}", + "rating": "Valutazione {{r}}", + "not-applicable": "Non applicabile", + "processed": "Elaborato", + "not-processed": "Non Elaborato" + }, + "scrobble-event-type-pipe": { + "chapter-read": "Progressi di lettura", + "score-updated": "Aggiornamento della valutazione", + "want-to-read-add": "Vuoi leggere: Aggiungi", + "want-to-read-remove": "Vuoi leggere: Rimuovi", + "review": "Recensione aggiornamento" + }, + "spoiler": { + "click-to-show": "Spoiler, clicca per mostrare" + }, + "review-series-modal": { + "title": "Modifica revisione", + "tagline-label": "Slogan", + "review-label": "Revisione", + "close": "{{common.close}}", + "save": "{{common.save}}" + }, + "review-card-modal": { + "close": "{{common.close}}", + "user-review": "Recensione di {{username}}", + "external-mod": "(esterno)", + "go-to-review": "Vai alla Revisione" + }, + "review-card": { + "your-review": "Questa è la tua recensione", + "external-review": "Recensione Esterna", + "local-review": "Recensione", + "rating-percentage": "Punteggio {{r}}%" + }, + "want-to-read": { + "title": "Voler leggere", + "series-count": "{{common.series-count}}", + "no-items": "Non ci sono articoli. Prova ad aggiungere una serie.", + "no-items-filtered": "Nessun articolo corrisponde al filtro attuale." + }, + "user-preferences": { + "title": "Dashboard Utente", + "pref-description": "Queste sono impostazioni globali che sono legate al tuo account.", + "account-tab": "Account", + "preferences-tab": "Preferenze", + "3rd-party-clients-tab": "Client di terze parti", + "theme-tab": "Tema", + "devices-tab": "Dispositivi", + "stats-tab": "Stato", + "scrobbling-tab": "", + "success-toast": "Preferenze utente aggiornate", + "global-settings-title": "Impostazioni globali", + "page-layout-mode-label": "Modalità layout di pagina", + "page-layout-mode-tooltip": "Mostra gli elementi come schede o visualizzazione elenco nella pagina Dettaglio serie.", + "locale-label": "Locale", + "locale-tooltip": "La lingua che Kavita dovrebbe usare", + "blur-unread-summaries-label": "Sfoca i riepiloghi non letti", + "blur-unread-summaries-tooltip": "Sfoca il testo di riepilogo su volumi o capitoli che non hanno avanzamento di lettura (per evitare spoiler)", + "prompt-on-download-label": "Richiedi al download", + "prompt-on-download-tooltip": "Avvisa quando un download supera le dimensioni di {{size}} MB", + "disable-animations-label": "Disabilita le animazioni", + "disable-animations-tooltip": "Disattiva le animazioni nel sito. Utile per i lettori di e-ink.", + "collapse-series-relationships-label": "Comprimi le relazioni tra serie", + "collapse-series-relationships-tooltip": "Kavita dovrebbe mostrare serie che non hanno relazioni o è il genitore", + "share-series-reviews-label": "Condividi le recensioni della serie", + "share-series-reviews-tooltip": "Kavita dovrebbe includere le tue recensioni di serie per altri utenti", + "image-reader-settings-title": "Lettore di immagini", + "reading-direction-label": "Direzione Lettura", + "reading-direction-tooltip": "Direzione da cliccare per passare alla pagina successiva. Da destra a sinistra significa che fai clic sul lato sinistro dello schermo per passare alla pagina successiva.", + "scaling-option-label": "Opzioni di ridimensionamento", + "scaling-option-tooltip": "Come ridimensionare l'immagine sullo schermo.", + "page-splitting-label": "Divisione pagine", + "page-splitting-tooltip": "Come dividere un'immagine a tutta larghezza (cioè entrambe le immagini sinistra e destra sono combinate)", + "reading-mode-label": "Modalità lettura", + "layout-mode-label": "Modalità Layout", + "layout-mode-tooltip": "Renderizza una singola immagine sullo schermo o due immagini affiancate", + "background-color-label": "Colore di sfondo", + "auto-close-menu-label": "Menu di chiusura automatica", + "show-screen-hints-label": "", + "emulate-comic-book-label": "", + "swipe-to-paginate-label": "", + "book-reader-settings-title": "", + "tap-to-paginate-label": "", + "tap-to-paginate-tooltip": "", + "immersive-mode-label": "", + "immersive-mode-tooltip": "", + "reading-direction-book-label": "", + "reading-direction-book-tooltip": "", + "font-family-label": "", + "font-family-tooltip": "", + "writing-style-label": "", + "writing-style-tooltip": "", + "layout-mode-book-label": "", + "layout-mode-book-tooltip": "", + "color-theme-book-label": "", + "color-theme-book-tooltip": "", + "font-size-book-label": "", + "line-height-book-label": "", + "line-height-book-tooltip": "", + "margin-book-label": "", + "margin-book-tooltip": "", + "clients-opds-alert": "", + "clients-opds-description": "", + "clients-api-key-tooltip": "", + "clients-opds-url-tooltip": "", + "reset": "", + "save": "" + }, + "user-holds": { + "title": "", + "description": "" + }, + "theme-manager": { + "title": "", + "looking-for-theme": "", + "looking-for-theme-continued": "", + "scan": "", + "site-themes": "", + "set-default": "", + "apply": "", + "applied": "", + "updated-toastr": "", + "scan-queued": "" + }, + "theme": { + "theme-dark": "", + "theme-black": "", + "theme-paper": "", + "theme-white": "" + }, + "restriction-selector": { + "title": "", + "description": "", + "not-applicable-for-admins": "", + "age-rating-label": "", + "no-restriction": "", + "include-unknowns-label": "", + "include-unknowns-tooltip": "" + }, + "site-theme-provider-pipe": { + "system": "", + "user": "" + }, + "manage-devices": { + "title": "", + "description": "", + "devices-title": "", + "no-devices": "", + "platform-label": "", + "email-label": "", + "add": "", + "delete": "", + "edit": "" + }, + "edit-device": { + "device-name-label": "", + "email-label": "", + "email-tooltip": "", + "device-platform-label": "", + "save": "", + "required-field": "", + "valid-email": "" + }, + "change-password": { + "password-label": "", + "current-password-label": "", + "new-password-label": "", + "confirm-password-label": "", + "reset": "", + "edit": "", + "cancel": "", + "save": "", + "required-field": "", + "passwords-must-match": "", + "permission-error": "" + }, + "change-email": { + "email-label": "", + "current-password-label": "", + "email-not-confirmed": "", + "email-updated-title": "", + "email-updated-description": "", + "setup-user-account": "", + "invite-url-label": "", + "invite-url-tooltip": "", + "permission-error": "", + "required-field": "", + "reset": "", + "edit": "", + "cancel": "", + "save": "" + }, + "change-age-restriction": { + "age-restriction-label": "", + "unknowns": "", + "reset": "", + "edit": "", + "cancel": "", + "save": "" + }, + "api-key": { + "copy": "", + "regen-warning": "", + "no-key": "", + "confirm-reset": "", + "key-reset": "" + }, + "scrobbling-providers": { + "title": "", + "requires": "", + "token-expired": "", + "no-token-set": "", + "token-set": "", + "generate": "", + "instructions": "", + "token-input-label": "", + "edit": "", + "cancel": "", + "save": "" + }, + "typeahead": { + "locked-field": "", + "close": "", + "loading": "", + "add-item": "", + "no-data": "", + "add-custom-item": "" + }, + "generic-list-modal": { + "close": "", + "clear": "", + "filter": "", + "open-filtered-search": "" + }, + "user-stats-info-cards": { + "total-pages-read-label": "", + "total-pages-read-tooltip": "", + "total-words-read-label": "", + "total-words-read-tooltip": "", + "time-spent-reading-label": "", + "time-spent-reading-tooltip": "", + "chapters-read-label": "", + "chapters-read-tooltip": "", + "avg-reading-per-week-label": "", + "last-active-label": "", + "chapters": "" + }, + "user-stats": { + "library-read-progress-title": "", + "read-percentage": "" + }, + "top-readers": { + "title": "", + "time-selection-label": "", + "comics-label": "", + "manga-label": "", + "books-label": "", + "this-week": "", + "last-7-days": "", + "last-30-days": "", + "last-90-days": "", + "last-year": "", + "all-time": "" + }, + "role-selector": { + "title": "" + }, + "directory-picker": { + "title": "", + "close": "", + "path-label": "", + "path-placeholder": "", + "instructions": "", + "type-header": "", + "name-header": "", + "cancel": "", + "share": "", + "help": "" + }, + "library-access-modal": { + "select-all": "", + "deselect-all": "", + "title": "", + "close": "", + "reset": "", + "cancel": "", + "save": "", + "no-data": "" + }, + "time-periods": { + "this-week": "", + "last-7-days": "", + "last-30-days": "", + "last-90-days": "", + "last-year": "", + "all-time": "" + }, + "device-platform-pipe": { + "custom": "" + }, + "day-of-week-pipe": { + "monday": "", + "tuesday": "", + "wednesday": "", + "thursday": "", + "friday": "", + "saturday": "", + "sunday": "" + }, + "cbl-import-result-pipe": { + "success": "", + "partial": "", + "failure": "" + }, + "cbl-conflict-reason-pipe": { + "all-series-missing": "", + "chapter-missing": "", + "empty-file": "", + "name-conflict": "", + "series-collision": "", + "series-missing": "", + "volume-missing": "", + "all-chapter-missing": "", + "invalid-file": "", + "success": "" + }, + "time-duration-pipe": { + "hours": "", + "minutes": "", + "days": "", + "months": "", + "years": "" + }, + "time-ago-pipe": { + "just-now": "", + "min-ago": "", + "mins-ago": "", + "hour-ago": "", + "hours-ago": "", + "day-ago": "", + "days-ago": "", + "month-ago": "", + "months-ago": "", + "year-ago": "", + "years-ago": "" + }, + "relationship-pipe": { + "adaptation": "", + "alternative-setting": "", + "alternative-version": "", + "character": "", + "contains": "", + "doujinshi": "", + "other": "", + "prequel": "", + "sequel": "", + "side-story": "", + "spin-off": "", + "parent": "", + "edition": "" + }, + "publication-status-pipe": { + "ongoing": "", + "hiatus": "", + "completed": "", + "cancelled": "", + "ended": "" + }, + "person-role-pipe": { + "artist": "", + "character": "", + "colorist": "", + "cover-artist": "", + "editor": "", + "inker": "", + "letterer": "", + "penciller": "", + "publisher": "", + "writer": "", + "other": "" + }, + "manga-format-pipe": { + "epub": "", + "archive": "", + "image": "", + "pdf": "", + "unknown": "" + }, + "library-type-pipe": { + "book": "", + "comic": "", + "manga": "" + }, + "age-rating-pipe": { + "unknown": "", + "early-childhood": "", + "adults-only": "", + "everyone": "", + "everyone-10-plus": "", + "g": "", + "kids-to-adults": "", + "mature": "", + "ma15-plus": "", + "mature-17-plus": "", + "rating-pending": "", + "teen": "", + "x18-plus": "", + "not-applicable": "", + "pg": "", + "r18-plus": "" + }, + "reset-password": { + "title": "", + "description": "", + "email-label": "", + "required-field": "", + "valid-email": "", + "submit": "" + }, + "reset-password-modal": { + "title": "", + "new-password-label": "", + "error-label": "", + "close": "", + "cancel": "", + "save": "" + }, + "all-series": { + "series-count": "" + }, + "announcements": { + "title": "" + }, + "changelog": { + "installed": "", + "download": "", + "published-label": "", + "available": "", + "description": "", + "description-continued": "" + }, + "invite-user": { + "title": "", + "close": "", + "description": "", + "email": "", + "required-field": "", + "setup-user-title": "", + "setup-user-description": "", + "setup-user-account": "", + "setup-user-account-tooltip": "", + "invite-url-label": "", + "invite": "", + "inviting": "", + "cancel": "" + }, + "library-selector": { + "title": "", + "select-all": "", + "deselect-all": "", + "no-data": "" + }, + "license": { + "title": "", + "manage": "", + "invalid-license-tooltip": "", + "check": "", + "cancel": "", + "edit": "", + "buy": "", + "activate": "", + "renew": "", + "no-license-key": "", + "license-valid": "", + "license-not-valid": "", + "loading": "", + "activate-description": "", + "activate-license-label": "", + "activate-email-label": "", + "activate-delete": "", + "activate-save": "" + }, + "book-line-overlay": { + "copy": "", + "bookmark": "", + "close": "", + "required-field": "", + "bookmark-label": "", + "save": "" + }, + "book-reader": { + "title": "", + "page-label": "", + "pagination-header": "", + "go-to-page": "", + "go-to-last-page": "", + "prev-page": "", + "next-page": "", + "prev-chapter": "", + "next-chapter": "", + "skip-header": "", + "virtual-pages": "", + "settings-header": "", + "table-of-contents-header": "", + "bookmarks-header": "", + "toc-header": "", + "loading-book": "", + "go-back": "", + "incognito-mode-alt": "", + "incognito-mode-label": "", + "next": "", + "previous": "" + }, + "personal-table-of-contents": { + "no-data": "", + "page": "", + "delete": "" + }, + "confirm-email": { + "title": "", + "description": "", + "error-label": "", + "username-label": "", + "password-label": "", + "email-label": "", + "required-field": "", + "valid-email": "", + "password-validation": "", + "register": "" + }, + "confirm-email-change": { + "title": "", + "non-confirm-description": "", + "confirm-description": "", + "success": "" + }, + "confirm-reset-password": { + "title": "", + "description": "", + "password-label": "", + "required-field": "", + "submit": "", + "password-validation": "" + }, + "register": { + "title": "", + "description": "", + "username-label": "", + "email-label": "", + "email-tooltip": "", + "password-label": "", + "required-field": "", + "valid-email": "", + "password-validation": "", + "register": "" + }, + "series-detail": { + "page-settings-title": "", + "close": "", + "layout-mode-label": "", + "layout-mode-option-card": "", + "layout-mode-option-list": "", + "continue-from": "", + "read": "", + "continue": "", + "read-options-alt": "", + "incognito": "", + "remove-from-want-to-read": "", + "add-to-want-to-read": "", + "edit-series-alt": "", + "download-series--tooltip": "", + "downloading-status": "", + "user-reviews-alt": "", + "storyline-tab": "", + "books-tab": "", + "volumes-tab": "", + "specials-tab": "", + "related-tab": "", + "recommendations-tab": "", + "send-to": "", + "no-pages": "", + "no-chapters": "", + "cover-change": "" + }, + "series-metadata-detail": { + "links-title": "", + "genres-title": "", + "tags-title": "", + "collections-title": "", + "reading-lists-title": "", + "writers-title": "", + "cover-artists-title": "", + "characters-title": "", + "colorists-title": "", + "editors-title": "", + "inkers-title": "", + "letterers-title": "", + "translators-title": "", + "pencillers-title": "", + "publishers-title": "", + "promoted": "", + "see-more": "", + "see-less": "" + }, + "badge-expander": { + "more-items": "" + }, + "read-more": { + "read-more": "", + "read-less": "" + }, + "update-notification-modal": { + "title": "", + "close": "", + "help": "", + "download": "" + }, + "side-nav-companion-bar": { + "page-settings-title": "", + "open-filter-and-sort": "", + "close-filter-and-sort": "", + "filter-and-sort-alt": "" + }, + "side-nav": { + "home": "", + "want-to-read": "", + "collections": "", + "reading-lists": "", + "bookmarks": "", + "filter-label": "", + "all-series": "", + "clear": "", + "donate": "" + }, + "library-settings-modal": { + "close": "", + "edit-title": "", + "add-title": "", + "general-tab": "", + "folder-tab": "", + "cover-tab": "", + "advanced-tab": "", + "name-label": "", + "library-name-unique": "", + "last-scanned-label": "", + "type-label": "", + "type-tooltip": "", + "folder-description": "", + "browse": "", + "help-us-part-1": "", + "help-us-part-2": "", + "help-us-part-3": "", + "naming-conventions-part-1": "", + "naming-conventions-part-2": "", + "naming-conventions-part-3": "", + "cover-description": "", + "cover-description-extra": "", + "manage-collection-label": "", + "manage-collection-tooltip": "", + "manage-reading-list-label": "", + "manage-reading-list-tooltip": "", + "allow-scrobbling-label": "", + "allow-scrobbling-tooltip": "", + "folder-watching-label": "", + "folder-watching-tooltip": "", + "include-in-dashboard-label": "", + "include-in-dashboard-tooltip": "", + "include-in-recommendation-label": "", + "include-in-recommendation-tooltip": "", + "include-in-search-label": "", + "include-in-search-tooltip": "", + "force-scan": "", + "force-scan-tooltip": "", + "reset": "", + "cancel": "", + "next": "", + "save": "", + "required-field": "" + }, + "reader-settings": { + "general-settings-title": "", + "font-family-label": "", + "font-size-label": "", + "line-spacing-label": "", + "margin-label": "", + "reset-to-defaults": "", + "reader-settings-title": "", + "reading-direction-label": "", + "right-to-left": "", + "left-to-right": "", + "horizontal": "", + "vertical": "", + "writing-style-label": "", + "writing-style-tooltip": "", + "tap-to-paginate-label": "", + "tap-to-paginate-tooltip": "", + "on": "", + "off": "", + "immersive-mode-label": "", + "immersive-mode-tooltip": "", + "fullscreen-label": "", + "fullscreen-tooltip": "", + "exit": "", + "enter": "", + "layout-mode-label": "", + "layout-mode-tooltip": "", + "layout-mode-option-scroll": "", + "layout-mode-option-1col": "", + "layout-mode-option-2col": "", + "color-theme-title": "", + "theme-dark": "", + "theme-black": "", + "theme-white": "", + "theme-paper": "" + }, + "table-of-contents": { + "no-data": "" + }, + "bookmarks": { + "title": "", + "series-count": "", + "no-data": "", + "no-data-2": "", + "confirm-delete": "", + "confirm-single-delete": "", + "delete-success": "", + "delete-single-success": "" + }, + "bulk-operations": { + "title": "", + "items-selected": "", + "mark-as-unread": "", + "mark-as-read": "", + "deselect-all": "" + }, + "card-detail-drawer": { + "general-tab": "", + "metadata-tab": "", + "cover-tab": "", + "info-tab": "", + "no-summary": "", + "writers-title": "", + "genres-title": "", + "publishers-title": "", + "tags-title": "", + "not-defined": "", + "read": "", + "unread": "", + "files": "", + "pages": "", + "added": "", + "size": "" + }, + "card-detail-layout": { + "total-items": "" + }, + "card-item": { + "cannot-read": "" + }, + "chapter-metadata-detail": { + "no-data": "", + "writers-title": "", + "publishers-title": "", + "characters-title": "", + "translators-title": "", + "letterers-title": "", + "colorists-title": "", + "inkers-title": "", + "pencillers-title": "", + "cover-artists-title": "", + "editors-title": "" + }, + "cover-image-chooser": { + "drag-n-drop": "", + "upload": "", + "upload-continued": "", + "url-label": "", + "load": "", + "back": "", + "reset-cover-tooltip": "", + "reset": "", + "image-num": "", + "apply": "", + "applied": "" + }, + "download-indicator": { + "progress": "" + }, + "edit-series-relation": { + "description-part-1": "", + "description-part-2": "", + "target-series": "", + "relationship": "", + "remove": "", + "add-relationship": "", + "parent": "" + }, + "entity-info-cards": { + "tags-title": "", + "characters-title": "", + "release-date-title": "", + "release-date-tooltip": "", + "age-rating-title": "", + "length-title": "", + "pages-count": "", + "words-count": "", + "reading-time-title": "", + "date-added-title": "", + "size-title": "", + "id-title": "", + "links-title": "", + "isbn-title": "", + "last-read-title": "", + "less-than-hour": "", + "range-hours": "", + "hour": "", + "hours": "", + "read-time-title": "" + }, + "series-info-cards": { + "release-date-title": "", + "release-year-tooltip": "", + "age-rating-title": "", + "language-title": "", + "publication-status-title": "", + "publication-status-tooltip": "", + "scrobbling-title": "", + "scrobbling-tooltip": "", + "on": "", + "off": "", + "disabled": "", + "format-title": "", + "last-read-title": "", + "length-title": "", + "read-time-title": "", + "less-than-hour": "", + "hour": "", + "hours": "", + "time-left-title": "", + "ongoing": "", + "pages-count": "", + "words-count": "" + }, + "bulk-add-to-collection": { + "title": "", + "promoted": "", + "close": "", + "filter-label": "", + "clear": "", + "no-data": "", + "loading": "", + "collection-label": "", + "create": "" + }, + "entity-title": { + "special": "", + "issue-num": "", + "chapter": "" + }, + "external-series-card": { + "open-external": "" + }, + "list-item": { + "read": "" + }, + "manage-alerts": { + "description-part-1": "", + "description-part-2": "", + "filter-label": "", + "clear-alerts": "", + "extension-header": "", + "file-header": "", + "comment-header": "", + "details-header": "" + }, + "manage-email-settings": { + "title": "", + "description": "", + "send-to-warning": "", + "email-url-label": "", + "email-url-tooltip": "", + "reset": "", + "test": "", + "host-name-label": "", + "host-name-tooltip": "", + "host-name-validation": "", + "reset-to-default": "", + "save": "" + }, + "manage-library": { + "title": "", + "add-library": "", + "no-data": "", + "loading": "", + "last-scanned-title": "", + "shared-folders-title": "", + "type-title": "", + "scan-library": "", + "delete-library": "", + "delete-library-by-name": "", + "edit-library": "", + "edit-library-by-name": "" + }, + "manage-media-settings": { + "encode-as-description-part-1": "", + "encode-as-description-part-2": "", + "encode-as-description-part-3": "", + "encode-as-warning": "", + "media-warning": "", + "encode-as-label": "", + "encode-as-tooltip": "", + "bookmark-dir-label": "", + "bookmark-dir-tooltip": "", + "change": "", + "reset-to-default": "", + "reset": "", + "save": "", + "media-issue-title": "", + "scrobble-issue-title": "" + }, + "manage-scrobble-errors": { + "description": "", + "filter-label": "", + "clear-errors": "", + "series-header": "", + "created-header": "", + "comment-header": "", + "edit-header": "", + "edit-item-alt": "" + }, + "default-date-pipe": { + "never": "" + }, + "manage-settings": { + "notice": "", + "restart-required": "", + "base-url-label": "", + "base-url-tooltip": "", + "ip-address-label": "", + "ip-address-tooltip": "", + "port-label": "", + "port-tooltip": "", + "backup-label": "", + "backup-tooltip": "", + "log-label": "", + "log-tooltip": "", + "logging-level-label": "", + "logging-level-tooltip": "", + "cache-size-label": "", + "cache-size-tooltip": "", + "on-deck-last-progress-label": "", + "on-deck-last-progress-tooltip": "", + "on-deck-last-chapter-add-label": "", + "on-deck-last-chapter-add-tooltip": "", + "allow-stats-label": "", + "allow-stats-tooltip-part-1": "", + "allow-stats-tooltip-part-2": "", + "send-data": "", + "opds-label": "", + "opds-tooltip": "", + "enable-opds": "", + "folder-watching-label": "", + "folder-watching-tooltip": "", + "enable-folder-watching": "", + "reset-to-default": "", + "reset": "", + "save": "", + "cache-size-validation": "", + "field-required": "", + "max-logs-validation": "", + "min-logs-validation": "", + "min-days-validation": "", + "min-cache-validation": "", + "max-backup-validation": "", + "min-backup-validation": "", + "ip-address-validation": "", + "base-url-validation": "" + }, + "manage-system": { + "title": "", + "version-title": "", + "installId-title": "", + "more-info-title": "", + "home-page-title": "", + "wiki-title": "", + "discord-title": "", + "donations-title": "", + "source-title": "", + "feature-request-title": "" + }, + "manage-tasks-settings": { + "title": "", + "library-scan-label": "", + "library-scan-tooltip": "", + "library-database-backup-label": "", + "library-database-backup-tooltip": "", + "adhoc-tasks-title": "", + "job-title-header": "", + "description-header": "", + "action-header": "", + "reset-to-default": "", + "reset": "", + "save": "", + "recurring-tasks-title": "", + "last-executed-header": "", + "cron-header": "", + "convert-media-task": "", + "convert-media-task-desc": "", + "convert-media-success": "", + "bust-cache-task": "", + "bust-cache-task-desc": "", + "bust-cache-task-success": "", + "clear-reading-cache-task": "", + "clear-reading-cache-task-desc": "", + "clear-reading-cache-task-success": "", + "clean-up-want-to-read-task": "", + "clean-up-want-to-read-task-desc": "", + "clean-up-want-to-read-task-success": "", + "backup-database-task": "", + "backup-database-task-desc": "", + "backup-database-task-success": "", + "download-logs-task": "", + "download-logs-task-desc": "", + "analyze-files-task": "", + "analyze-files-task-desc": "", + "analyze-files-task-success": "", + "check-for-updates-task": "", + "check-for-updates-task-desc": "" + }, + "manage-users": { + "title": "", + "invite": "", + "you-alt": "", + "pending-title": "", + "delete-user-tooltip": "", + "delete-user-alt": "", + "edit-user-tooltip": "", + "edit-user-alt": "", + "resend-invite-tooltip": "", + "resend-invite-alt": "", + "setup-user-tooltip": "", + "setup-user-alt": "", + "change-password-tooltip": "", + "change-password-alt": "", + "resend": "", + "setup": "", + "last-active-title": "", + "roles-title": "", + "none": "", + "never": "", + "online-now-tooltip": "", + "sharing-title": "", + "no-data": "", + "loading": "" + }, + "edit-collection-tags": { + "title": "", + "required-field": "", + "save": "", + "close": "", + "cancel": "", + "general-tab": "", + "cover-image-tab": "", + "series-tab": "", + "name-label": "", + "name-validation": "", + "promote-label": "", + "promote-tooltip": "", + "summary-label": "", + "series-title": "", + "deselect-all": "", + "select-all": "" + }, + "library-detail": { + "library-tab": "", + "recommended-tab": "" + }, + "library-recommended": { + "no-data": "", + "more-in-genre": "", + "rediscover": "", + "highly-rated": "", + "quick-catchups": "", + "quick-reads": "", + "on-deck": "" + }, + "admin-dashboard": { + "title": "", + "general-tab": "", + "users-tab": "", + "libraries-tab": "", + "media-tab": "", + "logs-tab": "", + "email-tab": "", + "tasks-tab": "", + "statistics-tab": "", + "system-tab": "", + "kavita+-tab": "", + "kavita+-desc-part-1": "", + "kavita+-desc-part-2": "", + "kavita+-desc-part-3": "" + }, + "collection-detail": { + "no-data": "", + "no-data-filtered": "", + "title-alt": "" + }, + "all-collections": { + "title": "", + "item-count": "", + "no-data": "", + "create-one-part-1": "", + "create-one-part-2": "" + }, + "carousel-reel": { + "prev-items": "", + "next-items": "" + }, + "draggable-ordered-list": { + "instructions-alt": "", + "reorder-label": "", + "remove-item-alt": "" + }, + "reading-lists": { + "title": "", + "item-count": "", + "no-data": "", + "create-one-part-1": "", + "create-one-part-2": "" + }, + "reading-list-item": { + "remove": "", + "read": "" + }, + "reading-list-detail": { + "item-count": "", + "page-settings-title": "", + "remove-read": "", + "order-numbers-label": "", + "continue": "", + "read": "", + "read-options-alt": "", + "incognito-alt": "", + "no-data": "" + }, + "events-widget": { + "title-alt": "", + "dismiss-all": "", + "update-available": "", + "downloading-item": "", + "more-info": "", + "close": "", + "users-online-count": "", + "active-events-title": "", + "no-data": "" + }, + "shortcuts-modal": { + "title": "", + "close": "", + "prev-page": "", + "next-page": "", + "go-to": "", + "bookmark": "", + "double-click": "", + "close-reader": "", + "toggle-menu": "" + }, + "grouped-typeahead": { + "files": "", + "chapters": "", + "people": "", + "tags": "", + "genres": "", + "libraries": "", + "reading-lists": "", + "collections": "", + "close": "", + "loading": "" + }, + "nav-header": { + "skip-alt": "", + "search-series-alt": "", + "search-alt": "", + "promoted": "", + "no-data": "", + "scroll-to-top-alt": "", + "server-settings": "", + "settings": "", + "help": "", + "announcements": "", + "logout": "" + }, + "add-to-list-modal": { + "title": "", + "close": "", + "filter-label": "", + "promoted-alt": "", + "no-data": "", + "loading": "", + "reading-list-label": "", + "create": "" + }, + "edit-reading-list-modal": { + "title": "", + "general-tab": "", + "cover-image-tab": "", + "close": "", + "save": "", + "year-validation": "", + "month-validation": "", + "name-unique-validation": "", + "required-field": "", + "summary-label": "", + "year-label": "", + "month-label": "", + "ending-title": "", + "starting-title": "", + "promote-label": "", + "promote-tooltip": "" + }, + "import-cbl-modal": { + "close": "", + "title": "", + "import-description": "", + "validate-description": "", + "validate-warning": "", + "validate-no-issue": "", + "validate-no-issue-description": "", + "dry-run-description": "", + "prev": "", + "import": "", + "restart": "", + "next": "", + "import-step": "", + "validate-cbl-step": "", + "dry-run-step": "", + "final-import-step": "" + }, + "pdf-reader": { + "loading-message": "", + "incognito-mode": "", + "light-theme-alt": "", + "dark-theme-alt": "", + "close-reader-alt": "" + }, + "infinite-reader": { + "continuous-reading-prev-chapter-alt": "", + "continuous-reading-prev-chapter": "", + "continuous-reading-next-chapter-alt": "", + "continuous-reading-next-chapter": "" + }, + "manga-reader": { + "back": "", + "save-globally": "", + "incognito-alt": "", + "incognito-title": "", + "shortcuts-menu-alt": "", + "prev-page-tooltip": "", + "next-page-tooltip": "", + "prev-chapter-tooltip": "", + "next-chapter-tooltip": "", + "first-page-tooltip": "", + "last-page-tooltip": "", + "left-to-right-alt": "", + "right-to-left-alt": "", + "reading-direction-tooltip": "", + "reading-mode-tooltip": "", + "collapse": "", + "fullscreen": "", + "settings-tooltip": "", + "image-splitting-label": "", + "image-scaling-label": "", + "height": "", + "width": "", + "original": "", + "auto-close-menu-label": "", + "swipe-enabled-label": "", + "enable-comic-book-label": "", + "brightness-label": "", + "first-time-reading-manga": "", + "layout-mode-switched": "", + "no-next-chapter": "", + "no-prev-chapter": "", + "user-preferences-updated": "" + }, + "metadata-filter": { + "filter-title": "", + "format-label": "", + "format-tooltip": "", + "libraries-label": "", + "collections-label": "", + "genres-label": "", + "tags-label": "", + "cover-artist-label": "", + "writer-label": "", + "publisher-label": "", + "penciller-label": "", + "letterer-label": "", + "inker-label": "", + "editor-label": "", + "colorist-label": "", + "character-label": "", + "translator-label": "", + "read-progress-label": "", + "unread": "", + "read": "", + "in-progress": "", + "rating-label": "", + "age-rating-label": "", + "language-label": "", + "publication-status-label": "", + "series-name-label": "", + "series-name-tooltip": "", + "release-label": "", + "min": "", + "max": "", + "sort-by-label": "", + "ascending-alt": "", + "descending-alt": "", + "reset": "", + "apply": "" + }, + "sort-field-pipe": { + "sort-name": "", + "created": "", + "last-modified": "", + "last-chapter-added": "", + "time-to-read": "", + "release-year": "" + }, + "edit-series-modal": { + "title": "", + "general-tab": "", + "metadata-tab": "", + "people-tab": "", + "web-links-tab": "", + "cover-image-tab": "", + "related-tab": "", + "info-tab": "", + "collections-label": "", + "genres-label": "", + "tags-label": "", + "cover-artist-label": "", + "writer-label": "", + "publisher-label": "", + "penciller-label": "", + "letterer-label": "", + "inker-label": "", + "editor-label": "", + "colorist-label": "", + "character-label": "", + "translator-label": "", + "language-label": "", + "age-rating-label": "", + "publication-status-label": "", + "required-field": "", + "close": "", + "name-label": "", + "sort-name-label": "", + "localized-name-label": "", + "summary-label": "", + "release-year-label": "", + "web-link-description": "", + "web-link-label": "", + "add-link-alt": "", + "remove-link-alt": "", + "cover-image-description": "", + "save": "", + "field-locked-alt": "", + "info-title": "", + "library-title": "", + "format-title": "", + "created-title": "", + "last-read-title": "", + "last-added-title": "", + "last-scanned-title": "", + "folder-path-title": "", + "publication-status-title": "", + "total-pages-title": "", + "total-items-title": "", + "max-items-title": "", + "size-title": "", + "loading": "", + "added-title": "", + "last-modified-title": "", + "view-files": "", + "pages-title": "", + "chapter-title": "", + "volume-num": "", + "highest-count-tooltip": "", + "max-issue-tooltip": "" + }, + "day-breakdown": { + "title": "", + "x-axis-label": "", + "y-axis-label": "" + }, + "file-breakdown-stats": { + "format-title": "", + "format-tooltip": "", + "visualisation-label": "", + "data-table-label": "", + "extension-header": "", + "format-header": "", + "total-size-header": "", + "total-files-header": "", + "not-classified": "", + "total-file-size-title": "" + }, + "reading-activity": { + "title": "", + "legend-label": "", + "x-axis-label": "", + "y-axis-label": "", + "no-data": "", + "time-frame-label": "", + "this-week": "", + "last-7-days": "", + "last-30-days": "", + "last-90-days": "", + "last-year": "", + "all-time": "" + }, + "manga-format-stats": { + "title": "", + "visualisation-label": "", + "data-table-label": "", + "format-header": "", + "count-header": "" + }, + "publication-status-stats": { + "title": "", + "visualisation-label": "", + "data-table-label": "", + "year-header": "", + "count-header": "" + }, + "server-stats": { + "total-series-label": "", + "total-series-tooltip": "", + "total-volumes-label": "", + "total-volumes-tooltip": "", + "total-files-label": "", + "total-files-tooltip": "", + "total-size-label": "", + "total-genres-label": "", + "total-genres-tooltip": "", + "total-tags-label": "", + "total-tags-tooltip": "", + "total-people-label": "", + "total-people-tooltip": "", + "total-read-time-label": "", + "total-read-time-tooltip": "", + "series": "", + "reads": "", + "release-years-title": "", + "most-active-users-title": "", + "popular-libraries-title": "", + "popular-series-title": "", + "recently-read-title": "", + "genre-count": "", + "tag-count": "", + "people-count": "", + "tags": "", + "people": "", + "genres": "" + }, + "errors": { + "series-doesnt-exist": "", + "collection-invalid-access": "", + "unknown-crit": "", + "user-not-auth": "", + "error-code": "", + "download": "", + "not-found": "", + "generic": "", + "rejected-cover-upload": "", + "invalid-confirmation-url": "", + "invalid-confirmation-email": "", + "invalid-password-reset-url": "" + }, + "toasts": { + "regen-cover": "", + "no-pages": "", + "download-in-progress": "", + "scan-queued": "", + "server-settings-updated": "", + "reset-ip-address": "", + "reset-base-url": "", + "unauthorized-1": "", + "unauthorized-2": "", + "no-updates": "", + "confirm-delete-user": "", + "user-deleted": "", + "email-sent-to-user": "", + "click-email-link": "", + "series-added-to-collection": "", + "no-series-collection-warning": "", + "collection-updated": "", + "reading-list-deleted": "", + "reading-list-updated": "", + "confirm-delete-reading-list": "", + "item-removed": "", + "nothing-to-remove": "", + "series-added-to-reading-list": "", + "volumes-added-to-reading-list": "", + "chapter-added-to-reading-list": "", + "multiple-added-to-reading-list": "", + "select-files-warning": "", + "reading-list-imported": "", + "incognito-off": "", + "email-service-reset": "", + "email-service-reachable": "", + "email-service-unresponsive": "", + "refresh-covers-queued": "", + "library-file-analysis-queued": "", + "entity-read": "", + "entity-unread": "", + "mark-read": "", + "mark-unread": "", + "series-removed-want-to-read": "", + "series-deleted": "", + "file-send-to": "", + "theme-missing": "", + "email-sent": "", + "k+-license-saved": "", + "k+-unlocked": "", + "k+-error": "", + "k+-delete-key": "", + "library-deleted": "", + "copied-to-clipboard": "", + "book-settings-info": "", + "no-next-chapter": "", + "no-prev-chapter": "", + "load-next-chapter": "", + "load-prev-chapter": "", + "account-registration-complete": "", + "account-migration-complete": "", + "password-reset": "", + "password-updated": "", + "forced-scan-queued": "", + "library-created": "", + "anilist-token-updated": "", + "age-restriction-updated": "", + "email-sent-to-no-existing": "", + "email-sent-to": "", + "change-email-private": "", + "device-updated": "", + "device-created": "", + "confirm-regen-covers": "", + "alert-long-running": "", + "confirm-delete-multiple-series": "", + "confirm-delete-series": "", + "alert-bad-theme": "", + "confirm-library-delete": "", + "confirm-library-type-change": "", + "confirm-download-size": "" + }, + "actionable": { + "scan-library": "", + "refresh-covers": "", + "analyze-files": "", + "settings": "", + "edit": "", + "mark-as-read": "", + "mark-as-unread": "", + "scan-series": "", + "add-to": "", + "add-to-want-to-read": "", + "remove-from-want-to-read": "", + "remove-from-on-deck": "", + "others": "", + "add-to-reading-list": "", + "add-to-collection": "", + "send-to": "", + "delete": "", + "download": "", + "read-incognito": "", + "details": "", + "view-series": "", + "clear": "", + "import-cbl": "" + }, + "preferences": { + "left-to-right": "", + "right-to-left": "", + "horizontal": "", + "vertical": "", + "automatic": "", + "fit-to-height": "", + "fit-to-width": "", + "original": "", + "fit-to-screen": "", + "no-split": "", + "webtoon": "", + "single": "", + "double": "", + "double-manga": "", + "scroll": "", + "1-column": "", + "2-column": "", + "cards": "", + "list": "", + "up-to-down": "" + }, + "validation": { + "required-field": "", + "valid-email": "", + "password-validation": "" + }, + "entity-type": { + "volume": "", + "chapter": "", + "series": "", + "bookmark": "", + "logs": "" + }, + "common": { + "reset-to-default": "", + "close": "", + "cancel": "", + "create": "", + "save": "", + "reset": "", + "add": "", + "apply": "", + "delete": "", + "edit": "", + "help": "", + "submit": "", + "email": "", + "read": "", + "loading": "", + "username": "", + "password": "", + "promoted": "", + "select-all": "", + "deselect-all": "", + "series-count": "", + "item-count": "", + "book-num": "", + "issue-hash-num": "", + "issue-num": "", + "chapter-num": "", + "volume-num": "" + } +} diff --git a/UI/Web/src/assets/langs/ja.json b/UI/Web/src/assets/langs/ja.json index f388bc185..08aee803e 100644 --- a/UI/Web/src/assets/langs/ja.json +++ b/UI/Web/src/assets/langs/ja.json @@ -47,7 +47,7 @@ "chapter-read": "", "score-updated": "", "want-to-read-add": "読みたい:追加", - "want-to-read-remove": "", + "want-to-read-remove": "読みたい:消除", "review": "" }, "spoiler": { @@ -56,7 +56,7 @@ "review-series-modal": { "title": "", "tagline-label": "", - "review-label": "", + "review-label": "レビュー", "close": "", "save": "" }, @@ -69,7 +69,7 @@ "review-card": { "your-review": "", "external-review": "", - "local-review": "", + "local-review": "レビュー", "rating-percentage": "" }, "want-to-read": { @@ -239,7 +239,7 @@ "save": "" }, "api-key": { - "copy": "", + "copy": "コピー", "regen-warning": "", "no-key": "", "confirm-reset": "", @@ -312,7 +312,7 @@ "path-placeholder": "", "instructions": "", "type-header": "", - "name-header": "", + "name-header": "名前", "cancel": "", "share": "", "help": "" @@ -339,13 +339,13 @@ "custom": "" }, "day-of-week-pipe": { - "monday": "", - "tuesday": "", - "wednesday": "", - "thursday": "", - "friday": "", - "saturday": "", - "sunday": "" + "monday": "月曜日", + "tuesday": "火曜日", + "wednesday": "水曜日", + "thursday": "木曜日", + "friday": "金曜日", + "saturday": "土曜日", + "sunday": "日曜日" }, "cbl-import-result-pipe": { "success": "", @@ -388,9 +388,9 @@ "adaptation": "", "alternative-setting": "", "alternative-version": "", - "character": "", + "character": "キャラクター", "contains": "", - "doujinshi": "", + "doujinshi": "同人誌", "other": "", "prequel": "", "sequel": "", @@ -540,7 +540,7 @@ "next-chapter": "", "skip-header": "", "virtual-pages": "", - "settings-header": "", + "settings-header": "設定", "table-of-contents-header": "", "bookmarks-header": "", "toc-header": "", @@ -548,7 +548,7 @@ "go-back": "", "incognito-mode-alt": "", "incognito-mode-label": "", - "next": "", + "next": "次へ", "previous": "" }, "personal-table-of-contents": { @@ -583,7 +583,7 @@ "password-validation": "" }, "register": { - "title": "", + "title": "登録", "description": "", "username-label": "", "email-label": "", @@ -609,7 +609,7 @@ "add-to-want-to-read": "", "edit-series-alt": "", "download-series--tooltip": "", - "downloading-status": "", + "downloading-status": "ダウンロード中。。。", "user-reviews-alt": "", "storyline-tab": "", "books-tab": "", @@ -1472,7 +1472,7 @@ "title": "", "visualisation-label": "", "data-table-label": "", - "year-header": "", + "year-header": "年", "count-header": "" }, "server-stats": { @@ -1601,7 +1601,7 @@ "refresh-covers": "", "analyze-files": "", "settings": "", - "edit": "", + "edit": "編集", "mark-as-read": "", "mark-as-unread": "", "scan-series": "", @@ -1613,8 +1613,8 @@ "add-to-reading-list": "", "add-to-collection": "", "send-to": "", - "delete": "", - "download": "", + "delete": "削除", + "download": "ダウンロード", "read-incognito": "", "details": "", "view-series": "", @@ -1670,7 +1670,7 @@ "submit": "", "email": "", "read": "", - "loading": "", + "loading": "読み込み中。。。", "username": "", "password": "", "promoted": "", diff --git a/UI/Web/src/assets/langs/ms.json b/UI/Web/src/assets/langs/ms.json new file mode 100644 index 000000000..cc54d35b3 --- /dev/null +++ b/UI/Web/src/assets/langs/ms.json @@ -0,0 +1,1687 @@ +{ + "login": { + "title": "", + "username": "", + "password": "", + "password-validation": "", + "forgot-password": "", + "submit": "" + }, + "dashboard": { + "no-libraries": "", + "server-settings-link": "", + "not-granted": "", + "on-deck-title": "", + "recently-updated-title": "", + "recently-added-title": "" + }, + "edit-user": { + "edit": "", + "close": "", + "username": "", + "required": "", + "email": "", + "not-valid-email": "", + "cancel": "", + "saving": "", + "update": "" + }, + "user-scrobble-history": { + "title": "", + "description": "", + "filter-label": "", + "created-header": "", + "last-modified-header": "", + "type-header": "", + "series-header": "", + "data-header": "", + "is-processed-header": "", + "no-data": "", + "volume-and-chapter-num": "", + "rating": "", + "not-applicable": "", + "processed": "", + "not-processed": "" + }, + "scrobble-event-type-pipe": { + "chapter-read": "", + "score-updated": "", + "want-to-read-add": "", + "want-to-read-remove": "", + "review": "" + }, + "spoiler": { + "click-to-show": "" + }, + "review-series-modal": { + "title": "", + "tagline-label": "", + "review-label": "", + "close": "", + "save": "" + }, + "review-card-modal": { + "close": "", + "user-review": "", + "external-mod": "", + "go-to-review": "" + }, + "review-card": { + "your-review": "", + "external-review": "", + "local-review": "", + "rating-percentage": "" + }, + "want-to-read": { + "title": "", + "series-count": "", + "no-items": "", + "no-items-filtered": "" + }, + "user-preferences": { + "title": "", + "pref-description": "", + "account-tab": "", + "preferences-tab": "", + "3rd-party-clients-tab": "", + "theme-tab": "", + "devices-tab": "", + "stats-tab": "", + "scrobbling-tab": "", + "success-toast": "", + "global-settings-title": "", + "page-layout-mode-label": "", + "page-layout-mode-tooltip": "", + "locale-label": "", + "locale-tooltip": "", + "blur-unread-summaries-label": "", + "blur-unread-summaries-tooltip": "", + "prompt-on-download-label": "", + "prompt-on-download-tooltip": "", + "disable-animations-label": "", + "disable-animations-tooltip": "", + "collapse-series-relationships-label": "", + "collapse-series-relationships-tooltip": "", + "share-series-reviews-label": "", + "share-series-reviews-tooltip": "", + "image-reader-settings-title": "", + "reading-direction-label": "", + "reading-direction-tooltip": "", + "scaling-option-label": "", + "scaling-option-tooltip": "", + "page-splitting-label": "", + "page-splitting-tooltip": "", + "reading-mode-label": "", + "layout-mode-label": "", + "layout-mode-tooltip": "", + "background-color-label": "", + "auto-close-menu-label": "", + "show-screen-hints-label": "", + "emulate-comic-book-label": "", + "swipe-to-paginate-label": "", + "book-reader-settings-title": "", + "tap-to-paginate-label": "", + "tap-to-paginate-tooltip": "", + "immersive-mode-label": "", + "immersive-mode-tooltip": "", + "reading-direction-book-label": "", + "reading-direction-book-tooltip": "", + "font-family-label": "", + "font-family-tooltip": "", + "writing-style-label": "", + "writing-style-tooltip": "", + "layout-mode-book-label": "", + "layout-mode-book-tooltip": "", + "color-theme-book-label": "", + "color-theme-book-tooltip": "", + "font-size-book-label": "", + "line-height-book-label": "", + "line-height-book-tooltip": "", + "margin-book-label": "", + "margin-book-tooltip": "", + "clients-opds-alert": "", + "clients-opds-description": "", + "clients-api-key-tooltip": "", + "clients-opds-url-tooltip": "", + "reset": "", + "save": "" + }, + "user-holds": { + "title": "", + "description": "" + }, + "theme-manager": { + "title": "", + "looking-for-theme": "", + "looking-for-theme-continued": "", + "scan": "", + "site-themes": "", + "set-default": "", + "apply": "", + "applied": "", + "updated-toastr": "", + "scan-queued": "" + }, + "theme": { + "theme-dark": "", + "theme-black": "", + "theme-paper": "", + "theme-white": "" + }, + "restriction-selector": { + "title": "", + "description": "", + "not-applicable-for-admins": "", + "age-rating-label": "", + "no-restriction": "", + "include-unknowns-label": "", + "include-unknowns-tooltip": "" + }, + "site-theme-provider-pipe": { + "system": "", + "user": "" + }, + "manage-devices": { + "title": "", + "description": "", + "devices-title": "", + "no-devices": "", + "platform-label": "", + "email-label": "", + "add": "", + "delete": "", + "edit": "" + }, + "edit-device": { + "device-name-label": "", + "email-label": "", + "email-tooltip": "", + "device-platform-label": "", + "save": "", + "required-field": "", + "valid-email": "" + }, + "change-password": { + "password-label": "", + "current-password-label": "", + "new-password-label": "", + "confirm-password-label": "", + "reset": "", + "edit": "", + "cancel": "", + "save": "", + "required-field": "", + "passwords-must-match": "", + "permission-error": "" + }, + "change-email": { + "email-label": "", + "current-password-label": "", + "email-not-confirmed": "", + "email-updated-title": "", + "email-updated-description": "", + "setup-user-account": "", + "invite-url-label": "", + "invite-url-tooltip": "", + "permission-error": "", + "required-field": "", + "reset": "", + "edit": "", + "cancel": "", + "save": "" + }, + "change-age-restriction": { + "age-restriction-label": "", + "unknowns": "", + "reset": "", + "edit": "", + "cancel": "", + "save": "" + }, + "api-key": { + "copy": "", + "regen-warning": "", + "no-key": "", + "confirm-reset": "", + "key-reset": "" + }, + "scrobbling-providers": { + "title": "", + "requires": "", + "token-expired": "", + "no-token-set": "", + "token-set": "", + "generate": "", + "instructions": "", + "token-input-label": "", + "edit": "", + "cancel": "", + "save": "" + }, + "typeahead": { + "locked-field": "", + "close": "", + "loading": "", + "add-item": "", + "no-data": "", + "add-custom-item": "" + }, + "generic-list-modal": { + "close": "", + "clear": "", + "filter": "", + "open-filtered-search": "" + }, + "user-stats-info-cards": { + "total-pages-read-label": "", + "total-pages-read-tooltip": "", + "total-words-read-label": "", + "total-words-read-tooltip": "", + "time-spent-reading-label": "", + "time-spent-reading-tooltip": "", + "chapters-read-label": "", + "chapters-read-tooltip": "", + "avg-reading-per-week-label": "", + "last-active-label": "", + "chapters": "" + }, + "user-stats": { + "library-read-progress-title": "", + "read-percentage": "" + }, + "top-readers": { + "title": "", + "time-selection-label": "", + "comics-label": "", + "manga-label": "", + "books-label": "", + "this-week": "", + "last-7-days": "", + "last-30-days": "", + "last-90-days": "", + "last-year": "", + "all-time": "" + }, + "role-selector": { + "title": "" + }, + "directory-picker": { + "title": "", + "close": "", + "path-label": "", + "path-placeholder": "", + "instructions": "", + "type-header": "", + "name-header": "", + "cancel": "", + "share": "", + "help": "" + }, + "library-access-modal": { + "select-all": "", + "deselect-all": "", + "title": "", + "close": "", + "reset": "", + "cancel": "", + "save": "", + "no-data": "" + }, + "time-periods": { + "this-week": "", + "last-7-days": "", + "last-30-days": "", + "last-90-days": "", + "last-year": "", + "all-time": "" + }, + "device-platform-pipe": { + "custom": "" + }, + "day-of-week-pipe": { + "monday": "", + "tuesday": "", + "wednesday": "", + "thursday": "", + "friday": "", + "saturday": "", + "sunday": "" + }, + "cbl-import-result-pipe": { + "success": "", + "partial": "", + "failure": "" + }, + "cbl-conflict-reason-pipe": { + "all-series-missing": "", + "chapter-missing": "", + "empty-file": "", + "name-conflict": "", + "series-collision": "", + "series-missing": "", + "volume-missing": "", + "all-chapter-missing": "", + "invalid-file": "", + "success": "" + }, + "time-duration-pipe": { + "hours": "", + "minutes": "", + "days": "", + "months": "", + "years": "" + }, + "time-ago-pipe": { + "just-now": "", + "min-ago": "", + "mins-ago": "", + "hour-ago": "", + "hours-ago": "", + "day-ago": "", + "days-ago": "", + "month-ago": "", + "months-ago": "", + "year-ago": "", + "years-ago": "" + }, + "relationship-pipe": { + "adaptation": "", + "alternative-setting": "", + "alternative-version": "", + "character": "", + "contains": "", + "doujinshi": "", + "other": "", + "prequel": "", + "sequel": "", + "side-story": "", + "spin-off": "", + "parent": "", + "edition": "" + }, + "publication-status-pipe": { + "ongoing": "", + "hiatus": "", + "completed": "", + "cancelled": "", + "ended": "" + }, + "person-role-pipe": { + "artist": "", + "character": "", + "colorist": "", + "cover-artist": "", + "editor": "", + "inker": "", + "letterer": "", + "penciller": "", + "publisher": "", + "writer": "", + "other": "" + }, + "manga-format-pipe": { + "epub": "", + "archive": "", + "image": "", + "pdf": "", + "unknown": "" + }, + "library-type-pipe": { + "book": "", + "comic": "", + "manga": "" + }, + "age-rating-pipe": { + "unknown": "", + "early-childhood": "", + "adults-only": "", + "everyone": "", + "everyone-10-plus": "", + "g": "", + "kids-to-adults": "", + "mature": "", + "ma15-plus": "", + "mature-17-plus": "", + "rating-pending": "", + "teen": "", + "x18-plus": "", + "not-applicable": "", + "pg": "", + "r18-plus": "" + }, + "reset-password": { + "title": "", + "description": "", + "email-label": "", + "required-field": "", + "valid-email": "", + "submit": "" + }, + "reset-password-modal": { + "title": "", + "new-password-label": "", + "error-label": "", + "close": "", + "cancel": "", + "save": "" + }, + "all-series": { + "series-count": "" + }, + "announcements": { + "title": "" + }, + "changelog": { + "installed": "", + "download": "", + "published-label": "", + "available": "", + "description": "", + "description-continued": "" + }, + "invite-user": { + "title": "", + "close": "", + "description": "", + "email": "", + "required-field": "", + "setup-user-title": "", + "setup-user-description": "", + "setup-user-account": "", + "setup-user-account-tooltip": "", + "invite-url-label": "", + "invite": "", + "inviting": "", + "cancel": "" + }, + "library-selector": { + "title": "", + "select-all": "", + "deselect-all": "", + "no-data": "" + }, + "license": { + "title": "", + "manage": "", + "invalid-license-tooltip": "", + "check": "", + "cancel": "", + "edit": "", + "buy": "", + "activate": "", + "renew": "", + "no-license-key": "", + "license-valid": "", + "license-not-valid": "", + "loading": "", + "activate-description": "", + "activate-license-label": "", + "activate-email-label": "", + "activate-delete": "", + "activate-save": "" + }, + "book-line-overlay": { + "copy": "", + "bookmark": "", + "close": "", + "required-field": "", + "bookmark-label": "", + "save": "" + }, + "book-reader": { + "title": "", + "page-label": "", + "pagination-header": "", + "go-to-page": "", + "go-to-last-page": "", + "prev-page": "", + "next-page": "", + "prev-chapter": "", + "next-chapter": "", + "skip-header": "", + "virtual-pages": "", + "settings-header": "", + "table-of-contents-header": "", + "bookmarks-header": "", + "toc-header": "", + "loading-book": "", + "go-back": "", + "incognito-mode-alt": "", + "incognito-mode-label": "", + "next": "", + "previous": "" + }, + "personal-table-of-contents": { + "no-data": "", + "page": "", + "delete": "" + }, + "confirm-email": { + "title": "", + "description": "", + "error-label": "", + "username-label": "", + "password-label": "", + "email-label": "", + "required-field": "", + "valid-email": "", + "password-validation": "", + "register": "" + }, + "confirm-email-change": { + "title": "", + "non-confirm-description": "", + "confirm-description": "", + "success": "" + }, + "confirm-reset-password": { + "title": "", + "description": "", + "password-label": "", + "required-field": "", + "submit": "", + "password-validation": "" + }, + "register": { + "title": "", + "description": "", + "username-label": "", + "email-label": "", + "email-tooltip": "", + "password-label": "", + "required-field": "", + "valid-email": "", + "password-validation": "", + "register": "" + }, + "series-detail": { + "page-settings-title": "", + "close": "", + "layout-mode-label": "", + "layout-mode-option-card": "", + "layout-mode-option-list": "", + "continue-from": "", + "read": "", + "continue": "", + "read-options-alt": "", + "incognito": "", + "remove-from-want-to-read": "", + "add-to-want-to-read": "", + "edit-series-alt": "", + "download-series--tooltip": "", + "downloading-status": "", + "user-reviews-alt": "", + "storyline-tab": "", + "books-tab": "", + "volumes-tab": "", + "specials-tab": "", + "related-tab": "", + "recommendations-tab": "", + "send-to": "", + "no-pages": "", + "no-chapters": "", + "cover-change": "" + }, + "series-metadata-detail": { + "links-title": "", + "genres-title": "", + "tags-title": "", + "collections-title": "", + "reading-lists-title": "", + "writers-title": "", + "cover-artists-title": "", + "characters-title": "", + "colorists-title": "", + "editors-title": "", + "inkers-title": "", + "letterers-title": "", + "translators-title": "", + "pencillers-title": "", + "publishers-title": "", + "promoted": "", + "see-more": "", + "see-less": "" + }, + "badge-expander": { + "more-items": "" + }, + "read-more": { + "read-more": "", + "read-less": "" + }, + "update-notification-modal": { + "title": "", + "close": "", + "help": "", + "download": "" + }, + "side-nav-companion-bar": { + "page-settings-title": "", + "open-filter-and-sort": "", + "close-filter-and-sort": "", + "filter-and-sort-alt": "" + }, + "side-nav": { + "home": "", + "want-to-read": "", + "collections": "", + "reading-lists": "", + "bookmarks": "", + "filter-label": "", + "all-series": "", + "clear": "", + "donate": "" + }, + "library-settings-modal": { + "close": "", + "edit-title": "", + "add-title": "", + "general-tab": "", + "folder-tab": "", + "cover-tab": "", + "advanced-tab": "", + "name-label": "", + "library-name-unique": "", + "last-scanned-label": "", + "type-label": "", + "type-tooltip": "", + "folder-description": "", + "browse": "", + "help-us-part-1": "", + "help-us-part-2": "", + "help-us-part-3": "", + "naming-conventions-part-1": "", + "naming-conventions-part-2": "", + "naming-conventions-part-3": "", + "cover-description": "", + "cover-description-extra": "", + "manage-collection-label": "", + "manage-collection-tooltip": "", + "manage-reading-list-label": "", + "manage-reading-list-tooltip": "", + "allow-scrobbling-label": "", + "allow-scrobbling-tooltip": "", + "folder-watching-label": "", + "folder-watching-tooltip": "", + "include-in-dashboard-label": "", + "include-in-dashboard-tooltip": "", + "include-in-recommendation-label": "", + "include-in-recommendation-tooltip": "", + "include-in-search-label": "", + "include-in-search-tooltip": "", + "force-scan": "", + "force-scan-tooltip": "", + "reset": "", + "cancel": "", + "next": "", + "save": "", + "required-field": "" + }, + "reader-settings": { + "general-settings-title": "", + "font-family-label": "", + "font-size-label": "", + "line-spacing-label": "", + "margin-label": "", + "reset-to-defaults": "", + "reader-settings-title": "", + "reading-direction-label": "", + "right-to-left": "", + "left-to-right": "", + "horizontal": "", + "vertical": "", + "writing-style-label": "", + "writing-style-tooltip": "", + "tap-to-paginate-label": "", + "tap-to-paginate-tooltip": "", + "on": "", + "off": "", + "immersive-mode-label": "", + "immersive-mode-tooltip": "", + "fullscreen-label": "", + "fullscreen-tooltip": "", + "exit": "", + "enter": "", + "layout-mode-label": "", + "layout-mode-tooltip": "", + "layout-mode-option-scroll": "", + "layout-mode-option-1col": "", + "layout-mode-option-2col": "", + "color-theme-title": "", + "theme-dark": "", + "theme-black": "", + "theme-white": "", + "theme-paper": "" + }, + "table-of-contents": { + "no-data": "" + }, + "bookmarks": { + "title": "", + "series-count": "", + "no-data": "", + "no-data-2": "", + "confirm-delete": "", + "confirm-single-delete": "", + "delete-success": "", + "delete-single-success": "" + }, + "bulk-operations": { + "title": "", + "items-selected": "", + "mark-as-unread": "", + "mark-as-read": "", + "deselect-all": "" + }, + "card-detail-drawer": { + "general-tab": "", + "metadata-tab": "", + "cover-tab": "", + "info-tab": "", + "no-summary": "", + "writers-title": "", + "genres-title": "", + "publishers-title": "", + "tags-title": "", + "not-defined": "", + "read": "", + "unread": "", + "files": "", + "pages": "", + "added": "", + "size": "" + }, + "card-detail-layout": { + "total-items": "" + }, + "card-item": { + "cannot-read": "" + }, + "chapter-metadata-detail": { + "no-data": "", + "writers-title": "", + "publishers-title": "", + "characters-title": "", + "translators-title": "", + "letterers-title": "", + "colorists-title": "", + "inkers-title": "", + "pencillers-title": "", + "cover-artists-title": "", + "editors-title": "" + }, + "cover-image-chooser": { + "drag-n-drop": "", + "upload": "", + "upload-continued": "", + "url-label": "", + "load": "", + "back": "", + "reset-cover-tooltip": "", + "reset": "", + "image-num": "", + "apply": "", + "applied": "" + }, + "download-indicator": { + "progress": "" + }, + "edit-series-relation": { + "description-part-1": "", + "description-part-2": "", + "target-series": "", + "relationship": "", + "remove": "", + "add-relationship": "", + "parent": "" + }, + "entity-info-cards": { + "tags-title": "", + "characters-title": "", + "release-date-title": "", + "release-date-tooltip": "", + "age-rating-title": "", + "length-title": "", + "pages-count": "", + "words-count": "", + "reading-time-title": "", + "date-added-title": "", + "size-title": "", + "id-title": "", + "links-title": "", + "isbn-title": "", + "last-read-title": "", + "less-than-hour": "", + "range-hours": "", + "hour": "", + "hours": "", + "read-time-title": "" + }, + "series-info-cards": { + "release-date-title": "", + "release-year-tooltip": "", + "age-rating-title": "", + "language-title": "", + "publication-status-title": "", + "publication-status-tooltip": "", + "scrobbling-title": "", + "scrobbling-tooltip": "", + "on": "", + "off": "", + "disabled": "", + "format-title": "", + "last-read-title": "", + "length-title": "", + "read-time-title": "", + "less-than-hour": "", + "hour": "", + "hours": "", + "time-left-title": "", + "ongoing": "", + "pages-count": "", + "words-count": "" + }, + "bulk-add-to-collection": { + "title": "", + "promoted": "", + "close": "", + "filter-label": "", + "clear": "", + "no-data": "", + "loading": "", + "collection-label": "", + "create": "" + }, + "entity-title": { + "special": "", + "issue-num": "", + "chapter": "" + }, + "external-series-card": { + "open-external": "" + }, + "list-item": { + "read": "" + }, + "manage-alerts": { + "description-part-1": "", + "description-part-2": "", + "filter-label": "", + "clear-alerts": "", + "extension-header": "", + "file-header": "", + "comment-header": "", + "details-header": "" + }, + "manage-email-settings": { + "title": "", + "description": "", + "send-to-warning": "", + "email-url-label": "", + "email-url-tooltip": "", + "reset": "", + "test": "", + "host-name-label": "", + "host-name-tooltip": "", + "host-name-validation": "", + "reset-to-default": "", + "save": "" + }, + "manage-library": { + "title": "", + "add-library": "", + "no-data": "", + "loading": "", + "last-scanned-title": "", + "shared-folders-title": "", + "type-title": "", + "scan-library": "", + "delete-library": "", + "delete-library-by-name": "", + "edit-library": "", + "edit-library-by-name": "" + }, + "manage-media-settings": { + "encode-as-description-part-1": "", + "encode-as-description-part-2": "", + "encode-as-description-part-3": "", + "encode-as-warning": "", + "media-warning": "", + "encode-as-label": "", + "encode-as-tooltip": "", + "bookmark-dir-label": "", + "bookmark-dir-tooltip": "", + "change": "", + "reset-to-default": "", + "reset": "", + "save": "", + "media-issue-title": "", + "scrobble-issue-title": "" + }, + "manage-scrobble-errors": { + "description": "", + "filter-label": "", + "clear-errors": "", + "series-header": "", + "created-header": "", + "comment-header": "", + "edit-header": "", + "edit-item-alt": "" + }, + "default-date-pipe": { + "never": "" + }, + "manage-settings": { + "notice": "", + "restart-required": "", + "base-url-label": "", + "base-url-tooltip": "", + "ip-address-label": "", + "ip-address-tooltip": "", + "port-label": "", + "port-tooltip": "", + "backup-label": "", + "backup-tooltip": "", + "log-label": "", + "log-tooltip": "", + "logging-level-label": "", + "logging-level-tooltip": "", + "cache-size-label": "", + "cache-size-tooltip": "", + "on-deck-last-progress-label": "", + "on-deck-last-progress-tooltip": "", + "on-deck-last-chapter-add-label": "", + "on-deck-last-chapter-add-tooltip": "", + "allow-stats-label": "", + "allow-stats-tooltip-part-1": "", + "allow-stats-tooltip-part-2": "", + "send-data": "", + "opds-label": "", + "opds-tooltip": "", + "enable-opds": "", + "folder-watching-label": "", + "folder-watching-tooltip": "", + "enable-folder-watching": "", + "reset-to-default": "", + "reset": "", + "save": "", + "cache-size-validation": "", + "field-required": "", + "max-logs-validation": "", + "min-logs-validation": "", + "min-days-validation": "", + "min-cache-validation": "", + "max-backup-validation": "", + "min-backup-validation": "", + "ip-address-validation": "", + "base-url-validation": "" + }, + "manage-system": { + "title": "", + "version-title": "", + "installId-title": "", + "more-info-title": "", + "home-page-title": "", + "wiki-title": "", + "discord-title": "", + "donations-title": "", + "source-title": "", + "feature-request-title": "" + }, + "manage-tasks-settings": { + "title": "", + "library-scan-label": "", + "library-scan-tooltip": "", + "library-database-backup-label": "", + "library-database-backup-tooltip": "", + "adhoc-tasks-title": "", + "job-title-header": "", + "description-header": "", + "action-header": "", + "reset-to-default": "", + "reset": "", + "save": "", + "recurring-tasks-title": "", + "last-executed-header": "", + "cron-header": "", + "convert-media-task": "", + "convert-media-task-desc": "", + "convert-media-success": "", + "bust-cache-task": "", + "bust-cache-task-desc": "", + "bust-cache-task-success": "", + "clear-reading-cache-task": "", + "clear-reading-cache-task-desc": "", + "clear-reading-cache-task-success": "", + "clean-up-want-to-read-task": "", + "clean-up-want-to-read-task-desc": "", + "clean-up-want-to-read-task-success": "", + "backup-database-task": "", + "backup-database-task-desc": "", + "backup-database-task-success": "", + "download-logs-task": "", + "download-logs-task-desc": "", + "analyze-files-task": "", + "analyze-files-task-desc": "", + "analyze-files-task-success": "", + "check-for-updates-task": "", + "check-for-updates-task-desc": "" + }, + "manage-users": { + "title": "", + "invite": "", + "you-alt": "", + "pending-title": "", + "delete-user-tooltip": "", + "delete-user-alt": "", + "edit-user-tooltip": "", + "edit-user-alt": "", + "resend-invite-tooltip": "", + "resend-invite-alt": "", + "setup-user-tooltip": "", + "setup-user-alt": "", + "change-password-tooltip": "", + "change-password-alt": "", + "resend": "", + "setup": "", + "last-active-title": "", + "roles-title": "", + "none": "", + "never": "", + "online-now-tooltip": "", + "sharing-title": "", + "no-data": "", + "loading": "" + }, + "edit-collection-tags": { + "title": "", + "required-field": "", + "save": "", + "close": "", + "cancel": "", + "general-tab": "", + "cover-image-tab": "", + "series-tab": "", + "name-label": "", + "name-validation": "", + "promote-label": "", + "promote-tooltip": "", + "summary-label": "", + "series-title": "", + "deselect-all": "", + "select-all": "" + }, + "library-detail": { + "library-tab": "", + "recommended-tab": "" + }, + "library-recommended": { + "no-data": "", + "more-in-genre": "", + "rediscover": "", + "highly-rated": "", + "quick-catchups": "", + "quick-reads": "", + "on-deck": "" + }, + "admin-dashboard": { + "title": "", + "general-tab": "", + "users-tab": "", + "libraries-tab": "", + "media-tab": "", + "logs-tab": "", + "email-tab": "", + "tasks-tab": "", + "statistics-tab": "", + "system-tab": "", + "kavita+-tab": "", + "kavita+-desc-part-1": "", + "kavita+-desc-part-2": "", + "kavita+-desc-part-3": "" + }, + "collection-detail": { + "no-data": "", + "no-data-filtered": "", + "title-alt": "" + }, + "all-collections": { + "title": "", + "item-count": "", + "no-data": "", + "create-one-part-1": "", + "create-one-part-2": "" + }, + "carousel-reel": { + "prev-items": "", + "next-items": "" + }, + "draggable-ordered-list": { + "instructions-alt": "", + "reorder-label": "", + "remove-item-alt": "" + }, + "reading-lists": { + "title": "", + "item-count": "", + "no-data": "", + "create-one-part-1": "", + "create-one-part-2": "" + }, + "reading-list-item": { + "remove": "", + "read": "" + }, + "reading-list-detail": { + "item-count": "", + "page-settings-title": "", + "remove-read": "", + "order-numbers-label": "", + "continue": "", + "read": "", + "read-options-alt": "", + "incognito-alt": "", + "no-data": "" + }, + "events-widget": { + "title-alt": "", + "dismiss-all": "", + "update-available": "", + "downloading-item": "", + "more-info": "", + "close": "", + "users-online-count": "", + "active-events-title": "", + "no-data": "" + }, + "shortcuts-modal": { + "title": "", + "close": "", + "prev-page": "", + "next-page": "", + "go-to": "", + "bookmark": "", + "double-click": "", + "close-reader": "", + "toggle-menu": "" + }, + "grouped-typeahead": { + "files": "", + "chapters": "", + "people": "", + "tags": "", + "genres": "", + "libraries": "", + "reading-lists": "", + "collections": "", + "close": "", + "loading": "" + }, + "nav-header": { + "skip-alt": "", + "search-series-alt": "", + "search-alt": "", + "promoted": "", + "no-data": "", + "scroll-to-top-alt": "", + "server-settings": "", + "settings": "", + "help": "", + "announcements": "", + "logout": "" + }, + "add-to-list-modal": { + "title": "", + "close": "", + "filter-label": "", + "promoted-alt": "", + "no-data": "", + "loading": "", + "reading-list-label": "", + "create": "" + }, + "edit-reading-list-modal": { + "title": "", + "general-tab": "", + "cover-image-tab": "", + "close": "", + "save": "", + "year-validation": "", + "month-validation": "", + "name-unique-validation": "", + "required-field": "", + "summary-label": "", + "year-label": "", + "month-label": "", + "ending-title": "", + "starting-title": "", + "promote-label": "", + "promote-tooltip": "" + }, + "import-cbl-modal": { + "close": "", + "title": "", + "import-description": "", + "validate-description": "", + "validate-warning": "", + "validate-no-issue": "", + "validate-no-issue-description": "", + "dry-run-description": "", + "prev": "", + "import": "", + "restart": "", + "next": "", + "import-step": "", + "validate-cbl-step": "", + "dry-run-step": "", + "final-import-step": "" + }, + "pdf-reader": { + "loading-message": "", + "incognito-mode": "", + "light-theme-alt": "", + "dark-theme-alt": "", + "close-reader-alt": "" + }, + "infinite-reader": { + "continuous-reading-prev-chapter-alt": "", + "continuous-reading-prev-chapter": "", + "continuous-reading-next-chapter-alt": "", + "continuous-reading-next-chapter": "" + }, + "manga-reader": { + "back": "", + "save-globally": "", + "incognito-alt": "", + "incognito-title": "", + "shortcuts-menu-alt": "", + "prev-page-tooltip": "", + "next-page-tooltip": "", + "prev-chapter-tooltip": "", + "next-chapter-tooltip": "", + "first-page-tooltip": "", + "last-page-tooltip": "", + "left-to-right-alt": "", + "right-to-left-alt": "", + "reading-direction-tooltip": "", + "reading-mode-tooltip": "", + "collapse": "", + "fullscreen": "", + "settings-tooltip": "", + "image-splitting-label": "", + "image-scaling-label": "", + "height": "", + "width": "", + "original": "", + "auto-close-menu-label": "", + "swipe-enabled-label": "", + "enable-comic-book-label": "", + "brightness-label": "", + "first-time-reading-manga": "", + "layout-mode-switched": "", + "no-next-chapter": "", + "no-prev-chapter": "", + "user-preferences-updated": "" + }, + "metadata-filter": { + "filter-title": "", + "format-label": "", + "format-tooltip": "", + "libraries-label": "", + "collections-label": "", + "genres-label": "", + "tags-label": "", + "cover-artist-label": "", + "writer-label": "", + "publisher-label": "", + "penciller-label": "", + "letterer-label": "", + "inker-label": "", + "editor-label": "", + "colorist-label": "", + "character-label": "", + "translator-label": "", + "read-progress-label": "", + "unread": "", + "read": "", + "in-progress": "", + "rating-label": "", + "age-rating-label": "", + "language-label": "", + "publication-status-label": "", + "series-name-label": "", + "series-name-tooltip": "", + "release-label": "", + "min": "", + "max": "", + "sort-by-label": "", + "ascending-alt": "", + "descending-alt": "", + "reset": "", + "apply": "" + }, + "sort-field-pipe": { + "sort-name": "", + "created": "", + "last-modified": "", + "last-chapter-added": "", + "time-to-read": "", + "release-year": "" + }, + "edit-series-modal": { + "title": "", + "general-tab": "", + "metadata-tab": "", + "people-tab": "", + "web-links-tab": "", + "cover-image-tab": "", + "related-tab": "", + "info-tab": "", + "collections-label": "", + "genres-label": "", + "tags-label": "", + "cover-artist-label": "", + "writer-label": "", + "publisher-label": "", + "penciller-label": "", + "letterer-label": "", + "inker-label": "", + "editor-label": "", + "colorist-label": "", + "character-label": "", + "translator-label": "", + "language-label": "", + "age-rating-label": "", + "publication-status-label": "", + "required-field": "", + "close": "", + "name-label": "", + "sort-name-label": "", + "localized-name-label": "", + "summary-label": "", + "release-year-label": "", + "web-link-description": "", + "web-link-label": "", + "add-link-alt": "", + "remove-link-alt": "", + "cover-image-description": "", + "save": "", + "field-locked-alt": "", + "info-title": "", + "library-title": "", + "format-title": "", + "created-title": "", + "last-read-title": "", + "last-added-title": "", + "last-scanned-title": "", + "folder-path-title": "", + "publication-status-title": "", + "total-pages-title": "", + "total-items-title": "", + "max-items-title": "", + "size-title": "", + "loading": "", + "added-title": "", + "last-modified-title": "", + "view-files": "", + "pages-title": "", + "chapter-title": "", + "volume-num": "", + "highest-count-tooltip": "", + "max-issue-tooltip": "" + }, + "day-breakdown": { + "title": "", + "x-axis-label": "", + "y-axis-label": "" + }, + "file-breakdown-stats": { + "format-title": "", + "format-tooltip": "", + "visualisation-label": "", + "data-table-label": "", + "extension-header": "", + "format-header": "", + "total-size-header": "", + "total-files-header": "", + "not-classified": "", + "total-file-size-title": "" + }, + "reading-activity": { + "title": "", + "legend-label": "", + "x-axis-label": "", + "y-axis-label": "", + "no-data": "", + "time-frame-label": "", + "this-week": "", + "last-7-days": "", + "last-30-days": "", + "last-90-days": "", + "last-year": "", + "all-time": "" + }, + "manga-format-stats": { + "title": "", + "visualisation-label": "", + "data-table-label": "", + "format-header": "", + "count-header": "" + }, + "publication-status-stats": { + "title": "", + "visualisation-label": "", + "data-table-label": "", + "year-header": "", + "count-header": "" + }, + "server-stats": { + "total-series-label": "", + "total-series-tooltip": "", + "total-volumes-label": "", + "total-volumes-tooltip": "", + "total-files-label": "", + "total-files-tooltip": "", + "total-size-label": "", + "total-genres-label": "", + "total-genres-tooltip": "", + "total-tags-label": "", + "total-tags-tooltip": "", + "total-people-label": "", + "total-people-tooltip": "", + "total-read-time-label": "", + "total-read-time-tooltip": "", + "series": "", + "reads": "", + "release-years-title": "", + "most-active-users-title": "", + "popular-libraries-title": "", + "popular-series-title": "", + "recently-read-title": "", + "genre-count": "", + "tag-count": "", + "people-count": "", + "tags": "", + "people": "", + "genres": "" + }, + "errors": { + "series-doesnt-exist": "", + "collection-invalid-access": "", + "unknown-crit": "", + "user-not-auth": "", + "error-code": "", + "download": "", + "not-found": "", + "generic": "", + "rejected-cover-upload": "", + "invalid-confirmation-url": "", + "invalid-confirmation-email": "", + "invalid-password-reset-url": "" + }, + "toasts": { + "regen-cover": "", + "no-pages": "", + "download-in-progress": "", + "scan-queued": "", + "server-settings-updated": "", + "reset-ip-address": "", + "reset-base-url": "", + "unauthorized-1": "", + "unauthorized-2": "", + "no-updates": "", + "confirm-delete-user": "", + "user-deleted": "", + "email-sent-to-user": "", + "click-email-link": "", + "series-added-to-collection": "", + "no-series-collection-warning": "", + "collection-updated": "", + "reading-list-deleted": "", + "reading-list-updated": "", + "confirm-delete-reading-list": "", + "item-removed": "", + "nothing-to-remove": "", + "series-added-to-reading-list": "", + "volumes-added-to-reading-list": "", + "chapter-added-to-reading-list": "", + "multiple-added-to-reading-list": "", + "select-files-warning": "", + "reading-list-imported": "", + "incognito-off": "", + "email-service-reset": "", + "email-service-reachable": "", + "email-service-unresponsive": "", + "refresh-covers-queued": "", + "library-file-analysis-queued": "", + "entity-read": "", + "entity-unread": "", + "mark-read": "", + "mark-unread": "", + "series-removed-want-to-read": "", + "series-deleted": "", + "file-send-to": "", + "theme-missing": "", + "email-sent": "", + "k+-license-saved": "", + "k+-unlocked": "", + "k+-error": "", + "k+-delete-key": "", + "library-deleted": "", + "copied-to-clipboard": "", + "book-settings-info": "", + "no-next-chapter": "", + "no-prev-chapter": "", + "load-next-chapter": "", + "load-prev-chapter": "", + "account-registration-complete": "", + "account-migration-complete": "", + "password-reset": "", + "password-updated": "", + "forced-scan-queued": "", + "library-created": "", + "anilist-token-updated": "", + "age-restriction-updated": "", + "email-sent-to-no-existing": "", + "email-sent-to": "", + "change-email-private": "", + "device-updated": "", + "device-created": "", + "confirm-regen-covers": "", + "alert-long-running": "", + "confirm-delete-multiple-series": "", + "confirm-delete-series": "", + "alert-bad-theme": "", + "confirm-library-delete": "", + "confirm-library-type-change": "", + "confirm-download-size": "" + }, + "actionable": { + "scan-library": "", + "refresh-covers": "", + "analyze-files": "", + "settings": "", + "edit": "", + "mark-as-read": "", + "mark-as-unread": "", + "scan-series": "", + "add-to": "", + "add-to-want-to-read": "", + "remove-from-want-to-read": "", + "remove-from-on-deck": "", + "others": "", + "add-to-reading-list": "", + "add-to-collection": "", + "send-to": "", + "delete": "", + "download": "", + "read-incognito": "", + "details": "", + "view-series": "", + "clear": "", + "import-cbl": "" + }, + "preferences": { + "left-to-right": "", + "right-to-left": "", + "horizontal": "", + "vertical": "", + "automatic": "", + "fit-to-height": "", + "fit-to-width": "", + "original": "", + "fit-to-screen": "", + "no-split": "", + "webtoon": "", + "single": "", + "double": "", + "double-manga": "", + "scroll": "", + "1-column": "", + "2-column": "", + "cards": "", + "list": "", + "up-to-down": "" + }, + "validation": { + "required-field": "", + "valid-email": "", + "password-validation": "" + }, + "entity-type": { + "volume": "", + "chapter": "", + "series": "", + "bookmark": "", + "logs": "" + }, + "common": { + "reset-to-default": "", + "close": "", + "cancel": "", + "create": "", + "save": "", + "reset": "", + "add": "", + "apply": "", + "delete": "", + "edit": "", + "help": "", + "submit": "", + "email": "", + "read": "", + "loading": "", + "username": "", + "password": "", + "promoted": "", + "select-all": "", + "deselect-all": "", + "series-count": "", + "item-count": "", + "book-num": "", + "issue-hash-num": "", + "issue-num": "", + "chapter-num": "", + "volume-num": "" + } +} diff --git a/UI/Web/src/assets/langs/nl.json b/UI/Web/src/assets/langs/nl.json index 262bb9c7c..d8b2bfc53 100644 --- a/UI/Web/src/assets/langs/nl.json +++ b/UI/Web/src/assets/langs/nl.json @@ -140,211 +140,211 @@ "margin-book-label": "Marge", "margin-book-tooltip": "Hoeveel ruimte aan elke kant van het scherm. Dit overschrijft naar 0 op mobiele apparaten, ongeacht deze instelling.", "clients-opds-alert": "OPDS is niet ingeschakeld op deze server. Dit heeft geen invloed op Tachiyomi-gebruikers.", - "clients-opds-description": "", - "clients-api-key-tooltip": "", - "clients-opds-url-tooltip": "", - "reset": "", - "save": "" + "clients-opds-description": "Alle externe clients gebruiken de API-sleutel of de onderstaande verbindings-URL. Dit zijn net wachtwoorden, houd het privé.", + "clients-api-key-tooltip": "De API-sleutel is als een wachtwoord. Houd het geheim, houd het veilig.", + "clients-opds-url-tooltip": "OPDS URL", + "reset": "{{common.reset}}", + "save": "{{common.save}}" }, "user-holds": { - "title": "", + "title": "Scrobble Holds", "description": "" }, "theme-manager": { - "title": "", - "looking-for-theme": "", - "looking-for-theme-continued": "", - "scan": "", - "site-themes": "", - "set-default": "", - "apply": "", - "applied": "", - "updated-toastr": "", - "scan-queued": "" + "title": "Thema Beheerder", + "looking-for-theme": "Op zoek naar een licht of e-inkt thema? We hebben enkele aangepaste thema's die u kunt gebruiken ", + "looking-for-theme-continued": "thema github.", + "scan": "Scan", + "site-themes": "Site Thema's", + "set-default": "Stel de standaard in", + "apply": "{{common.apply}}", + "applied": "Toegepast", + "updated-toastr": "Sitestandaard is bijgewerkt naar {{name}}", + "scan-queued": "Er is een sitethema-scan in de wachtrij geplaatst" }, "restriction-selector": { - "title": "", - "description": "", - "not-applicable-for-admins": "", - "age-rating-label": "", - "no-restriction": "", - "include-unknowns-label": "", - "include-unknowns-tooltip": "" + "title": "Beperking leeftijdsclassificatie", + "description": "Indien geselecteerd, worden alle series en leeslijsten met ten minste één item dat groter is dan de geselecteerde beperking, uit de resultaten verwijderd.", + "not-applicable-for-admins": "Dit is niet van toepassing op beheerders.", + "age-rating-label": "Leeftijdsclassificatie", + "no-restriction": "Geen beperkingen", + "include-unknowns-label": "Inclusief onbekenden", + "include-unknowns-tooltip": "Als dit waar is, zijn onbekenden toegestaan met leeftijdsbeperking. Dit kan ertoe leiden dat niet-gecodeerde media uitlekken naar gebruikers met leeftijdsbeperkingen." }, "site-theme-provider-pipe": { - "system": "", - "user": "" + "system": "Systeem", + "user": "Gebruiker" }, "manage-devices": { - "title": "", - "description": "", - "devices-title": "", - "no-devices": "", - "platform-label": "", - "email-label": "", - "add": "", + "title": "Apparaat beheerder", + "description": "Deze sectie is bedoeld voor het instellen van apparaten die geen verbinding kunnen maken met Kavita via een webbrowser en in plaats daarvan een e-mailadres hebben dat bestanden accepteert.", + "devices-title": "Apparaten", + "no-devices": "Er zijn nog geen apparaten ingesteld", + "platform-label": "Platform: ", + "email-label": "Email: ", + "add": "{{common.add}}", "delete": "{{common.delete}}", "edit": "{{common.edit}}" }, "edit-device": { - "device-name-label": "", - "email-label": "", - "email-tooltip": "", - "device-platform-label": "", - "save": "", - "required-field": "", - "valid-email": "" + "device-name-label": "Apparaat naam", + "email-label": "{{common.email}}", + "email-tooltip": "Dit e-mailadres wordt gebruikt om het bestand via Verzenden naar te accepteren", + "device-platform-label": "Apparaatplatform", + "save": "{{common.save}}", + "required-field": "{{validation.required-field}}", + "valid-email": "{{validation.valid-email}}" }, "change-password": { - "password-label": "", - "current-password-label": "", - "new-password-label": "", - "confirm-password-label": "", - "reset": "", - "edit": "", - "cancel": "", - "save": "", - "required-field": "", - "passwords-must-match": "", - "permission-error": "" + "password-label": "{{common.password}}", + "current-password-label": "Huidig wachtwoord", + "new-password-label": "Nieuw Wachtwoord", + "confirm-password-label": "Bevestig wachtwoord", + "reset": "{{common.reset}}", + "edit": "{{common.edit}}", + "cancel": "{{common.cancel}}", + "save": "{{common.save}}", + "required-field": "{{validation.required-field}}", + "passwords-must-match": "Wachtwoorden moeten overeenkomen", + "permission-error": "U heeft geen toestemming om uw wachtwoord te wijzigen. Neem contact op met de beheerder van de server." }, "change-email": { - "email-label": "", - "current-password-label": "", - "email-not-confirmed": "", - "email-updated-title": "", - "email-updated-description": "", - "setup-user-account": "", - "invite-url-label": "", - "invite-url-tooltip": "", - "permission-error": "", - "required-field": "", - "reset": "", - "edit": "", - "cancel": "", - "save": "" + "email-label": "{{common.email}}", + "current-password-label": "Huidig paswoord", + "email-not-confirmed": "Deze e-mail is niet bevestigd", + "email-updated-title": "E-mail bijgewerkt", + "email-updated-description": "U kunt de volgende link hieronder gebruiken om de e-mail voor uw account te bevestigen. Als uw server extern toegankelijk is, is er een e-mail naar de e-mail verzonden en kan de link worden gebruikt om de e-mail te bevestigen.", + "setup-user-account": "Gebruikersaccount instellen", + "invite-url-label": "Uitnodigings-URL", + "invite-url-tooltip": "Kopieer dit en plak in een nieuw tabblad", + "permission-error": "U heeft geen toestemming om uw e-mailadres te wijzigen. Neem contact op met de beheerder van de server.", + "required-field": "{{validation.required-field}}", + "reset": "{{common.reset}}", + "edit": "{{common.edit}}", + "cancel": "{{common.cancel}}", + "save": "{{common.save}}" }, "change-age-restriction": { - "age-restriction-label": "", - "unknowns": "", - "reset": "", - "edit": "", - "cancel": "", - "save": "" + "age-restriction-label": "Leeftijdsbeperking", + "unknowns": "Onbekenden", + "reset": "{{common.reset}}", + "edit": "{{common.edit}}", + "cancel": "{{common.cancel}}", + "save": "{{common.save}}" }, "api-key": { - "copy": "", - "regen-warning": "", - "no-key": "", - "confirm-reset": "", - "key-reset": "" + "copy": "Kopie", + "regen-warning": "Door uw API-sleutel opnieuw te genereren, worden alle bestaande clients ongeldig.", + "no-key": "FOUT - SLEUTEL NIET INGESTELD", + "confirm-reset": "Hierdoor worden alle OPDS-configuraties die u hebt ingesteld, ongeldig. Weet je zeker dat je door wilt gaan?", + "key-reset": "API-sleutel reset" }, "scrobbling-providers": { "title": "", - "requires": "", - "token-expired": "", - "no-token-set": "", - "token-set": "", - "generate": "", - "instructions": "", - "token-input-label": "", - "edit": "", - "cancel": "", - "save": "" + "requires": "Voor deze functie is een actieve {{product}} licentie vereist", + "token-expired": "Token verlopen", + "no-token-set": "Geen Token Ingesteld", + "token-set": "Token Ingesteld", + "generate": "Genereer", + "instructions": "Nieuwe gebruikers moeten hieronder op \"{{scrobbling-providers.generate}}\" klikken om Kavita+ toe te staan te praten met {{service}}. Nadat u het programma hebt geautoriseerd, kopieert en plakt u het token in de onderstaande invoer. U kunt uw token op elk moment opnieuw genereren.", + "token-input-label": "{{service}} Token komt hier", + "edit": "{{common.edit}}", + "cancel": "{{common.cancel}}", + "save": "{{common.save}}" }, "typeahead": { - "locked-field": "", - "close": "", - "loading": "", - "add-item": "", - "no-data": "", - "add-custom-item": "" + "locked-field": "Veld is vergrendeld", + "close": "{{common.close}}", + "loading": "{{common.loading}}", + "add-item": "{{item}} toevoegen…", + "no-data": "Geen data", + "add-custom-item": ", typ om een gepersonaliseerd item toe te voegen" }, "generic-list-modal": { - "close": "", - "clear": "", - "filter": "", - "open-filtered-search": "" + "close": "{{common.close}}", + "clear": "Wissen", + "filter": "Filter", + "open-filtered-search": "Open een gefilterde zoekopdracht voor {{item}}" }, "user-stats-info-cards": { - "total-pages-read-label": "", - "total-pages-read-tooltip": "", - "total-words-read-label": "", - "total-words-read-tooltip": "", - "time-spent-reading-label": "", - "time-spent-reading-tooltip": "", - "chapters-read-label": "", - "chapters-read-tooltip": "", - "avg-reading-per-week-label": "", - "last-active-label": "", - "chapters": "" + "total-pages-read-label": "Totaal pagina's gelezen", + "total-pages-read-tooltip": "{{user-stats-info-cards.total-pages-read-label}}: {{value}}", + "total-words-read-label": "Totaal gelezen woorden", + "total-words-read-tooltip": "{{user-stats-info-cards.total-words-read-label}}: {{value}}", + "time-spent-reading-label": "Tijd besteed aan lezen", + "time-spent-reading-tooltip": "{{user-stats-info-cards.time-spent-reading-label}}: {{value}}", + "chapters-read-label": "Hoofdstukken gelezen", + "chapters-read-tooltip": "{{user-stats-info-cards.chapters-read-label}}: {{value}}", + "avg-reading-per-week-label": "Gemiddelde lezing / week", + "last-active-label": "Laatst actief", + "chapters": "{{value}} hoofdstukken" }, "user-stats": { - "library-read-progress-title": "", - "read-percentage": "" + "library-read-progress-title": "Leesvoortgang bibliotheek", + "read-percentage": "% gelezen" }, "top-readers": { - "title": "", - "time-selection-label": "", - "comics-label": "", - "manga-label": "", - "books-label": "", - "this-week": "", - "last-7-days": "", - "last-30-days": "", - "last-90-days": "", - "last-year": "", - "all-time": "" + "title": "Toplezers", + "time-selection-label": "Tijdsbestek", + "comics-label": "Strips: {{value}} uur", + "manga-label": "Manga: {{value}} uur", + "books-label": "Boeken: {{value}} uur", + "this-week": "{{time-periods.this-week}}", + "last-7-days": "{{time-periods.last-7-days}}", + "last-30-days": "{{time-periods.last-30-days}}", + "last-90-days": "{{time-periods.last-90-days}}", + "last-year": "{{time-periods.last-year}}", + "all-time": "{{time-periods.all-time}}" }, "role-selector": { - "title": "" + "title": "Rollen" }, "directory-picker": { - "title": "", - "close": "", - "path-label": "", - "path-placeholder": "", - "instructions": "", - "type-header": "", - "name-header": "", - "cancel": "", - "share": "", - "help": "" + "title": "Kies een map", + "close": "{{common.close}}", + "path-label": "Pad", + "path-placeholder": "Begin met typen of selecteer pad", + "instructions": "Selecteer een map om breadcrumb te bekijken. Zie je je directory niet? Probeer eerst / te controleren.", + "type-header": "Type", + "name-header": "Naam", + "cancel": "{{common.cancel}}", + "share": "Deel", + "help": "{{common.help}}" }, "library-access-modal": { - "select-all": "", - "deselect-all": "", - "title": "", - "close": "", - "reset": "", - "cancel": "", - "save": "", - "no-data": "" + "select-all": "{{common.select-all}}", + "deselect-all": "{{common.deselect-all}}", + "title": "Bibliotheek toegang", + "close": "{{common.close}}", + "reset": "{{common.reset}}", + "cancel": "{{common.cancel}}", + "save": "{{common.save}}", + "no-data": "Er zijn nog geen bibliotheken ingesteld." }, "time-periods": { - "this-week": "", - "last-7-days": "", - "last-30-days": "", - "last-90-days": "", - "last-year": "", - "all-time": "" + "this-week": "Deze Week", + "last-7-days": "Laatste 7 dagen", + "last-30-days": "Laatste 30 dagen", + "last-90-days": "Laatste 90 dagen", + "last-year": "Vorig jaar", + "all-time": "Altijd" }, "device-platform-pipe": { - "custom": "" + "custom": "Op maat" }, "day-of-week-pipe": { - "monday": "", - "tuesday": "", - "wednesday": "", - "thursday": "", - "friday": "", - "saturday": "", - "sunday": "" + "monday": "Maandag", + "tuesday": "Dinsdag", + "wednesday": "Woensdag", + "thursday": "Donderdag", + "friday": "Vrijdag", + "saturday": "Zaterdag", + "sunday": "Zondag" }, "cbl-import-result-pipe": { - "success": "", - "partial": "", - "failure": "" + "success": "Succes", + "partial": "Gedeeltelijk", + "failure": "Mislukt" }, "cbl-conflict-reason-pipe": { "all-series-missing": "", @@ -1627,5 +1627,11 @@ "issue-num": "", "chapter-num": "", "volume-num": "" + }, + "theme": { + "theme-dark": "Donker", + "theme-black": "Zwart", + "theme-paper": "Papier", + "theme-white": "Wit" } } diff --git a/UI/Web/src/assets/langs/pt.json b/UI/Web/src/assets/langs/pt.json index 28d3c6455..40654d22c 100644 --- a/UI/Web/src/assets/langs/pt.json +++ b/UI/Web/src/assets/langs/pt.json @@ -12,166 +12,166 @@ "server-settings-link": "Definições do servidor", "not-granted": "Não lhe foi atribuído acesso a nenhuma biblioteca.", "on-deck-title": "", - "recently-updated-title": "", - "recently-added-title": "" + "recently-updated-title": "Séries Atualizadas Recentemente", + "recently-added-title": "Séries Adicionadas Recentemente" }, "edit-user": { - "edit": "", - "close": "", - "username": "", - "required": "", - "email": "", - "not-valid-email": "", - "cancel": "", - "saving": "", - "update": "" + "edit": "{{common.edit}}", + "close": "{{common.close}}", + "username": "{{common.username}}", + "required": "{{validation.required-field}}", + "email": "{{common.email}}", + "not-valid-email": "{{validation.valid-email}}", + "cancel": "{{common.cancel}}", + "saving": "A Guardar…", + "update": "Atualizar" }, "user-scrobble-history": { "title": "", "description": "", - "filter-label": "", - "created-header": "", - "last-modified-header": "", - "type-header": "", - "series-header": "", - "data-header": "", - "is-processed-header": "", - "no-data": "", - "volume-and-chapter-num": "", - "rating": "", - "not-applicable": "", - "processed": "", - "not-processed": "" + "filter-label": "Filtro", + "created-header": "Criado", + "last-modified-header": "Última alteração", + "type-header": "Tipo", + "series-header": "Séries", + "data-header": "Dados", + "is-processed-header": "Processado", + "no-data": "Sem Dados", + "volume-and-chapter-num": "Volume {{v}} Capítulo {{n}}", + "rating": "Classificação {{r}}", + "not-applicable": "Não Aplicável", + "processed": "Processado", + "not-processed": "Não Processado" }, "scrobble-event-type-pipe": { "chapter-read": "", - "score-updated": "", + "score-updated": "Atualização de Classificação", "want-to-read-add": "", "want-to-read-remove": "", - "review": "" + "review": "Atualização de crítica" }, "spoiler": { "click-to-show": "" }, "review-series-modal": { - "title": "", + "title": "Editar Crítica", "tagline-label": "", - "review-label": "", - "close": "", - "save": "" + "review-label": "Crítica", + "close": "{{common.close}}", + "save": "{{common.save}}" }, "review-card-modal": { - "close": "", - "user-review": "", - "external-mod": "", - "go-to-review": "" + "close": "{{common.close}}", + "user-review": "Crítica de {{username}}", + "external-mod": "(externo/a)", + "go-to-review": "Ir Para Crítica" }, "review-card": { - "your-review": "", - "external-review": "", - "local-review": "", - "rating-percentage": "" + "your-review": "Esta é a sua crítica", + "external-review": "Crítica externa", + "local-review": "Crítica", + "rating-percentage": "Classificação {{r}}%" }, "want-to-read": { - "title": "", - "series-count": "", - "no-items": "", - "no-items-filtered": "" + "title": "Leituras Futuras", + "series-count": "{{common.series-count}}", + "no-items": "Não existem itens. Tente adicionar uma série.", + "no-items-filtered": "Não existem itens para o filtro atual." }, "user-preferences": { "title": "", - "pref-description": "", - "account-tab": "", - "preferences-tab": "", - "3rd-party-clients-tab": "", - "theme-tab": "", - "devices-tab": "", - "stats-tab": "", + "pref-description": "Estas definições globais estão ligadas à sua conta.", + "account-tab": "Conta", + "preferences-tab": "Preferências", + "3rd-party-clients-tab": "Clientes de Terceiros", + "theme-tab": "Tema", + "devices-tab": "Dispositivos", + "stats-tab": "Estatísticas", "scrobbling-tab": "", - "success-toast": "", - "global-settings-title": "", + "success-toast": "Preferências de utilizador atualizadas", + "global-settings-title": "Definições globais", "page-layout-mode-label": "", "page-layout-mode-tooltip": "", "locale-label": "", - "locale-tooltip": "", - "blur-unread-summaries-label": "", - "blur-unread-summaries-tooltip": "", - "prompt-on-download-label": "", - "prompt-on-download-tooltip": "", - "disable-animations-label": "", - "disable-animations-tooltip": "", - "collapse-series-relationships-label": "", + "locale-tooltip": "O idiota que o Kavita deve usar", + "blur-unread-summaries-label": "Ofuscar sumários não lidos", + "blur-unread-summaries-tooltip": "Ofusca o sumário em volumes ou capítulos que não tenham leitura em curso (para evitar spoilers)", + "prompt-on-download-label": "Aviso nos Downloads", + "prompt-on-download-tooltip": "Aviso quando um download excede {{size}}MB de tamanho", + "disable-animations-label": "Desabilitar animações", + "disable-animations-tooltip": "Desligar animações no site. Útil para leitores e-ink.", + "collapse-series-relationships-label": "Colapsar Relações de Séries", "collapse-series-relationships-tooltip": "", - "share-series-reviews-label": "", - "share-series-reviews-tooltip": "", + "share-series-reviews-label": "Partilhar Críticas de Séries", + "share-series-reviews-tooltip": "As suas críticas de Séries devem ser incluídas para outros utilizadores pelo Kavita", "image-reader-settings-title": "", - "reading-direction-label": "", + "reading-direction-label": "Direção de Leitura", "reading-direction-tooltip": "", - "scaling-option-label": "", - "scaling-option-tooltip": "", + "scaling-option-label": "Opções de Dimensionamento", + "scaling-option-tooltip": "Como adaptar a dimensão da imagem ao seu ecrã.", "page-splitting-label": "", "page-splitting-tooltip": "", - "reading-mode-label": "", + "reading-mode-label": "Modo de Leitura", "layout-mode-label": "", "layout-mode-tooltip": "", - "background-color-label": "", - "auto-close-menu-label": "", + "background-color-label": "Cor de Fundo", + "auto-close-menu-label": "Fechar Menu Automaticamente", "show-screen-hints-label": "", "emulate-comic-book-label": "", "swipe-to-paginate-label": "", "book-reader-settings-title": "", "tap-to-paginate-label": "", "tap-to-paginate-tooltip": "", - "immersive-mode-label": "", + "immersive-mode-label": "Modo Imersivo", "immersive-mode-tooltip": "", - "reading-direction-book-label": "", + "reading-direction-book-label": "Direção de Leitura", "reading-direction-book-tooltip": "", "font-family-label": "", "font-family-tooltip": "", "writing-style-label": "", - "writing-style-tooltip": "", + "writing-style-tooltip": "Muda a direção do texto. Horizontal é da esquerda para direita, vertical é do topo para o fundo.", "layout-mode-book-label": "", "layout-mode-book-tooltip": "", - "color-theme-book-label": "", + "color-theme-book-label": "Tema de Cor", "color-theme-book-tooltip": "", "font-size-book-label": "", - "line-height-book-label": "", - "line-height-book-tooltip": "", - "margin-book-label": "", - "margin-book-tooltip": "", - "clients-opds-alert": "", - "clients-opds-description": "", - "clients-api-key-tooltip": "", - "clients-opds-url-tooltip": "", - "reset": "", - "save": "" + "line-height-book-label": "Espaçamento Entre Linhas", + "line-height-book-tooltip": "Quanto espaçamento entre as linhas do livro", + "margin-book-label": "Margem", + "margin-book-tooltip": "Espaçamento em cada lado do ecrã. Nos dispositivos móveis o valor desta definição será sempre substituído por 0.", + "clients-opds-alert": "O OPDS não está habilitado neste servidor. Isto não irá afectar os utilizadores do Tachiyomi.", + "clients-opds-description": "Todos os clientes de terceiros utilizarão a chave de API ou URL abaixo. Estes elementos são semelhantes a palavras passe, mantenha-os privados.", + "clients-api-key-tooltip": "A chave de API é como uma palavra passe. Mantenha-a privada e em segurança.", + "clients-opds-url-tooltip": "URL OPDS", + "reset": "{{common.reset}}", + "save": "{{common.save}}" }, "user-holds": { "title": "", "description": "" }, "theme-manager": { - "title": "", - "looking-for-theme": "", - "looking-for-theme-continued": "", + "title": "Gestor de Temas", + "looking-for-theme": "À procura de um tema 'light' ou e-ink? Pode encontrar alguns temas customizados no nosso ", + "looking-for-theme-continued": "github de temas.", "scan": "", - "site-themes": "", - "set-default": "", - "apply": "", + "site-themes": "Temas do Site", + "set-default": "Tema Por Defeito", + "apply": "{{common.apply}}", "applied": "", - "updated-toastr": "", + "updated-toastr": "O tema por defeito do site foi atualizado para {{name}}", "scan-queued": "" }, "theme": { - "theme-dark": "", - "theme-black": "", - "theme-paper": "", - "theme-white": "" + "theme-dark": "Escuro", + "theme-black": "Preto", + "theme-paper": "Papel", + "theme-white": "Branco" }, "restriction-selector": { "title": "", - "description": "", - "not-applicable-for-admins": "", + "description": "Quando selecionado, todas as séries e listas de leitura, que tenham pelo menos um elemento que seja superior à restrição selecionada, serão removidas dos resultados.", + "not-applicable-for-admins": "Não aplicável a administradores.", "age-rating-label": "", "no-restriction": "", "include-unknowns-label": "", @@ -206,70 +206,70 @@ "current-password-label": "", "new-password-label": "", "confirm-password-label": "", - "reset": "", - "edit": "", - "cancel": "", - "save": "", - "required-field": "", - "passwords-must-match": "", - "permission-error": "" + "reset": "{{common.reset}}", + "edit": "{{common.edit}}", + "cancel": "{{common.cancel}}", + "save": "{{common.save}}", + "required-field": "{{validation.required-field}}", + "passwords-must-match": "As palavras passe têm de ser iguais", + "permission-error": "Não tem permissões para alterar a sua palavra passe. Contacte o administrador do servidor." }, "change-email": { - "email-label": "", - "current-password-label": "", - "email-not-confirmed": "", - "email-updated-title": "", - "email-updated-description": "", - "setup-user-account": "", - "invite-url-label": "", - "invite-url-tooltip": "", - "permission-error": "", - "required-field": "", - "reset": "", - "edit": "", - "cancel": "", - "save": "" + "email-label": "{{common.email}}", + "current-password-label": "Palavra Passe Atual", + "email-not-confirmed": "Este email não está confirmado", + "email-updated-title": "Email Atualizado", + "email-updated-description": "Pode usar o link abaixo para confirmar o endereço de email da sua conta. Se o seu servidor tiver acesso externo, um email terá sido enviado para o seu endereço e o link pode ser usado para confirmar o endereço.", + "setup-user-account": "Configurar conta de utilizador", + "invite-url-label": "Url de Convite", + "invite-url-tooltip": "Copie e cole o url numa nova aba", + "permission-error": "Não tem permissões para alterar o seu email. Contacte o administrador do servidor.", + "required-field": "{{validation.required-field}}", + "reset": "{{common.reset}}", + "edit": "{{common.edit}}", + "cancel": "{{common.cancel}}", + "save": "{{common.save}}" }, "change-age-restriction": { - "age-restriction-label": "", - "unknowns": "", - "reset": "", - "edit": "", - "cancel": "", - "save": "" + "age-restriction-label": "Restrição Etária", + "unknowns": "Desconhecidos", + "reset": "{{common.reset}}", + "edit": "{{common.edit}}", + "cancel": "{{common.cancel}}", + "save": "{{common.save}}" }, "api-key": { - "copy": "", - "regen-warning": "", + "copy": "Copiar", + "regen-warning": "Se recriar a chave da API, os clientes de terceiros existentes deixarão de ter acesso.", "no-key": "", - "confirm-reset": "", - "key-reset": "" + "confirm-reset": "Isto irá invalidar todas as configurações OPDS. Tem a certeza que deseja continuar?", + "key-reset": "Repor chave da API" }, "scrobbling-providers": { "title": "", - "requires": "", - "token-expired": "", - "no-token-set": "", - "token-set": "", - "generate": "", + "requires": "Esta funcionalidade requer uma licença {{product}} ativa", + "token-expired": "Token Expirado", + "no-token-set": "Token Não Definido", + "token-set": "Token Definido", + "generate": "Gerar", "instructions": "", "token-input-label": "", - "edit": "", - "cancel": "", - "save": "" + "edit": "{{common.edit}}", + "cancel": "{{common.cancel}}", + "save": "{{common.save}}" }, "typeahead": { - "locked-field": "", - "close": "", - "loading": "", - "add-item": "", - "no-data": "", + "locked-field": "Campo bloqueado", + "close": "{{common.close}}", + "loading": "{{common.loading}}", + "add-item": "Adicionar {{item}}…", + "no-data": "Sem dados", "add-custom-item": "" }, "generic-list-modal": { - "close": "", - "clear": "", - "filter": "", + "close": "{{common.close}}", + "clear": "Limpar", + "filter": "Filtro", "open-filtered-search": "" }, "user-stats-info-cards": { diff --git a/UI/Web/src/assets/langs/ru.json b/UI/Web/src/assets/langs/ru.json new file mode 100644 index 000000000..cc54d35b3 --- /dev/null +++ b/UI/Web/src/assets/langs/ru.json @@ -0,0 +1,1687 @@ +{ + "login": { + "title": "", + "username": "", + "password": "", + "password-validation": "", + "forgot-password": "", + "submit": "" + }, + "dashboard": { + "no-libraries": "", + "server-settings-link": "", + "not-granted": "", + "on-deck-title": "", + "recently-updated-title": "", + "recently-added-title": "" + }, + "edit-user": { + "edit": "", + "close": "", + "username": "", + "required": "", + "email": "", + "not-valid-email": "", + "cancel": "", + "saving": "", + "update": "" + }, + "user-scrobble-history": { + "title": "", + "description": "", + "filter-label": "", + "created-header": "", + "last-modified-header": "", + "type-header": "", + "series-header": "", + "data-header": "", + "is-processed-header": "", + "no-data": "", + "volume-and-chapter-num": "", + "rating": "", + "not-applicable": "", + "processed": "", + "not-processed": "" + }, + "scrobble-event-type-pipe": { + "chapter-read": "", + "score-updated": "", + "want-to-read-add": "", + "want-to-read-remove": "", + "review": "" + }, + "spoiler": { + "click-to-show": "" + }, + "review-series-modal": { + "title": "", + "tagline-label": "", + "review-label": "", + "close": "", + "save": "" + }, + "review-card-modal": { + "close": "", + "user-review": "", + "external-mod": "", + "go-to-review": "" + }, + "review-card": { + "your-review": "", + "external-review": "", + "local-review": "", + "rating-percentage": "" + }, + "want-to-read": { + "title": "", + "series-count": "", + "no-items": "", + "no-items-filtered": "" + }, + "user-preferences": { + "title": "", + "pref-description": "", + "account-tab": "", + "preferences-tab": "", + "3rd-party-clients-tab": "", + "theme-tab": "", + "devices-tab": "", + "stats-tab": "", + "scrobbling-tab": "", + "success-toast": "", + "global-settings-title": "", + "page-layout-mode-label": "", + "page-layout-mode-tooltip": "", + "locale-label": "", + "locale-tooltip": "", + "blur-unread-summaries-label": "", + "blur-unread-summaries-tooltip": "", + "prompt-on-download-label": "", + "prompt-on-download-tooltip": "", + "disable-animations-label": "", + "disable-animations-tooltip": "", + "collapse-series-relationships-label": "", + "collapse-series-relationships-tooltip": "", + "share-series-reviews-label": "", + "share-series-reviews-tooltip": "", + "image-reader-settings-title": "", + "reading-direction-label": "", + "reading-direction-tooltip": "", + "scaling-option-label": "", + "scaling-option-tooltip": "", + "page-splitting-label": "", + "page-splitting-tooltip": "", + "reading-mode-label": "", + "layout-mode-label": "", + "layout-mode-tooltip": "", + "background-color-label": "", + "auto-close-menu-label": "", + "show-screen-hints-label": "", + "emulate-comic-book-label": "", + "swipe-to-paginate-label": "", + "book-reader-settings-title": "", + "tap-to-paginate-label": "", + "tap-to-paginate-tooltip": "", + "immersive-mode-label": "", + "immersive-mode-tooltip": "", + "reading-direction-book-label": "", + "reading-direction-book-tooltip": "", + "font-family-label": "", + "font-family-tooltip": "", + "writing-style-label": "", + "writing-style-tooltip": "", + "layout-mode-book-label": "", + "layout-mode-book-tooltip": "", + "color-theme-book-label": "", + "color-theme-book-tooltip": "", + "font-size-book-label": "", + "line-height-book-label": "", + "line-height-book-tooltip": "", + "margin-book-label": "", + "margin-book-tooltip": "", + "clients-opds-alert": "", + "clients-opds-description": "", + "clients-api-key-tooltip": "", + "clients-opds-url-tooltip": "", + "reset": "", + "save": "" + }, + "user-holds": { + "title": "", + "description": "" + }, + "theme-manager": { + "title": "", + "looking-for-theme": "", + "looking-for-theme-continued": "", + "scan": "", + "site-themes": "", + "set-default": "", + "apply": "", + "applied": "", + "updated-toastr": "", + "scan-queued": "" + }, + "theme": { + "theme-dark": "", + "theme-black": "", + "theme-paper": "", + "theme-white": "" + }, + "restriction-selector": { + "title": "", + "description": "", + "not-applicable-for-admins": "", + "age-rating-label": "", + "no-restriction": "", + "include-unknowns-label": "", + "include-unknowns-tooltip": "" + }, + "site-theme-provider-pipe": { + "system": "", + "user": "" + }, + "manage-devices": { + "title": "", + "description": "", + "devices-title": "", + "no-devices": "", + "platform-label": "", + "email-label": "", + "add": "", + "delete": "", + "edit": "" + }, + "edit-device": { + "device-name-label": "", + "email-label": "", + "email-tooltip": "", + "device-platform-label": "", + "save": "", + "required-field": "", + "valid-email": "" + }, + "change-password": { + "password-label": "", + "current-password-label": "", + "new-password-label": "", + "confirm-password-label": "", + "reset": "", + "edit": "", + "cancel": "", + "save": "", + "required-field": "", + "passwords-must-match": "", + "permission-error": "" + }, + "change-email": { + "email-label": "", + "current-password-label": "", + "email-not-confirmed": "", + "email-updated-title": "", + "email-updated-description": "", + "setup-user-account": "", + "invite-url-label": "", + "invite-url-tooltip": "", + "permission-error": "", + "required-field": "", + "reset": "", + "edit": "", + "cancel": "", + "save": "" + }, + "change-age-restriction": { + "age-restriction-label": "", + "unknowns": "", + "reset": "", + "edit": "", + "cancel": "", + "save": "" + }, + "api-key": { + "copy": "", + "regen-warning": "", + "no-key": "", + "confirm-reset": "", + "key-reset": "" + }, + "scrobbling-providers": { + "title": "", + "requires": "", + "token-expired": "", + "no-token-set": "", + "token-set": "", + "generate": "", + "instructions": "", + "token-input-label": "", + "edit": "", + "cancel": "", + "save": "" + }, + "typeahead": { + "locked-field": "", + "close": "", + "loading": "", + "add-item": "", + "no-data": "", + "add-custom-item": "" + }, + "generic-list-modal": { + "close": "", + "clear": "", + "filter": "", + "open-filtered-search": "" + }, + "user-stats-info-cards": { + "total-pages-read-label": "", + "total-pages-read-tooltip": "", + "total-words-read-label": "", + "total-words-read-tooltip": "", + "time-spent-reading-label": "", + "time-spent-reading-tooltip": "", + "chapters-read-label": "", + "chapters-read-tooltip": "", + "avg-reading-per-week-label": "", + "last-active-label": "", + "chapters": "" + }, + "user-stats": { + "library-read-progress-title": "", + "read-percentage": "" + }, + "top-readers": { + "title": "", + "time-selection-label": "", + "comics-label": "", + "manga-label": "", + "books-label": "", + "this-week": "", + "last-7-days": "", + "last-30-days": "", + "last-90-days": "", + "last-year": "", + "all-time": "" + }, + "role-selector": { + "title": "" + }, + "directory-picker": { + "title": "", + "close": "", + "path-label": "", + "path-placeholder": "", + "instructions": "", + "type-header": "", + "name-header": "", + "cancel": "", + "share": "", + "help": "" + }, + "library-access-modal": { + "select-all": "", + "deselect-all": "", + "title": "", + "close": "", + "reset": "", + "cancel": "", + "save": "", + "no-data": "" + }, + "time-periods": { + "this-week": "", + "last-7-days": "", + "last-30-days": "", + "last-90-days": "", + "last-year": "", + "all-time": "" + }, + "device-platform-pipe": { + "custom": "" + }, + "day-of-week-pipe": { + "monday": "", + "tuesday": "", + "wednesday": "", + "thursday": "", + "friday": "", + "saturday": "", + "sunday": "" + }, + "cbl-import-result-pipe": { + "success": "", + "partial": "", + "failure": "" + }, + "cbl-conflict-reason-pipe": { + "all-series-missing": "", + "chapter-missing": "", + "empty-file": "", + "name-conflict": "", + "series-collision": "", + "series-missing": "", + "volume-missing": "", + "all-chapter-missing": "", + "invalid-file": "", + "success": "" + }, + "time-duration-pipe": { + "hours": "", + "minutes": "", + "days": "", + "months": "", + "years": "" + }, + "time-ago-pipe": { + "just-now": "", + "min-ago": "", + "mins-ago": "", + "hour-ago": "", + "hours-ago": "", + "day-ago": "", + "days-ago": "", + "month-ago": "", + "months-ago": "", + "year-ago": "", + "years-ago": "" + }, + "relationship-pipe": { + "adaptation": "", + "alternative-setting": "", + "alternative-version": "", + "character": "", + "contains": "", + "doujinshi": "", + "other": "", + "prequel": "", + "sequel": "", + "side-story": "", + "spin-off": "", + "parent": "", + "edition": "" + }, + "publication-status-pipe": { + "ongoing": "", + "hiatus": "", + "completed": "", + "cancelled": "", + "ended": "" + }, + "person-role-pipe": { + "artist": "", + "character": "", + "colorist": "", + "cover-artist": "", + "editor": "", + "inker": "", + "letterer": "", + "penciller": "", + "publisher": "", + "writer": "", + "other": "" + }, + "manga-format-pipe": { + "epub": "", + "archive": "", + "image": "", + "pdf": "", + "unknown": "" + }, + "library-type-pipe": { + "book": "", + "comic": "", + "manga": "" + }, + "age-rating-pipe": { + "unknown": "", + "early-childhood": "", + "adults-only": "", + "everyone": "", + "everyone-10-plus": "", + "g": "", + "kids-to-adults": "", + "mature": "", + "ma15-plus": "", + "mature-17-plus": "", + "rating-pending": "", + "teen": "", + "x18-plus": "", + "not-applicable": "", + "pg": "", + "r18-plus": "" + }, + "reset-password": { + "title": "", + "description": "", + "email-label": "", + "required-field": "", + "valid-email": "", + "submit": "" + }, + "reset-password-modal": { + "title": "", + "new-password-label": "", + "error-label": "", + "close": "", + "cancel": "", + "save": "" + }, + "all-series": { + "series-count": "" + }, + "announcements": { + "title": "" + }, + "changelog": { + "installed": "", + "download": "", + "published-label": "", + "available": "", + "description": "", + "description-continued": "" + }, + "invite-user": { + "title": "", + "close": "", + "description": "", + "email": "", + "required-field": "", + "setup-user-title": "", + "setup-user-description": "", + "setup-user-account": "", + "setup-user-account-tooltip": "", + "invite-url-label": "", + "invite": "", + "inviting": "", + "cancel": "" + }, + "library-selector": { + "title": "", + "select-all": "", + "deselect-all": "", + "no-data": "" + }, + "license": { + "title": "", + "manage": "", + "invalid-license-tooltip": "", + "check": "", + "cancel": "", + "edit": "", + "buy": "", + "activate": "", + "renew": "", + "no-license-key": "", + "license-valid": "", + "license-not-valid": "", + "loading": "", + "activate-description": "", + "activate-license-label": "", + "activate-email-label": "", + "activate-delete": "", + "activate-save": "" + }, + "book-line-overlay": { + "copy": "", + "bookmark": "", + "close": "", + "required-field": "", + "bookmark-label": "", + "save": "" + }, + "book-reader": { + "title": "", + "page-label": "", + "pagination-header": "", + "go-to-page": "", + "go-to-last-page": "", + "prev-page": "", + "next-page": "", + "prev-chapter": "", + "next-chapter": "", + "skip-header": "", + "virtual-pages": "", + "settings-header": "", + "table-of-contents-header": "", + "bookmarks-header": "", + "toc-header": "", + "loading-book": "", + "go-back": "", + "incognito-mode-alt": "", + "incognito-mode-label": "", + "next": "", + "previous": "" + }, + "personal-table-of-contents": { + "no-data": "", + "page": "", + "delete": "" + }, + "confirm-email": { + "title": "", + "description": "", + "error-label": "", + "username-label": "", + "password-label": "", + "email-label": "", + "required-field": "", + "valid-email": "", + "password-validation": "", + "register": "" + }, + "confirm-email-change": { + "title": "", + "non-confirm-description": "", + "confirm-description": "", + "success": "" + }, + "confirm-reset-password": { + "title": "", + "description": "", + "password-label": "", + "required-field": "", + "submit": "", + "password-validation": "" + }, + "register": { + "title": "", + "description": "", + "username-label": "", + "email-label": "", + "email-tooltip": "", + "password-label": "", + "required-field": "", + "valid-email": "", + "password-validation": "", + "register": "" + }, + "series-detail": { + "page-settings-title": "", + "close": "", + "layout-mode-label": "", + "layout-mode-option-card": "", + "layout-mode-option-list": "", + "continue-from": "", + "read": "", + "continue": "", + "read-options-alt": "", + "incognito": "", + "remove-from-want-to-read": "", + "add-to-want-to-read": "", + "edit-series-alt": "", + "download-series--tooltip": "", + "downloading-status": "", + "user-reviews-alt": "", + "storyline-tab": "", + "books-tab": "", + "volumes-tab": "", + "specials-tab": "", + "related-tab": "", + "recommendations-tab": "", + "send-to": "", + "no-pages": "", + "no-chapters": "", + "cover-change": "" + }, + "series-metadata-detail": { + "links-title": "", + "genres-title": "", + "tags-title": "", + "collections-title": "", + "reading-lists-title": "", + "writers-title": "", + "cover-artists-title": "", + "characters-title": "", + "colorists-title": "", + "editors-title": "", + "inkers-title": "", + "letterers-title": "", + "translators-title": "", + "pencillers-title": "", + "publishers-title": "", + "promoted": "", + "see-more": "", + "see-less": "" + }, + "badge-expander": { + "more-items": "" + }, + "read-more": { + "read-more": "", + "read-less": "" + }, + "update-notification-modal": { + "title": "", + "close": "", + "help": "", + "download": "" + }, + "side-nav-companion-bar": { + "page-settings-title": "", + "open-filter-and-sort": "", + "close-filter-and-sort": "", + "filter-and-sort-alt": "" + }, + "side-nav": { + "home": "", + "want-to-read": "", + "collections": "", + "reading-lists": "", + "bookmarks": "", + "filter-label": "", + "all-series": "", + "clear": "", + "donate": "" + }, + "library-settings-modal": { + "close": "", + "edit-title": "", + "add-title": "", + "general-tab": "", + "folder-tab": "", + "cover-tab": "", + "advanced-tab": "", + "name-label": "", + "library-name-unique": "", + "last-scanned-label": "", + "type-label": "", + "type-tooltip": "", + "folder-description": "", + "browse": "", + "help-us-part-1": "", + "help-us-part-2": "", + "help-us-part-3": "", + "naming-conventions-part-1": "", + "naming-conventions-part-2": "", + "naming-conventions-part-3": "", + "cover-description": "", + "cover-description-extra": "", + "manage-collection-label": "", + "manage-collection-tooltip": "", + "manage-reading-list-label": "", + "manage-reading-list-tooltip": "", + "allow-scrobbling-label": "", + "allow-scrobbling-tooltip": "", + "folder-watching-label": "", + "folder-watching-tooltip": "", + "include-in-dashboard-label": "", + "include-in-dashboard-tooltip": "", + "include-in-recommendation-label": "", + "include-in-recommendation-tooltip": "", + "include-in-search-label": "", + "include-in-search-tooltip": "", + "force-scan": "", + "force-scan-tooltip": "", + "reset": "", + "cancel": "", + "next": "", + "save": "", + "required-field": "" + }, + "reader-settings": { + "general-settings-title": "", + "font-family-label": "", + "font-size-label": "", + "line-spacing-label": "", + "margin-label": "", + "reset-to-defaults": "", + "reader-settings-title": "", + "reading-direction-label": "", + "right-to-left": "", + "left-to-right": "", + "horizontal": "", + "vertical": "", + "writing-style-label": "", + "writing-style-tooltip": "", + "tap-to-paginate-label": "", + "tap-to-paginate-tooltip": "", + "on": "", + "off": "", + "immersive-mode-label": "", + "immersive-mode-tooltip": "", + "fullscreen-label": "", + "fullscreen-tooltip": "", + "exit": "", + "enter": "", + "layout-mode-label": "", + "layout-mode-tooltip": "", + "layout-mode-option-scroll": "", + "layout-mode-option-1col": "", + "layout-mode-option-2col": "", + "color-theme-title": "", + "theme-dark": "", + "theme-black": "", + "theme-white": "", + "theme-paper": "" + }, + "table-of-contents": { + "no-data": "" + }, + "bookmarks": { + "title": "", + "series-count": "", + "no-data": "", + "no-data-2": "", + "confirm-delete": "", + "confirm-single-delete": "", + "delete-success": "", + "delete-single-success": "" + }, + "bulk-operations": { + "title": "", + "items-selected": "", + "mark-as-unread": "", + "mark-as-read": "", + "deselect-all": "" + }, + "card-detail-drawer": { + "general-tab": "", + "metadata-tab": "", + "cover-tab": "", + "info-tab": "", + "no-summary": "", + "writers-title": "", + "genres-title": "", + "publishers-title": "", + "tags-title": "", + "not-defined": "", + "read": "", + "unread": "", + "files": "", + "pages": "", + "added": "", + "size": "" + }, + "card-detail-layout": { + "total-items": "" + }, + "card-item": { + "cannot-read": "" + }, + "chapter-metadata-detail": { + "no-data": "", + "writers-title": "", + "publishers-title": "", + "characters-title": "", + "translators-title": "", + "letterers-title": "", + "colorists-title": "", + "inkers-title": "", + "pencillers-title": "", + "cover-artists-title": "", + "editors-title": "" + }, + "cover-image-chooser": { + "drag-n-drop": "", + "upload": "", + "upload-continued": "", + "url-label": "", + "load": "", + "back": "", + "reset-cover-tooltip": "", + "reset": "", + "image-num": "", + "apply": "", + "applied": "" + }, + "download-indicator": { + "progress": "" + }, + "edit-series-relation": { + "description-part-1": "", + "description-part-2": "", + "target-series": "", + "relationship": "", + "remove": "", + "add-relationship": "", + "parent": "" + }, + "entity-info-cards": { + "tags-title": "", + "characters-title": "", + "release-date-title": "", + "release-date-tooltip": "", + "age-rating-title": "", + "length-title": "", + "pages-count": "", + "words-count": "", + "reading-time-title": "", + "date-added-title": "", + "size-title": "", + "id-title": "", + "links-title": "", + "isbn-title": "", + "last-read-title": "", + "less-than-hour": "", + "range-hours": "", + "hour": "", + "hours": "", + "read-time-title": "" + }, + "series-info-cards": { + "release-date-title": "", + "release-year-tooltip": "", + "age-rating-title": "", + "language-title": "", + "publication-status-title": "", + "publication-status-tooltip": "", + "scrobbling-title": "", + "scrobbling-tooltip": "", + "on": "", + "off": "", + "disabled": "", + "format-title": "", + "last-read-title": "", + "length-title": "", + "read-time-title": "", + "less-than-hour": "", + "hour": "", + "hours": "", + "time-left-title": "", + "ongoing": "", + "pages-count": "", + "words-count": "" + }, + "bulk-add-to-collection": { + "title": "", + "promoted": "", + "close": "", + "filter-label": "", + "clear": "", + "no-data": "", + "loading": "", + "collection-label": "", + "create": "" + }, + "entity-title": { + "special": "", + "issue-num": "", + "chapter": "" + }, + "external-series-card": { + "open-external": "" + }, + "list-item": { + "read": "" + }, + "manage-alerts": { + "description-part-1": "", + "description-part-2": "", + "filter-label": "", + "clear-alerts": "", + "extension-header": "", + "file-header": "", + "comment-header": "", + "details-header": "" + }, + "manage-email-settings": { + "title": "", + "description": "", + "send-to-warning": "", + "email-url-label": "", + "email-url-tooltip": "", + "reset": "", + "test": "", + "host-name-label": "", + "host-name-tooltip": "", + "host-name-validation": "", + "reset-to-default": "", + "save": "" + }, + "manage-library": { + "title": "", + "add-library": "", + "no-data": "", + "loading": "", + "last-scanned-title": "", + "shared-folders-title": "", + "type-title": "", + "scan-library": "", + "delete-library": "", + "delete-library-by-name": "", + "edit-library": "", + "edit-library-by-name": "" + }, + "manage-media-settings": { + "encode-as-description-part-1": "", + "encode-as-description-part-2": "", + "encode-as-description-part-3": "", + "encode-as-warning": "", + "media-warning": "", + "encode-as-label": "", + "encode-as-tooltip": "", + "bookmark-dir-label": "", + "bookmark-dir-tooltip": "", + "change": "", + "reset-to-default": "", + "reset": "", + "save": "", + "media-issue-title": "", + "scrobble-issue-title": "" + }, + "manage-scrobble-errors": { + "description": "", + "filter-label": "", + "clear-errors": "", + "series-header": "", + "created-header": "", + "comment-header": "", + "edit-header": "", + "edit-item-alt": "" + }, + "default-date-pipe": { + "never": "" + }, + "manage-settings": { + "notice": "", + "restart-required": "", + "base-url-label": "", + "base-url-tooltip": "", + "ip-address-label": "", + "ip-address-tooltip": "", + "port-label": "", + "port-tooltip": "", + "backup-label": "", + "backup-tooltip": "", + "log-label": "", + "log-tooltip": "", + "logging-level-label": "", + "logging-level-tooltip": "", + "cache-size-label": "", + "cache-size-tooltip": "", + "on-deck-last-progress-label": "", + "on-deck-last-progress-tooltip": "", + "on-deck-last-chapter-add-label": "", + "on-deck-last-chapter-add-tooltip": "", + "allow-stats-label": "", + "allow-stats-tooltip-part-1": "", + "allow-stats-tooltip-part-2": "", + "send-data": "", + "opds-label": "", + "opds-tooltip": "", + "enable-opds": "", + "folder-watching-label": "", + "folder-watching-tooltip": "", + "enable-folder-watching": "", + "reset-to-default": "", + "reset": "", + "save": "", + "cache-size-validation": "", + "field-required": "", + "max-logs-validation": "", + "min-logs-validation": "", + "min-days-validation": "", + "min-cache-validation": "", + "max-backup-validation": "", + "min-backup-validation": "", + "ip-address-validation": "", + "base-url-validation": "" + }, + "manage-system": { + "title": "", + "version-title": "", + "installId-title": "", + "more-info-title": "", + "home-page-title": "", + "wiki-title": "", + "discord-title": "", + "donations-title": "", + "source-title": "", + "feature-request-title": "" + }, + "manage-tasks-settings": { + "title": "", + "library-scan-label": "", + "library-scan-tooltip": "", + "library-database-backup-label": "", + "library-database-backup-tooltip": "", + "adhoc-tasks-title": "", + "job-title-header": "", + "description-header": "", + "action-header": "", + "reset-to-default": "", + "reset": "", + "save": "", + "recurring-tasks-title": "", + "last-executed-header": "", + "cron-header": "", + "convert-media-task": "", + "convert-media-task-desc": "", + "convert-media-success": "", + "bust-cache-task": "", + "bust-cache-task-desc": "", + "bust-cache-task-success": "", + "clear-reading-cache-task": "", + "clear-reading-cache-task-desc": "", + "clear-reading-cache-task-success": "", + "clean-up-want-to-read-task": "", + "clean-up-want-to-read-task-desc": "", + "clean-up-want-to-read-task-success": "", + "backup-database-task": "", + "backup-database-task-desc": "", + "backup-database-task-success": "", + "download-logs-task": "", + "download-logs-task-desc": "", + "analyze-files-task": "", + "analyze-files-task-desc": "", + "analyze-files-task-success": "", + "check-for-updates-task": "", + "check-for-updates-task-desc": "" + }, + "manage-users": { + "title": "", + "invite": "", + "you-alt": "", + "pending-title": "", + "delete-user-tooltip": "", + "delete-user-alt": "", + "edit-user-tooltip": "", + "edit-user-alt": "", + "resend-invite-tooltip": "", + "resend-invite-alt": "", + "setup-user-tooltip": "", + "setup-user-alt": "", + "change-password-tooltip": "", + "change-password-alt": "", + "resend": "", + "setup": "", + "last-active-title": "", + "roles-title": "", + "none": "", + "never": "", + "online-now-tooltip": "", + "sharing-title": "", + "no-data": "", + "loading": "" + }, + "edit-collection-tags": { + "title": "", + "required-field": "", + "save": "", + "close": "", + "cancel": "", + "general-tab": "", + "cover-image-tab": "", + "series-tab": "", + "name-label": "", + "name-validation": "", + "promote-label": "", + "promote-tooltip": "", + "summary-label": "", + "series-title": "", + "deselect-all": "", + "select-all": "" + }, + "library-detail": { + "library-tab": "", + "recommended-tab": "" + }, + "library-recommended": { + "no-data": "", + "more-in-genre": "", + "rediscover": "", + "highly-rated": "", + "quick-catchups": "", + "quick-reads": "", + "on-deck": "" + }, + "admin-dashboard": { + "title": "", + "general-tab": "", + "users-tab": "", + "libraries-tab": "", + "media-tab": "", + "logs-tab": "", + "email-tab": "", + "tasks-tab": "", + "statistics-tab": "", + "system-tab": "", + "kavita+-tab": "", + "kavita+-desc-part-1": "", + "kavita+-desc-part-2": "", + "kavita+-desc-part-3": "" + }, + "collection-detail": { + "no-data": "", + "no-data-filtered": "", + "title-alt": "" + }, + "all-collections": { + "title": "", + "item-count": "", + "no-data": "", + "create-one-part-1": "", + "create-one-part-2": "" + }, + "carousel-reel": { + "prev-items": "", + "next-items": "" + }, + "draggable-ordered-list": { + "instructions-alt": "", + "reorder-label": "", + "remove-item-alt": "" + }, + "reading-lists": { + "title": "", + "item-count": "", + "no-data": "", + "create-one-part-1": "", + "create-one-part-2": "" + }, + "reading-list-item": { + "remove": "", + "read": "" + }, + "reading-list-detail": { + "item-count": "", + "page-settings-title": "", + "remove-read": "", + "order-numbers-label": "", + "continue": "", + "read": "", + "read-options-alt": "", + "incognito-alt": "", + "no-data": "" + }, + "events-widget": { + "title-alt": "", + "dismiss-all": "", + "update-available": "", + "downloading-item": "", + "more-info": "", + "close": "", + "users-online-count": "", + "active-events-title": "", + "no-data": "" + }, + "shortcuts-modal": { + "title": "", + "close": "", + "prev-page": "", + "next-page": "", + "go-to": "", + "bookmark": "", + "double-click": "", + "close-reader": "", + "toggle-menu": "" + }, + "grouped-typeahead": { + "files": "", + "chapters": "", + "people": "", + "tags": "", + "genres": "", + "libraries": "", + "reading-lists": "", + "collections": "", + "close": "", + "loading": "" + }, + "nav-header": { + "skip-alt": "", + "search-series-alt": "", + "search-alt": "", + "promoted": "", + "no-data": "", + "scroll-to-top-alt": "", + "server-settings": "", + "settings": "", + "help": "", + "announcements": "", + "logout": "" + }, + "add-to-list-modal": { + "title": "", + "close": "", + "filter-label": "", + "promoted-alt": "", + "no-data": "", + "loading": "", + "reading-list-label": "", + "create": "" + }, + "edit-reading-list-modal": { + "title": "", + "general-tab": "", + "cover-image-tab": "", + "close": "", + "save": "", + "year-validation": "", + "month-validation": "", + "name-unique-validation": "", + "required-field": "", + "summary-label": "", + "year-label": "", + "month-label": "", + "ending-title": "", + "starting-title": "", + "promote-label": "", + "promote-tooltip": "" + }, + "import-cbl-modal": { + "close": "", + "title": "", + "import-description": "", + "validate-description": "", + "validate-warning": "", + "validate-no-issue": "", + "validate-no-issue-description": "", + "dry-run-description": "", + "prev": "", + "import": "", + "restart": "", + "next": "", + "import-step": "", + "validate-cbl-step": "", + "dry-run-step": "", + "final-import-step": "" + }, + "pdf-reader": { + "loading-message": "", + "incognito-mode": "", + "light-theme-alt": "", + "dark-theme-alt": "", + "close-reader-alt": "" + }, + "infinite-reader": { + "continuous-reading-prev-chapter-alt": "", + "continuous-reading-prev-chapter": "", + "continuous-reading-next-chapter-alt": "", + "continuous-reading-next-chapter": "" + }, + "manga-reader": { + "back": "", + "save-globally": "", + "incognito-alt": "", + "incognito-title": "", + "shortcuts-menu-alt": "", + "prev-page-tooltip": "", + "next-page-tooltip": "", + "prev-chapter-tooltip": "", + "next-chapter-tooltip": "", + "first-page-tooltip": "", + "last-page-tooltip": "", + "left-to-right-alt": "", + "right-to-left-alt": "", + "reading-direction-tooltip": "", + "reading-mode-tooltip": "", + "collapse": "", + "fullscreen": "", + "settings-tooltip": "", + "image-splitting-label": "", + "image-scaling-label": "", + "height": "", + "width": "", + "original": "", + "auto-close-menu-label": "", + "swipe-enabled-label": "", + "enable-comic-book-label": "", + "brightness-label": "", + "first-time-reading-manga": "", + "layout-mode-switched": "", + "no-next-chapter": "", + "no-prev-chapter": "", + "user-preferences-updated": "" + }, + "metadata-filter": { + "filter-title": "", + "format-label": "", + "format-tooltip": "", + "libraries-label": "", + "collections-label": "", + "genres-label": "", + "tags-label": "", + "cover-artist-label": "", + "writer-label": "", + "publisher-label": "", + "penciller-label": "", + "letterer-label": "", + "inker-label": "", + "editor-label": "", + "colorist-label": "", + "character-label": "", + "translator-label": "", + "read-progress-label": "", + "unread": "", + "read": "", + "in-progress": "", + "rating-label": "", + "age-rating-label": "", + "language-label": "", + "publication-status-label": "", + "series-name-label": "", + "series-name-tooltip": "", + "release-label": "", + "min": "", + "max": "", + "sort-by-label": "", + "ascending-alt": "", + "descending-alt": "", + "reset": "", + "apply": "" + }, + "sort-field-pipe": { + "sort-name": "", + "created": "", + "last-modified": "", + "last-chapter-added": "", + "time-to-read": "", + "release-year": "" + }, + "edit-series-modal": { + "title": "", + "general-tab": "", + "metadata-tab": "", + "people-tab": "", + "web-links-tab": "", + "cover-image-tab": "", + "related-tab": "", + "info-tab": "", + "collections-label": "", + "genres-label": "", + "tags-label": "", + "cover-artist-label": "", + "writer-label": "", + "publisher-label": "", + "penciller-label": "", + "letterer-label": "", + "inker-label": "", + "editor-label": "", + "colorist-label": "", + "character-label": "", + "translator-label": "", + "language-label": "", + "age-rating-label": "", + "publication-status-label": "", + "required-field": "", + "close": "", + "name-label": "", + "sort-name-label": "", + "localized-name-label": "", + "summary-label": "", + "release-year-label": "", + "web-link-description": "", + "web-link-label": "", + "add-link-alt": "", + "remove-link-alt": "", + "cover-image-description": "", + "save": "", + "field-locked-alt": "", + "info-title": "", + "library-title": "", + "format-title": "", + "created-title": "", + "last-read-title": "", + "last-added-title": "", + "last-scanned-title": "", + "folder-path-title": "", + "publication-status-title": "", + "total-pages-title": "", + "total-items-title": "", + "max-items-title": "", + "size-title": "", + "loading": "", + "added-title": "", + "last-modified-title": "", + "view-files": "", + "pages-title": "", + "chapter-title": "", + "volume-num": "", + "highest-count-tooltip": "", + "max-issue-tooltip": "" + }, + "day-breakdown": { + "title": "", + "x-axis-label": "", + "y-axis-label": "" + }, + "file-breakdown-stats": { + "format-title": "", + "format-tooltip": "", + "visualisation-label": "", + "data-table-label": "", + "extension-header": "", + "format-header": "", + "total-size-header": "", + "total-files-header": "", + "not-classified": "", + "total-file-size-title": "" + }, + "reading-activity": { + "title": "", + "legend-label": "", + "x-axis-label": "", + "y-axis-label": "", + "no-data": "", + "time-frame-label": "", + "this-week": "", + "last-7-days": "", + "last-30-days": "", + "last-90-days": "", + "last-year": "", + "all-time": "" + }, + "manga-format-stats": { + "title": "", + "visualisation-label": "", + "data-table-label": "", + "format-header": "", + "count-header": "" + }, + "publication-status-stats": { + "title": "", + "visualisation-label": "", + "data-table-label": "", + "year-header": "", + "count-header": "" + }, + "server-stats": { + "total-series-label": "", + "total-series-tooltip": "", + "total-volumes-label": "", + "total-volumes-tooltip": "", + "total-files-label": "", + "total-files-tooltip": "", + "total-size-label": "", + "total-genres-label": "", + "total-genres-tooltip": "", + "total-tags-label": "", + "total-tags-tooltip": "", + "total-people-label": "", + "total-people-tooltip": "", + "total-read-time-label": "", + "total-read-time-tooltip": "", + "series": "", + "reads": "", + "release-years-title": "", + "most-active-users-title": "", + "popular-libraries-title": "", + "popular-series-title": "", + "recently-read-title": "", + "genre-count": "", + "tag-count": "", + "people-count": "", + "tags": "", + "people": "", + "genres": "" + }, + "errors": { + "series-doesnt-exist": "", + "collection-invalid-access": "", + "unknown-crit": "", + "user-not-auth": "", + "error-code": "", + "download": "", + "not-found": "", + "generic": "", + "rejected-cover-upload": "", + "invalid-confirmation-url": "", + "invalid-confirmation-email": "", + "invalid-password-reset-url": "" + }, + "toasts": { + "regen-cover": "", + "no-pages": "", + "download-in-progress": "", + "scan-queued": "", + "server-settings-updated": "", + "reset-ip-address": "", + "reset-base-url": "", + "unauthorized-1": "", + "unauthorized-2": "", + "no-updates": "", + "confirm-delete-user": "", + "user-deleted": "", + "email-sent-to-user": "", + "click-email-link": "", + "series-added-to-collection": "", + "no-series-collection-warning": "", + "collection-updated": "", + "reading-list-deleted": "", + "reading-list-updated": "", + "confirm-delete-reading-list": "", + "item-removed": "", + "nothing-to-remove": "", + "series-added-to-reading-list": "", + "volumes-added-to-reading-list": "", + "chapter-added-to-reading-list": "", + "multiple-added-to-reading-list": "", + "select-files-warning": "", + "reading-list-imported": "", + "incognito-off": "", + "email-service-reset": "", + "email-service-reachable": "", + "email-service-unresponsive": "", + "refresh-covers-queued": "", + "library-file-analysis-queued": "", + "entity-read": "", + "entity-unread": "", + "mark-read": "", + "mark-unread": "", + "series-removed-want-to-read": "", + "series-deleted": "", + "file-send-to": "", + "theme-missing": "", + "email-sent": "", + "k+-license-saved": "", + "k+-unlocked": "", + "k+-error": "", + "k+-delete-key": "", + "library-deleted": "", + "copied-to-clipboard": "", + "book-settings-info": "", + "no-next-chapter": "", + "no-prev-chapter": "", + "load-next-chapter": "", + "load-prev-chapter": "", + "account-registration-complete": "", + "account-migration-complete": "", + "password-reset": "", + "password-updated": "", + "forced-scan-queued": "", + "library-created": "", + "anilist-token-updated": "", + "age-restriction-updated": "", + "email-sent-to-no-existing": "", + "email-sent-to": "", + "change-email-private": "", + "device-updated": "", + "device-created": "", + "confirm-regen-covers": "", + "alert-long-running": "", + "confirm-delete-multiple-series": "", + "confirm-delete-series": "", + "alert-bad-theme": "", + "confirm-library-delete": "", + "confirm-library-type-change": "", + "confirm-download-size": "" + }, + "actionable": { + "scan-library": "", + "refresh-covers": "", + "analyze-files": "", + "settings": "", + "edit": "", + "mark-as-read": "", + "mark-as-unread": "", + "scan-series": "", + "add-to": "", + "add-to-want-to-read": "", + "remove-from-want-to-read": "", + "remove-from-on-deck": "", + "others": "", + "add-to-reading-list": "", + "add-to-collection": "", + "send-to": "", + "delete": "", + "download": "", + "read-incognito": "", + "details": "", + "view-series": "", + "clear": "", + "import-cbl": "" + }, + "preferences": { + "left-to-right": "", + "right-to-left": "", + "horizontal": "", + "vertical": "", + "automatic": "", + "fit-to-height": "", + "fit-to-width": "", + "original": "", + "fit-to-screen": "", + "no-split": "", + "webtoon": "", + "single": "", + "double": "", + "double-manga": "", + "scroll": "", + "1-column": "", + "2-column": "", + "cards": "", + "list": "", + "up-to-down": "" + }, + "validation": { + "required-field": "", + "valid-email": "", + "password-validation": "" + }, + "entity-type": { + "volume": "", + "chapter": "", + "series": "", + "bookmark": "", + "logs": "" + }, + "common": { + "reset-to-default": "", + "close": "", + "cancel": "", + "create": "", + "save": "", + "reset": "", + "add": "", + "apply": "", + "delete": "", + "edit": "", + "help": "", + "submit": "", + "email": "", + "read": "", + "loading": "", + "username": "", + "password": "", + "promoted": "", + "select-all": "", + "deselect-all": "", + "series-count": "", + "item-count": "", + "book-num": "", + "issue-hash-num": "", + "issue-num": "", + "chapter-num": "", + "volume-num": "" + } +} diff --git a/UI/Web/src/assets/langs/th.json b/UI/Web/src/assets/langs/th.json index 22ef19eeb..366e31fbf 100644 --- a/UI/Web/src/assets/langs/th.json +++ b/UI/Web/src/assets/langs/th.json @@ -28,7 +28,7 @@ }, "user-scrobble-history": { "title": "ประวัติการทำ Scrobble", - "description": "", + "description": "ที่นี่คุณสามารถดูรายการ Scrobble ที่เกิดขึ้นภายใต้บัญชีคุณได้ โดยรายการจะเกิดขึ้นก็ต่อเมื่อคุณได้ตั้งค่า Scrobble เรียบร้อยแล้ว รายการต่างๆ จะถูกลบเมื่อผ่านไปหนึ่งเดือน ถ้ามีรายการที่ยังไม่ถูกประมวลผล นั่นหมายความว่าอาจเกิดปัญหาที่ต้นทาง กรุณาติดต่อผู้ดูแลระบบเพื่อแก้ไขปัญหานี้", "filter-label": "ตัวกรอง", "created-header": "สร้างแล้ว", "last-modified-header": "แก้ไขล่าสุด", @@ -90,42 +90,42 @@ "scrobbling-tab": "การดึงข้อมูลภายนอก", "success-toast": "อัปเดทการตั้งค่าแล้ว", "global-settings-title": "ตั้งค่าส่วนกลาง", - "page-layout-mode-label": "", - "page-layout-mode-tooltip": "", - "locale-label": "", - "locale-tooltip": "", - "blur-unread-summaries-label": "", - "blur-unread-summaries-tooltip": "", - "prompt-on-download-label": "", - "prompt-on-download-tooltip": "", - "disable-animations-label": "", - "disable-animations-tooltip": "", - "collapse-series-relationships-label": "", - "collapse-series-relationships-tooltip": "", - "share-series-reviews-label": "", - "share-series-reviews-tooltip": "", - "image-reader-settings-title": "", - "reading-direction-label": "", - "reading-direction-tooltip": "", - "scaling-option-label": "", - "scaling-option-tooltip": "", - "page-splitting-label": "", - "page-splitting-tooltip": "", - "reading-mode-label": "", - "layout-mode-label": "", - "layout-mode-tooltip": "", - "background-color-label": "", - "auto-close-menu-label": "", - "show-screen-hints-label": "", - "emulate-comic-book-label": "", - "swipe-to-paginate-label": "", - "book-reader-settings-title": "", - "tap-to-paginate-label": "", - "tap-to-paginate-tooltip": "", - "immersive-mode-label": "", - "immersive-mode-tooltip": "", - "reading-direction-book-label": "", - "reading-direction-book-tooltip": "", + "page-layout-mode-label": "รูปแบบหน้าจอ", + "page-layout-mode-tooltip": "แสดงหนังสือในรูปแบบการ์ดหรือรายการบนหน้ารายละเอียดซีรีย์", + "locale-label": "ภาษา", + "locale-tooltip": "ภาษาที่ใช้งานบน Kavita", + "blur-unread-summaries-label": "เบลอบทสรุปที่ยังไม่ได้อ่าน", + "blur-unread-summaries-tooltip": "เบลอข้อความสรุปในเล่มหรือบทที่ไม่มีความคืบหน้าในการอ่าน (เพื่อหลีกเลี่ยงการสปอยล์)", + "prompt-on-download-label": "แจ้งเตือนเมื่อดาวน์โหลด", + "prompt-on-download-tooltip": "แจ้งเมื่อการดาวน์โหลดมีขนาดเกิน {{size}} MB", + "disable-animations-label": "ปิดการใช้งานแอนิเมชั่น", + "disable-animations-tooltip": "ปิดภาพเคลื่อนไหว ใช้งานได้ดีสำหรับผู้ใช้เครื่อง e-ink", + "collapse-series-relationships-label": "ยุบความสัมพันธ์ของซีรี่ส์", + "collapse-series-relationships-tooltip": "Kavita ควรแสดงซีรีส์ที่ไม่มีความสัมพันธ์หรือเป็นพาเรนต์/พรีเควล", + "share-series-reviews-label": "แบ่งปันบทวิจารณ์ซีรีส์", + "share-series-reviews-tooltip": "Kavita ควรรวมบทวิจารณ์ซีรี่ส์ของคุณสำหรับผู้ใช้รายอื่นหรือไม่", + "image-reader-settings-title": "โปรแกรมอ่านรูปภาพ", + "reading-direction-label": "ทิศทางการอ่าน", + "reading-direction-tooltip": "ทิศทางการคลิกเพื่อไปยังหน้าถัดไป ขวาไปซ้าย หมายถึงคุณคลิกที่ด้านซ้ายของหน้าจอเพื่อไปยังหน้าถัดไป", + "scaling-option-label": "ตัวเลือกการปรับขนาด", + "scaling-option-tooltip": "วิธีปรับขนาดภาพให้พอดีกับหน้าจอของคุณ", + "page-splitting-label": "การแยกหน้า", + "page-splitting-tooltip": "วิธีแยกภาพเต็มความกว้าง (เช่น รวมภาพซ้ายและขวาเข้าด้วยกัน)", + "reading-mode-label": "โหมดการอ่าน", + "layout-mode-label": "โหมดเค้าโครง", + "layout-mode-tooltip": "เรนเดอร์ภาพเดียวไปที่หน้าจอหรือสองภาพเคียงข้างกัน", + "background-color-label": "สีพื้นหลัง", + "auto-close-menu-label": "ปิดเมนูอัตโนมัติ", + "show-screen-hints-label": "แสดงคำแนะนำบนหน้าจอ", + "emulate-comic-book-label": "เลียนแบบหนังสือการ์ตูน", + "swipe-to-paginate-label": "ปัดเพื่อเปลี่ยนหน้า", + "book-reader-settings-title": "เครื่องอ่านหนังสือ", + "tap-to-paginate-label": "แตะเพื่อเปลี่ยนหน้า", + "tap-to-paginate-tooltip": "อนุญาตให้แตะมุมหนังสือเพื่อเลื่อนไปยังหน้าก่อนหน้า/ถัดไป", + "immersive-mode-label": "โหมดดื่มด่ำ", + "immersive-mode-tooltip": "วิธีนี้จะซ่อนเมนูหลังการคลิกบนเอกสารของผู้อ่านและเปิดการแตะเพื่อแบ่งหน้า", + "reading-direction-book-label": "ทิศทางการอ่าน", + "reading-direction-book-tooltip": "ทิศทางการคลิกเพื่อไปยังหน้าถัดไป ขวาไปซ้าย หมายถึงคุณคลิกที่ด้านซ้ายของหน้าจอเพื่อไปยังหน้าถัดไป", "font-family-label": "", "font-family-tooltip": "", "writing-style-label": "", diff --git a/UI/Web/src/main.ts b/UI/Web/src/main.ts index 3e5ca1b15..8e52ff2b8 100644 --- a/UI/Web/src/main.ts +++ b/UI/Web/src/main.ts @@ -1,5 +1,9 @@ /// -import {APP_INITIALIZER, importProvidersFrom, isDevMode} from '@angular/core'; +import { + APP_INITIALIZER, ApplicationConfig, + importProvidersFrom, + isDevMode, +} from '@angular/core'; import { AppComponent } from './app/app.component'; import { NgCircleProgressModule } from 'ng-circle-progress'; import { ToastrModule } from 'ngx-toastr'; @@ -9,18 +13,20 @@ import { SAVER, getSaver } from './app/shared/_providers/saver.provider'; import { Title, BrowserModule, bootstrapApplication } from '@angular/platform-browser'; import { JwtInterceptor } from './app/_interceptors/jwt.interceptor'; import { ErrorInterceptor } from './app/_interceptors/error.interceptor'; -import {HTTP_INTERCEPTORS, withInterceptorsFromDi, provideHttpClient, HttpClient} from '@angular/common/http'; -import {TRANSLOCO_CONFIG, TranslocoConfig, TranslocoModule, TranslocoService} from "@ngneat/transloco"; -import {environment} from "./environments/environment"; -import {HttpLoader, translocoLoader} from "./httpLoader"; +import {HTTP_INTERCEPTORS, withInterceptorsFromDi, provideHttpClient} from '@angular/common/http'; import { - TRANSLOCO_PERSIST_LANG_STORAGE, - TranslocoPersistLangModule, + provideTransloco, + TranslocoService +} from "@ngneat/transloco"; +import {environment} from "./environments/environment"; +import {HttpLoader} from "./httpLoader"; +import { + provideTranslocoPersistLang, } from '@ngneat/transloco-persist-lang'; -import {PERSIST_TRANSLATIONS_STORAGE, TranslocoPersistTranslationsModule} from "@ngneat/transloco-persist-translations"; -import {TranslocoLocaleModule} from "@ngneat/transloco-locale"; import {AccountService} from "./app/_services/account.service"; import {switchMap} from "rxjs"; +import {provideTranslocoLocale} from "@ngneat/transloco-locale"; +import {provideTranslocoPersistTranslations} from "@ngneat/transloco-persist-translations"; const disableAnimations = !('animate' in document.documentElement); @@ -40,6 +46,7 @@ export function preloadUser(userService: AccountService, transloco: TranslocoSer }; } + export const preLoad = { provide: APP_INITIALIZER, multi: true, @@ -74,6 +81,23 @@ const languageCodes = [ 'zh-SG', 'zh-TW', 'zu', 'zu-ZA', 'zh_Hans' ]; +const translocoOptions = { + config: { + reRenderOnLangChange: true, + availableLangs: languageCodes, + prodMode: environment.production, + defaultLang: 'en', + fallbackLang: 'en', + missingHandler: { + useFallbackTranslation: true, + allowEmpty: false, + }, + flatten: { + aot: !isDevMode() + } + } +}; + bootstrapApplication(AppComponent, { providers: [ importProvidersFrom(BrowserModule, @@ -87,46 +111,26 @@ bootstrapApplication(AppComponent, { autoDismiss: true }), NgCircleProgressModule.forRoot(), - TranslocoModule, - TranslocoPersistLangModule.forRoot({ - storage: { - provide: TRANSLOCO_PERSIST_LANG_STORAGE, - useValue: localStorage, - }, - }), - TranslocoLocaleModule.forRoot(), - TranslocoPersistTranslationsModule.forRoot({ - loader: HttpLoader, - storage: { - provide: PERSIST_TRANSLATIONS_STORAGE, - useValue: sessionStorage - } - }) ), + provideTransloco(translocoOptions), + provideTranslocoLocale({ + defaultLocale: 'en' + }), + provideTranslocoPersistTranslations({ + loader: HttpLoader, + storage: { useValue: localStorage } + }), + provideTranslocoPersistLang({ + storage: { + useValue: localStorage, + }, + }), { provide: HTTP_INTERCEPTORS, useClass: ErrorInterceptor, multi: true }, { provide: HTTP_INTERCEPTORS, useClass: JwtInterceptor, multi: true }, - { - provide: TRANSLOCO_CONFIG, - useValue: { - reRenderOnLangChange: true, - availableLangs: languageCodes, - prodMode: environment.production, - defaultLang: 'en', - fallbackLang: 'en', - missingHandler: { - useFallbackTranslation: true, - allowEmpty: false, - }, - flatten: { - aot: !isDevMode() - } - - } as TranslocoConfig - }, preLoad, Title, { provide: SAVER, useFactory: getSaver }, provideHttpClient(withInterceptorsFromDi()) ] -}) +} as ApplicationConfig) .catch(err => console.error(err)); diff --git a/openapi.json b/openapi.json index 948ed4477..4cc9151a6 100644 --- a/openapi.json +++ b/openapi.json @@ -7,7 +7,7 @@ "name": "GPL-3.0", "url": "https://github.com/Kareadita/Kavita/blob/develop/LICENSE" }, - "version": "0.7.6.8" + "version": "0.7.6.10" }, "servers": [ {