From c547081aa61be5c7b6d4c12853c675954c2156eb Mon Sep 17 00:00:00 2001
From: admin <344137771@qq.com>
Date: Tue, 10 Feb 2026 14:45:18 +0800
Subject: [PATCH] 1

---
 src/i18n/index.js |  108 +++++++++++++++--------------------------------------
 1 files changed, 31 insertions(+), 77 deletions(-)

diff --git a/src/i18n/index.js b/src/i18n/index.js
index 4805b43..558d7ba 100644
--- a/src/i18n/index.js
+++ b/src/i18n/index.js
@@ -1,5 +1,5 @@
 import { createI18n } from 'vue-i18n'
-import { getStorage } from '@/utils/index'
+import { getStorage, getBrowserLang } from '@/utils/index'
 import enLocale from './modules/en'
 import cnLocale from './modules/CN'
 import zhcnLocale from './modules/zh-CN'
@@ -13,88 +13,42 @@
 import Italy from './modules/Italy'
 import SpanishLocal from './modules/es'
 import PortugueseLocal from './modules/pt'
-import gaLocale from './modules/ga'
-import nlLocale from './modules/nl'
-import svLocale from './modules/sv'
-import daLocale from './modules/da'
-import noLocale from './modules/no'
-import fiLocale from './modules/fi'
-import lbLocale from './modules/lb'
-import roLocale from './modules/ro'
-const lang = getStorage('lang') || 'en'
 
-const messages = {
-  'en': {
-    ...enLocale
-  },
-  'CN': {
-    ...cnLocale
-  },
-  'zh-CN': {
-    ...zhcnLocale
-  },
-  'Korean': {
-    ...korcnLocale
-  },
-  'Japanese': {
-    ...japcnLocale
-  },
-  'de': {
-    ...Deutsch
-  },
-  'fr': {
-    ...fr
-  },
-  'vi': {
-    ...vi
-  },
-  'th': {
-    ...th
-  },
-  'Italy': {
-    ...Italy
-  },
-  'es': {
-    ...SpanishLocal
-  },
-  'pt': {
-    ...PortugueseLocal
-  },
-  'gr': {
-    ...gr
-  },
-  'ga': {
-    ...gaLocale
-  },
-  'nl': {
-    ...nlLocale
-  },
-  'sv': {
-    ...svLocale
-  },
-  'da': {
-    ...daLocale
-  },
-  'no': {
-    ...noLocale
-  },
-  'fi': {
-    ...fiLocale
-  },
-  'lb': {
-    ...lbLocale
-  },
-  'ro': {
-    ...roLocale
-  },
+// 支持的 locale 列表,用于校验
+const SUPPORTED_LOCALES = ['en', 'CN', 'zh-CN', 'Korean', 'Japanese', 'de', 'fr', 'vi', 'th', 'Italy', 'es', 'pt', 'gr']
+
+// 获取初始语言:缓存 > 浏览器语言,并确保在支持列表中
+function getInitialLocale() {
+  const cached = getStorage('lang')
+  if (cached && SUPPORTED_LOCALES.includes(cached)) return cached
+  const browserLang = getBrowserLang()
+  return SUPPORTED_LOCALES.includes(browserLang) ? browserLang : 'en'
 }
 
+const messages = {
+  en: { ...enLocale },
+  CN: { ...cnLocale },
+  'zh-CN': { ...zhcnLocale },
+  Korean: { ...korcnLocale },
+  Japanese: { ...japcnLocale },
+  de: { ...Deutsch },
+  fr: { ...fr },
+  vi: { ...vi },
+  th: { ...th },
+  Italy: { ...Italy },
+  es: { ...SpanishLocal },
+  pt: { ...PortugueseLocal },
+  gr: { ...gr }
+}
 
 const i18n = createI18n({
   legacy: false,
-  locale: lang, // 首先从缓存里拿,没有的话就用浏览器语言,
-  fallbackLocale: 'en', // 设置备用语言
+  locale: getInitialLocale(),
+  fallbackLocale: ['zh-CN', 'en'], // 缺失 key 时先回退到简体中文,再回退到英文
   messages,
+  missingWarn: import.meta.env.DEV, // 仅开发环境输出缺失 key 警告
+  fallbackWarn: import.meta.env.DEV,
+  silentTranslationWarn: !import.meta.env.DEV
 })
 
-export default i18n
+export default i18n
\ No newline at end of file

--
Gitblit v1.9.3