From 755a10a7aed52ed45f87d499181c988de4123401 Mon Sep 17 00:00:00 2001 From: Kwaroran Date: Thu, 19 Dec 2024 05:40:52 +0900 Subject: [PATCH] Improve translation handling by processing text in chunks for better performance --- src/ts/translator/translator.ts | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/ts/translator/translator.ts b/src/ts/translator/translator.ts index b8ce3041..587c4582 100644 --- a/src/ts/translator/translator.ts +++ b/src/ts/translator/translator.ts @@ -317,8 +317,15 @@ export async function translateHTML(html: string, reverse:boolean, charArg:simpl return } - // node.textContent = await translate(node.textContent || '', reverse); - let translated = await translate(node.textContent || "", reverse); + const translateChunks = (node.textContent || '').split(/\n\n+/g); + let translatedChunksPromises: Promise[] = []; + for (const chunk of translateChunks) { + const translatedPromise = translate(chunk, reverse); + translatedChunksPromises.push(translatedPromise); + } + + const translatedChunks = await Promise.all(translatedChunksPromises); + let translated = translatedChunks.join("\n\n"); if (!reprocessDisplayScript) { node.textContent = translated; return;