mirror of
https://github.com/setube/ogame-vue-ts.git
synced 2026-05-12 16:05:12 +08:00
引入项目基础目录结构,包含多语言支持、主要页面与组件、核心游戏逻辑、UI 组件库、加密与本地持久化、自动化 Docker 构建流程、GitHub issue 模板(中英文)、README(中英文)、LICENSE 及开发配置文件。实现 OGame 单机版主要功能模块,为后续开发和扩展奠定基础。
54 lines
1.4 KiB
TypeScript
54 lines
1.4 KiB
TypeScript
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<Locale, string> = {
|
|
'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
|