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); }