import { defineStore } from 'pinia'
import zhCn from 'element-plus/es/locale/lang/zh-cn'
import en from 'element-plus/es/locale/lang/en'
import zhMessages from '@/locales/zh-CN.js' // 中文语言包
import enMessages from '@/locales/en.js'

// 定义localStorage的key
const LANG_KEY = 'APP_CURRENT_LANG'
const elLocaleMap = {
  'zh-CN': zhCn,
  en: en
}

// 默认语言（优先从localStorage读取，没有则用浏览器默认）
const defaultLang = localStorage.getItem(LANG_KEY) || (navigator.language || 'zh-CN').toLowerCase();
localStorage.setItem(LANG_KEY, defaultLang)

export const useLangStore = defineStore('lang', {
  state: () => ({
    // 当前语言
    currentLang: defaultLang === 'en' ? 'en' : 'zh-CN', // 兼容处理，只保留en/zh-CN
    elLocale: elLocaleMap[defaultLang === 'en' ? 'en' : 'zh-CN']
  }),
  actions: {
    // 切换语言
    changeLang(lang) {
      this.currentLang = lang
      this.elLocale = elLocaleMap[lang === 'en' ? 'en' : 'zh-CN']
      // 持久化到localStorage
      localStorage.setItem(LANG_KEY, lang)
      
      // 触发i18n实例的语言切换（后续在i18n配置中关联）
      if (window.$i18n && window.$i18n.global) {
        window.$i18n.global.locale.value = lang
      }
      window.$i18n.locale = lang
      console.log('切换到语言:', lang, $i18n)
      // 动态设置页面标题
      this.updateDynamicTitle()
    },
    // 动态更新页面标题
    updateDynamicTitle() {
      // 从语言包获取网站标题
      const siteTitle = this.currentLang === 'en' ? enMessages.common.title : zhMessages.common.title;
      if (siteTitle) {
        document.title = siteTitle
      }
    },
    
   
  }
})