fenghe-auction/app/plugins/i18n.ts

43 lines
1.2 KiB
TypeScript
Raw Normal View History

2025-04-10 07:47:40 +00:00
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)
}
})