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/ja.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: 'レベルにアップグレード'
},
shipyard: {
attack: '攻撃力',
shield: 'シールド',
armor: '装甲',
speed: '速度',
cargoCapacity: '貨物容量',
fuelConsumption: '燃料消費',
buildCost: '建設コスト',
buildTime: '建設時間',
perUnit: 'ユニットあたり',
batchCalculator: '一括計算機',
quantity: '数量',
totalCost: '総コスト',
totalTime: '総時間'
},
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: '資源が十分か、前提条件が満たされているか、または他の研究タスクがないか確認してください。'
},
defense: {
attack: '攻撃力',
shield: 'シールド',
armor: '装甲',
buildCost: '建設コスト',
buildTime: '建設時間',
perUnit: 'ユニットあたり',
batchCalculator: '一括計算機',
quantity: '数量',
totalCost: '総コスト',
totalTime: '総時間'
},
shipyardView: {
title: '造船所',
attack: '攻撃力',
shield: 'シールド',
speed: '速度',
cargoCapacity: '積載量',
unitCost: 'ユニットコスト',
buildQuantity: '建造数',
totalCost: '総コスト',
build: '建造',
inputError: '入力エラー',
inputErrorMessage: '建造数を入力してください!',
buildFailed: '建造失敗',
buildFailedMessage: '資源が十分か、前提条件が満たされているか確認してください。'
},
defenseView: {
title: '防衛施設',
attack: '攻撃力',
shield: 'シールド',
armor: '装甲',
buildTime: '建設時間',
seconds: '秒',
unitCost: 'ユニットコスト',
buildQuantity: '建造数',
totalCost: '総コスト',
build: '建造',
shieldDomeBuilt: 'シールドドーム建設済み',
inputError: '入力エラー',
inputErrorMessage: '建造数を入力してください!',
buildFailed: '建造失敗',
buildFailedMessage: '資源が十分か、前提条件が満たされているか確認してください。シールドドームは1つのみ建設できます。'
},
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グループ'
}
}