diff --git a/apps/readest-app/public/locales/ar/translation.json b/apps/readest-app/public/locales/ar/translation.json index 3f7f6cab..f344d5d1 100644 --- a/apps/readest-app/public/locales/ar/translation.json +++ b/apps/readest-app/public/locales/ar/translation.json @@ -841,7 +841,6 @@ "Translate text after selection": "ترجمة النص بعد التحديد", "Read text aloud after selection": "قراءة النص بصوت عالٍ بعد التحديد", "Proofread text after selection": "تدقيق النص بعد التحديد", - "File Transfers": "نقل الملفات", "{{activeCount}} active, {{pendingCount}} pending": "{{activeCount}} نشط، {{pendingCount}} قيد الانتظار", "{{failedCount}} failed": "{{failedCount}} فشل", "Waiting...": "جارٍ الانتظار...", @@ -864,5 +863,6 @@ "Download queued: {{title}}": "التنزيل في قائمة الانتظار: {{title}}", "Book not found in library": "الكتاب غير موجود في المكتبة", "Unknown error": "خطأ غير معروف", - "Please log in to continue": "يرجى تسجيل الدخول للمتابعة" + "Please log in to continue": "يرجى تسجيل الدخول للمتابعة", + "Cloud File Transfers": "نقل الملفات السحابية" } diff --git a/apps/readest-app/public/locales/bn/translation.json b/apps/readest-app/public/locales/bn/translation.json index 1ce6bed5..676a5c5d 100644 --- a/apps/readest-app/public/locales/bn/translation.json +++ b/apps/readest-app/public/locales/bn/translation.json @@ -801,7 +801,6 @@ "Translate text after selection": "নির্বাচনের পরে টেক্সট অনুবাদ করুন", "Read text aloud after selection": "নির্বাচনের পরে টেক্সট উচ্চারণ করুন", "Proofread text after selection": "নির্বাচনের পরে টেক্সট প্রুফরিড করুন", - "File Transfers": "ফাইল স্থানান্তর", "{{activeCount}} active, {{pendingCount}} pending": "{{activeCount}} সক্রিয়, {{pendingCount}} অপেক্ষমাণ", "{{failedCount}} failed": "{{failedCount}} ব্যর্থ", "Waiting...": "অপেক্ষা করছে...", @@ -824,5 +823,6 @@ "Download queued: {{title}}": "ডাউনলোড সারিতে: {{title}}", "Book not found in library": "লাইব্রেরিতে বই পাওয়া যায়নি", "Unknown error": "অজানা ত্রুটি", - "Please log in to continue": "চালিয়ে যেতে লগইন করুন" + "Please log in to continue": "চালিয়ে যেতে লগইন করুন", + "Cloud File Transfers": "ক্লাউড ফাইল স্থানান্তরসমূহ" } diff --git a/apps/readest-app/public/locales/bo/translation.json b/apps/readest-app/public/locales/bo/translation.json index ffc257d8..cb0fcae1 100644 --- a/apps/readest-app/public/locales/bo/translation.json +++ b/apps/readest-app/public/locales/bo/translation.json @@ -791,7 +791,6 @@ "Translate text after selection": "ཡིག་ཆ་འདེམས་པའི་ཐབས་ཀྱིས་སྐད་བསྒྱུར་བྱེད་", "Read text aloud after selection": "ཡིག་ཆ་འདེམས་པའི་ཐབས་ཀྱིས་སྐད་ཀྱིས་ཀློག་", "Proofread text after selection": "ཡིག་ཆ་འདེམས་པའི་ཐབས་ཀྱིས་ཞིབ་བཤེར་བྱེད་", - "File Transfers": "ཡིག་ཆ་སྐྱེལ་འདྲེན་", "{{activeCount}} active, {{pendingCount}} pending": "{{activeCount}} བྱེད་བཞིན་པ་, {{pendingCount}} སྒུག་བཞིན་པ་", "{{failedCount}} failed": "{{failedCount}} ཕམ་པ་", "Waiting...": "སྒུག་བཞིན་པ་...", @@ -814,5 +813,6 @@ "Download queued: {{title}}": "ལེན་པའི་སྒྲིག་གཅོད་ནང་བཅུག་: {{title}}", "Book not found in library": "དཔེ་མཛོད་ནང་དཔེ་ཆ་རྙེད་མ་སོང་", "Unknown error": "མ་ཤེས་པའི་ནོར་འཁྲུལ་", - "Please log in to continue": "མུ་མཐུད་པར་ནང་འཛུལ་བྱོས་" + "Please log in to continue": "མུ་མཐུད་པར་ནང་འཛུལ་བྱོས་", + "Cloud File Transfers": "སྤྲིན་གནས་ཡིག་ཆ་སྐྱེལ་འདྲེན།" } diff --git a/apps/readest-app/public/locales/de/translation.json b/apps/readest-app/public/locales/de/translation.json index f7506333..3e6ee535 100644 --- a/apps/readest-app/public/locales/de/translation.json +++ b/apps/readest-app/public/locales/de/translation.json @@ -801,7 +801,6 @@ "Translate text after selection": "Text nach Auswahl übersetzen", "Read text aloud after selection": "Text nach Auswahl vorlesen", "Proofread text after selection": "Text nach Auswahl Korrektur lesen", - "File Transfers": "Dateiübertragungen", "{{activeCount}} active, {{pendingCount}} pending": "{{activeCount}} aktiv, {{pendingCount}} ausstehend", "{{failedCount}} failed": "{{failedCount}} fehlgeschlagen", "Waiting...": "Warten...", @@ -824,5 +823,6 @@ "Download queued: {{title}}": "Download in Warteschlange: {{title}}", "Book not found in library": "Buch nicht in der Bibliothek gefunden", "Unknown error": "Unbekannter Fehler", - "Please log in to continue": "Bitte melden Sie sich an, um fortzufahren" + "Please log in to continue": "Bitte melden Sie sich an, um fortzufahren", + "Cloud File Transfers": "Cloud-Dateiübertragungen" } diff --git a/apps/readest-app/public/locales/el/translation.json b/apps/readest-app/public/locales/el/translation.json index 03587d04..2e06870b 100644 --- a/apps/readest-app/public/locales/el/translation.json +++ b/apps/readest-app/public/locales/el/translation.json @@ -801,7 +801,6 @@ "Translate text after selection": "Μετάφραση κειμένου μετά την επιλογή", "Read text aloud after selection": "Ανάγνωση κειμένου μετά την επιλογή", "Proofread text after selection": "Διόρθωση κειμένου μετά την επιλογή", - "File Transfers": "Μεταφορές αρχείων", "{{activeCount}} active, {{pendingCount}} pending": "{{activeCount}} ενεργές, {{pendingCount}} σε αναμονή", "{{failedCount}} failed": "{{failedCount}} απέτυχαν", "Waiting...": "Αναμονή...", @@ -824,5 +823,6 @@ "Download queued: {{title}}": "Λήψη στην ουρά: {{title}}", "Book not found in library": "Το βιβλίο δεν βρέθηκε στη βιβλιοθήκη", "Unknown error": "Άγνωστο σφάλμα", - "Please log in to continue": "Παρακαλώ συνδεθείτε για να συνεχίσετε" + "Please log in to continue": "Παρακαλώ συνδεθείτε για να συνεχίσετε", + "Cloud File Transfers": "Μεταφορές αρχείων στο cloud" } diff --git a/apps/readest-app/public/locales/es/translation.json b/apps/readest-app/public/locales/es/translation.json index a9fff187..e3e98f06 100644 --- a/apps/readest-app/public/locales/es/translation.json +++ b/apps/readest-app/public/locales/es/translation.json @@ -811,7 +811,6 @@ "Translate text after selection": "Traducir texto después de la selección", "Read text aloud after selection": "Leer texto en voz alta después de la selección", "Proofread text after selection": "Corregir texto después de la selección", - "File Transfers": "Transferencias de archivos", "{{activeCount}} active, {{pendingCount}} pending": "{{activeCount}} activas, {{pendingCount}} pendientes", "{{failedCount}} failed": "{{failedCount}} fallidas", "Waiting...": "Esperando...", @@ -834,5 +833,6 @@ "Download queued: {{title}}": "Descarga en cola: {{title}}", "Book not found in library": "Libro no encontrado en la biblioteca", "Unknown error": "Error desconocido", - "Please log in to continue": "Inicia sesión para continuar" + "Please log in to continue": "Inicia sesión para continuar", + "Cloud File Transfers": "Transferencias en la nube" } diff --git a/apps/readest-app/public/locales/fa/translation.json b/apps/readest-app/public/locales/fa/translation.json index 90ea0fe2..cb719d96 100644 --- a/apps/readest-app/public/locales/fa/translation.json +++ b/apps/readest-app/public/locales/fa/translation.json @@ -801,7 +801,6 @@ "Translate text after selection": "ترجمه متن پس از انتخاب", "Read text aloud after selection": "خواندن متن با صدای بلند پس از انتخاب", "Proofread text after selection": "بازبینی متن پس از انتخاب", - "File Transfers": "انتقال فایل‌ها", "{{activeCount}} active, {{pendingCount}} pending": "{{activeCount}} فعال، {{pendingCount}} در انتظار", "{{failedCount}} failed": "{{failedCount}} ناموفق", "Waiting...": "در انتظار...", @@ -824,5 +823,6 @@ "Download queued: {{title}}": "دانلود در صف: {{title}}", "Book not found in library": "کتاب در کتابخانه یافت نشد", "Unknown error": "خطای ناشناخته", - "Please log in to continue": "لطفاً برای ادامه وارد شوید" + "Please log in to continue": "لطفاً برای ادامه وارد شوید", + "Cloud File Transfers": "انتقال فایل‌های ابری" } diff --git a/apps/readest-app/public/locales/fr/translation.json b/apps/readest-app/public/locales/fr/translation.json index 8e1186c6..3123147a 100644 --- a/apps/readest-app/public/locales/fr/translation.json +++ b/apps/readest-app/public/locales/fr/translation.json @@ -811,7 +811,6 @@ "Translate text after selection": "Traduire le texte après la sélection", "Read text aloud after selection": "Lire le texte à haute voix après la sélection", "Proofread text after selection": "Relire le texte après la sélection", - "File Transfers": "Transferts de fichiers", "{{activeCount}} active, {{pendingCount}} pending": "{{activeCount}} actifs, {{pendingCount}} en attente", "{{failedCount}} failed": "{{failedCount}} échoués", "Waiting...": "En attente...", @@ -834,5 +833,6 @@ "Download queued: {{title}}": "Téléchargement en file: {{title}}", "Book not found in library": "Livre non trouvé dans la bibliothèque", "Unknown error": "Erreur inconnue", - "Please log in to continue": "Veuillez vous connecter pour continuer" + "Please log in to continue": "Veuillez vous connecter pour continuer", + "Cloud File Transfers": "Transferts de fichiers cloud" } diff --git a/apps/readest-app/public/locales/hi/translation.json b/apps/readest-app/public/locales/hi/translation.json index b5196d93..31337cf1 100644 --- a/apps/readest-app/public/locales/hi/translation.json +++ b/apps/readest-app/public/locales/hi/translation.json @@ -801,7 +801,6 @@ "Translate text after selection": "चयन के बाद पाठ का अनुवाद करें", "Read text aloud after selection": "चयन के बाद पाठ को जोर से पढ़ें", "Proofread text after selection": "चयन के बाद पाठ को प्रूफरीड करें", - "File Transfers": "फ़ाइल स्थानांतरण", "{{activeCount}} active, {{pendingCount}} pending": "{{activeCount}} सक्रिय, {{pendingCount}} लंबित", "{{failedCount}} failed": "{{failedCount}} विफल", "Waiting...": "प्रतीक्षा कर रहे हैं...", @@ -824,5 +823,6 @@ "Download queued: {{title}}": "डाउनलोड कतार में: {{title}}", "Book not found in library": "पुस्तकालय में पुस्तक नहीं मिली", "Unknown error": "अज्ञात त्रुटि", - "Please log in to continue": "जारी रखने के लिए लॉगिन करें" + "Please log in to continue": "जारी रखने के लिए लॉगिन करें", + "Cloud File Transfers": "क्लाउड फ़ाइल स्थानांतरण" } diff --git a/apps/readest-app/public/locales/id/translation.json b/apps/readest-app/public/locales/id/translation.json index da52fc96..4c214e94 100644 --- a/apps/readest-app/public/locales/id/translation.json +++ b/apps/readest-app/public/locales/id/translation.json @@ -791,7 +791,6 @@ "Translate text after selection": "Terjemahkan teks setelah pemilihan", "Read text aloud after selection": "Bacakan teks setelah pemilihan", "Proofread text after selection": "Periksa teks setelah pemilihan", - "File Transfers": "Transfer File", "{{activeCount}} active, {{pendingCount}} pending": "{{activeCount}} aktif, {{pendingCount}} menunggu", "{{failedCount}} failed": "{{failedCount}} gagal", "Waiting...": "Menunggu...", @@ -814,5 +813,6 @@ "Download queued: {{title}}": "Unduhan dalam antrian: {{title}}", "Book not found in library": "Buku tidak ditemukan di perpustakaan", "Unknown error": "Kesalahan tidak diketahui", - "Please log in to continue": "Silakan masuk untuk melanjutkan" + "Please log in to continue": "Silakan masuk untuk melanjutkan", + "Cloud File Transfers": "Transfer File Cloud" } diff --git a/apps/readest-app/public/locales/it/translation.json b/apps/readest-app/public/locales/it/translation.json index 93e37867..1bf47b1c 100644 --- a/apps/readest-app/public/locales/it/translation.json +++ b/apps/readest-app/public/locales/it/translation.json @@ -811,7 +811,6 @@ "Translate text after selection": "Traduci testo dopo la selezione", "Read text aloud after selection": "Leggi ad alta voce il testo dopo la selezione", "Proofread text after selection": "Correggi il testo dopo la selezione", - "File Transfers": "Trasferimenti file", "{{activeCount}} active, {{pendingCount}} pending": "{{activeCount}} attivi, {{pendingCount}} in attesa", "{{failedCount}} failed": "{{failedCount}} falliti", "Waiting...": "In attesa...", @@ -834,5 +833,6 @@ "Download queued: {{title}}": "Download in coda: {{title}}", "Book not found in library": "Libro non trovato nella libreria", "Unknown error": "Errore sconosciuto", - "Please log in to continue": "Accedi per continuare" + "Please log in to continue": "Accedi per continuare", + "Cloud File Transfers": "Trasferimenti file cloud" } diff --git a/apps/readest-app/public/locales/ja/translation.json b/apps/readest-app/public/locales/ja/translation.json index b31c4892..f1e65c49 100644 --- a/apps/readest-app/public/locales/ja/translation.json +++ b/apps/readest-app/public/locales/ja/translation.json @@ -791,7 +791,6 @@ "Translate text after selection": "選択後のテキストを翻訳する", "Read text aloud after selection": "選択後のテキストを音読する", "Proofread text after selection": "選択後のテキストを校正する", - "File Transfers": "ファイル転送", "{{activeCount}} active, {{pendingCount}} pending": "{{activeCount}} 進行中、{{pendingCount}} 待機中", "{{failedCount}} failed": "{{failedCount}} 失敗", "Waiting...": "待機中...", @@ -814,5 +813,6 @@ "Download queued: {{title}}": "ダウンロードをキューに追加: {{title}}", "Book not found in library": "ライブラリに本が見つかりません", "Unknown error": "不明なエラー", - "Please log in to continue": "続行するにはログインしてください" + "Please log in to continue": "続行するにはログインしてください", + "Cloud File Transfers": "クラウドファイル転送" } diff --git a/apps/readest-app/public/locales/ko/translation.json b/apps/readest-app/public/locales/ko/translation.json index b4af45f4..bcf3fd0b 100644 --- a/apps/readest-app/public/locales/ko/translation.json +++ b/apps/readest-app/public/locales/ko/translation.json @@ -791,7 +791,6 @@ "Translate text after selection": "선택 후 텍스트 번역", "Read text aloud after selection": "선택 후 텍스트 음성 읽기", "Proofread text after selection": "선택 후 텍스트 교정", - "File Transfers": "파일 전송", "{{activeCount}} active, {{pendingCount}} pending": "{{activeCount}} 진행 중, {{pendingCount}} 대기 중", "{{failedCount}} failed": "{{failedCount}} 실패", "Waiting...": "대기 중...", @@ -814,5 +813,6 @@ "Download queued: {{title}}": "다운로드 대기열에 추가됨: {{title}}", "Book not found in library": "라이브러리에서 책을 찾을 수 없음", "Unknown error": "알 수 없는 오류", - "Please log in to continue": "계속하려면 로그인하세요" + "Please log in to continue": "계속하려면 로그인하세요", + "Cloud File Transfers": "클라우드 파일 전송" } diff --git a/apps/readest-app/public/locales/ms/translation.json b/apps/readest-app/public/locales/ms/translation.json index e65715a8..5db12a63 100644 --- a/apps/readest-app/public/locales/ms/translation.json +++ b/apps/readest-app/public/locales/ms/translation.json @@ -791,7 +791,6 @@ "Translate text after selection": "Terjemah teks selepas pilihan", "Read text aloud after selection": "Baca teks dengan kuat selepas pilihan", "Proofread text after selection": "Semak teks selepas pilihan", - "File Transfers": "Pemindahan Fail", "{{activeCount}} active, {{pendingCount}} pending": "{{activeCount}} aktif, {{pendingCount}} menunggu", "{{failedCount}} failed": "{{failedCount}} gagal", "Waiting...": "Menunggu...", @@ -814,5 +813,6 @@ "Download queued: {{title}}": "Muat turun dalam baris gilir: {{title}}", "Book not found in library": "Buku tidak dijumpai dalam perpustakaan", "Unknown error": "Ralat tidak diketahui", - "Please log in to continue": "Sila log masuk untuk meneruskan" + "Please log in to continue": "Sila log masuk untuk meneruskan", + "Cloud File Transfers": "Pemindahan Fail Awan" } diff --git a/apps/readest-app/public/locales/nl/translation.json b/apps/readest-app/public/locales/nl/translation.json index a62b7cb0..66be397c 100644 --- a/apps/readest-app/public/locales/nl/translation.json +++ b/apps/readest-app/public/locales/nl/translation.json @@ -801,7 +801,6 @@ "Translate text after selection": "Vertaal tekst na selectie", "Read text aloud after selection": "Lees tekst hardop na selectie", "Proofread text after selection": "Corrigeer tekst na selectie", - "File Transfers": "Bestandsoverdrachten", "{{activeCount}} active, {{pendingCount}} pending": "{{activeCount}} actief, {{pendingCount}} wachtend", "{{failedCount}} failed": "{{failedCount}} mislukt", "Waiting...": "Wachten...", @@ -824,5 +823,6 @@ "Download queued: {{title}}": "Download in wachtrij: {{title}}", "Book not found in library": "Boek niet gevonden in bibliotheek", "Unknown error": "Onbekende fout", - "Please log in to continue": "Log in om door te gaan" + "Please log in to continue": "Log in om door te gaan", + "Cloud File Transfers": "Cloud Bestandoverdrachten" } diff --git a/apps/readest-app/public/locales/pl/translation.json b/apps/readest-app/public/locales/pl/translation.json index ab2aa7f7..779f8833 100644 --- a/apps/readest-app/public/locales/pl/translation.json +++ b/apps/readest-app/public/locales/pl/translation.json @@ -821,7 +821,6 @@ "Translate text after selection": "Przetłumacz zaznaczony tekst", "Read text aloud after selection": "Odczytaj zaznaczony tekst na głos", "Proofread text after selection": "Sprawdź zaznaczony tekst", - "File Transfers": "Transfery plików", "{{activeCount}} active, {{pendingCount}} pending": "{{activeCount}} aktywnych, {{pendingCount}} oczekujących", "{{failedCount}} failed": "{{failedCount}} nieudanych", "Waiting...": "Oczekiwanie...", @@ -844,5 +843,6 @@ "Download queued: {{title}}": "Pobieranie w kolejce: {{title}}", "Book not found in library": "Książka nie została znaleziona w bibliotece", "Unknown error": "Nieznany błąd", - "Please log in to continue": "Zaloguj się, aby kontynuować" + "Please log in to continue": "Zaloguj się, aby kontynuować", + "Cloud File Transfers": "Transfery plików w chmurze" } diff --git a/apps/readest-app/public/locales/pt/translation.json b/apps/readest-app/public/locales/pt/translation.json index 0f71e6e1..bea55fe1 100644 --- a/apps/readest-app/public/locales/pt/translation.json +++ b/apps/readest-app/public/locales/pt/translation.json @@ -811,7 +811,6 @@ "Translate text after selection": "Traduzir texto após a seleção", "Read text aloud after selection": "Ler texto em voz alta após a seleção", "Proofread text after selection": "Revisar texto após a seleção", - "File Transfers": "Transferências de Arquivos", "{{activeCount}} active, {{pendingCount}} pending": "{{activeCount}} ativos, {{pendingCount}} pendentes", "{{failedCount}} failed": "{{failedCount}} falharam", "Waiting...": "Aguardando...", @@ -834,5 +833,6 @@ "Download queued: {{title}}": "Download na fila: {{title}}", "Book not found in library": "Livro não encontrado na biblioteca", "Unknown error": "Erro desconhecido", - "Please log in to continue": "Faça login para continuar" + "Please log in to continue": "Faça login para continuar", + "Cloud File Transfers": "Transferências de Arquivos" } diff --git a/apps/readest-app/public/locales/ru/translation.json b/apps/readest-app/public/locales/ru/translation.json index d7ed8ee1..d4b75301 100644 --- a/apps/readest-app/public/locales/ru/translation.json +++ b/apps/readest-app/public/locales/ru/translation.json @@ -821,7 +821,6 @@ "Translate text after selection": "Перевести текст после выделения", "Read text aloud after selection": "Прочитать текст вслух после выделения", "Proofread text after selection": "Корректировать текст после выделения", - "File Transfers": "Передача файлов", "{{activeCount}} active, {{pendingCount}} pending": "{{activeCount}} активных, {{pendingCount}} ожидающих", "{{failedCount}} failed": "{{failedCount}} неудачных", "Waiting...": "Ожидание...", @@ -844,5 +843,6 @@ "Download queued: {{title}}": "Скачивание в очереди: {{title}}", "Book not found in library": "Книга не найдена в библиотеке", "Unknown error": "Неизвестная ошибка", - "Please log in to continue": "Войдите, чтобы продолжить" + "Please log in to continue": "Войдите, чтобы продолжить", + "Cloud File Transfers": "Передача файлов в облако" } diff --git a/apps/readest-app/public/locales/si/translation.json b/apps/readest-app/public/locales/si/translation.json index 88594a3b..73dae473 100644 --- a/apps/readest-app/public/locales/si/translation.json +++ b/apps/readest-app/public/locales/si/translation.json @@ -801,7 +801,6 @@ "Translate text after selection": "තේරීමෙන් පසු පෙළ පරිවර්තනය කරන්න", "Read text aloud after selection": "තේරීමෙන් පසු පෙළ උච්චාරණය කරන්න", "Proofread text after selection": "තේරීමෙන් පසු පෙළ සංශෝධනය කරන්න", - "File Transfers": "ගොනු හුවමාරු", "{{activeCount}} active, {{pendingCount}} pending": "{{activeCount}} සක්‍රීය, {{pendingCount}} බලාපොරොත්තුවේ", "{{failedCount}} failed": "{{failedCount}} අසාර්ථක", "Waiting...": "බලාපොරොත්තුවේ...", @@ -824,5 +823,6 @@ "Download queued: {{title}}": "බාගත කිරීම පෝලිමේ: {{title}}", "Book not found in library": "පුස්තකාලයේ පොත හමු නොවීය", "Unknown error": "නොදන්නා දෝෂයක්", - "Please log in to continue": "ඉදිරියට යාමට පිවිසෙන්න" + "Please log in to continue": "ඉදිරියට යාමට පිවිසෙන්න", + "Cloud File Transfers": "කලාප ගොනු හුවමාරු" } diff --git a/apps/readest-app/public/locales/sv/translation.json b/apps/readest-app/public/locales/sv/translation.json index c7e0fcf2..93f99abf 100644 --- a/apps/readest-app/public/locales/sv/translation.json +++ b/apps/readest-app/public/locales/sv/translation.json @@ -801,7 +801,6 @@ "Translate text after selection": "Översätt text efter markering", "Read text aloud after selection": "Läs upp text efter markering", "Proofread text after selection": "Korrekturläs text efter markering", - "File Transfers": "Filöverföringar", "{{activeCount}} active, {{pendingCount}} pending": "{{activeCount}} aktiva, {{pendingCount}} väntande", "{{failedCount}} failed": "{{failedCount}} misslyckades", "Waiting...": "Väntar...", @@ -824,5 +823,6 @@ "Download queued: {{title}}": "Nedladdning köad: {{title}}", "Book not found in library": "Boken hittades inte i biblioteket", "Unknown error": "Okänt fel", - "Please log in to continue": "Logga in för att fortsätta" + "Please log in to continue": "Logga in för att fortsätta", + "Cloud File Transfers": "Molnfilöverföringar" } diff --git a/apps/readest-app/public/locales/ta/translation.json b/apps/readest-app/public/locales/ta/translation.json index 13f6c04f..9c9c50bb 100644 --- a/apps/readest-app/public/locales/ta/translation.json +++ b/apps/readest-app/public/locales/ta/translation.json @@ -801,7 +801,6 @@ "Translate text after selection": "தேர்வுக்குப் பிறகு உரையை மொழிபெயர்", "Read text aloud after selection": "தேர்வுக்குப் பிறகு உரையை ஓதுக", "Proofread text after selection": "தேர்வுக்குப் பிறகு உரையை திருத்துக", - "File Transfers": "கோப்பு பரிமாற்றங்கள்", "{{activeCount}} active, {{pendingCount}} pending": "{{activeCount}} செயலில், {{pendingCount}} காத்திருப்பு", "{{failedCount}} failed": "{{failedCount}} தோல்வி", "Waiting...": "காத்திருக்கிறது...", @@ -824,5 +823,6 @@ "Download queued: {{title}}": "பதிவிறக்கம் வரிசையில்: {{title}}", "Book not found in library": "நூலகத்தில் புத்தகம் கிடைக்கவில்லை", "Unknown error": "தெரியாத பிழை", - "Please log in to continue": "தொடர உள்நுழையவும்" + "Please log in to continue": "தொடர உள்நுழையவும்", + "Cloud File Transfers": "மேகக் கோப்பு பரிமாற்றங்கள்" } diff --git a/apps/readest-app/public/locales/th/translation.json b/apps/readest-app/public/locales/th/translation.json index 35ea6739..f3c47177 100644 --- a/apps/readest-app/public/locales/th/translation.json +++ b/apps/readest-app/public/locales/th/translation.json @@ -791,7 +791,6 @@ "Translate text after selection": "แปลข้อความหลังการเลือก", "Read text aloud after selection": "อ่านข้อความออกเสียงหลังการเลือก", "Proofread text after selection": "ตรวจทานข้อความหลังการเลือก", - "File Transfers": "การถ่ายโอนไฟล์", "{{activeCount}} active, {{pendingCount}} pending": "{{activeCount}} กำลังดำเนินการ, {{pendingCount}} รอดำเนินการ", "{{failedCount}} failed": "{{failedCount}} ล้มเหลว", "Waiting...": "กำลังรอ...", @@ -814,5 +813,6 @@ "Download queued: {{title}}": "ดาวน์โหลดอยู่ในคิว: {{title}}", "Book not found in library": "ไม่พบหนังสือในห้องสมุด", "Unknown error": "ข้อผิดพลาดที่ไม่รู้จัก", - "Please log in to continue": "กรุณาเข้าสู่ระบบเพื่อดำเนินการต่อ" + "Please log in to continue": "กรุณาเข้าสู่ระบบเพื่อดำเนินการต่อ", + "Cloud File Transfers": "การถ่ายโอนไฟล์คลาวด์" } diff --git a/apps/readest-app/public/locales/tr/translation.json b/apps/readest-app/public/locales/tr/translation.json index 53586422..0c0530f2 100644 --- a/apps/readest-app/public/locales/tr/translation.json +++ b/apps/readest-app/public/locales/tr/translation.json @@ -801,7 +801,6 @@ "Translate text after selection": "Seçimden sonra metni çevir", "Read text aloud after selection": "Seçimden sonra metni sesli oku", "Proofread text after selection": "Seçimden sonra metni düzelt", - "File Transfers": "Dosya Transferleri", "{{activeCount}} active, {{pendingCount}} pending": "{{activeCount}} aktif, {{pendingCount}} beklemede", "{{failedCount}} failed": "{{failedCount}} başarısız", "Waiting...": "Bekleniyor...", @@ -824,5 +823,6 @@ "Download queued: {{title}}": "İndirme sıraya alındı: {{title}}", "Book not found in library": "Kitap kütüphanede bulunamadı", "Unknown error": "Bilinmeyen hata", - "Please log in to continue": "Devam etmek için giriş yapın" + "Please log in to continue": "Devam etmek için giriş yapın", + "Cloud File Transfers": "Bulut Dosya Transferleri" } diff --git a/apps/readest-app/public/locales/uk/translation.json b/apps/readest-app/public/locales/uk/translation.json index 96c44282..5d6afc9d 100644 --- a/apps/readest-app/public/locales/uk/translation.json +++ b/apps/readest-app/public/locales/uk/translation.json @@ -821,7 +821,6 @@ "Translate text after selection": "Перекласти текст після виділення", "Read text aloud after selection": "Прочитати текст вголос після виділення", "Proofread text after selection": "Вичитати текст після виділення", - "File Transfers": "Передача файлів", "{{activeCount}} active, {{pendingCount}} pending": "{{activeCount}} активних, {{pendingCount}} очікують", "{{failedCount}} failed": "{{failedCount}} невдалих", "Waiting...": "Очікування...", @@ -844,5 +843,6 @@ "Download queued: {{title}}": "Завантаження в черзі: {{title}}", "Book not found in library": "Книгу не знайдено в бібліотеці", "Unknown error": "Невідома помилка", - "Please log in to continue": "Увійдіть, щоб продовжити" + "Please log in to continue": "Увійдіть, щоб продовжити", + "Cloud File Transfers": "Передача файлів у хмару" } diff --git a/apps/readest-app/public/locales/vi/translation.json b/apps/readest-app/public/locales/vi/translation.json index 3ad822d7..ba389c4e 100644 --- a/apps/readest-app/public/locales/vi/translation.json +++ b/apps/readest-app/public/locales/vi/translation.json @@ -791,7 +791,6 @@ "Translate text after selection": "Dịch văn bản sau khi chọn", "Read text aloud after selection": "Đọc to văn bản sau khi chọn", "Proofread text after selection": "Hiệu đính văn bản sau khi chọn", - "File Transfers": "Truyền tập tin", "{{activeCount}} active, {{pendingCount}} pending": "{{activeCount}} đang hoạt động, {{pendingCount}} đang chờ", "{{failedCount}} failed": "{{failedCount}} thất bại", "Waiting...": "Đang chờ...", @@ -814,5 +813,6 @@ "Download queued: {{title}}": "Tải xuống trong hàng đợi: {{title}}", "Book not found in library": "Không tìm thấy sách trong thư viện", "Unknown error": "Lỗi không xác định", - "Please log in to continue": "Vui lòng đăng nhập để tiếp tục" + "Please log in to continue": "Vui lòng đăng nhập để tiếp tục", + "Cloud File Transfers": "Truyền tệp đám mây" } diff --git a/apps/readest-app/public/locales/zh-CN/translation.json b/apps/readest-app/public/locales/zh-CN/translation.json index ee46cf74..b9f6498e 100644 --- a/apps/readest-app/public/locales/zh-CN/translation.json +++ b/apps/readest-app/public/locales/zh-CN/translation.json @@ -791,7 +791,6 @@ "Translate text after selection": "翻译选中文本", "Read text aloud after selection": "朗读选中文本", "Proofread text after selection": "校对选中文本", - "File Transfers": "文件传输", "{{activeCount}} active, {{pendingCount}} pending": "{{activeCount}} 进行中,{{pendingCount}} 等待中", "{{failedCount}} failed": "{{failedCount}} 失败", "Waiting...": "等待中...", @@ -814,5 +813,6 @@ "Download queued: {{title}}": "下载已排队:{{title}}", "Book not found in library": "在书库中找不到书籍", "Unknown error": "未知错误", - "Please log in to continue": "请登录以继续" + "Please log in to continue": "请登录以继续", + "Cloud File Transfers": "云文件传输" } diff --git a/apps/readest-app/public/locales/zh-TW/translation.json b/apps/readest-app/public/locales/zh-TW/translation.json index ea5479b9..d8d9c431 100644 --- a/apps/readest-app/public/locales/zh-TW/translation.json +++ b/apps/readest-app/public/locales/zh-TW/translation.json @@ -791,7 +791,6 @@ "Translate text after selection": "翻譯選取後的文字", "Read text aloud after selection": "朗讀選取後的文字", "Proofread text after selection": "校對選取後的文字", - "File Transfers": "檔案傳輸", "{{activeCount}} active, {{pendingCount}} pending": "{{activeCount}} 進行中,{{pendingCount}} 等待中", "{{failedCount}} failed": "{{failedCount}} 失敗", "Waiting...": "等待中...", @@ -814,5 +813,6 @@ "Download queued: {{title}}": "下載已排隊:{{title}}", "Book not found in library": "在書庫中找不到書籍", "Unknown error": "未知錯誤", - "Please log in to continue": "請登入以繼續" + "Please log in to continue": "請登入以繼續", + "Cloud File Transfers": "雲端檔案傳輸" } diff --git a/apps/readest-app/src/app/library/components/BookItem.tsx b/apps/readest-app/src/app/library/components/BookItem.tsx index cfb355ca..57bfd3a8 100644 --- a/apps/readest-app/src/app/library/components/BookItem.tsx +++ b/apps/readest-app/src/app/library/components/BookItem.tsx @@ -26,7 +26,7 @@ interface BookItemProps { bookSelected: boolean; transferProgress: number | null; handleBookUpload: (book: Book) => void; - handleBookDownload: (book: Book) => void; + handleBookDownload: (book: Book, options?: { redownload?: boolean; queued?: boolean }) => void; showBookDetailsModal: (book: Book) => void; } @@ -160,7 +160,7 @@ const BookItem: React.FC = ({ if (!book.uploadedAt) { handleBookUpload(book); } else if (!book.downloadedAt) { - handleBookDownload(book); + handleBookDownload(book, { queued: true }); } }} > diff --git a/apps/readest-app/src/app/library/components/Bookshelf.tsx b/apps/readest-app/src/app/library/components/Bookshelf.tsx index 8bcded40..38f92744 100644 --- a/apps/readest-app/src/app/library/components/Bookshelf.tsx +++ b/apps/readest-app/src/app/library/components/Bookshelf.tsx @@ -32,7 +32,10 @@ interface BookshelfProps { isSelectAll: boolean; isSelectNone: boolean; handleImportBooks: () => void; - handleBookDownload: (book: Book) => Promise; + handleBookDownload: ( + book: Book, + options?: { redownload?: boolean; queued?: boolean }, + ) => Promise; handleBookUpload: (book: Book, syncBooks?: boolean) => Promise; handleBookDelete: (book: Book, syncBooks?: boolean) => Promise; handleSetSelectMode: (selectMode: boolean) => void; diff --git a/apps/readest-app/src/app/library/components/BookshelfItem.tsx b/apps/readest-app/src/app/library/components/BookshelfItem.tsx index a1bfadc2..794fc9dc 100644 --- a/apps/readest-app/src/app/library/components/BookshelfItem.tsx +++ b/apps/readest-app/src/app/library/components/BookshelfItem.tsx @@ -82,7 +82,10 @@ interface BookshelfItemProps { setLoading: React.Dispatch>; toggleSelection: (hash: string) => void; handleGroupBooks: () => void; - handleBookDownload: (book: Book) => Promise; + handleBookDownload: ( + book: Book, + options?: { redownload?: boolean; queued?: boolean }, + ) => Promise; handleBookUpload: (book: Book, syncBooks?: boolean) => Promise; handleBookDelete: (book: Book, syncBooks?: boolean) => Promise; handleSetSelectMode: (selectMode: boolean) => void; @@ -131,7 +134,7 @@ const BookshelfItem: React.FC = ({ let available = false; const loadingTimeout = setTimeout(() => setLoading(true), 200); try { - available = await handleBookDownload(book); + available = await handleBookDownload(book, { queued: false }); await updateBook(envConfig, book); } finally { if (loadingTimeout) clearTimeout(loadingTimeout); @@ -216,7 +219,7 @@ const BookshelfItem: React.FC = ({ const downloadBookMenuItem = await MenuItem.new({ text: _('Download Book'), action: async () => { - handleBookDownload(book); + handleBookDownload(book, { queued: true }); }, }); const uploadBookMenuItem = await MenuItem.new({ diff --git a/apps/readest-app/src/app/library/components/SettingsMenu.tsx b/apps/readest-app/src/app/library/components/SettingsMenu.tsx index 9310420d..c5402d80 100644 --- a/apps/readest-app/src/app/library/components/SettingsMenu.tsx +++ b/apps/readest-app/src/app/library/components/SettingsMenu.tsx @@ -269,21 +269,23 @@ const SettingsMenu: React.FC = ({ setIsDropdownOpen }) => { toggled={isAutoUpload} onClick={toggleAutoUploadBooks} /> - 0 - ? _('{{failedCount}} failed', { failedCount: stats.failed }) - : '' - } - onClick={openTransferQueue} - /> + {user && ( + 0 + ? _('{{failedCount}} failed', { failedCount: stats.failed }) + : '' + } + onClick={openTransferQueue} + /> + )} {isTauriAppPlatform() && !appService?.isMobile && ( { + console.log('Queueing upload for book:', book.title); + transferManager.queueUpload(book); + // wait for the initialization of the transfer manager and opening of the book + }, 3000); + } } catch (error) { console.log('Failed to import book:', file, error); } @@ -494,7 +501,8 @@ const LibraryPageContent = ({ searchParams }: { searchParams: ReadonlyURLSearchP ); const handleBookDownload = useCallback( - async (book: Book, redownload = false, queued = false) => { + async (book: Book, downloadOptions: { redownload?: boolean; queued?: boolean } = {}) => { + const { redownload = false, queued = false } = downloadOptions; if (redownload || !queued) { try { await appService?.downloadBook(book, false, redownload, (progress) => { diff --git a/apps/readest-app/src/app/opds/components/NavigationCard.tsx b/apps/readest-app/src/app/opds/components/NavigationCard.tsx index eb9f132a..ca9334aa 100644 --- a/apps/readest-app/src/app/opds/components/NavigationCard.tsx +++ b/apps/readest-app/src/app/opds/components/NavigationCard.tsx @@ -25,13 +25,19 @@ export function NavigationCard({ item, baseURL, onClick, resolveURL }: Navigatio
-

{item.title || _('Untitled')}

+

+ {item.title || _('Untitled')} +

{item.properties?.numberOfItems && (

{_('{{count}} items', { count: item.properties.numberOfItems })}

)} - {summary &&

{summary}

} + {summary && ( +

+ {summary} +

+ )}
diff --git a/apps/readest-app/src/app/opds/page.tsx b/apps/readest-app/src/app/opds/page.tsx index 80a62fac..e83018bf 100644 --- a/apps/readest-app/src/app/opds/page.tsx +++ b/apps/readest-app/src/app/opds/page.tsx @@ -7,6 +7,7 @@ import { useRouter, useSearchParams } from 'next/navigation'; import { isOPDSCatalog, getPublication, getFeed, getOpenSearch } from 'foliate-js/opds.js'; import { openUrl } from '@tauri-apps/plugin-opener'; import { useEnv } from '@/context/EnvContext'; +import { useAuth } from '@/context/AuthContext'; import { isWebAppPlatform } from '@/services/environment'; import { downloadFile } from '@/libs/storage'; import { Toast } from '@/components/Toast'; @@ -14,6 +15,8 @@ import { useThemeStore } from '@/store/themeStore'; import { useTranslation } from '@/hooks/useTranslation'; import { useLibraryStore } from '@/store/libraryStore'; import { useSettingsStore } from '@/store/settingsStore'; +import { transferManager } from '@/services/transferManager'; +import { useTransferQueue } from '@/hooks/useTransferQueue'; import { useTheme } from '@/hooks/useTheme'; import { useLibrary } from '@/hooks/useLibrary'; import { eventDispatcher } from '@/utils/event'; @@ -55,6 +58,7 @@ export default function BrowserPage() { const _ = useTranslation(); const router = useRouter(); const { appService } = useEnv(); + const { user } = useAuth(); const { libraryLoaded } = useLibrary(); const { safeAreaInsets, isRoundedWindow } = useThemeStore(); const { settings } = useSettingsStore(); @@ -84,6 +88,7 @@ export default function BrowserPage() { const searchTermRef = useRef(''); useTheme({ systemUIVisible: false }); + useTransferQueue(libraryLoaded); useEffect(() => { startURLRef.current = state.startURL; @@ -441,6 +446,11 @@ export default function BrowserPage() { }); const { library, setLibrary } = useLibraryStore.getState(); const book = await appService.importBook(dstFilePath, library); + if (user && book && !book.uploadedAt && settings.autoUpload) { + setTimeout(() => { + transferManager.queueUpload(book); + }, 3000); + } setLibrary(library); appService.saveLibraryBooks(library); return book; @@ -452,7 +462,8 @@ export default function BrowserPage() { } return; }, - [state.baseURL, appService, libraryLoaded], + // eslint-disable-next-line react-hooks/exhaustive-deps + [user, state.baseURL, appService, libraryLoaded], ); const handleGenerateCachedImageUrl = useCallback( diff --git a/apps/readest-app/src/components/metadata/BookDetailModal.tsx b/apps/readest-app/src/components/metadata/BookDetailModal.tsx index 64a3718a..35a6ee15 100644 --- a/apps/readest-app/src/components/metadata/BookDetailModal.tsx +++ b/apps/readest-app/src/components/metadata/BookDetailModal.tsx @@ -19,7 +19,7 @@ interface BookDetailModalProps { book: Book; isOpen: boolean; onClose: () => void; - handleBookDownload?: (book: Book, redownload?: boolean) => void; + handleBookDownload?: (book: Book, options?: { redownload?: boolean; queued?: boolean }) => void; handleBookUpload?: (book: Book) => void; handleBookDelete?: (book: Book) => void; handleBookDeleteCloudBackup?: (book: Book) => void; @@ -158,7 +158,7 @@ const BookDetailModal: React.FC = ({ const handleRedownload = async () => { handleClose(); if (handleBookDownload) { - handleBookDownload(book, true); + handleBookDownload(book, { redownload: true, queued: false }); } };