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

531
src/locales/zh-CN.ts Normal file
View File

@@ -0,0 +1,531 @@
export default {
common: {
confirm: '确认',
cancel: '取消',
delete: '删除',
edit: '编辑',
save: '保存',
close: '关闭',
back: '返回',
next: '下一步',
previous: '上一步',
submit: '提交',
reset: '重置',
search: '搜索',
filter: '筛选',
loading: '加载中...',
noData: '暂无数据',
error: '错误',
success: '成功',
warning: '警告',
info: '信息',
resourceType: '资源类型',
playerName: '指挥官',
timeHour: '时',
timeMinute: '分',
timeSecond: '秒',
featureLocked: '功能已锁定',
unlockRequired: '需要解锁前置建筑',
requiredBuilding: '所需建筑',
currentLevel: '当前等级',
goToBuildings: '前往建筑页面',
locked: '已锁定',
viewRequirements: '查看前置条件',
requirementsNotMet: '前置条件未满足',
current: '当前'
},
errors: {
requirementsNotMet: '不满足前置条件',
insufficientResources: '资源不足',
shieldDomeLimit: '护盾罩数量限制',
fleetMissionsFull: '舰队任务槽位已满',
insufficientFleet: '舰队数量不足',
insufficientFuel: '燃料不足',
planetOnly: '该建筑只能在行星上建造',
moonOnly: '该建筑只能在月球上建造',
buildQueueFull: '建造队列已满',
insufficientSpace: '空间不足',
buildingLevelZero: '建筑等级为0无法拆除',
researchQueueFull: '研究队列已满',
moonExists: '已存在月球',
insufficientDebris: '残骸场不足'
},
nav: {
overview: '总览',
buildings: '建筑',
research: '研究',
shipyard: '船坞',
defense: '防御',
fleet: '舰队',
officers: '军官',
simulator: '模拟',
galaxy: '星系',
messages: '消息',
settings: '设置'
},
sidebar: {
language: '语言',
lightMode: '日间模式',
darkMode: '夜间模式',
collapse: '收起菜单',
expand: '展开菜单'
},
resources: {
metal: '金属',
crystal: '晶体',
deuterium: '重氢',
darkMatter: '暗物质',
energy: '能量',
production: '产量',
capacity: '容量',
current: '当前储量',
max: '最大容量',
perHour: '小时'
},
planet: {
planet: '星球',
moon: '月球',
colony: '殖民地',
position: '位置',
coordinates: '坐标',
switchToMoon: '查看月球',
backToPlanet: '返回母星',
fields: '场地',
temperature: '温度',
homePlanet: '母星',
planetPrefix: '星球',
moonSuffix: '的月球',
colonyPrefix: '殖民地'
},
player: {
points: '总积分'
},
buildings: {
metalMine: '金属矿',
crystalMine: '晶体矿',
deuteriumSynthesizer: '重氢合成器',
solarPlant: '太阳能电站',
roboticsFactory: '机器人工厂',
naniteFactory: '纳米工厂',
shipyard: '船坞',
researchLab: '研究实验室',
metalStorage: '金属仓库',
crystalStorage: '晶体仓库',
deuteriumTank: '重氢罐',
darkMatterCollector: '暗物质收集器',
lunarBase: '月球基地',
sensorPhalanx: '传感器阵列',
jumpGate: '跳跃门',
buildTime: '建造时间',
production: '产量',
consumption: '消耗',
totalCost: '累积成本',
totalPoints: '累积积分',
levelRange: '等级范围'
},
buildingDescriptions: {
metalMine: '开采金属资源',
crystalMine: '开采晶体资源',
deuteriumSynthesizer: '合成重氢资源',
solarPlant: '提供能源',
roboticsFactory: '加快建造速度',
naniteFactory: '增加建造队列数量,每级+1队列最多10个',
shipyard: '建造舰船',
researchLab: '研究科技',
metalStorage: '增加金属存储上限',
crystalStorage: '增加晶体存储上限',
deuteriumTank: '增加重氢存储上限',
darkMatterCollector: '收集稀有的暗物质资源',
lunarBase: '增加月球可用空间',
sensorPhalanx: '侦测周围星系的舰队活动',
jumpGate: '瞬间传送舰队到其他月球'
},
ships: {
lightFighter: '轻型战斗机',
heavyFighter: '重型战斗机',
cruiser: '巡洋舰',
battleship: '战列舰',
smallCargo: '小型运输船',
largeCargo: '大型运输船',
colonyShip: '殖民船',
recycler: '回收船',
espionageProbe: '间谍探测器',
darkMatterHarvester: '暗物质采集船'
},
shipDescriptions: {
lightFighter: '基础战斗单位',
heavyFighter: '重装战斗机',
cruiser: '中型战舰,攻守平衡',
battleship: '强力战舰',
smallCargo: '运输少量资源',
largeCargo: '运输大量资源',
colonyShip: '用于殖民新星球',
recycler: '收集残骸场资源',
espionageProbe: '侦察敌方星球',
darkMatterHarvester: '专门用于采集暗物质的特殊飞船'
},
defenses: {
rocketLauncher: '火箭发射器',
lightLaser: '轻型激光炮',
heavyLaser: '重型激光炮',
gaussCannon: '高斯炮',
ionCannon: '离子炮',
plasmaTurret: '等离子炮塔',
smallShieldDome: '小型护盾罩',
largeShieldDome: '大型护盾罩'
},
defenseDescriptions: {
rocketLauncher: '基础防御设施',
lightLaser: '轻型能量武器',
heavyLaser: '重型能量武器',
gaussCannon: '高速动能武器',
ionCannon: '破坏护盾的利器',
plasmaTurret: '强力防御设施',
smallShieldDome: '保护整个星球的小型护盾',
largeShieldDome: '保护整个星球的大型护盾'
},
research: {
researchTime: '研究时间',
totalCost: '累积成本',
totalPoints: '累积积分',
levelRange: '等级范围'
},
technologies: {
energyTechnology: '能源技术',
laserTechnology: '激光技术',
ionTechnology: '离子技术',
hyperspaceTechnology: '超空间技术',
plasmaTechnology: '等离子技术',
computerTechnology: '计算机技术',
combustionDrive: '燃烧引擎',
impulseDrive: '脉冲引擎',
hyperspaceDrive: '超空间引擎',
darkMatterTechnology: '暗物质技术'
},
technologyDescriptions: {
energyTechnology: '提高能源利用效率',
laserTechnology: '激光武器和防御的基础',
ionTechnology: '离子武器技术',
hyperspaceTechnology: '超空间跳跃技术',
plasmaTechnology: '等离子武器技术',
computerTechnology: '增加研究队列数量,每级+1队列最多10个',
combustionDrive: '基础推进技术',
impulseDrive: '中级推进技术',
hyperspaceDrive: '高级推进技术',
darkMatterTechnology: '研究暗物质的性质和应用'
},
officers: {
commander: '指挥官',
admiral: '上将',
engineer: '工程师',
geologist: '地质学家',
technocrat: '技术专家',
darkMatterSpecialist: '暗物质专家'
},
officerDescriptions: {
commander: '提升建筑速度和管理能力',
admiral: '提升舰队战斗力和速度',
engineer: '提升能源和防御能力',
geologist: '提升资源产量',
technocrat: '提升研究速度和间谍能力',
darkMatterSpecialist: '提升暗物质采集效率'
},
queue: {
buildQueue: '建造队列',
researchQueue: '研究队列',
building: '建造中',
researching: '研究中',
remaining: '剩余时间',
cancel: '取消',
cancelBuild: '取消建造',
cancelResearch: '取消研究',
confirmCancel: '确定要取消吗将返还50%的资源。',
level: '等级',
upgradeToLevel: '升级到等级'
},
overview: {
title: '星球总览',
resourceOverview: '资源概览',
fleetInfo: '舰队',
currentShips: '当前星球的舰船数量'
},
buildingsView: {
title: '建筑',
usedSpace: '已用空间',
spaceUsage: '占用空间',
level: '等级',
upgradeCost: '升级消耗',
buildTime: '建造时间',
upgrade: '升级',
upgradeFailed: '升级失败',
upgradeFailedMessage: '请检查资源是否足够、空间是否充足或是否有其他建造任务。',
demolish: '拆除',
demolishRefund: '拆除返还',
demolishFailed: '拆除失败',
demolishFailedMessage: '无法拆除该建筑请检查建造队列是否已满或建筑等级是否为0。'
},
researchView: {
title: '研究',
researchCost: '研究消耗',
research: '研究',
researchFailed: '研究失败',
researchFailedMessage: '请检查资源是否足够、前置条件是否满足,或是否有其他研究任务。'
},
shipyard: {
attack: '攻击力',
shield: '护盾',
armor: '装甲',
speed: '速度',
cargoCapacity: '载货量',
fuelConsumption: '燃料消耗',
buildCost: '建造成本',
buildTime: '建造时间',
perUnit: '每个单位',
batchCalculator: '批量建造计算器',
quantity: '数量',
totalCost: '总成本',
totalTime: '总时间'
},
shipyardView: {
title: '船坞',
attack: '攻击力',
shield: '护盾',
speed: '速度',
cargoCapacity: '载货量',
unitCost: '单位成本',
buildQuantity: '建造数量',
totalCost: '总成本',
build: '建造',
inputError: '输入错误',
inputErrorMessage: '请输入建造数量!',
buildFailed: '建造失败',
buildFailedMessage: '请检查资源是否足够或前置条件是否满足。'
},
defense: {
attack: '攻击力',
shield: '护盾',
armor: '装甲',
buildCost: '建造成本',
buildTime: '建造时间',
perUnit: '每个单位',
batchCalculator: '批量建造计算器',
quantity: '数量',
totalCost: '总成本',
totalTime: '总时间'
},
defenseView: {
title: '防御设施',
attack: '攻击力',
shield: '护盾',
armor: '装甲',
buildTime: '建造时间',
seconds: '秒',
unitCost: '单位成本',
buildQuantity: '建造数量',
totalCost: '总成本',
build: '建造',
shieldDomeBuilt: '护盾罩已建造',
inputError: '输入错误',
inputErrorMessage: '请输入建造数量!',
buildFailed: '建造失败',
buildFailedMessage: '请检查资源是否足够或前置条件是否满足。护盾罩只能建造一个。'
},
fleetView: {
title: '舰队管理',
fleetOverview: '舰队总览',
sendFleet: '派遣舰队',
flightMissions: '飞行任务',
currentPlanetFleet: '当前星球舰队',
attack: '攻击',
shield: '护盾',
armor: '装甲',
speed: '速度',
cargo: '载货',
selectFleet: '选择舰队',
selectFleetDescription: '选择要派遣的舰船数量',
available: '可用',
all: '全部',
targetCoordinates: '目标坐标',
galaxy: '银河系',
system: '星系',
position: '位置',
missionType: '任务类型',
missionInfo: '任务信息',
fuelConsumption: '燃料消耗',
flightTime: '飞行时间',
attackMission: '攻击',
transport: '运输',
colonize: '殖民',
spy: '侦察',
deploy: '部署',
transportResources: '运输资源',
totalCargoCapacity: '总载货量',
used: '已用',
noFlightMissions: '暂无飞行任务',
outbound: '前往',
returning: '返回',
fleetComposition: '舰队组成',
carryingResources: '携带资源',
arrivalTime: '到达时间',
returnTime: '返回时间',
recallFleet: '召回舰队',
sendFailed: '派遣失败',
sendFailedMessage: '请检查舰队数量、燃料是否充足,或载货量是否超出限制。',
recallFailed: '召回失败',
recallFailedMessage: '该任务无法召回。',
unknownPlanet: '未知星球',
fleetMissionSlots: '舰队任务槽位'
},
officersView: {
title: '军官',
activated: '已激活',
inactive: '未激活',
activeStatus: '激活状态',
expirationTime: '到期时间',
remainingTime: '剩余时间',
recruitCost: '招募成本',
days: '天',
benefitsBonus: '效果加成',
resourceProduction: '资源产量',
darkMatterProduction: '暗物质产量',
energyProduction: '电量产出',
buildingSpeed: '建筑速度',
researchSpeed: '研究速度',
fleetSpeed: '舰队速度',
fuelConsumption: '燃料消耗',
defense: '防御力',
storageCapacity: '仓储容量',
buildQueue: '建筑队列',
fleetSlots: '舰队槽位',
hire: '招募',
renew: '续约',
dismiss: '解雇',
hireTitle: '招募军官',
hireMessage: '确定要招募 {name} 吗有效期为7天。',
renewTitle: '续约军官',
renewMessage: '确定要为 {name} 续约7天吗',
dismissTitle: '解雇军官',
dismissMessage: '确定要解雇 {name} 吗?不会返还任何费用。',
hireFailed: '招募失败',
renewFailed: '续约失败',
insufficientResources: '资源不足!'
},
galaxyView: {
title: '星系',
selectCoordinates: '选择坐标',
galaxy: '银河系',
selectGalaxy: '选择银河系',
system: '星系',
selectSystem: '选择星系',
view: '查看',
myPlanet: '我的星球',
totalPositions: '共10个星球位置',
mine: '我的',
hostile: '敌对',
emptySlot: '空位 - 可殖民',
scout: '侦察',
attack: '攻击',
colonize: '殖民',
switch: '切换',
scoutPlanetTitle: '侦察星球',
attackPlanetTitle: '攻击星球',
colonizePlanetTitle: '殖民星球',
scoutPlanetMessage: '确定要派遣间谍探测器侦察星球 [{coordinates}] 吗?\n\n请前往舰队页面选择舰船并派遣。',
attackPlanetMessage: '确定要攻击星球 [{coordinates}] 吗?\n\n请前往舰队页面选择舰船并派遣。',
colonizePlanetMessage: '确定要殖民位置 [{coordinates}] 吗?\n\n请前往舰队页面派遣殖民船。'
},
messagesView: {
title: '消息中心',
battleReports: '战斗报告',
spyReports: '间谍报告',
noBattleReports: '暂无战斗报告',
noSpyReports: '暂无间谍报告',
battleReport: '战斗报告',
spyReport: '间谍报告',
victory: '胜利',
defeat: '失败',
draw: '平局',
attackerFleet: '攻击方舰队',
defenderFleet: '防守方舰队',
defenderDefense: '防守方防御',
attackerLosses: '攻击方损失',
defenderLosses: '防守方损失',
noLosses: '无损失',
plunder: '掠夺资源',
debrisField: '残骸场',
resources: '资源',
fleet: '舰队',
defense: '防御',
buildings: '建筑'
},
simulatorView: {
title: '战斗模拟器',
attacker: '攻击方',
defender: '防守方',
attackerConfig: '攻击方配置',
attackerConfigDesc: '设置攻击方的舰队和科技等级',
defenderConfig: '防守方配置',
defenderConfigDesc: '设置防守方的舰队、防御和科技等级',
fleet: '舰队',
defenseStructures: '防御设施',
techLevels: '科技等级',
weapon: '武器',
shield: '护盾',
armor: '装甲',
defenderResources: '防守方资源(用于掠夺计算)',
startSimulation: '开始模拟',
reset: '重置',
battleResult: '战斗结果',
attackerVictory: '攻击方胜利',
defenderVictory: '防守方胜利',
draw: '平局',
afterRounds: '经过 {rounds} 回合战斗',
attackerLosses: '攻击方损失',
defenderLosses: '防守方损失',
noLosses: '无损失',
attackerRemaining: '攻击方剩余',
defenderRemaining: '防守方剩余',
allDestroyed: '全部摧毁',
plunderableResources: '可掠夺资源',
debrisField: '残骸场',
moonChance: '月球生成概率',
showRoundDetails: '显示回合详情',
hideRoundDetails: '隐藏回合详情',
round: '第 {round} 回合',
attackerRemainingPower: '攻击方剩余火力',
defenderRemainingPower: '防守方剩余火力'
},
settings: {
dataManagement: '数据管理',
dataManagementDesc: '导出、导入或清除游戏数据',
exportData: '导出数据',
exportDataDesc: '将游戏进度导出为JSON文件',
export: '导出',
exporting: '导出中...',
exportSuccess: '导出成功',
exportFailed: '导出失败,请重试',
importData: '导入数据',
importDataDesc: '从JSON文件恢复游戏进度',
selectFile: '导入',
importSuccess: '导入成功',
importConfirmTitle: '确认导入数据',
importConfirmMessage: '导入数据将覆盖当前游戏进度,此操作不可撤销。确定要继续吗?',
importFailed: '导入失败,请检查文件格式',
clearData: '清除数据',
clearDataDesc: '删除所有游戏数据并重置游戏',
clear: '清除',
clearConfirmTitle: '确认清除数据',
clearConfirmMessage: '这将删除所有游戏数据并重新开始,此操作不可撤销。确定要继续吗?',
gameSettings: '游戏设置',
gameSettingsDesc: '调整游戏参数和偏好设置',
playerName: '玩家名称',
gameSpeed: '游戏速度',
gameSpeedDesc: '当前游戏速度倍率',
about: '关于',
version: '版本',
buildDate: '构建日期',
community: '社区',
github: 'GitHub 仓库',
qqGroup: 'QQ 交流群'
}
}