diff --git a/apps/readest-app/public/locales/ar/translation.json b/apps/readest-app/public/locales/ar/translation.json
index 3712c4b1..d355a26b 100644
--- a/apps/readest-app/public/locales/ar/translation.json
+++ b/apps/readest-app/public/locales/ar/translation.json
@@ -464,6 +464,7 @@
"TTS not supported for this document": "تكنولوجيا تحويل النص إلى كلام غير مدعومة لهذا المستند.",
"Reset Password": "إعادة تعيين",
"Show Reading Progress": "إظهار تقدم القراءة",
+ "Show Progress Bar": "إظهار شريط التقدم",
"Reading Progress Style": "نمط تقدم القراءة",
"Page Number": "رقم الصفحة",
"Percentage": "النسبة المئوية",
@@ -1890,10 +1891,6 @@
"Auto Sync": "مزامنة تلقائية",
"Purged book data: {{title}}": "تم محو بيانات الكتاب: {{title}}",
"Failed to purge book data: {{title}}": "فشل محو بيانات الكتاب: {{title}}",
- "Purge Book Data": "محو جميع بيانات الكتاب",
- "This permanently erases the book and all its data, including reading progress, notes, and bookmarks. This cannot be undone.": "سيؤدي هذا إلى محو الكتاب وجميع بياناته نهائيًا، بما في ذلك تقدم القراءة والملاحظات والإشارات المرجعية. لا يمكن التراجع عن هذا الإجراء.",
- "Purge Data": "محو جميع البيانات",
- "Erase the book and all its data, including reading progress": "محو الكتاب وجميع بياناته، بما في ذلك تقدم القراءة",
"More Actions": "إجراءات أخرى",
"Sign in and make the book available to share it": "سجّل الدخول واجعل الكتاب متاحًا لمشاركته",
"Download the book to export it": "نزّل الكتاب لتصديره",
@@ -1912,5 +1909,16 @@
"Failed to save the image": "فشل حفظ الصورة",
"Share Image": "مشاركة الصورة",
"Save Image": "حفظ الصورة",
- "Image saved to gallery": "تم حفظ الصورة في المعرض"
+ "Image saved to gallery": "تم حفظ الصورة في المعرض",
+ "Please select a whole word or uncheck the \"Whole word\" option.": "يرجى تحديد كلمة كاملة أو إلغاء تحديد خيار \"كلمة كاملة\".",
+ "Regex:": "Regex:",
+ "Invalid regular expression": "تعبير نمطي غير صالح",
+ "Find pattern cannot be empty": "لا يمكن أن يكون نمط البحث فارغًا",
+ "Add Rule": "إضافة قاعدة",
+ "Find...": "بحث...",
+ "Replace with...": "استبدال بـ...",
+ "Purge & Delete": "مسح وحذف",
+ "Purge all reading data": "مسح جميع بيانات القراءة",
+ "This permanently erases reading progress, notes, and bookmarks. This cannot be undone.": "يؤدي هذا إلى مسح تقدم القراءة والملاحظات والإشارات المرجعية نهائيًا. لا يمكن التراجع عن هذا الإجراء.",
+ "Also erase reading progress, notes, and bookmarks.": "يمسح أيضًا تقدم القراءة والملاحظات والإشارات المرجعية."
}
diff --git a/apps/readest-app/public/locales/bn/translation.json b/apps/readest-app/public/locales/bn/translation.json
index a6b67650..003bfe53 100644
--- a/apps/readest-app/public/locales/bn/translation.json
+++ b/apps/readest-app/public/locales/bn/translation.json
@@ -267,6 +267,7 @@
"Show Remaining Time": "বাকি সময় দেখান",
"Show Remaining Pages": "বাকি পৃষ্ঠা দেখান",
"Show Reading Progress": "পড়ার অগ্রগতি দেখান",
+ "Show Progress Bar": "অগ্রগতি বার দেখান",
"Reading Progress Style": "পড়ার অগ্রগতির স্টাইল",
"Page Number": "পৃষ্ঠা নম্বর",
"Percentage": "শতাংশ",
@@ -1758,10 +1759,6 @@
"Auto Sync": "স্বয়ংক্রিয় সিঙ্ক",
"Purged book data: {{title}}": "বইয়ের ডেটা মুছে ফেলা হয়েছে: {{title}}",
"Failed to purge book data: {{title}}": "বইয়ের ডেটা মুছতে ব্যর্থ: {{title}}",
- "Purge Book Data": "বইয়ের সমস্ত ডেটা মুছুন",
- "This permanently erases the book and all its data, including reading progress, notes, and bookmarks. This cannot be undone.": "এটি বইটি এবং পড়ার অগ্রগতি, নোট ও বুকমার্ক সহ এর সমস্ত ডেটা স্থায়ীভাবে মুছে ফেলবে। এটি পূর্বাবস্থায় ফেরানো যাবে না।",
- "Purge Data": "সমস্ত ডেটা মুছুন",
- "Erase the book and all its data, including reading progress": "পড়ার অগ্রগতিসহ বই ও এর সমস্ত ডেটা মুছে ফেলুন",
"More Actions": "আরও ক্রিয়া",
"Sign in and make the book available to share it": "শেয়ার করতে সাইন ইন করুন এবং বইটি উপলব্ধ করুন",
"Download the book to export it": "এক্সপোর্ট করতে বইটি ডাউনলোড করুন",
@@ -1780,5 +1777,16 @@
"Failed to save the image": "ছবি সংরক্ষণ করা যায়নি",
"Share Image": "ছবি শেয়ার করুন",
"Save Image": "ছবি সংরক্ষণ করুন",
- "Image saved to gallery": "ছবি গ্যালারিতে সংরক্ষিত হয়েছে"
+ "Image saved to gallery": "ছবি গ্যালারিতে সংরক্ষিত হয়েছে",
+ "Please select a whole word or uncheck the \"Whole word\" option.": "একটি সম্পূর্ণ শব্দ নির্বাচন করুন অথবা \"সম্পূর্ণ শব্দ\" বিকল্পটি আনচেক করুন।",
+ "Regex:": "Regex:",
+ "Invalid regular expression": "অবৈধ রেগুলার এক্সপ্রেশন",
+ "Find pattern cannot be empty": "অনুসন্ধান প্যাটার্ন খালি রাখা যাবে না",
+ "Add Rule": "নিয়ম যোগ করুন",
+ "Find...": "খুঁজুন...",
+ "Replace with...": "প্রতিস্থাপন করুন...",
+ "Purge & Delete": "পরিষ্কার করে মুছুন",
+ "Purge all reading data": "সমস্ত পড়ার ডেটা পরিষ্কার করুন",
+ "This permanently erases reading progress, notes, and bookmarks. This cannot be undone.": "এটি স্থায়ীভাবে পড়ার অগ্রগতি, নোট এবং বুকমার্ক মুছে ফেলে। এটি পূর্বাবস্থায় ফেরানো যাবে না।",
+ "Also erase reading progress, notes, and bookmarks.": "পড়ার অগ্রগতি, নোট এবং বুকমার্কও মুছে ফেলে।"
}
diff --git a/apps/readest-app/public/locales/bo/translation.json b/apps/readest-app/public/locales/bo/translation.json
index 6fb44f00..48ce36b7 100644
--- a/apps/readest-app/public/locales/bo/translation.json
+++ b/apps/readest-app/public/locales/bo/translation.json
@@ -443,6 +443,7 @@
"TTS not supported for this document": "ཡིག་ཆ་འདིར་ TTS རྒྱབ་སྐྱོར་མི་བྱེད།",
"Reset Password": "གསང་ཨང་བསྐྱར་སྒྲིག",
"Show Reading Progress": "ཀློག་པའི་ཡར་འཕེལ་མངོན་པ།",
+ "Show Progress Bar": "ཡར་འཕེལ་ཕྲ་རིང་མངོན་པ།",
"Reading Progress Style": "ཀློག་པའི་ཡར་འཕེལ་གྱི་རྣམ་པ།",
"Page Number": "ཤོག་ཨང་།",
"Percentage": "བརྒྱ་ཆ།",
@@ -1725,10 +1726,6 @@
"Auto Sync": "རང་འགུལ་སྤྲི་དོན།",
"Purged book data: {{title}}": "དཔེ་དེབ་ཀྱི་གཞི་གྲངས་བསུབ་ཟིན། {{title}}",
"Failed to purge book data: {{title}}": "དཔེ་དེབ་ཀྱི་གཞི་གྲངས་བསུབ་མ་ཐུབ། {{title}}",
- "Purge Book Data": "དཔེ་དེབ་ཀྱི་གཞི་གྲངས་ཡོངས་སུ་བསུབ།",
- "This permanently erases the book and all its data, including reading progress, notes, and bookmarks. This cannot be undone.": "འདིས་དཔེ་དེབ་དང་ཀློག་འདོན་གྱི་འཕེལ་རིམ། ཟིན་ཐོ། དེབ་རྟགས་བཅས་ཀྱི་གཞི་གྲངས་ཡོངས་རྫོགས་གཏན་འཁེལ་དུ་བསུབ་པ་ཡིན། འདི་ཕྱིར་བསྒྱུར་མི་ཐུབ།",
- "Purge Data": "གཞི་གྲངས་ཡོངས་སུ་བསུབ།",
- "Erase the book and all its data, including reading progress": "དཔེ་དེབ་དང་ཀློག་འདོན་གྱི་འཕེལ་རིམ་བཅས་ཀྱི་གཞི་གྲངས་ཡོངས་སུ་བསུབ།",
"More Actions": "བྱ་སྤྱོད་གཞན་དག",
"Sign in and make the book available to share it": "ནང་འཛུལ་བྱས་ནས་དཔེ་དེབ་མཁོ་སྤྲོད་རུང་བར་བཟོས་ནས་མཉམ་སྤྱོད་བྱོས།",
"Download the book to export it": "ཕྱིར་འདྲེན་བྱེད་པར་དཔེ་དེབ་ཕབ་ལེན་བྱོས།",
@@ -1747,5 +1744,16 @@
"Failed to save the image": "པར་རིས་ཉར་ཚགས་བྱས་མ་ཐུབ",
"Share Image": "པར་རིས་མཉམ་སྤྱོད།",
"Save Image": "པར་རིས་ཉར་ཚགས།",
- "Image saved to gallery": "པར་རིས་པར་མཛོད་ནང་ཉར་ཚགས་བྱས་ཟིན"
+ "Image saved to gallery": "པར་རིས་པར་མཛོད་ནང་ཉར་ཚགས་བྱས་ཟིན",
+ "Please select a whole word or uncheck the \"Whole word\" option.": "ཡིག་འབྲུ་ཆ་ཚང་ཞིག་འདེམས་རོགས། ཡང་ན་ \"ཚིག་གྲུབ་ཆ་ཚང་\" ཞེས་པའི་གདམ་ག་ཕྱིར་འཐེན་གནང་རོགས།",
+ "Regex:": "Regex:",
+ "Invalid regular expression": "Regex ནུས་མེད་རེད།",
+ "Find pattern cannot be empty": "འཚོལ་བཤེར་དཔེ་རིས་སྟོང་པ་ཡིན་མི་ཆོག",
+ "Add Rule": "སྒྲིག་གཞི་ཁ་སྣོན།",
+ "Find...": "འཚོལ་བཤེར།...",
+ "Replace with...": "བརྗེ་བ།...",
+ "Purge & Delete": "གཙང་སེལ་བྱས་ནས་སུབ་པ།",
+ "Purge all reading data": "ཀློག་པའི་གཞི་གྲངས་ཡོངས་གཙང་སེལ།",
+ "This permanently erases reading progress, notes, and bookmarks. This cannot be undone.": "འདིས་ཀློག་པའི་ཡར་འཕེལ་དང་། ཟིན་བྲིས། དཔེ་རྟགས་བཅས་གཏན་དུ་སུབ་ངེས་ཡིན། ཕྱིར་ལྡོག་བྱེད་མི་ཐུབ།",
+ "Also erase reading progress, notes, and bookmarks.": "ཀློག་པའི་ཡར་འཕེལ་དང་། ཟིན་བྲིས། དཔེ་རྟགས་བཅས་ཀྱང་སུབ་པ།"
}
diff --git a/apps/readest-app/public/locales/de/translation.json b/apps/readest-app/public/locales/de/translation.json
index fe8dec53..a090c2c2 100644
--- a/apps/readest-app/public/locales/de/translation.json
+++ b/apps/readest-app/public/locales/de/translation.json
@@ -448,6 +448,7 @@
"TTS not supported for this document": "TTS wird für dieses Dokument nicht unterstützt",
"Reset Password": "Passwort zurücksetzen",
"Show Reading Progress": "Lesefortschritt anzeigen",
+ "Show Progress Bar": "Fortschrittsleiste anzeigen",
"Reading Progress Style": "Lesefortschritt-Stil",
"Page Number": "Seitenzahl",
"Percentage": "Prozentsatz",
@@ -1758,10 +1759,6 @@
"Auto Sync": "Automatische Synchronisierung",
"Purged book data: {{title}}": "Buchdaten gelöscht: {{title}}",
"Failed to purge book data: {{title}}": "Buchdaten konnten nicht gelöscht werden: {{title}}",
- "Purge Book Data": "Buchdaten endgültig löschen",
- "This permanently erases the book and all its data, including reading progress, notes, and bookmarks. This cannot be undone.": "Dadurch werden das Buch und alle zugehörigen Daten – einschließlich Lesefortschritt, Notizen und Lesezeichen – endgültig gelöscht. Dies kann nicht rückgängig gemacht werden.",
- "Purge Data": "Alle Daten löschen",
- "Erase the book and all its data, including reading progress": "Buch und alle Daten löschen, einschließlich Lesefortschritt",
"More Actions": "Weitere Aktionen",
"Sign in and make the book available to share it": "Melde dich an und mache das Buch verfügbar, um es zu teilen",
"Download the book to export it": "Lade das Buch herunter, um es zu exportieren",
@@ -1780,5 +1777,16 @@
"Failed to save the image": "Bild konnte nicht gespeichert werden",
"Share Image": "Bild teilen",
"Save Image": "Bild speichern",
- "Image saved to gallery": "Bild in der Galerie gespeichert"
+ "Image saved to gallery": "Bild in der Galerie gespeichert",
+ "Please select a whole word or uncheck the \"Whole word\" option.": "Bitte wählen Sie ein ganzes Wort aus oder deaktivieren Sie die Option „Ganzes Wort\".",
+ "Regex:": "Regex:",
+ "Invalid regular expression": "Ungültiger regulärer Ausdruck",
+ "Find pattern cannot be empty": "Suchmuster darf nicht leer sein",
+ "Add Rule": "Regel hinzufügen",
+ "Find...": "Suchen…",
+ "Replace with...": "Ersetzen durch…",
+ "Purge & Delete": "Bereinigen und löschen",
+ "Purge all reading data": "Alle Lesedaten bereinigen",
+ "This permanently erases reading progress, notes, and bookmarks. This cannot be undone.": "Dadurch werden Lesefortschritt, Notizen und Lesezeichen dauerhaft gelöscht. Dies kann nicht rückgängig gemacht werden.",
+ "Also erase reading progress, notes, and bookmarks.": "Löscht auch Lesefortschritt, Notizen und Lesezeichen."
}
diff --git a/apps/readest-app/public/locales/el/translation.json b/apps/readest-app/public/locales/el/translation.json
index 30f856c3..6af7ee88 100644
--- a/apps/readest-app/public/locales/el/translation.json
+++ b/apps/readest-app/public/locales/el/translation.json
@@ -448,6 +448,7 @@
"TTS not supported for this document": "Η τεχνολογία TTS δεν υποστηρίζεται για αυτό το έγγραφο.",
"Reset Password": "Επαναφορά κωδικού",
"Show Reading Progress": "Εμφάνιση προόδου ανάγνωσης",
+ "Show Progress Bar": "Εμφάνιση γραμμής προόδου",
"Reading Progress Style": "Στυλ προόδου ανάγνωσης",
"Page Number": "Αριθμός σελίδας",
"Percentage": "Ποσοστό",
@@ -1758,10 +1759,6 @@
"Auto Sync": "Αυτόματος συγχρονισμός",
"Purged book data: {{title}}": "Τα δεδομένα του βιβλίου διαγράφηκαν: {{title}}",
"Failed to purge book data: {{title}}": "Αποτυχία διαγραφής δεδομένων βιβλίου: {{title}}",
- "Purge Book Data": "Διαγραφή δεδομένων βιβλίου",
- "This permanently erases the book and all its data, including reading progress, notes, and bookmarks. This cannot be undone.": "Αυτό διαγράφει οριστικά το βιβλίο και όλα τα δεδομένα του, συμπεριλαμβανομένης της προόδου ανάγνωσης, των σημειώσεων και των σελιδοδεικτών. Αυτή η ενέργεια δεν μπορεί να αναιρεθεί.",
- "Purge Data": "Διαγραφή όλων των δεδομένων",
- "Erase the book and all its data, including reading progress": "Διαγράφει το βιβλίο και όλα τα δεδομένα του, συμπεριλαμβανομένης της προόδου ανάγνωσης",
"More Actions": "Περισσότερες ενέργειες",
"Sign in and make the book available to share it": "Συνδεθείτε και κάντε το βιβλίο διαθέσιμο για να το μοιραστείτε",
"Download the book to export it": "Κατεβάστε το βιβλίο για να το εξαγάγετε",
@@ -1780,5 +1777,16 @@
"Failed to save the image": "Αποτυχία αποθήκευσης της εικόνας",
"Share Image": "Κοινή χρήση εικόνας",
"Save Image": "Αποθήκευση εικόνας",
- "Image saved to gallery": "Η εικόνα αποθηκεύτηκε στη συλλογή"
+ "Image saved to gallery": "Η εικόνα αποθηκεύτηκε στη συλλογή",
+ "Please select a whole word or uncheck the \"Whole word\" option.": "Επιλέξτε μια ολόκληρη λέξη ή καταργήστε την επιλογή «Ολόκληρη λέξη».",
+ "Regex:": "Regex:",
+ "Invalid regular expression": "Μη έγκυρη κανονική έκφραση",
+ "Find pattern cannot be empty": "Το μοτίβο αναζήτησης δεν μπορεί να είναι κενό",
+ "Add Rule": "Προσθήκη κανόνα",
+ "Find...": "Αναζήτηση…",
+ "Replace with...": "Αντικατάσταση με…",
+ "Purge & Delete": "Εκκαθάριση & Διαγραφή",
+ "Purge all reading data": "Εκκαθάριση όλων των δεδομένων ανάγνωσης",
+ "This permanently erases reading progress, notes, and bookmarks. This cannot be undone.": "Αυτό διαγράφει οριστικά την πρόοδο ανάγνωσης, τις σημειώσεις και τους σελιδοδείκτες. Δεν είναι δυνατή η αναίρεση.",
+ "Also erase reading progress, notes, and bookmarks.": "Διαγράφει επίσης την πρόοδο ανάγνωσης, τις σημειώσεις και τους σελιδοδείκτες."
}
diff --git a/apps/readest-app/public/locales/es/translation.json b/apps/readest-app/public/locales/es/translation.json
index 123a0196..280d0872 100644
--- a/apps/readest-app/public/locales/es/translation.json
+++ b/apps/readest-app/public/locales/es/translation.json
@@ -476,6 +476,7 @@
"Reading Progress Style": "Estilo de progreso de lectura",
"Percentage": "Porcentaje",
"Show Reading Progress": "Mostrar progreso de lectura",
+ "Show Progress Bar": "Mostrar barra de progreso",
"Page Number": "Número de página",
"Deleted local copy of the book: {{title}}": "Se eliminó la copia local del libro: {{title}}",
"Failed to delete cloud backup of the book: {{title}}": "Error al eliminar la copia de seguridad en la nube del libro: {{title}}",
@@ -1791,10 +1792,6 @@
"Auto Sync": "Sincronización automática",
"Purged book data: {{title}}": "Datos del libro borrados: {{title}}",
"Failed to purge book data: {{title}}": "No se pudieron borrar los datos del libro: {{title}}",
- "Purge Book Data": "Borrar todos los datos del libro",
- "This permanently erases the book and all its data, including reading progress, notes, and bookmarks. This cannot be undone.": "Esto borra permanentemente el libro y todos sus datos, incluido el progreso de lectura, las notas y los marcadores. Esta acción no se puede deshacer.",
- "Purge Data": "Borrar todos los datos",
- "Erase the book and all its data, including reading progress": "Borra el libro y todos sus datos, incluido el progreso de lectura",
"More Actions": "Más acciones",
"Sign in and make the book available to share it": "Inicia sesión y ten el libro disponible para compartirlo",
"Download the book to export it": "Descarga el libro para exportarlo",
@@ -1813,5 +1810,16 @@
"Failed to save the image": "No se pudo guardar la imagen",
"Share Image": "Compartir imagen",
"Save Image": "Guardar imagen",
- "Image saved to gallery": "Imagen guardada en la galería"
+ "Image saved to gallery": "Imagen guardada en la galería",
+ "Please select a whole word or uncheck the \"Whole word\" option.": "Selecciona una palabra completa o desmarca la opción «Palabra completa».",
+ "Regex:": "Regex:",
+ "Invalid regular expression": "Expresión regular no válida",
+ "Find pattern cannot be empty": "El patrón de búsqueda no puede estar vacío",
+ "Add Rule": "Añadir regla",
+ "Find...": "Buscar…",
+ "Replace with...": "Reemplazar por…",
+ "Purge & Delete": "Purgar y eliminar",
+ "Purge all reading data": "Purgar todos los datos de lectura",
+ "This permanently erases reading progress, notes, and bookmarks. This cannot be undone.": "Esto borra permanentemente el progreso de lectura, las notas y los marcadores. Esta acción no se puede deshacer.",
+ "Also erase reading progress, notes, and bookmarks.": "También borra el progreso de lectura, las notas y los marcadores."
}
diff --git a/apps/readest-app/public/locales/fa/translation.json b/apps/readest-app/public/locales/fa/translation.json
index 8e4b44c2..0778ca53 100644
--- a/apps/readest-app/public/locales/fa/translation.json
+++ b/apps/readest-app/public/locales/fa/translation.json
@@ -448,6 +448,7 @@
"TTS not supported for this document": "قابلیت تبدیل متن به گفتار برای این سند پشتیبانی نمیشود",
"Reset Password": "بازنشانی رمز عبور",
"Show Reading Progress": "نمایش وضعیت مطالعه",
+ "Show Progress Bar": "نمایش نوار پیشرفت",
"Reading Progress Style": "سبک نمایش وضعیت مطالعه",
"Page Number": "شماره صفحه",
"Percentage": "درصد",
@@ -1758,10 +1759,6 @@
"Auto Sync": "همگامسازی خودکار",
"Purged book data: {{title}}": "دادههای کتاب پاک شد: {{title}}",
"Failed to purge book data: {{title}}": "پاکسازی دادههای کتاب ناموفق بود: {{title}}",
- "Purge Book Data": "پاکسازی دادههای کتاب",
- "This permanently erases the book and all its data, including reading progress, notes, and bookmarks. This cannot be undone.": "این کار کتاب و تمام دادههای آن، شامل پیشرفت مطالعه، یادداشتها و نشانکها را برای همیشه پاک میکند. این عمل قابل بازگشت نیست.",
- "Purge Data": "پاکسازی دادهها",
- "Erase the book and all its data, including reading progress": "کتاب و تمام دادههای آن، شامل پیشرفت مطالعه را پاک میکند",
"More Actions": "اقدامات بیشتر",
"Sign in and make the book available to share it": "برای اشتراکگذاری، وارد شوید و کتاب را در دسترس قرار دهید",
"Download the book to export it": "برای خروجی گرفتن، کتاب را دانلود کنید",
@@ -1780,5 +1777,16 @@
"Failed to save the image": "ذخیره تصویر ناموفق بود",
"Share Image": "اشتراکگذاری تصویر",
"Save Image": "ذخیره تصویر",
- "Image saved to gallery": "تصویر در گالری ذخیره شد"
+ "Image saved to gallery": "تصویر در گالری ذخیره شد",
+ "Please select a whole word or uncheck the \"Whole word\" option.": "لطفاً یک کلمه کامل انتخاب کنید یا گزینه «کلمه کامل» را غیرفعال کنید.",
+ "Regex:": "Regex:",
+ "Invalid regular expression": "عبارت باقاعده نامعتبر است",
+ "Find pattern cannot be empty": "الگوی جستجو نمیتواند خالی باشد",
+ "Add Rule": "افزودن قاعده",
+ "Find...": "جستجو…",
+ "Replace with...": "جایگزین با…",
+ "Purge & Delete": "پاکسازی و حذف",
+ "Purge all reading data": "پاکسازی همه دادههای مطالعه",
+ "This permanently erases reading progress, notes, and bookmarks. This cannot be undone.": "این کار وضعیت مطالعه، یادداشتها و نشانکها را برای همیشه پاک میکند. این عمل قابل بازگشت نیست.",
+ "Also erase reading progress, notes, and bookmarks.": "همچنین وضعیت مطالعه، یادداشتها و نشانکها را پاک میکند."
}
diff --git a/apps/readest-app/public/locales/fr/translation.json b/apps/readest-app/public/locales/fr/translation.json
index 3a42c945..bd70c60c 100644
--- a/apps/readest-app/public/locales/fr/translation.json
+++ b/apps/readest-app/public/locales/fr/translation.json
@@ -452,6 +452,7 @@
"TTS not supported for this document": "TTS non pris en charge pour ce document",
"Reset Password": "Nouveau mot de passe",
"Show Reading Progress": "Afficher la progression",
+ "Show Progress Bar": "Afficher la barre de progression",
"Reading Progress Style": "Style de progression",
"Page Number": "Numéro de page",
"Percentage": "Pourcentage",
@@ -1791,10 +1792,6 @@
"Auto Sync": "Synchronisation automatique",
"Purged book data: {{title}}": "Données du livre purgées : {{title}}",
"Failed to purge book data: {{title}}": "Échec de la purge des données du livre : {{title}}",
- "Purge Book Data": "Purger les données du livre",
- "This permanently erases the book and all its data, including reading progress, notes, and bookmarks. This cannot be undone.": "Cette action supprime définitivement le livre et toutes ses données, y compris la progression de lecture, les notes et les signets. Cette action est irréversible.",
- "Purge Data": "Purger les données",
- "Erase the book and all its data, including reading progress": "Supprime le livre et toutes ses données, y compris la progression de lecture",
"More Actions": "Plus d'actions",
"Sign in and make the book available to share it": "Connectez-vous et rendez le livre disponible pour le partager",
"Download the book to export it": "Téléchargez le livre pour l'exporter",
@@ -1813,5 +1810,16 @@
"Failed to save the image": "Échec de l'enregistrement de l'image",
"Share Image": "Partager l'image",
"Save Image": "Enregistrer l'image",
- "Image saved to gallery": "Image enregistrée dans la galerie"
+ "Image saved to gallery": "Image enregistrée dans la galerie",
+ "Please select a whole word or uncheck the \"Whole word\" option.": "Veuillez sélectionner un mot entier ou décocher l’option « Mot entier ».",
+ "Regex:": "Regex :",
+ "Invalid regular expression": "Expression régulière invalide",
+ "Find pattern cannot be empty": "Le motif de recherche ne peut pas être vide",
+ "Add Rule": "Ajouter une règle",
+ "Find...": "Rechercher…",
+ "Replace with...": "Remplacer par…",
+ "Purge & Delete": "Purger et supprimer",
+ "Purge all reading data": "Purger toutes les données de lecture",
+ "This permanently erases reading progress, notes, and bookmarks. This cannot be undone.": "Cela efface définitivement la progression de lecture, les notes et les signets. Cette action est irréversible.",
+ "Also erase reading progress, notes, and bookmarks.": "Efface aussi la progression de lecture, les notes et les signets."
}
diff --git a/apps/readest-app/public/locales/he/translation.json b/apps/readest-app/public/locales/he/translation.json
index d84068f5..48258636 100644
--- a/apps/readest-app/public/locales/he/translation.json
+++ b/apps/readest-app/public/locales/he/translation.json
@@ -950,6 +950,7 @@
"Show Remaining Time": "הצג זמן נותר",
"Show Remaining Pages": "הצג דפים נותרים",
"Show Reading Progress": "הצג התקדמות קריאה",
+ "Show Progress Bar": "הצג סרגל התקדמות",
"Reading Progress Style": "סגנון התקדמות קריאה",
"Page Number": "מספר דף",
"Percentage": "אחוזים",
@@ -1791,10 +1792,6 @@
"Auto Sync": "סנכרון אוטומטי",
"Purged book data: {{title}}": "נתוני הספר נמחקו: {{title}}",
"Failed to purge book data: {{title}}": "מחיקת נתוני הספר נכשלה: {{title}}",
- "Purge Book Data": "מחיקת כל נתוני הספר",
- "This permanently erases the book and all its data, including reading progress, notes, and bookmarks. This cannot be undone.": "פעולה זו מוחקת לצמיתות את הספר ואת כל הנתונים שלו, כולל התקדמות הקריאה, ההערות והסימניות. לא ניתן לבטל פעולה זו.",
- "Purge Data": "מחק את כל הנתונים",
- "Erase the book and all its data, including reading progress": "מחיקת הספר וכל הנתונים שלו, כולל התקדמות הקריאה",
"More Actions": "פעולות נוספות",
"Sign in and make the book available to share it": "היכנס והפוך את הספר לזמין כדי לשתף אותו",
"Download the book to export it": "הורד את הספר כדי לייצא אותו",
@@ -1813,5 +1810,16 @@
"Failed to save the image": "שמירת התמונה נכשלה",
"Share Image": "שיתוף התמונה",
"Save Image": "שמירת התמונה",
- "Image saved to gallery": "התמונה נשמרה בגלריה"
+ "Image saved to gallery": "התמונה נשמרה בגלריה",
+ "Please select a whole word or uncheck the \"Whole word\" option.": "יש לבחור מילה שלמה או לבטל את האפשרות \"מילה שלמה\".",
+ "Regex:": "Regex:",
+ "Invalid regular expression": "ביטוי רגולרי לא תקין",
+ "Find pattern cannot be empty": "תבנית החיפוש לא יכולה להיות ריקה",
+ "Add Rule": "הוסף כלל",
+ "Find...": "חיפוש...",
+ "Replace with...": "החלף ב...",
+ "Purge & Delete": "נקה ומחק",
+ "Purge all reading data": "נקה את כל נתוני הקריאה",
+ "This permanently erases reading progress, notes, and bookmarks. This cannot be undone.": "פעולה זו מוחקת לצמיתות את התקדמות הקריאה, ההערות והסימניות. לא ניתן לבטל פעולה זו.",
+ "Also erase reading progress, notes, and bookmarks.": "מוחק גם את התקדמות הקריאה, ההערות והסימניות."
}
diff --git a/apps/readest-app/public/locales/hi/translation.json b/apps/readest-app/public/locales/hi/translation.json
index dfd0e021..eeb6bb94 100644
--- a/apps/readest-app/public/locales/hi/translation.json
+++ b/apps/readest-app/public/locales/hi/translation.json
@@ -448,6 +448,7 @@
"TTS not supported for this document": "TTS इस दस्तावेज़ के लिए समर्थित नहीं है",
"Reset Password": "पासवर्ड रीसेट करें",
"Show Reading Progress": "पढ़ने की प्रगति दिखाएं",
+ "Show Progress Bar": "प्रगति पट्टी दिखाएं",
"Reading Progress Style": "पढ़ने की प्रगति शैली",
"Page Number": "पृष्ठ संख्या",
"Percentage": "प्रतिशत",
@@ -1758,10 +1759,6 @@
"Auto Sync": "स्वतः सिंक",
"Purged book data: {{title}}": "पुस्तक का डेटा मिटाया गया: {{title}}",
"Failed to purge book data: {{title}}": "पुस्तक का डेटा मिटाने में विफल: {{title}}",
- "Purge Book Data": "पुस्तक का सारा डेटा मिटाएँ",
- "This permanently erases the book and all its data, including reading progress, notes, and bookmarks. This cannot be undone.": "इससे पुस्तक और उसका सारा डेटा, जिसमें पढ़ने की प्रगति, नोट्स और बुकमार्क शामिल हैं, स्थायी रूप से मिट जाएगा। इसे पूर्ववत नहीं किया जा सकता।",
- "Purge Data": "सारा डेटा मिटाएँ",
- "Erase the book and all its data, including reading progress": "पढ़ने की प्रगति सहित पुस्तक और उसका सारा डेटा मिटाएँ",
"More Actions": "अधिक क्रियाएँ",
"Sign in and make the book available to share it": "साझा करने के लिए साइन इन करें और पुस्तक उपलब्ध कराएँ",
"Download the book to export it": "निर्यात करने के लिए पुस्तक डाउनलोड करें",
@@ -1780,5 +1777,16 @@
"Failed to save the image": "छवि सहेजने में विफल",
"Share Image": "छवि साझा करें",
"Save Image": "छवि सहेजें",
- "Image saved to gallery": "छवि गैलरी में सहेजी गई"
+ "Image saved to gallery": "छवि गैलरी में सहेजी गई",
+ "Please select a whole word or uncheck the \"Whole word\" option.": "कृपया पूरा शब्द चुनें या \"पूरा शब्द\" विकल्प को अनचेक करें।",
+ "Regex:": "Regex:",
+ "Invalid regular expression": "अमान्य रेगुलर एक्सप्रेशन",
+ "Find pattern cannot be empty": "खोज पैटर्न खाली नहीं हो सकता",
+ "Add Rule": "नियम जोड़ें",
+ "Find...": "खोजें…",
+ "Replace with...": "से बदलें…",
+ "Purge & Delete": "साफ़ करें और हटाएं",
+ "Purge all reading data": "सभी पढ़ने का डेटा साफ़ करें",
+ "This permanently erases reading progress, notes, and bookmarks. This cannot be undone.": "यह पढ़ने की प्रगति, नोट्स और बुकमार्क को स्थायी रूप से मिटा देता है। इसे पूर्ववत नहीं किया जा सकता।",
+ "Also erase reading progress, notes, and bookmarks.": "पढ़ने की प्रगति, नोट्स और बुकमार्क भी मिटा देता है।"
}
diff --git a/apps/readest-app/public/locales/hu/translation.json b/apps/readest-app/public/locales/hu/translation.json
index af143ab9..e06cd901 100644
--- a/apps/readest-app/public/locales/hu/translation.json
+++ b/apps/readest-app/public/locales/hu/translation.json
@@ -1027,6 +1027,7 @@
"Show Remaining Time": "Hátralévő idő megjelenítése",
"Show Remaining Pages": "Hátralévő oldalak megjelenítése",
"Show Reading Progress": "Olvasási haladás megjelenítése",
+ "Show Progress Bar": "Folyamatjelző megjelenítése",
"Reading Progress Style": "Olvasási haladás stílusa",
"Percentage": "Százalék",
"Show Current Time": "Aktuális idő megjelenítése",
@@ -1758,10 +1759,6 @@
"Auto Sync": "Automatikus szinkronizálás",
"Purged book data: {{title}}": "Könyv adatai törölve: {{title}}",
"Failed to purge book data: {{title}}": "A könyv adatainak törlése sikertelen: {{title}}",
- "Purge Book Data": "Könyv összes adatának törlése",
- "This permanently erases the book and all its data, including reading progress, notes, and bookmarks. This cannot be undone.": "Ez véglegesen törli a könyvet és minden adatát, beleértve az olvasási előrehaladást, a jegyzeteket és a könyvjelzőket. A művelet nem vonható vissza.",
- "Purge Data": "Összes adat törlése",
- "Erase the book and all its data, including reading progress": "Törli a könyvet és minden adatát, beleértve az olvasási előrehaladást",
"More Actions": "További műveletek",
"Sign in and make the book available to share it": "Jelentkezz be, és tedd elérhetővé a könyvet a megosztáshoz",
"Download the book to export it": "Töltsd le a könyvet az exportáláshoz",
@@ -1780,5 +1777,16 @@
"Failed to save the image": "Nem sikerült menteni a képet",
"Share Image": "Kép megosztása",
"Save Image": "Kép mentése",
- "Image saved to gallery": "A kép elmentve a galériába"
+ "Image saved to gallery": "A kép elmentve a galériába",
+ "Please select a whole word or uncheck the \"Whole word\" option.": "Válasszon ki egy teljes szót, vagy törölje a „Teljes szó\" beállítás jelölését.",
+ "Regex:": "Regex:",
+ "Invalid regular expression": "Érvénytelen reguláris kifejezés",
+ "Find pattern cannot be empty": "A keresési minta nem lehet üres",
+ "Add Rule": "Szabály hozzáadása",
+ "Find...": "Keresés...",
+ "Replace with...": "Csere erre...",
+ "Purge & Delete": "Tisztítás és törlés",
+ "Purge all reading data": "Összes olvasási adat törlése",
+ "This permanently erases reading progress, notes, and bookmarks. This cannot be undone.": "Ez véglegesen törli az olvasási haladást, a jegyzeteket és a könyvjelzőket. A művelet nem vonható vissza.",
+ "Also erase reading progress, notes, and bookmarks.": "Az olvasási haladást, jegyzeteket és könyvjelzőket is törli."
}
diff --git a/apps/readest-app/public/locales/id/translation.json b/apps/readest-app/public/locales/id/translation.json
index e661d844..93165191 100644
--- a/apps/readest-app/public/locales/id/translation.json
+++ b/apps/readest-app/public/locales/id/translation.json
@@ -444,6 +444,7 @@
"TTS not supported for this document": "TTS tidak didukung untuk dokumen ini",
"Reset Password": "Reset Kata Sandi",
"Show Reading Progress": "Perlihatkan Progres Membaca",
+ "Show Progress Bar": "Tampilkan Bilah Progres",
"Reading Progress Style": "Gaya Progres Membaca",
"Page Number": "Nomor Halaman",
"Percentage": "Persentase",
@@ -1725,10 +1726,6 @@
"Auto Sync": "Sinkronisasi Otomatis",
"Purged book data: {{title}}": "Data buku dihapus: {{title}}",
"Failed to purge book data: {{title}}": "Gagal menghapus data buku: {{title}}",
- "Purge Book Data": "Hapus semua data buku",
- "This permanently erases the book and all its data, including reading progress, notes, and bookmarks. This cannot be undone.": "Ini akan menghapus buku secara permanen beserta semua datanya, termasuk progres baca, catatan, dan markah. Tindakan ini tidak dapat dibatalkan.",
- "Purge Data": "Hapus semua data",
- "Erase the book and all its data, including reading progress": "Menghapus buku dan semua datanya, termasuk progres baca",
"More Actions": "Tindakan lainnya",
"Sign in and make the book available to share it": "Masuk dan sediakan buku untuk membagikannya",
"Download the book to export it": "Unduh buku untuk mengekspornya",
@@ -1747,5 +1744,16 @@
"Failed to save the image": "Gagal menyimpan gambar",
"Share Image": "Bagikan Gambar",
"Save Image": "Simpan Gambar",
- "Image saved to gallery": "Gambar disimpan ke galeri"
+ "Image saved to gallery": "Gambar disimpan ke galeri",
+ "Please select a whole word or uncheck the \"Whole word\" option.": "Pilih satu kata utuh atau hapus centang opsi \"Kata utuh\".",
+ "Regex:": "Regex:",
+ "Invalid regular expression": "Ekspresi reguler tidak valid",
+ "Find pattern cannot be empty": "Pola pencarian tidak boleh kosong",
+ "Add Rule": "Tambah aturan",
+ "Find...": "Cari…",
+ "Replace with...": "Ganti dengan…",
+ "Purge & Delete": "Bersihkan & Hapus",
+ "Purge all reading data": "Bersihkan semua data baca",
+ "This permanently erases reading progress, notes, and bookmarks. This cannot be undone.": "Ini menghapus permanen progres membaca, catatan, dan penanda. Tindakan ini tidak dapat dibatalkan.",
+ "Also erase reading progress, notes, and bookmarks.": "Juga menghapus progres membaca, catatan, dan penanda."
}
diff --git a/apps/readest-app/public/locales/it/translation.json b/apps/readest-app/public/locales/it/translation.json
index 733e57dc..89c9dd49 100644
--- a/apps/readest-app/public/locales/it/translation.json
+++ b/apps/readest-app/public/locales/it/translation.json
@@ -452,6 +452,7 @@
"TTS not supported for this document": "TTS non supportato per questo documento",
"Reset Password": "Reimposta Password",
"Show Reading Progress": "Mostra Progresso Lettura",
+ "Show Progress Bar": "Mostra barra di avanzamento",
"Reading Progress Style": "Stile di Progresso Lettura",
"Page Number": "Numero di Pagina",
"Percentage": "Percentuale",
@@ -1791,10 +1792,6 @@
"Auto Sync": "Sincronizzazione automatica",
"Purged book data: {{title}}": "Dati del libro eliminati: {{title}}",
"Failed to purge book data: {{title}}": "Impossibile eliminare i dati del libro: {{title}}",
- "Purge Book Data": "Elimina tutti i dati del libro",
- "This permanently erases the book and all its data, including reading progress, notes, and bookmarks. This cannot be undone.": "Questa operazione elimina definitivamente il libro e tutti i suoi dati, inclusi i progressi di lettura, le note e i segnalibri. L'operazione non può essere annullata.",
- "Purge Data": "Elimina tutti i dati",
- "Erase the book and all its data, including reading progress": "Elimina il libro e tutti i suoi dati, inclusi i progressi di lettura",
"More Actions": "Altre azioni",
"Sign in and make the book available to share it": "Accedi e rendi disponibile il libro per condividerlo",
"Download the book to export it": "Scarica il libro per esportarlo",
@@ -1813,5 +1810,16 @@
"Failed to save the image": "Impossibile salvare l'immagine",
"Share Image": "Condividi immagine",
"Save Image": "Salva immagine",
- "Image saved to gallery": "Immagine salvata nella galleria"
+ "Image saved to gallery": "Immagine salvata nella galleria",
+ "Please select a whole word or uncheck the \"Whole word\" option.": "Seleziona una parola intera o deseleziona l’opzione «Parola intera».",
+ "Regex:": "Regex:",
+ "Invalid regular expression": "Espressione regolare non valida",
+ "Find pattern cannot be empty": "Il criterio di ricerca non può essere vuoto",
+ "Add Rule": "Aggiungi regola",
+ "Find...": "Cerca…",
+ "Replace with...": "Sostituisci con…",
+ "Purge & Delete": "Svuota ed elimina",
+ "Purge all reading data": "Elimina tutti i dati di lettura",
+ "This permanently erases reading progress, notes, and bookmarks. This cannot be undone.": "Questa operazione cancella definitivamente il progresso di lettura, le note e i segnalibri. Non può essere annullata.",
+ "Also erase reading progress, notes, and bookmarks.": "Cancella anche il progresso di lettura, le note e i segnalibri."
}
diff --git a/apps/readest-app/public/locales/ja/translation.json b/apps/readest-app/public/locales/ja/translation.json
index cc5e377b..71620a6c 100644
--- a/apps/readest-app/public/locales/ja/translation.json
+++ b/apps/readest-app/public/locales/ja/translation.json
@@ -444,6 +444,7 @@
"TTS not supported for this document": "TTSはこのドキュメントではサポートされていません",
"Reset Password": "パスワードをリセット",
"Show Reading Progress": "読書進捗を表示",
+ "Show Progress Bar": "進捗バーを表示",
"Reading Progress Style": "読書進捗スタイル",
"Page Number": "ページ番号",
"Percentage": "パーセンテージ",
@@ -1725,10 +1726,6 @@
"Auto Sync": "自動同期",
"Purged book data: {{title}}": "書籍データを消去しました: {{title}}",
"Failed to purge book data: {{title}}": "書籍データの消去に失敗しました: {{title}}",
- "Purge Book Data": "書籍データを消去",
- "This permanently erases the book and all its data, including reading progress, notes, and bookmarks. This cannot be undone.": "これにより、本と読書の進行状況・メモ・しおりを含むすべてのデータが完全に削除されます。この操作は取り消せません。",
- "Purge Data": "データを消去",
- "Erase the book and all its data, including reading progress": "本と読書の進行状況を含むすべてのデータを消去します",
"More Actions": "その他の操作",
"Sign in and make the book available to share it": "共有するにはサインインして書籍を利用可能にしてください",
"Download the book to export it": "エクスポートするには書籍をダウンロードしてください",
@@ -1747,5 +1744,16 @@
"Failed to save the image": "画像の保存に失敗しました",
"Share Image": "画像を共有",
"Save Image": "画像を保存",
- "Image saved to gallery": "画像をギャラリーに保存しました"
+ "Image saved to gallery": "画像をギャラリーに保存しました",
+ "Please select a whole word or uncheck the \"Whole word\" option.": "単語全体を選択するか、「単語全体」オプションのチェックを外してください。",
+ "Regex:": "正規表現:",
+ "Invalid regular expression": "正規表現が無効です",
+ "Find pattern cannot be empty": "検索パターンを空にできません",
+ "Add Rule": "ルールを追加",
+ "Find...": "検索…",
+ "Replace with...": "置換後…",
+ "Purge & Delete": "消去して削除",
+ "Purge all reading data": "すべての読書データを消去",
+ "This permanently erases reading progress, notes, and bookmarks. This cannot be undone.": "読書進捗、メモ、ブックマークが完全に消去されます。この操作は元に戻せません。",
+ "Also erase reading progress, notes, and bookmarks.": "読書進捗、メモ、ブックマークも消去します。"
}
diff --git a/apps/readest-app/public/locales/ko/translation.json b/apps/readest-app/public/locales/ko/translation.json
index 8a07f751..a311cc88 100644
--- a/apps/readest-app/public/locales/ko/translation.json
+++ b/apps/readest-app/public/locales/ko/translation.json
@@ -444,6 +444,7 @@
"TTS not supported for this document": "TTS가 이 문서에서 지원되지 않습니다",
"Reset Password": "비밀번호 재설정",
"Show Reading Progress": "읽기 진행 상황 표시",
+ "Show Progress Bar": "진행률 표시줄 표시",
"Reading Progress Style": "읽기 진행 상황 스타일",
"Page Number": "페이지 번호",
"Percentage": "백분율",
@@ -1725,10 +1726,6 @@
"Auto Sync": "자동 동기화",
"Purged book data: {{title}}": "도서 데이터를 삭제했습니다: {{title}}",
"Failed to purge book data: {{title}}": "도서 데이터 삭제에 실패했습니다: {{title}}",
- "Purge Book Data": "도서 데이터 완전 삭제",
- "This permanently erases the book and all its data, including reading progress, notes, and bookmarks. This cannot be undone.": "책과 읽기 진행률, 메모, 책갈피를 포함한 모든 데이터가 영구적으로 삭제됩니다. 이 작업은 되돌릴 수 없습니다.",
- "Purge Data": "데이터 완전 삭제",
- "Erase the book and all its data, including reading progress": "읽기 진행률을 포함한 책과 모든 데이터를 삭제합니다",
"More Actions": "추가 작업",
"Sign in and make the book available to share it": "공유하려면 로그인하고 책을 사용할 수 있도록 하세요",
"Download the book to export it": "내보내려면 책을 다운로드하세요",
@@ -1747,5 +1744,16 @@
"Failed to save the image": "이미지를 저장하지 못했습니다",
"Share Image": "이미지 공유",
"Save Image": "이미지 저장",
- "Image saved to gallery": "이미지를 갤러리에 저장했습니다"
+ "Image saved to gallery": "이미지를 갤러리에 저장했습니다",
+ "Please select a whole word or uncheck the \"Whole word\" option.": "전체 단어를 선택하거나 '전체 단어' 옵션의 선택을 해제하세요.",
+ "Regex:": "정규식:",
+ "Invalid regular expression": "잘못된 정규식입니다",
+ "Find pattern cannot be empty": "찾을 내용을 비워 둘 수 없습니다",
+ "Add Rule": "규칙 추가",
+ "Find...": "검색…",
+ "Replace with...": "바꿀 내용…",
+ "Purge & Delete": "데이터 지우고 삭제",
+ "Purge all reading data": "모든 읽기 데이터 지우기",
+ "This permanently erases reading progress, notes, and bookmarks. This cannot be undone.": "읽기 진행 상황, 메모, 북마크가 영구적으로 지워집니다. 이 작업은 되돌릴 수 없습니다.",
+ "Also erase reading progress, notes, and bookmarks.": "읽기 진행 상황, 메모, 북마크도 함께 지웁니다."
}
diff --git a/apps/readest-app/public/locales/ms/translation.json b/apps/readest-app/public/locales/ms/translation.json
index 7322cba4..aa3c9c10 100644
--- a/apps/readest-app/public/locales/ms/translation.json
+++ b/apps/readest-app/public/locales/ms/translation.json
@@ -594,6 +594,7 @@
"Show Remaining Time": "Tunjuk Masa Berbaki",
"Show Remaining Pages": "Tunjuk Halaman Berbaki",
"Show Reading Progress": "Tunjuk Kemajuan Membaca",
+ "Show Progress Bar": "Tunjuk Bar Kemajuan",
"Reading Progress Style": "Gaya Kemajuan Membaca",
"Page Number": "Nombor Halaman",
"Percentage": "Peratusan",
@@ -1725,10 +1726,6 @@
"Auto Sync": "Segerak Automatik",
"Purged book data: {{title}}": "Data buku dipadam: {{title}}",
"Failed to purge book data: {{title}}": "Gagal memadam data buku: {{title}}",
- "Purge Book Data": "Padam semua data buku",
- "This permanently erases the book and all its data, including reading progress, notes, and bookmarks. This cannot be undone.": "Ini memadamkan buku dan semua datanya secara kekal, termasuk kemajuan bacaan, nota dan penanda buku. Tindakan ini tidak boleh dibuat asal.",
- "Purge Data": "Padam semua data",
- "Erase the book and all its data, including reading progress": "Memadam buku dan semua datanya, termasuk kemajuan bacaan",
"More Actions": "Tindakan lain",
"Sign in and make the book available to share it": "Log masuk dan sediakan buku untuk berkongsinya",
"Download the book to export it": "Muat turun buku untuk mengeksportnya",
@@ -1747,5 +1744,16 @@
"Failed to save the image": "Gagal menyimpan imej",
"Share Image": "Kongsi Imej",
"Save Image": "Simpan Imej",
- "Image saved to gallery": "Imej disimpan ke galeri"
+ "Image saved to gallery": "Imej disimpan ke galeri",
+ "Please select a whole word or uncheck the \"Whole word\" option.": "Sila pilih perkataan penuh atau nyahtanda pilihan \"Perkataan penuh\".",
+ "Regex:": "Regex:",
+ "Invalid regular expression": "Ungkapan biasa tidak sah",
+ "Find pattern cannot be empty": "Corak carian tidak boleh kosong",
+ "Add Rule": "Tambah peraturan",
+ "Find...": "Cari…",
+ "Replace with...": "Ganti dengan…",
+ "Purge & Delete": "Bersihkan & Padam",
+ "Purge all reading data": "Bersihkan semua data bacaan",
+ "This permanently erases reading progress, notes, and bookmarks. This cannot be undone.": "Ini memadam kemajuan membaca, nota dan penanda buku secara kekal. Tindakan ini tidak boleh dibatalkan.",
+ "Also erase reading progress, notes, and bookmarks.": "Turut memadam kemajuan membaca, nota dan penanda buku."
}
diff --git a/apps/readest-app/public/locales/nl/translation.json b/apps/readest-app/public/locales/nl/translation.json
index 41d70510..1b5e46f4 100644
--- a/apps/readest-app/public/locales/nl/translation.json
+++ b/apps/readest-app/public/locales/nl/translation.json
@@ -448,6 +448,7 @@
"TTS not supported for this document": "TTS niet ondersteund voor dit document",
"Reset Password": "Wachtwoord resetten",
"Show Reading Progress": "Leesvoortgang weergeven",
+ "Show Progress Bar": "Voortgangsbalk weergeven",
"Reading Progress Style": "Stijl van leesvoortgang",
"Page Number": "Pagina nummer",
"Percentage": "Percentage",
@@ -1758,10 +1759,6 @@
"Auto Sync": "Automatische synchronisatie",
"Purged book data: {{title}}": "Boekgegevens gewist: {{title}}",
"Failed to purge book data: {{title}}": "Kan boekgegevens niet wissen: {{title}}",
- "Purge Book Data": "Alle boekgegevens wissen",
- "This permanently erases the book and all its data, including reading progress, notes, and bookmarks. This cannot be undone.": "Hiermee worden het boek en alle bijbehorende gegevens, waaronder leesvoortgang, notities en bladwijzers, permanent gewist. Dit kan niet ongedaan worden gemaakt.",
- "Purge Data": "Alle gegevens wissen",
- "Erase the book and all its data, including reading progress": "Wist het boek en alle gegevens, inclusief leesvoortgang",
"More Actions": "Meer acties",
"Sign in and make the book available to share it": "Meld je aan en maak het boek beschikbaar om het te delen",
"Download the book to export it": "Download het boek om het te exporteren",
@@ -1780,5 +1777,16 @@
"Failed to save the image": "Kan de afbeelding niet opslaan",
"Share Image": "Afbeelding delen",
"Save Image": "Afbeelding opslaan",
- "Image saved to gallery": "Afbeelding opgeslagen in de galerij"
+ "Image saved to gallery": "Afbeelding opgeslagen in de galerij",
+ "Please select a whole word or uncheck the \"Whole word\" option.": "Selecteer een heel woord of schakel de optie ‘Heel woord’ uit.",
+ "Regex:": "Regex:",
+ "Invalid regular expression": "Ongeldige reguliere expressie",
+ "Find pattern cannot be empty": "Zoekpatroon mag niet leeg zijn",
+ "Add Rule": "Regel toevoegen",
+ "Find...": "Zoeken…",
+ "Replace with...": "Vervangen door…",
+ "Purge & Delete": "Wissen en verwijderen",
+ "Purge all reading data": "Alle leesgegevens wissen",
+ "This permanently erases reading progress, notes, and bookmarks. This cannot be undone.": "Hiermee worden leesvoortgang, notities en bladwijzers permanent gewist. Dit kan niet ongedaan worden gemaakt.",
+ "Also erase reading progress, notes, and bookmarks.": "Wist ook leesvoortgang, notities en bladwijzers."
}
diff --git a/apps/readest-app/public/locales/pl/translation.json b/apps/readest-app/public/locales/pl/translation.json
index 6f415a81..f2c32bbd 100644
--- a/apps/readest-app/public/locales/pl/translation.json
+++ b/apps/readest-app/public/locales/pl/translation.json
@@ -456,6 +456,7 @@
"TTS not supported for this document": "TTS nie jest obsługiwane dla tego dokumentu",
"Reset Password": "Zresetuj hasło",
"Show Reading Progress": "Pokazuj postęp czytania",
+ "Show Progress Bar": "Pokaż pasek postępu",
"Reading Progress Style": "Styl postępu czytania",
"Page Number": "Numer strony",
"Percentage": "Procent",
@@ -1824,10 +1825,6 @@
"Auto Sync": "Automatyczna synchronizacja",
"Purged book data: {{title}}": "Usunięto dane książki: {{title}}",
"Failed to purge book data: {{title}}": "Nie udało się usunąć danych książki: {{title}}",
- "Purge Book Data": "Usuń wszystkie dane książki",
- "This permanently erases the book and all its data, including reading progress, notes, and bookmarks. This cannot be undone.": "Spowoduje to trwałe usunięcie książki i wszystkich jej danych, w tym postępu czytania, notatek i zakładek. Tej operacji nie można cofnąć.",
- "Purge Data": "Usuń wszystkie dane",
- "Erase the book and all its data, including reading progress": "Usuwa książkę i wszystkie jej dane, w tym postęp czytania",
"More Actions": "Więcej akcji",
"Sign in and make the book available to share it": "Zaloguj się i pobierz książkę, aby ją udostępnić",
"Download the book to export it": "Pobierz książkę, aby ją wyeksportować",
@@ -1846,5 +1843,16 @@
"Failed to save the image": "Nie udało się zapisać obrazu",
"Share Image": "Udostępnij obraz",
"Save Image": "Zapisz obraz",
- "Image saved to gallery": "Obraz zapisano w galerii"
+ "Image saved to gallery": "Obraz zapisano w galerii",
+ "Please select a whole word or uncheck the \"Whole word\" option.": "Zaznacz całe słowo lub odznacz opcję „Całe słowo\".",
+ "Regex:": "Regex:",
+ "Invalid regular expression": "Nieprawidłowe wyrażenie regularne",
+ "Find pattern cannot be empty": "Wzorzec wyszukiwania nie może być pusty",
+ "Add Rule": "Dodaj regułę",
+ "Find...": "Szukaj…",
+ "Replace with...": "Zastąp przez…",
+ "Purge & Delete": "Wyczyść i usuń",
+ "Purge all reading data": "Wyczyść wszystkie dane czytania",
+ "This permanently erases reading progress, notes, and bookmarks. This cannot be undone.": "Spowoduje to trwałe usunięcie postępu czytania, notatek i zakładek. Tej operacji nie można cofnąć.",
+ "Also erase reading progress, notes, and bookmarks.": "Usuwa również postęp czytania, notatki i zakładki."
}
diff --git a/apps/readest-app/public/locales/pt-BR/translation.json b/apps/readest-app/public/locales/pt-BR/translation.json
index c2e0099a..6f0ce524 100644
--- a/apps/readest-app/public/locales/pt-BR/translation.json
+++ b/apps/readest-app/public/locales/pt-BR/translation.json
@@ -1177,6 +1177,7 @@
"Show Remaining Time": "Mostrar tempo restante",
"Show Remaining Pages": "Mostrar páginas restantes",
"Show Reading Progress": "Mostrar progresso de leitura",
+ "Show Progress Bar": "Mostrar barra de progresso",
"Reading Progress Style": "Estilo do progresso de leitura",
"Percentage": "Porcentagem",
"Show Current Time": "Mostrar hora atual",
@@ -1791,10 +1792,6 @@
"Auto Sync": "Sincronização automática",
"Purged book data: {{title}}": "Dados do livro apagados: {{title}}",
"Failed to purge book data: {{title}}": "Falha ao apagar os dados do livro: {{title}}",
- "Purge Book Data": "Apagar todos os dados do livro",
- "This permanently erases the book and all its data, including reading progress, notes, and bookmarks. This cannot be undone.": "Isso apaga permanentemente o livro e todos os seus dados, incluindo o progresso de leitura, notas e marcadores. Esta ação não pode ser desfeita.",
- "Purge Data": "Apagar todos os dados",
- "Erase the book and all its data, including reading progress": "Apaga o livro e todos os seus dados, incluindo o progresso de leitura",
"More Actions": "Mais ações",
"Sign in and make the book available to share it": "Faça login e tenha o livro disponível para compartilhá-lo",
"Download the book to export it": "Baixe o livro para exportá-lo",
@@ -1813,5 +1810,16 @@
"Failed to save the image": "Falha ao salvar a imagem",
"Share Image": "Compartilhar imagem",
"Save Image": "Salvar imagem",
- "Image saved to gallery": "Imagem salva na galeria"
+ "Image saved to gallery": "Imagem salva na galeria",
+ "Please select a whole word or uncheck the \"Whole word\" option.": "Selecione uma palavra inteira ou desmarque a opção \"Palavra inteira\".",
+ "Regex:": "Regex:",
+ "Invalid regular expression": "Expressão regular inválida",
+ "Find pattern cannot be empty": "O padrão de busca não pode ficar vazio",
+ "Add Rule": "Adicionar regra",
+ "Find...": "Buscar...",
+ "Replace with...": "Substituir por...",
+ "Purge & Delete": "Limpar e excluir",
+ "Purge all reading data": "Limpar todos os dados de leitura",
+ "This permanently erases reading progress, notes, and bookmarks. This cannot be undone.": "Isso apaga permanentemente o progresso de leitura, as notas e os marcadores. Esta ação não pode ser desfeita.",
+ "Also erase reading progress, notes, and bookmarks.": "Também apaga o progresso de leitura, as notas e os marcadores."
}
diff --git a/apps/readest-app/public/locales/pt/translation.json b/apps/readest-app/public/locales/pt/translation.json
index af410932..6f2d5464 100644
--- a/apps/readest-app/public/locales/pt/translation.json
+++ b/apps/readest-app/public/locales/pt/translation.json
@@ -452,6 +452,7 @@
"TTS not supported for this document": "TTS não suportado para este documento",
"Reset Password": "Redefinir Senha",
"Show Reading Progress": "Mostrar Progresso de Leitura",
+ "Show Progress Bar": "Mostrar barra de progresso",
"Reading Progress Style": "Estilo de Progresso de Leitura",
"Page Number": "Número da Página",
"Percentage": "Porcentagem",
@@ -1791,10 +1792,6 @@
"Auto Sync": "Sincronização Automática",
"Purged book data: {{title}}": "Dados do livro apagados: {{title}}",
"Failed to purge book data: {{title}}": "Falha ao apagar os dados do livro: {{title}}",
- "Purge Book Data": "Apagar todos os dados do livro",
- "This permanently erases the book and all its data, including reading progress, notes, and bookmarks. This cannot be undone.": "Isto apaga permanentemente o livro e todos os seus dados, incluindo o progresso de leitura, notas e marcadores. Esta ação não pode ser desfeita.",
- "Purge Data": "Apagar todos os dados",
- "Erase the book and all its data, including reading progress": "Apaga o livro e todos os seus dados, incluindo o progresso de leitura",
"More Actions": "Mais ações",
"Sign in and make the book available to share it": "Inicie sessão e tenha o livro disponível para o partilhar",
"Download the book to export it": "Transfira o livro para o exportar",
@@ -1813,5 +1810,16 @@
"Failed to save the image": "Falha ao salvar a imagem",
"Share Image": "Partilhar imagem",
"Save Image": "Salvar imagem",
- "Image saved to gallery": "Imagem guardada na galeria"
+ "Image saved to gallery": "Imagem guardada na galeria",
+ "Please select a whole word or uncheck the \"Whole word\" option.": "Selecione uma palavra inteira ou desmarque a opção «Palavra inteira».",
+ "Regex:": "Regex:",
+ "Invalid regular expression": "Expressão regular inválida",
+ "Find pattern cannot be empty": "O padrão de pesquisa não pode estar vazio",
+ "Add Rule": "Adicionar regra",
+ "Find...": "Buscar…",
+ "Replace with...": "Substituir por…",
+ "Purge & Delete": "Limpar e excluir",
+ "Purge all reading data": "Limpar todos os dados de leitura",
+ "This permanently erases reading progress, notes, and bookmarks. This cannot be undone.": "Isto apaga permanentemente o progresso de leitura, notas e marcadores. Esta ação não pode ser desfeita.",
+ "Also erase reading progress, notes, and bookmarks.": "Também apaga o progresso de leitura, notas e marcadores."
}
diff --git a/apps/readest-app/public/locales/ro/translation.json b/apps/readest-app/public/locales/ro/translation.json
index 4267eccd..7768f307 100644
--- a/apps/readest-app/public/locales/ro/translation.json
+++ b/apps/readest-app/public/locales/ro/translation.json
@@ -1016,6 +1016,7 @@
"Show Remaining Time": "Afișează timpul rămas",
"Show Remaining Pages": "Afișează paginile rămase",
"Show Reading Progress": "Afișează progresul citirii",
+ "Show Progress Bar": "Afișează bara de progres",
"Reading Progress Style": "Stilul progresului citirii",
"Percentage": "Procent",
"Show Current Time": "Afișează ora curentă",
@@ -1791,10 +1792,6 @@
"Auto Sync": "Sincronizare automată",
"Purged book data: {{title}}": "Datele cărții au fost șterse: {{title}}",
"Failed to purge book data: {{title}}": "Ștergerea datelor cărții a eșuat: {{title}}",
- "Purge Book Data": "Șterge toate datele cărții",
- "This permanently erases the book and all its data, including reading progress, notes, and bookmarks. This cannot be undone.": "Aceasta șterge definitiv cartea și toate datele sale, inclusiv progresul lecturii, notițele și marcajele. Această acțiune nu poate fi anulată.",
- "Purge Data": "Șterge toate datele",
- "Erase the book and all its data, including reading progress": "Șterge cartea și toate datele sale, inclusiv progresul lecturii",
"More Actions": "Mai multe acțiuni",
"Sign in and make the book available to share it": "Conectează-te și fă cartea disponibilă pentru a o partaja",
"Download the book to export it": "Descarcă cartea pentru a o exporta",
@@ -1813,5 +1810,16 @@
"Failed to save the image": "Salvarea imaginii a eșuat",
"Share Image": "Partajează imaginea",
"Save Image": "Salvează imaginea",
- "Image saved to gallery": "Imagine salvată în galerie"
+ "Image saved to gallery": "Imagine salvată în galerie",
+ "Please select a whole word or uncheck the \"Whole word\" option.": "Selectați un cuvânt întreg sau debifați opțiunea „Cuvântul întreg\".",
+ "Regex:": "Regex:",
+ "Invalid regular expression": "Expresie regulată invalidă",
+ "Find pattern cannot be empty": "Modelul de căutare nu poate fi gol",
+ "Add Rule": "Adaugă regulă",
+ "Find...": "Căutare...",
+ "Replace with...": "Înlocuiește cu...",
+ "Purge & Delete": "Curăță și șterge",
+ "Purge all reading data": "Curăță toate datele de citire",
+ "This permanently erases reading progress, notes, and bookmarks. This cannot be undone.": "Aceasta șterge definitiv progresul citirii, notele și marcajele. Această acțiune nu poate fi anulată.",
+ "Also erase reading progress, notes, and bookmarks.": "Șterge de asemenea progresul citirii, notele și marcajele."
}
diff --git a/apps/readest-app/public/locales/ru/translation.json b/apps/readest-app/public/locales/ru/translation.json
index 4c575fe8..f221fe09 100644
--- a/apps/readest-app/public/locales/ru/translation.json
+++ b/apps/readest-app/public/locales/ru/translation.json
@@ -456,6 +456,7 @@
"TTS not supported for this document": "TTS не поддерживается для этого документа",
"Reset Password": "Сбросить пароль",
"Show Reading Progress": "Показать прогресс чтения",
+ "Show Progress Bar": "Показать полосу прогресса",
"Reading Progress Style": "Стиль прогресса чтения",
"Page Number": "Номер страницы",
"Percentage": "Процент",
@@ -1824,10 +1825,6 @@
"Auto Sync": "Автосинхронизация",
"Purged book data: {{title}}": "Данные книги очищены: {{title}}",
"Failed to purge book data: {{title}}": "Не удалось очистить данные книги: {{title}}",
- "Purge Book Data": "Очистить данные книги",
- "This permanently erases the book and all its data, including reading progress, notes, and bookmarks. This cannot be undone.": "Это навсегда удалит книгу и все её данные, включая прогресс чтения, заметки и закладки. Это действие нельзя отменить.",
- "Purge Data": "Очистить данные",
- "Erase the book and all its data, including reading progress": "Удаляет книгу и все её данные, включая прогресс чтения",
"More Actions": "Ещё действия",
"Sign in and make the book available to share it": "Войдите и сделайте книгу доступной, чтобы поделиться ею",
"Download the book to export it": "Скачайте книгу, чтобы экспортировать её",
@@ -1846,5 +1843,16 @@
"Failed to save the image": "Не удалось сохранить изображение",
"Share Image": "Поделиться изображением",
"Save Image": "Сохранить изображение",
- "Image saved to gallery": "Изображение сохранено в галерее"
+ "Image saved to gallery": "Изображение сохранено в галерее",
+ "Please select a whole word or uncheck the \"Whole word\" option.": "Выберите слово целиком или снимите флажок «Слово целиком».",
+ "Regex:": "Regex:",
+ "Invalid regular expression": "Недопустимое регулярное выражение",
+ "Find pattern cannot be empty": "Шаблон поиска не может быть пустым",
+ "Add Rule": "Добавить правило",
+ "Find...": "Поиск…",
+ "Replace with...": "Заменить на…",
+ "Purge & Delete": "Очистить и удалить",
+ "Purge all reading data": "Очистить все данные чтения",
+ "This permanently erases reading progress, notes, and bookmarks. This cannot be undone.": "Это безвозвратно удалит прогресс чтения, заметки и закладки. Это действие нельзя отменить.",
+ "Also erase reading progress, notes, and bookmarks.": "Также удаляет прогресс чтения, заметки и закладки."
}
diff --git a/apps/readest-app/public/locales/si/translation.json b/apps/readest-app/public/locales/si/translation.json
index 568cd4e5..8281bede 100644
--- a/apps/readest-app/public/locales/si/translation.json
+++ b/apps/readest-app/public/locales/si/translation.json
@@ -267,6 +267,7 @@
"Show Remaining Time": "ඉතිරි වේලාව පෙන්වන්න",
"Show Remaining Pages": "ඉතිරි පිටු පෙන්වන්න",
"Show Reading Progress": "කියවීමේ ප්රගතිය පෙන්වන්න",
+ "Show Progress Bar": "ප්රගති තීරුව පෙන්වන්න",
"Reading Progress Style": "කියවීමේ ප්රගති ශෛලිය",
"Page Number": "පිටු අංකය",
"Percentage": "ප්රතිශතය",
@@ -1758,10 +1759,6 @@
"Auto Sync": "ස්වයංක්රීය සමමුහුර්තය",
"Purged book data: {{title}}": "පොතේ දත්ත මකා දමන ලදී: {{title}}",
"Failed to purge book data: {{title}}": "පොතේ දත්ත මැකීමට අසමත් විය: {{title}}",
- "Purge Book Data": "පොතේ සියලු දත්ත මකන්න",
- "This permanently erases the book and all its data, including reading progress, notes, and bookmarks. This cannot be undone.": "මෙය පොත සහ කියවීමේ ප්රගතිය, සටහන් සහ පිටු සලකුණු ඇතුළුව එහි සියලු දත්ත ස්ථිරවම මකා දමයි. මෙය පෙරළිය නොහැක.",
- "Purge Data": "සියලු දත්ත මකන්න",
- "Erase the book and all its data, including reading progress": "කියවීමේ ප්රගතිය ඇතුළුව පොත සහ එහි සියලු දත්ත මකන්න",
"More Actions": "තවත් ක්රියා",
"Sign in and make the book available to share it": "බෙදා ගැනීමට පුරනය වී පොත ලබා ගත හැකි කරන්න",
"Download the book to export it": "අපනයනය කිරීමට පොත බාගන්න",
@@ -1780,5 +1777,16 @@
"Failed to save the image": "රූපය සුරැකීමට අසමත් විය",
"Share Image": "රූපය බෙදාගන්න",
"Save Image": "රූපය සුරකින්න",
- "Image saved to gallery": "රූපය ගැලරියට සුරැකිණි"
+ "Image saved to gallery": "රූපය ගැලරියට සුරැකිණි",
+ "Please select a whole word or uncheck the \"Whole word\" option.": "සම්පූර්ණ වචනයක් තෝරන්න හෝ \"සම්පූර්ණ වචනය\" විකල්පය ඉවත් කරන්න.",
+ "Regex:": "Regex:",
+ "Invalid regular expression": "වලංගු නොවන නිත්ය ප්රකාශනය",
+ "Find pattern cannot be empty": "සෙවුම් රටාව හිස් විය නොහැක",
+ "Add Rule": "රීතිය එක් කරන්න",
+ "Find...": "සොයන්න…",
+ "Replace with...": "ප්රතිස්ථාපනය කරන්න…",
+ "Purge & Delete": "ඉවත් කර මකන්න",
+ "Purge all reading data": "සියලු කියවීම් දත්ත ඉවත් කරන්න",
+ "This permanently erases reading progress, notes, and bookmarks. This cannot be undone.": "මෙය කියවීමේ ප්රගතිය, සටහන් සහ පොත් සලකුණු ස්ථිරවම මකා දමයි. මෙය අහෝසි කළ නොහැක.",
+ "Also erase reading progress, notes, and bookmarks.": "කියවීමේ ප්රගතිය, සටහන් සහ පොත් සලකුණු ද මකා දමයි."
}
diff --git a/apps/readest-app/public/locales/sl/translation.json b/apps/readest-app/public/locales/sl/translation.json
index 63ad38bf..ed60c5a5 100644
--- a/apps/readest-app/public/locales/sl/translation.json
+++ b/apps/readest-app/public/locales/sl/translation.json
@@ -991,6 +991,7 @@
"Show Remaining Time": "Priki preostali čas",
"Show Remaining Pages": "Prikaži preostale strani",
"Show Reading Progress": "Prikaži napredek branja",
+ "Show Progress Bar": "Prikaži vrstico napredka",
"Reading Progress Style": "Slog napredka branja",
"Percentage": "Odstotek",
"Tap to Toggle Footer": "Tapnite za preklop noge",
@@ -1824,10 +1825,6 @@
"Auto Sync": "Samodejna sinhronizacija",
"Purged book data: {{title}}": "Podatki knjige izbrisani: {{title}}",
"Failed to purge book data: {{title}}": "Podatkov knjige ni bilo mogoče izbrisati: {{title}}",
- "Purge Book Data": "Izbriši vse podatke knjige",
- "This permanently erases the book and all its data, including reading progress, notes, and bookmarks. This cannot be undone.": "S tem trajno izbrišete knjigo in vse njene podatke, vključno z napredkom branja, zapiski in zaznamki. Tega dejanja ni mogoče razveljaviti.",
- "Purge Data": "Izbriši vse podatke",
- "Erase the book and all its data, including reading progress": "Izbriše knjigo in vse njene podatke, vključno z napredkom branja",
"More Actions": "Več dejanj",
"Sign in and make the book available to share it": "Prijavite se in omogočite knjigo za deljenje",
"Download the book to export it": "Prenesite knjigo, da jo izvozite",
@@ -1846,5 +1843,16 @@
"Failed to save the image": "Slike ni bilo mogoče shraniti",
"Share Image": "Deli sliko",
"Save Image": "Shrani sliko",
- "Image saved to gallery": "Slika je shranjena v galerijo"
+ "Image saved to gallery": "Slika je shranjena v galerijo",
+ "Please select a whole word or uncheck the \"Whole word\" option.": "Izberite celo besedo ali počistite možnost »Cela beseda«.",
+ "Regex:": "Regex:",
+ "Invalid regular expression": "Neveljaven regularni izraz",
+ "Find pattern cannot be empty": "Iskalni vzorec ne sme biti prazen",
+ "Add Rule": "Dodaj pravilo",
+ "Find...": "Iskanje...",
+ "Replace with...": "Zamenjaj z...",
+ "Purge & Delete": "Počisti in izbriši",
+ "Purge all reading data": "Počisti vse podatke o branju",
+ "This permanently erases reading progress, notes, and bookmarks. This cannot be undone.": "To trajno izbriše napredek branja, opombe in zaznamke. Tega ni mogoče razveljaviti.",
+ "Also erase reading progress, notes, and bookmarks.": "Izbriše tudi napredek branja, opombe in zaznamke."
}
diff --git a/apps/readest-app/public/locales/sv/translation.json b/apps/readest-app/public/locales/sv/translation.json
index a42bb557..c56735ee 100644
--- a/apps/readest-app/public/locales/sv/translation.json
+++ b/apps/readest-app/public/locales/sv/translation.json
@@ -509,6 +509,7 @@
"Show Remaining Time": "Visa återstående tid",
"Show Remaining Pages": "Visa återstående sidor",
"Show Reading Progress": "Visa läsframsteg",
+ "Show Progress Bar": "Visa förloppsindikator",
"Reading Progress Style": "Läsframstegsstil",
"Page Number": "Sidnummer",
"Percentage": "Procent",
@@ -1758,10 +1759,6 @@
"Auto Sync": "Automatisk synkronisering",
"Purged book data: {{title}}": "Bokdata rensad: {{title}}",
"Failed to purge book data: {{title}}": "Det gick inte att rensa bokdata: {{title}}",
- "Purge Book Data": "Rensa all bokdata",
- "This permanently erases the book and all its data, including reading progress, notes, and bookmarks. This cannot be undone.": "Detta raderar permanent boken och all dess data, inklusive läsförlopp, anteckningar och bokmärken. Detta kan inte ångras.",
- "Purge Data": "Rensa all data",
- "Erase the book and all its data, including reading progress": "Raderar boken och all data, inklusive läsförlopp",
"More Actions": "Fler åtgärder",
"Sign in and make the book available to share it": "Logga in och gör boken tillgänglig för att dela den",
"Download the book to export it": "Ladda ner boken för att exportera den",
@@ -1780,5 +1777,16 @@
"Failed to save the image": "Det gick inte att spara bilden",
"Share Image": "Dela bild",
"Save Image": "Spara bild",
- "Image saved to gallery": "Bilden har sparats i galleriet"
+ "Image saved to gallery": "Bilden har sparats i galleriet",
+ "Please select a whole word or uncheck the \"Whole word\" option.": "Markera ett helt ord eller avmarkera alternativet ”Hela ordet”.",
+ "Regex:": "Regex:",
+ "Invalid regular expression": "Ogiltigt reguljärt uttryck",
+ "Find pattern cannot be empty": "Sökmönstret får inte vara tomt",
+ "Add Rule": "Lägg till regel",
+ "Find...": "Sök…",
+ "Replace with...": "Ersätt med…",
+ "Purge & Delete": "Rensa och ta bort",
+ "Purge all reading data": "Rensa alla läsdata",
+ "This permanently erases reading progress, notes, and bookmarks. This cannot be undone.": "Detta raderar permanent läsframsteg, anteckningar och bokmärken. Detta kan inte ångras.",
+ "Also erase reading progress, notes, and bookmarks.": "Raderar även läsframsteg, anteckningar och bokmärken."
}
diff --git a/apps/readest-app/public/locales/ta/translation.json b/apps/readest-app/public/locales/ta/translation.json
index a2fa6bad..fc8b854b 100644
--- a/apps/readest-app/public/locales/ta/translation.json
+++ b/apps/readest-app/public/locales/ta/translation.json
@@ -267,6 +267,7 @@
"Show Remaining Time": "மீதமுள்ள நேரத்தைக் காட்டவும்",
"Show Remaining Pages": "மீதமுள்ள பக்கங்களைக் காட்டவும்",
"Show Reading Progress": "வாசிப்பு முன்னேற்றத்தைக் காட்டவும்",
+ "Show Progress Bar": "முன்னேற்றப் பட்டியைக் காட்டவும்",
"Reading Progress Style": "வாசிப்பு முன்னேற்ற பாணி",
"Page Number": "பக்க எண்",
"Percentage": "சதவீதம்",
@@ -1758,10 +1759,6 @@
"Auto Sync": "தானியங்கு ஒத்திசைவு",
"Purged book data: {{title}}": "புத்தகத் தரவு அழிக்கப்பட்டது: {{title}}",
"Failed to purge book data: {{title}}": "புத்தகத் தரவை அழிக்க முடியவில்லை: {{title}}",
- "Purge Book Data": "புத்தகத்தின் எல்லா தரவையும் அழி",
- "This permanently erases the book and all its data, including reading progress, notes, and bookmarks. This cannot be undone.": "இது புத்தகத்தையும் வாசிப்பு முன்னேற்றம், குறிப்புகள் மற்றும் புத்தகக்குறிகள் உள்ளிட்ட அதன் அனைத்து தரவையும் நிரந்தரமாக அழிக்கும். இதை மீட்டெடுக்க முடியாது.",
- "Purge Data": "எல்லா தரவையும் அழி",
- "Erase the book and all its data, including reading progress": "வாசிப்பு முன்னேற்றம் உட்பட புத்தகத்தையும் அதன் எல்லா தரவையும் அழிக்கும்",
"More Actions": "மேலும் செயல்கள்",
"Sign in and make the book available to share it": "பகிர உள்நுழைந்து புத்தகத்தைக் கிடைக்கச் செய்யவும்",
"Download the book to export it": "ஏற்றுமதி செய்ய புத்தகத்தைப் பதிவிறக்கவும்",
@@ -1780,5 +1777,16 @@
"Failed to save the image": "படத்தைச் சேமிக்க முடியவில்லை",
"Share Image": "படத்தைப் பகிர்",
"Save Image": "படத்தைச் சேமி",
- "Image saved to gallery": "படம் கேலரியில் சேமிக்கப்பட்டது"
+ "Image saved to gallery": "படம் கேலரியில் சேமிக்கப்பட்டது",
+ "Please select a whole word or uncheck the \"Whole word\" option.": "முழுச் சொல்லைத் தேர்ந்தெடுக்கவும் அல்லது \"முழு சொல்\" விருப்பத்தை நீக்கவும்.",
+ "Regex:": "Regex:",
+ "Invalid regular expression": "தவறான வழக்கமான வெளிப்பாடு",
+ "Find pattern cannot be empty": "தேடல் வடிவத்தை வெறுமையாக வைக்க முடியாது",
+ "Add Rule": "விதியைச் சேர்க்கவும்",
+ "Find...": "தேடவும்…",
+ "Replace with...": "மாற்றவும்…",
+ "Purge & Delete": "அழித்து நீக்கு",
+ "Purge all reading data": "அனைத்து வாசிப்புத் தரவையும் அழி",
+ "This permanently erases reading progress, notes, and bookmarks. This cannot be undone.": "இது வாசிப்பு முன்னேற்றம், குறிப்புகள் மற்றும் புக்மார்க்குகளை நிரந்தரமாக அழிக்கும். இதை மீட்டெடுக்க முடியாது.",
+ "Also erase reading progress, notes, and bookmarks.": "வாசிப்பு முன்னேற்றம், குறிப்புகள் மற்றும் புக்மார்க்குகளையும் அழிக்கும்."
}
diff --git a/apps/readest-app/public/locales/th/translation.json b/apps/readest-app/public/locales/th/translation.json
index 2a4c47a0..f0ac8b84 100644
--- a/apps/readest-app/public/locales/th/translation.json
+++ b/apps/readest-app/public/locales/th/translation.json
@@ -444,6 +444,7 @@
"TTS not supported for this document": "ไม่รองรับ TTS สำหรับเอกสารนี้",
"Reset Password": "รีเซ็ตพาสเวิร์ด",
"Show Reading Progress": "แสดงความคืบหน้าในการอ่าน",
+ "Show Progress Bar": "แสดงแถบความคืบหน้า",
"Reading Progress Style": "สไตล์ความก้าวหน้าในการอ่าน",
"Page Number": "หมายเลขหน้า",
"Percentage": "เปอร์เซ็นต์",
@@ -1725,10 +1726,6 @@
"Auto Sync": "ซิงค์อัตโนมัติ",
"Purged book data: {{title}}": "ล้างข้อมูลหนังสือแล้ว: {{title}}",
"Failed to purge book data: {{title}}": "ล้างข้อมูลหนังสือไม่สำเร็จ: {{title}}",
- "Purge Book Data": "ล้างข้อมูลหนังสือทั้งหมด",
- "This permanently erases the book and all its data, including reading progress, notes, and bookmarks. This cannot be undone.": "การดำเนินการนี้จะลบหนังสือและข้อมูลทั้งหมดอย่างถาวร รวมถึงความคืบหน้าการอ่าน บันทึก และที่คั่นหนังสือ ไม่สามารถเลิกทำได้",
- "Purge Data": "ล้างข้อมูลทั้งหมด",
- "Erase the book and all its data, including reading progress": "ลบหนังสือและข้อมูลทั้งหมด รวมถึงความคืบหน้าการอ่าน",
"More Actions": "การทำงานเพิ่มเติม",
"Sign in and make the book available to share it": "ลงชื่อเข้าใช้และทำให้หนังสือพร้อมใช้งานเพื่อแชร์",
"Download the book to export it": "ดาวน์โหลดหนังสือเพื่อส่งออก",
@@ -1747,5 +1744,16 @@
"Failed to save the image": "ไม่สามารถบันทึกรูปภาพได้",
"Share Image": "แชร์รูปภาพ",
"Save Image": "บันทึกรูปภาพ",
- "Image saved to gallery": "บันทึกรูปภาพไปยังแกลเลอรีแล้ว"
+ "Image saved to gallery": "บันทึกรูปภาพไปยังแกลเลอรีแล้ว",
+ "Please select a whole word or uncheck the \"Whole word\" option.": "โปรดเลือกทั้งคำ หรือยกเลิกการเลือกตัวเลือก \"คำทั้งคำ\"",
+ "Regex:": "Regex:",
+ "Invalid regular expression": "นิพจน์ทั่วไปไม่ถูกต้อง",
+ "Find pattern cannot be empty": "รูปแบบการค้นหาต้องไม่ว่างเปล่า",
+ "Add Rule": "เพิ่มกฎ",
+ "Find...": "ค้นหา…",
+ "Replace with...": "แทนที่ด้วย…",
+ "Purge & Delete": "ล้างและลบ",
+ "Purge all reading data": "ล้างข้อมูลการอ่านทั้งหมด",
+ "This permanently erases reading progress, notes, and bookmarks. This cannot be undone.": "การดำเนินการนี้จะลบความคืบหน้าในการอ่าน บันทึก และบุ๊กมาร์กอย่างถาวร ไม่สามารถเลิกทำได้",
+ "Also erase reading progress, notes, and bookmarks.": "ลบความคืบหน้าในการอ่าน บันทึก และบุ๊กมาร์กด้วย"
}
diff --git a/apps/readest-app/public/locales/tr/translation.json b/apps/readest-app/public/locales/tr/translation.json
index 24ed739a..ad74a06f 100644
--- a/apps/readest-app/public/locales/tr/translation.json
+++ b/apps/readest-app/public/locales/tr/translation.json
@@ -448,6 +448,7 @@
"TTS not supported for this document": "TTS bu belge için desteklenmiyor",
"Reset Password": "Şifreyi Sıfırla",
"Show Reading Progress": "Okuma İlerlemesini Göster",
+ "Show Progress Bar": "İlerleme Çubuğunu Göster",
"Reading Progress Style": "Okuma İlerlemesi Stili",
"Page Number": "Sayfa Numarası",
"Percentage": "Yüzde",
@@ -1758,10 +1759,6 @@
"Auto Sync": "Otomatik Senkronizasyon",
"Purged book data: {{title}}": "Kitap verileri silindi: {{title}}",
"Failed to purge book data: {{title}}": "Kitap verileri silinemedi: {{title}}",
- "Purge Book Data": "Tüm kitap verilerini sil",
- "This permanently erases the book and all its data, including reading progress, notes, and bookmarks. This cannot be undone.": "Bu işlem kitabı ve okuma ilerlemesi, notlar ve yer imleri dahil tüm verilerini kalıcı olarak siler. Bu işlem geri alınamaz.",
- "Purge Data": "Tüm verileri sil",
- "Erase the book and all its data, including reading progress": "Kitabı ve okuma ilerlemesi dahil tüm verilerini siler",
"More Actions": "Diğer eylemler",
"Sign in and make the book available to share it": "Paylaşmak için oturum açın ve kitabı kullanılabilir hale getirin",
"Download the book to export it": "Dışa aktarmak için kitabı indirin",
@@ -1780,5 +1777,16 @@
"Failed to save the image": "Görsel kaydedilemedi",
"Share Image": "Görseli Paylaş",
"Save Image": "Görseli Kaydet",
- "Image saved to gallery": "Görsel galeriye kaydedildi"
+ "Image saved to gallery": "Görsel galeriye kaydedildi",
+ "Please select a whole word or uncheck the \"Whole word\" option.": "Lütfen tam bir kelime seçin veya \"Tam kelime\" seçeneğinin işaretini kaldırın.",
+ "Regex:": "Regex:",
+ "Invalid regular expression": "Geçersiz düzenli ifade",
+ "Find pattern cannot be empty": "Arama deseni boş olamaz",
+ "Add Rule": "Kural ekle",
+ "Find...": "Ara…",
+ "Replace with...": "Şununla değiştir…",
+ "Purge & Delete": "Temizle ve sil",
+ "Purge all reading data": "Tüm okuma verilerini temizle",
+ "This permanently erases reading progress, notes, and bookmarks. This cannot be undone.": "Bu, okuma ilerlemesini, notları ve yer işaretlerini kalıcı olarak siler. Bu işlem geri alınamaz.",
+ "Also erase reading progress, notes, and bookmarks.": "Okuma ilerlemesi, notlar ve yer işaretlerini de siler."
}
diff --git a/apps/readest-app/public/locales/uk/translation.json b/apps/readest-app/public/locales/uk/translation.json
index a5593bef..5e60e9aa 100644
--- a/apps/readest-app/public/locales/uk/translation.json
+++ b/apps/readest-app/public/locales/uk/translation.json
@@ -456,6 +456,7 @@
"TTS not supported for this document": "TTS не підтримується в цьому документі",
"Reset Password": "Скинути пароль",
"Show Reading Progress": "Показати проґрес читання",
+ "Show Progress Bar": "Показати смугу прогресу",
"Reading Progress Style": "Стиль проґресу читання",
"Page Number": "Номер сторінки",
"Percentage": "Відсотки",
@@ -1824,10 +1825,6 @@
"Auto Sync": "Автоматична синхронізація",
"Purged book data: {{title}}": "Дані книги очищено: {{title}}",
"Failed to purge book data: {{title}}": "Не вдалося очистити дані книги: {{title}}",
- "Purge Book Data": "Очистити дані книги",
- "This permanently erases the book and all its data, including reading progress, notes, and bookmarks. This cannot be undone.": "Це назавжди видалить книгу та всі її дані, зокрема прогрес читання, нотатки та закладки. Цю дію неможливо скасувати.",
- "Purge Data": "Очистити дані",
- "Erase the book and all its data, including reading progress": "Видаляє книгу та всі її дані, зокрема прогрес читання",
"More Actions": "Більше дій",
"Sign in and make the book available to share it": "Увійдіть і зробіть книгу доступною, щоб поділитися нею",
"Download the book to export it": "Завантажте книгу, щоб експортувати її",
@@ -1846,5 +1843,16 @@
"Failed to save the image": "Не вдалося зберегти зображення",
"Share Image": "Поділитися зображенням",
"Save Image": "Зберегти зображення",
- "Image saved to gallery": "Зображення збережено в галереї"
+ "Image saved to gallery": "Зображення збережено в галереї",
+ "Please select a whole word or uncheck the \"Whole word\" option.": "Виберіть ціле слово або зніміть прапорець «Ціле слово».",
+ "Regex:": "Regex:",
+ "Invalid regular expression": "Недійсний регулярний вираз",
+ "Find pattern cannot be empty": "Шаблон пошуку не може бути порожнім",
+ "Add Rule": "Додати правило",
+ "Find...": "Пошук…",
+ "Replace with...": "Замінити на…",
+ "Purge & Delete": "Очистити та видалити",
+ "Purge all reading data": "Очистити всі дані читання",
+ "This permanently erases reading progress, notes, and bookmarks. This cannot be undone.": "Це назавжди видалить проґрес читання, нотатки та закладки. Цю дію не можна скасувати.",
+ "Also erase reading progress, notes, and bookmarks.": "Також видаляє проґрес читання, нотатки та закладки."
}
diff --git a/apps/readest-app/public/locales/uz/translation.json b/apps/readest-app/public/locales/uz/translation.json
index 51aafffe..bcb1ed75 100644
--- a/apps/readest-app/public/locales/uz/translation.json
+++ b/apps/readest-app/public/locales/uz/translation.json
@@ -1155,6 +1155,7 @@
"Show Remaining Time": "Qolgan vaqtni koʻrsatish",
"Show Remaining Pages": "Qolgan sahifalarni koʻrsatish",
"Show Reading Progress": "Oʻqish jarayonini koʻrsatish",
+ "Show Progress Bar": "Jarayon panelini koʻrsatish",
"Reading Progress Style": "Oʻqish jarayoni uslubi",
"Percentage": "Foiz",
"Show Current Time": "Joriy vaqtni koʻrsatish",
@@ -1758,10 +1759,6 @@
"Auto Sync": "Avtomatik sinxronlash",
"Purged book data: {{title}}": "Kitob maʼlumotlari oʻchirildi: {{title}}",
"Failed to purge book data: {{title}}": "Kitob maʼlumotlarini oʻchirib boʻlmadi: {{title}}",
- "Purge Book Data": "Kitobning barcha maʼlumotlarini oʻchirish",
- "This permanently erases the book and all its data, including reading progress, notes, and bookmarks. This cannot be undone.": "Bu kitobni va uning barcha maʼlumotlarini, jumladan oʻqish jarayoni, eslatmalar va xatcho‘plarni butunlay oʻchiradi. Buni qaytarib boʻlmaydi.",
- "Purge Data": "Barcha maʼlumotlarni oʻchirish",
- "Erase the book and all its data, including reading progress": "Kitobni va uning barcha maʼlumotlarini, jumladan oʻqish jarayonini oʻchiradi",
"More Actions": "Qoʻshimcha amallar",
"Sign in and make the book available to share it": "Ulashish uchun tizimga kiring va kitobni mavjud qiling",
"Download the book to export it": "Eksport qilish uchun kitobni yuklab oling",
@@ -1780,5 +1777,16 @@
"Failed to save the image": "Rasmni saqlab bo'lmadi",
"Share Image": "Rasmni ulashish",
"Save Image": "Rasmni saqlash",
- "Image saved to gallery": "Rasm galereyaga saqlandi"
+ "Image saved to gallery": "Rasm galereyaga saqlandi",
+ "Please select a whole word or uncheck the \"Whole word\" option.": "Butun soʻzni tanlang yoki \"Butun soʻz\" amalini olib tashlang.",
+ "Regex:": "Regex:",
+ "Invalid regular expression": "Yaroqsiz muntazam ifoda",
+ "Find pattern cannot be empty": "Qidiruv namunasi boʻsh boʻlishi mumkin emas",
+ "Add Rule": "Qoida qoʻshish",
+ "Find...": "Qidirish...",
+ "Replace with...": "Bilan almashtirish...",
+ "Purge & Delete": "Tozalash va oʻchirish",
+ "Purge all reading data": "Barcha oʻqish maʼlumotlarini tozalash",
+ "This permanently erases reading progress, notes, and bookmarks. This cannot be undone.": "Bu oʻqish jarayoni, eslatmalar va xatchoʻplarni butunlay oʻchiradi. Buni qaytarib boʻlmaydi.",
+ "Also erase reading progress, notes, and bookmarks.": "Shuningdek, oʻqish jarayoni, eslatmalar va xatchoʻplarni ham oʻchiradi."
}
diff --git a/apps/readest-app/public/locales/vi/translation.json b/apps/readest-app/public/locales/vi/translation.json
index 692a435b..9ff9ed5f 100644
--- a/apps/readest-app/public/locales/vi/translation.json
+++ b/apps/readest-app/public/locales/vi/translation.json
@@ -444,6 +444,7 @@
"TTS not supported for this document": "TTS không được hỗ trợ cho tài liệu này",
"Reset Password": "Đặt lại mật khẩu",
"Show Reading Progress": "Hiển thị tiến độ đọc",
+ "Show Progress Bar": "Hiển thị thanh tiến độ",
"Reading Progress Style": "Phong cách tiến độ đọc",
"Page Number": "Số trang",
"Percentage": "Phần trăm",
@@ -1725,10 +1726,6 @@
"Auto Sync": "Tự động đồng bộ",
"Purged book data: {{title}}": "Đã xóa dữ liệu sách: {{title}}",
"Failed to purge book data: {{title}}": "Không thể xóa dữ liệu sách: {{title}}",
- "Purge Book Data": "Xóa toàn bộ dữ liệu sách",
- "This permanently erases the book and all its data, including reading progress, notes, and bookmarks. This cannot be undone.": "Thao tác này sẽ xóa vĩnh viễn sách và toàn bộ dữ liệu của nó, bao gồm tiến độ đọc, ghi chú và dấu trang. Không thể hoàn tác.",
- "Purge Data": "Xóa toàn bộ dữ liệu",
- "Erase the book and all its data, including reading progress": "Xóa sách và toàn bộ dữ liệu, bao gồm tiến độ đọc",
"More Actions": "Thao tác khác",
"Sign in and make the book available to share it": "Đăng nhập và tải sách về để chia sẻ",
"Download the book to export it": "Tải sách về để xuất ra",
@@ -1747,5 +1744,16 @@
"Failed to save the image": "Không thể lưu hình ảnh",
"Share Image": "Chia sẻ hình ảnh",
"Save Image": "Lưu hình ảnh",
- "Image saved to gallery": "Đã lưu hình ảnh vào thư viện"
+ "Image saved to gallery": "Đã lưu hình ảnh vào thư viện",
+ "Please select a whole word or uncheck the \"Whole word\" option.": "Vui lòng chọn một từ hoàn chỉnh hoặc bỏ chọn tùy chọn \"Toàn bộ từ\".",
+ "Regex:": "Regex:",
+ "Invalid regular expression": "Biểu thức chính quy không hợp lệ",
+ "Find pattern cannot be empty": "Mẫu tìm kiếm không được để trống",
+ "Add Rule": "Thêm quy tắc",
+ "Find...": "Tìm kiếm…",
+ "Replace with...": "Thay thế bằng…",
+ "Purge & Delete": "Dọn sạch và xóa",
+ "Purge all reading data": "Xóa toàn bộ dữ liệu đọc",
+ "This permanently erases reading progress, notes, and bookmarks. This cannot be undone.": "Thao tác này xóa vĩnh viễn tiến độ đọc, ghi chú và dấu trang. Không thể hoàn tác.",
+ "Also erase reading progress, notes, and bookmarks.": "Đồng thời xóa tiến độ đọc, ghi chú và dấu trang."
}
diff --git a/apps/readest-app/public/locales/zh-CN/translation.json b/apps/readest-app/public/locales/zh-CN/translation.json
index 6d750507..ea2e3ec3 100644
--- a/apps/readest-app/public/locales/zh-CN/translation.json
+++ b/apps/readest-app/public/locales/zh-CN/translation.json
@@ -445,6 +445,7 @@
"TTS not supported for this document": "TTS 不支持此文档",
"Reset Password": "重置密码",
"Show Reading Progress": "显示阅读进度",
+ "Show Progress Bar": "显示进度条",
"Reading Progress Style": "阅读进度样式",
"Page Number": "页码",
"Percentage": "百分比",
@@ -1725,10 +1726,6 @@
"Auto Sync": "自动同步",
"Purged book data: {{title}}": "已清除书籍数据:{{title}}",
"Failed to purge book data: {{title}}": "清除书籍数据失败:{{title}}",
- "Purge Book Data": "清除书籍数据",
- "This permanently erases the book and all its data, including reading progress, notes, and bookmarks. This cannot be undone.": "这将永久删除该书籍及其所有数据,包括阅读进度、笔记和书签。此操作无法撤销。",
- "Purge Data": "清除数据",
- "Erase the book and all its data, including reading progress": "删除该书籍及其所有数据,包括阅读进度",
"More Actions": "更多操作",
"Sign in and make the book available to share it": "登录并使书籍可用后即可分享",
"Download the book to export it": "下载书籍后即可导出",
@@ -1747,5 +1744,16 @@
"Failed to save the image": "图片保存失败",
"Share Image": "分享图片",
"Save Image": "保存图片",
- "Image saved to gallery": "图片已保存到相册"
+ "Image saved to gallery": "图片已保存到相册",
+ "Please select a whole word or uncheck the \"Whole word\" option.": "请选择完整的单词,或取消勾选\"全词匹配\"选项。",
+ "Regex:": "正则:",
+ "Invalid regular expression": "正则表达式无效",
+ "Find pattern cannot be empty": "查找内容不能为空",
+ "Add Rule": "添加规则",
+ "Find...": "查找…",
+ "Replace with...": "替换为…",
+ "Purge & Delete": "清除并删除",
+ "Purge all reading data": "清除所有阅读数据",
+ "This permanently erases reading progress, notes, and bookmarks. This cannot be undone.": "这将永久清除阅读进度、笔记和书签,且无法撤销。",
+ "Also erase reading progress, notes, and bookmarks.": "同时清除阅读进度、笔记和书签。"
}
diff --git a/apps/readest-app/public/locales/zh-TW/translation.json b/apps/readest-app/public/locales/zh-TW/translation.json
index 8cbbf1e3..21aa8d05 100644
--- a/apps/readest-app/public/locales/zh-TW/translation.json
+++ b/apps/readest-app/public/locales/zh-TW/translation.json
@@ -444,6 +444,7 @@
"TTS not supported for this document": "TTS 不支援此文件",
"Reset Password": "重設密碼",
"Show Reading Progress": "顯示閱讀進度",
+ "Show Progress Bar": "顯示進度列",
"Reading Progress Style": "閱讀進度樣式",
"Page Number": "頁碼",
"Percentage": "百分比",
@@ -1725,10 +1726,6 @@
"Auto Sync": "自動同步",
"Purged book data: {{title}}": "已清除書籍資料:{{title}}",
"Failed to purge book data: {{title}}": "清除書籍資料失敗:{{title}}",
- "Purge Book Data": "清除書籍資料",
- "This permanently erases the book and all its data, including reading progress, notes, and bookmarks. This cannot be undone.": "這將永久刪除該書籍及其所有資料,包括閱讀進度、筆記和書籤。此操作無法復原。",
- "Purge Data": "清除資料",
- "Erase the book and all its data, including reading progress": "刪除該書籍及其所有資料,包括閱讀進度",
"More Actions": "更多操作",
"Sign in and make the book available to share it": "登入並使書籍可用後即可分享",
"Download the book to export it": "下載書籍後即可匯出",
@@ -1747,5 +1744,16 @@
"Failed to save the image": "圖片儲存失敗",
"Share Image": "分享圖片",
"Save Image": "儲存圖片",
- "Image saved to gallery": "圖片已儲存至相簿"
+ "Image saved to gallery": "圖片已儲存至相簿",
+ "Please select a whole word or uncheck the \"Whole word\" option.": "請選取完整的單字,或取消勾選「全詞匹配」選項。",
+ "Regex:": "正則:",
+ "Invalid regular expression": "正規表示式無效",
+ "Find pattern cannot be empty": "尋找內容不可為空",
+ "Add Rule": "新增規則",
+ "Find...": "尋找…",
+ "Replace with...": "取代為…",
+ "Purge & Delete": "清除並刪除",
+ "Purge all reading data": "清除所有閱讀資料",
+ "This permanently erases reading progress, notes, and bookmarks. This cannot be undone.": "這將永久清除閱讀進度、筆記和書籤,且無法復原。",
+ "Also erase reading progress, notes, and bookmarks.": "同時清除閱讀進度、筆記和書籤。"
}
diff --git a/apps/readest-app/src/__tests__/components/ProofreadPopup.test.tsx b/apps/readest-app/src/__tests__/components/ProofreadPopup.test.tsx
index 0caa5370..51ac2a9f 100644
--- a/apps/readest-app/src/__tests__/components/ProofreadPopup.test.tsx
+++ b/apps/readest-app/src/__tests__/components/ProofreadPopup.test.tsx
@@ -227,6 +227,54 @@ describe('ProofreadPopup Component', () => {
});
});
+ describe('Regex Toggle', () => {
+ it('should render the regex checkbox (off by default)', () => {
+ renderWithProviders();
+
+ const regexLabel = screen.getByText('Regex:');
+ expect(regexLabel).toBeTruthy();
+ const checkbox = regexLabel
+ .closest('label')!
+ .querySelector('input[type="checkbox"]') as HTMLInputElement | null;
+ expect(checkbox).toBeTruthy();
+ expect(checkbox!.checked).toBe(false);
+ });
+
+ it('should call onConfirm with isRegex true when regex is enabled', async () => {
+ renderWithProviders();
+
+ const regexLabel = screen.getByText('Regex:');
+ const regexCheckbox = regexLabel
+ .closest('label')!
+ .querySelector('input[type="checkbox"]') as HTMLInputElement;
+ fireEvent.click(regexCheckbox);
+
+ const input = screen.getByPlaceholderText('Enter text...');
+ fireEvent.change(input, { target: { value: 'replacement' } });
+
+ const applyButton = screen.getByText('Apply');
+ fireEvent.click(applyButton);
+
+ await waitFor(() => {
+ expect(mockOnConfirm).toHaveBeenCalledWith(expect.objectContaining({ isRegex: true }));
+ });
+ });
+
+ it('should default isRegex to false when the toggle is left off', async () => {
+ renderWithProviders();
+
+ const input = screen.getByPlaceholderText('Enter text...');
+ fireEvent.change(input, { target: { value: 'replacement' } });
+
+ const applyButton = screen.getByText('Apply');
+ fireEvent.click(applyButton);
+
+ await waitFor(() => {
+ expect(mockOnConfirm).toHaveBeenCalledWith(expect.objectContaining({ isRegex: false }));
+ });
+ });
+ });
+
describe('Click Outside Behavior', () => {
it('should not call onClose when clicking inside the menu', () => {
renderWithProviders();
diff --git a/apps/readest-app/src/__tests__/components/ProofreadRules.test.tsx b/apps/readest-app/src/__tests__/components/ProofreadRules.test.tsx
index e4cee73f..5a31d564 100644
--- a/apps/readest-app/src/__tests__/components/ProofreadRules.test.tsx
+++ b/apps/readest-app/src/__tests__/components/ProofreadRules.test.tsx
@@ -12,6 +12,8 @@ import { useSettingsStore } from '@/store/settingsStore';
import { useReaderStore } from '@/store/readerStore';
import { useSidebarStore } from '@/store/sidebarStore';
import { useBookDataStore } from '@/store/bookDataStore';
+import { useProofreadStore } from '@/store/proofreadStore';
+import { eventDispatcher } from '@/utils/event';
import { ProofreadRule } from '@/types/book';
// ------------------------------
@@ -97,6 +99,7 @@ describe('ProofreadRulesManager', () => {
afterEach(() => {
cleanup();
+ vi.restoreAllMocks();
});
it('renders book and library (global) proofreading rules from stores', async () => {
@@ -245,6 +248,61 @@ describe('ProofreadRulesManager', () => {
expect(screen.getByText("'book-hit'")).toBeTruthy();
});
+ it('renders a drag handle for each reorderable rule', async () => {
+ const selectionRule: ProofreadRule = {
+ id: 's1',
+ scope: 'selection',
+ pattern: 'only-once',
+ replacement: 'single-hit',
+ enabled: true,
+ isRegex: false,
+ caseSensitive: true,
+ order: 1,
+ wholeWord: true,
+ cfi: 'epubcfi(/6/14!/4/2,/1:0,/1:4)',
+ sectionHref: 'chapter1.html',
+ };
+ const bookRule: ProofreadRule = {
+ id: 'b1',
+ scope: 'book',
+ pattern: 'book-wide',
+ replacement: 'book-hit',
+ enabled: true,
+ isRegex: false,
+ caseSensitive: true,
+ order: 2,
+ wholeWord: true,
+ };
+
+ (useSettingsStore.setState as unknown as (state: unknown) => void)({
+ settings: { ...DEFAULT_SYSTEM_SETTINGS, globalViewSettings: { proofreadRules: [] } },
+ });
+ (useReaderStore.setState as unknown as (state: unknown) => void)({
+ viewStates: { book1: { viewSettings: { proofreadRules: [selectionRule, bookRule] } } },
+ });
+ (useBookDataStore.setState as unknown as (state: unknown) => void)({
+ booksData: {
+ book1: {
+ id: 'book1',
+ book: null,
+ file: null,
+ config: { viewSettings: { proofreadRules: [selectionRule, bookRule] } },
+ bookDoc: null,
+ isFixedLayout: false,
+ },
+ },
+ });
+ useSidebarStore.setState({ sideBarBookKey: 'book1' });
+
+ renderWithProviders();
+ await Promise.resolve();
+ setProofreadRulesVisibility(true);
+ await screen.findByRole('dialog');
+
+ const handles = screen.getAllByLabelText('Drag to reorder');
+ expect(handles.length).toBe(2);
+ });
+
it('displays correct scope labels for different rule types', async () => {
const selectionRule: ProofreadRule = {
id: 's1',
@@ -484,6 +542,116 @@ describe('ProofreadRulesManager', () => {
expect(screen.getByText('No book-level replacement rules')).toBeTruthy();
});
+ describe('Add Rule form', () => {
+ const openManagerForAdd = async () => {
+ (useSettingsStore.setState as unknown as (state: unknown) => void)({
+ settings: {
+ ...DEFAULT_SYSTEM_SETTINGS,
+ globalViewSettings: { proofreadRules: [] },
+ },
+ });
+ (useReaderStore.setState as unknown as (state: unknown) => void)({
+ viewStates: { book1: { viewSettings: { proofreadRules: [] } } },
+ });
+ useSidebarStore.setState({ sideBarBookKey: 'book1' });
+
+ const addRuleSpy = vi
+ .spyOn(useProofreadStore.getState(), 'addRule')
+ .mockResolvedValue({} as ProofreadRule);
+ const recreateSpy = vi
+ .spyOn(useReaderStore.getState(), 'recreateViewer')
+ .mockResolvedValue(undefined as never);
+
+ renderWithProviders();
+ await Promise.resolve();
+ setProofreadRulesVisibility(true);
+ await screen.findByRole('dialog');
+
+ return { addRuleSpy, recreateSpy };
+ };
+
+ it('creates a book-scoped rule from typed pattern + replacement', async () => {
+ const { addRuleSpy } = await openManagerForAdd();
+
+ fireEvent.change(screen.getByPlaceholderText('Find...'), { target: { value: 'colour' } });
+ fireEvent.change(screen.getByPlaceholderText('Replace with...'), {
+ target: { value: 'color' },
+ });
+ fireEvent.click(screen.getByRole('button', { name: 'Add Rule' }));
+
+ await new Promise((r) => setTimeout(r, 0));
+
+ expect(addRuleSpy).toHaveBeenCalledWith(
+ expect.anything(),
+ 'book1',
+ expect.objectContaining({
+ scope: 'book',
+ pattern: 'colour',
+ replacement: 'color',
+ isRegex: false,
+ }),
+ );
+ });
+
+ it('creates a regex rule when the Regex toggle is on', async () => {
+ const { addRuleSpy } = await openManagerForAdd();
+
+ fireEvent.change(screen.getByPlaceholderText('Find...'), { target: { value: '\\d+' } });
+ fireEvent.change(screen.getByPlaceholderText('Replace with...'), {
+ target: { value: '#' },
+ });
+ const regexLabel = screen.getByText('Regex:');
+ const regexCheckbox = regexLabel
+ .closest('label')!
+ .querySelector('input[type="checkbox"]') as HTMLInputElement;
+ fireEvent.click(regexCheckbox);
+
+ fireEvent.click(screen.getByRole('button', { name: 'Add Rule' }));
+
+ await new Promise((r) => setTimeout(r, 0));
+
+ expect(addRuleSpy).toHaveBeenCalledWith(
+ expect.anything(),
+ 'book1',
+ expect.objectContaining({ pattern: '\\d+', isRegex: true }),
+ );
+ });
+
+ it('disables the Add Rule button until a find pattern is entered', async () => {
+ const { addRuleSpy } = await openManagerForAdd();
+ const button = screen.getByRole('button', { name: 'Add Rule' }) as HTMLButtonElement;
+
+ expect(button.disabled).toBe(true);
+ fireEvent.click(button);
+ await new Promise((r) => setTimeout(r, 0));
+ expect(addRuleSpy).not.toHaveBeenCalled();
+
+ fireEvent.change(screen.getByPlaceholderText('Find...'), { target: { value: 'colour' } });
+ expect(button.disabled).toBe(false);
+ });
+
+ it('warns and does not add when the regex is invalid', async () => {
+ const { addRuleSpy } = await openManagerForAdd();
+ const dispatchSpy = vi.spyOn(eventDispatcher, 'dispatch');
+
+ fireEvent.change(screen.getByPlaceholderText('Find...'), { target: { value: '(' } });
+ const regexLabel = screen.getByText('Regex:');
+ const regexCheckbox = regexLabel
+ .closest('label')!
+ .querySelector('input[type="checkbox"]') as HTMLInputElement;
+ fireEvent.click(regexCheckbox);
+ fireEvent.click(screen.getByRole('button', { name: 'Add Rule' }));
+
+ await new Promise((r) => setTimeout(r, 0));
+
+ expect(addRuleSpy).not.toHaveBeenCalled();
+ expect(dispatchSpy).toHaveBeenCalledWith(
+ 'toast',
+ expect.objectContaining({ type: 'warning' }),
+ );
+ });
+ });
+
it('merges book and library rules correctly in book section', async () => {
const libraryRule: ProofreadRule = {
id: 'l1',
diff --git a/apps/readest-app/src/__tests__/services/sync/adapters/settings.test.ts b/apps/readest-app/src/__tests__/services/sync/adapters/settings.test.ts
index 6bdef6ab..f9676ead 100644
--- a/apps/readest-app/src/__tests__/services/sync/adapters/settings.test.ts
+++ b/apps/readest-app/src/__tests__/services/sync/adapters/settings.test.ts
@@ -146,6 +146,58 @@ describe('SETTINGS_WHITELIST', () => {
test('does NOT sync dictionarySettings.defaultProviderId (per-device last-used tab)', () => {
expect(SETTINGS_WHITELIST).not.toContain('dictionarySettings.defaultProviderId');
});
+
+ test('syncs library-scope proofread rules (issue #4700 — PC rules not reaching mobile)', () => {
+ expect(SETTINGS_WHITELIST).toContain('globalViewSettings.proofreadRules');
+ });
+});
+
+describe('settingsAdapter proofread rules', () => {
+ test('pack ∘ unpack round-trips globalViewSettings.proofreadRules', () => {
+ const proofreadRules = [
+ {
+ id: 'r1',
+ scope: 'library',
+ pattern: 'colour',
+ replacement: 'color',
+ enabled: true,
+ isRegex: false,
+ caseSensitive: true,
+ order: 1000,
+ wholeWord: true,
+ },
+ ];
+ const record: SettingsRemoteRecord = {
+ name: 'singleton',
+ patch: {
+ globalViewSettings: { proofreadRules },
+ } as unknown as Partial,
+ };
+ const fields = settingsAdapter.pack(record);
+ expect(fields['globalViewSettings.proofreadRules']).toEqual(proofreadRules);
+ const out = settingsAdapter.unpack(fields);
+ expect(out.patch.globalViewSettings?.proofreadRules).toEqual(proofreadRules);
+ });
+
+ test('unpackRow reconstructs proofread rules from a CRDT envelope', () => {
+ const proofreadRules = [
+ {
+ id: 'r1',
+ scope: 'library',
+ pattern: 'teh',
+ replacement: 'the',
+ enabled: true,
+ isRegex: false,
+ caseSensitive: false,
+ order: 1000,
+ wholeWord: true,
+ },
+ ];
+ const row = makeRow({ 'globalViewSettings.proofreadRules': env(proofreadRules) });
+ const out = settingsAdapter.unpackRow(row, '');
+ expect(out).not.toBeNull();
+ expect(out!.patch.globalViewSettings?.proofreadRules).toEqual(proofreadRules);
+ });
});
describe('readPath / writePath', () => {
diff --git a/apps/readest-app/src/__tests__/store/proofread-store.test.ts b/apps/readest-app/src/__tests__/store/proofread-store.test.ts
index a0dbaf90..4e7fb8d8 100644
--- a/apps/readest-app/src/__tests__/store/proofread-store.test.ts
+++ b/apps/readest-app/src/__tests__/store/proofread-store.test.ts
@@ -503,4 +503,87 @@ describe('proofreadStore', () => {
).rejects.toThrow('Rule not found: no-exist');
});
});
+
+ // -----------------------------------------------------------------------
+ // reorderRules
+ // -----------------------------------------------------------------------
+ describe('reorderRules', () => {
+ test('reassigns order fields for book-scope rules by position; saves config only', async () => {
+ mockViewSettingsMap['book1'] = emptyViewSettings({
+ proofreadRules: [
+ makeRule({ id: 'a', scope: 'book', order: 1000 }),
+ makeRule({ id: 'b', scope: 'book', order: 1000 }),
+ makeRule({ id: 'c', scope: 'book', order: 1000 }),
+ ],
+ });
+
+ await useProofreadStore.getState().reorderRules(envConfig, 'book1', ['c', 'a', 'b']);
+
+ const saved = mockViewSettingsMap['book1']!.proofreadRules!;
+ const orderById = Object.fromEntries(saved.map((r) => [r.id, r.order]));
+ expect(orderById).toEqual({ c: 0, a: 1, b: 2 });
+ expect(mockSaveConfig).toHaveBeenCalledTimes(1);
+ expect(mockSaveSettings).not.toHaveBeenCalled();
+ });
+
+ test('reassigns order for library-scope rules; saves settings only', async () => {
+ mockViewSettingsMap['book1'] = emptyViewSettings({ proofreadRules: [] });
+ mockGlobalViewSettingsHolder.current = emptyViewSettings({
+ proofreadRules: [
+ makeRule({ id: 'g1', scope: 'library', order: 1000 }),
+ makeRule({ id: 'g2', scope: 'library', order: 1000 }),
+ ],
+ });
+
+ await useProofreadStore.getState().reorderRules(envConfig, 'book1', ['g2', 'g1']);
+
+ const savedSettings = mockSaveSettings.mock.calls[0]![1] as {
+ globalViewSettings: ViewSettings;
+ };
+ const saved = savedSettings.globalViewSettings.proofreadRules!;
+ const orderById = Object.fromEntries(saved.map((r) => [r.id, r.order]));
+ expect(orderById).toEqual({ g2: 0, g1: 1 });
+ expect(mockSaveSettings).toHaveBeenCalledTimes(1);
+ expect(mockSaveConfig).not.toHaveBeenCalled();
+ });
+
+ test('a merged book+library reorder updates both stores', async () => {
+ mockViewSettingsMap['book1'] = emptyViewSettings({
+ proofreadRules: [makeRule({ id: 'bk', scope: 'book', order: 1000 })],
+ });
+ mockGlobalViewSettingsHolder.current = emptyViewSettings({
+ proofreadRules: [makeRule({ id: 'lib', scope: 'library', order: 1000 })],
+ });
+
+ // Drag the library rule above the book rule.
+ await useProofreadStore.getState().reorderRules(envConfig, 'book1', ['lib', 'bk']);
+
+ const savedBook = mockViewSettingsMap['book1']!.proofreadRules!.find((r) => r.id === 'bk');
+ const savedSettings = mockSaveSettings.mock.calls[0]![1] as {
+ globalViewSettings: ViewSettings;
+ };
+ const savedLib = savedSettings.globalViewSettings.proofreadRules!.find((r) => r.id === 'lib');
+ expect(savedLib!.order).toBe(0);
+ expect(savedBook!.order).toBe(1);
+ expect(mockSaveConfig).toHaveBeenCalledTimes(1);
+ expect(mockSaveSettings).toHaveBeenCalledTimes(1);
+ });
+
+ test('leaves rules outside the reordered set untouched', async () => {
+ mockViewSettingsMap['book1'] = emptyViewSettings({
+ proofreadRules: [
+ makeRule({ id: 'sel', scope: 'selection', order: 7 }),
+ makeRule({ id: 'a', scope: 'book', order: 1000 }),
+ makeRule({ id: 'b', scope: 'book', order: 1000 }),
+ ],
+ });
+
+ await useProofreadStore.getState().reorderRules(envConfig, 'book1', ['b', 'a']);
+
+ const saved = mockViewSettingsMap['book1']!.proofreadRules!;
+ expect(saved.find((r) => r.id === 'sel')!.order).toBe(7);
+ expect(saved.find((r) => r.id === 'b')!.order).toBe(0);
+ expect(saved.find((r) => r.id === 'a')!.order).toBe(1);
+ });
+ });
});
diff --git a/apps/readest-app/src/app/reader/components/ProofreadRules.tsx b/apps/readest-app/src/app/reader/components/ProofreadRules.tsx
index dc795442..b312bef1 100644
--- a/apps/readest-app/src/app/reader/components/ProofreadRules.tsx
+++ b/apps/readest-app/src/app/reader/components/ProofreadRules.tsx
@@ -1,16 +1,36 @@
import clsx from 'clsx';
import React, { useEffect, useState } from 'react';
import { RiEditLine, RiDeleteBin7Line } from 'react-icons/ri';
+import { MdDragIndicator } from 'react-icons/md';
+import {
+ DndContext,
+ closestCenter,
+ KeyboardSensor,
+ PointerSensor,
+ TouchSensor,
+ useSensor,
+ useSensors,
+ type DragEndEvent,
+ type Modifier,
+} from '@dnd-kit/core';
+import {
+ SortableContext,
+ sortableKeyboardCoordinates,
+ useSortable,
+ verticalListSortingStrategy,
+} from '@dnd-kit/sortable';
+import { CSS } from '@dnd-kit/utilities';
import { useEnv } from '@/context/EnvContext';
import { useTranslation } from '@/hooks/useTranslation';
import { useSettingsStore } from '@/store/settingsStore';
import { useReaderStore } from '@/store/readerStore';
import { useSidebarStore } from '@/store/sidebarStore';
import { useBookDataStore } from '@/store/bookDataStore';
-import { useProofreadStore } from '@/store/proofreadStore';
+import { useProofreadStore, validateReplacementRulePattern } from '@/store/proofreadStore';
import { ProofreadRule, ProofreadScope } from '@/types/book';
import { eventDispatcher } from '@/utils/event';
import Dialog from '@/components/Dialog';
+import { SectionTitle } from '@/components/settings/primitives';
const dialogId = 'proofread_rules_window';
@@ -21,6 +41,29 @@ export const setProofreadRulesVisibility = (visible: boolean) => {
}
};
+const byOrder = (a: ProofreadRule, b: ProofreadRule): number => (a.order ?? 0) - (b.order ?? 0);
+
+// Lock drag travel to the vertical axis — the lists are vertical, so any
+// horizontal motion just lets the drag preview drift out from under the row.
+const restrictToVerticalAxis: Modifier = ({ transform }) => ({ ...transform, x: 0 });
+
+// Clamp the drag preview to the list container so a row can't be dragged out.
+const restrictToParentElement: Modifier = ({ containerNodeRect, draggingNodeRect, transform }) => {
+ if (!draggingNodeRect || !containerNodeRect) return transform;
+ const value = { ...transform };
+ if (draggingNodeRect.top + transform.y < containerNodeRect.top) {
+ value.y = containerNodeRect.top - draggingNodeRect.top;
+ } else if (
+ draggingNodeRect.bottom + transform.y >
+ containerNodeRect.top + containerNodeRect.height
+ ) {
+ value.y = containerNodeRect.top + containerNodeRect.height - draggingNodeRect.bottom;
+ }
+ return value;
+};
+
+const dragModifiers: Modifier[] = [restrictToVerticalAxis, restrictToParentElement];
+
const RuleItem: React.FC<{
rule: ProofreadRule;
scope: ProofreadScope;
@@ -145,6 +188,53 @@ const RuleItem: React.FC<{
);
};
+// Sortable wrapper: the draggable `
` chassis + a left drag handle around
+// the existing RuleItem. The handle is the only drag-listener surface so the
+// edit/delete buttons stay clickable; it's hidden while the row is in edit mode.
+const SortableRuleItem: React.FC> = (props) => {
+ const _ = useTranslation();
+ const { attributes, listeners, setNodeRef, transform, transition, isDragging } = useSortable({
+ id: props.rule.id,
+ });
+ const style: React.CSSProperties = {
+ transform: CSS.Transform.toString(transform),
+ transition,
+ opacity: isDragging ? 0.6 : 1,
+ };
+
+ return (
+
);
@@ -301,10 +459,81 @@ export const ProofreadRulesManager: React.FC = () => {
isOpen={isOpen}
onClose={() => setIsOpen(false)}
title={_('Proofread Replacement Rules')}
- boxClassName='sm:!min-w-[560px] sm:!max-w-[640px] sm:h-auto'
+ // Cap the height on desktop (where the modal is auto-height) so the body
+ // scrolls; on mobile the modal is full-height and the body fills it.
+ boxClassName='sm:!min-w-[560px] sm:!max-w-[640px] sm:h-auto sm:!max-h-[80vh]'
+ // Drop the body's default horizontal padding so the scrollbar rides the
+ // modal's right edge (the inner `p-4 sm:p-6` keeps content off it), and
+ // `min-h-0` lets the flex-grow body shrink-to-scroll inside the capped
+ // modal instead of overflowing.
+ contentClassName='!px-0 min-h-0'
>
{isOpen && (
-