import type { Locale as TypeLocale } from '#i18n' import { Locale } from 'vant' import enUS from 'vant/es/locale/lang/en-US' import zhCN from 'vant/es/locale/lang/zh-CN' import jaJP from 'vant/es/locale/lang/ja-JP' import zhTW from 'vant/es/locale/lang/zh-TW' export default defineNuxtPlugin(() => { // 载入 vant 语言包 Locale.use('zh-CN', zhCN) Locale.use('en-US', enUS) Locale.use('ja-JP', jaJP) Locale.use('zh-TW', zhTW) if (import.meta.client) { const i18n = useNuxtApp().$i18n const { setLocale } = i18n const nuxtApp = useNuxtApp() // 获取系统语言 const getSystemLanguage = () => { const browserLang = navigator.language // 将浏览器语言映射到应用支持的语言 if (browserLang.startsWith('zh')) { return browserLang.includes('TW') || browserLang.includes('HK') ? 'zh-TW' : 'zh-CN' } else if (browserLang.startsWith('ja')) { return 'ja-JP' } else if (browserLang.startsWith('en')) { return 'en-US' } // 默认返回中文 return 'zh-CN' } // 使用系统语言 const systemLang = getSystemLanguage() setLocale(systemLang as TypeLocale) Locale.use(systemLang) } })