import { createI18n } from 'vue-i18n'
import zhCN from './zh-CN'
import en from './en'
import { useAppSettingsStore } from '@/stores/appSettings'

// 界面语言:模块加载时 appSettings 缓存尚未填充(loadAll 在 App.vue onMounted 异步执行),
// 故这里 get() 拿到默认 'zh-CN';真实用户偏好由 App.vue 在 loadAll 完成后回填到
// i18n.global.locale.value,初帧渲染短暂 zh-CN 不影响功能。
const getInitialLocale = () => {
  if (typeof window !== 'undefined') {
    return useAppSettingsStore().get<string>('df-language', 'zh-CN')
  }
  return 'zh-CN'
}

const i18n = createI18n({
  legacy: false,
  globalInjection: true, // 模板中可直接用 $t / $tc
  locale: getInitialLocale(),
  fallbackLocale: 'en',
  messages: {
    'zh-CN': zhCN as Record<string, any>,
    en: en as Record<string, any>,
  },
})

export default i18n
