From 38e24da96882b9bbab021d9eb2d5913902436d80 Mon Sep 17 00:00:00 2001 From: Huang Xin Date: Sun, 20 Apr 2025 11:16:37 +0800 Subject: [PATCH] fix: support v1 and v2 of translate API (#919) --- .../src/pages/api/deepl/translate.ts | 24 ++++++++++++++----- 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/apps/readest-app/src/pages/api/deepl/translate.ts b/apps/readest-app/src/pages/api/deepl/translate.ts index efd0626c..7d537ea8 100644 --- a/apps/readest-app/src/pages/api/deepl/translate.ts +++ b/apps/readest-app/src/pages/api/deepl/translate.ts @@ -52,12 +52,16 @@ const handler = async (req: NextApiRequest, res: NextApiResponse) => { const { text, - source_lang: sourceLang = 'auto', - target_lang: targetLang = 'en', + source_lang: sourceLang = 'AUTO', + target_lang: targetLang = 'EN', }: { text: string[]; source_lang: string; target_lang: string } = req.body; try { if (user && token) { - console.log('deeplApiUrl', deeplApiUrl); + const requestBody = { + text: deeplApiUrl.endsWith('/v2/translate') ? text : (text[0] ?? ''), + source_lang: sourceLang, + target_lang: targetLang, + }; const response = await fetch(deeplApiUrl, { method: 'POST', headers: { @@ -65,10 +69,18 @@ const handler = async (req: NextApiRequest, res: NextApiResponse) => { 'x-fingerprint': process.env['DEEPL_X_FINGERPRINT'] || '', 'Content-Type': 'application/json', }, - body: JSON.stringify(req.body), + body: JSON.stringify(requestBody), }); - res.status(response.status); - res.json(await response.json()); + const data = await response.json(); + const result = { + ...data, + translations: data.translations || [ + { + text: data.data, + }, + ], + }; + res.status(response.status).json(result); } else { const result = await deeplQuery({ text: text[0] ?? '',