Simplify widget language settings
This commit is contained in:
@@ -299,9 +299,7 @@ function defaultSettings() {
|
||||
return {
|
||||
widgetLanguage: {
|
||||
mode: "auto",
|
||||
defaultLanguage: "cs",
|
||||
fixedLanguage: "cs",
|
||||
fallbackLanguage: "cs"
|
||||
defaultLanguage: "cs"
|
||||
},
|
||||
widgetCopy,
|
||||
title: { cs: widgetCopy.cs.title, en: widgetCopy.en.title },
|
||||
@@ -1096,12 +1094,11 @@ function mergeSiteSettings(currentSettings, incomingSettings) {
|
||||
function normalizeWidgetLanguageSettings(value) {
|
||||
const defaults = defaultSettings().widgetLanguage;
|
||||
const settings = { ...defaults, ...(value || {}) };
|
||||
const mode = settings.mode === "fixed" ? "fixed" : "auto";
|
||||
const mode = settings.mode === "fixed" || settings.mode === "default" ? "default" : "auto";
|
||||
const defaultLanguage = allowedWidgetLanguage(settings.defaultLanguage || settings.fixedLanguage || settings.fallbackLanguage) || defaults.defaultLanguage;
|
||||
return {
|
||||
mode,
|
||||
defaultLanguage: allowedWidgetLanguage(settings.defaultLanguage) || defaults.defaultLanguage,
|
||||
fixedLanguage: allowedWidgetLanguage(settings.fixedLanguage) || defaults.fixedLanguage,
|
||||
fallbackLanguage: allowedWidgetLanguage(settings.fallbackLanguage) || allowedWidgetLanguage(settings.defaultLanguage) || defaults.fallbackLanguage
|
||||
defaultLanguage
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1162,7 +1159,7 @@ function getTranslationSettings() {
|
||||
function widgetLanguageForRequest(site, url) {
|
||||
const settings = parseJson(site.settings_json, defaultSettings());
|
||||
const languageSettings = normalizeWidgetLanguageSettings(settings.widgetLanguage);
|
||||
if (languageSettings.mode === "fixed") return languageSettings.fixedLanguage;
|
||||
if (languageSettings.mode === "default") return languageSettings.defaultLanguage;
|
||||
return allowedWidgetLanguage(url.searchParams.get("lang")) || languageSettings.defaultLanguage;
|
||||
}
|
||||
|
||||
@@ -1171,12 +1168,10 @@ async function widgetCopyForLanguage(site, requestedLanguage) {
|
||||
settings.widgetLanguage = normalizeWidgetLanguageSettings(settings.widgetLanguage);
|
||||
settings.widgetCopy = normalizeWidgetCopy(settings.widgetCopy || {}, settings);
|
||||
|
||||
const language = allowedWidgetLanguage(requestedLanguage) || settings.widgetLanguage.fallbackLanguage;
|
||||
const language = allowedWidgetLanguage(requestedLanguage) || settings.widgetLanguage.defaultLanguage;
|
||||
if (settings.widgetCopy[language]) return { language, copy: settings.widgetCopy[language] };
|
||||
|
||||
const fallbackLanguage = settings.widgetCopy[settings.widgetLanguage.fallbackLanguage]
|
||||
? settings.widgetLanguage.fallbackLanguage
|
||||
: settings.widgetLanguage.defaultLanguage;
|
||||
const fallbackLanguage = settings.widgetLanguage.defaultLanguage;
|
||||
const fallbackCopy = settings.widgetCopy[fallbackLanguage] || defaultWidgetCopy("cs");
|
||||
const translated = await translateWidgetCopyOnce(fallbackCopy, fallbackLanguage, language);
|
||||
if (!translated) return { language: fallbackLanguage, copy: fallbackCopy };
|
||||
|
||||
Reference in New Issue
Block a user