From d6d50e0432ef5dc5eb1b2b676223b102d6526d77 Mon Sep 17 00:00:00 2001 From: zhuoqinglian <1035449612@qq.com> Date: Mon, 16 Mar 2026 10:37:47 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E8=AF=AD=E8=A8=80?= =?UTF-8?q?=E5=88=87=E6=8D=A2=E6=8E=A5=E5=8F=A3=E8=AF=B7=E6=B1=82=E5=BC=82?= =?UTF-8?q?=E5=B8=B8=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main/manager-mobile/src/http/request/alova.ts | 13 +++ main/manager-mobile/src/i18n/de.ts | 2 +- main/manager-mobile/src/i18n/en.ts | 2 +- main/manager-mobile/src/i18n/pt_BR.ts | 2 +- main/manager-mobile/src/i18n/vi.ts | 2 +- main/manager-mobile/src/i18n/zh_CN.ts | 2 +- main/manager-mobile/src/i18n/zh_TW.ts | 2 +- .../src/pages/settings/index.vue | 84 ++++++++++++------- main/manager-web/src/i18n/pt_BR.js | 6 +- 9 files changed, 76 insertions(+), 39 deletions(-) diff --git a/main/manager-mobile/src/http/request/alova.ts b/main/manager-mobile/src/http/request/alova.ts index e7887120..a90e8de2 100644 --- a/main/manager-mobile/src/http/request/alova.ts +++ b/main/manager-mobile/src/http/request/alova.ts @@ -1,5 +1,6 @@ import type { uniappRequestAdapter } from '@alova/adapter-uniapp' import type { IResponse } from './types' +import type { Language } from '@/store/lang' import AdapterUniapp from '@alova/adapter-uniapp' import { createAlova } from 'alova' import { createServerTokenAuthentication } from 'alova/client' @@ -8,6 +9,16 @@ import { getEnvBaseUrl } from '@/utils' import { toast } from '@/utils/toast' import { ContentTypeEnum, ResultEnum, ShowMessage } from './enum' +// 语言映射, 用于设置 Accept-language 头 +const langMap: Record = { + zh_CN: 'zh-CN', + en: 'en', + zh_TW: 'zh-TW', + de: 'de', + vi: 'vi', + pt_BR: 'pt-BR', +} + /** * 创建请求实例 */ @@ -51,6 +62,7 @@ const alovaInstance = createAlova({ // 检查混合内容错误(HTTPS页面请求HTTP接口) const currentProtocol = typeof window !== 'undefined' && window.location.protocol const requestProtocol = method.baseURL?.split(':')[0] + const currentLang = langMap[uni.getStorageSync('app_language') as Language || 'zh_CN'] if (currentProtocol === 'https:' && requestProtocol === 'http') { const errorMessage = '无法配置http协议地址,请检查接口地址' throw new Error(errorMessage) @@ -60,6 +72,7 @@ const alovaInstance = createAlova({ method.config.headers = { 'Content-Type': ContentTypeEnum.JSON, 'Accept': 'application/json, text/plain, */*', + 'Accept-language': currentLang, ...method.config.headers, } diff --git a/main/manager-mobile/src/i18n/de.ts b/main/manager-mobile/src/i18n/de.ts index 8cff59cd..aa048248 100644 --- a/main/manager-mobile/src/i18n/de.ts +++ b/main/manager-mobile/src/i18n/de.ts @@ -11,7 +11,7 @@ export default { 'login.navigationTitle': 'Anmelden', 'login.fetchConfigError': 'Konfiguration konnte nicht abgerufen werden:', 'login.selectLanguage': 'Sprache auswählen', - 'login.selectLanguageTip': 'Vi', + 'login.selectLanguageTip': 'De', 'login.welcomeBack': 'Willkommen zurück', 'login.pleaseLogin': 'Bitte melden Sie sich an', 'login.enterUsername': 'Bitte Benutzernamen eingeben', diff --git a/main/manager-mobile/src/i18n/en.ts b/main/manager-mobile/src/i18n/en.ts index c65ffefa..f0fe4c14 100644 --- a/main/manager-mobile/src/i18n/en.ts +++ b/main/manager-mobile/src/i18n/en.ts @@ -11,7 +11,7 @@ export default { 'login.navigationTitle': 'Login', 'login.fetchConfigError': 'Failed to fetch configuration:', 'login.selectLanguage': 'Select Language', - 'login.selectLanguageTip': '中文', + 'login.selectLanguageTip': 'En', 'login.welcomeBack': 'Welcome Back', 'login.pleaseLogin': 'Please log in to your account', 'login.enterUsername': 'Please enter username', diff --git a/main/manager-mobile/src/i18n/pt_BR.ts b/main/manager-mobile/src/i18n/pt_BR.ts index b2ea99f1..2901583b 100644 --- a/main/manager-mobile/src/i18n/pt_BR.ts +++ b/main/manager-mobile/src/i18n/pt_BR.ts @@ -11,7 +11,7 @@ export default { 'login.navigationTitle': 'Entrar', 'login.fetchConfigError': 'Falha ao buscar configuração:', 'login.selectLanguage': 'Selecionar Idioma', - 'login.selectLanguageTip': '中文', + 'login.selectLanguageTip': 'Pt', 'login.welcomeBack': 'Bem-vindo de Volta', 'login.pleaseLogin': 'Por favor, entre na sua conta', 'login.enterUsername': 'Por favor, insira o nome de usuário', diff --git a/main/manager-mobile/src/i18n/vi.ts b/main/manager-mobile/src/i18n/vi.ts index ba94de40..e9406afe 100644 --- a/main/manager-mobile/src/i18n/vi.ts +++ b/main/manager-mobile/src/i18n/vi.ts @@ -11,7 +11,7 @@ export default { 'login.navigationTitle': 'Đăng nhập', 'login.fetchConfigError': 'Không thể tải cấu hình:', 'login.selectLanguage': 'Chọn ngôn ngữ', - 'login.selectLanguageTip': 'de', + 'login.selectLanguageTip': 'Vi', 'login.welcomeBack': 'Chào mừng trở lại', 'login.pleaseLogin': 'Vui lòng đăng nhập vào tài khoản của bạn', 'login.enterUsername': 'Vui lòng nhập tên đăng nhập', diff --git a/main/manager-mobile/src/i18n/zh_CN.ts b/main/manager-mobile/src/i18n/zh_CN.ts index 4a1876d3..a9684485 100644 --- a/main/manager-mobile/src/i18n/zh_CN.ts +++ b/main/manager-mobile/src/i18n/zh_CN.ts @@ -11,7 +11,7 @@ export default { 'login.navigationTitle': '登录', 'login.fetchConfigError': '获取配置失败:', 'login.selectLanguage': '选择语言', - 'login.selectLanguageTip': 'En', + 'login.selectLanguageTip': '中文', 'login.welcomeBack': '欢迎回来', 'login.pleaseLogin': '请登录您的账户', 'login.enterUsername': '请输入用户名', diff --git a/main/manager-mobile/src/i18n/zh_TW.ts b/main/manager-mobile/src/i18n/zh_TW.ts index e15fd0ea..a8b5a18e 100644 --- a/main/manager-mobile/src/i18n/zh_TW.ts +++ b/main/manager-mobile/src/i18n/zh_TW.ts @@ -11,7 +11,7 @@ export default { 'login.navigationTitle': '登錄', 'login.fetchConfigError': '獲取配置失敗:', 'login.selectLanguage': '選擇語言', - 'login.selectLanguageTip': '简体', + 'login.selectLanguageTip': '繁體', 'login.welcomeBack': '歡迎回來', 'login.pleaseLogin': '請登錄您的賬戶', 'login.enterUsername': '請輸入用戶名', diff --git a/main/manager-mobile/src/pages/settings/index.vue b/main/manager-mobile/src/pages/settings/index.vue index e6bb5605..9921299f 100644 --- a/main/manager-mobile/src/pages/settings/index.vue +++ b/main/manager-mobile/src/pages/settings/index.vue @@ -127,10 +127,10 @@ async function saveServerBaseUrl() { uni.request({ url: `${getEnvBaseUrl()}/user/pub-config`, method: 'GET', - success: (res) => { + success: (res: any) => { if (res.statusCode === 200) { configStore.setConfig(res.data.data) - uni.setStorageSync('config', res.data.data.sm2PubKey) + uni.setStorageSync('config', res.data.data) } }, fail: (err) => { @@ -165,6 +165,7 @@ const showLanguageSheet = ref(false) function handleLanguageChange(lang: Language) { changeLanguage(lang) showLanguageSheet.value = false + currentLanguage.value = lang toast.success(t('settings.languageChanged')) } @@ -225,7 +226,8 @@ function clearAllCacheAfterUrlChange() { // 重新获取缓存信息 getCacheInfo() - } catch (error) { + } + catch (error) { console.error('清除缓存失败:', error) } } @@ -250,7 +252,8 @@ async function clearCache() { } }, }) - } catch (error) { + } + catch (error) { console.error('清除缓存失败:', error) toast.error(t('settings.clearCacheFailed')) } @@ -262,7 +265,7 @@ function showAbout() { title: t('settings.aboutApp', { appName: import.meta.env.VITE_APP_TITLE }), content: t('settings.aboutContent', { appName: import.meta.env.VITE_APP_TITLE, - version: '0.9.1' + version: '0.9.1', }), showCancel: false, confirmText: t('common.confirm'), @@ -278,7 +281,7 @@ onMounted(async () => { // 动态设置导航栏标题为国际化文本 uni.setNavigationBarTitle({ - title: t('settings.title') + title: t('settings.title'), }) }) @@ -296,8 +299,10 @@ onMounted(async () => { - + {{ t('settings.serverApiUrl') }} @@ -308,11 +313,13 @@ onMounted(async () => { - - + + input-class="text-[28rpx] text-[#232338]" @input="validateUrl" @blur="validateUrl" + /> {{ urlError }} @@ -320,14 +327,18 @@ onMounted(async () => { - + @click="saveServerBaseUrl" + > {{ t('settings.saveSettings') }} - + @click="resetServerBaseUrl" + > {{ t('settings.resetDefault') }} @@ -342,12 +353,15 @@ onMounted(async () => { - + + class="flex items-center justify-between border border-[#eeeeee] rounded-[16rpx] bg-[#f5f7fb] p-[24rpx] transition-all active:bg-[#eef3ff]" + > {{ t('settings.totalCacheSize') }} @@ -363,7 +377,8 @@ onMounted(async () => { + class="flex items-center justify-between border border-[#eeeeee] rounded-[16rpx] bg-[#f5f7fb] p-[24rpx]" + > {{ t('settings.cacheClear') }} @@ -374,7 +389,8 @@ onMounted(async () => { + @click="clearCache" + > {{ t('settings.clearCache') }} @@ -390,11 +406,14 @@ onMounted(async () => { - + + @click="showAbout" + > {{ t('settings.aboutUs') }} @@ -416,11 +435,14 @@ onMounted(async () => { - + + @click="showLanguageSheet = true" + > {{ t('settings.language') }} @@ -430,8 +452,8 @@ onMounted(async () => { - - {{supportedLanguages.find(lang => lang.code === currentLanguage)?.name}} + + {{ supportedLanguages.find(lang => lang.code === currentLanguage)?.name }} @@ -443,8 +465,10 @@ onMounted(async () => { - + {{ lang.name }} diff --git a/main/manager-web/src/i18n/pt_BR.js b/main/manager-web/src/i18n/pt_BR.js index 856ab86b..5e519203 100644 --- a/main/manager-web/src/i18n/pt_BR.js +++ b/main/manager-web/src/i18n/pt_BR.js @@ -670,10 +670,10 @@ export default { 'home.wish': 'Vamos ter um dia maravilhoso!', 'home.languageModel': 'LLM', 'home.voiceModel': 'TTS', - 'home.configureRole': 'Configurar Papel', - 'home.voiceprintRecognition': 'Impressão Vocal', + 'home.configureRole': 'ConfRoles', + 'home.voiceprintRecognition': 'RecVoz', 'home.deviceManagement': 'Dispositivos', - 'home.chatHistory': 'Histórico de Chat', + 'home.chatHistory': 'Conversa', 'home.lastConversation': 'Última Conversa', 'home.noConversation': 'Nenhuma conversa', 'home.justNow': 'Agora mesmo',