feat: 重构战报弹窗与模拟器视图,优化UI与逻辑

重构BattleReportDialog和BattleSimulatorView相关静态资源,替换旧版JS/CSS文件,提升界面一致性和交互体验。新增和优化空状态、滚动区域等通用UI组件,移除部分冗余composable,完善多语言内容。引入导弹逻辑,补充版本检测工具,提升整体代码结构和可维护性。
This commit is contained in:
谦君
2025-12-15 20:04:40 +08:00
parent 9b9fda0400
commit 59dd7bfd05
126 changed files with 3944 additions and 1487 deletions

View File

@@ -33,13 +33,19 @@ export default {
viewRequirements: 'Anforderungen anzeigen',
requirementsNotMet: 'Anforderungen nicht erfüllt',
current: 'Aktuell',
level: 'Stufe'
level: 'Stufe',
gmModeActivated: 'GM-Modus aktiviert! Überprüfen Sie das Navigationsmenü.'
},
errors: {
requirementsNotMet: 'Anforderungen nicht erfüllt',
insufficientResources: 'Unzureichende Ressourcen',
insufficientFleetStorage: 'Unzureichender Flottenspeicher',
shieldDomeLimit: 'Schildkuppel-Limit erreicht',
missileSiloLimit: 'Raketensilokapazität überschritten',
insufficientMissiles: 'Unzureichende Interkontinentalraketen',
invalidMissileCount: 'Ungültige Raketenanzahl',
targetOutOfRange: 'Ziel außer Reichweite',
cannotAttackOwnPlanet: 'Eigenen Planeten kann nicht angegriffen werden',
fleetMissionsFull: 'Flottenmissionsplätze voll',
insufficientFleet: 'Unzureichende Flotte',
insufficientFuel: 'Unzureichender Treibstoff',
@@ -166,8 +172,8 @@ export default {
darkMatterCollector: 'Sammelt seltene Dunkle-Materie-Ressourcen',
darkMatterTank: 'Erhöht Dunkle-Materie-Speicherkapazität',
missileSilo: 'Lagert und startet Raketen, 10 Raketen pro Stufe',
terraformer: 'Terraformt Planetenoberfläche, erhöht verfügbaren Platz um 5 pro Stufe',
lunarBase: 'Erhöht verfügbaren Platz auf dem Mond, +5 Platz pro Stufe',
terraformer: 'Terraformt Planetenoberfläche, erhöht verfügbaren Platz um 30 pro Stufe',
lunarBase: 'Erhöht verfügbaren Platz auf dem Mond, +30 Platz pro Stufe',
sensorPhalanx: 'Erkennt Flottenaktivitäten in umliegenden Systemen',
jumpGate: 'Überträgt Flotten sofort zu anderen Monden',
planetDestroyerFactory: 'Konstruiert ultimative Waffen zur Zerstörung von Planeten'
@@ -283,7 +289,7 @@ export default {
impulseDrive: 'Mittlere Antriebstechnologie',
hyperspaceDrive: 'Fortgeschrittene Antriebstechnologie',
darkMatterTechnology: 'Forschung zu Eigenschaften und Anwendungen von Dunkler Materie',
terraformingTechnology: 'Forschung zur Planeten-Terraforming-Technologie, erhöht verfügbaren Platz aller Planeten um 3 pro Stufe',
terraformingTechnology: 'Forschung zur Planeten-Terraforming-Technologie, erhöht verfügbaren Platz aller Planeten um 30 pro Stufe',
planetDestructionTech: 'Schreckliche Technologie zur Zerstörung ganzer Planeten'
},
officers: {
@@ -316,6 +322,7 @@ export default {
cancelResearch: 'Forschung abbrechen',
confirmCancel: 'Möchten Sie wirklich abbrechen? 50% der Ressourcen werden zurückerstattet.',
level: 'Stufe',
gmModeActivated: '',
upgradeToLevel: 'Auf Stufe aufrüsten'
},
overview: {
@@ -336,6 +343,7 @@ export default {
usedSpace: 'Verwendeter Platz',
spaceUsage: 'Platzbedarf',
level: 'Stufe',
gmModeActivated: '',
upgradeCost: 'Ausbaukosten',
buildTime: 'Bauzeit',
upgrade: 'Ausbauen',
@@ -361,6 +369,7 @@ export default {
},
shipyard: {
attack: 'Angriff',
missileAttack: 'Raketenangriff',
shield: 'Schild',
armor: 'Panzerung',
speed: 'Geschwindigkeit',
@@ -378,6 +387,7 @@ export default {
title: 'Raumschiffwerft',
fleetStorage: 'Flottenspeicher',
attack: 'Angriff',
missileAttack: 'Raketenangriff',
shield: 'Schild',
speed: 'Geschwindigkeit',
cargoCapacity: 'Ladekapazität',
@@ -392,6 +402,7 @@ export default {
},
defense: {
attack: 'Angriff',
missileAttack: 'Raketenangriff',
shield: 'Schild',
armor: 'Panzerung',
buildCost: 'Baukosten',
@@ -405,6 +416,7 @@ export default {
defenseView: {
title: 'Verteidigung',
attack: 'Angriff',
missileAttack: 'Raketenangriff',
shield: 'Schild',
armor: 'Panzerung',
buildTime: 'Bauzeit',
@@ -414,6 +426,7 @@ export default {
totalCost: 'Gesamtkosten',
build: 'Bauen',
shieldDomeBuilt: 'Schildkuppel bereits gebaut',
missileCapacity: 'Raketenkapazität',
inputError: 'Eingabefehler',
inputErrorMessage: 'Bitte Baumenge eingeben!',
buildFailed: 'Bau fehlgeschlagen',
@@ -427,6 +440,7 @@ export default {
flightMissions: 'Flugmissionen',
currentPlanetFleet: 'Flotte auf diesem Planeten',
attack: 'Angriff',
missileAttack: 'Raketenangriff',
shield: 'Schild',
armor: 'Panzerung',
speed: 'Geschwindigkeit',
@@ -521,27 +535,38 @@ export default {
selectSystem: 'System auswählen',
view: 'Anzeigen',
myPlanet: 'Mein Planet',
myPlanets: 'Meine Planeten',
myPlanets: 'Meine Systeme ansehen',
npcPlanets: 'NPC-Planeten',
selectPlanetToView: 'Planet zum Anzeigen auswählen',
selectPlanetToView: 'Planet auswählen, um sein System anzuzeigen',
totalPositions: 'Insgesamt 10 Planetenpositionen',
mine: 'Mein',
hostile: 'Feindlich',
emptySlot: 'Leer - Kolonisierbar',
scout: 'Spähen',
attack: 'Angriff',
missileAttack: 'Raketenangriff',
colonize: 'Kolonisieren',
switch: 'Wechseln',
recycle: 'Recyceln',
debrisField: 'Trümmerfeld',
scoutPlanetTitle: 'Planet ausspionieren',
attackPlanetTitle: 'Planet angreifen',
missileAttackTitle: 'Raketenangriff',
colonizePlanetTitle: 'Planet kolonisieren',
recyclePlanetTitle: 'Trümmer recyceln',
scoutPlanetMessage:
'Möchten Sie wirklich Spionagesonden senden, um Planet [{coordinates}] auszuspionieren?\n\nBitte gehen Sie zur Flottenseite, um Schiffe auszuwählen und zu senden.',
attackPlanetMessage:
'Möchten Sie wirklich Planet [{coordinates}] angreifen?\n\nBitte gehen Sie zur Flottenseite, um Schiffe auszuwählen und zu senden.',
missileAttackMessage: 'Interkontinentalraketen starten, um Planet [{coordinates}] anzugreifen',
missileCount: 'Raketenanzahl',
availableMissiles: 'Verfügbare Raketen',
missileRange: 'Raketenreichweite',
systems: 'Systeme',
distance: 'Entfernung',
flightTime: 'Flugzeit',
launchMissile: 'Starten',
cancel: 'Abbrechen',
colonizePlanetMessage:
'Möchten Sie wirklich Position [{coordinates}] kolonisieren?\n\nBitte gehen Sie zur Flottenseite, um ein Kolonieschiff zu senden.',
recyclePlanetMessage:
@@ -699,10 +724,24 @@ export default {
gamePaused: 'Spiel pausiert',
gameResumed: 'Spiel fortgesetzt',
playerName: 'Spielername',
gameSpeed: 'Spielgeschwindigkeit',
gameSpeedDesc: 'Aktueller Spielgeschwindigkeitsmultiplikator',
gameSpeed: 'Ressourcenproduktionsgeschwindigkeit',
gameSpeedDesc: 'Aktueller Ressourcenproduktionsgeschwindigkeitsmultiplikator',
speedChanged: 'Ressourcenproduktionsgeschwindigkeit auf {speed}x geändert',
speedReset: 'Ressourcenproduktionsgeschwindigkeit auf 1x zurückgesetzt',
reset: 'Zurücksetzen',
about: 'Über',
version: 'Version',
latestVersion: 'Neueste Version',
checkUpdate: 'Update prüfen',
checking: 'Prüfen...',
newVersionAvailable: 'Neue Version {version} verfügbar',
upToDate: 'Bereits auf dem neuesten Stand',
checkUpdateCooldown: 'Bitte versuchen Sie es später erneut (5 Minuten Abklingzeit)',
checkUpdateFailed: 'Update-Prüfung fehlgeschlagen, bitte überprüfen Sie Ihre Netzwerkverbindung',
viewUpdate: 'Update ansehen',
updateAvailable: 'Eine neue Version ist verfügbar. Klicken Sie, um die Versionshinweise anzuzeigen.',
download: 'Herunterladen',
goToDownload: 'Zum Download',
buildDate: 'Build-Datum',
community: 'Community',
github: 'GitHub-Repository',
@@ -741,12 +780,22 @@ export default {
testSpy: 'Spionage testen',
testAttack: 'Angriff testen',
testSpyAndAttack: 'Spionage & Angriff testen',
testSpyMessage: 'Klicken Sie auf Bestätigen, um die Spionagemission zu beschleunigen',
testAttackMessage: 'Klicken Sie auf Bestätigen, um die Angriffsmission zu beschleunigen',
testSpyAndAttackMessage: 'Klicken Sie auf Bestätigen, um die Missionen zu beschleunigen',
initializeFleet: 'NPC-Flotte initialisieren',
accelerateMissions: 'Alle Missionen beschleunigen (5s)',
selectNPCFirst: 'Bitte wählen Sie zuerst einen NPC',
npcNoProbes: 'NPC hat keine Spionagesonden',
npcNoSpyReport: 'NPC muss zuerst spionieren',
npcMissionFailed: 'Mission konnte nicht erstellt werden',
npcNoPlanets: 'NPC hat keine Planeten',
npcWillSpyIn5s: '{npcName} wird in 5 Sekunden spionieren',
npcWillAttackIn5s: '{npcName} wird in 5 Sekunden angreifen',
npcWillSpyAndAttack: '{npcName} wird in 5s spionieren und in 10s angreifen',
acceleratedMissions: '{count} Missionen auf 5 Sekunden beschleunigt',
npcFleetInitialized: '{npcName} Flotte initialisiert',
npcFleetDetails: '100 Spionagesonden\n500 Leichte Jäger\n300 Schwere Jäger\n200 Kreuzer\n100 Schlachtschiffe\n50 Bomber\n30 Zerstörer\n20 Schlachtkreuzer',
dangerZone: 'Gefahrenzone',
dangerZoneDesc: 'Die folgenden Vorgänge sind irreversibel',
resetGame: 'Spiel zurücksetzen',
@@ -798,9 +847,32 @@ export default {
events: {
gift: 'Geschenk gesendet',
attack: 'Angriff',
missileAttack: 'Raketenangriff',
allyAttacked: 'Verbündeter angegriffen',
spy: 'Spionage',
stealDebris: 'Trümmer gestohlen'
},
reports: {
giftedResources: '{metal}M {crystal}K {deuterium}D geschenkt',
receivedGiftFromPlayer: 'Geschenk von Spieler erhalten',
giftedToNpc: 'Sie haben {npcName} Ressourcen geschenkt. Ansehen +{reputation}',
rejectedPlayerGift: 'Geschenk des Spielers abgelehnt',
npcRejectedGift: '{npcName} hat Ihr Geschenk abgelehnt. Ansehen {reputation}',
attackedNpc: '{npcName} angegriffen',
wasAttackedByPlayer: 'Wurde von Spieler angegriffen',
youAttackedNpc: 'Sie haben {npcName} angegriffen',
playerAttackedAlly: 'Spieler hat Verbündeten {allyName} angegriffen',
allyDispleased: '{allyName} ist unzufrieden, dass Sie ihren Verbündeten {targetName} angegriffen haben',
wasSpiedByPlayer: 'Wurde von Spieler ausspioniert (entdeckt: {detected})',
spyDetected: 'Ihre Spionage wurde von {npcName} entdeckt',
stoleDebrisFromTerritory: 'Trümmer aus {npcName}s Territorium gestohlen',
playerStoleDebris: 'Spieler hat Trümmer aus Territorium gestohlen',
recycledDebrisNearNpc: 'Sie haben Trümmer in der Nähe von {npcName}s Planeten recycelt. Sie sind unzufrieden.',
giftedResourcesToPlayer: 'Ressourcen an Spieler geschenkt',
receivedGiftFromNpc: 'Geschenk von {npcName} erhalten',
acceptedGiftFromNpc: 'Sie haben ein Geschenk von {npcName} angenommen: {metal}M {crystal}K {deuterium}D',
playerRejectedGift: 'Spieler hat Geschenk abgelehnt',
rejectedGiftFromNpc: 'Sie haben ein Geschenk von {npcName} abgelehnt. Ansehen {reputation}'
}
},
pagination: {
@@ -809,5 +881,10 @@ export default {
first: 'Erste',
last: 'Letzte',
page: 'Seite {page}'
},
notFound: {
title: 'Seite nicht gefunden',
description: 'Entschuldigung, die gesuchte Seite existiert nicht',
goHome: 'Zur Startseite'
}
}