mirror of
https://github.com/open-webui/open-webui.git
synced 2026-09-21 13:38:19 -05:00
refac
This commit is contained in:
@@ -1,20 +1,6 @@
|
||||
import migration from './settings-key-migration.json';
|
||||
|
||||
type Dictionary = Record<string, string>;
|
||||
|
||||
/** 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;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user