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)
  }
})