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.
This commit is contained in:
Russell Ballestrini 2025-07-01 17:53:10 -04:00
parent c3b5c94497
commit 206731c589

View file

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