mirror of
https://github.com/Wei-Shaw/claude-relay-service.git
synced 2026-01-22 16:43:35 +00:00
91 lines
2.1 KiB
JavaScript
91 lines
2.1 KiB
JavaScript
import { createI18n } from 'vue-i18n'
|
||
import zhCn from './locales/zh-cn.js'
|
||
import zhTw from './locales/zh-tw.js'
|
||
import en from './locales/en.js'
|
||
|
||
// 获取浏览器语言设置
|
||
function getBrowserLocale() {
|
||
const navigatorLocale = navigator.languages ? navigator.languages[0] : navigator.language
|
||
|
||
if (!navigatorLocale) {
|
||
return 'zh-cn'
|
||
}
|
||
|
||
const trimmedLocale = navigatorLocale.trim().split(';')[0].toLowerCase()
|
||
|
||
if (trimmedLocale.includes('zh')) {
|
||
if (
|
||
trimmedLocale.includes('tw') ||
|
||
trimmedLocale.includes('hk') ||
|
||
trimmedLocale.includes('mo')
|
||
) {
|
||
return 'zh-tw'
|
||
}
|
||
return 'zh-cn'
|
||
}
|
||
|
||
if (trimmedLocale.includes('en')) {
|
||
return 'en'
|
||
}
|
||
|
||
return 'zh-cn' // 默认简体中文
|
||
}
|
||
|
||
// 获取保存的语言设置或浏览器语言
|
||
const savedLocale = localStorage.getItem('app-locale')
|
||
const defaultLocale = savedLocale || getBrowserLocale()
|
||
|
||
// 创建一个函数来获取本地化的语言信息
|
||
export function getSupportedLocalesWithI18n(t) {
|
||
return {
|
||
'zh-cn': {
|
||
name: t('common.languageSwitch.zhCnName'),
|
||
flag: t('common.languageSwitch.zhCnFlag'),
|
||
shortName: t('common.languageSwitch.zhCnFlag')
|
||
},
|
||
'zh-tw': {
|
||
name: t('common.languageSwitch.zhTwName'),
|
||
flag: t('common.languageSwitch.zhTwFlag'),
|
||
shortName: t('common.languageSwitch.zhTwFlag')
|
||
},
|
||
en: {
|
||
name: t('common.languageSwitch.enName'),
|
||
flag: t('common.languageSwitch.enFlag'),
|
||
shortName: t('common.languageSwitch.enFlag')
|
||
}
|
||
}
|
||
}
|
||
|
||
// 保持原有的SUPPORTED_LOCALES作为默认值,用于不依赖i18n的场景
|
||
export const SUPPORTED_LOCALES = {
|
||
'zh-cn': {
|
||
name: '简体中文',
|
||
flag: '简',
|
||
shortName: '简'
|
||
},
|
||
'zh-tw': {
|
||
name: '繁體中文',
|
||
flag: '繁',
|
||
shortName: '繁'
|
||
},
|
||
en: {
|
||
name: 'English',
|
||
flag: 'EN',
|
||
shortName: 'EN'
|
||
}
|
||
}
|
||
|
||
export const i18n = createI18n({
|
||
legacy: false, // 使用 Composition API 模式
|
||
locale: defaultLocale,
|
||
fallbackLocale: 'zh-cn',
|
||
messages: {
|
||
'zh-cn': zhCn,
|
||
'zh-tw': zhTw,
|
||
en: en
|
||
},
|
||
globalInjection: true // 全局注入 $t 函数
|
||
})
|
||
|
||
export default i18n
|