liveh5-nuxt/app/plugins/i18n.ts

43 lines
1.2 KiB
TypeScript
Raw Permalink Normal View History

import type { Locale as TypeLocale } from '#i18n'
2025-01-08 05:26:12 +00:00
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'
2025-01-08 05:26:12 +00:00
export default defineNuxtPlugin(() => {
// 载入 vant 语言包
2025-01-08 05:26:12 +00:00
Locale.use('zh-CN', zhCN)
Locale.use('en-US', enUS)
Locale.use('ja-JP', jaJP)
Locale.use('zh-TW', zhTW)
2025-01-08 05:26:12 +00:00
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'
}
2025-02-27 07:00:46 +00:00
// 使用系统语言
const systemLang = getSystemLanguage()
setLocale(systemLang as TypeLocale)
Locale.use(systemLang)
2025-01-08 05:26:12 +00:00
}
})