diff --git a/backend/config.py b/backend/config.py index 3a825f53a..4b4b5deac 100644 --- a/backend/config.py +++ b/backend/config.py @@ -674,6 +674,13 @@ ENABLE_SIGNUP = PersistentConfig( else os.environ.get("ENABLE_SIGNUP", "True").lower() == "true" ), ) + +DEFAULT_LOCALE = PersistentConfig( + "DEFAULT_LOCALE", + "ui.default_locale", + os.environ.get("DEFAULT_LOCALE", ""), +) + DEFAULT_MODELS = PersistentConfig( "DEFAULT_MODELS", "ui.default_models", os.environ.get("DEFAULT_MODELS", None) ) diff --git a/backend/main.py b/backend/main.py index dcd383f48..c0406301e 100644 --- a/backend/main.py +++ b/backend/main.py @@ -99,8 +99,10 @@ from config import ( CHANGELOG, FRONTEND_BUILD_DIR, UPLOAD_DIR, + CACHE_DIR, STATIC_DIR, + DEFAULT_LOCALE, ENABLE_OPENAI_API, ENABLE_OLLAMA_API, ENABLE_MODEL_FILTER, @@ -1722,18 +1724,11 @@ async def update_pipeline_valves( @app.get("/api/config") async def get_app_config(): - # Checking and Handling the Absence of 'ui' in CONFIG_DATA - - default_locale = "en-US" - if "ui" in CONFIG_DATA: - default_locale = CONFIG_DATA["ui"].get("default_locale", "en-US") - - # The Rest of the Function Now Uses the Variables Defined Above return { "status": True, "name": WEBUI_NAME, "version": VERSION, - "default_locale": default_locale, + "default_locale": str(DEFAULT_LOCALE), "default_models": webui_app.state.config.DEFAULT_MODELS, "default_prompt_suggestions": webui_app.state.config.DEFAULT_PROMPT_SUGGESTIONS, "features": { diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte index 4409d3f05..bd5d5a904 100644 --- a/src/routes/+layout.svelte +++ b/src/routes/+layout.svelte @@ -96,8 +96,14 @@ const browserLanguages = navigator.languages ? navigator.languages : [navigator.language || navigator.userLanguage]; + const lang = backendConfig.default_locale + ? backendConfig.default_locale + : bestMatchingLanguage(languages, browserLanguages, 'en-US'); - initI18n(bestMatchingLanguage(languages, browserLanguages, backendConfig.default_locale)); + initI18n(); + if (!localStorage.locale) { + $i18n.changeLanguage(lang); + } if (backendConfig) { // Save Backend Status to Store