@@ -889,5 +889,44 @@
|
||||
"Only for TTS:": "فقط لـ TTS:",
|
||||
"Uploaded": "تم الرفع",
|
||||
"Downloaded": "تم التنزيل",
|
||||
"Deleted": "تم الحذف"
|
||||
"Deleted": "تم الحذف",
|
||||
"Note:": "ملاحظة:",
|
||||
"Time:": "الوقت:",
|
||||
"Format Options": "خيارات التنسيق",
|
||||
"Export Date": "تاريخ التصدير",
|
||||
"Chapter Titles": "عناوين الفصول",
|
||||
"Chapter Separator": "فاصل الفصول",
|
||||
"Highlights": "التمييزات",
|
||||
"Note Date": "تاريخ الملاحظة",
|
||||
"Advanced": "متقدم",
|
||||
"Hide": "إخفاء",
|
||||
"Show": "إظهار",
|
||||
"Use Custom Template": "استخدام قالب مخصص",
|
||||
"Export Template": "قالب التصدير",
|
||||
"Template Syntax:": "بناء جملة القالب:",
|
||||
"Insert value": "إدراج قيمة",
|
||||
"Format date (locale)": "تنسيق التاريخ (محلي)",
|
||||
"Format date (custom)": "تنسيق التاريخ (مخصص)",
|
||||
"Conditional": "شرطي",
|
||||
"Loop": "حلقة",
|
||||
"Available Variables:": "المتغيرات المتاحة:",
|
||||
"Book title": "عنوان الكتاب",
|
||||
"Book author": "مؤلف الكتاب",
|
||||
"Export date": "تاريخ التصدير",
|
||||
"Array of chapters": "مصفوفة الفصول",
|
||||
"Chapter title": "عنوان الفصل",
|
||||
"Array of annotations": "مصفوفة التعليقات",
|
||||
"Highlighted text": "النص المميز",
|
||||
"Annotation note": "ملاحظة التعليق",
|
||||
"Update time": "وقت التحديث",
|
||||
"Date Format Tokens:": "رموز تنسيق التاريخ:",
|
||||
"Year (4 digits)": "السنة (4 أرقام)",
|
||||
"Month (01-12)": "الشهر (01-12)",
|
||||
"Day (01-31)": "اليوم (01-31)",
|
||||
"Hour (00-23)": "الساعة (00-23)",
|
||||
"Minute (00-59)": "الدقيقة (00-59)",
|
||||
"Second (00-59)": "الثانية (00-59)",
|
||||
"Show Source": "إظهار المصدر",
|
||||
"No content to preview": "لا يوجد محتوى للمعاينة",
|
||||
"Export": "تصدير"
|
||||
}
|
||||
|
||||
@@ -849,5 +849,44 @@
|
||||
"Only for TTS:": "শুধুমাত্র TTS-এর জন্য:",
|
||||
"Uploaded": "আপলোড হয়েছে",
|
||||
"Downloaded": "ডাউনলোড হয়েছে",
|
||||
"Deleted": "মুছে ফেলা হয়েছে"
|
||||
"Deleted": "মুছে ফেলা হয়েছে",
|
||||
"Note:": "নোট:",
|
||||
"Time:": "সময়:",
|
||||
"Format Options": "বিন্যাস বিকল্প",
|
||||
"Export Date": "রপ্তানি তারিখ",
|
||||
"Chapter Titles": "অধ্যায়ের শিরোনাম",
|
||||
"Chapter Separator": "অধ্যায় বিভাজক",
|
||||
"Highlights": "হাইলাইট",
|
||||
"Note Date": "নোট তারিখ",
|
||||
"Advanced": "উন্নত",
|
||||
"Hide": "লুকান",
|
||||
"Show": "দেখান",
|
||||
"Use Custom Template": "কাস্টম টেমপ্লেট ব্যবহার করুন",
|
||||
"Export Template": "রপ্তানি টেমপ্লেট",
|
||||
"Template Syntax:": "টেমপ্লেট সিনট্যাক্স:",
|
||||
"Insert value": "মান সন্নিবেশ করুন",
|
||||
"Format date (locale)": "তারিখ বিন্যাস (স্থানীয়)",
|
||||
"Format date (custom)": "তারিখ বিন্যাস (কাস্টম)",
|
||||
"Conditional": "শর্তসাপেক্ষ",
|
||||
"Loop": "লুপ",
|
||||
"Available Variables:": "উপলব্ধ ভেরিয়েবল:",
|
||||
"Book title": "বইয়ের শিরোনাম",
|
||||
"Book author": "বইয়ের লেখক",
|
||||
"Export date": "রপ্তানি তারিখ",
|
||||
"Array of chapters": "অধ্যায়ের তালিকা",
|
||||
"Chapter title": "অধ্যায়ের শিরোনাম",
|
||||
"Array of annotations": "টীকাগুলির তালিকা",
|
||||
"Highlighted text": "হাইলাইট করা পাঠ্য",
|
||||
"Annotation note": "টীকা নোট",
|
||||
"Update time": "আপডেট সময়",
|
||||
"Date Format Tokens:": "তারিখ বিন্যাস টোকেন:",
|
||||
"Year (4 digits)": "বছর (4 সংখ্যা)",
|
||||
"Month (01-12)": "মাস (01-12)",
|
||||
"Day (01-31)": "দিন (01-31)",
|
||||
"Hour (00-23)": "ঘণ্টা (00-23)",
|
||||
"Minute (00-59)": "মিনিট (00-59)",
|
||||
"Second (00-59)": "সেকেন্ড (00-59)",
|
||||
"Show Source": "উৎস দেখান",
|
||||
"No content to preview": "প্রিভিউ করার জন্য কোনো কন্টেন্ট নেই",
|
||||
"Export": "রপ্তানি"
|
||||
}
|
||||
|
||||
@@ -839,5 +839,44 @@
|
||||
"Only for TTS:": "TTS ལ་ཁོ་ན།:",
|
||||
"Uploaded": "ཡར་སྐྱེལ་བྱས་ཟིན།",
|
||||
"Downloaded": "མར་ལེན་བྱས་ཟིན།",
|
||||
"Deleted": "བསུབས་ཟིན།"
|
||||
"Deleted": "བསུབས་ཟིན།",
|
||||
"Note:": "གསལ་བཤད།:",
|
||||
"Time:": "དུས་ཚོད།:",
|
||||
"Format Options": "རྣམ་གཞག་གདམ་ག",
|
||||
"Export Date": "ཕྱིར་འདོན་ཚེས་གྲངས།",
|
||||
"Chapter Titles": "ལེའུའི་མཚན།",
|
||||
"Chapter Separator": "ལེའུའི་དབར་མཚམས།",
|
||||
"Highlights": "གཙོ་གནད།",
|
||||
"Note Date": "གསལ་བཤད་ཚེས་གྲངས།",
|
||||
"Advanced": "མཐོ་རིམ།",
|
||||
"Hide": "སྦས་པ།",
|
||||
"Show": "མངོན་པ།",
|
||||
"Use Custom Template": "རང་བཟོའི་དཔེ་གཞི་བེད་སྤྱོད།",
|
||||
"Export Template": "ཕྱིར་འདོན་དཔེ་གཞི།",
|
||||
"Template Syntax:": "དཔེ་གཞིའི་སྒྲིག་གཞི།:",
|
||||
"Insert value": "གྲངས་ཐང་བཙུགས་པ།",
|
||||
"Format date (locale)": "ཚེས་གྲངས་རྣམ་གཞག (ས་གནས།)",
|
||||
"Format date (custom)": "ཚེས་གྲངས་རྣམ་གཞག (རང་བཟོ།)",
|
||||
"Conditional": "དམིགས་བསལ།",
|
||||
"Loop": "འཁོར་ལོ།",
|
||||
"Available Variables:": "བེད་སྤྱད་རུང་བའི་འགྱུར་ཅན།:",
|
||||
"Book title": "དེབ་མཚན།",
|
||||
"Book author": "དེབ་རྩོམ་པ་པོ།",
|
||||
"Export date": "ཕྱིར་འདོན་ཚེས་གྲངས།",
|
||||
"Array of chapters": "ལེའུའི་ལེབ་ངོས།",
|
||||
"Chapter title": "ལེའུའི་མཚན།",
|
||||
"Array of annotations": "གསལ་བཤད་ལེབ་ངོས།",
|
||||
"Highlighted text": "གཙོ་གནད་ཡིག་རྐྱང་།",
|
||||
"Annotation note": "གསལ་བཤད་ཟིན་བྲིས།",
|
||||
"Update time": "གསར་བཅོས་དུས་ཚོད།",
|
||||
"Date Format Tokens:": "ཚེས་གྲངས་རྣམ་གཞག་རྟགས།:",
|
||||
"Year (4 digits)": "ལོ། (གྲངས་ཐང་4)",
|
||||
"Month (01-12)": "ཟླ། (01-12)",
|
||||
"Day (01-31)": "ཚེས། (01-31)",
|
||||
"Hour (00-23)": "ཆུ་ཚོད། (00-23)",
|
||||
"Minute (00-59)": "སྐར་མ། (00-59)",
|
||||
"Second (00-59)": "སྐར་ཆ། (00-59)",
|
||||
"Show Source": "འབྱུང་ཁུངས་མངོན་པ།",
|
||||
"No content to preview": "སྔོན་ལྟ་བྱེད་པའི་དོན་རྐྱེན་མེད།",
|
||||
"Export": "ཕྱིར་འདོན།"
|
||||
}
|
||||
|
||||
@@ -849,5 +849,44 @@
|
||||
"Only for TTS:": "Nur für TTS:",
|
||||
"Uploaded": "Hochgeladen",
|
||||
"Downloaded": "Heruntergeladen",
|
||||
"Deleted": "Gelöscht"
|
||||
"Deleted": "Gelöscht",
|
||||
"Note:": "Notiz:",
|
||||
"Time:": "Zeit:",
|
||||
"Format Options": "Formatoptionen",
|
||||
"Export Date": "Exportdatum",
|
||||
"Chapter Titles": "Kapiteltitel",
|
||||
"Chapter Separator": "Kapiteltrennzeichen",
|
||||
"Highlights": "Markierungen",
|
||||
"Note Date": "Notizdatum",
|
||||
"Advanced": "Erweitert",
|
||||
"Hide": "Ausblenden",
|
||||
"Show": "Anzeigen",
|
||||
"Use Custom Template": "Benutzerdefinierte Vorlage verwenden",
|
||||
"Export Template": "Exportvorlage",
|
||||
"Template Syntax:": "Vorlagensyntax:",
|
||||
"Insert value": "Wert einfügen",
|
||||
"Format date (locale)": "Datum formatieren (Gebietsschema)",
|
||||
"Format date (custom)": "Datum formatieren (benutzerdefiniert)",
|
||||
"Conditional": "Bedingung",
|
||||
"Loop": "Schleife",
|
||||
"Available Variables:": "Verfügbare Variablen:",
|
||||
"Book title": "Buchtitel",
|
||||
"Book author": "Buchautor",
|
||||
"Export date": "Exportdatum",
|
||||
"Array of chapters": "Array von Kapiteln",
|
||||
"Chapter title": "Kapiteltitel",
|
||||
"Array of annotations": "Array von Anmerkungen",
|
||||
"Highlighted text": "Markierter Text",
|
||||
"Annotation note": "Anmerkungsnotiz",
|
||||
"Update time": "Aktualisierungszeit",
|
||||
"Date Format Tokens:": "Datumsformat-Token:",
|
||||
"Year (4 digits)": "Jahr (4 Ziffern)",
|
||||
"Month (01-12)": "Monat (01-12)",
|
||||
"Day (01-31)": "Tag (01-31)",
|
||||
"Hour (00-23)": "Stunde (00-23)",
|
||||
"Minute (00-59)": "Minute (00-59)",
|
||||
"Second (00-59)": "Sekunde (00-59)",
|
||||
"Show Source": "Quelle anzeigen",
|
||||
"No content to preview": "Kein Inhalt zur Vorschau",
|
||||
"Export": "Exportieren"
|
||||
}
|
||||
|
||||
@@ -849,5 +849,44 @@
|
||||
"Only for TTS:": "Μόνο για TTS:",
|
||||
"Uploaded": "Μεταφορτώθηκε",
|
||||
"Downloaded": "Λήφθηκε",
|
||||
"Deleted": "Διαγράφηκε"
|
||||
"Deleted": "Διαγράφηκε",
|
||||
"Note:": "Σημείωση:",
|
||||
"Time:": "Ώρα:",
|
||||
"Format Options": "Επιλογές μορφοποίησης",
|
||||
"Export Date": "Ημερομηνία εξαγωγής",
|
||||
"Chapter Titles": "Τίτλοι κεφαλαίων",
|
||||
"Chapter Separator": "Διαχωριστικό κεφαλαίων",
|
||||
"Highlights": "Επισημάνσεις",
|
||||
"Note Date": "Ημερομηνία σημείωσης",
|
||||
"Advanced": "Για προχωρημένους",
|
||||
"Hide": "Απόκρυψη",
|
||||
"Show": "Εμφάνιση",
|
||||
"Use Custom Template": "Χρήση προσαρμοσμένου προτύπου",
|
||||
"Export Template": "Πρότυπο εξαγωγής",
|
||||
"Template Syntax:": "Σύνταξη προτύπου:",
|
||||
"Insert value": "Εισαγωγή τιμής",
|
||||
"Format date (locale)": "Μορφοποίηση ημερομηνίας (τοπική)",
|
||||
"Format date (custom)": "Μορφοποίηση ημερομηνίας (προσαρμοσμένη)",
|
||||
"Conditional": "Υπό όρους",
|
||||
"Loop": "Βρόχος",
|
||||
"Available Variables:": "Διαθέσιμες μεταβλητές:",
|
||||
"Book title": "Τίτλος βιβλίου",
|
||||
"Book author": "Συγγραφέας βιβλίου",
|
||||
"Export date": "Ημερομηνία εξαγωγής",
|
||||
"Array of chapters": "Πίνακας κεφαλαίων",
|
||||
"Chapter title": "Τίτλος κεφαλαίου",
|
||||
"Array of annotations": "Πίνακας σχολιασμών",
|
||||
"Highlighted text": "Επισημασμένο κείμενο",
|
||||
"Annotation note": "Σημείωση σχολιασμού",
|
||||
"Update time": "Ώρα ενημέρωσης",
|
||||
"Date Format Tokens:": "Σύμβολα μορφοποίησης ημερομηνίας:",
|
||||
"Year (4 digits)": "Έτος (4 ψηφία)",
|
||||
"Month (01-12)": "Μήνας (01-12)",
|
||||
"Day (01-31)": "Ημέρα (01-31)",
|
||||
"Hour (00-23)": "Ώρα (00-23)",
|
||||
"Minute (00-59)": "Λεπτό (00-59)",
|
||||
"Second (00-59)": "Δευτερόλεπτο (00-59)",
|
||||
"Show Source": "Εμφάνιση πηγής",
|
||||
"No content to preview": "Δεν υπάρχει περιεχόμενο για προεπισκόπηση",
|
||||
"Export": "Εξαγωγή"
|
||||
}
|
||||
|
||||
@@ -859,5 +859,44 @@
|
||||
"Only for TTS:": "Solo para TTS:",
|
||||
"Uploaded": "Subido",
|
||||
"Downloaded": "Descargado",
|
||||
"Deleted": "Eliminado"
|
||||
"Deleted": "Eliminado",
|
||||
"Note:": "Nota:",
|
||||
"Time:": "Hora:",
|
||||
"Format Options": "Opciones de formato",
|
||||
"Export Date": "Fecha de exportación",
|
||||
"Chapter Titles": "Títulos de capítulos",
|
||||
"Chapter Separator": "Separador de capítulos",
|
||||
"Highlights": "Resaltados",
|
||||
"Note Date": "Fecha de nota",
|
||||
"Advanced": "Avanzado",
|
||||
"Hide": "Ocultar",
|
||||
"Show": "Mostrar",
|
||||
"Use Custom Template": "Usar plantilla personalizada",
|
||||
"Export Template": "Plantilla de exportación",
|
||||
"Template Syntax:": "Sintaxis de plantilla:",
|
||||
"Insert value": "Insertar valor",
|
||||
"Format date (locale)": "Formatear fecha (regional)",
|
||||
"Format date (custom)": "Formatear fecha (personalizado)",
|
||||
"Conditional": "Condicional",
|
||||
"Loop": "Bucle",
|
||||
"Available Variables:": "Variables disponibles:",
|
||||
"Book title": "Título del libro",
|
||||
"Book author": "Autor del libro",
|
||||
"Export date": "Fecha de exportación",
|
||||
"Array of chapters": "Lista de capítulos",
|
||||
"Chapter title": "Título del capítulo",
|
||||
"Array of annotations": "Lista de anotaciones",
|
||||
"Highlighted text": "Texto resaltado",
|
||||
"Annotation note": "Nota de anotación",
|
||||
"Update time": "Hora de actualización",
|
||||
"Date Format Tokens:": "Tokens de formato de fecha:",
|
||||
"Year (4 digits)": "Año (4 dígitos)",
|
||||
"Month (01-12)": "Mes (01-12)",
|
||||
"Day (01-31)": "Día (01-31)",
|
||||
"Hour (00-23)": "Hora (00-23)",
|
||||
"Minute (00-59)": "Minuto (00-59)",
|
||||
"Second (00-59)": "Segundo (00-59)",
|
||||
"Show Source": "Mostrar fuente",
|
||||
"No content to preview": "Sin contenido para previsualizar",
|
||||
"Export": "Exportar"
|
||||
}
|
||||
|
||||
@@ -849,5 +849,44 @@
|
||||
"Only for TTS:": "فقط برای TTS:",
|
||||
"Uploaded": "بارگذاری شد",
|
||||
"Downloaded": "دانلود شد",
|
||||
"Deleted": "حذف شد"
|
||||
"Deleted": "حذف شد",
|
||||
"Note:": "یادداشت:",
|
||||
"Time:": "زمان:",
|
||||
"Format Options": "گزینههای قالب",
|
||||
"Export Date": "تاریخ خروجی",
|
||||
"Chapter Titles": "عناوین فصل",
|
||||
"Chapter Separator": "جداکننده فصل",
|
||||
"Highlights": "برجستهها",
|
||||
"Note Date": "تاریخ یادداشت",
|
||||
"Advanced": "پیشرفته",
|
||||
"Hide": "پنهان کردن",
|
||||
"Show": "نمایش",
|
||||
"Use Custom Template": "استفاده از الگوی سفارشی",
|
||||
"Export Template": "الگوی خروجی",
|
||||
"Template Syntax:": "نحو الگو:",
|
||||
"Insert value": "درج مقدار",
|
||||
"Format date (locale)": "قالببندی تاریخ (محلی)",
|
||||
"Format date (custom)": "قالببندی تاریخ (سفارشی)",
|
||||
"Conditional": "شرطی",
|
||||
"Loop": "حلقه",
|
||||
"Available Variables:": "متغیرهای موجود:",
|
||||
"Book title": "عنوان کتاب",
|
||||
"Book author": "نویسنده کتاب",
|
||||
"Export date": "تاریخ خروجی",
|
||||
"Array of chapters": "آرایه فصلها",
|
||||
"Chapter title": "عنوان فصل",
|
||||
"Array of annotations": "آرایه یادداشتها",
|
||||
"Highlighted text": "متن برجستهشده",
|
||||
"Annotation note": "یادداشت حاشیه",
|
||||
"Update time": "زمان بهروزرسانی",
|
||||
"Date Format Tokens:": "نشانههای قالب تاریخ:",
|
||||
"Year (4 digits)": "سال (۴ رقم)",
|
||||
"Month (01-12)": "ماه (۰۱-۱۲)",
|
||||
"Day (01-31)": "روز (۰۱-۳۱)",
|
||||
"Hour (00-23)": "ساعت (۰۰-۲۳)",
|
||||
"Minute (00-59)": "دقیقه (۰۰-۵۹)",
|
||||
"Second (00-59)": "ثانیه (۰۰-۵۹)",
|
||||
"Show Source": "نمایش منبع",
|
||||
"No content to preview": "محتوایی برای پیشنمایش وجود ندارد",
|
||||
"Export": "خروجی"
|
||||
}
|
||||
|
||||
@@ -859,5 +859,44 @@
|
||||
"Only for TTS:": "Uniquement pour TTS :",
|
||||
"Uploaded": "Téléversé",
|
||||
"Downloaded": "Téléchargé",
|
||||
"Deleted": "Supprimé"
|
||||
"Deleted": "Supprimé",
|
||||
"Note:": "Note :",
|
||||
"Time:": "Heure :",
|
||||
"Format Options": "Options de format",
|
||||
"Export Date": "Date d'export",
|
||||
"Chapter Titles": "Titres de chapitres",
|
||||
"Chapter Separator": "Séparateur de chapitres",
|
||||
"Highlights": "Surlignages",
|
||||
"Note Date": "Date de note",
|
||||
"Advanced": "Avancé",
|
||||
"Hide": "Masquer",
|
||||
"Show": "Afficher",
|
||||
"Use Custom Template": "Utiliser un modèle personnalisé",
|
||||
"Export Template": "Modèle d'export",
|
||||
"Template Syntax:": "Syntaxe du modèle :",
|
||||
"Insert value": "Insérer une valeur",
|
||||
"Format date (locale)": "Formater la date (locale)",
|
||||
"Format date (custom)": "Formater la date (personnalisé)",
|
||||
"Conditional": "Conditionnel",
|
||||
"Loop": "Boucle",
|
||||
"Available Variables:": "Variables disponibles :",
|
||||
"Book title": "Titre du livre",
|
||||
"Book author": "Auteur du livre",
|
||||
"Export date": "Date d'export",
|
||||
"Array of chapters": "Liste de chapitres",
|
||||
"Chapter title": "Titre du chapitre",
|
||||
"Array of annotations": "Liste d'annotations",
|
||||
"Highlighted text": "Texte surligné",
|
||||
"Annotation note": "Note d'annotation",
|
||||
"Update time": "Heure de mise à jour",
|
||||
"Date Format Tokens:": "Jetons de format de date :",
|
||||
"Year (4 digits)": "Année (4 chiffres)",
|
||||
"Month (01-12)": "Mois (01-12)",
|
||||
"Day (01-31)": "Jour (01-31)",
|
||||
"Hour (00-23)": "Heure (00-23)",
|
||||
"Minute (00-59)": "Minute (00-59)",
|
||||
"Second (00-59)": "Seconde (00-59)",
|
||||
"Show Source": "Afficher la source",
|
||||
"No content to preview": "Aucun contenu à prévisualiser",
|
||||
"Export": "Exporter"
|
||||
}
|
||||
|
||||
@@ -849,5 +849,44 @@
|
||||
"Only for TTS:": "केवल TTS के लिए:",
|
||||
"Uploaded": "अपलोड किया गया",
|
||||
"Downloaded": "डाउनलोड किया गया",
|
||||
"Deleted": "हटाया गया"
|
||||
"Deleted": "हटाया गया",
|
||||
"Note:": "नोट:",
|
||||
"Time:": "समय:",
|
||||
"Format Options": "प्रारूप विकल्प",
|
||||
"Export Date": "निर्यात तिथि",
|
||||
"Chapter Titles": "अध्याय शीर्षक",
|
||||
"Chapter Separator": "अध्याय विभाजक",
|
||||
"Highlights": "हाइलाइट्स",
|
||||
"Note Date": "नोट तिथि",
|
||||
"Advanced": "उन्नत",
|
||||
"Hide": "छिपाएं",
|
||||
"Show": "दिखाएं",
|
||||
"Use Custom Template": "कस्टम टेम्पलेट उपयोग करें",
|
||||
"Export Template": "निर्यात टेम्पलेट",
|
||||
"Template Syntax:": "टेम्पलेट सिंटैक्स:",
|
||||
"Insert value": "मान डालें",
|
||||
"Format date (locale)": "तिथि फ़ॉर्मेट करें (स्थानीय)",
|
||||
"Format date (custom)": "तिथि फ़ॉर्मेट करें (कस्टम)",
|
||||
"Conditional": "सशर्त",
|
||||
"Loop": "लूप",
|
||||
"Available Variables:": "उपलब्ध चर:",
|
||||
"Book title": "पुस्तक शीर्षक",
|
||||
"Book author": "पुस्तक लेखक",
|
||||
"Export date": "निर्यात तिथि",
|
||||
"Array of chapters": "अध्यायों की सूची",
|
||||
"Chapter title": "अध्याय शीर्षक",
|
||||
"Array of annotations": "एनोटेशन की सूची",
|
||||
"Highlighted text": "हाइलाइट किया गया पाठ",
|
||||
"Annotation note": "एनोटेशन नोट",
|
||||
"Update time": "अपडेट समय",
|
||||
"Date Format Tokens:": "तिथि प्रारूप टोकन:",
|
||||
"Year (4 digits)": "वर्ष (4 अंक)",
|
||||
"Month (01-12)": "माह (01-12)",
|
||||
"Day (01-31)": "दिन (01-31)",
|
||||
"Hour (00-23)": "घंटा (00-23)",
|
||||
"Minute (00-59)": "मिनट (00-59)",
|
||||
"Second (00-59)": "सेकंड (00-59)",
|
||||
"Show Source": "स्रोत दिखाएं",
|
||||
"No content to preview": "पूर्वावलोकन के लिए कोई सामग्री नहीं",
|
||||
"Export": "निर्यात करें"
|
||||
}
|
||||
|
||||
@@ -839,5 +839,44 @@
|
||||
"Only for TTS:": "Hanya untuk TTS:",
|
||||
"Uploaded": "Diunggah",
|
||||
"Downloaded": "Diunduh",
|
||||
"Deleted": "Dihapus"
|
||||
"Deleted": "Dihapus",
|
||||
"Note:": "Catatan:",
|
||||
"Time:": "Waktu:",
|
||||
"Format Options": "Opsi Format",
|
||||
"Export Date": "Tanggal Ekspor",
|
||||
"Chapter Titles": "Judul Bab",
|
||||
"Chapter Separator": "Pemisah Bab",
|
||||
"Highlights": "Sorotan",
|
||||
"Note Date": "Tanggal Catatan",
|
||||
"Advanced": "Lanjutan",
|
||||
"Hide": "Sembunyikan",
|
||||
"Show": "Tampilkan",
|
||||
"Use Custom Template": "Gunakan Template Kustom",
|
||||
"Export Template": "Template Ekspor",
|
||||
"Template Syntax:": "Sintaks Template:",
|
||||
"Insert value": "Masukkan nilai",
|
||||
"Format date (locale)": "Format tanggal (lokal)",
|
||||
"Format date (custom)": "Format tanggal (kustom)",
|
||||
"Conditional": "Kondisional",
|
||||
"Loop": "Loop",
|
||||
"Available Variables:": "Variabel yang Tersedia:",
|
||||
"Book title": "Judul buku",
|
||||
"Book author": "Penulis buku",
|
||||
"Export date": "Tanggal ekspor",
|
||||
"Array of chapters": "Daftar bab",
|
||||
"Chapter title": "Judul bab",
|
||||
"Array of annotations": "Daftar anotasi",
|
||||
"Highlighted text": "Teks yang disorot",
|
||||
"Annotation note": "Catatan anotasi",
|
||||
"Update time": "Waktu pembaruan",
|
||||
"Date Format Tokens:": "Token Format Tanggal:",
|
||||
"Year (4 digits)": "Tahun (4 digit)",
|
||||
"Month (01-12)": "Bulan (01-12)",
|
||||
"Day (01-31)": "Hari (01-31)",
|
||||
"Hour (00-23)": "Jam (00-23)",
|
||||
"Minute (00-59)": "Menit (00-59)",
|
||||
"Second (00-59)": "Detik (00-59)",
|
||||
"Show Source": "Tampilkan Sumber",
|
||||
"No content to preview": "Tidak ada konten untuk dipratinjau",
|
||||
"Export": "Ekspor"
|
||||
}
|
||||
|
||||
@@ -859,5 +859,44 @@
|
||||
"Only for TTS:": "Solo per TTS:",
|
||||
"Uploaded": "Caricato",
|
||||
"Downloaded": "Scaricato",
|
||||
"Deleted": "Eliminato"
|
||||
"Deleted": "Eliminato",
|
||||
"Note:": "Nota:",
|
||||
"Time:": "Ora:",
|
||||
"Format Options": "Opzioni formato",
|
||||
"Export Date": "Data esportazione",
|
||||
"Chapter Titles": "Titoli capitoli",
|
||||
"Chapter Separator": "Separatore capitoli",
|
||||
"Highlights": "Evidenziazioni",
|
||||
"Note Date": "Data nota",
|
||||
"Advanced": "Avanzate",
|
||||
"Hide": "Nascondi",
|
||||
"Show": "Mostra",
|
||||
"Use Custom Template": "Usa modello personalizzato",
|
||||
"Export Template": "Modello esportazione",
|
||||
"Template Syntax:": "Sintassi modello:",
|
||||
"Insert value": "Inserisci valore",
|
||||
"Format date (locale)": "Formatta data (locale)",
|
||||
"Format date (custom)": "Formatta data (personalizzato)",
|
||||
"Conditional": "Condizionale",
|
||||
"Loop": "Ciclo",
|
||||
"Available Variables:": "Variabili disponibili:",
|
||||
"Book title": "Titolo libro",
|
||||
"Book author": "Autore libro",
|
||||
"Export date": "Data esportazione",
|
||||
"Array of chapters": "Elenco capitoli",
|
||||
"Chapter title": "Titolo capitolo",
|
||||
"Array of annotations": "Elenco annotazioni",
|
||||
"Highlighted text": "Testo evidenziato",
|
||||
"Annotation note": "Nota annotazione",
|
||||
"Update time": "Ora aggiornamento",
|
||||
"Date Format Tokens:": "Token formato data:",
|
||||
"Year (4 digits)": "Anno (4 cifre)",
|
||||
"Month (01-12)": "Mese (01-12)",
|
||||
"Day (01-31)": "Giorno (01-31)",
|
||||
"Hour (00-23)": "Ora (00-23)",
|
||||
"Minute (00-59)": "Minuto (00-59)",
|
||||
"Second (00-59)": "Secondo (00-59)",
|
||||
"Show Source": "Mostra sorgente",
|
||||
"No content to preview": "Nessun contenuto da visualizzare",
|
||||
"Export": "Esporta"
|
||||
}
|
||||
|
||||
@@ -839,5 +839,44 @@
|
||||
"Only for TTS:": "TTSのみ:",
|
||||
"Uploaded": "アップロード済み",
|
||||
"Downloaded": "ダウンロード済み",
|
||||
"Deleted": "削除済み"
|
||||
"Deleted": "削除済み",
|
||||
"Note:": "ノート:",
|
||||
"Time:": "時刻:",
|
||||
"Format Options": "形式オプション",
|
||||
"Export Date": "エクスポート日",
|
||||
"Chapter Titles": "章タイトル",
|
||||
"Chapter Separator": "章区切り",
|
||||
"Highlights": "ハイライト",
|
||||
"Note Date": "ノート日付",
|
||||
"Advanced": "詳細設定",
|
||||
"Hide": "非表示",
|
||||
"Show": "表示",
|
||||
"Use Custom Template": "カスタムテンプレート使用",
|
||||
"Export Template": "エクスポートテンプレート",
|
||||
"Template Syntax:": "テンプレート構文:",
|
||||
"Insert value": "値を挿入",
|
||||
"Format date (locale)": "日付形式(ロケール)",
|
||||
"Format date (custom)": "日付形式(カスタム)",
|
||||
"Conditional": "条件分岐",
|
||||
"Loop": "ループ",
|
||||
"Available Variables:": "利用可能な変数:",
|
||||
"Book title": "本のタイトル",
|
||||
"Book author": "著者",
|
||||
"Export date": "エクスポート日",
|
||||
"Array of chapters": "章の配列",
|
||||
"Chapter title": "章タイトル",
|
||||
"Array of annotations": "注釈の配列",
|
||||
"Highlighted text": "ハイライトテキスト",
|
||||
"Annotation note": "注釈ノート",
|
||||
"Update time": "更新時刻",
|
||||
"Date Format Tokens:": "日付形式トークン:",
|
||||
"Year (4 digits)": "年(4桁)",
|
||||
"Month (01-12)": "月(01-12)",
|
||||
"Day (01-31)": "日(01-31)",
|
||||
"Hour (00-23)": "時(00-23)",
|
||||
"Minute (00-59)": "分(00-59)",
|
||||
"Second (00-59)": "秒(00-59)",
|
||||
"Show Source": "ソース表示",
|
||||
"No content to preview": "プレビューするコンテンツがありません",
|
||||
"Export": "エクスポート"
|
||||
}
|
||||
|
||||
@@ -839,5 +839,44 @@
|
||||
"Only for TTS:": "TTS 전용:",
|
||||
"Uploaded": "업로드됨",
|
||||
"Downloaded": "다운로드됨",
|
||||
"Deleted": "삭제됨"
|
||||
"Deleted": "삭제됨",
|
||||
"Note:": "노트:",
|
||||
"Time:": "시간:",
|
||||
"Format Options": "형식 옵션",
|
||||
"Export Date": "내보내기 날짜",
|
||||
"Chapter Titles": "챕터 제목",
|
||||
"Chapter Separator": "챕터 구분 기호",
|
||||
"Highlights": "하이라이트",
|
||||
"Note Date": "노트 날짜",
|
||||
"Advanced": "고급",
|
||||
"Hide": "숨기기",
|
||||
"Show": "표시",
|
||||
"Use Custom Template": "사용자 지정 템플릿 사용",
|
||||
"Export Template": "내보내기 템플릿",
|
||||
"Template Syntax:": "템플릿 구문:",
|
||||
"Insert value": "값 삽입",
|
||||
"Format date (locale)": "날짜 형식 (로케일)",
|
||||
"Format date (custom)": "날짜 형식 (사용자 지정)",
|
||||
"Conditional": "조건부",
|
||||
"Loop": "반복",
|
||||
"Available Variables:": "사용 가능한 변수:",
|
||||
"Book title": "책 제목",
|
||||
"Book author": "책 저자",
|
||||
"Export date": "내보내기 날짜",
|
||||
"Array of chapters": "챕터 배열",
|
||||
"Chapter title": "챕터 제목",
|
||||
"Array of annotations": "주석 배열",
|
||||
"Highlighted text": "하이라이트된 텍스트",
|
||||
"Annotation note": "주석 노트",
|
||||
"Update time": "업데이트 시간",
|
||||
"Date Format Tokens:": "날짜 형식 토큰:",
|
||||
"Year (4 digits)": "연도 (4자리)",
|
||||
"Month (01-12)": "월 (01-12)",
|
||||
"Day (01-31)": "일 (01-31)",
|
||||
"Hour (00-23)": "시 (00-23)",
|
||||
"Minute (00-59)": "분 (00-59)",
|
||||
"Second (00-59)": "초 (00-59)",
|
||||
"Show Source": "소스 표시",
|
||||
"No content to preview": "미리 볼 내용 없음",
|
||||
"Export": "내보내기"
|
||||
}
|
||||
|
||||
@@ -839,5 +839,44 @@
|
||||
"Only for TTS:": "Hanya untuk TTS:",
|
||||
"Uploaded": "Dimuat naik",
|
||||
"Downloaded": "Dimuat turun",
|
||||
"Deleted": "Dipadam"
|
||||
"Deleted": "Dipadam",
|
||||
"Note:": "Nota:",
|
||||
"Time:": "Masa:",
|
||||
"Format Options": "Pilihan Format",
|
||||
"Export Date": "Tarikh Eksport",
|
||||
"Chapter Titles": "Tajuk Bab",
|
||||
"Chapter Separator": "Pemisah Bab",
|
||||
"Highlights": "Serlahan",
|
||||
"Note Date": "Tarikh Nota",
|
||||
"Advanced": "Lanjutan",
|
||||
"Hide": "Sembunyikan",
|
||||
"Show": "Tunjukkan",
|
||||
"Use Custom Template": "Gunakan Templat Tersuai",
|
||||
"Export Template": "Templat Eksport",
|
||||
"Template Syntax:": "Sintaks Templat:",
|
||||
"Insert value": "Masukkan nilai",
|
||||
"Format date (locale)": "Format tarikh (tempatan)",
|
||||
"Format date (custom)": "Format tarikh (tersuai)",
|
||||
"Conditional": "Bersyarat",
|
||||
"Loop": "Gelung",
|
||||
"Available Variables:": "Pembolehubah Tersedia:",
|
||||
"Book title": "Tajuk buku",
|
||||
"Book author": "Pengarang buku",
|
||||
"Export date": "Tarikh eksport",
|
||||
"Array of chapters": "Senarai bab",
|
||||
"Chapter title": "Tajuk bab",
|
||||
"Array of annotations": "Senarai anotasi",
|
||||
"Highlighted text": "Teks yang diserlahkan",
|
||||
"Annotation note": "Nota anotasi",
|
||||
"Update time": "Masa kemas kini",
|
||||
"Date Format Tokens:": "Token Format Tarikh:",
|
||||
"Year (4 digits)": "Tahun (4 digit)",
|
||||
"Month (01-12)": "Bulan (01-12)",
|
||||
"Day (01-31)": "Hari (01-31)",
|
||||
"Hour (00-23)": "Jam (00-23)",
|
||||
"Minute (00-59)": "Minit (00-59)",
|
||||
"Second (00-59)": "Saat (00-59)",
|
||||
"Show Source": "Tunjukkan Sumber",
|
||||
"No content to preview": "Tiada kandungan untuk pratonton",
|
||||
"Export": "Eksport"
|
||||
}
|
||||
|
||||
@@ -849,5 +849,44 @@
|
||||
"Only for TTS:": "Alleen voor TTS:",
|
||||
"Uploaded": "Geüpload",
|
||||
"Downloaded": "Gedownload",
|
||||
"Deleted": "Verwijderd"
|
||||
"Deleted": "Verwijderd",
|
||||
"Note:": "Notitie:",
|
||||
"Time:": "Tijd:",
|
||||
"Format Options": "Formaatopties",
|
||||
"Export Date": "Exportdatum",
|
||||
"Chapter Titles": "Hoofdstuktitels",
|
||||
"Chapter Separator": "Hoofdstukscheiding",
|
||||
"Highlights": "Markeringen",
|
||||
"Note Date": "Notitiedatum",
|
||||
"Advanced": "Geavanceerd",
|
||||
"Hide": "Verbergen",
|
||||
"Show": "Tonen",
|
||||
"Use Custom Template": "Aangepast sjabloon gebruiken",
|
||||
"Export Template": "Exportsjabloon",
|
||||
"Template Syntax:": "Sjabloonsyntaxis:",
|
||||
"Insert value": "Waarde invoegen",
|
||||
"Format date (locale)": "Datum opmaken (lokaal)",
|
||||
"Format date (custom)": "Datum opmaken (aangepast)",
|
||||
"Conditional": "Voorwaardelijk",
|
||||
"Loop": "Lus",
|
||||
"Available Variables:": "Beschikbare variabelen:",
|
||||
"Book title": "Boektitel",
|
||||
"Book author": "Boekauteur",
|
||||
"Export date": "Exportdatum",
|
||||
"Array of chapters": "Reeks hoofdstukken",
|
||||
"Chapter title": "Hoofdstuktitel",
|
||||
"Array of annotations": "Reeks annotaties",
|
||||
"Highlighted text": "Gemarkeerde tekst",
|
||||
"Annotation note": "Annotatienotitie",
|
||||
"Update time": "Updatetijd",
|
||||
"Date Format Tokens:": "Datumformaattokens:",
|
||||
"Year (4 digits)": "Jaar (4 cijfers)",
|
||||
"Month (01-12)": "Maand (01-12)",
|
||||
"Day (01-31)": "Dag (01-31)",
|
||||
"Hour (00-23)": "Uur (00-23)",
|
||||
"Minute (00-59)": "Minuut (00-59)",
|
||||
"Second (00-59)": "Seconde (00-59)",
|
||||
"Show Source": "Bron tonen",
|
||||
"No content to preview": "Geen inhoud om te bekijken",
|
||||
"Export": "Exporteren"
|
||||
}
|
||||
|
||||
@@ -869,5 +869,44 @@
|
||||
"Only for TTS:": "Tylko dla TTS:",
|
||||
"Uploaded": "Przesłano",
|
||||
"Downloaded": "Pobrano",
|
||||
"Deleted": "Usunięto"
|
||||
"Deleted": "Usunięto",
|
||||
"Note:": "Notatka:",
|
||||
"Time:": "Czas:",
|
||||
"Format Options": "Opcje formatu",
|
||||
"Export Date": "Data eksportu",
|
||||
"Chapter Titles": "Tytuły rozdziałów",
|
||||
"Chapter Separator": "Separator rozdziałów",
|
||||
"Highlights": "Zaznaczenia",
|
||||
"Note Date": "Data notatki",
|
||||
"Advanced": "Zaawansowane",
|
||||
"Hide": "Ukryj",
|
||||
"Show": "Pokaż",
|
||||
"Use Custom Template": "Użyj własnego szablonu",
|
||||
"Export Template": "Szablon eksportu",
|
||||
"Template Syntax:": "Składnia szablonu:",
|
||||
"Insert value": "Wstaw wartość",
|
||||
"Format date (locale)": "Formatuj datę (lokalizacja)",
|
||||
"Format date (custom)": "Formatuj datę (własny)",
|
||||
"Conditional": "Warunkowy",
|
||||
"Loop": "Pętla",
|
||||
"Available Variables:": "Dostępne zmienne:",
|
||||
"Book title": "Tytuł książki",
|
||||
"Book author": "Autor książki",
|
||||
"Export date": "Data eksportu",
|
||||
"Array of chapters": "Tablica rozdziałów",
|
||||
"Chapter title": "Tytuł rozdziału",
|
||||
"Array of annotations": "Tablica adnotacji",
|
||||
"Highlighted text": "Zaznaczony tekst",
|
||||
"Annotation note": "Notatka adnotacji",
|
||||
"Update time": "Czas aktualizacji",
|
||||
"Date Format Tokens:": "Tokeny formatu daty:",
|
||||
"Year (4 digits)": "Rok (4 cyfry)",
|
||||
"Month (01-12)": "Miesiąc (01-12)",
|
||||
"Day (01-31)": "Dzień (01-31)",
|
||||
"Hour (00-23)": "Godzina (00-23)",
|
||||
"Minute (00-59)": "Minuta (00-59)",
|
||||
"Second (00-59)": "Sekunda (00-59)",
|
||||
"Show Source": "Pokaż źródło",
|
||||
"No content to preview": "Brak treści do podglądu",
|
||||
"Export": "Eksportuj"
|
||||
}
|
||||
|
||||
@@ -859,5 +859,44 @@
|
||||
"Only for TTS:": "Apenas para TTS:",
|
||||
"Uploaded": "Enviado",
|
||||
"Downloaded": "Baixado",
|
||||
"Deleted": "Excluído"
|
||||
"Deleted": "Excluído",
|
||||
"Note:": "Nota:",
|
||||
"Time:": "Hora:",
|
||||
"Format Options": "Opções de formato",
|
||||
"Export Date": "Data de exportação",
|
||||
"Chapter Titles": "Títulos dos capítulos",
|
||||
"Chapter Separator": "Separador de capítulos",
|
||||
"Highlights": "Destaques",
|
||||
"Note Date": "Data da nota",
|
||||
"Advanced": "Avançado",
|
||||
"Hide": "Ocultar",
|
||||
"Show": "Mostrar",
|
||||
"Use Custom Template": "Usar modelo personalizado",
|
||||
"Export Template": "Modelo de exportação",
|
||||
"Template Syntax:": "Sintaxe do modelo:",
|
||||
"Insert value": "Inserir valor",
|
||||
"Format date (locale)": "Formatar data (local)",
|
||||
"Format date (custom)": "Formatar data (personalizado)",
|
||||
"Conditional": "Condicional",
|
||||
"Loop": "Loop",
|
||||
"Available Variables:": "Variáveis disponíveis:",
|
||||
"Book title": "Título do livro",
|
||||
"Book author": "Autor do livro",
|
||||
"Export date": "Data de exportação",
|
||||
"Array of chapters": "Lista de capítulos",
|
||||
"Chapter title": "Título do capítulo",
|
||||
"Array of annotations": "Lista de anotações",
|
||||
"Highlighted text": "Texto destacado",
|
||||
"Annotation note": "Nota de anotação",
|
||||
"Update time": "Hora de atualização",
|
||||
"Date Format Tokens:": "Tokens de formato de data:",
|
||||
"Year (4 digits)": "Ano (4 dígitos)",
|
||||
"Month (01-12)": "Mês (01-12)",
|
||||
"Day (01-31)": "Dia (01-31)",
|
||||
"Hour (00-23)": "Hora (00-23)",
|
||||
"Minute (00-59)": "Minuto (00-59)",
|
||||
"Second (00-59)": "Segundo (00-59)",
|
||||
"Show Source": "Mostrar fonte",
|
||||
"No content to preview": "Sem conteúdo para visualizar",
|
||||
"Export": "Exportar"
|
||||
}
|
||||
|
||||
@@ -869,5 +869,44 @@
|
||||
"Only for TTS:": "Только для TTS:",
|
||||
"Uploaded": "Загружено",
|
||||
"Downloaded": "Скачано",
|
||||
"Deleted": "Удалено"
|
||||
"Deleted": "Удалено",
|
||||
"Note:": "Примечание:",
|
||||
"Time:": "Время:",
|
||||
"Format Options": "Параметры формата",
|
||||
"Export Date": "Дата экспорта",
|
||||
"Chapter Titles": "Названия глав",
|
||||
"Chapter Separator": "Разделитель глав",
|
||||
"Highlights": "Выделения",
|
||||
"Note Date": "Дата примечания",
|
||||
"Advanced": "Дополнительно",
|
||||
"Hide": "Скрыть",
|
||||
"Show": "Показать",
|
||||
"Use Custom Template": "Использовать свой шаблон",
|
||||
"Export Template": "Шаблон экспорта",
|
||||
"Template Syntax:": "Синтаксис шаблона:",
|
||||
"Insert value": "Вставить значение",
|
||||
"Format date (locale)": "Форматировать дату (локаль)",
|
||||
"Format date (custom)": "Форматировать дату (свой)",
|
||||
"Conditional": "Условный",
|
||||
"Loop": "Цикл",
|
||||
"Available Variables:": "Доступные переменные:",
|
||||
"Book title": "Название книги",
|
||||
"Book author": "Автор книги",
|
||||
"Export date": "Дата экспорта",
|
||||
"Array of chapters": "Массив глав",
|
||||
"Chapter title": "Название главы",
|
||||
"Array of annotations": "Массив примечаний",
|
||||
"Highlighted text": "Выделенный текст",
|
||||
"Annotation note": "Примечание аннотации",
|
||||
"Update time": "Время обновления",
|
||||
"Date Format Tokens:": "Токены формата даты:",
|
||||
"Year (4 digits)": "Год (4 цифры)",
|
||||
"Month (01-12)": "Месяц (01-12)",
|
||||
"Day (01-31)": "День (01-31)",
|
||||
"Hour (00-23)": "Час (00-23)",
|
||||
"Minute (00-59)": "Минута (00-59)",
|
||||
"Second (00-59)": "Секунда (00-59)",
|
||||
"Show Source": "Показать источник",
|
||||
"No content to preview": "Нет содержимого для просмотра",
|
||||
"Export": "Экспортировать"
|
||||
}
|
||||
|
||||
@@ -849,5 +849,44 @@
|
||||
"Only for TTS:": "TTS සඳහා පමණක්:",
|
||||
"Uploaded": "උඩුගත කරන ලදී",
|
||||
"Downloaded": "බාගත කරන ලදී",
|
||||
"Deleted": "මකා දමන ලදී"
|
||||
"Deleted": "මකා දමන ලදී",
|
||||
"Note:": "සටහන:",
|
||||
"Time:": "කාලය:",
|
||||
"Format Options": "ආකෘති විකල්ප",
|
||||
"Export Date": "අපනයන දිනය",
|
||||
"Chapter Titles": "කොටස් මාතෘකා",
|
||||
"Chapter Separator": "කොටස් වෙන්කරු",
|
||||
"Highlights": "ඉස්මතු කිරීම්",
|
||||
"Note Date": "සටහන දිනය",
|
||||
"Advanced": "උසස්",
|
||||
"Hide": "සඟවන්න",
|
||||
"Show": "පෙන්වන්න",
|
||||
"Use Custom Template": "අභිරුචි සැකිල්ල භාවිතා කරන්න",
|
||||
"Export Template": "අපනයන සැකිල්ල",
|
||||
"Template Syntax:": "සැකිල්ලේ ව්යවස්ථාව:",
|
||||
"Insert value": "වටිනාකම ඇතුළත් කරන්න",
|
||||
"Format date (locale)": "දිනය ආකෘතිය (දේශීය)",
|
||||
"Format date (custom)": "අභිරුචි දිනය ආකෘතිය",
|
||||
"Conditional": "ශර්තමය",
|
||||
"Loop": "ලූප්",
|
||||
"Available Variables:": "ලබා ගත හැකි විචල්ය:",
|
||||
"Book title": "පොත් මාතෘකාව",
|
||||
"Book author": "පොත් රචකයා",
|
||||
"Export date": "අපනයන දිනය",
|
||||
"Array of chapters": "කොටස් අරය",
|
||||
"Chapter title": "කොටස් මාතෘකාව",
|
||||
"Array of annotations": "අනුසටහන් අරය",
|
||||
"Highlighted text": "ඉස්මතු කළ පෙළ",
|
||||
"Annotation note": "අනුසටහන් සටහන",
|
||||
"Update time": "යාවත්කාලීන කාලය",
|
||||
"Date Format Tokens:": "දිනය ආකෘති ටෝකන:",
|
||||
"Year (4 digits)": "වසර (අංක 4)",
|
||||
"Month (01-12)": "මාසය (01-12)",
|
||||
"Day (01-31)": "දින (01-31)",
|
||||
"Hour (00-23)": "පැය (00-23)",
|
||||
"Minute (00-59)": "මිනිත්තු (00-59)",
|
||||
"Second (00-59)": "තත්පර (00-59)",
|
||||
"Show Source": "මූලාශ්රය පෙන්වන්න",
|
||||
"No content to preview": "පෙරදසුන සඳහා අන්තර්ගතයක් නැත",
|
||||
"Export": "අපනයනය කරන්න"
|
||||
}
|
||||
|
||||
@@ -849,5 +849,44 @@
|
||||
"Only for TTS:": "Endast för TTS:",
|
||||
"Uploaded": "Uppladdad",
|
||||
"Downloaded": "Nedladdad",
|
||||
"Deleted": "Borttagen"
|
||||
"Deleted": "Borttagen",
|
||||
"Note:": "Anteckning:",
|
||||
"Time:": "Tid:",
|
||||
"Format Options": "Formatalternativ",
|
||||
"Export Date": "Exportdatum",
|
||||
"Chapter Titles": "Kapiteltitlar",
|
||||
"Chapter Separator": "Kapitelavgränsare",
|
||||
"Highlights": "Markeringar",
|
||||
"Note Date": "Anteckningsdatum",
|
||||
"Advanced": "Avancerat",
|
||||
"Hide": "Dölj",
|
||||
"Show": "Visa",
|
||||
"Use Custom Template": "Använd anpassad mall",
|
||||
"Export Template": "Exportmall",
|
||||
"Template Syntax:": "Mallsyntax:",
|
||||
"Insert value": "Infoga värde",
|
||||
"Format date (locale)": "Formatera datum (lokal)",
|
||||
"Format date (custom)": "Formatera datum (anpassad)",
|
||||
"Conditional": "Villkorlig",
|
||||
"Loop": "Loop",
|
||||
"Available Variables:": "Tillgängliga variabler:",
|
||||
"Book title": "Boktitel",
|
||||
"Book author": "Bokförfattare",
|
||||
"Export date": "Exportdatum",
|
||||
"Array of chapters": "Lista med kapitel",
|
||||
"Chapter title": "Kapiteltitel",
|
||||
"Array of annotations": "Lista med anteckningar",
|
||||
"Highlighted text": "Markerad text",
|
||||
"Annotation note": "Anteckningsnotering",
|
||||
"Update time": "Uppdateringstid",
|
||||
"Date Format Tokens:": "Datumformattecken:",
|
||||
"Year (4 digits)": "År (4 siffror)",
|
||||
"Month (01-12)": "Månad (01-12)",
|
||||
"Day (01-31)": "Dag (01-31)",
|
||||
"Hour (00-23)": "Timme (00-23)",
|
||||
"Minute (00-59)": "Minut (00-59)",
|
||||
"Second (00-59)": "Sekund (00-59)",
|
||||
"Show Source": "Visa källa",
|
||||
"No content to preview": "Inget innehåll att förhandsgranska",
|
||||
"Export": "Exportera"
|
||||
}
|
||||
|
||||
@@ -849,5 +849,44 @@
|
||||
"Only for TTS:": "TTS க்கு மட்டும்:",
|
||||
"Uploaded": "பதிவேற்றப்பட்டது",
|
||||
"Downloaded": "பதிவிறக்கப்பட்டது",
|
||||
"Deleted": "நீக்கப்பட்டது"
|
||||
"Deleted": "நீக்கப்பட்டது",
|
||||
"Note:": "குறிப்பு:",
|
||||
"Time:": "நேரம்:",
|
||||
"Format Options": "வடிவமைப்பு விருப்பங்கள்",
|
||||
"Export Date": "ஏற்றுமதி தேதி",
|
||||
"Chapter Titles": "அத்தியாயத் தலைப்புகள்",
|
||||
"Chapter Separator": "அத்தியாய பிரிப்பான்",
|
||||
"Highlights": "சிறப்பம்சங்கள்",
|
||||
"Note Date": "குறிப்பு தேதி",
|
||||
"Advanced": "மேம்பட்ட",
|
||||
"Hide": "மறை",
|
||||
"Show": "காட்டு",
|
||||
"Use Custom Template": "தனிப்பயன் வார்ப்புரு பயன்படுத்து",
|
||||
"Export Template": "ஏற்றுமதி வார்ப்புரு",
|
||||
"Template Syntax:": "வார்ப்புரு தொடரியல்:",
|
||||
"Insert value": "மதிப்பு செருகு",
|
||||
"Format date (locale)": "தேதி வடிவமைப்பு (உள்ளூர்)",
|
||||
"Format date (custom)": "தேதி வடிவமைப்பு (தனிப்பயன்)",
|
||||
"Conditional": "நிபந்தனை",
|
||||
"Loop": "சுழற்சி",
|
||||
"Available Variables:": "கிடைக்கும் மாறிகள்:",
|
||||
"Book title": "புத்தகத் தலைப்பு",
|
||||
"Book author": "புத்தக ஆசிரியர்",
|
||||
"Export date": "ஏற்றுமதி தேதி",
|
||||
"Array of chapters": "அத்தியாயங்களின் பட்டியல்",
|
||||
"Chapter title": "அத்தியாய தலைப்பு",
|
||||
"Array of annotations": "குறிப்புகளின் பட்டியல்",
|
||||
"Highlighted text": "முன்னிலைப்படுத்தப்பட்ட உரை",
|
||||
"Annotation note": "குறிப்பு குறிப்பு",
|
||||
"Update time": "புதுப்பிப்பு நேரம்",
|
||||
"Date Format Tokens:": "தேதி வடிவமைப்பு டோக்கன்கள்:",
|
||||
"Year (4 digits)": "ஆண்டு (4 இலக்கங்கள்)",
|
||||
"Month (01-12)": "மாதம் (01-12)",
|
||||
"Day (01-31)": "நாள் (01-31)",
|
||||
"Hour (00-23)": "மணி (00-23)",
|
||||
"Minute (00-59)": "நிமிடம் (00-59)",
|
||||
"Second (00-59)": "விநாடி (00-59)",
|
||||
"Show Source": "மூலத்தைக் காட்டு",
|
||||
"No content to preview": "முன்னோட்டத்திற்கு உள்ளடக்கம் இல்லை",
|
||||
"Export": "ஏற்றுமதி"
|
||||
}
|
||||
|
||||
@@ -839,5 +839,44 @@
|
||||
"Only for TTS:": "สำหรับ TTS เท่านั้น:",
|
||||
"Uploaded": "อัปโหลดแล้ว",
|
||||
"Downloaded": "ดาวน์โหลดแล้ว",
|
||||
"Deleted": "ลบแล้ว"
|
||||
"Deleted": "ลบแล้ว",
|
||||
"Note:": "หมายเหตุ:",
|
||||
"Time:": "เวลา:",
|
||||
"Format Options": "ตัวเลือกรูปแบบ",
|
||||
"Export Date": "วันที่ส่งออก",
|
||||
"Chapter Titles": "ชื่อบท",
|
||||
"Chapter Separator": "ตัวคั่นบท",
|
||||
"Highlights": "ไฮไลต์",
|
||||
"Note Date": "วันที่หมายเหตุ",
|
||||
"Advanced": "ขั้นสูง",
|
||||
"Hide": "ซ่อน",
|
||||
"Show": "แสดง",
|
||||
"Use Custom Template": "ใช้เทมเพลตที่กำหนดเอง",
|
||||
"Export Template": "เทมเพลตส่งออก",
|
||||
"Template Syntax:": "ไวยากรณ์เทมเพลต:",
|
||||
"Insert value": "แทรกค่า",
|
||||
"Format date (locale)": "จัดรูปแบบวันที่ (ท้องถิ่น)",
|
||||
"Format date (custom)": "จัดรูปแบบวันที่ (กำหนดเอง)",
|
||||
"Conditional": "เงื่อนไข",
|
||||
"Loop": "ลูป",
|
||||
"Available Variables:": "ตัวแปรที่พร้อมใช้งาน:",
|
||||
"Book title": "ชื่อหนังสือ",
|
||||
"Book author": "ผู้แต่งหนังสือ",
|
||||
"Export date": "วันที่ส่งออก",
|
||||
"Array of chapters": "อาร์เรย์ของบท",
|
||||
"Chapter title": "ชื่อบท",
|
||||
"Array of annotations": "อาร์เรย์ของคำอธิบาย",
|
||||
"Highlighted text": "ข้อความที่ไฮไลต์",
|
||||
"Annotation note": "หมายเหตุคำอธิบาย",
|
||||
"Update time": "เวลาอัปเดต",
|
||||
"Date Format Tokens:": "โทเค็นรูปแบบวันที่:",
|
||||
"Year (4 digits)": "ปี (4 หลัก)",
|
||||
"Month (01-12)": "เดือน (01-12)",
|
||||
"Day (01-31)": "วัน (01-31)",
|
||||
"Hour (00-23)": "ชั่วโมง (00-23)",
|
||||
"Minute (00-59)": "นาที (00-59)",
|
||||
"Second (00-59)": "วินาที (00-59)",
|
||||
"Show Source": "แสดงซอร์ส",
|
||||
"No content to preview": "ไม่มีเนื้อหาให้แสดงตัวอย่าง",
|
||||
"Export": "ส่งออก"
|
||||
}
|
||||
|
||||
@@ -849,5 +849,44 @@
|
||||
"Only for TTS:": "Sadece TTS için:",
|
||||
"Uploaded": "Yüklendi",
|
||||
"Downloaded": "İndirildi",
|
||||
"Deleted": "Silindi"
|
||||
"Deleted": "Silindi",
|
||||
"Note:": "Not:",
|
||||
"Time:": "Saat:",
|
||||
"Format Options": "Format Seçenekleri",
|
||||
"Export Date": "Dışa Aktarma Tarihi",
|
||||
"Chapter Titles": "Bölüm Başlıkları",
|
||||
"Chapter Separator": "Bölüm Ayracı",
|
||||
"Highlights": "Vurgular",
|
||||
"Note Date": "Not Tarihi",
|
||||
"Advanced": "Gelişmiş",
|
||||
"Hide": "Gizle",
|
||||
"Show": "Göster",
|
||||
"Use Custom Template": "Özel Şablon Kullan",
|
||||
"Export Template": "Dışa Aktarma Şablonu",
|
||||
"Template Syntax:": "Şablon Sözdizimi:",
|
||||
"Insert value": "Değer ekle",
|
||||
"Format date (locale)": "Tarihi biçimlendir (yerel)",
|
||||
"Format date (custom)": "Tarihi biçimlendir (özel)",
|
||||
"Conditional": "Koşullu",
|
||||
"Loop": "Döngü",
|
||||
"Available Variables:": "Kullanılabilir Değişkenler:",
|
||||
"Book title": "Kitap başlığı",
|
||||
"Book author": "Kitap yazarı",
|
||||
"Export date": "Dışa aktarma tarihi",
|
||||
"Array of chapters": "Bölümler dizisi",
|
||||
"Chapter title": "Bölüm başlığı",
|
||||
"Array of annotations": "Notlar dizisi",
|
||||
"Highlighted text": "Vurgulanan metin",
|
||||
"Annotation note": "Not açıklaması",
|
||||
"Update time": "Güncelleme zamanı",
|
||||
"Date Format Tokens:": "Tarih Biçimi Belirteçleri:",
|
||||
"Year (4 digits)": "Yıl (4 basamak)",
|
||||
"Month (01-12)": "Ay (01-12)",
|
||||
"Day (01-31)": "Gün (01-31)",
|
||||
"Hour (00-23)": "Saat (00-23)",
|
||||
"Minute (00-59)": "Dakika (00-59)",
|
||||
"Second (00-59)": "Saniye (00-59)",
|
||||
"Show Source": "Kaynağı Göster",
|
||||
"No content to preview": "Önizlenecek içerik yok",
|
||||
"Export": "Dışa Aktar"
|
||||
}
|
||||
|
||||
@@ -869,5 +869,44 @@
|
||||
"Only for TTS:": "Тільки для TTS:",
|
||||
"Uploaded": "Завантажено",
|
||||
"Downloaded": "Звантажено",
|
||||
"Deleted": "Видалено"
|
||||
"Deleted": "Видалено",
|
||||
"Note:": "Примітка:",
|
||||
"Time:": "Час:",
|
||||
"Format Options": "Параметри формату",
|
||||
"Export Date": "Дата експорту",
|
||||
"Chapter Titles": "Назви розділів",
|
||||
"Chapter Separator": "Роздільник розділів",
|
||||
"Highlights": "Виділення",
|
||||
"Note Date": "Дата примітки",
|
||||
"Advanced": "Розширені",
|
||||
"Hide": "Сховати",
|
||||
"Show": "Показати",
|
||||
"Use Custom Template": "Використовувати власний шаблон",
|
||||
"Export Template": "Шаблон експорту",
|
||||
"Template Syntax:": "Синтаксис шаблону:",
|
||||
"Insert value": "Вставити значення",
|
||||
"Format date (locale)": "Форматувати дату (локаль)",
|
||||
"Format date (custom)": "Форматувати дату (власний)",
|
||||
"Conditional": "Умовний",
|
||||
"Loop": "Цикл",
|
||||
"Available Variables:": "Доступні змінні:",
|
||||
"Book title": "Назва книги",
|
||||
"Book author": "Автор книги",
|
||||
"Export date": "Дата експорту",
|
||||
"Array of chapters": "Масив розділів",
|
||||
"Chapter title": "Назва розділу",
|
||||
"Array of annotations": "Масив приміток",
|
||||
"Highlighted text": "Виділений текст",
|
||||
"Annotation note": "Примітка анотації",
|
||||
"Update time": "Час оновлення",
|
||||
"Date Format Tokens:": "Токени формату дати:",
|
||||
"Year (4 digits)": "Рік (4 цифри)",
|
||||
"Month (01-12)": "Місяць (01-12)",
|
||||
"Day (01-31)": "День (01-31)",
|
||||
"Hour (00-23)": "Година (00-23)",
|
||||
"Minute (00-59)": "Хвилина (00-59)",
|
||||
"Second (00-59)": "Секунда (00-59)",
|
||||
"Show Source": "Показати джерело",
|
||||
"No content to preview": "Немає вмісту для перегляду",
|
||||
"Export": "Експортувати"
|
||||
}
|
||||
|
||||
@@ -839,5 +839,44 @@
|
||||
"Only for TTS:": "Chỉ dành cho TTS:",
|
||||
"Uploaded": "Đã tải lên",
|
||||
"Downloaded": "Đã tải xuống",
|
||||
"Deleted": "Đã xóa"
|
||||
"Deleted": "Đã xóa",
|
||||
"Note:": "Ghi chú:",
|
||||
"Time:": "Thời gian:",
|
||||
"Format Options": "Tùy chọn định dạng",
|
||||
"Export Date": "Ngày xuất",
|
||||
"Chapter Titles": "Tiêu đề chương",
|
||||
"Chapter Separator": "Dấu phân cách chương",
|
||||
"Highlights": "Đánh dấu",
|
||||
"Note Date": "Ngày ghi chú",
|
||||
"Advanced": "Nâng cao",
|
||||
"Hide": "Ẩn",
|
||||
"Show": "Hiển thị",
|
||||
"Use Custom Template": "Sử dụng mẫu tùy chỉnh",
|
||||
"Export Template": "Mẫu xuất",
|
||||
"Template Syntax:": "Cú pháp mẫu:",
|
||||
"Insert value": "Chèn giá trị",
|
||||
"Format date (locale)": "Định dạng ngày (địa phương)",
|
||||
"Format date (custom)": "Định dạng ngày (tùy chỉnh)",
|
||||
"Conditional": "Điều kiện",
|
||||
"Loop": "Vòng lặp",
|
||||
"Available Variables:": "Biến có sẵn:",
|
||||
"Book title": "Tiêu đề sách",
|
||||
"Book author": "Tác giả sách",
|
||||
"Export date": "Ngày xuất",
|
||||
"Array of chapters": "Danh sách chương",
|
||||
"Chapter title": "Tiêu đề chương",
|
||||
"Array of annotations": "Danh sách chú thích",
|
||||
"Highlighted text": "Văn bản được đánh dấu",
|
||||
"Annotation note": "Ghi chú chú thích",
|
||||
"Update time": "Thời gian cập nhật",
|
||||
"Date Format Tokens:": "Token định dạng ngày:",
|
||||
"Year (4 digits)": "Năm (4 chữ số)",
|
||||
"Month (01-12)": "Tháng (01-12)",
|
||||
"Day (01-31)": "Ngày (01-31)",
|
||||
"Hour (00-23)": "Giờ (00-23)",
|
||||
"Minute (00-59)": "Phút (00-59)",
|
||||
"Second (00-59)": "Giây (00-59)",
|
||||
"Show Source": "Hiển thị nguồn",
|
||||
"No content to preview": "Không có nội dung để xem trước",
|
||||
"Export": "Xuất"
|
||||
}
|
||||
|
||||
@@ -839,5 +839,44 @@
|
||||
"Date Published": "出版日期",
|
||||
"Uploaded": "已上传",
|
||||
"Downloaded": "已下载",
|
||||
"Deleted": "已删除"
|
||||
"Deleted": "已删除",
|
||||
"Note:": "笔记:",
|
||||
"Time:": "时间:",
|
||||
"Format Options": "格式选项",
|
||||
"Export Date": "导出日期",
|
||||
"Chapter Titles": "章节标题",
|
||||
"Chapter Separator": "章节分隔符",
|
||||
"Highlights": "高亮",
|
||||
"Note Date": "笔记日期",
|
||||
"Advanced": "高级",
|
||||
"Hide": "隐藏",
|
||||
"Show": "显示",
|
||||
"Use Custom Template": "使用自定义模板",
|
||||
"Export Template": "导出模板",
|
||||
"Template Syntax:": "模板语法:",
|
||||
"Insert value": "插入值",
|
||||
"Format date (locale)": "格式化日期(区域)",
|
||||
"Format date (custom)": "格式化日期(自定义)",
|
||||
"Conditional": "条件",
|
||||
"Loop": "循环",
|
||||
"Available Variables:": "可用变量:",
|
||||
"Book title": "书名",
|
||||
"Book author": "作者",
|
||||
"Export date": "导出日期",
|
||||
"Array of chapters": "章节数组",
|
||||
"Chapter title": "章节标题",
|
||||
"Array of annotations": "标注数组",
|
||||
"Highlighted text": "高亮文本",
|
||||
"Annotation note": "标注笔记",
|
||||
"Update time": "更新时间",
|
||||
"Date Format Tokens:": "日期格式标记:",
|
||||
"Year (4 digits)": "年(4位)",
|
||||
"Month (01-12)": "月(01-12)",
|
||||
"Day (01-31)": "日(01-31)",
|
||||
"Hour (00-23)": "时(00-23)",
|
||||
"Minute (00-59)": "分(00-59)",
|
||||
"Second (00-59)": "秒(00-59)",
|
||||
"Show Source": "显示源码",
|
||||
"No content to preview": "无内容可预览",
|
||||
"Export": "导出"
|
||||
}
|
||||
|
||||
@@ -839,5 +839,44 @@
|
||||
"Only for TTS:": "僅用於TTS:",
|
||||
"Uploaded": "已上傳",
|
||||
"Downloaded": "已下載",
|
||||
"Deleted": "已刪除"
|
||||
"Deleted": "已刪除",
|
||||
"Note:": "筆記:",
|
||||
"Time:": "時間:",
|
||||
"Format Options": "格式選項",
|
||||
"Export Date": "匯出日期",
|
||||
"Chapter Titles": "章節標題",
|
||||
"Chapter Separator": "章節分隔符",
|
||||
"Highlights": "標記",
|
||||
"Note Date": "筆記日期",
|
||||
"Advanced": "進階",
|
||||
"Hide": "隱藏",
|
||||
"Show": "顯示",
|
||||
"Use Custom Template": "使用自訂模板",
|
||||
"Export Template": "匯出模板",
|
||||
"Template Syntax:": "模板語法:",
|
||||
"Insert value": "插入值",
|
||||
"Format date (locale)": "格式化日期(區域)",
|
||||
"Format date (custom)": "格式化日期(自訂)",
|
||||
"Conditional": "條件",
|
||||
"Loop": "迴圈",
|
||||
"Available Variables:": "可用變數:",
|
||||
"Book title": "書名",
|
||||
"Book author": "作者",
|
||||
"Export date": "匯出日期",
|
||||
"Array of chapters": "章節陣列",
|
||||
"Chapter title": "章節標題",
|
||||
"Array of annotations": "標註陣列",
|
||||
"Highlighted text": "標記文字",
|
||||
"Annotation note": "標註筆記",
|
||||
"Update time": "更新時間",
|
||||
"Date Format Tokens:": "日期格式標記:",
|
||||
"Year (4 digits)": "年(4位)",
|
||||
"Month (01-12)": "月(01-12)",
|
||||
"Day (01-31)": "日(01-31)",
|
||||
"Hour (00-23)": "時(00-23)",
|
||||
"Minute (00-59)": "分(00-59)",
|
||||
"Second (00-59)": "秒(00-59)",
|
||||
"Show Source": "顯示原始碼",
|
||||
"No content to preview": "無內容可預覽",
|
||||
"Export": "匯出"
|
||||
}
|
||||
|
||||
@@ -38,6 +38,7 @@ import WikipediaPopup from './WikipediaPopup';
|
||||
import TranslatorPopup from './TranslatorPopup';
|
||||
import useShortcuts from '@/hooks/useShortcuts';
|
||||
import ProofreadPopup from './ProofreadPopup';
|
||||
import ExportMarkdownDialog from './ExportMarkdownDialog';
|
||||
|
||||
const Annotator: React.FC<{ bookKey: string }> = ({ bookKey }) => {
|
||||
const _ = useTranslation();
|
||||
@@ -76,6 +77,11 @@ const Annotator: React.FC<{ bookKey: string }> = ({ bookKey }) => {
|
||||
const [showAnnotationNotes, setShowAnnotationNotes] = useState(false);
|
||||
const [annotationNotes, setAnnotationNotes] = useState<BookNote[]>([]);
|
||||
const [editingAnnotation, setEditingAnnotation] = useState<BookNote | null>(null);
|
||||
const [showExportDialog, setShowExportDialog] = useState(false);
|
||||
const [exportData, setExportData] = useState<{
|
||||
booknotes: BookNote[];
|
||||
booknoteGroups: { [href: string]: BooknoteGroup };
|
||||
} | null>(null);
|
||||
|
||||
const [selectedStyle, setSelectedStyle] = useState<HighlightStyle>(
|
||||
settings.globalReadSettings.highlightStyle,
|
||||
@@ -765,6 +771,8 @@ const Annotator: React.FC<{ bookKey: string }> = ({ bookKey }) => {
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
// Organize booknotes into groups by chapter
|
||||
const booknoteGroups: { [href: string]: BooknoteGroup } = {};
|
||||
for (const booknote of booknotes) {
|
||||
const tocItem = findTocItemBS(bookDoc.toc ?? [], booknote.cfi);
|
||||
@@ -783,36 +791,14 @@ const Annotator: React.FC<{ bookKey: string }> = ({ bookKey }) => {
|
||||
});
|
||||
});
|
||||
|
||||
const sortedGroups = Object.values(booknoteGroups).sort((a, b) => {
|
||||
return a.id - b.id;
|
||||
});
|
||||
setExportData({ booknotes, booknoteGroups });
|
||||
setShowExportDialog(true);
|
||||
};
|
||||
|
||||
const lines: string[] = [];
|
||||
lines.push(`# ${book.title}`);
|
||||
lines.push(`**${_('Author')}**: ${book.author || ''}`);
|
||||
lines.push('');
|
||||
lines.push(`**${_('Exported from Readest')}**: ${new Date().toISOString().slice(0, 10)}`);
|
||||
lines.push('');
|
||||
lines.push('---');
|
||||
lines.push('');
|
||||
lines.push(`## ${_('Highlights & Annotations')}`);
|
||||
lines.push('');
|
||||
const handleConfirmExport = async (markdownContent: string) => {
|
||||
const { book } = bookData;
|
||||
if (!book) return;
|
||||
|
||||
for (const group of sortedGroups) {
|
||||
const chapterTitle = group.label || _('Untitled');
|
||||
lines.push(`### ${chapterTitle}`);
|
||||
for (const note of group.booknotes) {
|
||||
lines.push(`> "${note.text}"`);
|
||||
if (note.note) {
|
||||
lines.push(`**${_('Note')}**:: ${note.note}`);
|
||||
}
|
||||
lines.push('');
|
||||
}
|
||||
lines.push('---');
|
||||
lines.push('');
|
||||
}
|
||||
|
||||
const markdownContent = lines.join('\n');
|
||||
setTimeout(() => {
|
||||
// Delay to ensure it won't be overridden by system clipboard actions
|
||||
navigator.clipboard?.writeText(markdownContent);
|
||||
@@ -825,6 +811,14 @@ const Annotator: React.FC<{ bookKey: string }> = ({ bookKey }) => {
|
||||
message: saved ? _('Exported successfully') : _('Copied to clipboard'),
|
||||
timeout: 2000,
|
||||
});
|
||||
|
||||
setShowExportDialog(false);
|
||||
setExportData(null);
|
||||
};
|
||||
|
||||
const handleCancelExport = () => {
|
||||
setShowExportDialog(false);
|
||||
setExportData(null);
|
||||
};
|
||||
|
||||
const selectionAnnotated = selection?.annotated;
|
||||
@@ -953,6 +947,18 @@ const Annotator: React.FC<{ bookKey: string }> = ({ bookKey }) => {
|
||||
onStartEdit={handleStartEditAnnotation}
|
||||
/>
|
||||
)}
|
||||
{showExportDialog && exportData && bookData.book && (
|
||||
<ExportMarkdownDialog
|
||||
bookKey={bookKey}
|
||||
isOpen={showExportDialog}
|
||||
bookTitle={bookData.book.title}
|
||||
bookAuthor={bookData.book.author || ''}
|
||||
booknotes={exportData.booknotes}
|
||||
booknoteGroups={exportData.booknoteGroups}
|
||||
onCancel={handleCancelExport}
|
||||
onExport={handleConfirmExport}
|
||||
/>
|
||||
)}
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
||||
@@ -0,0 +1,636 @@
|
||||
import clsx from 'clsx';
|
||||
import React, { useState, useMemo, useEffect } from 'react';
|
||||
import { marked } from 'marked';
|
||||
import { BookNote, BooknoteGroup, NoteExportConfig } from '@/types/book';
|
||||
import { useTranslation } from '@/hooks/useTranslation';
|
||||
import Dialog from '@/components/Dialog';
|
||||
import { useReaderStore } from '@/store/readerStore';
|
||||
import { DEFAULT_NOTE_EXPORT_CONFIG } from '@/services/constants';
|
||||
import { saveViewSettings } from '@/helpers/settings';
|
||||
import { useEnv } from '@/context/EnvContext';
|
||||
|
||||
interface ExportMarkdownDialogProps {
|
||||
bookKey: string;
|
||||
isOpen: boolean;
|
||||
bookTitle: string;
|
||||
bookAuthor: string;
|
||||
booknotes: BookNote[];
|
||||
booknoteGroups: { [href: string]: BooknoteGroup };
|
||||
onCancel: () => void;
|
||||
onExport: (markdown: string) => void;
|
||||
}
|
||||
|
||||
type TemplateData = {
|
||||
title: string;
|
||||
author: string;
|
||||
exportDate: string;
|
||||
chapters: {
|
||||
title: string;
|
||||
annotations: {
|
||||
text: string;
|
||||
note?: string;
|
||||
timestamp?: number;
|
||||
}[];
|
||||
}[];
|
||||
};
|
||||
|
||||
type TemplateVariable = { [key: string]: number | string | TemplateVariable | TemplateVariable[] };
|
||||
|
||||
const renderTemplate = (template: string, data: TemplateData): string => {
|
||||
const applyFilter = (
|
||||
value: TemplateVariable,
|
||||
filter: string,
|
||||
filterArg?: string,
|
||||
): TemplateVariable | string => {
|
||||
if (filter === 'date') {
|
||||
if (typeof value === 'number') {
|
||||
const date = new Date(value);
|
||||
if (filterArg) {
|
||||
const format = filterArg;
|
||||
return format
|
||||
.replace('%Y', date.getFullYear().toString())
|
||||
.replace('%m', String(date.getMonth() + 1).padStart(2, '0'))
|
||||
.replace('%d', String(date.getDate()).padStart(2, '0'))
|
||||
.replace('%H', String(date.getHours()).padStart(2, '0'))
|
||||
.replace('%M', String(date.getMinutes()).padStart(2, '0'))
|
||||
.replace('%S', String(date.getSeconds()).padStart(2, '0'));
|
||||
}
|
||||
return date.toLocaleString();
|
||||
}
|
||||
return value;
|
||||
}
|
||||
return value;
|
||||
};
|
||||
|
||||
const getValue = (path: string, context: TemplateData) => {
|
||||
const keys = path.trim().split('.');
|
||||
let value = context as TemplateVariable;
|
||||
for (const key of keys) {
|
||||
value = value?.[key] as TemplateVariable;
|
||||
}
|
||||
return value;
|
||||
};
|
||||
|
||||
let result = template;
|
||||
|
||||
// Process {% for %} loops - find first occurrence and recurse
|
||||
const forMatch = result.match(/\{%\s*for\s+(\w+)\s+in\s+(\w+(?:\.\w+)*)\s*%\}/);
|
||||
if (forMatch) {
|
||||
const itemName = forMatch[1]!;
|
||||
const collectionPath = forMatch[2]!;
|
||||
|
||||
// Find matching {% endfor %} by counting nesting
|
||||
let depth = 0;
|
||||
let endPos = -1;
|
||||
const startPos = forMatch.index! + forMatch[0].length;
|
||||
|
||||
for (let i = startPos; i < result.length; i++) {
|
||||
const remaining = result.slice(i);
|
||||
if (remaining.startsWith('{% for ')) {
|
||||
depth++;
|
||||
i += 6; // skip past "{% for"
|
||||
} else if (remaining.startsWith('{% endfor %}')) {
|
||||
if (depth === 0) {
|
||||
endPos = i;
|
||||
break;
|
||||
}
|
||||
depth--;
|
||||
i += 11; // skip past "{% endfor %}"
|
||||
}
|
||||
}
|
||||
|
||||
if (endPos !== -1) {
|
||||
const beforeLoop = result.slice(0, forMatch.index);
|
||||
const loopContent = result.slice(startPos, endPos);
|
||||
const afterLoop = result.slice(endPos + 13); // 13 = length of "{% endfor %}"
|
||||
|
||||
const collection = getValue(collectionPath, data);
|
||||
|
||||
if (Array.isArray(collection)) {
|
||||
const renderedItems = collection
|
||||
.map((item) => {
|
||||
const loopData = { ...data, [itemName]: item };
|
||||
return renderTemplate(loopContent, loopData);
|
||||
})
|
||||
.join('');
|
||||
|
||||
result = beforeLoop + renderedItems + afterLoop;
|
||||
return renderTemplate(result, data);
|
||||
} else {
|
||||
// Collection not found or not an array, remove the loop
|
||||
result = beforeLoop + afterLoop;
|
||||
return renderTemplate(result, data);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Process {% if condition %}...{% endif %}
|
||||
result = result.replace(
|
||||
/\{%\s*if\s+([^%]+?)\s*%\}([\s\S]*?)\{%\s*endif\s*%\}/g,
|
||||
(_match, condition, content) => {
|
||||
const value = getValue(condition, data);
|
||||
return value ? renderTemplate(content, data) : '';
|
||||
},
|
||||
);
|
||||
|
||||
// Replace {{ variable }}, {{ variable | filter }}, and {{ variable | filter('arg') }}
|
||||
result = result.replace(
|
||||
/\{\{\s*([^}|]+?)(?:\s*\|\s*(\w+)(?:\s*\((['"]?)([^)'"]*)\3\))?)?\s*\}\}/g,
|
||||
(_match, path, filter, _quote, filterArg) => {
|
||||
const value = getValue(path, data);
|
||||
if (value === undefined || value === null) return '';
|
||||
if (filter) {
|
||||
return applyFilter(value, filter, filterArg) as string;
|
||||
}
|
||||
return String(value);
|
||||
},
|
||||
);
|
||||
|
||||
return result;
|
||||
};
|
||||
|
||||
const ExportMarkdownDialog: React.FC<ExportMarkdownDialogProps> = ({
|
||||
bookKey,
|
||||
isOpen,
|
||||
bookTitle,
|
||||
bookAuthor,
|
||||
booknotes,
|
||||
booknoteGroups,
|
||||
onCancel,
|
||||
onExport,
|
||||
}) => {
|
||||
const _ = useTranslation();
|
||||
const { envConfig } = useEnv();
|
||||
const { getViewSettings } = useReaderStore();
|
||||
const viewSettings = getViewSettings(bookKey);
|
||||
|
||||
const defaultTemplate = `## {{ title }}
|
||||
**${_('Author')}**: {{ author }}
|
||||
|
||||
**${_('Exported from Readest')}**: {{ exportDate }}
|
||||
|
||||
---
|
||||
|
||||
### ${_('Highlights & Annotations')}
|
||||
|
||||
{% for chapter in chapters %}
|
||||
#### {{ chapter.title }}
|
||||
{% for annotation in chapter.annotations %}
|
||||
> {{ annotation.text }}
|
||||
{% if annotation.note %}
|
||||
**${_('Note:')}** {{ annotation.note }}
|
||||
{% endif %}
|
||||
*${_('Time:')} {{ annotation.timestamp | date('%Y-%m-%d %H:%M') }}*
|
||||
{% endfor %}
|
||||
|
||||
---
|
||||
{% endfor %}`;
|
||||
|
||||
const [exportConfig, setExportConfig] = useState<NoteExportConfig>(() => {
|
||||
const noteExportConfig = viewSettings?.noteExportConfig || DEFAULT_NOTE_EXPORT_CONFIG;
|
||||
if (!noteExportConfig.customTemplate) {
|
||||
return {
|
||||
...noteExportConfig,
|
||||
customTemplate: defaultTemplate,
|
||||
};
|
||||
}
|
||||
return noteExportConfig;
|
||||
});
|
||||
|
||||
const [showSource, setShowSource] = useState(false);
|
||||
const [showAdvanced, setShowAdvanced] = useState(false);
|
||||
|
||||
useEffect(() => {
|
||||
const customTemplate = exportConfig.customTemplate;
|
||||
const newExportConfig = {
|
||||
...exportConfig,
|
||||
customTemplate: customTemplate === defaultTemplate ? '' : customTemplate,
|
||||
};
|
||||
saveViewSettings(envConfig, bookKey, 'noteExportConfig', newExportConfig, false, false);
|
||||
// eslint-disable-next-line react-hooks/exhaustive-deps
|
||||
}, [exportConfig, envConfig, bookKey]);
|
||||
|
||||
// Generate markdown preview based on current format settings
|
||||
const markdownPreview = useMemo(() => {
|
||||
if (exportConfig.useCustomTemplate) {
|
||||
// Prepare data for template rendering
|
||||
const sortedGroups = Object.values(booknoteGroups).sort((a, b) => a.id - b.id);
|
||||
|
||||
const templateData = {
|
||||
title: bookTitle,
|
||||
author: bookAuthor,
|
||||
exportDate: new Date().toISOString().slice(0, 10),
|
||||
chapters: sortedGroups.map((group) => ({
|
||||
title: group.label || _('Untitled'),
|
||||
annotations: group.booknotes.map((note) => ({
|
||||
text: note.text || '',
|
||||
note: note.note || '',
|
||||
style: note.style,
|
||||
color: note.color,
|
||||
timestamp: note.updatedAt,
|
||||
})),
|
||||
})),
|
||||
};
|
||||
|
||||
return renderTemplate(exportConfig.customTemplate, templateData);
|
||||
}
|
||||
|
||||
// Default formatting (non-template mode)
|
||||
const sortedGroups = Object.values(booknoteGroups).sort((a, b) => a.id - b.id);
|
||||
|
||||
const lines: string[] = [];
|
||||
|
||||
// Add title
|
||||
if (exportConfig.includeTitle) {
|
||||
lines.push(`# ${bookTitle}`);
|
||||
}
|
||||
|
||||
// Add author
|
||||
if (exportConfig.includeAuthor && bookAuthor) {
|
||||
lines.push(`**${_('Author')}**: ${bookAuthor}`);
|
||||
lines.push('');
|
||||
}
|
||||
|
||||
// Add export date
|
||||
if (exportConfig.includeDate) {
|
||||
lines.push(`**${_('Exported from Readest')}**: ${new Date().toISOString().slice(0, 10)}`);
|
||||
lines.push('');
|
||||
}
|
||||
|
||||
if (exportConfig.includeTitle || exportConfig.includeAuthor || exportConfig.includeDate) {
|
||||
lines.push('---');
|
||||
lines.push('');
|
||||
}
|
||||
|
||||
lines.push(`## ${_('Highlights & Annotations')}`);
|
||||
lines.push('');
|
||||
|
||||
for (const group of sortedGroups) {
|
||||
// Add chapter title
|
||||
if (exportConfig.includeChapterTitles) {
|
||||
const chapterTitle = group.label || _('Untitled');
|
||||
lines.push(`### ${chapterTitle}`);
|
||||
}
|
||||
|
||||
for (const note of group.booknotes) {
|
||||
// Add quote
|
||||
if (exportConfig.includeQuotes && note.text) {
|
||||
lines.push(`> ${note.text}`);
|
||||
}
|
||||
|
||||
// Add note
|
||||
if (exportConfig.includeNotes && note.note) {
|
||||
lines.push('');
|
||||
lines.push(`**${_('Note')}**:: ${note.note}`);
|
||||
}
|
||||
|
||||
// Add timestamp
|
||||
if (exportConfig.includeTimestamp && note.updatedAt) {
|
||||
const timestamp = new Date(note.updatedAt).toLocaleString();
|
||||
lines.push('');
|
||||
lines.push(`*${_('Time:')} ${timestamp}*`);
|
||||
}
|
||||
|
||||
lines.push(exportConfig.noteSeparator);
|
||||
}
|
||||
|
||||
if (exportConfig.includeChapterSeparator) {
|
||||
lines.push('---');
|
||||
lines.push('');
|
||||
}
|
||||
}
|
||||
|
||||
return lines.join('\n');
|
||||
}, [exportConfig, booknoteGroups, bookTitle, bookAuthor, _]);
|
||||
|
||||
// Convert markdown to HTML for preview
|
||||
const htmlPreview = useMemo(() => {
|
||||
if (!markdownPreview) return '';
|
||||
return marked.parse(markdownPreview);
|
||||
}, [markdownPreview]);
|
||||
|
||||
const handleToggle = (field: keyof NoteExportConfig) => {
|
||||
setExportConfig((prev) => ({
|
||||
...prev,
|
||||
[field]: !prev[field],
|
||||
}));
|
||||
};
|
||||
|
||||
const handleExport = () => {
|
||||
onExport(markdownPreview);
|
||||
};
|
||||
|
||||
return (
|
||||
<Dialog
|
||||
isOpen={isOpen}
|
||||
title={_('Export Annotations')}
|
||||
onClose={onCancel}
|
||||
boxClassName='sm:!w-[75%] sm:h-auto sm:!max-h-[90vh] sm:!max-w-5xl'
|
||||
contentClassName='sm:!px-8 sm:!py-2'
|
||||
>
|
||||
<div className='flex flex-col gap-4'>
|
||||
{/* Format Options */}
|
||||
<div className='space-y-3'>
|
||||
<h3 className='font-bold'>{_('Format Options')}</h3>
|
||||
|
||||
<div
|
||||
className={clsx(
|
||||
'grid grid-cols-2 gap-x-6 gap-y-3 sm:grid-cols-3',
|
||||
exportConfig.useCustomTemplate && 'pointer-events-none opacity-50',
|
||||
)}
|
||||
>
|
||||
<label className='flex cursor-pointer items-center gap-2'>
|
||||
<input
|
||||
type='checkbox'
|
||||
checked={exportConfig.includeTitle}
|
||||
onChange={() => handleToggle('includeTitle')}
|
||||
className='checkbox checkbox-sm'
|
||||
disabled={exportConfig.useCustomTemplate}
|
||||
/>
|
||||
<span className='text-sm'>{_('Title')}</span>
|
||||
</label>
|
||||
|
||||
<label className='flex cursor-pointer items-center gap-2'>
|
||||
<input
|
||||
type='checkbox'
|
||||
checked={exportConfig.includeAuthor}
|
||||
onChange={() => handleToggle('includeAuthor')}
|
||||
className='checkbox checkbox-sm'
|
||||
disabled={exportConfig.useCustomTemplate}
|
||||
/>
|
||||
<span className='text-sm'>{_('Author')}</span>
|
||||
</label>
|
||||
|
||||
<label className='flex cursor-pointer items-center gap-2'>
|
||||
<input
|
||||
type='checkbox'
|
||||
checked={exportConfig.includeDate}
|
||||
onChange={() => handleToggle('includeDate')}
|
||||
className='checkbox checkbox-sm'
|
||||
disabled={exportConfig.useCustomTemplate}
|
||||
/>
|
||||
<span className='text-sm'>{_('Export Date')}</span>
|
||||
</label>
|
||||
|
||||
<label className='flex cursor-pointer items-center gap-2'>
|
||||
<input
|
||||
type='checkbox'
|
||||
checked={exportConfig.includeChapterTitles}
|
||||
onChange={() => handleToggle('includeChapterTitles')}
|
||||
className='checkbox checkbox-sm'
|
||||
disabled={exportConfig.useCustomTemplate}
|
||||
/>
|
||||
<span className='text-sm'>{_('Chapter Titles')}</span>
|
||||
</label>
|
||||
|
||||
<label className='flex cursor-pointer items-center gap-2'>
|
||||
<input
|
||||
type='checkbox'
|
||||
checked={exportConfig.includeChapterSeparator}
|
||||
onChange={() => handleToggle('includeChapterSeparator')}
|
||||
className='checkbox checkbox-sm'
|
||||
disabled={exportConfig.useCustomTemplate}
|
||||
/>
|
||||
<span className='text-sm'>{_('Chapter Separator')}</span>
|
||||
</label>
|
||||
|
||||
<label className='flex cursor-pointer items-center gap-2'>
|
||||
<input
|
||||
type='checkbox'
|
||||
checked={exportConfig.includeQuotes}
|
||||
onChange={() => handleToggle('includeQuotes')}
|
||||
className='checkbox checkbox-sm'
|
||||
disabled={exportConfig.useCustomTemplate}
|
||||
/>
|
||||
<span className='text-sm'>{_('Highlights')}</span>
|
||||
</label>
|
||||
|
||||
<label className='flex cursor-pointer items-center gap-2'>
|
||||
<input
|
||||
type='checkbox'
|
||||
checked={exportConfig.includeNotes}
|
||||
onChange={() => handleToggle('includeNotes')}
|
||||
className='checkbox checkbox-sm'
|
||||
disabled={exportConfig.useCustomTemplate}
|
||||
/>
|
||||
<span className='text-sm'>{_('Notes')}</span>
|
||||
</label>
|
||||
|
||||
<label className='flex cursor-pointer items-center gap-2'>
|
||||
<input
|
||||
type='checkbox'
|
||||
checked={exportConfig.includeTimestamp}
|
||||
onChange={() => handleToggle('includeTimestamp')}
|
||||
className='checkbox checkbox-sm'
|
||||
disabled={exportConfig.useCustomTemplate}
|
||||
/>
|
||||
<span className='text-sm'>{_('Note Date')}</span>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{/* Advanced Options */}
|
||||
<div className='space-y-3'>
|
||||
<div className='flex items-center justify-between'>
|
||||
<h3 className='font-bold'>{_('Advanced')}</h3>
|
||||
<button
|
||||
onClick={() => setShowAdvanced(!showAdvanced)}
|
||||
className='text-sm text-blue-500 hover:underline'
|
||||
>
|
||||
{showAdvanced ? _('Hide') : _('Show')}
|
||||
</button>
|
||||
</div>
|
||||
|
||||
{showAdvanced && (
|
||||
<div className='space-y-3'>
|
||||
<label className='flex cursor-pointer items-center gap-2'>
|
||||
<input
|
||||
type='checkbox'
|
||||
checked={exportConfig.useCustomTemplate}
|
||||
onChange={() => handleToggle('useCustomTemplate')}
|
||||
className='checkbox checkbox-sm'
|
||||
/>
|
||||
<span className='text-sm font-medium'>{_('Use Custom Template')}</span>
|
||||
</label>
|
||||
|
||||
{exportConfig.useCustomTemplate && (
|
||||
<>
|
||||
<div className='space-y-2'>
|
||||
<label className='text-sm font-medium'>{_('Export Template')}</label>
|
||||
<textarea
|
||||
value={exportConfig.customTemplate}
|
||||
onChange={(e) =>
|
||||
setExportConfig({ ...exportConfig, customTemplate: e.target.value })
|
||||
}
|
||||
className='textarea textarea-bordered w-full font-mono text-xs'
|
||||
rows={12}
|
||||
placeholder={defaultTemplate}
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div className='bg-base-200 space-y-3 rounded-lg p-3 text-xs'>
|
||||
<div>
|
||||
<p className='mb-2 font-bold'>{_('Template Syntax:')}</p>
|
||||
<ul className='space-y-1 font-mono'>
|
||||
<li>
|
||||
<code className='bg-base-300 rounded px-1'>{'{{ variable }}'}</code> -{' '}
|
||||
{_('Insert value')}
|
||||
</li>
|
||||
<li>
|
||||
<code className='bg-base-300 rounded px-1'>
|
||||
{'{{ variable | date }}'}
|
||||
</code>{' '}
|
||||
- {_('Format date (locale)')}
|
||||
</li>
|
||||
<li>
|
||||
<code className='bg-base-300 rounded px-1'>
|
||||
{"{{ variable | date('%Y-%m-%d') }}"}
|
||||
</code>{' '}
|
||||
- {_('Format date (custom)')}
|
||||
</li>
|
||||
<li>
|
||||
<code className='bg-base-300 rounded px-1'>
|
||||
{'{% if variable %}...{% endif %}'}
|
||||
</code>{' '}
|
||||
- {_('Conditional')}
|
||||
</li>
|
||||
<li>
|
||||
<code className='bg-base-300 rounded px-1'>
|
||||
{'{% for item in list %}...{% endfor %}'}
|
||||
</code>{' '}
|
||||
- {_('Loop')}
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div>
|
||||
<p className='mb-2 font-bold'>{_('Available Variables:')}</p>
|
||||
<ul className='space-y-1'>
|
||||
<li>
|
||||
<code className='bg-base-300 rounded px-1'>title</code> -{' '}
|
||||
{_('Book title')}
|
||||
</li>
|
||||
<li>
|
||||
<code className='bg-base-300 rounded px-1'>author</code> -{' '}
|
||||
{_('Book author')}
|
||||
</li>
|
||||
<li>
|
||||
<code className='bg-base-300 rounded px-1'>exportDate</code> -{' '}
|
||||
{_('Export date')}
|
||||
</li>
|
||||
<li>
|
||||
<code className='bg-base-300 rounded px-1'>chapters</code> -{' '}
|
||||
{_('Array of chapters')}
|
||||
</li>
|
||||
<li className='ml-4'>
|
||||
<code className='bg-base-300 rounded px-1'>chapter.title</code> -{' '}
|
||||
{_('Chapter title')}
|
||||
</li>
|
||||
<li className='ml-4'>
|
||||
<code className='bg-base-300 rounded px-1'>chapter.annotations</code> -{' '}
|
||||
{_('Array of annotations')}
|
||||
</li>
|
||||
<li className='ml-8'>
|
||||
<code className='bg-base-300 rounded px-1'>annotation.text</code> -{' '}
|
||||
{_('Highlighted text')}
|
||||
</li>
|
||||
<li className='ml-8'>
|
||||
<code className='bg-base-300 rounded px-1'>annotation.note</code> -{' '}
|
||||
{_('Annotation note')}
|
||||
</li>
|
||||
<li className='ml-8'>
|
||||
<code className='bg-base-300 rounded px-1'>annotation.timestamp</code> -{' '}
|
||||
{_('Update time')}
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div>
|
||||
<p className='mb-2 font-bold'>{_('Date Format Tokens:')}</p>
|
||||
<ul className='space-y-1 font-mono'>
|
||||
<li>
|
||||
<code className='bg-base-300 rounded px-1'>%Y</code> -{' '}
|
||||
{_('Year (4 digits)')}
|
||||
</li>
|
||||
<li>
|
||||
<code className='bg-base-300 rounded px-1'>%m</code> -{' '}
|
||||
{_('Month (01-12)')}
|
||||
</li>
|
||||
<li>
|
||||
<code className='bg-base-300 rounded px-1'>%d</code> - {_('Day (01-31)')}
|
||||
</li>
|
||||
<li>
|
||||
<code className='bg-base-300 rounded px-1'>%H</code> - {_('Hour (00-23)')}
|
||||
</li>
|
||||
<li>
|
||||
<code className='bg-base-300 rounded px-1'>%M</code> -{' '}
|
||||
{_('Minute (00-59)')}
|
||||
</li>
|
||||
<li>
|
||||
<code className='bg-base-300 rounded px-1'>%S</code> -{' '}
|
||||
{_('Second (00-59)')}
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</>
|
||||
)}
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
|
||||
{/* Preview */}
|
||||
<div className='space-y-2'>
|
||||
<div className='flex items-center justify-between'>
|
||||
<h3 className='font-bold'>{_('Preview')}</h3>
|
||||
<label className='flex cursor-pointer items-center gap-2'>
|
||||
<input
|
||||
type='checkbox'
|
||||
checked={showSource}
|
||||
onChange={() => setShowSource(!showSource)}
|
||||
className='checkbox checkbox-sm'
|
||||
/>
|
||||
<span className='text-sm'>{_('Show Source')}</span>
|
||||
</label>
|
||||
</div>
|
||||
{showSource ? (
|
||||
<div
|
||||
className={clsx(
|
||||
'bg-base-200 max-h-[40vh] overflow-y-auto rounded-lg p-4 font-mono text-xs',
|
||||
'select-text whitespace-pre-wrap break-words',
|
||||
)}
|
||||
>
|
||||
{markdownPreview || _('No content to preview')}
|
||||
</div>
|
||||
) : (
|
||||
<div
|
||||
className={clsx(
|
||||
'bg-base-200 prose prose-sm max-w-none overflow-y-auto rounded-lg p-4',
|
||||
'max-h-[40vh] select-text break-words',
|
||||
)}
|
||||
dangerouslySetInnerHTML={{
|
||||
__html:
|
||||
htmlPreview ||
|
||||
`<p class="text-base-content/50">${_('No content to preview')}</p>`,
|
||||
}}
|
||||
/>
|
||||
)}
|
||||
</div>
|
||||
|
||||
{/* Footer Actions */}
|
||||
<div className='mt-4 flex justify-end gap-4'>
|
||||
<button onClick={onCancel} className='btn btn-ghost btn-sm'>
|
||||
{_('Cancel')}
|
||||
</button>
|
||||
<button
|
||||
onClick={handleExport}
|
||||
className='btn btn-primary btn-sm'
|
||||
disabled={booknotes.length === 0}
|
||||
>
|
||||
{_('Export')}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</Dialog>
|
||||
);
|
||||
};
|
||||
|
||||
export default ExportMarkdownDialog;
|
||||
@@ -6,6 +6,7 @@ import {
|
||||
BookSearchConfig,
|
||||
BookStyle,
|
||||
HighlightColor,
|
||||
NoteExportConfig,
|
||||
ScreenConfig,
|
||||
TranslatorConfig,
|
||||
TTSConfig,
|
||||
@@ -254,10 +255,25 @@ export const DEFAULT_TRANSLATOR_CONFIG: TranslatorConfig = {
|
||||
ttsReadAloudText: 'both',
|
||||
};
|
||||
|
||||
export const DEFAULT_NOTE_EXPORT_CONFIG: NoteExportConfig = {
|
||||
includeTitle: true,
|
||||
includeAuthor: true,
|
||||
includeDate: true,
|
||||
includeChapterTitles: true,
|
||||
includeQuotes: true,
|
||||
includeNotes: true,
|
||||
includeTimestamp: false,
|
||||
includeChapterSeparator: false,
|
||||
noteSeparator: '\n\n',
|
||||
useCustomTemplate: false,
|
||||
customTemplate: '',
|
||||
};
|
||||
|
||||
export const DEFAULT_ANNOTATOR_CONFIG: AnnotatorConfig = {
|
||||
enableAnnotationQuickActions: true,
|
||||
annotationQuickAction: null,
|
||||
copyToNotebook: false,
|
||||
noteExportConfig: DEFAULT_NOTE_EXPORT_CONFIG,
|
||||
};
|
||||
|
||||
export const DEFAULT_SCREEN_CONFIG: ScreenConfig = {
|
||||
|
||||
@@ -218,10 +218,25 @@ export interface TranslatorConfig {
|
||||
ttsReadAloudText: string;
|
||||
}
|
||||
|
||||
export interface NoteExportConfig {
|
||||
includeTitle: boolean;
|
||||
includeAuthor: boolean;
|
||||
includeDate: boolean;
|
||||
includeChapterTitles: boolean;
|
||||
includeQuotes: boolean;
|
||||
includeNotes: boolean;
|
||||
includeTimestamp: boolean;
|
||||
includeChapterSeparator: boolean;
|
||||
noteSeparator: string;
|
||||
useCustomTemplate: boolean;
|
||||
customTemplate: string;
|
||||
}
|
||||
|
||||
export interface AnnotatorConfig {
|
||||
enableAnnotationQuickActions: boolean;
|
||||
annotationQuickAction: AnnotationToolType | null;
|
||||
copyToNotebook: boolean;
|
||||
noteExportConfig: NoteExportConfig;
|
||||
}
|
||||
|
||||
export interface ScreenConfig {
|
||||
|
||||
Reference in New Issue
Block a user