import { createI18n } from 'vue-i18n' import en from './locales/en' import zh from './locales/zh' export type UiLocale = 'en' | 'zh' // 从持久化的 pinia 设置中读取界面语言,默认英文 function getInitialLocale(): UiLocale { try { const raw = localStorage.getItem('settings') if (raw) { const parsed = JSON.parse(raw) const ui = parsed?.uiLanguage if (ui === 'en' || ui === 'zh') return ui } } catch (e) { // ignore } return 'zh' } const i18n = createI18n({ legacy: false, globalInjection: true, locale: getInitialLocale(), fallbackLocale: 'en', messages: { en, zh }, }) export function setUiLocale(locale: UiLocale) { i18n.global.locale.value = locale } export default i18n