feat: 初始化项目结构与核心功能

引入项目基础目录结构,包含多语言支持、主要页面与组件、核心游戏逻辑、UI 组件库、加密与本地持久化、自动化 Docker 构建流程、GitHub issue 模板(中英文)、README(中英文)、LICENSE 及开发配置文件。实现 OGame 单机版主要功能模块,为后续开发和扩展奠定基础。
This commit is contained in:
谦君
2025-12-11 14:49:25 +08:00
commit 705ee8c3db
178 changed files with 17258 additions and 0 deletions

53
src/locales/index.ts Normal file
View File

@@ -0,0 +1,53 @@
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