From 206731c5899aea00ef8fcd1d6a297cb6890ddd4a Mon Sep 17 00:00:00 2001 From: Russell Ballestrini Date: Tue, 1 Jul 2025 17:53:10 -0400 Subject: [PATCH] fix(translation): restore nested placeholders correctly - The placeholder restoration logic now processes placeholders in reverse order, ensuring that nested content (like links within HTML tags) is restored correctly. --- src/translation.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/translation.js b/src/translation.js index e5add5c..10631fe 100644 --- a/src/translation.js +++ b/src/translation.js @@ -160,8 +160,10 @@ export function preserveSpecialContent(text) { export function restoreSpecialContent(translatedText, preservations) { let restoredText = translatedText; - // Simple replacement like Russell's approach - for (const item of preservations) { + // By reversing the array, we restore the outer elements (like HTML tags) first, + // which then reveals the inner placeholders (like URIs and code) for subsequent replacement. + for (let i = preservations.length - 1; i >= 0; i--) { + const item = preservations[i]; restoredText = restoredText.replace(new RegExp(item.placeholder, 'g'), item.content); }