From 5ddf7d36d7fdb4848050d79d3e280dbd31e95d02 Mon Sep 17 00:00:00 2001 From: Russell Ballestrini Date: Fri, 11 Jul 2025 20:16:27 -0400 Subject: [PATCH] fix HTML placeholder restoration in parallel chunk translation --- src/translation.js | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/translation.js b/src/translation.js index 3478c65..05c3814 100644 --- a/src/translation.js +++ b/src/translation.js @@ -508,10 +508,18 @@ export async function translateHTML(htmlContent, targetLanguage, sourceUrl = nul const chunks = await splitHTMLIntoChunks(processedContent, availableTokens, getSelectedModel()); console.log(`Split into ${chunks.length} chunks for parallel translation`); - // Translate all chunks in parallel for much faster processing + // Apply HTML preservation to each chunk individually before translation const translationPromises = chunks.map((chunk, index) => { console.log(`Queued chunk ${index + 1}/${chunks.length} for translation`); - return translateText(chunk, targetLanguage); + + // Each chunk gets its own preservation/restoration cycle + const { preservedText, preservations } = preserveSpecialContent(chunk); + + // Translate the preserved chunk + return translateText(preservedText, targetLanguage).then(translatedChunk => { + // Restore special content for this chunk + return restoreSpecialContent(translatedChunk, preservations); + }); }); // Wait for all translations to complete