ianshaw bceed08fc3 feat(frontend): 添加 Gemini 平台国际化支持
- 新增中文 Gemini OAuth 相关翻译(步骤说明、错误提示等)
- 新增英文 Gemini OAuth 相关翻译
- 添加 Gemini 账号类型、平台名称等基础翻译
- 优化代码格式
2025-12-26 00:10:44 -08:00

51 lines
1.1 KiB
TypeScript

import { createI18n } from 'vue-i18n'
import en from './locales/en'
import zh from './locales/zh'
const LOCALE_KEY = 'sub2api_locale'
function getDefaultLocale(): string {
// Check localStorage first
const saved = localStorage.getItem(LOCALE_KEY)
if (saved && ['en', 'zh'].includes(saved)) {
return saved
}
// Check browser language
const browserLang = navigator.language.toLowerCase()
if (browserLang.startsWith('zh')) {
return 'zh'
}
return 'en'
}
export const i18n = createI18n({
legacy: false,
locale: getDefaultLocale(),
fallbackLocale: 'en',
messages: {
en,
zh
}
})
export function setLocale(locale: string) {
if (['en', 'zh'].includes(locale)) {
i18n.global.locale.value = locale as 'en' | 'zh'
localStorage.setItem(LOCALE_KEY, locale)
document.documentElement.setAttribute('lang', locale)
}
}
export function getLocale(): string {
return i18n.global.locale.value
}
export const availableLocales = [
{ code: 'en', name: 'English', flag: '🇺🇸' },
{ code: 'zh', name: '中文', flag: '🇨🇳' }
]
export default i18n