浏览代码

fix: default locale

Timothy J. Baek 10 月之前
父节点
当前提交
d9a229b1ec
共有 3 个文件被更改,包括 17 次插入9 次删除
  1. 7 0
      backend/config.py
  2. 3 8
      backend/main.py
  3. 7 1
      src/routes/+layout.svelte

+ 7 - 0
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)
 )

+ 3 - 8
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": {

+ 7 - 1
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