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-TW.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 交流群'
}
}