diff --git a/eos/saveddata/damagePattern.py b/eos/saveddata/damagePattern.py index bf6aeec72d..7cf1bd9307 100644 --- a/eos/saveddata/damagePattern.py +++ b/eos/saveddata/damagePattern.py @@ -25,122 +25,139 @@ import eos.db +def _t(x): + return x + + +def _c(x): + return '[' + x + ']' + + # Order is significant here - UI uses order as-is for built-in patterns BUILTINS = OrderedDict([ - (-1, ('Uniform', 25, 25, 25, 25)), - (-2, ('[Generic]EM', 1, 0, 0, 0)), - (-3, ('[Generic]Thermal', 0, 1, 0, 0)), - (-4, ('[Generic]Kinetic', 0, 0, 1, 0)), - (-5, ('[Generic]Explosive', 0, 0, 0, 1)), - (-6, ('[Frequency Crystals]|[T2] Aurora', 5, 3, 0, 0)), - (-7, ('[Frequency Crystals]|[T2] Scorch', 9, 2, 0, 0)), - (-8, ('[Frequency Crystals]Radio', 5, 0, 0, 0)), - (-9, ('[Frequency Crystals]Microwave', 4, 2, 0, 0)), - (-10, ('[Frequency Crystals]Infrared', 5, 2, 0, 0)), - (-11, ('[Frequency Crystals]Standard', 5, 3, 0, 0)), - (-12, ('[Frequency Crystals]Ultraviolet', 6, 3, 0, 0)), - (-13, ('[Frequency Crystals]Xray', 6, 4, 0, 0)), - (-14, ('[Frequency Crystals]Gamma', 7, 4, 0, 0)), - (-15, ('[Frequency Crystals]Multifrequency', 7, 5, 0, 0)), - (-16, ('[Frequency Crystals]|[T2] Gleam', 7, 7, 0, 0)), - (-17, ('[Frequency Crystals]|[T2] Conflagration', 7.7, 7.7, 0, 0)), + (-1, (_t('Uniform'), 25, 25, 25, 25)), + (-2, (_c(_t('Generic')) + _t('EM'), 1, 0, 0, 0)), + (-3, (_c(_t('Generic')) + _t('Thermal'), 0, 1, 0, 0)), + (-4, (_c(_t('Generic')) + _t('Kinetic'), 0, 0, 1, 0)), + (-5, (_c(_t('Generic')) + _t('Explosive'), 0, 0, 0, 1)), + (-6, (_c(_t('Frequency Crystals')) + '|' + _t('[T2] Aurora'), 5, 3, 0, 0)), + (-7, (_c(_t('Frequency Crystals')) + '|' + _t('[T2] Scorch'), 9, 2, 0, 0)), + (-8, (_c(_t('Frequency Crystals')) + _t('Radio'), 5, 0, 0, 0)), + (-9, (_c(_t('Frequency Crystals')) + _t('Microwave'), 4, 2, 0, 0)), + (-10, (_c(_t('Frequency Crystals')) + _t('Infrared'), 5, 2, 0, 0)), + (-11, (_c(_t('Frequency Crystals')) + _t('Standard'), 5, 3, 0, 0)), + (-12, (_c(_t('Frequency Crystals')) + _t('Ultraviolet'), 6, 3, 0, 0)), + (-13, (_c(_t('Frequency Crystals')) + _t('Xray'), 6, 4, 0, 0)), + (-14, (_c(_t('Frequency Crystals')) + _t('Gamma'), 7, 4, 0, 0)), + (-15, (_c(_t('Frequency Crystals')) + _t('Multifrequency'), 7, 5, 0, 0)), + (-16, (_c(_t('Frequency Crystals')) + '|' + _t('[T2] Gleam'), 7, 7, 0, 0)), + (-17, (_c(_t('Frequency Crystals')) + '|' + _t('[T2] Conflagration'), 7.7, 7.7, 0, 0)), # Different sizes of plasma do different damage ratios, the values here # are average of ratios across sizes - (-18, ('[Exotic Plasma]|[T2] Mystic', 0, 66319, 0, 33681)), - (-19, ('[Exotic Plasma]Meson', 0, 60519, 0, 39481)), - (-20, ('[Exotic Plasma]Baryon', 0, 59737, 0, 40263)), - (-21, ('[Exotic Plasma]Tetryon', 0, 69208, 0, 30792)), - (-22, ('[Exotic Plasma]|[T2] Occult', 0, 55863, 0, 44137)), - (-23, ('[Hybrid Charges]|[T2] Spike', 0, 4, 4, 0)), - (-24, ('[Hybrid Charges]|[T2] Null', 0, 6, 5, 0)), - (-25, ('[Hybrid Charges]Iron', 0, 2, 3, 0)), - (-26, ('[Hybrid Charges]Tungsten', 0, 2, 4, 0)), - (-27, ('[Hybrid Charges]Iridium', 0, 3, 4, 0)), - (-28, ('[Hybrid Charges]Lead', 0, 3, 5, 0)), - (-29, ('[Hybrid Charges]Thorium', 0, 4, 5, 0)), - (-30, ('[Hybrid Charges]Uranium', 0, 4, 6, 0)), - (-31, ('[Hybrid Charges]Plutonium', 0, 5, 6, 0)), - (-32, ('[Hybrid Charges]Antimatter', 0, 5, 7, 0)), - (-33, ('[Hybrid Charges]|[T2] Javelin', 0, 8, 6, 0)), - (-34, ('[Hybrid Charges]|[T2] Void', 0, 7.7, 7.7, 0)), - (-35, ('[Projectile Ammo]|[T2] Tremor', 0, 0, 3, 5)), - (-36, ('[Projectile Ammo]|[T2] Barrage', 0, 0, 5, 6)), - (-37, ('[Projectile Ammo]Carbonized Lead', 0, 0, 4, 1)), - (-38, ('[Projectile Ammo]Nuclear', 0, 0, 1, 4)), - (-39, ('[Projectile Ammo]Proton', 3, 0, 2, 0)), - (-40, ('[Projectile Ammo]Depleted Uranium', 0, 3, 2, 3)), - (-41, ('[Projectile Ammo]Titanium Sabot', 0, 0, 6, 2)), - (-42, ('[Projectile Ammo]EMP', 9, 0, 1, 2)), - (-43, ('[Projectile Ammo]Phased Plasma', 0, 10, 2, 0)), - (-44, ('[Projectile Ammo]Fusion', 0, 0, 2, 10)), - (-45, ('[Projectile Ammo]|[T2] Quake', 0, 0, 5, 9)), - (-46, ('[Projectile Ammo]|[T2] Hail', 0, 0, 3.3, 12.1)), - (-47, ('[Missiles]Mjolnir', 1, 0, 0, 0)), - (-48, ('[Missiles]Inferno', 0, 1, 0, 0)), - (-49, ('[Missiles]Scourge', 0, 0, 1, 0)), - (-50, ('[Missiles]Nova', 0, 0, 0, 1)), - (-51, ('[Bombs]Electron Bomb', 6400, 0, 0, 0)), - (-52, ('[Bombs]Scorch Bomb', 0, 6400, 0, 0)), - (-53, ('[Bombs]Concussion Bomb', 0, 0, 6400, 0)), - (-54, ('[Bombs]Shrapnel Bomb', 0, 0, 0, 6400)), + (-18, (_c(_t('Exotic Plasma')) + '|' + _t('[T2] Mystic'), 0, 66319, 0, 33681)), + (-19, (_c(_t('Exotic Plasma')) + _t('Meson'), 0, 60519, 0, 39481)), + (-20, (_c(_t('Exotic Plasma')) + _t('Baryon'), 0, 59737, 0, 40263)), + (-21, (_c(_t('Exotic Plasma')) + _t('Tetryon'), 0, 69208, 0, 30792)), + (-22, (_c(_t('Exotic Plasma')) + '|' + _t('[T2] Occult'), 0, 55863, 0, 44137)), + (-23, (_c(_t('Hybrid Charges')) + '|' + _t('[T2] Spike'), 0, 4, 4, 0)), + (-24, (_c(_t('Hybrid Charges')) + '|' + _t('[T2] Null'), 0, 6, 5, 0)), + (-25, (_c(_t('Hybrid Charges')) + _t('Iron'), 0, 2, 3, 0)), + (-26, (_c(_t('Hybrid Charges')) + _t('Tungsten'), 0, 2, 4, 0)), + (-27, (_c(_t('Hybrid Charges')) + _t('Iridium'), 0, 3, 4, 0)), + (-28, (_c(_t('Hybrid Charges')) + _t('Lead'), 0, 3, 5, 0)), + (-29, (_c(_t('Hybrid Charges')) + _t('Thorium'), 0, 4, 5, 0)), + (-30, (_c(_t('Hybrid Charges')) + _t('Uranium'), 0, 4, 6, 0)), + (-31, (_c(_t('Hybrid Charges')) + _t('Plutonium'), 0, 5, 6, 0)), + (-32, (_c(_t('Hybrid Charges')) + _t('Antimatter'), 0, 5, 7, 0)), + (-33, (_c(_t('Hybrid Charges')) + '|' + _t('[T2] Javelin'), 0, 8, 6, 0)), + (-34, (_c(_t('Hybrid Charges')) + '|' + _t('[T2] Void'), 0, 7.7, 7.7, 0)), + (-35, (_c(_t('Projectile Ammo')) + '|' + _t('[T2] Tremor'), 0, 0, 3, 5)), + (-36, (_c(_t('Projectile Ammo')) + '|' + _t('[T2] Barrage'), 0, 0, 5, 6)), + (-37, (_c(_t('Projectile Ammo')) + _t('Carbonized Lead'), 0, 0, 4, 1)), + (-38, (_c(_t('Projectile Ammo')) + _t('Nuclear'), 0, 0, 1, 4)), + (-39, (_c(_t('Projectile Ammo')) + _t('Proton'), 3, 0, 2, 0)), + (-40, (_c(_t('Projectile Ammo')) + _t('Depleted Uranium'), 0, 3, 2, 3)), + (-41, (_c(_t('Projectile Ammo')) + _t('Titanium Sabot'), 0, 0, 6, 2)), + (-42, (_c(_t('Projectile Ammo')) + _t('EMP'), 9, 0, 1, 2)), + (-43, (_c(_t('Projectile Ammo')) + _t('Phased Plasma'), 0, 10, 2, 0)), + (-44, (_c(_t('Projectile Ammo')) + _t('Fusion'), 0, 0, 2, 10)), + (-45, (_c(_t('Projectile Ammo')) + '|' + _t('[T2] Quake'), 0, 0, 5, 9)), + (-46, (_c(_t('Projectile Ammo')) + '|' + _t('[T2] Hail'), 0, 0, 3.3, 12.1)), + (-47, (_c(_t('Missiles')) + _t('Mjolnir'), 1, 0, 0, 0)), + (-48, (_c(_t('Missiles')) + _t('Inferno'), 0, 1, 0, 0)), + (-49, (_c(_t('Missiles')) + _t('Scourge'), 0, 0, 1, 0)), + (-50, (_c(_t('Missiles')) + _t('Nova'), 0, 0, 0, 1)), + (-51, (_c(_t('Bombs')) + _t('Electron Bomb'), 6400, 0, 0, 0)), + (-52, (_c(_t('Bombs')) + _t('Scorch Bomb'), 0, 6400, 0, 0)), + (-53, (_c(_t('Bombs')) + _t('Concussion Bomb'), 0, 0, 6400, 0)), + (-54, (_c(_t('Bombs')) + _t('Shrapnel Bomb'), 0, 0, 0, 6400)), # Source: ticket #2067 - (-55, ('[NPC][Abyssal]All', 130, 396, 258, 216)), - (-56, ('[NPC][Abyssal]Drifter', 250, 250, 250, 250)), - (-57, ('[NPC][Abyssal]Drones', 250, 250, 250, 250)), - (-58, ('[NPC][Abyssal]Overmind', 0, 408, 592, 0)), - (-59, ('[NPC][Abyssal]Seeker', 406, 406, 94, 94)), - (-60, ('[NPC][Abyssal]Sleeper', 313, 313, 187, 187)), - (-61, ('[NPC][Abyssal]Triglavian', 0, 610, 0, 390)), - (-62, ('[NPC][Asteroid]Angel Cartel', 1838, 562, 2215, 3838)), - (-63, ('[NPC][Asteroid]Blood Raiders', 5067, 4214, 0, 0)), - (-64, ('[NPC][Asteroid]Guristas', 0, 1828, 7413, 0)), - (-65, ('[NPC][Asteroid]Rogue Drone', 394, 666, 1090, 1687)), - (-66, ('[NPC][Asteroid]Sanshas Nation', 5586, 4112, 0, 0)), - (-67, ('[NPC][Asteroid]Serpentis', 0, 5373, 4813, 0)), - (-68, ('[NPC][Burner]Cruor (Blood Raiders)', 90, 90, 0, 0)), - (-69, ('[NPC][Burner]Dramiel (Angel)', 55, 0, 20, 96)), - (-70, ('[NPC][Burner]Daredevil (Serpentis)', 0, 110, 154, 0)), - (-71, ('[NPC][Burner]Succubus (Sanshas Nation)', 135, 30, 0, 0)), - (-72, ('[NPC][Burner]Worm (Guristas)', 0, 0, 228, 0)), - (-73, ('[NPC][Burner]Enyo', 0, 147, 147, 0)), - (-74, ('[NPC][Burner]Hawk', 0, 0, 247, 0)), - (-75, ('[NPC][Burner]Jaguar', 36, 0, 50, 182)), - (-76, ('[NPC][Burner]Vengeance', 232, 0, 0, 0)), - (-77, ('[NPC][Burner]Ashimmu (Blood Raiders)', 260, 100, 0, 0)), - (-78, ('[NPC][Burner]Talos', 0, 413, 413, 0)), - (-79, ('[NPC][Burner]Sentinel', 0, 75, 0, 90)), - (-80, ('[NPC][Deadspace]Angel Cartel', 369, 533, 1395, 3302)), - (-81, ('[NPC][Deadspace]Blood Raiders', 6040, 5052, 10, 15)), - (-82, ('[NPC][Deadspace]Guristas', 0, 1531, 9680, 0)), - (-83, ('[NPC][Deadspace]Rogue Drone', 276, 1071, 1069, 871)), - (-84, ('[NPC][Deadspace]Sanshas Nation', 3009, 2237, 0, 0)), - (-85, ('[NPC][Deadspace]Serpentis', 0, 3110, 1929, 0)), + (-55, (_c(_t('NPC')) + _c(_t('Abyssal')) + _t('All'), 130, 396, 258, 216)), + (-56, (_c(_t('NPC')) + _c(_t('Abyssal')) + _t('Drifter'), 250, 250, 250, 250)), + (-57, (_c(_t('NPC')) + _c(_t('Abyssal')) + _t('Drones'), 250, 250, 250, 250)), + (-58, (_c(_t('NPC')) + _c(_t('Abyssal')) + _t('Overmind'), 0, 408, 592, 0)), + (-59, (_c(_t('NPC')) + _c(_t('Abyssal')) + _t('Seeker'), 406, 406, 94, 94)), + (-60, (_c(_t('NPC')) + _c(_t('Abyssal')) + _t('Sleeper'), 313, 313, 187, 187)), + (-61, (_c(_t('NPC')) + _c(_t('Abyssal')) + _t('Triglavian'), 0, 610, 0, 390)), + (-62, (_c(_t('NPC')) + _c(_t('Asteroid')) + _t('Angel Cartel'), 1838, 562, 2215, 3838)), + (-63, (_c(_t('NPC')) + _c(_t('Asteroid')) + _t('Blood Raiders'), 5067, 4214, 0, 0)), + (-64, (_c(_t('NPC')) + _c(_t('Asteroid')) + _t('Guristas'), 0, 1828, 7413, 0)), + (-65, (_c(_t('NPC')) + _c(_t('Asteroid')) + _t('Rogue Drone'), 394, 666, 1090, 1687)), + (-66, (_c(_t('NPC')) + _c(_t('Asteroid')) + _t('Sanshas Nation'), 5586, 4112, 0, 0)), + (-67, (_c(_t('NPC')) + _c(_t('Asteroid')) + _t('Serpentis'), 0, 5373, 4813, 0)), + (-68, (_c(_t('NPC')) + _c(_t('Burner')) + _t('Cruor (Blood Raiders)'), 90, 90, 0, 0)), + (-69, (_c(_t('NPC')) + _c(_t('Burner')) + _t('Dramiel (Angel)'), 55, 0, 20, 96)), + (-70, (_c(_t('NPC')) + _c(_t('Burner')) + _t('Daredevil (Serpentis)'), 0, 110, 154, 0)), + (-71, (_c(_t('NPC')) + _c(_t('Burner')) + _t('Succubus (Sanshas Nation)'), 135, 30, 0, 0)), + (-72, (_c(_t('NPC')) + _c(_t('Burner')) + _t('Worm (Guristas)'), 0, 0, 228, 0)), + (-73, (_c(_t('NPC')) + _c(_t('Burner')) + _t('Enyo'), 0, 147, 147, 0)), + (-74, (_c(_t('NPC')) + _c(_t('Burner')) + _t('Hawk'), 0, 0, 247, 0)), + (-75, (_c(_t('NPC')) + _c(_t('Burner')) + _t('Jaguar'), 36, 0, 50, 182)), + (-76, (_c(_t('NPC')) + _c(_t('Burner')) + _t('Vengeance'), 232, 0, 0, 0)), + (-77, (_c(_t('NPC')) + _c(_t('Burner')) + _t('Ashimmu (Blood Raiders)'), 260, 100, 0, 0)), + (-78, (_c(_t('NPC')) + _c(_t('Burner')) + _t('Talos'), 0, 413, 413, 0)), + (-79, (_c(_t('NPC')) + _c(_t('Burner')) + _t('Sentinel'), 0, 75, 0, 90)), + (-80, (_c(_t('NPC')) + _c(_t('Deadspace')) + _t('Angel Cartel'), 369, 533, 1395, 3302)), + (-81, (_c(_t('NPC')) + _c(_t('Deadspace')) + _t('Blood Raiders'), 6040, 5052, 10, 15)), + (-82, (_c(_t('NPC')) + _c(_t('Deadspace')) + _t('Guristas'), 0, 1531, 9680, 0)), + (-83, (_c(_t('NPC')) + _c(_t('Deadspace')) + _t('Rogue Drone'), 276, 1071, 1069, 871)), + (-84, (_c(_t('NPC')) + _c(_t('Deadspace')) + _t('Sanshas Nation'), 3009, 2237, 0, 0)), + (-85, (_c(_t('NPC')) + _c(_t('Deadspace')) + _t('Serpentis'), 0, 3110, 1929, 0)), # Source: ticket #2067 - (-86, ('[NPC][Invasion][Invading Precursor Entities]Dread', 0, 417, 0, 583)), - (-87, ('[NPC][Invasion][Invading Precursor Entities]Normal Subcaps', 0, 610, 0, 390)), - (-88, ('[NPC][Invasion][Invading Precursor Entities]Subcaps w/missiles 0% spool up', 367, 155, 367, 112)), - (-89, ('[NPC][Invasion][Invading Precursor Entities]Subcaps w/missiles 50% spool up', 291, 243, 291, 175)), - (-90, ('[NPC][Invasion][Invading Precursor Entities]Subcaps w/missiles 100% spool up', 241, 301, 241, 217)), - (-91, ('[NPC][Invasion][Retaliating Amarr Entities]Dread/Subcaps', 583, 417, 0, 0)), - (-92, ('[NPC][Invasion][Retaliating Caldari Entities]Dread', 1000, 0, 0, 0)), - (-93, ('[NPC][Invasion][Retaliating Caldari Entities]Subcaps', 511, 21, 29, 440)), - (-94, ('[NPC][Invasion][Retaliating Gallente Entities]Dread/Subcaps', 0, 417, 583, 0)), - (-95, ('[NPC][Invasion][Retaliating Minmatar Entities]Dread', 0, 0, 583, 417)), - (-96, ('[NPC][Invasion][Retaliating Minmatar Entities]Subcaps', 302, 136, 328, 234)), - (-97, ('[NPC][Mission]Amarr Empire', 4464, 3546, 97, 0)), - (-98, ('[NPC][Mission]Caldari State', 0, 2139, 4867, 0)), - (-99, ('[NPC][Mission]CONCORD', 336, 134, 212, 412)), - (-100, ('[NPC][Mission]Gallente Federation', 9, 3712, 2758, 0)), - (-101, ('[NPC][Mission]Khanid', 612, 483, 43, 6)), - (-102, ('[NPC][Mission]Minmatar Republic', 1024, 388, 1655, 4285)), - (-103, ('[NPC][Mission]Mordus Legion', 25, 262, 625, 0)), - (-104, ('[NPC][Mission]Thukker', 0, 52, 10, 79)), - (-105, ('[NPC]Sansha Incursion', 1682, 1347, 3678, 3678)), - (-106, ('[NPC]Sleepers', 1472, 1472, 1384, 1384))]) + (-86, (_c(_t('NPC')) + _c(_t('Invasion')) + _c(_t('Invading Precursor Entities')) + _t('Dread'), 0, 417, 0, 583)), + (-87, (_c(_t('NPC')) + _c(_t('Invasion')) + _c(_t('Invading Precursor Entities')) + _t('Normal Subcaps'), 0, 610, 0, 390)), + + # To avoid errors on msgfmt, we have to mark that '0%' is meaning literally 0% with no-python-format. + # See also: https://github.com/vslavik/poedit/issues/645 + (-88, (_c(_t('NPC')) + _c(_t('Invasion')) + _c(_t('Invading Precursor Entities')) + + # xgettext:no-python-format + _t('Subcaps w/missiles 0% spool up'), 367, 155, 367, 112)), + (-89, (_c(_t('NPC')) + _c(_t('Invasion')) + _c(_t('Invading Precursor Entities')) + + # xgettext:no-python-format + _t('Subcaps w/missiles 50% spool up'), 291, 243, 291, 175)), + (-90, (_c(_t('NPC')) + _c(_t('Invasion')) + _c(_t('Invading Precursor Entities')) + + # xgettext:no-python-format + _t('Subcaps w/missiles 100% spool up'), 241, 301, 241, 217)), + + (-91, (_c(_t('NPC')) + _c(_t('Invasion')) + _c(_t('Retaliating Amarr Entities')) + _t('Dread/Subcaps'), 583, 417, 0, 0)), + (-92, (_c(_t('NPC')) + _c(_t('Invasion')) + _c(_t('Retaliating Caldari Entities')) + _t('Dread'), 1000, 0, 0, 0)), + (-93, (_c(_t('NPC')) + _c(_t('Invasion')) + _c(_t('Retaliating Caldari Entities')) + _t('Subcaps'), 511, 21, 29, 440)), + (-94, (_c(_t('NPC')) + _c(_t('Invasion')) + _c(_t('Retaliating Gallente Entities')) + _t('Dread/Subcaps'), 0, 417, 583, 0)), + (-95, (_c(_t('NPC')) + _c(_t('Invasion')) + _c(_t('Retaliating Minmatar Entities')) + _t('Dread'), 0, 0, 583, 417)), + (-96, (_c(_t('NPC')) + _c(_t('Invasion')) + _c(_t('Retaliating Minmatar Entities')) + _t('Subcaps'), 302, 136, 328, 234)), + (-97, (_c(_t('NPC')) + _c(_t('Mission')) + _t('Amarr Empire'), 4464, 3546, 97, 0)), + (-98, (_c(_t('NPC')) + _c(_t('Mission')) + _t('Caldari State'), 0, 2139, 4867, 0)), + (-99, (_c(_t('NPC')) + _c(_t('Mission')) + _t('CONCORD'), 336, 134, 212, 412)), + (-100, (_c(_t('NPC')) + _c(_t('Mission')) + _t('Gallente Federation'), 9, 3712, 2758, 0)), + (-101, (_c(_t('NPC')) + _c(_t('Mission')) + _t('Khanid'), 612, 483, 43, 6)), + (-102, (_c(_t('NPC')) + _c(_t('Mission')) + _t('Minmatar Republic'), 1024, 388, 1655, 4285)), + (-103, (_c(_t('NPC')) + _c(_t('Mission')) + _t('Mordus Legion'), 25, 262, 625, 0)), + (-104, (_c(_t('NPC')) + _c(_t('Mission')) + _t('Thukker'), 0, 52, 10, 79)), + (-105, (_c(_t('NPC')) + _t('Sansha Incursion'), 1682, 1347, 3678, 3678)), + (-106, (_c(_t('NPC')) + _t('Sleepers'), 1472, 1472, 1384, 1384))]) class DamagePattern: - DAMAGE_TYPES = ('em', 'thermal', 'kinetic', 'explosive') _builtins = None @@ -201,7 +218,8 @@ def calculateEffectiveTank(self, fit, tankInfo): "armorRepair": "armor", "armorRepairPreSpool": "armor", "armorRepairFullSpool": "armor", - "hullRepair": "hull"} + "hullRepair": "hull" + } ereps = {} for field in tankInfo: if field in typeMap: @@ -225,10 +243,10 @@ def effectivify(self, fit, amount, type): return amount / (specificDivider or 1) importMap = { - "em" : "em", + "em": "em", "therm": "thermal", - "kin" : "kinetic", - "exp" : "explosive" + "kin": "kinetic", + "exp": "explosive" } @classmethod diff --git a/eos/saveddata/targetProfile.py b/eos/saveddata/targetProfile.py index e2a816d528..9f2d241992 100644 --- a/eos/saveddata/targetProfile.py +++ b/eos/saveddata/targetProfile.py @@ -26,164 +26,170 @@ import eos.db - pyfalog = Logger(__name__) +def _t(x): + return x + + +def _c(x): + return '[' + x + ']' + + BUILTINS = OrderedDict([ # 0 is taken by ideal target profile, composed manually in one of TargetProfile methods - (-1, ('Uniform (25%)', 0.25, 0.25, 0.25, 0.25)), - (-2, ('Uniform (50%)', 0.50, 0.50, 0.50, 0.50)), - (-3, ('Uniform (75%)', 0.75, 0.75, 0.75, 0.75)), - (-4, ('Uniform (90%)', 0.90, 0.90, 0.90, 0.90)), - (-5, ('[T1 Resist]Shield', 0.0, 0.20, 0.40, 0.50)), - (-6, ('[T1 Resist]Armor', 0.50, 0.45, 0.25, 0.10)), - (-7, ('[T1 Resist]Hull', 0.33, 0.33, 0.33, 0.33)), - (-8, ('[T1 Resist]Shield (+T2 DCU)', 0.125, 0.30, 0.475, 0.562)), - (-9, ('[T1 Resist]Armor (+T2 DCU)', 0.575, 0.532, 0.363, 0.235)), - (-10, ('[T1 Resist]Hull (+T2 DCU)', 0.598, 0.598, 0.598, 0.598)), - (-11, ('[T2 Resist]Amarr (Shield)', 0.0, 0.20, 0.70, 0.875)), - (-12, ('[T2 Resist]Amarr (Armor)', 0.50, 0.35, 0.625, 0.80)), - (-13, ('[T2 Resist]Caldari (Shield)', 0.20, 0.84, 0.76, 0.60)), - (-14, ('[T2 Resist]Caldari (Armor)', 0.50, 0.8625, 0.625, 0.10)), - (-15, ('[T2 Resist]Gallente (Shield)', 0.0, 0.60, 0.85, 0.50)), - (-16, ('[T2 Resist]Gallente (Armor)', 0.50, 0.675, 0.8375, 0.10)), - (-17, ('[T2 Resist]Minmatar (Shield)', 0.75, 0.60, 0.40, 0.50)), - (-18, ('[T2 Resist]Minmatar (Armor)', 0.90, 0.675, 0.25, 0.10)), - (-19, ('[NPC][Asteroid]Angel Cartel', 0.54, 0.42, 0.37, 0.32)), - (-20, ('[NPC][Asteroid]Blood Raiders', 0.34, 0.39, 0.45, 0.52)), - (-21, ('[NPC][Asteroid]Guristas', 0.55, 0.35, 0.3, 0.48)), - (-22, ('[NPC][Asteroid]Rogue Drones', 0.35, 0.38, 0.44, 0.49)), - (-23, ('[NPC][Asteroid]Sanshas Nation', 0.35, 0.4, 0.47, 0.53)), - (-24, ('[NPC][Asteroid]Serpentis', 0.49, 0.38, 0.29, 0.51)), - (-25, ('[NPC][Deadspace]Angel Cartel', 0.59, 0.48, 0.4, 0.32)), - (-26, ('[NPC][Deadspace]Blood Raiders', 0.31, 0.39, 0.47, 0.56)), - (-27, ('[NPC][Deadspace]Guristas', 0.57, 0.39, 0.31, 0.5)), - (-28, ('[NPC][Deadspace]Rogue Drones', 0.42, 0.42, 0.47, 0.49)), - (-29, ('[NPC][Deadspace]Sanshas Nation', 0.31, 0.39, 0.47, 0.56)), - (-30, ('[NPC][Deadspace]Serpentis', 0.49, 0.38, 0.29, 0.56)), - (-31, ('[NPC][Mission]Amarr Empire', 0.34, 0.38, 0.42, 0.46)), - (-32, ('[NPC][Mission]Caldari State', 0.51, 0.38, 0.3, 0.51)), - (-33, ('[NPC][Mission]CONCORD', 0.47, 0.46, 0.47, 0.47)), - (-34, ('[NPC][Mission]Gallente Federation', 0.51, 0.38, 0.31, 0.52)), - (-35, ('[NPC][Mission]Khanid', 0.51, 0.42, 0.36, 0.4)), - (-36, ('[NPC][Mission]Minmatar Republic', 0.51, 0.46, 0.41, 0.35)), - (-37, ('[NPC][Mission]Mordus Legion', 0.32, 0.48, 0.4, 0.62)), - (-38, ('[NPC][Other]Sleeper', 0.61, 0.61, 0.61, 0.61)), - (-39, ('[NPC][Other]Sansha Incursion', 0.65, 0.63, 0.64, 0.65)), - (-40, ('[NPC][Burner]Cruor (Blood Raiders)', 0.8, 0.73, 0.69, 0.67)), - (-41, ('[NPC][Burner]Dramiel (Angel)', 0.35, 0.48, 0.61, 0.68)), - (-42, ('[NPC][Burner]Daredevil (Serpentis)', 0.69, 0.59, 0.59, 0.43)), - (-43, ('[NPC][Burner]Succubus (Sanshas Nation)', 0.35, 0.48, 0.61, 0.68)), - (-44, ('[NPC][Burner]Worm (Guristas)', 0.48, 0.58, 0.69, 0.74)), - (-45, ('[NPC][Burner]Enyo', 0.58, 0.72, 0.86, 0.24)), - (-46, ('[NPC][Burner]Hawk', 0.3, 0.86, 0.79, 0.65)), - (-47, ('[NPC][Burner]Jaguar', 0.78, 0.65, 0.48, 0.56)), - (-48, ('[NPC][Burner]Vengeance', 0.66, 0.56, 0.75, 0.86)), - (-49, ('[NPC][Burner]Ashimmu (Blood Raiders)', 0.8, 0.76, 0.68, 0.7)), - (-50, ('[NPC][Burner]Talos', 0.68, 0.59, 0.59, 0.43)), - (-51, ('[NPC][Burner]Sentinel', 0.58, 0.45, 0.52, 0.66)), + (-1, (_t('Uniform (25%)'), 0.25, 0.25, 0.25, 0.25)), + (-2, (_t('Uniform (50%)'), 0.50, 0.50, 0.50, 0.50)), + (-3, (_t('Uniform (75%)'), 0.75, 0.75, 0.75, 0.75)), + (-4, (_t('Uniform (90%)'), 0.90, 0.90, 0.90, 0.90)), + (-5, (_c(_t('T1 Resist')) + _t('Shield'), 0.0, 0.20, 0.40, 0.50)), + (-6, (_c(_t('T1 Resist')) + _t('Armor'), 0.50, 0.45, 0.25, 0.10)), + (-7, (_c(_t('T1 Resist')) + _t('Hull'), 0.33, 0.33, 0.33, 0.33)), + (-8, (_c(_t('T1 Resist')) + _t('Shield (+T2 DCU)'), 0.125, 0.30, 0.475, 0.562)), + (-9, (_c(_t('T1 Resist')) + _t('Armor (+T2 DCU)'), 0.575, 0.532, 0.363, 0.235)), + (-10, (_c(_t('T1 Resist')) + _t('Hull (+T2 DCU)'), 0.598, 0.598, 0.598, 0.598)), + (-11, (_c(_t('T2 Resist')) + _t('Amarr (Shield)'), 0.0, 0.20, 0.70, 0.875)), + (-12, (_c(_t('T2 Resist')) + _t('Amarr (Armor)'), 0.50, 0.35, 0.625, 0.80)), + (-13, (_c(_t('T2 Resist')) + _t('Caldari (Shield)'), 0.20, 0.84, 0.76, 0.60)), + (-14, (_c(_t('T2 Resist')) + _t('Caldari (Armor)'), 0.50, 0.8625, 0.625, 0.10)), + (-15, (_c(_t('T2 Resist')) + _t('Gallente (Shield)'), 0.0, 0.60, 0.85, 0.50)), + (-16, (_c(_t('T2 Resist')) + _t('Gallente (Armor)'), 0.50, 0.675, 0.8375, 0.10)), + (-17, (_c(_t('T2 Resist')) + _t('Minmatar (Shield)'), 0.75, 0.60, 0.40, 0.50)), + (-18, (_c(_t('T2 Resist')) + _t('Minmatar (Armor)'), 0.90, 0.675, 0.25, 0.10)), + (-19, (_c(_t('NPC')) + _c(_t('Asteroid')) + _t('Angel Cartel'), 0.54, 0.42, 0.37, 0.32)), + (-20, (_c(_t('NPC')) + _c(_t('Asteroid')) + _t('Blood Raiders'), 0.34, 0.39, 0.45, 0.52)), + (-21, (_c(_t('NPC')) + _c(_t('Asteroid')) + _t('Guristas'), 0.55, 0.35, 0.3, 0.48)), + (-22, (_c(_t('NPC')) + _c(_t('Asteroid')) + _t('Rogue Drones'), 0.35, 0.38, 0.44, 0.49)), + (-23, (_c(_t('NPC')) + _c(_t('Asteroid')) + _t('Sanshas Nation'), 0.35, 0.4, 0.47, 0.53)), + (-24, (_c(_t('NPC')) + _c(_t('Asteroid')) + _t('Serpentis'), 0.49, 0.38, 0.29, 0.51)), + (-25, (_c(_t('NPC')) + _c(_t('Deadspace')) + _t('Angel Cartel'), 0.59, 0.48, 0.4, 0.32)), + (-26, (_c(_t('NPC')) + _c(_t('Deadspace')) + _t('Blood Raiders'), 0.31, 0.39, 0.47, 0.56)), + (-27, (_c(_t('NPC')) + _c(_t('Deadspace')) + _t('Guristas'), 0.57, 0.39, 0.31, 0.5)), + (-28, (_c(_t('NPC')) + _c(_t('Deadspace')) + _t('Rogue Drones'), 0.42, 0.42, 0.47, 0.49)), + (-29, (_c(_t('NPC')) + _c(_t('Deadspace')) + _t('Sanshas Nation'), 0.31, 0.39, 0.47, 0.56)), + (-30, (_c(_t('NPC')) + _c(_t('Deadspace')) + _t('Serpentis'), 0.49, 0.38, 0.29, 0.56)), + (-31, (_c(_t('NPC')) + _c(_t('Mission')) + _t('Amarr Empire'), 0.34, 0.38, 0.42, 0.46)), + (-32, (_c(_t('NPC')) + _c(_t('Mission')) + _t('Caldari State'), 0.51, 0.38, 0.3, 0.51)), + (-33, (_c(_t('NPC')) + _c(_t('Mission')) + _t('CONCORD'), 0.47, 0.46, 0.47, 0.47)), + (-34, (_c(_t('NPC')) + _c(_t('Mission')) + _t('Gallente Federation'), 0.51, 0.38, 0.31, 0.52)), + (-35, (_c(_t('NPC')) + _c(_t('Mission')) + _t('Khanid'), 0.51, 0.42, 0.36, 0.4)), + (-36, (_c(_t('NPC')) + _c(_t('Mission')) + _t('Minmatar Republic'), 0.51, 0.46, 0.41, 0.35)), + (-37, (_c(_t('NPC')) + _c(_t('Mission')) + _t('Mordus Legion'), 0.32, 0.48, 0.4, 0.62)), + (-38, (_c(_t('NPC')) + _c(_t('Other')) + _t('Sleeper'), 0.61, 0.61, 0.61, 0.61)), + (-39, (_c(_t('NPC')) + _c(_t('Other')) + _t('Sansha Incursion'), 0.65, 0.63, 0.64, 0.65)), + (-40, (_c(_t('NPC')) + _c(_t('Burner')) + _t('Cruor (Blood Raiders)'), 0.8, 0.73, 0.69, 0.67)), + (-41, (_c(_t('NPC')) + _c(_t('Burner')) + _t('Dramiel (Angel)'), 0.35, 0.48, 0.61, 0.68)), + (-42, (_c(_t('NPC')) + _c(_t('Burner')) + _t('Daredevil (Serpentis)'), 0.69, 0.59, 0.59, 0.43)), + (-43, (_c(_t('NPC')) + _c(_t('Burner')) + _t('Succubus (Sanshas Nation)'), 0.35, 0.48, 0.61, 0.68)), + (-44, (_c(_t('NPC')) + _c(_t('Burner')) + _t('Worm (Guristas)'), 0.48, 0.58, 0.69, 0.74)), + (-45, (_c(_t('NPC')) + _c(_t('Burner')) + _t('Enyo'), 0.58, 0.72, 0.86, 0.24)), + (-46, (_c(_t('NPC')) + _c(_t('Burner')) + _t('Hawk'), 0.3, 0.86, 0.79, 0.65)), + (-47, (_c(_t('NPC')) + _c(_t('Burner')) + _t('Jaguar'), 0.78, 0.65, 0.48, 0.56)), + (-48, (_c(_t('NPC')) + _c(_t('Burner')) + _t('Vengeance'), 0.66, 0.56, 0.75, 0.86)), + (-49, (_c(_t('NPC')) + _c(_t('Burner')) + _t('Ashimmu (Blood Raiders)'), 0.8, 0.76, 0.68, 0.7)), + (-50, (_c(_t('NPC')) + _c(_t('Burner')) + _t('Talos'), 0.68, 0.59, 0.59, 0.43)), + (-51, (_c(_t('NPC')) + _c(_t('Burner')) + _t('Sentinel'), 0.58, 0.45, 0.52, 0.66)), # Source: ticket #2067 - (-52, ('[NPC][Invasion]Invading Precursor Entities', 0.422, 0.367, 0.453, 0.411)), - (-53, ('[NPC][Invasion]Retaliating Amarr Entities', 0.360, 0.310, 0.441, 0.602)), - (-54, ('[NPC][Invasion]Retaliating Caldari Entities', 0.287, 0.610, 0.487, 0.401)), - (-55, ('[NPC][Invasion]Retaliating Gallente Entities', 0.383, 0.414, 0.578, 0.513)), - (-56, ('[NPC][Invasion]Retaliating Minmatar Entities', 0.620, 0.422, 0.355, 0.399)), - (-57, ('[NPC][Abyssal][Dark Matter All Tiers]Drones', 0.439, 0.522, 0.529, 0.435)), - (-58, ('[NPC][Abyssal][Dark Matter All Tiers]Overmind', 0.626, 0.576, 0.612, 0.624)), - (-59, ('[NPC][Abyssal][Dark Matter All Tiers]Seeker', 0.082, 0.082, 0.082, 0.082)), - (-60, ('[NPC][Abyssal][Dark Matter All Tiers]Triglavian', 0.477, 0.401, 0.449, 0.37)), - (-61, ('[NPC][Abyssal][Dark Matter All Tiers]Drifter', 0.403, 0.403, 0.403, 0.403)), - (-62, ('[NPC][Abyssal][Dark Matter All Tiers]Sleeper', 0.435, 0.435, 0.435, 0.435)), - (-63, ('[NPC][Abyssal][Dark Matter All Tiers]All', 0.507, 0.477, 0.502, 0.493)), - (-64, ('[NPC][Abyssal][Electrical T1/T2]Drones', 0.323, 0.522, 0.529, 0.435)), - (-65, ('[NPC][Abyssal][Electrical T1/T2]Overmind', 0.521, 0.576, 0.612, 0.624)), - (-66, ('[NPC][Abyssal][Electrical T1/T2]Seeker', 0, 0.082, 0.082, 0.082)), - (-67, ('[NPC][Abyssal][Electrical T1/T2]Triglavian', 0.333, 0.401, 0.449, 0.37)), - (-68, ('[NPC][Abyssal][Electrical T1/T2]Drifter', 0.267, 0.403, 0.403, 0.403)), - (-69, ('[NPC][Abyssal][Electrical T1/T2]Sleeper', 0.329, 0.435, 0.435, 0.435)), - (-70, ('[NPC][Abyssal][Electrical T1/T2]All', 0.385, 0.477, 0.502, 0.493)), - (-71, ('[NPC][Abyssal][Electrical T3 (Some T5 Rooms)]Drones', 0.255, 0.522, 0.529, 0.435)), - (-72, ('[NPC][Abyssal][Electrical T3 (Some T5 Rooms)]Overmind', 0.457, 0.576, 0.612, 0.624)), - (-73, ('[NPC][Abyssal][Electrical T3 (Some T5 Rooms)]Seeker', 0, 0.082, 0.082, 0.082)), - (-74, ('[NPC][Abyssal][Electrical T3 (Some T5 Rooms)]Triglavian', 0.241, 0.401, 0.449, 0.37)), - (-75, ('[NPC][Abyssal][Electrical T3 (Some T5 Rooms)]Drifter', 0.184, 0.403, 0.403, 0.403)), - (-76, ('[NPC][Abyssal][Electrical T3 (Some T5 Rooms)]Sleeper', 0.268, 0.435, 0.435, 0.435)), - (-77, ('[NPC][Abyssal][Electrical T3 (Some T5 Rooms)]All', 0.313, 0.477, 0.502, 0.493)), - (-78, ('[NPC][Abyssal][Electrical T4/T5]Drones', 0.193, 0.522, 0.529, 0.435)), - (-79, ('[NPC][Abyssal][Electrical T4/T5]Overmind', 0.398, 0.576, 0.612, 0.624)), - (-80, ('[NPC][Abyssal][Electrical T4/T5]Seeker', 0, 0.082, 0.082, 0.082)), - (-81, ('[NPC][Abyssal][Electrical T4/T5]Triglavian', 0.183, 0.401, 0.449, 0.37)), - (-82, ('[NPC][Abyssal][Electrical T4/T5]Drifter', 0.107, 0.403, 0.403, 0.403)), - (-83, ('[NPC][Abyssal][Electrical T4/T5]Sleeper', 0.215, 0.435, 0.435, 0.435)), - (-84, ('[NPC][Abyssal][Electrical T4/T5]All', 0.25, 0.477, 0.502, 0.493)), - (-85, ('[NPC][Abyssal][Firestorm T1/T2]Drones', 0.461, 0.425, 0.541, 0.443)), - (-86, ('[NPC][Abyssal][Firestorm T1/T2]Overmind', 0.65, 0.469, 0.625, 0.633)), - (-87, ('[NPC][Abyssal][Firestorm T1/T2]Seeker', 0.084, 0, 0.084, 0.084)), - (-88, ('[NPC][Abyssal][Firestorm T1/T2]Triglavian', 0.534, 0.266, 0.484, 0.366)), - (-89, ('[NPC][Abyssal][Firestorm T1/T2]Drifter', 0.422, 0.282, 0.422, 0.422)), - (-90, ('[NPC][Abyssal][Firestorm T1/T2]Sleeper', 0.512, 0.402, 0.512, 0.512)), - (-91, ('[NPC][Abyssal][Firestorm T1/T2]All', 0.541, 0.365, 0.524, 0.504)), - (-92, ('[NPC][Abyssal][Firestorm T3 (Some T5 Rooms)]Drones', 0.461, 0.36, 0.541, 0.443)), - (-93, ('[NPC][Abyssal][Firestorm T3 (Some T5 Rooms)]Overmind', 0.65, 0.391, 0.625, 0.633)), - (-94, ('[NPC][Abyssal][Firestorm T3 (Some T5 Rooms)]Seeker', 0.084, 0, 0.084, 0.084)), - (-95, ('[NPC][Abyssal][Firestorm T3 (Some T5 Rooms)]Triglavian', 0.534, 0.161, 0.484, 0.366)), - (-96, ('[NPC][Abyssal][Firestorm T3 (Some T5 Rooms)]Drifter', 0.422, 0.196, 0.422, 0.422)), - (-97, ('[NPC][Abyssal][Firestorm T3 (Some T5 Rooms)]Sleeper', 0.512, 0.337, 0.512, 0.512)), - (-98, ('[NPC][Abyssal][Firestorm T3 (Some T5 Rooms)]All', 0.541, 0.284, 0.524, 0.504)), - (-99, ('[NPC][Abyssal][Firestorm T4/T5]Drones', 0.461, 0.305, 0.541, 0.443)), - (-100, ('[NPC][Abyssal][Firestorm T4/T5]Overmind', 0.65, 0.323, 0.625, 0.633)), - (-101, ('[NPC][Abyssal][Firestorm T4/T5]Seeker', 0.084, 0, 0.084, 0.084)), - (-102, ('[NPC][Abyssal][Firestorm T4/T5]Triglavian', 0.534, 0.082, 0.484, 0.366)), - (-103, ('[NPC][Abyssal][Firestorm T4/T5]Drifter', 0.422, 0.114, 0.422, 0.422)), - (-104, ('[NPC][Abyssal][Firestorm T4/T5]Sleeper', 0.512, 0.276, 0.512, 0.512)), - (-105, ('[NPC][Abyssal][Firestorm T4/T5]All', 0.541, 0.214, 0.524, 0.504)), - (-106, ('[NPC][Abyssal][Exotic T1/T2]Drones', 0.439, 0.522, 0.417, 0.435)), - (-107, ('[NPC][Abyssal][Exotic T1/T2]Overmind', 0.626, 0.576, 0.496, 0.624)), - (-108, ('[NPC][Abyssal][Exotic T1/T2]Seeker', 0.082, 0.082, 0, 0.082)), - (-109, ('[NPC][Abyssal][Exotic T1/T2]Triglavian', 0.477, 0.401, 0.284, 0.37)), - (-110, ('[NPC][Abyssal][Exotic T1/T2]Drifter', 0.403, 0.403, 0.267, 0.403)), - (-111, ('[NPC][Abyssal][Exotic T1/T2]Sleeper', 0.435, 0.435, 0.329, 0.435)), - (-112, ('[NPC][Abyssal][Exotic T1/T2]All', 0.507, 0.477, 0.373, 0.493)), - (-113, ('[NPC][Abyssal][Exotic T3 (Some T5 Rooms)]Drones', 0.439, 0.522, 0.351, 0.435)), - (-114, ('[NPC][Abyssal][Exotic T3 (Some T5 Rooms)]Overmind', 0.626, 0.576, 0.419, 0.624)), - (-115, ('[NPC][Abyssal][Exotic T3 (Some T5 Rooms)]Seeker', 0.082, 0.082, 0, 0.082)), - (-116, ('[NPC][Abyssal][Exotic T3 (Some T5 Rooms)]Triglavian', 0.477, 0.401, 0.176, 0.37)), - (-117, ('[NPC][Abyssal][Exotic T3 (Some T5 Rooms)]Drifter', 0.403, 0.403, 0.184, 0.403)), - (-118, ('[NPC][Abyssal][Exotic T3 (Some T5 Rooms)]Sleeper', 0.435, 0.435, 0.268, 0.435)), - (-119, ('[NPC][Abyssal][Exotic T3 (Some T5 Rooms)]All', 0.507, 0.477, 0.293, 0.493)), - (-120, ('[NPC][Abyssal][Exotic T4/T5]Drones', 0.439, 0.522, 0.293, 0.435)), - (-121, ('[NPC][Abyssal][Exotic T4/T5]Overmind', 0.626, 0.576, 0.344, 0.624)), - (-122, ('[NPC][Abyssal][Exotic T4/T5]Seeker', 0.082, 0.082, 0, 0.082)), - (-123, ('[NPC][Abyssal][Exotic T4/T5]Triglavian', 0.477, 0.401, 0.107, 0.37)), - (-124, ('[NPC][Abyssal][Exotic T4/T5]Drifter', 0.403, 0.403, 0.107, 0.403)), - (-125, ('[NPC][Abyssal][Exotic T4/T5]Sleeper', 0.435, 0.435, 0.215, 0.435)), - (-126, ('[NPC][Abyssal][Exotic T4/T5]All', 0.507, 0.477, 0.223, 0.493)), - (-127, ('[NPC][Abyssal][Gamma T1/T2]Drones', 0.449, 0.54, 0.549, 0.336)), - (-128, ('[NPC][Abyssal][Gamma T1/T2]Overmind', 0.6, 0.557, 0.601, 0.504)), - (-129, ('[NPC][Abyssal][Gamma T1/T2]Seeker', 0.085, 0.085, 0.085, 0)), - (-130, ('[NPC][Abyssal][Gamma T1/T2]Triglavian', 0.463, 0.392, 0.447, 0.193)), - (-131, ('[NPC][Abyssal][Gamma T1/T2]Drifter', 0.428, 0.428, 0.428, 0.287)), - (-132, ('[NPC][Abyssal][Gamma T1/T2]Sleeper', 0.435, 0.435, 0.435, 0.329)), - (-133, ('[NPC][Abyssal][Gamma T1/T2]All', 0.493, 0.472, 0.5, 0.362)), - (-134, ('[NPC][Abyssal][Gamma T3 (Some T5 Rooms)]Drones', 0.449, 0.54, 0.549, 0.264)), - (-135, ('[NPC][Abyssal][Gamma T3 (Some T5 Rooms)]Overmind', 0.6, 0.557, 0.601, 0.428)), - (-136, ('[NPC][Abyssal][Gamma T3 (Some T5 Rooms)]Seeker', 0.085, 0.085, 0.085, 0)), - (-137, ('[NPC][Abyssal][Gamma T3 (Some T5 Rooms)]Triglavian', 0.463, 0.392, 0.447, 0.071)), - (-138, ('[NPC][Abyssal][Gamma T3 (Some T5 Rooms)]Drifter', 0.428, 0.428, 0.428, 0.2)), - (-139, ('[NPC][Abyssal][Gamma T3 (Some T5 Rooms)]Sleeper', 0.435, 0.435, 0.435, 0.268)), - (-140, ('[NPC][Abyssal][Gamma T3 (Some T5 Rooms)]All', 0.493, 0.472, 0.5, 0.28)), - (-141, ('[NPC][Abyssal][Gamma T4/T5]Drones', 0.449, 0.54, 0.549, 0.197)), - (-142, ('[NPC][Abyssal][Gamma T4/T5]Overmind', 0.6, 0.557, 0.601, 0.356)), - (-143, ('[NPC][Abyssal][Gamma T4/T5]Seeker', 0.085, 0.085, 0.085, 0)), - (-144, ('[NPC][Abyssal][Gamma T4/T5]Triglavian', 0.463, 0.392, 0.447, 0.029)), - (-145, ('[NPC][Abyssal][Gamma T4/T5]Drifter', 0.428, 0.428, 0.428, 0.117)), - (-146, ('[NPC][Abyssal][Gamma T4/T5]Sleeper', 0.435, 0.435, 0.435, 0.215)), - (-147, ('[NPC][Abyssal][Gamma T4/T5]All', 0.493, 0.472, 0.5, 0.21))]) + (-52, (_c(_t('NPC')) + _c(_t('Invasion')) + _t('Invading Precursor Entities'), 0.422, 0.367, 0.453, 0.411)), + (-53, (_c(_t('NPC')) + _c(_t('Invasion')) + _t('Retaliating Amarr Entities'), 0.360, 0.310, 0.441, 0.602)), + (-54, (_c(_t('NPC')) + _c(_t('Invasion')) + _t('Retaliating Caldari Entities'), 0.287, 0.610, 0.487, 0.401)), + (-55, (_c(_t('NPC')) + _c(_t('Invasion')) + _t('Retaliating Gallente Entities'), 0.383, 0.414, 0.578, 0.513)), + (-56, (_c(_t('NPC')) + _c(_t('Invasion')) + _t('Retaliating Minmatar Entities'), 0.620, 0.422, 0.355, 0.399)), + (-57, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Dark Matter All Tiers')) + _t('Drones'), 0.439, 0.522, 0.529, 0.435)), + (-58, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Dark Matter All Tiers')) + _t('Overmind'), 0.626, 0.576, 0.612, 0.624)), + (-59, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Dark Matter All Tiers')) + _t('Seeker'), 0.082, 0.082, 0.082, 0.082)), + (-60, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Dark Matter All Tiers')) + _t('Triglavian'), 0.477, 0.401, 0.449, 0.37)), + (-61, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Dark Matter All Tiers')) + _t('Drifter'), 0.403, 0.403, 0.403, 0.403)), + (-62, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Dark Matter All Tiers')) + _t('Sleeper'), 0.435, 0.435, 0.435, 0.435)), + (-63, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Dark Matter All Tiers')) + _t('All'), 0.507, 0.477, 0.502, 0.493)), + (-64, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Electrical T1/T2')) + _t('Drones'), 0.323, 0.522, 0.529, 0.435)), + (-65, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Electrical T1/T2')) + _t('Overmind'), 0.521, 0.576, 0.612, 0.624)), + (-66, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Electrical T1/T2')) + _t('Seeker'), 0, 0.082, 0.082, 0.082)), + (-67, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Electrical T1/T2')) + _t('Triglavian'), 0.333, 0.401, 0.449, 0.37)), + (-68, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Electrical T1/T2')) + _t('Drifter'), 0.267, 0.403, 0.403, 0.403)), + (-69, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Electrical T1/T2')) + _t('Sleeper'), 0.329, 0.435, 0.435, 0.435)), + (-70, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Electrical T1/T2')) + _t('All'), 0.385, 0.477, 0.502, 0.493)), + (-71, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Electrical T3 (Some T5 Rooms)')) + _t('Drones'), 0.255, 0.522, 0.529, 0.435)), + (-72, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Electrical T3 (Some T5 Rooms)')) + _t('Overmind'), 0.457, 0.576, 0.612, 0.624)), + (-73, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Electrical T3 (Some T5 Rooms)')) + _t('Seeker'), 0, 0.082, 0.082, 0.082)), + (-74, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Electrical T3 (Some T5 Rooms)')) + _t('Triglavian'), 0.241, 0.401, 0.449, 0.37)), + (-75, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Electrical T3 (Some T5 Rooms)')) + _t('Drifter'), 0.184, 0.403, 0.403, 0.403)), + (-76, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Electrical T3 (Some T5 Rooms)')) + _t('Sleeper'), 0.268, 0.435, 0.435, 0.435)), + (-77, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Electrical T3 (Some T5 Rooms)')) + _t('All'), 0.313, 0.477, 0.502, 0.493)), + (-78, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Electrical T4/T5')) + _t('Drones'), 0.193, 0.522, 0.529, 0.435)), + (-79, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Electrical T4/T5')) + _t('Overmind'), 0.398, 0.576, 0.612, 0.624)), + (-80, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Electrical T4/T5')) + _t('Seeker'), 0, 0.082, 0.082, 0.082)), + (-81, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Electrical T4/T5')) + _t('Triglavian'), 0.183, 0.401, 0.449, 0.37)), + (-82, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Electrical T4/T5')) + _t('Drifter'), 0.107, 0.403, 0.403, 0.403)), + (-83, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Electrical T4/T5')) + _t('Sleeper'), 0.215, 0.435, 0.435, 0.435)), + (-84, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Electrical T4/T5')) + _t('All'), 0.25, 0.477, 0.502, 0.493)), + (-85, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Firestorm T1/T2')) + _t('Drones'), 0.461, 0.425, 0.541, 0.443)), + (-86, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Firestorm T1/T2')) + _t('Overmind'), 0.65, 0.469, 0.625, 0.633)), + (-87, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Firestorm T1/T2')) + _t('Seeker'), 0.084, 0, 0.084, 0.084)), + (-88, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Firestorm T1/T2')) + _t('Triglavian'), 0.534, 0.266, 0.484, 0.366)), + (-89, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Firestorm T1/T2')) + _t('Drifter'), 0.422, 0.282, 0.422, 0.422)), + (-90, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Firestorm T1/T2')) + _t('Sleeper'), 0.512, 0.402, 0.512, 0.512)), + (-91, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Firestorm T1/T2')) + _t('All'), 0.541, 0.365, 0.524, 0.504)), + (-92, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Firestorm T3 (Some T5 Rooms)')) + _t('Drones'), 0.461, 0.36, 0.541, 0.443)), + (-93, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Firestorm T3 (Some T5 Rooms)')) + _t('Overmind'), 0.65, 0.391, 0.625, 0.633)), + (-94, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Firestorm T3 (Some T5 Rooms)')) + _t('Seeker'), 0.084, 0, 0.084, 0.084)), + (-95, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Firestorm T3 (Some T5 Rooms)')) + _t('Triglavian'), 0.534, 0.161, 0.484, 0.366)), + (-96, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Firestorm T3 (Some T5 Rooms)')) + _t('Drifter'), 0.422, 0.196, 0.422, 0.422)), + (-97, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Firestorm T3 (Some T5 Rooms)')) + _t('Sleeper'), 0.512, 0.337, 0.512, 0.512)), + (-98, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Firestorm T3 (Some T5 Rooms)')) + _t('All'), 0.541, 0.284, 0.524, 0.504)), + (-99, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Firestorm T4/T5')) + _t('Drones'), 0.461, 0.305, 0.541, 0.443)), + (-100, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Firestorm T4/T5')) + _t('Overmind'), 0.65, 0.323, 0.625, 0.633)), + (-101, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Firestorm T4/T5')) + _t('Seeker'), 0.084, 0, 0.084, 0.084)), + (-102, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Firestorm T4/T5')) + _t('Triglavian'), 0.534, 0.082, 0.484, 0.366)), + (-103, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Firestorm T4/T5')) + _t('Drifter'), 0.422, 0.114, 0.422, 0.422)), + (-104, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Firestorm T4/T5')) + _t('Sleeper'), 0.512, 0.276, 0.512, 0.512)), + (-105, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Firestorm T4/T5')) + _t('All'), 0.541, 0.214, 0.524, 0.504)), + (-106, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Exotic T1/T2')) + _t('Drones'), 0.439, 0.522, 0.417, 0.435)), + (-107, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Exotic T1/T2')) + _t('Overmind'), 0.626, 0.576, 0.496, 0.624)), + (-108, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Exotic T1/T2')) + _t('Seeker'), 0.082, 0.082, 0, 0.082)), + (-109, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Exotic T1/T2')) + _t('Triglavian'), 0.477, 0.401, 0.284, 0.37)), + (-110, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Exotic T1/T2')) + _t('Drifter'), 0.403, 0.403, 0.267, 0.403)), + (-111, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Exotic T1/T2')) + _t('Sleeper'), 0.435, 0.435, 0.329, 0.435)), + (-112, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Exotic T1/T2')) + _t('All'), 0.507, 0.477, 0.373, 0.493)), + (-113, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Exotic T3 (Some T5 Rooms)')) + _t('Drones'), 0.439, 0.522, 0.351, 0.435)), + (-114, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Exotic T3 (Some T5 Rooms)')) + _t('Overmind'), 0.626, 0.576, 0.419, 0.624)), + (-115, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Exotic T3 (Some T5 Rooms)')) + _t('Seeker'), 0.082, 0.082, 0, 0.082)), + (-116, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Exotic T3 (Some T5 Rooms)')) + _t('Triglavian'), 0.477, 0.401, 0.176, 0.37)), + (-117, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Exotic T3 (Some T5 Rooms)')) + _t('Drifter'), 0.403, 0.403, 0.184, 0.403)), + (-118, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Exotic T3 (Some T5 Rooms)')) + _t('Sleeper'), 0.435, 0.435, 0.268, 0.435)), + (-119, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Exotic T3 (Some T5 Rooms)')) + _t('All'), 0.507, 0.477, 0.293, 0.493)), + (-120, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Exotic T4/T5')) + _t('Drones'), 0.439, 0.522, 0.293, 0.435)), + (-121, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Exotic T4/T5')) + _t('Overmind'), 0.626, 0.576, 0.344, 0.624)), + (-122, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Exotic T4/T5')) + _t('Seeker'), 0.082, 0.082, 0, 0.082)), + (-123, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Exotic T4/T5')) + _t('Triglavian'), 0.477, 0.401, 0.107, 0.37)), + (-124, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Exotic T4/T5')) + _t('Drifter'), 0.403, 0.403, 0.107, 0.403)), + (-125, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Exotic T4/T5')) + _t('Sleeper'), 0.435, 0.435, 0.215, 0.435)), + (-126, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Exotic T4/T5')) + _t('All'), 0.507, 0.477, 0.223, 0.493)), + (-127, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Gamma T1/T2')) + _t('Drones'), 0.449, 0.54, 0.549, 0.336)), + (-128, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Gamma T1/T2')) + _t('Overmind'), 0.6, 0.557, 0.601, 0.504)), + (-129, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Gamma T1/T2')) + _t('Seeker'), 0.085, 0.085, 0.085, 0)), + (-130, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Gamma T1/T2')) + _t('Triglavian'), 0.463, 0.392, 0.447, 0.193)), + (-131, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Gamma T1/T2')) + _t('Drifter'), 0.428, 0.428, 0.428, 0.287)), + (-132, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Gamma T1/T2')) + _t('Sleeper'), 0.435, 0.435, 0.435, 0.329)), + (-133, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Gamma T1/T2')) + _t('All'), 0.493, 0.472, 0.5, 0.362)), + (-134, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Gamma T3 (Some T5 Rooms)')) + _t('Drones'), 0.449, 0.54, 0.549, 0.264)), + (-135, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Gamma T3 (Some T5 Rooms)')) + _t('Overmind'), 0.6, 0.557, 0.601, 0.428)), + (-136, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Gamma T3 (Some T5 Rooms)')) + _t('Seeker'), 0.085, 0.085, 0.085, 0)), + (-137, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Gamma T3 (Some T5 Rooms)')) + _t('Triglavian'), 0.463, 0.392, 0.447, 0.071)), + (-138, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Gamma T3 (Some T5 Rooms)')) + _t('Drifter'), 0.428, 0.428, 0.428, 0.2)), + (-139, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Gamma T3 (Some T5 Rooms)')) + _t('Sleeper'), 0.435, 0.435, 0.435, 0.268)), + (-140, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Gamma T3 (Some T5 Rooms)')) + _t('All'), 0.493, 0.472, 0.5, 0.28)), + (-141, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Gamma T4/T5')) + _t('Drones'), 0.449, 0.54, 0.549, 0.197)), + (-142, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Gamma T4/T5')) + _t('Overmind'), 0.6, 0.557, 0.601, 0.356)), + (-143, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Gamma T4/T5')) + _t('Seeker'), 0.085, 0.085, 0.085, 0)), + (-144, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Gamma T4/T5')) + _t('Triglavian'), 0.463, 0.392, 0.447, 0.029)), + (-145, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Gamma T4/T5')) + _t('Drifter'), 0.428, 0.428, 0.428, 0.117)), + (-146, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Gamma T4/T5')) + _t('Sleeper'), 0.435, 0.435, 0.435, 0.215)), + (-147, (_c(_t('NPC')) + _c(_t('Abyssal')) + _c(_t('Gamma T4/T5')) + _t('All'), 0.493, 0.472, 0.5, 0.21))]) class TargetProfile: - # also determined import/export order - VERY IMPORTANT DAMAGE_TYPES = ('em', 'thermal', 'kinetic', 'explosive') _idealTarget = None @@ -234,14 +240,14 @@ def __generateBuiltins(cls): def getIdeal(cls): if cls._idealTarget is None: cls._idealTarget = cls( - emAmount=0, - thermalAmount=0, - kineticAmount=0, - explosiveAmount=0, - maxVelocity=0, - signatureRadius=None, - radius=0) - cls._idealTarget.rawName = 'Ideal Target' + emAmount=0, + thermalAmount=0, + kineticAmount=0, + explosiveAmount=0, + maxVelocity=0, + signatureRadius=None, + radius=0) + cls._idealTarget.rawName = _t('Ideal Target') cls._idealTarget.ID = 0 cls._idealTarget.builtin = True return cls._idealTarget @@ -399,7 +405,7 @@ def __parseRawName(self): def __deepcopy__(self, memo): p = TargetProfile( - self.emAmount, self.thermalAmount, self.kineticAmount, self.explosiveAmount, - self._maxVelocity, self._signatureRadius, self._radius) + self.emAmount, self.thermalAmount, self.kineticAmount, self.explosiveAmount, + self._maxVelocity, self._signatureRadius, self._radius) p.rawName = "%s copy" % self.rawName return p diff --git a/gui/builtinContextMenus/damagePatternChange.py b/gui/builtinContextMenus/damagePatternChange.py index b26c6e0f49..57720e87c8 100644 --- a/gui/builtinContextMenus/damagePatternChange.py +++ b/gui/builtinContextMenus/damagePatternChange.py @@ -11,6 +11,8 @@ from service.damagePattern import DamagePattern as DmgPatternSvc from service.fit import Fit +_t = wx.GetTranslation + class ChangeDamagePattern(ContextMenuUnconditional): @@ -43,8 +45,10 @@ def getText(self, callingWindow, itmContext): for pattern in self.patterns: container = self.items for categoryName in pattern.hierarchy: + categoryName = _t(categoryName) if pattern.builtin else categoryName container = container[1].setdefault(categoryName, (OrderedDict(), OrderedDict())) - container[0][pattern.shortName] = pattern + shortName = _t(pattern.shortName) if pattern.builtin else pattern.shortName + container[0][shortName] = pattern return list(self.items[0].keys()) + list(self.items[1].keys()) diff --git a/gui/builtinContextMenus/targetProfile/adder.py b/gui/builtinContextMenus/targetProfile/adder.py index 391ca33c66..8b3089e660 100644 --- a/gui/builtinContextMenus/targetProfile/adder.py +++ b/gui/builtinContextMenus/targetProfile/adder.py @@ -59,8 +59,10 @@ def getSubMenu(self, callingWindow, context, rootMenu, i, pitem): for profile in profiles: container = items for categoryName in profile.hierarchy: + categoryName = _t(categoryName) if profile.builtin else categoryName container = container[1].setdefault(categoryName, (OrderedDict(), OrderedDict())) - container[0][profile.shortName] = profile + shortName = _t(profile.shortName) if profile.builtin else profile.shortName + container[0][shortName] = profile # Category as menu item - expands further msw = "wxMSW" in wx.PlatformInfo diff --git a/gui/builtinContextMenus/targetProfile/switcher.py b/gui/builtinContextMenus/targetProfile/switcher.py index 80f3a02bf8..cdbf5f0bc2 100644 --- a/gui/builtinContextMenus/targetProfile/switcher.py +++ b/gui/builtinContextMenus/targetProfile/switcher.py @@ -71,8 +71,10 @@ def getSubMenu(self, callingWindow, context, rootMenu, i, pitem): for profile in profiles: container = items for categoryName in profile.hierarchy: + categoryName = _t(categoryName) if profile.builtin else categoryName container = container[1].setdefault(categoryName, (OrderedDict(), OrderedDict())) - container[0][profile.shortName] = profile + shortName = _t(profile.shortName) if profile.builtin else profile.shortName + container[0][shortName] = profile # Category as menu item - expands further msw = "wxMSW" in wx.PlatformInfo diff --git a/gui/builtinStatsViews/targetingMiscViewMinimal.py b/gui/builtinStatsViews/targetingMiscViewMinimal.py index ac6b56fa60..8a0f023e53 100644 --- a/gui/builtinStatsViews/targetingMiscViewMinimal.py +++ b/gui/builtinStatsViews/targetingMiscViewMinimal.py @@ -215,9 +215,9 @@ def refreshPanel(self, fit): ecmChance = otherValues["jamChance"] ecmChance = round(ecmChance, 1) if ecmChance > 0: - label.SetToolTip(wx.ToolTip( - _t("Type: {0}\n").foramt(fit.scanType) + "{}%".format(formatAmount(ecmChance, 3, 0, 0)) + _t(" chance to be jammed").format( - formatAmount(ecmChance, 3, 0, 0)))) + label.SetToolTip(wx.ToolTip(_t("Type: {0}\n").foramt(fit.scanType) + + # xgettext:no-python-format,python-brace-format + _t("{}% chance to be jammed").format(formatAmount(ecmChance, 3, 0, 0)))) else: label.SetToolTip(wx.ToolTip(_t("Type: {}").format(fit.scanType))) elif labelName == "labelFullAlignTime": @@ -226,7 +226,7 @@ def refreshPanel(self, fit): agility = _t("Agility:\t%.3fx") % (fit.ship.getModifiedItemAttr("agility") or 0) label.SetToolTip(wx.ToolTip("%s\n%s\n%s" % (alignTime, mass, agility))) elif labelName == "labelFullCargo": - tipLines = [_t("Cargohold: ")+"{:,.2f}m\u00B3 / {:,.2f}m\u00B3".format(fit.cargoBayUsed, newValues["main"])] + tipLines = [_t("Cargohold: ") + "{:,.2f}m\u00B3 / {:,.2f}m\u00B3".format(fit.cargoBayUsed, newValues["main"])] for attrName, tipAlias in list(cargoNamesOrder.items()): if newValues[attrName] > 0: tipLines.append("{}: {:,.2f}m\u00B3".format(tipAlias, newValues[attrName])) @@ -251,7 +251,7 @@ def refreshPanel(self, fit): cachedCargo = self._cachedValues[counter] # if you add stuff to cargo, the capacity doesn't change and thus it is still cached # This assures us that we force refresh of cargo tooltip - tipLines = [_t("Cargohold: ")+"{:,.2f}m\u00B3 / {:,.2f}m\u00B3".format(fit.cargoBayUsed, cachedCargo["main"])] + tipLines = [_t("Cargohold: ") + "{:,.2f}m\u00B3 / {:,.2f}m\u00B3".format(fit.cargoBayUsed, cachedCargo["main"])] for attrName, tipAlias in list(cargoNamesOrder.items()): if cachedCargo[attrName] > 0: tipLines.append("{}: {:,.2f}m\u00B3".format(tipAlias, cachedCargo[attrName])) diff --git a/gui/builtinViewColumns/baseName.py b/gui/builtinViewColumns/baseName.py index 88f93e3c3f..6e98aa71c5 100644 --- a/gui/builtinViewColumns/baseName.py +++ b/gui/builtinViewColumns/baseName.py @@ -60,7 +60,8 @@ def __init__(self, fittingView, params): FittingSlot.MED: _t('Med'), FittingSlot.LOW: _t('Low'), FittingSlot.SUBSYSTEM: _t('Subsystem'), - FittingSlot.RIG: _t('Rig') + FittingSlot.RIG: _t('Rig'), + FittingSlot.SERVICE: _t('Service') } diff --git a/gui/pyfa_gauge.py b/gui/pyfa_gauge.py index 056ca1dfca..cd83f3ecab 100644 --- a/gui/pyfa_gauge.py +++ b/gui/pyfa_gauge.py @@ -20,6 +20,8 @@ from gui.utils import anim_effects, color as color_utils, draw +_t = wx.GetTranslation + class PyGauge(wx.Window): def __init__(self, parent, font, max_range=100, size=(-1, 30), *args, **kargs): @@ -326,33 +328,33 @@ def OnPaint(self, event): r.top += 1 if self._max_range == 0.01 and self._value > 0: - format = u'\u221e' # infinity symbol + format_ = u'\u221e' # infinity symbol # drop shadow dc.SetTextForeground(wx.Colour(80, 80, 80)) # dark grey - dc.DrawLabel(format, r, wx.ALIGN_CENTER) + dc.DrawLabel(format_, r, wx.ALIGN_CENTER) # text dc.SetTextForeground(wx.WHITE) - dc.DrawLabel(format, rect, wx.ALIGN_CENTER) + dc.DrawLabel(format_, rect, wx.ALIGN_CENTER) else: if not self.GetBarColour() and self._show_remaining: # we only do these for gradients with mouse over - range = self._max_range if self._max_range > 0.01 else 0 - value = range - self._value + range_ = self._max_range if self._max_range > 0.01 else 0 + value = range_ - self._value if value < 0: - label = "over" + format_ = _t("{{0:.{0}f}} over").format(self._fraction_digits) value = -value else: - label = "left" - format = "{0:." + str(self._fraction_digits) + "f} " + label + format_ = _t("{{0:.{0}f}} left").format(self._fraction_digits) + else: - format = "{0:." + str(self._fraction_digits) + "f}%" + format_ = "{{0:.{0}f}}%".format(str(self._fraction_digits)) # drop shadow dc.SetTextForeground(wx.Colour(80, 80, 80)) - dc.DrawLabel(format.format(value), r, wx.ALIGN_CENTER) + dc.DrawLabel(format_.format(value), r, wx.ALIGN_CENTER) # text dc.SetTextForeground(wx.WHITE) - dc.DrawLabel(format.format(value), rect, wx.ALIGN_CENTER) + dc.DrawLabel(format_.format(value), rect, wx.ALIGN_CENTER) def OnTimer(self, event): old_value = self._old_percentage diff --git a/locale/zh_CN/LC_MESSAGES/lang.po b/locale/zh_CN/LC_MESSAGES/lang.po index f4c02fd328..0895bc563a 100644 --- a/locale/zh_CN/LC_MESSAGES/lang.po +++ b/locale/zh_CN/LC_MESSAGES/lang.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: pyfa 2.22.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-07-01 11:18+0800\n" -"PO-Revision-Date: 2020-07-01 11:19+0800\n" +"POT-Creation-Date: 2020-07-11 21:04+0800\n" +"PO-Revision-Date: 2020-07-11 21:07+0800\n" "Last-Translator: zhaoweny \n" "Language-Team: Chinese (simplified)\n" "Language: zh_CN\n" @@ -30,10 +30,6 @@ msgstr "堆" msgid " Volley: " msgstr "齐射" -#: gui/builtinStatsViews/targetingMiscViewMinimal.py:219 -msgid " chance to be jammed" -msgstr "概率丢失目标" - #: gui/builtinItemStatsViews/itemProperties.py:98 #, python-format msgid "%d attribute." @@ -79,7 +75,7 @@ msgstr "导出装配(&E)" msgid "&Export Skills Needed" msgstr "导出所需技能列表(&E)" -#: gui/mainMenuBar.py:66 gui/propertyEditor.py:42 +#: gui/propertyEditor.py:42 gui/mainMenuBar.py:66 msgid "&File" msgstr "文件(&F)" @@ -155,7 +151,7 @@ msgstr "导出到剪贴板(&T)" msgid "&Turn Overrides Off" msgstr "启用自定义属性(&T)" -#: gui/mainFrame.py:690 gui/mainMenuBar.py:131 +#: gui/mainMenuBar.py:131 gui/mainFrame.py:690 msgid "&Turn Overrides On" msgstr "启用自定义属性(&T)" @@ -181,6 +177,58 @@ msgstr "0秒" msgid "Abilities" msgstr "铁骑技能" +#: eos/saveddata/damagePattern.py:95 eos/saveddata/damagePattern.py:96 +#: eos/saveddata/damagePattern.py:97 eos/saveddata/damagePattern.py:98 +#: eos/saveddata/damagePattern.py:99 eos/saveddata/damagePattern.py:100 +#: eos/saveddata/damagePattern.py:101 eos/saveddata/targetProfile.py:99 +#: eos/saveddata/targetProfile.py:100 eos/saveddata/targetProfile.py:101 +#: eos/saveddata/targetProfile.py:102 eos/saveddata/targetProfile.py:103 +#: eos/saveddata/targetProfile.py:104 eos/saveddata/targetProfile.py:105 +#: eos/saveddata/targetProfile.py:106 eos/saveddata/targetProfile.py:107 +#: eos/saveddata/targetProfile.py:108 eos/saveddata/targetProfile.py:109 +#: eos/saveddata/targetProfile.py:110 eos/saveddata/targetProfile.py:111 +#: eos/saveddata/targetProfile.py:112 eos/saveddata/targetProfile.py:113 +#: eos/saveddata/targetProfile.py:114 eos/saveddata/targetProfile.py:115 +#: eos/saveddata/targetProfile.py:116 eos/saveddata/targetProfile.py:117 +#: eos/saveddata/targetProfile.py:118 eos/saveddata/targetProfile.py:119 +#: eos/saveddata/targetProfile.py:120 eos/saveddata/targetProfile.py:121 +#: eos/saveddata/targetProfile.py:122 eos/saveddata/targetProfile.py:123 +#: eos/saveddata/targetProfile.py:124 eos/saveddata/targetProfile.py:125 +#: eos/saveddata/targetProfile.py:126 eos/saveddata/targetProfile.py:127 +#: eos/saveddata/targetProfile.py:128 eos/saveddata/targetProfile.py:129 +#: eos/saveddata/targetProfile.py:130 eos/saveddata/targetProfile.py:131 +#: eos/saveddata/targetProfile.py:132 eos/saveddata/targetProfile.py:133 +#: eos/saveddata/targetProfile.py:134 eos/saveddata/targetProfile.py:135 +#: eos/saveddata/targetProfile.py:136 eos/saveddata/targetProfile.py:137 +#: eos/saveddata/targetProfile.py:138 eos/saveddata/targetProfile.py:139 +#: eos/saveddata/targetProfile.py:140 eos/saveddata/targetProfile.py:141 +#: eos/saveddata/targetProfile.py:142 eos/saveddata/targetProfile.py:143 +#: eos/saveddata/targetProfile.py:144 eos/saveddata/targetProfile.py:145 +#: eos/saveddata/targetProfile.py:146 eos/saveddata/targetProfile.py:147 +#: eos/saveddata/targetProfile.py:148 eos/saveddata/targetProfile.py:149 +#: eos/saveddata/targetProfile.py:150 eos/saveddata/targetProfile.py:151 +#: eos/saveddata/targetProfile.py:152 eos/saveddata/targetProfile.py:153 +#: eos/saveddata/targetProfile.py:154 eos/saveddata/targetProfile.py:155 +#: eos/saveddata/targetProfile.py:156 eos/saveddata/targetProfile.py:157 +#: eos/saveddata/targetProfile.py:158 eos/saveddata/targetProfile.py:159 +#: eos/saveddata/targetProfile.py:160 eos/saveddata/targetProfile.py:161 +#: eos/saveddata/targetProfile.py:162 eos/saveddata/targetProfile.py:163 +#: eos/saveddata/targetProfile.py:164 eos/saveddata/targetProfile.py:165 +#: eos/saveddata/targetProfile.py:166 eos/saveddata/targetProfile.py:167 +#: eos/saveddata/targetProfile.py:168 eos/saveddata/targetProfile.py:169 +#: eos/saveddata/targetProfile.py:170 eos/saveddata/targetProfile.py:171 +#: eos/saveddata/targetProfile.py:172 eos/saveddata/targetProfile.py:173 +#: eos/saveddata/targetProfile.py:174 eos/saveddata/targetProfile.py:175 +#: eos/saveddata/targetProfile.py:176 eos/saveddata/targetProfile.py:177 +#: eos/saveddata/targetProfile.py:178 eos/saveddata/targetProfile.py:179 +#: eos/saveddata/targetProfile.py:180 eos/saveddata/targetProfile.py:181 +#: eos/saveddata/targetProfile.py:182 eos/saveddata/targetProfile.py:183 +#: eos/saveddata/targetProfile.py:184 eos/saveddata/targetProfile.py:185 +#: eos/saveddata/targetProfile.py:186 eos/saveddata/targetProfile.py:187 +#: eos/saveddata/targetProfile.py:188 eos/saveddata/targetProfile.py:189 +msgid "Abyssal" +msgstr "深渊" + #: gui/builtinContextMenus/envEffectAdd.py:119 msgid "Abyssal Weather" msgstr "深渊环境" @@ -258,7 +306,7 @@ msgstr "地址:" msgid "Affected by" msgstr "影响因素" -#: gui/builtinStatsViews/targetingMiscViewMinimal.py:226 +#: gui/builtinStatsViews/targetingMiscViewMinimal.py:227 #, python-format msgid "Agility:\t%.3fx" msgstr "灵活性:%.3fx" @@ -267,11 +315,21 @@ msgstr "灵活性:%.3fx" msgid "Align time" msgstr "起跳时间" -#: gui/builtinStatsViews/targetingMiscViewMinimal.py:224 +#: gui/builtinStatsViews/targetingMiscViewMinimal.py:225 #, python-format msgid "Align:\t%.3fs" msgstr "起跳时间:%.3fs" +#: eos/saveddata/damagePattern.py:95 eos/saveddata/targetProfile.py:105 +#: eos/saveddata/targetProfile.py:112 eos/saveddata/targetProfile.py:119 +#: eos/saveddata/targetProfile.py:126 eos/saveddata/targetProfile.py:133 +#: eos/saveddata/targetProfile.py:140 eos/saveddata/targetProfile.py:147 +#: eos/saveddata/targetProfile.py:154 eos/saveddata/targetProfile.py:161 +#: eos/saveddata/targetProfile.py:168 eos/saveddata/targetProfile.py:175 +#: eos/saveddata/targetProfile.py:182 eos/saveddata/targetProfile.py:189 +msgid "All" +msgstr "全部" + #: gui/aboutData.py:32 msgid "All EVE-Online related materials are property of CCP hf." msgstr "所有 EvE Online 相关材料版权归CCP所有" @@ -288,14 +346,35 @@ msgstr "已达到所有技能要求" msgid "Allow pre-release notifications" msgstr "允许预发布版本更新通知" +#: eos/saveddata/targetProfile.py:53 +msgid "Amarr (Armor)" +msgstr "艾玛(护甲)" + +#: eos/saveddata/targetProfile.py:52 +msgid "Amarr (Shield)" +msgstr "艾玛(护盾)" + +#: eos/saveddata/damagePattern.py:148 eos/saveddata/targetProfile.py:72 +msgid "Amarr Empire" +msgstr "艾玛帝国" + #: gui/builtinStatsViews/targetingMiscViewMinimal.py:115 msgid "Ammo hold" msgstr "弹药仓" +#: eos/saveddata/damagePattern.py:102 eos/saveddata/damagePattern.py:120 +#: eos/saveddata/targetProfile.py:60 eos/saveddata/targetProfile.py:66 +msgid "Angel Cartel" +msgstr "天使联合企业" + #: gui/builtinPreferenceViews/pyfaGeneralPreferences.py:70 msgid "Animate gauges" msgstr "启用属性进度条动画" +#: eos/saveddata/damagePattern.py:71 +msgid "Antimatter" +msgstr "反物质" + #: gui/builtinContextMenus/implantSetApply.py:25 msgid "Apply Implant Set" msgstr "应用植入体配置" @@ -322,6 +401,14 @@ msgid "" "This could lead to wildly inaccurate results and possible errors." msgstr "您确定要忽略当前装配资源限制吗?这可能导致不准确或错误的结果。" +#: eos/saveddata/targetProfile.py:47 +msgid "Armor" +msgstr "装甲" + +#: eos/saveddata/targetProfile.py:50 +msgid "Armor (+T2 DCU)" +msgstr "护甲(+T2损控)" + #: gui/builtinStatsViews/rechargeViewFull.py:77 msgid "Armor repair amount" msgstr "装甲修量" @@ -334,8 +421,21 @@ msgstr "装甲抗性" msgid "Armor: " msgstr "装甲:" -#: gui/builtinItemStatsViews/itemAttributes.py:44 +#: eos/saveddata/damagePattern.py:117 eos/saveddata/targetProfile.py:90 +msgid "Ashimmu (Blood Raiders)" +msgstr "阿什姆级(血袭者)" + +#: eos/saveddata/damagePattern.py:102 eos/saveddata/damagePattern.py:103 +#: eos/saveddata/damagePattern.py:104 eos/saveddata/damagePattern.py:105 +#: eos/saveddata/damagePattern.py:106 eos/saveddata/damagePattern.py:107 +#: eos/saveddata/targetProfile.py:60 eos/saveddata/targetProfile.py:61 +#: eos/saveddata/targetProfile.py:62 eos/saveddata/targetProfile.py:63 +#: eos/saveddata/targetProfile.py:64 eos/saveddata/targetProfile.py:65 +msgid "Asteroid" +msgstr "小行星" + #: gui/builtinItemStatsViews/itemProperties.py:56 +#: gui/builtinItemStatsViews/itemAttributes.py:44 msgid "Attribute" msgstr "属性" @@ -376,6 +476,10 @@ msgstr "备份所有装配到XML文件" msgid "Backup fits" msgstr "备份装配" +#: eos/saveddata/damagePattern.py:59 +msgid "Baryon" +msgstr "重子" + #: gui/builtinItemStatsViews/itemAttributes.py:47 msgid "Base Value" msgstr "基础值" @@ -396,14 +500,25 @@ msgstr "请注意已处理的装配未作保存" msgid "Bioluminescence" msgstr "生物荧光" +#: eos/saveddata/damagePattern.py:103 eos/saveddata/damagePattern.py:121 +#: eos/saveddata/targetProfile.py:61 eos/saveddata/targetProfile.py:67 +msgid "Blood Raiders" +msgstr "血袭者" + +#: eos/saveddata/damagePattern.py:90 eos/saveddata/damagePattern.py:91 +#: eos/saveddata/damagePattern.py:92 eos/saveddata/damagePattern.py:93 +msgid "Bombs" +msgstr "炸弹" + #: gui/builtinAdditionPanes/boosterView.py:215 msgid "Booster" msgstr "增效剂" -#: gui/additionsPane.py:78 gui/builtinContextMenus/additionsExportAll.py:23 +#: gui/copySelectDialog.py:48 gui/copySelectDialog.py:56 +#: gui/additionsPane.py:78 #: gui/builtinContextMenus/additionsExportSelection.py:23 -#: gui/builtinContextMenus/additionsImport.py:24 gui/copySelectDialog.py:48 -#: gui/copySelectDialog.py:56 +#: gui/builtinContextMenus/additionsImport.py:24 +#: gui/builtinContextMenus/additionsExportAll.py:23 msgid "Boosters" msgstr "增效剂" @@ -411,6 +526,25 @@ msgstr "增效剂" msgid "Browse EVE Fittings" msgstr "浏览游戏内装配" +#: eos/saveddata/damagePattern.py:108 eos/saveddata/damagePattern.py:109 +#: eos/saveddata/damagePattern.py:110 eos/saveddata/damagePattern.py:111 +#: eos/saveddata/damagePattern.py:112 eos/saveddata/damagePattern.py:113 +#: eos/saveddata/damagePattern.py:114 eos/saveddata/damagePattern.py:115 +#: eos/saveddata/damagePattern.py:116 eos/saveddata/damagePattern.py:117 +#: eos/saveddata/damagePattern.py:118 eos/saveddata/damagePattern.py:119 +#: eos/saveddata/targetProfile.py:81 eos/saveddata/targetProfile.py:82 +#: eos/saveddata/targetProfile.py:83 eos/saveddata/targetProfile.py:84 +#: eos/saveddata/targetProfile.py:85 eos/saveddata/targetProfile.py:86 +#: eos/saveddata/targetProfile.py:87 eos/saveddata/targetProfile.py:88 +#: eos/saveddata/targetProfile.py:89 eos/saveddata/targetProfile.py:90 +#: eos/saveddata/targetProfile.py:91 eos/saveddata/targetProfile.py:92 +msgid "Burner" +msgstr "燃烧者" + +#: eos/saveddata/damagePattern.py:150 eos/saveddata/targetProfile.py:74 +msgid "CONCORD" +msgstr "统合部" + #: gui/builtinStatsViews/resourcesViewFull.py:153 msgid "CPU" msgstr "CPU" @@ -419,6 +553,18 @@ msgstr "CPU" msgid "CSV files" msgstr "逗号分隔符(CSV)文件" +#: eos/saveddata/targetProfile.py:55 +msgid "Caldari (Armor)" +msgstr "加达里(护甲)" + +#: eos/saveddata/targetProfile.py:54 +msgid "Caldari (Shield)" +msgstr "加达里(护盾)" + +#: eos/saveddata/damagePattern.py:149 eos/saveddata/targetProfile.py:73 +msgid "Caldari State" +msgstr "加达里合众国" + #: gui/builtinStatsViews/resourcesViewFull.py:115 msgid "Calibration" msgstr "校准" @@ -432,16 +578,20 @@ msgstr "电容" msgid "Capacitor stability" msgstr "电容稳定性" -#: gui/additionsPane.py:72 gui/builtinContextMenus/priceOptions.py:47 +#: eos/saveddata/damagePattern.py:76 +msgid "Carbonized Lead" +msgstr "碳铅弹" + #: gui/builtinPreferenceViews/pyfaMarketPreferences.py:81 -#: gui/builtinStatsViews/targetingMiscViewMinimal.py:90 #: gui/copySelectDialog.py:49 gui/copySelectDialog.py:57 +#: gui/additionsPane.py:72 gui/builtinStatsViews/targetingMiscViewMinimal.py:90 +#: gui/builtinContextMenus/priceOptions.py:47 msgid "Cargo" msgstr "货舱" -#: gui/builtinContextMenus/additionsExportAll.py:20 #: gui/builtinContextMenus/additionsExportSelection.py:20 #: gui/builtinContextMenus/additionsImport.py:21 +#: gui/builtinContextMenus/additionsExportAll.py:20 msgid "Cargo Items" msgstr "货舱物品" @@ -450,8 +600,8 @@ msgstr "货舱物品" msgid "Cargo bay" msgstr "货舱" -#: gui/builtinStatsViews/targetingMiscViewMinimal.py:229 -#: gui/builtinStatsViews/targetingMiscViewMinimal.py:254 +#: gui/builtinStatsViews/targetingMiscViewMinimal.py:230 +#: gui/builtinStatsViews/targetingMiscViewMinimal.py:255 msgid "Cargohold: " msgstr "货舱:" @@ -497,8 +647,8 @@ msgstr "变更{}半径" msgid "Changes require restart of pyfa to take effect." msgstr "变更将在重启Pyfa之后生效。" -#: gui/builtinStatsViews/priceViewFull.py:57 gui/characterEditor.py:90 -#: gui/esiFittings.py:341 +#: gui/characterEditor.py:90 gui/esiFittings.py:341 +#: gui/builtinStatsViews/priceViewFull.py:57 msgid "Character" msgstr "角色" @@ -591,6 +741,10 @@ msgstr "简洁技能需求提示" msgid "Compare" msgstr "对比" +#: eos/saveddata/damagePattern.py:92 +msgid "Concussion Bomb" +msgstr "震荡炸弹" + #: gui/builtinPreferenceViews/pyfaDatabasePreferences.py:98 #: gui/builtinPreferenceViews/pyfaDatabasePreferences.py:103 #: gui/builtinPreferenceViews/pyfaDatabasePreferences.py:108 @@ -598,7 +752,7 @@ msgstr "对比" msgid "Confirm" msgstr "确认" -#: gui/esiFittings.py:157 gui/propertyEditor.py:147 +#: gui/propertyEditor.py:147 gui/esiFittings.py:157 msgid "Confirm Delete" msgstr "删除确认" @@ -620,7 +774,7 @@ msgstr "激变变星" #: gui/builtinContextMenus/envEffectAdd.py:133 msgid "ContextMenu|ProjectedEffectManipulation|Effects" -msgstr "效果" +msgstr "效果光束" #: gui/builtinContextMenus/envEffectAdd.py:108 msgid "ContextMenu|ProjectedEffectManipulation|Magnetar" @@ -650,9 +804,9 @@ msgstr "三神裔入侵" msgid "ContextMenu|ProjectedEffectManipulation|Wolf Rayet" msgstr "沃尔夫-拉叶星" -#: gui/builtinItemStatsViews/itemDescription.py:43 -#: gui/builtinItemStatsViews/itemTraits.py:25 #: gui/builtinShipBrowser/fitItem.py:107 +#: gui/builtinItemStatsViews/itemTraits.py:25 +#: gui/builtinItemStatsViews/itemDescription.py:43 msgid "Copy" msgstr "复制" @@ -692,8 +846,12 @@ msgstr "无法从剪贴板导入:未知错误" msgid "Cruiser" msgstr "巡洋" -#: gui/builtinItemStatsViews/itemAttributes.py:45 +#: eos/saveddata/damagePattern.py:108 eos/saveddata/targetProfile.py:81 +msgid "Cruor (Blood Raiders)" +msgstr "凝血级(血袭者)" + #: gui/builtinItemStatsViews/itemProperties.py:57 +#: gui/builtinItemStatsViews/itemAttributes.py:45 msgid "Current Value" msgstr "当前值" @@ -717,10 +875,30 @@ msgstr "伤害模型" msgid "Damage Profile name already in use, please choose another." msgstr "伤害模型名已占用,请使用其他名称。" +#: eos/saveddata/damagePattern.py:110 eos/saveddata/targetProfile.py:83 +msgid "Daredevil (Serpentis)" +msgstr "夜魔侠级(天蛇)" + +#: eos/saveddata/targetProfile.py:99 eos/saveddata/targetProfile.py:100 +#: eos/saveddata/targetProfile.py:101 eos/saveddata/targetProfile.py:102 +#: eos/saveddata/targetProfile.py:103 eos/saveddata/targetProfile.py:104 +#: eos/saveddata/targetProfile.py:105 +msgid "Dark Matter All Tiers" +msgstr "暗物质全部级别" + #: gui/builtinPreferenceViews/pyfaDatabasePreferences.py:15 msgid "Database" msgstr "数据库" +#: eos/saveddata/damagePattern.py:120 eos/saveddata/damagePattern.py:121 +#: eos/saveddata/damagePattern.py:122 eos/saveddata/damagePattern.py:123 +#: eos/saveddata/damagePattern.py:124 eos/saveddata/damagePattern.py:125 +#: eos/saveddata/targetProfile.py:66 eos/saveddata/targetProfile.py:67 +#: eos/saveddata/targetProfile.py:68 eos/saveddata/targetProfile.py:69 +#: eos/saveddata/targetProfile.py:70 eos/saveddata/targetProfile.py:71 +msgid "Deadspace" +msgstr "死亡空间" + #: gui/builtinPreferenceViews/pyfaLoggingPreferences.py:56 msgid "Debug Logging Enabled" msgstr "调试日志已开启" @@ -762,6 +940,10 @@ msgstr "删除游戏内装配" msgid "Dependents" msgstr "依赖" +#: eos/saveddata/damagePattern.py:79 +msgid "Depleted Uranium" +msgstr "硬钼弹" + #: gui/itemStats.py:174 msgid "Description" msgstr "简介" @@ -813,8 +995,8 @@ msgstr "不再提示此更新" msgid "Don't see your EVE character in the list?" msgstr "列表中没有你的EvE角色?" -#: gui/builtinPreferenceViews/pyfaUpdatePreferences.py:71 #: gui/updateDialog.py:113 +#: gui/builtinPreferenceViews/pyfaUpdatePreferences.py:71 msgid "Download" msgstr "下载" @@ -826,6 +1008,29 @@ msgstr "拖拽装配到此处" msgid "Drag an item or fit, or use right-click menu for wormhole effects" msgstr "拖拽一个物品或装配以启用投射效果,或使用右键菜单选择一个虫洞环境效果" +#: eos/saveddata/damagePattern.py:109 eos/saveddata/targetProfile.py:82 +msgid "Dramiel (Angel)" +msgstr "德拉米尔级(天使)" + +#: eos/saveddata/damagePattern.py:127 eos/saveddata/damagePattern.py:143 +#: eos/saveddata/damagePattern.py:146 +msgid "Dread" +msgstr "无畏" + +#: eos/saveddata/damagePattern.py:142 eos/saveddata/damagePattern.py:145 +msgid "Dread/Subcaps" +msgstr "无畏/常规" + +#: eos/saveddata/damagePattern.py:96 eos/saveddata/targetProfile.py:103 +#: eos/saveddata/targetProfile.py:110 eos/saveddata/targetProfile.py:117 +#: eos/saveddata/targetProfile.py:124 eos/saveddata/targetProfile.py:131 +#: eos/saveddata/targetProfile.py:138 eos/saveddata/targetProfile.py:145 +#: eos/saveddata/targetProfile.py:152 eos/saveddata/targetProfile.py:159 +#: eos/saveddata/targetProfile.py:166 eos/saveddata/targetProfile.py:173 +#: eos/saveddata/targetProfile.py:180 eos/saveddata/targetProfile.py:187 +msgid "Drifter" +msgstr "流浪者" + #: gui/builtinStatsViews/firepowerViewFull.py:67 msgid "Drone" msgstr "无人机" @@ -846,12 +1051,19 @@ msgstr "无人机仓库" msgid "Drone range" msgstr "无人机半径" -#: gui/additionsPane.py:66 gui/builtinContextMenus/additionsExportAll.py:18 +#: eos/saveddata/damagePattern.py:97 eos/saveddata/targetProfile.py:99 +#: eos/saveddata/targetProfile.py:106 eos/saveddata/targetProfile.py:113 +#: eos/saveddata/targetProfile.py:120 eos/saveddata/targetProfile.py:127 +#: eos/saveddata/targetProfile.py:134 eos/saveddata/targetProfile.py:141 +#: eos/saveddata/targetProfile.py:148 eos/saveddata/targetProfile.py:155 +#: eos/saveddata/targetProfile.py:162 eos/saveddata/targetProfile.py:169 +#: eos/saveddata/targetProfile.py:176 eos/saveddata/targetProfile.py:183 +#: gui/builtinPreferenceViews/pyfaMarketPreferences.py:77 +#: gui/additionsPane.py:66 gui/builtinStatsViews/priceViewFull.py:58 #: gui/builtinContextMenus/additionsExportSelection.py:18 -#: gui/builtinContextMenus/additionsImport.py:19 #: gui/builtinContextMenus/priceOptions.py:40 -#: gui/builtinPreferenceViews/pyfaMarketPreferences.py:77 -#: gui/builtinStatsViews/priceViewFull.py:58 +#: gui/builtinContextMenus/additionsImport.py:19 +#: gui/builtinContextMenus/additionsExportAll.py:18 msgid "Drones" msgstr "无人机" @@ -876,6 +1088,7 @@ msgstr "EFT装配文本文件" msgid "EHP" msgstr "EHP" +#: eos/saveddata/damagePattern.py:39 #: gui/builtinContextMenus/moduleAmmoChange.py:24 msgid "EM" msgstr "电磁" @@ -884,6 +1097,10 @@ msgstr "电磁" msgid "EM resistance" msgstr "电磁抗性" +#: eos/saveddata/damagePattern.py:81 +msgid "EMP" +msgstr "电磁脉冲弹" + #: gui/esiFittings.py:313 gui/esiFittings.py:317 gui/esiFittings.py:325 msgid "ERROR" msgstr "错误" @@ -896,8 +1113,8 @@ msgstr "EvE API XML角色文件" msgid "EVE IGB HTML fitting file" msgstr "EvE IGB 装配HTML网页文件" -#: gui/builtinPreferenceViews/pyfaEsiPreferences.py:16 #: gui/characterEditor.py:162 +#: gui/builtinPreferenceViews/pyfaEsiPreferences.py:16 msgid "EVE SSO" msgstr "EvE单点登录(SSO)" @@ -935,10 +1152,35 @@ msgstr "有效:%dHP" msgid "Effects" msgstr "效果" +#: eos/saveddata/targetProfile.py:106 eos/saveddata/targetProfile.py:107 +#: eos/saveddata/targetProfile.py:108 eos/saveddata/targetProfile.py:109 +#: eos/saveddata/targetProfile.py:110 eos/saveddata/targetProfile.py:111 +#: eos/saveddata/targetProfile.py:112 +msgid "Electrical T1/T2" +msgstr "电子 T1/T2" + +#: eos/saveddata/targetProfile.py:113 eos/saveddata/targetProfile.py:114 +#: eos/saveddata/targetProfile.py:115 eos/saveddata/targetProfile.py:116 +#: eos/saveddata/targetProfile.py:117 eos/saveddata/targetProfile.py:118 +#: eos/saveddata/targetProfile.py:119 +msgid "Electrical T3 (Some T5 Rooms)" +msgstr "电子 T3 (含部分T5关卡)" + +#: eos/saveddata/targetProfile.py:120 eos/saveddata/targetProfile.py:121 +#: eos/saveddata/targetProfile.py:122 eos/saveddata/targetProfile.py:123 +#: eos/saveddata/targetProfile.py:124 eos/saveddata/targetProfile.py:125 +#: eos/saveddata/targetProfile.py:126 +msgid "Electrical T4/T5" +msgstr "电子 T4/T5" + #: gui/builtinStatsViews/resistancesViewFull.py:85 msgid "Electromagnetic resistance" msgstr "电磁抗性" +#: eos/saveddata/damagePattern.py:90 +msgid "Electron Bomb" +msgstr "电子炸弹" + #: gui/builtinContextMenus/moduleAmmoChange.py:59 msgid "Empty" msgstr "空" @@ -1011,10 +1253,14 @@ msgstr "请为新角色输入一个名称:" msgid "Enter a name for your new Implant Set:" msgstr "请为新植入体配置输入一个名称:" +#: eos/saveddata/damagePattern.py:113 eos/saveddata/targetProfile.py:86 +msgid "Enyo" +msgstr "恩尤" + #: gui/characterEditor.py:83 gui/characterEditor.py:463 #: gui/characterEditor.py:898 gui/characterSelection.py:174 -#: gui/mainFrame.py:898 gui/patternEditor.py:58 gui/setEditor.py:55 -#: gui/targetProfileEditor.py:78 +#: gui/patternEditor.py:58 gui/setEditor.py:55 gui/targetProfileEditor.py:78 +#: gui/mainFrame.py:898 msgid "Error" msgstr "错误" @@ -1026,10 +1272,38 @@ msgstr "无法获取技能信息" msgid "Error!" msgstr "错误!" +#: eos/saveddata/damagePattern.py:57 eos/saveddata/damagePattern.py:58 +#: eos/saveddata/damagePattern.py:59 eos/saveddata/damagePattern.py:60 +#: eos/saveddata/damagePattern.py:61 +msgid "Exotic Plasma" +msgstr "异种等离子" + +#: eos/saveddata/targetProfile.py:148 eos/saveddata/targetProfile.py:149 +#: eos/saveddata/targetProfile.py:150 eos/saveddata/targetProfile.py:151 +#: eos/saveddata/targetProfile.py:152 eos/saveddata/targetProfile.py:153 +#: eos/saveddata/targetProfile.py:154 +msgid "Exotic T1/T2" +msgstr "异种 T1/T2" + +#: eos/saveddata/targetProfile.py:155 eos/saveddata/targetProfile.py:156 +#: eos/saveddata/targetProfile.py:157 eos/saveddata/targetProfile.py:158 +#: eos/saveddata/targetProfile.py:159 eos/saveddata/targetProfile.py:160 +#: eos/saveddata/targetProfile.py:161 +msgid "Exotic T3 (Some T5 Rooms)" +msgstr "异种 T3 (含部分T5关卡)" + +#: eos/saveddata/targetProfile.py:162 eos/saveddata/targetProfile.py:163 +#: eos/saveddata/targetProfile.py:164 eos/saveddata/targetProfile.py:165 +#: eos/saveddata/targetProfile.py:166 eos/saveddata/targetProfile.py:167 +#: eos/saveddata/targetProfile.py:168 +msgid "Exotic T4/T5" +msgstr "异种 T4/T5" + #: gui/builtinItemStatsViews/itemAffectedBy.py:67 msgid "Expand All" msgstr "展开所有" +#: eos/saveddata/damagePattern.py:42 #: gui/builtinContextMenus/moduleAmmoChange.py:26 msgid "Explosive" msgstr "爆炸" @@ -1182,9 +1456,10 @@ msgstr "铁骑舰载机仓库" msgid "Fighter squadrons active" msgstr "激活的铁骑舰载机中队" -#: gui/additionsPane.py:69 gui/builtinContextMenus/additionsExportAll.py:19 +#: gui/additionsPane.py:69 #: gui/builtinContextMenus/additionsExportSelection.py:19 #: gui/builtinContextMenus/additionsImport.py:20 +#: gui/builtinContextMenus/additionsExportAll.py:19 msgid "Fighters" msgstr "铁骑舰载机" @@ -1210,6 +1485,27 @@ msgstr "用该模块填满空白槽位" msgid "Firepower" msgstr "火力" +#: eos/saveddata/targetProfile.py:127 eos/saveddata/targetProfile.py:128 +#: eos/saveddata/targetProfile.py:129 eos/saveddata/targetProfile.py:130 +#: eos/saveddata/targetProfile.py:131 eos/saveddata/targetProfile.py:132 +#: eos/saveddata/targetProfile.py:133 +msgid "Firestorm T1/T2" +msgstr "火瀑 T1/T2" + +#: eos/saveddata/targetProfile.py:134 eos/saveddata/targetProfile.py:135 +#: eos/saveddata/targetProfile.py:136 eos/saveddata/targetProfile.py:137 +#: eos/saveddata/targetProfile.py:138 eos/saveddata/targetProfile.py:139 +#: eos/saveddata/targetProfile.py:140 +msgid "Firestorm T3 (Some T5 Rooms)" +msgstr "火瀑 T3 (含部分T5关卡)" + +#: eos/saveddata/targetProfile.py:141 eos/saveddata/targetProfile.py:142 +#: eos/saveddata/targetProfile.py:143 eos/saveddata/targetProfile.py:144 +#: eos/saveddata/targetProfile.py:145 eos/saveddata/targetProfile.py:146 +#: eos/saveddata/targetProfile.py:147 +msgid "Firestorm T4/T5" +msgstr "火瀑 T4/T5" + #: graphs/gui/lists.py:305 msgid "Fit" msgstr "装配" @@ -1235,6 +1531,15 @@ msgstr "舰队机库" msgid "Formatting Tags" msgstr "格式化标签" +#: eos/saveddata/damagePattern.py:43 eos/saveddata/damagePattern.py:44 +#: eos/saveddata/damagePattern.py:45 eos/saveddata/damagePattern.py:46 +#: eos/saveddata/damagePattern.py:47 eos/saveddata/damagePattern.py:48 +#: eos/saveddata/damagePattern.py:49 eos/saveddata/damagePattern.py:50 +#: eos/saveddata/damagePattern.py:51 eos/saveddata/damagePattern.py:52 +#: eos/saveddata/damagePattern.py:53 eos/saveddata/damagePattern.py:54 +msgid "Frequency Crystals" +msgstr "频率晶体" + #: gui/builtinStatsViews/targetingMiscViewMinimal.py:164 msgid "Frigate" msgstr "护卫" @@ -1254,10 +1559,51 @@ msgstr "燃料仓" msgid "Full" msgstr "完整" +#: eos/saveddata/damagePattern.py:83 +msgid "Fusion" +msgstr "聚变弹" + +#: eos/saveddata/targetProfile.py:57 +msgid "Gallente (Armor)" +msgstr "盖伦特(护甲)" + +#: eos/saveddata/targetProfile.py:56 +msgid "Gallente (Shield)" +msgstr "盖伦特(护盾)" + +#: eos/saveddata/damagePattern.py:151 eos/saveddata/targetProfile.py:75 +msgid "Gallente Federation" +msgstr "盖伦特联邦" + #: gui/builtinPreferenceViews/pyfaDatabasePreferences.py:57 msgid "Game Database:" msgstr "游戏数据库:" +#: eos/saveddata/damagePattern.py:51 +msgid "Gamma" +msgstr "伽玛" + +#: eos/saveddata/targetProfile.py:169 eos/saveddata/targetProfile.py:170 +#: eos/saveddata/targetProfile.py:171 eos/saveddata/targetProfile.py:172 +#: eos/saveddata/targetProfile.py:173 eos/saveddata/targetProfile.py:174 +#: eos/saveddata/targetProfile.py:175 +msgid "Gamma T1/T2" +msgstr "伽玛 T1/T2" + +#: eos/saveddata/targetProfile.py:176 eos/saveddata/targetProfile.py:177 +#: eos/saveddata/targetProfile.py:178 eos/saveddata/targetProfile.py:179 +#: eos/saveddata/targetProfile.py:180 eos/saveddata/targetProfile.py:181 +#: eos/saveddata/targetProfile.py:182 +msgid "Gamma T3 (Some T5 Rooms)" +msgstr "伽玛 T3 (含部分T5关卡)" + +#: eos/saveddata/targetProfile.py:183 eos/saveddata/targetProfile.py:184 +#: eos/saveddata/targetProfile.py:185 eos/saveddata/targetProfile.py:186 +#: eos/saveddata/targetProfile.py:187 eos/saveddata/targetProfile.py:188 +#: eos/saveddata/targetProfile.py:189 +msgid "Gamma T4/T5" +msgstr "伽玛 T4/T5" + #: gui/builtinStatsViews/targetingMiscViewMinimal.py:125 msgid "Gas hold" msgstr "气体矿物仓库" @@ -1270,6 +1616,11 @@ msgstr "通用" msgid "Generating HTML file at: {}" msgstr "正在生成HTML网页到:{}" +#: eos/saveddata/damagePattern.py:39 eos/saveddata/damagePattern.py:40 +#: eos/saveddata/damagePattern.py:41 eos/saveddata/damagePattern.py:42 +msgid "Generic" +msgstr "通用" + #: gui/characterEditor.py:778 msgid "Get Skills" msgstr "获取技能列表" @@ -1290,6 +1641,11 @@ msgstr "转到GitHub上的百科页" msgid "Grant Missing Skills" msgstr "习得所需技能" +#: eos/saveddata/damagePattern.py:104 eos/saveddata/damagePattern.py:122 +#: eos/saveddata/targetProfile.py:62 eos/saveddata/targetProfile.py:68 +msgid "Guristas" +msgstr "古斯塔斯" + #: gui/builtinStatsViews/resistancesViewFull.py:172 #: gui/builtinStatsViews/resistancesViewFull.py:187 msgid "HP" @@ -1308,6 +1664,10 @@ msgstr "" "HTML导出(文件>导出到所有装配到网页)可以导出你的所有装配为HTML网页,放在指定" "路径下。网页版装配应用可以很容易的打开该HTML网页" +#: eos/saveddata/damagePattern.py:114 eos/saveddata/targetProfile.py:87 +msgid "Hawk" +msgstr "战鹰级" + #: gui/builtinAdditionPanes/fighterView.py:62 msgid "Heavy" msgstr "重型" @@ -1329,6 +1689,14 @@ msgstr "高" msgid "High Security" msgstr "高安" +#: eos/saveddata/targetProfile.py:48 +msgid "Hull" +msgstr "结构" + +#: eos/saveddata/targetProfile.py:51 +msgid "Hull (+T2 DCU)" +msgstr "结构(+T2 损控)" + #: gui/builtinStatsViews/rechargeViewFull.py:78 msgid "Hull repair amount" msgstr "结构修量" @@ -1341,10 +1709,23 @@ msgstr "结构抗性" msgid "Hull: " msgstr "结构:" +#: eos/saveddata/damagePattern.py:62 eos/saveddata/damagePattern.py:63 +#: eos/saveddata/damagePattern.py:64 eos/saveddata/damagePattern.py:65 +#: eos/saveddata/damagePattern.py:66 eos/saveddata/damagePattern.py:67 +#: eos/saveddata/damagePattern.py:68 eos/saveddata/damagePattern.py:69 +#: eos/saveddata/damagePattern.py:70 eos/saveddata/damagePattern.py:71 +#: eos/saveddata/damagePattern.py:72 eos/saveddata/damagePattern.py:73 +msgid "Hybrid Charges" +msgstr "混合弹药" + #: gui/builtinItemStatsViews/itemEffects.py:35 msgid "ID" msgstr "ID" +#: eos/saveddata/targetProfile.py:250 +msgid "Ideal Target" +msgstr "理想目标" + #: gui/builtinContextMenus/graphDroneControlRange.py:23 msgid "Ignore Drone Control Range" msgstr "忽略无人机控制半径" @@ -1369,18 +1750,19 @@ msgstr "植入体配置编辑器" msgid "Implant Set name already in use, please choose another." msgstr "植入体配置名已使用,请选择其他名称。" -#: gui/additionsPane.py:75 gui/builtinContextMenus/additionsExportAll.py:21 -#: gui/builtinContextMenus/additionsExportAll.py:22 +#: gui/characterEditor.py:161 gui/copySelectDialog.py:47 +#: gui/copySelectDialog.py:55 gui/additionsPane.py:75 #: gui/builtinContextMenus/additionsExportSelection.py:21 #: gui/builtinContextMenus/additionsExportSelection.py:22 #: gui/builtinContextMenus/additionsImport.py:22 -#: gui/builtinContextMenus/additionsImport.py:23 gui/characterEditor.py:161 -#: gui/copySelectDialog.py:47 gui/copySelectDialog.py:55 +#: gui/builtinContextMenus/additionsImport.py:23 +#: gui/builtinContextMenus/additionsExportAll.py:21 +#: gui/builtinContextMenus/additionsExportAll.py:22 msgid "Implants" msgstr "植入体" -#: gui/builtinContextMenus/priceOptions.py:54 #: gui/builtinPreferenceViews/pyfaMarketPreferences.py:85 +#: gui/builtinContextMenus/priceOptions.py:54 msgid "Implants && Boosters" msgstr "植入体和增效剂" @@ -1474,10 +1856,24 @@ msgstr "范围无效(必须是 0-100)" msgid "Industrial ship hold" msgstr "工业舰船仓" +#: eos/saveddata/damagePattern.py:87 +msgid "Inferno" +msgstr "炼狱" + +#: eos/saveddata/damagePattern.py:47 +msgid "Infrared" +msgstr "红外" + #: gui/builtinStatsViews/targetingMiscViewMinimal.py:164 msgid "Interceptor" msgstr "截击" +#: eos/saveddata/damagePattern.py:127 eos/saveddata/damagePattern.py:128 +#: eos/saveddata/damagePattern.py:132 eos/saveddata/damagePattern.py:135 +#: eos/saveddata/damagePattern.py:138 eos/saveddata/targetProfile.py:94 +msgid "Invading Precursor Entities" +msgstr "入侵的先驱者实体" + #: gui/mainFrame.py:894 msgid "Invalid Path" msgstr "无效路径" @@ -1486,11 +1882,30 @@ msgstr "无效路径" msgid "Invalid Token" msgstr "无效登录信息" -#: gui/builtinContextMenus/ammoToDmgPattern.py:32 +#: eos/saveddata/damagePattern.py:127 eos/saveddata/damagePattern.py:128 +#: eos/saveddata/damagePattern.py:132 eos/saveddata/damagePattern.py:135 +#: eos/saveddata/damagePattern.py:138 eos/saveddata/damagePattern.py:142 +#: eos/saveddata/damagePattern.py:143 eos/saveddata/damagePattern.py:144 +#: eos/saveddata/damagePattern.py:145 eos/saveddata/damagePattern.py:146 +#: eos/saveddata/damagePattern.py:147 eos/saveddata/targetProfile.py:94 +#: eos/saveddata/targetProfile.py:95 eos/saveddata/targetProfile.py:96 +#: eos/saveddata/targetProfile.py:97 eos/saveddata/targetProfile.py:98 +msgid "Invasion" +msgstr "入侵" + +#: eos/saveddata/damagePattern.py:66 +msgid "Iridium" +msgstr "铱质" + +#: eos/saveddata/damagePattern.py:64 +msgid "Iron" +msgstr "铁质" + +#: gui/builtinItemStatsViews/itemCompare.py:147 #: gui/builtinContextMenus/itemMarketJump.py:44 -#: gui/builtinContextMenus/itemRemove.py:43 #: gui/builtinContextMenus/itemStats.py:38 -#: gui/builtinItemStatsViews/itemCompare.py:147 +#: gui/builtinContextMenus/ammoToDmgPattern.py:32 +#: gui/builtinContextMenus/itemRemove.py:43 msgid "Item" msgstr "物品" @@ -1502,6 +1917,15 @@ msgstr "切换物品分类时" msgid "Item stats" msgstr "物品属性" +#: eos/saveddata/damagePattern.py:115 eos/saveddata/targetProfile.py:88 +msgid "Jaguar" +msgstr "美洲豹" + +#: eos/saveddata/damagePattern.py:152 eos/saveddata/targetProfile.py:76 +msgid "Khanid" +msgstr "卡尼迪" + +#: eos/saveddata/damagePattern.py:41 #: gui/builtinContextMenus/moduleAmmoChange.py:27 msgid "Kinetic" msgstr "动能" @@ -1528,8 +1952,12 @@ msgstr "可维持" msgid "Launcher hardpoints" msgstr "发射器" +#: eos/saveddata/damagePattern.py:67 +msgid "Lead" +msgstr "铅质" + #: gui/builtinContextMenus/moduleAmmoChange.py:94 -#: gui/builtinContextMenus/moduleAmmoChange.py:109 +#: gui/builtinContextMenus/moduleAmmoChange.py:112 msgid "Less Damage" msgstr "更少伤害" @@ -1542,8 +1970,8 @@ msgstr "技能等级" msgid "Level %s" msgstr "等级%s" -#: gui/builtinItemStatsViews/itemDependants.py:46 gui/characterEditor.py:591 -#: gui/characterEditor.py:616 gui/characterEditor.py:649 +#: gui/characterEditor.py:591 gui/characterEditor.py:616 +#: gui/characterEditor.py:649 gui/builtinItemStatsViews/itemDependants.py:46 msgid "Level {}" msgstr "等级{}" @@ -1647,7 +2075,7 @@ msgstr "搜索和显示最近使用列表时" msgid "Market Search Delay (ms):" msgstr "市场搜索延迟(毫秒):" -#: gui/builtinStatsViews/targetingMiscViewMinimal.py:225 +#: gui/builtinStatsViews/targetingMiscViewMinimal.py:226 msgid "Mass:\t{:,.0f}kg" msgstr "质量:{:,.0f}kg" @@ -1656,7 +2084,7 @@ msgid "Material bay" msgstr "物料仓" #: gui/builtinStatsViews/targetingMiscViewMinimal.py:208 -#: gui/builtinStatsViews/targetingMiscViewMinimal.py:241 +#: gui/builtinStatsViews/targetingMiscViewMinimal.py:242 #, python-format msgid "Max Warp Distance: %.1f AU" msgstr "最大跃迁距离:%.1f AU" @@ -1673,6 +2101,14 @@ msgstr "中" msgid "Medium ship hold" msgstr "中型舰船仓" +#: eos/saveddata/damagePattern.py:58 +msgid "Meson" +msgstr "介子" + +#: eos/saveddata/damagePattern.py:46 +msgid "Microwave" +msgstr "微波" + #: gui/builtinStatsViews/targetingMiscViewMinimal.py:123 msgid "Mineral hold" msgstr "矿物仓" @@ -1692,6 +2128,18 @@ msgstr "简洁" msgid "Mining Yield" msgstr "矿物产出" +#: eos/saveddata/targetProfile.py:59 +msgid "Minmatar (Armor)" +msgstr "米玛塔尔(护甲)" + +#: eos/saveddata/targetProfile.py:58 +msgid "Minmatar (Shield)" +msgstr "米玛塔尔(护盾)" + +#: eos/saveddata/damagePattern.py:153 eos/saveddata/targetProfile.py:77 +msgid "Minmatar Republic" +msgstr "米玛塔尔共和国" + #: gui/builtinPreferenceViews/pyfaStatViewPreferences.py:87 msgid "Misc" msgstr "杂项" @@ -1700,10 +2148,30 @@ msgstr "杂项" msgid "Misc data" msgstr "杂项" +#: eos/saveddata/damagePattern.py:86 eos/saveddata/damagePattern.py:87 +#: eos/saveddata/damagePattern.py:88 eos/saveddata/damagePattern.py:89 +msgid "Missiles" +msgstr "导弹" + +#: eos/saveddata/damagePattern.py:148 eos/saveddata/damagePattern.py:149 +#: eos/saveddata/damagePattern.py:150 eos/saveddata/damagePattern.py:151 +#: eos/saveddata/damagePattern.py:152 eos/saveddata/damagePattern.py:153 +#: eos/saveddata/damagePattern.py:154 eos/saveddata/damagePattern.py:155 +#: eos/saveddata/targetProfile.py:72 eos/saveddata/targetProfile.py:73 +#: eos/saveddata/targetProfile.py:74 eos/saveddata/targetProfile.py:75 +#: eos/saveddata/targetProfile.py:76 eos/saveddata/targetProfile.py:77 +#: eos/saveddata/targetProfile.py:78 +msgid "Mission" +msgstr "任务" + #: gui/builtinContextMenus/moduleAmmoChange.py:28 msgid "Mixed" msgstr "混合" +#: eos/saveddata/damagePattern.py:86 +msgid "Mjolnir" +msgstr "雷神" + #: gui/builtinPreferenceViews/pyfaNetworkPreferences.py:83 msgid "Mode:" msgstr "模式" @@ -1712,11 +2180,19 @@ msgstr "模式" msgid "Module" msgstr "模块" +#: eos/saveddata/damagePattern.py:154 eos/saveddata/targetProfile.py:78 +msgid "Mordus Legion" +msgstr "莫德团" + #: gui/builtinContextMenus/moduleAmmoChange.py:97 -#: gui/builtinContextMenus/moduleAmmoChange.py:112 +#: gui/builtinContextMenus/moduleAmmoChange.py:115 msgid "More Damage" msgstr "更多伤害" +#: eos/saveddata/damagePattern.py:52 +msgid "Multifrequency" +msgstr "多频" + #: gui/copySelectDialog.py:54 msgid "Mutated Attributes" msgstr "已变异属性" @@ -1725,8 +2201,102 @@ msgstr "已变异属性" msgid "Mutations" msgstr "变质" -#: gui/builtinItemStatsViews/itemEffects.py:30 +#: eos/saveddata/damagePattern.py:95 eos/saveddata/damagePattern.py:96 +#: eos/saveddata/damagePattern.py:97 eos/saveddata/damagePattern.py:98 +#: eos/saveddata/damagePattern.py:99 eos/saveddata/damagePattern.py:100 +#: eos/saveddata/damagePattern.py:101 eos/saveddata/damagePattern.py:102 +#: eos/saveddata/damagePattern.py:103 eos/saveddata/damagePattern.py:104 +#: eos/saveddata/damagePattern.py:105 eos/saveddata/damagePattern.py:106 +#: eos/saveddata/damagePattern.py:107 eos/saveddata/damagePattern.py:108 +#: eos/saveddata/damagePattern.py:109 eos/saveddata/damagePattern.py:110 +#: eos/saveddata/damagePattern.py:111 eos/saveddata/damagePattern.py:112 +#: eos/saveddata/damagePattern.py:113 eos/saveddata/damagePattern.py:114 +#: eos/saveddata/damagePattern.py:115 eos/saveddata/damagePattern.py:116 +#: eos/saveddata/damagePattern.py:117 eos/saveddata/damagePattern.py:118 +#: eos/saveddata/damagePattern.py:119 eos/saveddata/damagePattern.py:120 +#: eos/saveddata/damagePattern.py:121 eos/saveddata/damagePattern.py:122 +#: eos/saveddata/damagePattern.py:123 eos/saveddata/damagePattern.py:124 +#: eos/saveddata/damagePattern.py:125 eos/saveddata/damagePattern.py:127 +#: eos/saveddata/damagePattern.py:128 eos/saveddata/damagePattern.py:132 +#: eos/saveddata/damagePattern.py:135 eos/saveddata/damagePattern.py:138 +#: eos/saveddata/damagePattern.py:142 eos/saveddata/damagePattern.py:143 +#: eos/saveddata/damagePattern.py:144 eos/saveddata/damagePattern.py:145 +#: eos/saveddata/damagePattern.py:146 eos/saveddata/damagePattern.py:147 +#: eos/saveddata/damagePattern.py:148 eos/saveddata/damagePattern.py:149 +#: eos/saveddata/damagePattern.py:150 eos/saveddata/damagePattern.py:151 +#: eos/saveddata/damagePattern.py:152 eos/saveddata/damagePattern.py:153 +#: eos/saveddata/damagePattern.py:154 eos/saveddata/damagePattern.py:155 +#: eos/saveddata/damagePattern.py:156 eos/saveddata/damagePattern.py:157 +#: eos/saveddata/targetProfile.py:60 eos/saveddata/targetProfile.py:61 +#: eos/saveddata/targetProfile.py:62 eos/saveddata/targetProfile.py:63 +#: eos/saveddata/targetProfile.py:64 eos/saveddata/targetProfile.py:65 +#: eos/saveddata/targetProfile.py:66 eos/saveddata/targetProfile.py:67 +#: eos/saveddata/targetProfile.py:68 eos/saveddata/targetProfile.py:69 +#: eos/saveddata/targetProfile.py:70 eos/saveddata/targetProfile.py:71 +#: eos/saveddata/targetProfile.py:72 eos/saveddata/targetProfile.py:73 +#: eos/saveddata/targetProfile.py:74 eos/saveddata/targetProfile.py:75 +#: eos/saveddata/targetProfile.py:76 eos/saveddata/targetProfile.py:77 +#: eos/saveddata/targetProfile.py:78 eos/saveddata/targetProfile.py:79 +#: eos/saveddata/targetProfile.py:80 eos/saveddata/targetProfile.py:81 +#: eos/saveddata/targetProfile.py:82 eos/saveddata/targetProfile.py:83 +#: eos/saveddata/targetProfile.py:84 eos/saveddata/targetProfile.py:85 +#: eos/saveddata/targetProfile.py:86 eos/saveddata/targetProfile.py:87 +#: eos/saveddata/targetProfile.py:88 eos/saveddata/targetProfile.py:89 +#: eos/saveddata/targetProfile.py:90 eos/saveddata/targetProfile.py:91 +#: eos/saveddata/targetProfile.py:92 eos/saveddata/targetProfile.py:94 +#: eos/saveddata/targetProfile.py:95 eos/saveddata/targetProfile.py:96 +#: eos/saveddata/targetProfile.py:97 eos/saveddata/targetProfile.py:98 +#: eos/saveddata/targetProfile.py:99 eos/saveddata/targetProfile.py:100 +#: eos/saveddata/targetProfile.py:101 eos/saveddata/targetProfile.py:102 +#: eos/saveddata/targetProfile.py:103 eos/saveddata/targetProfile.py:104 +#: eos/saveddata/targetProfile.py:105 eos/saveddata/targetProfile.py:106 +#: eos/saveddata/targetProfile.py:107 eos/saveddata/targetProfile.py:108 +#: eos/saveddata/targetProfile.py:109 eos/saveddata/targetProfile.py:110 +#: eos/saveddata/targetProfile.py:111 eos/saveddata/targetProfile.py:112 +#: eos/saveddata/targetProfile.py:113 eos/saveddata/targetProfile.py:114 +#: eos/saveddata/targetProfile.py:115 eos/saveddata/targetProfile.py:116 +#: eos/saveddata/targetProfile.py:117 eos/saveddata/targetProfile.py:118 +#: eos/saveddata/targetProfile.py:119 eos/saveddata/targetProfile.py:120 +#: eos/saveddata/targetProfile.py:121 eos/saveddata/targetProfile.py:122 +#: eos/saveddata/targetProfile.py:123 eos/saveddata/targetProfile.py:124 +#: eos/saveddata/targetProfile.py:125 eos/saveddata/targetProfile.py:126 +#: eos/saveddata/targetProfile.py:127 eos/saveddata/targetProfile.py:128 +#: eos/saveddata/targetProfile.py:129 eos/saveddata/targetProfile.py:130 +#: eos/saveddata/targetProfile.py:131 eos/saveddata/targetProfile.py:132 +#: eos/saveddata/targetProfile.py:133 eos/saveddata/targetProfile.py:134 +#: eos/saveddata/targetProfile.py:135 eos/saveddata/targetProfile.py:136 +#: eos/saveddata/targetProfile.py:137 eos/saveddata/targetProfile.py:138 +#: eos/saveddata/targetProfile.py:139 eos/saveddata/targetProfile.py:140 +#: eos/saveddata/targetProfile.py:141 eos/saveddata/targetProfile.py:142 +#: eos/saveddata/targetProfile.py:143 eos/saveddata/targetProfile.py:144 +#: eos/saveddata/targetProfile.py:145 eos/saveddata/targetProfile.py:146 +#: eos/saveddata/targetProfile.py:147 eos/saveddata/targetProfile.py:148 +#: eos/saveddata/targetProfile.py:149 eos/saveddata/targetProfile.py:150 +#: eos/saveddata/targetProfile.py:151 eos/saveddata/targetProfile.py:152 +#: eos/saveddata/targetProfile.py:153 eos/saveddata/targetProfile.py:154 +#: eos/saveddata/targetProfile.py:155 eos/saveddata/targetProfile.py:156 +#: eos/saveddata/targetProfile.py:157 eos/saveddata/targetProfile.py:158 +#: eos/saveddata/targetProfile.py:159 eos/saveddata/targetProfile.py:160 +#: eos/saveddata/targetProfile.py:161 eos/saveddata/targetProfile.py:162 +#: eos/saveddata/targetProfile.py:163 eos/saveddata/targetProfile.py:164 +#: eos/saveddata/targetProfile.py:165 eos/saveddata/targetProfile.py:166 +#: eos/saveddata/targetProfile.py:167 eos/saveddata/targetProfile.py:168 +#: eos/saveddata/targetProfile.py:169 eos/saveddata/targetProfile.py:170 +#: eos/saveddata/targetProfile.py:171 eos/saveddata/targetProfile.py:172 +#: eos/saveddata/targetProfile.py:173 eos/saveddata/targetProfile.py:174 +#: eos/saveddata/targetProfile.py:175 eos/saveddata/targetProfile.py:176 +#: eos/saveddata/targetProfile.py:177 eos/saveddata/targetProfile.py:178 +#: eos/saveddata/targetProfile.py:179 eos/saveddata/targetProfile.py:180 +#: eos/saveddata/targetProfile.py:181 eos/saveddata/targetProfile.py:182 +#: eos/saveddata/targetProfile.py:183 eos/saveddata/targetProfile.py:184 +#: eos/saveddata/targetProfile.py:185 eos/saveddata/targetProfile.py:186 +#: eos/saveddata/targetProfile.py:187 eos/saveddata/targetProfile.py:188 +#: eos/saveddata/targetProfile.py:189 +msgid "NPC" +msgstr "NPC" + #: gui/builtinViewColumns/baseName.py:55 +#: gui/builtinItemStatsViews/itemEffects.py:30 msgid "Name" msgstr "名称" @@ -1762,7 +2332,7 @@ msgstr "新装配" msgid "No" msgstr "否" -#: gui/builtinContextMenus/targetProfile/switcher.py:83 +#: gui/builtinContextMenus/targetProfile/switcher.py:85 msgid "No Profile" msgstr "无伤害模型" @@ -1781,7 +2351,7 @@ msgstr "不改变衍生分类按钮" msgid "No proxy" msgstr "无代理" -#: gui/builtinPreferenceViews/pyfaGeneralPreferences.py:90 +#: gui/characterEditor.py:855 #: gui/builtinPreferenceViews/pyfaStatViewPreferences.py:42 #: gui/builtinPreferenceViews/pyfaStatViewPreferences.py:50 #: gui/builtinPreferenceViews/pyfaStatViewPreferences.py:58 @@ -1790,10 +2360,14 @@ msgstr "无代理" #: gui/builtinPreferenceViews/pyfaStatViewPreferences.py:87 #: gui/builtinPreferenceViews/pyfaStatViewPreferences.py:99 #: gui/builtinPreferenceViews/pyfaStatViewPreferences.py:104 -#: gui/characterEditor.py:855 +#: gui/builtinPreferenceViews/pyfaGeneralPreferences.py:90 msgid "None" msgstr "无" +#: eos/saveddata/damagePattern.py:128 +msgid "Normal Subcaps" +msgstr "常规非旗舰" + #: gui/builtinContextMenus/skillAffectors.py:77 msgid "Not Learned" msgstr "未学习" @@ -1806,6 +2380,14 @@ msgstr "未学习" msgid "Notes" msgstr "备注" +#: eos/saveddata/damagePattern.py:89 +msgid "Nova" +msgstr "星爆" + +#: eos/saveddata/damagePattern.py:77 +msgid "Nuclear" +msgstr "核芯弹" + #: gui/builtinContextMenus/fitSystemSecurity.py:21 msgid "Null Security" msgstr "零安" @@ -1858,6 +2440,20 @@ msgstr "优化价格" msgid "Ore hold" msgstr "矿石仓" +#: eos/saveddata/targetProfile.py:79 eos/saveddata/targetProfile.py:80 +msgid "Other" +msgstr "其他" + +#: eos/saveddata/damagePattern.py:98 eos/saveddata/targetProfile.py:100 +#: eos/saveddata/targetProfile.py:107 eos/saveddata/targetProfile.py:114 +#: eos/saveddata/targetProfile.py:121 eos/saveddata/targetProfile.py:128 +#: eos/saveddata/targetProfile.py:135 eos/saveddata/targetProfile.py:142 +#: eos/saveddata/targetProfile.py:149 eos/saveddata/targetProfile.py:156 +#: eos/saveddata/targetProfile.py:163 eos/saveddata/targetProfile.py:170 +#: eos/saveddata/targetProfile.py:177 eos/saveddata/targetProfile.py:184 +msgid "Overmind" +msgstr "主宰" + #: gui/builtinStatsViews/rechargeViewFull.py:75 msgid "Passive shield recharge" msgstr "被动回充" @@ -1878,6 +2474,10 @@ msgstr "伤害模型已导出到剪贴板" msgid "Patterns successfully imported from clipboard" msgstr "从剪贴板导入伤害模型成功" +#: eos/saveddata/damagePattern.py:82 +msgid "Phased Plasma" +msgstr "定相等离子弹" + #: gui/builtinStatsViews/targetingMiscViewMinimal.py:128 msgid "Planetary goods hold" msgstr "星系物质仓" @@ -1907,6 +2507,10 @@ msgstr "请确认Pyfa偏好保存位置。" msgid "Plot with Different Ammo..." msgstr "使用不同的弹药..." +#: eos/saveddata/damagePattern.py:70 +msgid "Plutonium" +msgstr "锰质" + #: gui/builtinStatsViews/targetingMiscViewMinimal.py:164 msgid "Pod" msgstr "逃生舱" @@ -1928,9 +2532,9 @@ msgid "" "Pressing this button will cause all logs in memory to write to the log file:" msgstr "点击此按钮以将所有缓存的日志写入到日志文件:" -#: gui/builtinItemStatsViews/itemCompare.py:155 #: gui/builtinPreferenceViews/pyfaStatViewPreferences.py:99 #: gui/builtinStatsViews/priceViewFull.py:40 +#: gui/builtinItemStatsViews/itemCompare.py:155 msgid "Price" msgstr "价格" @@ -1938,7 +2542,7 @@ msgstr "价格" msgid "Pricing updates" msgstr "价格更新" -#: gui/builtinStatsViews/targetingMiscViewMinimal.py:265 +#: gui/builtinStatsViews/targetingMiscViewMinimal.py:266 #, python-format msgid "Probe Size: %.3f" msgstr "Probe Size: %.3f" @@ -1966,7 +2570,7 @@ msgstr "施加{0}远程效果到装配" #: gui/additionsPane.py:81 msgid "Projected" -msgstr "环境效果" +msgstr "远程效果" #: gui/builtinAdditionPanes/projectedView.py:306 #: gui/builtinAdditionPanes/projectedView.py:316 @@ -1975,6 +2579,15 @@ msgstr "环境效果" msgid "Projected Item" msgstr "远程效果物品" +#: eos/saveddata/damagePattern.py:74 eos/saveddata/damagePattern.py:75 +#: eos/saveddata/damagePattern.py:76 eos/saveddata/damagePattern.py:77 +#: eos/saveddata/damagePattern.py:78 eos/saveddata/damagePattern.py:79 +#: eos/saveddata/damagePattern.py:80 eos/saveddata/damagePattern.py:81 +#: eos/saveddata/damagePattern.py:82 eos/saveddata/damagePattern.py:83 +#: eos/saveddata/damagePattern.py:84 eos/saveddata/damagePattern.py:85 +msgid "Projectile Ammo" +msgstr "射弹弹药" + #: gui/itemStats.py:200 msgid "Properties" msgstr "属性" @@ -1983,6 +2596,10 @@ msgstr "属性" msgid "Propulsion" msgstr "高速" +#: eos/saveddata/damagePattern.py:78 +msgid "Proton" +msgstr "质子弹" + #: gui/builtinPreferenceViews/pyfaNetworkPreferences.py:49 msgid "Proxy settings" msgstr "代理设置" @@ -2027,6 +2644,10 @@ msgstr "激活的物品数量" msgid "Quantity of all items" msgstr "所有物品数量" +#: eos/saveddata/damagePattern.py:45 +msgid "Radio" +msgstr "射频" + #: gui/targetProfileEditor.py:126 msgid "Radius" msgstr "信号半径" @@ -2086,8 +2707,8 @@ msgid "Reinforced" msgstr "加强回充" #: gui/builtinPreferenceViews/pyfaStatViewPreferences.py:104 -#: gui/builtinStatsViews/outgoingViewFull.py:66 #: gui/builtinStatsViews/outgoingViewMinimal.py:65 +#: gui/builtinStatsViews/outgoingViewFull.py:66 msgid "Remote Reps" msgstr "遥修" @@ -2149,6 +2770,24 @@ msgstr "抗性" msgid "Resources" msgstr "装配资源" +#: eos/saveddata/damagePattern.py:142 eos/saveddata/targetProfile.py:95 +msgid "Retaliating Amarr Entities" +msgstr "反击艾玛单位" + +#: eos/saveddata/damagePattern.py:143 eos/saveddata/damagePattern.py:144 +#: eos/saveddata/targetProfile.py:96 +msgid "Retaliating Caldari Entities" +msgstr "反击加达里单位" + +#: eos/saveddata/damagePattern.py:145 eos/saveddata/targetProfile.py:97 +msgid "Retaliating Gallente Entities" +msgstr "反击盖伦特单位" + +#: eos/saveddata/damagePattern.py:146 eos/saveddata/damagePattern.py:147 +#: eos/saveddata/targetProfile.py:98 +msgid "Retaliating Minmatar Entities" +msgstr "反击米玛塔尔单位" + #: gui/builtinItemStatsViews/itemMutator.py:57 msgid "Revert changes" msgstr "还原到初始状态" @@ -2161,6 +2800,14 @@ msgstr "还原为{}" msgid "Rig" msgstr "改装" +#: eos/saveddata/damagePattern.py:105 eos/saveddata/damagePattern.py:123 +msgid "Rogue Drone" +msgstr "自由无人机" + +#: eos/saveddata/targetProfile.py:63 eos/saveddata/targetProfile.py:69 +msgid "Rogue Drones" +msgstr "自由无人机" + #: gui/builtinItemStatsViews/itemEffects.py:34 msgid "Run Time" msgstr "运行时长" @@ -2181,10 +2828,16 @@ msgstr "单点登录(SSO)模式" msgid "Salvage hold" msgstr "打捞件仓" +#: eos/saveddata/damagePattern.py:156 eos/saveddata/targetProfile.py:80 #: gui/builtinContextMenus/envEffectAdd.py:112 msgid "Sansha Incursion" msgstr "萨沙入侵" +#: eos/saveddata/damagePattern.py:106 eos/saveddata/damagePattern.py:124 +#: eos/saveddata/targetProfile.py:64 eos/saveddata/targetProfile.py:70 +msgid "Sanshas Nation" +msgstr "萨沙国度" + #: gui/mainFrame.py:860 msgid "Save Backup As..." msgstr "保存备份为..." @@ -2218,6 +2871,14 @@ msgstr "保存为新的植入体配置" msgid "Scan res." msgstr "扫描精度" +#: eos/saveddata/damagePattern.py:91 +msgid "Scorch Bomb" +msgstr "灼烧炸弹" + +#: eos/saveddata/damagePattern.py:88 +msgid "Scourge" +msgstr "鞭挞" + #: gui/builtinShipBrowser/navigationPanel.py:61 msgid "Search fittings" msgstr "搜索装配" @@ -2229,7 +2890,17 @@ msgstr "安全等级: {0:.2f}" #: gui/characterEditor.py:914 msgid "Security Status is used in some CONCORD hull calculations" -msgstr "安全等级会用于计算CONCORD警察船体属性" +msgstr "安全等级会用于计算统合部船体属性" + +#: eos/saveddata/damagePattern.py:99 eos/saveddata/targetProfile.py:101 +#: eos/saveddata/targetProfile.py:108 eos/saveddata/targetProfile.py:115 +#: eos/saveddata/targetProfile.py:122 eos/saveddata/targetProfile.py:129 +#: eos/saveddata/targetProfile.py:136 eos/saveddata/targetProfile.py:143 +#: eos/saveddata/targetProfile.py:150 eos/saveddata/targetProfile.py:157 +#: eos/saveddata/targetProfile.py:164 eos/saveddata/targetProfile.py:171 +#: eos/saveddata/targetProfile.py:178 eos/saveddata/targetProfile.py:185 +msgid "Seeker" +msgstr "探寻者" #: gui/copySelectDialog.py:62 msgid "Select a format" @@ -2243,10 +2914,23 @@ msgstr "正在发送请求和接收响应" msgid "Sensor str." msgstr "传感器强度" +#: eos/saveddata/damagePattern.py:119 eos/saveddata/targetProfile.py:92 +msgid "Sentinel" +msgstr "哨兵级" + #: gui/builtinPreferenceViews/pyfaGeneralPreferences.py:59 msgid "Separate Racks" msgstr "分隔不同槽位类型" +#: eos/saveddata/damagePattern.py:107 eos/saveddata/damagePattern.py:125 +#: eos/saveddata/targetProfile.py:65 eos/saveddata/targetProfile.py:71 +msgid "Serpentis" +msgstr "天蛇" + +#: gui/builtinViewColumns/baseName.py:64 +msgid "Service" +msgstr "服务" + #: gui/characterEditor.py:907 msgid "Set Security Status" msgstr "设置安全等级" @@ -2278,6 +2962,14 @@ msgstr "" msgid "Sharpshooter" msgstr "狙击" +#: eos/saveddata/targetProfile.py:46 +msgid "Shield" +msgstr "护盾" + +#: eos/saveddata/targetProfile.py:49 +msgid "Shield (+T2 DCU)" +msgstr "护盾(+T2损控)" + #: gui/builtinStatsViews/resistancesViewFull.py:112 msgid "Shield resistance" msgstr "护盾抗性" @@ -2332,6 +3024,10 @@ msgstr "显示市场快捷方式" msgid "Show ship browser tooltip" msgstr "船体列表显示预览" +#: eos/saveddata/damagePattern.py:93 +msgid "Shrapnel Bomb" +msgstr "榴霰炸弹" + #: gui/builtinContextMenus/boosterSideEffects.py:34 msgid "Side Effects" msgstr "副作用" @@ -2365,6 +3061,21 @@ msgstr "技能列表" msgid "Skills required:" msgstr "所需技能:" +#: eos/saveddata/damagePattern.py:100 eos/saveddata/targetProfile.py:79 +#: eos/saveddata/targetProfile.py:104 eos/saveddata/targetProfile.py:111 +#: eos/saveddata/targetProfile.py:118 eos/saveddata/targetProfile.py:125 +#: eos/saveddata/targetProfile.py:132 eos/saveddata/targetProfile.py:139 +#: eos/saveddata/targetProfile.py:146 eos/saveddata/targetProfile.py:153 +#: eos/saveddata/targetProfile.py:160 eos/saveddata/targetProfile.py:167 +#: eos/saveddata/targetProfile.py:174 eos/saveddata/targetProfile.py:181 +#: eos/saveddata/targetProfile.py:188 +msgid "Sleeper" +msgstr "冬眠者" + +#: eos/saveddata/damagePattern.py:157 +msgid "Sleepers" +msgstr "冬眠者" + #: gui/builtinStatsViews/targetingMiscViewMinimal.py:118 msgid "Small ship hold" msgstr "小型舰船仓" @@ -2389,10 +3100,33 @@ msgstr "预热周期" msgid "Stable: " msgstr "稳定:" +#: eos/saveddata/damagePattern.py:48 +msgid "Standard" +msgstr "标准" + #: gui/builtinPreferenceViews/pyfaStatViewPreferences.py:22 msgid "Statistics Panel" msgstr "属性面板" +#: eos/saveddata/damagePattern.py:144 eos/saveddata/damagePattern.py:147 +msgid "Subcaps" +msgstr "非旗舰" + +#: eos/saveddata/damagePattern.py:134 +#, no-python-format +msgid "Subcaps w/missiles 0% spool up" +msgstr "非旗舰0%预热" + +#: eos/saveddata/damagePattern.py:140 +#, no-python-format +msgid "Subcaps w/missiles 100% spool up" +msgstr "非旗舰100%预热" + +#: eos/saveddata/damagePattern.py:137 +#, no-python-format +msgid "Subcaps w/missiles 50% spool up" +msgstr "非旗舰50%预热" + #: gui/builtinViewColumns/baseName.py:62 msgid "Subsystem" msgstr "子系统" @@ -2405,6 +3139,10 @@ msgstr "成功" msgid "Successfully fetched skills" msgstr "成功获取到技能列表" +#: eos/saveddata/damagePattern.py:111 eos/saveddata/targetProfile.py:84 +msgid "Succubus (Sanshas Nation)" +msgstr "魔女级(萨沙)" + #: gui/builtinAdditionPanes/fighterView.py:62 msgid "Support" msgstr "支援" @@ -2418,11 +3156,29 @@ msgstr "有{0}个未提示的版本更新" msgid "Sustained" msgstr "持续回充" +#: eos/saveddata/targetProfile.py:46 eos/saveddata/targetProfile.py:47 +#: eos/saveddata/targetProfile.py:48 eos/saveddata/targetProfile.py:49 +#: eos/saveddata/targetProfile.py:50 eos/saveddata/targetProfile.py:51 +msgid "T1 Resist" +msgstr "T1抗性" + +#: eos/saveddata/targetProfile.py:52 eos/saveddata/targetProfile.py:53 +#: eos/saveddata/targetProfile.py:54 eos/saveddata/targetProfile.py:55 +#: eos/saveddata/targetProfile.py:56 eos/saveddata/targetProfile.py:57 +#: eos/saveddata/targetProfile.py:58 eos/saveddata/targetProfile.py:59 +msgid "T2 Resist" +msgstr "T2抗性" + +#: gui/builtinViewColumns/baseName.py:102 #: gui/builtinContextMenus/shipModeChange.py:37 -#: gui/builtinViewColumns/baseName.py:101 gui/builtinViews/fittingView.py:657 +#: gui/builtinViews/fittingView.py:657 msgid "Tactical Mode" msgstr "战术模式" +#: eos/saveddata/damagePattern.py:118 eos/saveddata/targetProfile.py:91 +msgid "Talos" +msgstr "塔洛斯级" + #: graphs/gui/lists.py:358 msgid "Target" msgstr "目标" @@ -2451,6 +3207,10 @@ msgstr "目标和杂项" msgid "Targets" msgstr "最大锁定数" +#: eos/saveddata/damagePattern.py:60 +msgid "Tetryon" +msgstr "四重子" + #: gui/mainFrame.py:811 msgid "Text skills training file" msgstr "技能列表文本文件" @@ -2513,6 +3273,7 @@ msgstr "" "无法启动本地服务器,请尝试转到偏好设置->EVE SSO->登录验证方法并设置为手动模" "式。如果仍然遇到问题,请在Github填写issue以报告该问题。" +#: eos/saveddata/damagePattern.py:40 #: gui/builtinContextMenus/moduleAmmoChange.py:25 msgid "Thermal" msgstr "热能" @@ -2579,6 +3340,18 @@ msgid "" "back to with information about the character login." msgstr "本选项将启动一个本地服务器以接收登录页返回的角色信息。" +#: eos/saveddata/damagePattern.py:68 +msgid "Thorium" +msgstr "钍质" + +#: eos/saveddata/damagePattern.py:155 +msgid "Thukker" +msgstr "图克尔" + +#: eos/saveddata/damagePattern.py:80 +msgid "Titanium Sabot" +msgstr "钛合金萨博弹" + #: gui/builtinItemStatsViews/itemAffectedBy.py:70 msgid "Toggle Names" msgstr "切换名称" @@ -2591,9 +3364,9 @@ msgstr "切换视图" msgid "Toggle view mode" msgstr "切换显示模式" -#: gui/builtinStatsViews/miningyieldViewFull.py:89 #: gui/builtinStatsViews/priceViewFull.py:58 #: gui/builtinStatsViews/priceViewMinimal.py:57 +#: gui/builtinStatsViews/miningyieldViewFull.py:89 msgid "Total" msgstr "总计" @@ -2609,11 +3382,25 @@ msgstr "总计:" msgid "Traits" msgstr "特征" +#: eos/saveddata/damagePattern.py:101 eos/saveddata/targetProfile.py:102 +#: eos/saveddata/targetProfile.py:109 eos/saveddata/targetProfile.py:116 +#: eos/saveddata/targetProfile.py:123 eos/saveddata/targetProfile.py:130 +#: eos/saveddata/targetProfile.py:137 eos/saveddata/targetProfile.py:144 +#: eos/saveddata/targetProfile.py:151 eos/saveddata/targetProfile.py:158 +#: eos/saveddata/targetProfile.py:165 eos/saveddata/targetProfile.py:172 +#: eos/saveddata/targetProfile.py:179 eos/saveddata/targetProfile.py:186 +msgid "Triglavian" +msgstr "三神裔" + #: gui/builtinContextMenus/envEffectAdd.py:115 #: gui/builtinContextMenus/envEffectAdd.py:118 msgid "Triglavian Invasion" msgstr "三神裔入侵" +#: eos/saveddata/damagePattern.py:65 +msgid "Tungsten" +msgstr "钨质" + #: gui/builtinStatsViews/resourcesViewFull.py:111 msgid "Turret hardpoints" msgstr "炮台" @@ -2627,14 +3414,38 @@ msgstr "类型" msgid "Type: {0}\n" msgstr "扫描类型:{0}\n" -#: gui/builtinStatsViews/targetingMiscViewMinimal.py:222 +#: gui/builtinStatsViews/targetingMiscViewMinimal.py:223 msgid "Type: {}" msgstr "扫描类型:{}" +#: eos/saveddata/damagePattern.py:49 +msgid "Ultraviolet" +msgstr "紫外" + #: gui/mainMenuBar.py:83 msgid "Undo the most recent action" msgstr "撤销最近一次操作" +#: eos/saveddata/damagePattern.py:38 +msgid "Uniform" +msgstr "均匀" + +#: eos/saveddata/targetProfile.py:42 +msgid "Uniform (25%)" +msgstr "均匀(25%)" + +#: eos/saveddata/targetProfile.py:43 +msgid "Uniform (50%)" +msgstr "均匀(50%)" + +#: eos/saveddata/targetProfile.py:44 +msgid "Uniform (75%)" +msgstr "均匀(75%)" + +#: eos/saveddata/targetProfile.py:45 +msgid "Uniform (90%)" +msgstr "均匀(90%)" + #: gui/characterEditor.py:614 msgid "Unlearn" msgstr "未学习" @@ -2647,6 +3458,10 @@ msgstr "有更新可用" msgid "Updates" msgstr "更新" +#: eos/saveddata/damagePattern.py:69 +msgid "Uranium" +msgstr "钼质" + #: gui/builtinAdditionPanes/implantView.py:68 msgid "Use Character Implants" msgstr "使用角色植入体组" @@ -2675,11 +3490,15 @@ msgstr "用户名:" msgid "Using Executable Path for Saved Fit Database and Settings" msgstr "使用Pyfa可执行文件路径来保存装配数据库和偏好设置" -#: gui/builtinContextMenus/itemVariationChange.py:49 #: gui/builtinPreferenceViews/pyfaContextMenuPreferences.py:51 +#: gui/builtinContextMenus/itemVariationChange.py:49 msgid "Variations" msgstr "变种" +#: eos/saveddata/damagePattern.py:116 eos/saveddata/targetProfile.py:89 +msgid "Vengeance" +msgstr "复仇级" + #: gui/builtinItemStatsViews/itemAttributes.py:53 msgid "View Raw Data" msgstr "显示原始数据" @@ -2694,8 +3513,8 @@ msgstr "正在等待角色通过EvE登录。" #: gui/builtinStatsViews/targetingMiscViewMinimal.py:210 #: gui/builtinStatsViews/targetingMiscViewMinimal.py:212 -#: gui/builtinStatsViews/targetingMiscViewMinimal.py:243 -#: gui/builtinStatsViews/targetingMiscViewMinimal.py:245 +#: gui/builtinStatsViews/targetingMiscViewMinimal.py:244 +#: gui/builtinStatsViews/targetingMiscViewMinimal.py:246 #, python-format msgid "Warp Core Strength: %.1f" msgstr "跃迁核心强度:%.1f" @@ -2732,10 +3551,18 @@ msgstr "" "启用时,技能级别变化时将检查并移除未达等级要求的相关技能。\n" "例如:将无人机从5级设置为4级将移除重型无人机操作技能,因为该技能要求无人机5级" +#: eos/saveddata/damagePattern.py:112 eos/saveddata/targetProfile.py:85 +msgid "Worm (Guristas)" +msgstr "潜龙级(古斯塔斯)" + #: gui/builtinContextMenus/envEffectAdd.py:105 msgid "Wormhole" msgstr "虫洞" +#: eos/saveddata/damagePattern.py:50 +msgid "Xray" +msgstr "X射线" + #: gui/builtinItemStatsViews/itemEffects.py:56 msgid "Yes" msgstr "是" @@ -2760,6 +3587,62 @@ msgstr "您必须填写一个伤害模型名!" msgid "You must supply a name for your Target Profile!" msgstr "您必须填写一个目标属性名!" +#: eos/saveddata/damagePattern.py:43 +msgid "[T2] Aurora" +msgstr "[T2] 极光" + +#: eos/saveddata/damagePattern.py:75 +msgid "[T2] Barrage" +msgstr "[T2] 雷暴" + +#: eos/saveddata/damagePattern.py:54 +msgid "[T2] Conflagration" +msgstr "[T2] 爆燃" + +#: eos/saveddata/damagePattern.py:53 +msgid "[T2] Gleam" +msgstr "[T2] 微光" + +#: eos/saveddata/damagePattern.py:85 +msgid "[T2] Hail" +msgstr "[T2] 冰雹" + +#: eos/saveddata/damagePattern.py:72 +msgid "[T2] Javelin" +msgstr "[T2] 标枪" + +#: eos/saveddata/damagePattern.py:57 +msgid "[T2] Mystic" +msgstr "[T2] 奥秘" + +#: eos/saveddata/damagePattern.py:63 +msgid "[T2] Null" +msgstr "[T2] 虚空" + +#: eos/saveddata/damagePattern.py:61 +msgid "[T2] Occult" +msgstr "[T2] 神秘" + +#: eos/saveddata/damagePattern.py:84 +msgid "[T2] Quake" +msgstr "[T2] 地震" + +#: eos/saveddata/damagePattern.py:44 +msgid "[T2] Scorch" +msgstr "[T2] 灼烧" + +#: eos/saveddata/damagePattern.py:62 +msgid "[T2] Spike" +msgstr "[T2] 钉刺" + +#: eos/saveddata/damagePattern.py:74 +msgid "[T2] Tremor" +msgstr "[T2] 战栗" + +#: eos/saveddata/damagePattern.py:73 +msgid "[T2] Void" +msgstr "[T2] 涅槃" + #: gui/builtinPreferenceViews/pyfaDatabasePreferences.py:38 msgid "pyfa User Path:" msgstr "pyfa用户数据路径:" @@ -2806,6 +3689,16 @@ msgstr "{0}市场分类" msgid "{context}Stats: {name}{debug_info}" msgstr "{context}属性:{name}{debug_info}" +#: gui/pyfa_gauge.py:347 +#, python-brace-format +msgid "{{0:.{0}f}} left" +msgstr "剩余{{0:.{0}f}}" + +#: gui/pyfa_gauge.py:344 +#, python-brace-format +msgid "{{0:.{0}f}} over" +msgstr "超出{{0:.{0}f}}" + #: gui/builtinContextMenus/moduleSpool.py:83 msgid "{} (default)" msgstr "{}(默认值)" @@ -2818,6 +3711,10 @@ msgstr "复制{}" msgid "{} Stats" msgstr "{}属性" -#: gui/builtinViewColumns/baseName.py:103 +#: gui/builtinViewColumns/baseName.py:104 msgid "{} {} Slot" msgstr "{} {}槽" + +#: gui/builtinStatsViews/targetingMiscViewMinimal.py:221 +msgid "{}% chance to be jammed" +msgstr "{}%概率丢失目标" diff --git a/pyfa.py b/pyfa.py index 085d23efe8..f0063f8d64 100755 --- a/pyfa.py +++ b/pyfa.py @@ -77,7 +77,6 @@ def _process_args(self, largs, rargs, values): (options, args) = parser.parse_args() - if __name__ == "__main__": try: @@ -92,6 +91,7 @@ def _process_args(self, largs, rargs, values): import wx from logbook import Logger + pyfalog = Logger(__name__) from gui.errorDialog import ErrorHandler @@ -146,6 +146,7 @@ def _process_args(self, largs, rargs, values): pyfa = PyfaApp(False) from gui.mainFrame import MainFrame + mf = MainFrame(options.title) ErrorHandler.SetParent(mf) @@ -153,6 +154,7 @@ def _process_args(self, largs, rargs, values): profile_path = os.path.join(options.profile_path, 'pyfa-{}.profile'.format(datetime.datetime.now().strftime('%Y%m%d_%H%M%S'))) pyfalog.debug("Starting pyfa with a profiler, saving to {}".format(profile_path)) import cProfile + cProfile.run('pyfa.MainLoop()', profile_path) else: pyfa.MainLoop()