import zhTW from './locales/zh-TW.js'
import vi from './locales/vi.js'

// 语言配置
const messages = {
  'zh-TW': zhTW,
  'vi': vi
}

// 默认语言
const defaultLocale = 'zh-TW'

// 获取当前语言
const getLocale = () => {
  return localStorage.getItem('locale') || defaultLocale
}

// 设置语言
const setLocale = (locale) => {
  localStorage.setItem('locale', locale)
}

// i18n 实例
class I18n {
  constructor() {
    this.locale = getLocale()
  }

  // 获取翻译
  t(key, params = {}) {
    const keys = key.split('.')
    let value = messages[this.locale]
    
    for (const k of keys) {
      if (value && typeof value === 'object') {
        value = value[k]
      } else {
        return key
      }
    }
    
    if (typeof value === 'string') {
      // 简单的参数替换
      return value.replace(/\{(\w+)\}/g, (match, key) => {
        return params[key] !== undefined ? params[key] : match
      })
    }
    
    return value || key
  }

  // 设置语言
  setLocale(locale) {
    if (messages[locale]) {
      this.locale = locale
      setLocale(locale)
    }
  }

  // 获取当前语言
  getLocale() {
    return this.locale
  }
}

// 创建全局实例
const i18n = new I18n()

export default i18n

