From 7a7ab5dfcabfbbc5b101843055d86a65173c0482 Mon Sep 17 00:00:00 2001 From: rajchales-monito Date: Thu, 30 Jul 2026 08:15:14 +0200 Subject: [PATCH] Guard lazy widget copy translations --- server.js | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/server.js b/server.js index bfefd8d..a4e089b 100644 --- a/server.js +++ b/server.js @@ -1218,13 +1218,20 @@ async function translateWidgetCopyOnce(sourceCopy, sourceLanguage, targetLanguag throw new Error(openAiError.message); } const data = await response.json(); - return normalizeWidgetCopyEntry(parseJsonBlock(outputTextFromResponse(data)), targetLanguage); + const translated = normalizeWidgetCopyEntry(parseJsonBlock(outputTextFromResponse(data)), targetLanguage); + if (widgetCopyLooksUntranslated(sourceCopy, translated)) return null; + return translated; } catch (error) { console.error("widget_copy_translation_failed", targetLanguage, error.message); return null; } } +function widgetCopyLooksUntranslated(sourceCopy, translatedCopy) { + const importantFields = ["title", "intro", "offlineIntro", "placeholder", "sendLabel"]; + return importantFields.every((field) => String(sourceCopy[field] || "").trim() === String(translatedCopy[field] || "").trim()); +} + function parseJsonBlock(value) { const text = String(value || "").trim().replace(/^```(?:json)?/i, "").replace(/```$/, "").trim(); return JSON.parse(text);