import type { App } from "vue"
import type { I18nLanguage } from "./locales/index"

// lang/index.ts
import { createI18n, useI18n as vueI18n } from "vue-i18n"
import { enUS, zhCN } from "./locales"
// 创建 i18n 实例
export const i18n = createI18n({
  legacy: false, // 使用 Composition API
  locale: "zh-CN", // 默认语言
  fallbackLocale: "en-US", // 回退语言
  messages: {
    "zh-CN": zhCN,
    "en-US": enUS
  }
})

// 安装函数
export function installI18n(app: App) {
  app.use(i18n)
}

// 直接导出 useI18n
export const useI18n = vueI18n
export const globalI18n = i18n.global

// 辅助函数：获取当前语言
export function getCurrentLanguage(): string {
  return globalI18n.locale.value
}

// 辅助函数：设置语言
export function setLanguage(lang: I18nLanguage): void {
  globalI18n.locale.value = lang
}

export default i18n
