import { useI18n } from 'vue-i18n'
import { setLanguage } from '@/locales'

/**
 * 多语言工具函数
 */
export function useTranslation() {
  const { t, locale } = useI18n()
  
  /**
   * 切换语言
   * @param {string} lang 语言代码 zh-CN | en-US
   */
  const changeLanguage = (lang) => {
    setLanguage(lang)
    // 可选：刷新页面以确保所有组件重新渲染
    // window.location.reload()
  }
  
  /**
   * 获取当前语言标签
   */
  const getCurrentLanguageLabel = () => {
    const labels = {
      'zh-CN': '中文',
      'en-US': 'English'
    }
    return labels[locale.value] || '中文'
  }
  
  /**
   * 获取语言选项列表
   */
  const getLanguageOptions = () => {
    return [
      { value: 'zh-CN', label: '🇨🇳 中文' },
      { value: 'en-US', label: '🇺🇸 English' }
    ]
  }
  
  return {
    t,
    locale,
    changeLanguage,
    getCurrentLanguageLabel,
    getLanguageOptions
  }
}

/**
 * 语言切换 Composable
 */
export function useLanguageSwitcher() {
  const { locale } = useI18n()
  
  const switchLanguage = (newLocale) => {
    setLanguage(newLocale)
  }
  
  const toggleLanguage = () => {
    const newLocale = locale.value === 'zh-CN' ? 'en-US' : 'zh-CN'
    switchLanguage(newLocale)
  }
  
  return {
    locale,
    switchLanguage,
    toggleLanguage
  }
}
