From f12062f1e7be2974addbc50923f4427d3fba5a1c Mon Sep 17 00:00:00 2001 From: filpgame Date: Sat, 16 May 2026 03:31:15 -0300 Subject: [PATCH] fix(email): parse JSON-encoded language setting before using as locale general_default_language is stored as a JSON string (e.g. "\"pt\""). getRecipientLanguage() returned the raw value including quotes, causing the translation lookup to miss every match and fall back to English. Co-Authored-By: Claude Sonnet 4.6 --- backend/src/services/emailProcessor.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/backend/src/services/emailProcessor.js b/backend/src/services/emailProcessor.js index ecab43cb..4c076ef2 100644 --- a/backend/src/services/emailProcessor.js +++ b/backend/src/services/emailProcessor.js @@ -116,7 +116,9 @@ async function getRecipientLanguage(email, eventId = null) { .where('setting_key', 'general_default_language') .first(); if (langSetting && langSetting.setting_value) { - return langSetting.setting_value; + let lang = langSetting.setting_value; + try { lang = JSON.parse(lang); } catch (_) {} + if (typeof lang === 'string' && lang.trim()) return lang.trim(); } } catch (error) { logger.error('Error fetching app settings language:', error);