diff --git a/apps/readest-app/public/locales/ar/translation.json b/apps/readest-app/public/locales/ar/translation.json index 2b9aa9ec..4bba7cb9 100644 --- a/apps/readest-app/public/locales/ar/translation.json +++ b/apps/readest-app/public/locales/ar/translation.json @@ -264,5 +264,6 @@ "Swap Click-to-Flip Area": "تبديل منطقة التقليب بالنقر", "No chapters detected.": "لم يتم التعرف على فصول.", "Failed to parse the EPUB file.": "فشل في تحليل ملف EPUB.", - "This book format is not supported.": "هذا تنسيق الكتاب غير مدعوم." + "This book format is not supported.": "هذا تنسيق الكتاب غير مدعوم.", + "Unable to fetch the translation. Please log in first and try again.": "تعذر جلب الترجمة. يرجى تسجيل الدخول أولاً ثم المحاولة مرة أخرى." } diff --git a/apps/readest-app/public/locales/de/translation.json b/apps/readest-app/public/locales/de/translation.json index de530f33..be6fa820 100644 --- a/apps/readest-app/public/locales/de/translation.json +++ b/apps/readest-app/public/locales/de/translation.json @@ -264,5 +264,6 @@ "Swap Click-to-Flip Area": "Klick-zu-Blättern-Bereich tauschen", "No chapters detected.": "Keine Kapitel erkannt.", "Failed to parse the EPUB file.": "Fehler beim Parsen der EPUB-Datei.", - "This book format is not supported.": "Dieses Buchformat wird nicht unterstützt." + "This book format is not supported.": "Dieses Buchformat wird nicht unterstützt.", + "Unable to fetch the translation. Please log in first and try again.": "Übersetzung konnte nicht abgerufen werden. Bitte zuerst anmelden und erneut versuchen." } diff --git a/apps/readest-app/public/locales/el/translation.json b/apps/readest-app/public/locales/el/translation.json index 88b29338..f78e1032 100644 --- a/apps/readest-app/public/locales/el/translation.json +++ b/apps/readest-app/public/locales/el/translation.json @@ -264,5 +264,6 @@ "Swap Click-to-Flip Area": "Ανταλλαγή περιοχής κλικ για γύρισμα σελίδας", "No chapters detected.": "Δεν εντοπίστηκαν κεφάλαια.", "Failed to parse the EPUB file.": "Αποτυχία ανάλυσης του αρχείου EPUB.", - "This book format is not supported.": "Αυτή η μορφή βιβλίου δεν υποστηρίζεται." + "This book format is not supported.": "Αυτή η μορφή βιβλίου δεν υποστηρίζεται.", + "Unable to fetch the translation. Please log in first and try again.": "Αδυναμία λήψης της μετάφρασης. Παρακαλώ συνδεθείτε πρώτα και δοκιμάστε ξανά." } diff --git a/apps/readest-app/public/locales/es/translation.json b/apps/readest-app/public/locales/es/translation.json index 5b922ded..ff77714e 100644 --- a/apps/readest-app/public/locales/es/translation.json +++ b/apps/readest-app/public/locales/es/translation.json @@ -264,5 +264,6 @@ "Swap Click-to-Flip Area": "Intercambiar área de clic para voltear", "No chapters detected.": "No se detectaron capítulos.", "Failed to parse the EPUB file.": "Error al analizar el archivo EPUB.", - "This book format is not supported.": "Este formato de libro no es compatible." + "This book format is not supported.": "Este formato de libro no es compatible.", + "Unable to fetch the translation. Please log in first and try again.": "No se puede obtener la traducción. Por favor, inicia sesión primero e inténtalo de nuevo." } diff --git a/apps/readest-app/public/locales/fr/translation.json b/apps/readest-app/public/locales/fr/translation.json index 4510cd98..4138ba28 100644 --- a/apps/readest-app/public/locales/fr/translation.json +++ b/apps/readest-app/public/locales/fr/translation.json @@ -264,5 +264,6 @@ "Swap Click-to-Flip Area": "Échanger la zone de clic pour tourner", "No chapters detected.": "Aucun chapitre détecté.", "Failed to parse the EPUB file.": "Échec de l'analyse du fichier EPUB.", - "This book format is not supported.": "Ce format de livre n'est pas pris en charge." + "This book format is not supported.": "Ce format de livre n'est pas pris en charge.", + "Unable to fetch the translation. Please log in first and try again.": "Impossible de récupérer la traduction. Veuillez d'abord vous connecter et réessayer." } diff --git a/apps/readest-app/public/locales/hi/translation.json b/apps/readest-app/public/locales/hi/translation.json index 1b34d4e8..f88e33f0 100644 --- a/apps/readest-app/public/locales/hi/translation.json +++ b/apps/readest-app/public/locales/hi/translation.json @@ -264,5 +264,6 @@ "Swap Click-to-Flip Area": "क्लिक-टू-फ्लिप क्षेत्र स्वैप करें", "No chapters detected.": "कोई अध्याय नहीं मिला।", "Failed to parse the EPUB file.": "EPUB फ़ाइल को पार्स करने में विफल।", - "This book format is not supported.": "यह पुस्तक प्रारूप समर्थित नहीं है।" + "This book format is not supported.": "यह पुस्तक प्रारूप समर्थित नहीं है।", + "Unable to fetch the translation. Please log in first and try again.": "अनुवाद प्राप्त करने में असमर्थ। कृपया पहले लॉग इन करें और पुनः प्रयास करें।" } diff --git a/apps/readest-app/public/locales/id/translation.json b/apps/readest-app/public/locales/id/translation.json index 7bed02c4..ddc012ae 100644 --- a/apps/readest-app/public/locales/id/translation.json +++ b/apps/readest-app/public/locales/id/translation.json @@ -264,5 +264,6 @@ "Swap Click-to-Flip Area": "Tukar Area Klik untuk Membalik", "No chapters detected.": "Tidak ada bab yang terdeteksi.", "Failed to parse the EPUB file.": "Gagal mengurai file EPUB.", - "This book format is not supported.": "Format buku ini tidak didukung." + "This book format is not supported.": "Format buku ini tidak didukung.", + "Unable to fetch the translation. Please log in first and try again.": "Tidak dapat mengambil terjemahan. Silakan masuk terlebih dahulu dan coba lagi." } diff --git a/apps/readest-app/public/locales/it/translation.json b/apps/readest-app/public/locales/it/translation.json index 4d230306..3e3809c6 100644 --- a/apps/readest-app/public/locales/it/translation.json +++ b/apps/readest-app/public/locales/it/translation.json @@ -264,5 +264,6 @@ "Swap Click-to-Flip Area": "Scambia area click per voltare pagina", "No chapters detected.": "Nessun capitolo rilevato.", "Failed to parse the EPUB file.": "Impossibile analizzare il file EPUB.", - "This book format is not supported.": "Questo formato di libro non è supportato." + "This book format is not supported.": "Questo formato di libro non è supportato.", + "Unable to fetch the translation. Please log in first and try again.": "Impossibile recuperare la traduzione. Accedi prima e riprova." } diff --git a/apps/readest-app/public/locales/ja/translation.json b/apps/readest-app/public/locales/ja/translation.json index 212ea3c4..c1cdcfd4 100644 --- a/apps/readest-app/public/locales/ja/translation.json +++ b/apps/readest-app/public/locales/ja/translation.json @@ -264,5 +264,6 @@ "Swap Click-to-Flip Area": "クリックめくりエリアを入れ替え", "No chapters detected.": "章が検出されません。", "Failed to parse the EPUB file.": "EPUBファイルの解析に失敗しました。", - "This book format is not supported.": "この書籍形式はサポートされていません。" + "This book format is not supported.": "この書籍形式はサポートされていません。", + "Unable to fetch the translation. Please log in first and try again.": "翻訳を取得できません。まずログインして再試行してください。" } diff --git a/apps/readest-app/public/locales/ko/translation.json b/apps/readest-app/public/locales/ko/translation.json index 4d73f631..857baf21 100644 --- a/apps/readest-app/public/locales/ko/translation.json +++ b/apps/readest-app/public/locales/ko/translation.json @@ -264,5 +264,6 @@ "Swap Click-to-Flip Area": "클릭-뒤집기 영역 교환", "No chapters detected.": "장 발견되지 않음.", "Failed to parse the EPUB file.": "EPUB 파일 구문 분석 실패.", - "This book format is not supported.": "이 책 형식은 지원되지 않습니다." + "This book format is not supported.": "이 책 형식은 지원되지 않습니다.", + "Unable to fetch the translation. Please log in first and try again.": "번역을 가져올 수 없습니다. 먼저 로그인하고 다시 시도하세요." } diff --git a/apps/readest-app/public/locales/pl/translation.json b/apps/readest-app/public/locales/pl/translation.json index aa4cbe58..bcabfcc3 100644 --- a/apps/readest-app/public/locales/pl/translation.json +++ b/apps/readest-app/public/locales/pl/translation.json @@ -264,5 +264,6 @@ "Swap Click-to-Flip Area": "Zamień obszar kliknięcia na przewracanie", "No chapters detected.": "Nie wykryto rozdziałów.", "Failed to parse the EPUB file.": "Nie udało się przeanalizować pliku EPUB.", - "This book format is not supported.": "Ten format książki nie jest obsługiwany." + "This book format is not supported.": "Ten format książki nie jest obsługiwany.", + "Unable to fetch the translation. Please log in first and try again.": "Nie można pobrać tłumaczenia. Proszę najpierw się zalogować i spróbować ponownie." } diff --git a/apps/readest-app/public/locales/pt/translation.json b/apps/readest-app/public/locales/pt/translation.json index 49c7eab6..a993da36 100644 --- a/apps/readest-app/public/locales/pt/translation.json +++ b/apps/readest-app/public/locales/pt/translation.json @@ -264,5 +264,6 @@ "Swap Click-to-Flip Area": "Trocar Área de Clique para Virar", "No chapters detected.": "Nenhum capítulo detectado.", "Failed to parse the EPUB file.": "Falha ao analisar o arquivo EPUB.", - "This book format is not supported.": "Este formato de livro não é suportado." + "This book format is not supported.": "Este formato de livro não é suportado.", + "Unable to fetch the translation. Please log in first and try again.": "Não foi possível buscar a tradução. Faça login primeiro e tente novamente." } diff --git a/apps/readest-app/public/locales/ru/translation.json b/apps/readest-app/public/locales/ru/translation.json index 5873b5c3..312c58d4 100644 --- a/apps/readest-app/public/locales/ru/translation.json +++ b/apps/readest-app/public/locales/ru/translation.json @@ -264,5 +264,6 @@ "Swap Click-to-Flip Area": "Переключить область клика для переворота", "No chapters detected.": "Не обнаружено глав.", "Failed to parse the EPUB file.": "Не удалось разобрать файл EPUB.", - "This book format is not supported.": "Этот формат книги не поддерживается." + "This book format is not supported.": "Этот формат книги не поддерживается.", + "Unable to fetch the translation. Please log in first and try again.": "Не удалось получить перевод. Пожалуйста, войдите в систему и попробуйте снова." } diff --git a/apps/readest-app/public/locales/tr/translation.json b/apps/readest-app/public/locales/tr/translation.json index 6c636de1..ec06b469 100644 --- a/apps/readest-app/public/locales/tr/translation.json +++ b/apps/readest-app/public/locales/tr/translation.json @@ -264,5 +264,6 @@ "Swap Click-to-Flip Area": "Tıkla-Çevir Alanını Değiştir", "No chapters detected.": "Bölüm bulunamadı.", "Failed to parse the EPUB file.": "EPUB dosyası ayrıştırılamadı.", - "This book format is not supported.": "Bu kitap formatı desteklenmiyor." + "This book format is not supported.": "Bu kitap formatı desteklenmiyor.", + "Unable to fetch the translation. Please log in first and try again.": "Çeviri alınamıyor. Lütfen önce giriş yapın ve tekrar deneyin." } diff --git a/apps/readest-app/public/locales/uk/translation.json b/apps/readest-app/public/locales/uk/translation.json index 5c43e845..38ca096e 100644 --- a/apps/readest-app/public/locales/uk/translation.json +++ b/apps/readest-app/public/locales/uk/translation.json @@ -264,5 +264,6 @@ "Swap Click-to-Flip Area": "Поміняти місцями область кліку для перевороту", "No chapters detected.": "Не виявлено жодного розділу.", "Failed to parse the EPUB file.": "Не вдалося розібрати файл EPUB.", - "This book format is not supported.": "Цей формат книги не підтримується." + "This book format is not supported.": "Цей формат книги не підтримується.", + "Unable to fetch the translation. Please log in first and try again.": "Не вдалося отримати переклад. Будь ласка, спочатку увійдіть у систему та спробуйте ще раз." } diff --git a/apps/readest-app/public/locales/vi/translation.json b/apps/readest-app/public/locales/vi/translation.json index fa5032fe..f1df8ff6 100644 --- a/apps/readest-app/public/locales/vi/translation.json +++ b/apps/readest-app/public/locales/vi/translation.json @@ -264,5 +264,6 @@ "Swap Click-to-Flip Area": "Hoán đổi khu vực nhấp để lật trang", "No chapters detected.": "Không phát hiện thấy chương nào.", "Failed to parse the EPUB file.": "Không thể phân tích tệp EPUB.", - "This book format is not supported.": "Định dạng sách này không được hỗ trợ." + "This book format is not supported.": "Định dạng sách này không được hỗ trợ.", + "Unable to fetch the translation. Please log in first and try again.": "Không thể tải dịch vụ. Vui lòng đăng nhập trước và thử lại." } diff --git a/apps/readest-app/public/locales/zh-CN/translation.json b/apps/readest-app/public/locales/zh-CN/translation.json index 3a300887..d6f93e48 100644 --- a/apps/readest-app/public/locales/zh-CN/translation.json +++ b/apps/readest-app/public/locales/zh-CN/translation.json @@ -264,5 +264,6 @@ "Swap Click-to-Flip Area": "交换点击翻页区域", "No chapters detected.": "未检测到章节。", "Failed to parse the EPUB file.": "无法解析 EPUB 文件。", - "This book format is not supported.": "不支持此书籍格式。" + "This book format is not supported.": "不支持此书籍格式。", + "Unable to fetch the translation. Please log in first and try again.": "无法获取翻译。请登录后重试。" } diff --git a/apps/readest-app/public/locales/zh-TW/translation.json b/apps/readest-app/public/locales/zh-TW/translation.json index 4541e156..ac4155cb 100644 --- a/apps/readest-app/public/locales/zh-TW/translation.json +++ b/apps/readest-app/public/locales/zh-TW/translation.json @@ -264,5 +264,6 @@ "Swap Click-to-Flip Area": "交換點擊翻頁區域", "No chapters detected.": "未檢測到章節。", "Failed to parse the EPUB file.": "無法解析 EPUB 文件。", - "This book format is not supported.": "不支援此書籍格式。" + "This book format is not supported.": "不支援此書籍格式。", + "Unable to fetch the translation. Please log in first and try again.": "無法獲取翻譯。請先登入然後重試。" } diff --git a/apps/readest-app/src/app/reader/components/annotator/DeepLPopup.tsx b/apps/readest-app/src/app/reader/components/annotator/DeepLPopup.tsx index a666ac06..d8ed4aa7 100644 --- a/apps/readest-app/src/app/reader/components/annotator/DeepLPopup.tsx +++ b/apps/readest-app/src/app/reader/components/annotator/DeepLPopup.tsx @@ -103,7 +103,11 @@ const DeepLPopup: React.FC = ({ setTranslation(translatedText); } catch (err) { console.error(err); - setError(_('Unable to fetch the translation. Try again later.')); + if (!token) { + setError(_('Unable to fetch the translation. Please log in first and try again.')); + } else { + setError(_('Unable to fetch the translation. Try again later.')); + } } finally { setLoading(false); } diff --git a/apps/readest-app/src/pages/api/deepl/translate.ts b/apps/readest-app/src/pages/api/deepl/translate.ts index 592fae76..efd0626c 100644 --- a/apps/readest-app/src/pages/api/deepl/translate.ts +++ b/apps/readest-app/src/pages/api/deepl/translate.ts @@ -26,6 +26,12 @@ const getDeepLAPIKey = (keys: string | undefined) => { }; const handler = async (req: NextApiRequest, res: NextApiResponse) => { + await runMiddleware(req, res, corsAllMethods); + + if (req.method !== 'POST') { + return res.status(405).json({ error: 'Method not allowed' }); + } + const { user, token } = await getUserAndToken(req.headers['authorization']); const { DEEPL_PRO_API, DEEPL_FREE_API } = process.env; const deepFreeApiUrl = DEEPL_FREE_API || DEFAULT_DEEPL_FREE_API; @@ -44,8 +50,6 @@ const handler = async (req: NextApiRequest, res: NextApiResponse) => { ? getDeepLAPIKey(process.env['DEEPL_PRO_API_KEYS']) : getDeepLAPIKey(process.env['DEEPL_FREE_API_KEYS']); - await runMiddleware(req, res, corsAllMethods); - const { text, source_lang: sourceLang = 'auto', @@ -61,7 +65,7 @@ const handler = async (req: NextApiRequest, res: NextApiResponse) => { 'x-fingerprint': process.env['DEEPL_X_FINGERPRINT'] || '', 'Content-Type': 'application/json', }, - body: req.method === 'POST' ? JSON.stringify(req.body) : undefined, + body: JSON.stringify(req.body), }); res.status(response.status); res.json(await response.json());