import zhCN from './zh-CN' import zhTW from './zh-TW' import en from './en' import de from './de' import ru from './ru' import ko from './ko' import ja from './ja' export type Locale = 'zh-CN' | 'zh-TW' | 'en' | 'de' | 'ru' | 'ko' | 'ja' export const locales = { 'zh-CN': zhCN, 'zh-TW': zhTW, en, de, ru, ko, ja } export const localeNames: Record = { 'zh-CN': '简体中文', 'zh-TW': '繁體中文', en: 'English', de: 'Deutsch', ru: 'Русский', ko: '한국어', ja: '日本語' } /** * 根据浏览器语言检测并返回应用支持的语言 * @returns 检测到的语言代码 */ export const detectBrowserLocale = (): Locale => { // 获取浏览器语言 const browserLang = navigator.language || (navigator.languages && navigator.languages[0]) || 'zh-CN' const lang = browserLang.toLowerCase() // 映射浏览器语言到应用支持的语言 if (lang.startsWith('zh-tw') || lang.startsWith('zh-hant') || lang.startsWith('zh-hk') || lang.startsWith('zh-mo')) { return 'zh-TW' } else if (lang.startsWith('zh')) { return 'zh-CN' } else if (lang.startsWith('ja')) { return 'ja' } else if (lang.startsWith('ko')) { return 'ko' } else if (lang.startsWith('en')) { return 'en' } else if (lang.startsWith('de')) { return 'de' } else if (lang.startsWith('ru')) { return 'ru' } // 默认返回简体中文 return 'zh-CN' } export type TranslationSchema = typeof zhCN