From 9d98ffcddf792be8d567ea39370d39fcac649acd Mon Sep 17 00:00:00 2001 From: Timothy Jaeryang Baek Date: Fri, 18 Sep 2026 10:55:55 -0400 Subject: [PATCH] refac --- src/lib/i18n/settings-translations.ts | 27 +++++---------------------- 1 file changed, 5 insertions(+), 22 deletions(-) diff --git a/src/lib/i18n/settings-translations.ts b/src/lib/i18n/settings-translations.ts index be8fb8cf2a..fe4d939328 100644 --- a/src/lib/i18n/settings-translations.ts +++ b/src/lib/i18n/settings-translations.ts @@ -1,20 +1,6 @@ -import migration from './settings-key-migration.json'; - type Dictionary = Record; -/** Preserve existing administrator overrides while settings move to semantic keys. */ -export const settingsOverrides = (overrides: Dictionary = {}): Dictionary => { - const result = Object.fromEntries(Object.entries(overrides).filter(([, value]) => value.trim())); - for (const [oldKey, keys] of Object.entries(migration)) { - if (!overrides[oldKey]?.trim()) continue; - for (const key of keys) { - if (!overrides[key]?.trim()) result[key] = overrides[oldKey]; - } - } - return result; -}; - -/** Only semantic settings keys get this fallback; legacy i18n behavior stays intact. */ +/** Only semantic settings keys get this fallback; other translations keep their existing behavior. */ export const assembleSettingsTranslations = ( bundled: Dictionary, english: Dictionary, @@ -22,15 +8,12 @@ export const assembleSettingsTranslations = ( englishOverrides: Dictionary = {} ): Dictionary => { const result = { ...bundled, ...overrides }; - const local = settingsOverrides(overrides); - const fallback = { ...english, ...settingsOverrides(englishOverrides) }; for (const key of Object.keys(english)) { if (!key.startsWith('settings.')) continue; - result[key] = local[key]?.trim() - ? local[key] - : bundled[key]?.trim() - ? bundled[key] - : fallback[key]; + result[key] = + [overrides[key], bundled[key], englishOverrides[key], english[key]].find((value) => + value?.trim() + ) ?? ''; } return result; };