]> git.smokeofanarchy.ru Git - space-station-14.git/commitdiff
Localization of steal targets (#30153)
authorchavonadelal <156101927+chavonadelal@users.noreply.github.com>
Mon, 16 Sep 2024 12:50:14 +0000 (15:50 +0300)
committerGitHub <noreply@github.com>
Mon, 16 Sep 2024 12:50:14 +0000 (14:50 +0200)
* Localization of steal targets

* Correction of localization of theft objects

* The second correction of the localization of theft targets

* Update steal-target-groups.ftl

Co-authored-by: Ed <96445749+TheShuEd@users.noreply.github.com>
* Revision of the localization method

* Choosing a simple option for localization

* Fix TechnologyDisk name

* Corrections based on feedback received

* correction of declension

---------

Co-authored-by: Ed <96445749+TheShuEd@users.noreply.github.com>
Content.Server/Objectives/Systems/StealConditionSystem.cs
Content.Shared/Objectives/Prototypes/StealTargetGroupPrototype.cs
Resources/Locale/en-US/objectives/conditions/steal-target-groups.ftl [new file with mode: 0644]
Resources/Locale/en-US/objectives/conditions/steal.ftl
Resources/Prototypes/Objectives/stealTargetGroups.yml

index 2c9244cf7d5f32f334bffa1d011ba7fe435f4119..be34a80fe348505532d1ba7bcdeacb0a25fc07e4 100644 (file)
@@ -72,14 +72,15 @@ public sealed class StealConditionSystem : EntitySystem
     private void OnAfterAssign(Entity<StealConditionComponent> condition, ref ObjectiveAfterAssignEvent args)
     {
         var group = _proto.Index(condition.Comp.StealGroup);
+        string localizedName = Loc.GetString(group.Name);
 
         var title =condition.Comp.OwnerText == null
-            ? Loc.GetString(condition.Comp.ObjectiveNoOwnerText, ("itemName", group.Name))
-            : Loc.GetString(condition.Comp.ObjectiveText, ("owner", Loc.GetString(condition.Comp.OwnerText)), ("itemName", group.Name));
+            ? Loc.GetString(condition.Comp.ObjectiveNoOwnerText, ("itemName", localizedName))
+            : Loc.GetString(condition.Comp.ObjectiveText, ("owner", Loc.GetString(condition.Comp.OwnerText)), ("itemName", localizedName));
 
         var description = condition.Comp.CollectionSize > 1
-            ? Loc.GetString(condition.Comp.DescriptionMultiplyText, ("itemName", group.Name), ("count", condition.Comp.CollectionSize))
-            : Loc.GetString(condition.Comp.DescriptionText, ("itemName", group.Name));
+            ? Loc.GetString(condition.Comp.DescriptionMultiplyText, ("itemName", localizedName), ("count", condition.Comp.CollectionSize))
+            : Loc.GetString(condition.Comp.DescriptionText, ("itemName", localizedName));
 
         _metaData.SetEntityName(condition.Owner, title, args.Meta);
         _metaData.SetEntityDescription(condition.Owner, description, args.Meta);
index 2730acb9acac1fcf1dd617668ba4783848dcc471..bc2af0eb092a627999351d0d091f987ec6538a08 100644 (file)
@@ -10,6 +10,6 @@ namespace Content.Shared.Objectives;
 public sealed partial class StealTargetGroupPrototype : IPrototype
 {
     [IdDataField] public string ID { get; private set; } = default!;
-    [DataField] public string Name { get; private set; } = string.Empty;
+    [DataField] public LocId Name { get; private set; } = string.Empty;
     [DataField] public SpriteSpecifier Sprite { get; private set; } = SpriteSpecifier.Invalid;
 }
diff --git a/Resources/Locale/en-US/objectives/conditions/steal-target-groups.ftl b/Resources/Locale/en-US/objectives/conditions/steal-target-groups.ftl
new file mode 100644 (file)
index 0000000..91b3c92
--- /dev/null
@@ -0,0 +1,66 @@
+# Traitor single items
+steal-target-groups-hypospray = hypospray
+steal-target-groups-handheld-crew-monitor = handheld crew monitor
+steal-target-groups-clothing-outer-hardsuit-rd = experimental research hardsuit
+steal-target-groups-hand-teleporter = hand teleporter
+steal-target-groups-clothing-shoes-boots-mag-adv = advanced magboots
+steal-target-groups-box-folder-qm-clipboard = requisition digi-board
+steal-target-groups-food-meat-corgi = prime-cut corgi meat
+steal-target-groups-captain-id-card = captain ID card
+steal-target-groups-jetpack-captain-filled = captain's jetpack
+steal-target-groups-weapon-antique-laser = antique laser pistol
+steal-target-groups-nuke-disk = nuclear authentication disk
+steal-target-groups-weapon-energy-shot-gun = energy shotgun
+
+# Thief Collection
+steal-target-groups-figurines = figurine
+steal-target-groups-heads-cloaks = head's cloak
+steal-target-groups-heads-bedsheets = head's bedsheet
+steal-target-groups-stamps = stamp
+steal-target-groups-door-remotes = door remote
+steal-target-groups-encryption-keys = encryption key
+steal-target-groups-technology-disks = technology disk
+steal-target-groups-id-cards = ID Card
+steal-target-groups-lamps = LAMP
+
+# Thief single item
+steal-target-groups-forensic-scanner = forensic scanner
+steal-target-groups-flippo-engraved-lighter = detective's Flippo engraved lighter
+steal-target-groups-ammo-tech-fab-circuitboard = ammo techfab circuit board
+steal-target-groups-clothing-head-hat-warden = warden's cap
+steal-target-groups-clothing-outer-hardsuit-void-paramed = paramedic void suit
+steal-target-groups-medical-tech-fab-circuitboard = medical techfab machine board
+steal-target-groups-clothing-headset-alt-medical = chief medical officer's over-ear headset
+steal-target-groups-research-and-development-server-machine-circuitboard = R&D server machine board
+steal-target-groups-fire-axe = fireaxe
+steal-target-groups-ame-part-flatpack =  AME flatpack
+steal-target-groups-salvage-expeditions-computer-circuitboard = salvage expeditions computer board
+steal-target-groups-cargo-shuttle-console-circuitboard = cargo shuttle console board
+steal-target-groups-clothing-eyes-hud-beer = beer goggles
+steal-target-groups-bible = bible
+steal-target-groups-clothing-neck-goldmedal = gold medal of crewmanship
+steal-target-groups-clothing-neck-clownmedal = clown medal
+
+# Thief structures
+steal-target-groups-teg = teg generator part
+steal-target-groups-freezer-heater = freezer or heater
+steal-target-groups-altar-nanotrasen = nanotrasen altar (any)
+
+steal-target-groups-nuclear-bomb = nuclear fission explosive
+steal-target-groups-fax-machine-captain = captain long range fax machine
+steal-target-groups-chem-dispenser = chemical dispenser
+steal-target-groups-xeno-artifact = alien artifact
+steal-target-groups-booze-dispenser = booze dispenser
+steal-target-groups-plant-rd = "RD's potted plant"
+steal-target-groups-toilet-golden-dirty-water = golden toilet
+
+# Thief Animal
+steal-target-groups-animal-named-cat = CMO's Cat
+
+steal-target-groups-animal-ian = Ian
+steal-target-groups-animal-mc-griff = McGriff
+steal-target-groups-animal-walter = Walter
+steal-target-groups-animal-morty = Morty
+steal-target-groups-animal-renault = Renault
+steal-target-groups-animal-shiva = Shiva
+steal-target-groups-animal-tropico = Tropico
index 00c8e0fdaf93adbbd627f44d299fbe1016a2bc73..1f11bf7196b976685393bc5b2d508a274ba9e431 100644 (file)
@@ -8,4 +8,4 @@ objective-condition-steal-Ian = head of personnel's corgi
 
 objective-condition-thief-description = The {$itemName} would be a great addition to my collection!
 objective-condition-thief-animal-description = The {$itemName} would be a great addition to my collection! Most importantly, alive.
-objective-condition-thief-multiply-description = I need to get {$count} {MAKEPLURAL($itemName)} and take them with me.
+objective-condition-thief-multiply-description = I need to get {$count} {MAKEPLURAL($itemName)} (any) and take them with me.
index b22e952e7e60e0f858eac6c7b0cf03555d16348c..48f56e2bfcd76d1bf775441c3741315e0436b30a 100644 (file)
@@ -2,84 +2,84 @@
 
 - type: stealTargetGroup
   id: Hypospray
-  name: hypospray
+  name: steal-target-groups-hypospray
   sprite:
     sprite: Objects/Specific/Medical/hypospray.rsi
     state: hypo
 
 - type: stealTargetGroup
   id: HandheldCrewMonitor
-  name: handheld crew monitor
+  name: steal-target-groups-handheld-crew-monitor
   sprite:
     sprite: Objects/Specific/Medical/handheldcrewmonitor.rsi
     state: scanner
 
 - type: stealTargetGroup
   id: ClothingOuterHardsuitRd
-  name: experimental research hardsuit
+  name: steal-target-groups-clothing-outer-hardsuit-rd
   sprite:
     sprite: Clothing/OuterClothing/Hardsuits/rd.rsi
     state: icon
 
 - type: stealTargetGroup
   id: HandTeleporter
-  name: hand teleporter
+  name: steal-target-groups-hand-teleporter
   sprite:
     sprite: Objects/Devices/hand_teleporter.rsi
     state: icon
 
 - type: stealTargetGroup
   id: ClothingShoesBootsMagAdv
-  name: advanced magboots
+  name: steal-target-groups-clothing-shoes-boots-mag-adv
   sprite:
     sprite: Clothing/Shoes/Boots/magboots-advanced.rsi
     state: icon
 
 - type: stealTargetGroup
   id: BoxFolderQmClipboard
-  name: requisition digi-board
+  name: steal-target-groups-box-folder-qm-clipboard
   sprite:
     sprite: Objects/Misc/qm_clipboard.rsi
     state: qm_clipboard
 
 - type: stealTargetGroup
   id: FoodMeatCorgi
-  name: prime-cut corgi meat
+  name: steal-target-groups-food-meat-corgi
   sprite:
     sprite: Objects/Consumable/Food/meat.rsi
     state: corgi
     #
 - type: stealTargetGroup
   id: CaptainIDCard
-  name: captain ID card
+  name: steal-target-groups-captain-id-card
   sprite:
     sprite: Objects/Misc/id_cards.rsi
     state: ert_commander #no one will know the difference.
 
 - type: stealTargetGroup
   id: JetpackCaptainFilled
-  name: captain's jetpack
+  name: steal-target-groups-jetpack-captain-filled
   sprite:
     sprite: Objects/Tanks/Jetpacks/captain.rsi
     state: icon
 
 - type: stealTargetGroup
   id: WeaponAntiqueLaser
-  name: antique laser pistol
+  name: steal-target-groups-weapon-antique-laser
   sprite:
     sprite: Objects/Weapons/Guns/Battery/antiquelasergun.rsi
     state: base
 
 - type: stealTargetGroup
   id: NukeDisk
-  name: nuclear authentication disk
+  name: steal-target-groups-nuke-disk
   sprite:
     sprite: Objects/Misc/nukedisk.rsi
     state: icon
 
 - type: stealTargetGroup
   id: WeaponEnergyShotgun
-  name: energy shotgun
+  name: steal-target-groups-weapon-energy-shot-gun
   sprite:
     sprite: Objects/Weapons/Guns/Battery/energy_shotgun.rsi
     state: base
 
 - type: stealTargetGroup
   id: Figurines
-  name: figurines (any)
+  name: steal-target-groups-figurines
   sprite:
     sprite: Objects/Fun/figurines.rsi
     state: figurine_spawner
 
 - type: stealTargetGroup
   id: HeadCloak
-  name: head's cloaks (any)
+  name: steal-target-groups-heads-cloaks
   sprite:
     sprite: Clothing/Neck/Cloaks/cap.rsi
     state: icon
 
 - type: stealTargetGroup
   id: HeadBedsheet
-  name: head's bedsheets (any)
+  name: steal-target-groups-heads-bedsheets
   sprite:
     sprite: Objects/Misc/bedsheets.rsi
     state: sheetNT
 
 - type: stealTargetGroup
   id: Stamp
-  name: stamps (any)
+  name: steal-target-groups-stamps
   sprite:
     sprite: Objects/Misc/stamps.rsi
     state: stamp-cap
 
 - type: stealTargetGroup
   id: DoorRemote
-  name: door remotes (any)
+  name: steal-target-groups-door-remotes
   sprite:
     sprite: Objects/Devices/door_remote.rsi
     state: door_remotebase
 
 - type: stealTargetGroup
   id: EncryptionKey
-  name: encryption keys (any)
+  name: steal-target-groups-encryption-keys
   sprite:
     sprite: Objects/Devices/encryption_keys.rsi
     state: crypt_gray
 
 - type: stealTargetGroup
   id: TechnologyDisk
-  name: technology disks
+  name: steal-target-groups-technology-disks
   sprite:
     sprite: Objects/Misc/module.rsi
     state: datadisk_base
 
 - type: stealTargetGroup
   id: IDCard
-  name: ID Cards (any)
+  name: steal-target-groups-id-cards
   sprite:
     sprite: Objects/Misc/id_cards.rsi
     state: default
 
 - type: stealTargetGroup
   id: LAMP
-  name: LAMPS
+  name: steal-target-groups-lamps
   sprite:
     sprite: Objects/Tools/lantern.rsi
     state: lantern
 
 - type: stealTargetGroup
   id: ForensicScanner
-  name: forensic scanner
+  name: steal-target-groups-forensic-scanner
   sprite:
     sprite: Objects/Devices/forensic_scanner.rsi
     state: forensicnew
 
 - type: stealTargetGroup
   id: FlippoEngravedLighter
-  name: detective's Flippo engraved lighter
+  name: steal-target-groups-flippo-engraved-lighter
   sprite:
     sprite: Objects/Tools/lighters.rsi
     state: zippo_engraved_icon_base
 
 - type: stealTargetGroup
   id: AmmoTechFabCircuitboard
-  name: ammo techfab circuit board
+  name: steal-target-groups-ammo-tech-fab-circuitboard
   sprite:
     sprite: Objects/Misc/module.rsi
     state: security
 
 - type: stealTargetGroup
   id: ClothingHeadHatWarden
-  name: warden's cap
+  name: steal-target-groups-clothing-head-hat-warden
   sprite:
     sprite: Clothing/Head/Hats/warden.rsi
     state: icon
 
 - type: stealTargetGroup
   id: ClothingOuterHardsuitVoidParamed
-  name: paramedic void suit
+  name: steal-target-groups-clothing-outer-hardsuit-void-paramed
   sprite:
     sprite: Clothing/OuterClothing/Hardsuits/paramed.rsi
     state: icon
 
 - type: stealTargetGroup
   id: MedicalTechFabCircuitboard
-  name: medical techfab machine board
+  name: steal-target-groups-medical-tech-fab-circuitboard
   sprite:
     sprite: Objects/Misc/module.rsi
     state: medical
 
 - type: stealTargetGroup
   id: ClothingHeadsetAltMedical
-  name: chief medical officer's over-ear headset
+  name: steal-target-groups-clothing-headset-alt-medical
   sprite:
     sprite: Clothing/Ears/Headsets/medical.rsi
     state: icon_alt
 
 - type: stealTargetGroup
   id: ResearchAndDevelopmentServerMachineCircuitboard
-  name: R&D server machine board
+  name: steal-target-groups-research-and-development-server-machine-circuitboard
   sprite:
     sprite: Objects/Misc/module.rsi
     state: science
 
 - type: stealTargetGroup
   id: FireAxe
-  name: fireaxe
+  name: steal-target-groups-fire-axe
   sprite:
     sprite: Objects/Weapons/Melee/fireaxe.rsi
     state: icon
 
 - type: stealTargetGroup
   id: AmePartFlatpack
-  name: AME part
+  name: steal-target-groups-ame-part-flatpack
   sprite:
     sprite: Objects/Devices/flatpack.rsi
     state: ame-part
 
 - type: stealTargetGroup
   id: SalvageExpeditionsComputerCircuitboard
-  name: salvage expeditions computer board
+  name: steal-target-groups-salvage-expeditions-computer-circuitboard
   sprite:
     sprite: Objects/Misc/module.rsi
     state: cpu_supply
 
 - type: stealTargetGroup
   id: CargoShuttleConsoleCircuitboard
-  name: cargo shuttle console board
+  name: steal-target-groups-cargo-shuttle-console-circuitboard
   sprite:
     sprite: Objects/Misc/module.rsi
     state: cpuboard
 
 - type: stealTargetGroup
   id: ClothingEyesHudBeer
-  name: beer goggles
+  name: steal-target-groups-clothing-eyes-hud-beer
   sprite:
     sprite: Clothing/Eyes/Hud/beergoggles.rsi
     state: icon
 
 - type: stealTargetGroup
   id: Bible
-  name: bible
+  name: steal-target-groups-bible
   sprite:
     sprite: Objects/Specific/Chapel/bible.rsi
     state: icon
 
 - type: stealTargetGroup
   id: ClothingNeckGoldmedal
-  name: gold medal of crewmanship
+  name: steal-target-groups-clothing-neck-goldmedal
   sprite:
     sprite: Clothing/Neck/Medals/gold.rsi
     state: icon
 
 - type: stealTargetGroup
   id: ClothingNeckClownmedal
-  name: clown medal
+  name: steal-target-groups-clothing-neck-clownmedal
   sprite:
     sprite: Clothing/Neck/Medals/clownmedal.rsi
     state: icon
 
 - type: stealTargetGroup
   id: NuclearBomb
-  name: nuclear fission explosive
+  name: steal-target-groups-nuclear-bomb
   sprite:
     sprite: Objects/Devices/nuke.rsi
     state: nuclearbomb_base
 
 - type: stealTargetGroup
   id: FaxMachineCaptain
-  name: captain long range fax machine
+  name: steal-target-groups-fax-machine-captain
   sprite:
     sprite: Structures/Machines/fax_machine.rsi
     state: icon
 
 - type: stealTargetGroup
   id: ChemDispenser
-  name: chemical dispenser
+  name: steal-target-groups-chem-dispenser
   sprite:
     sprite: Structures/dispensers.rsi
     state: industrial-working
 
 - type: stealTargetGroup
   id: XenoArtifact
-  name: big alien artifact
+  name: steal-target-groups-xeno-artifact
   sprite:
     sprite: Objects/Specific/Xenoarchaeology/xeno_artifacts.rsi
     state: ano28
 
 - type: stealTargetGroup
   id: FreezerHeater
-  name: freezer or heater
+  name: steal-target-groups-freezer-heater
   sprite:
     sprite: Structures/Piping/Atmospherics/thermomachine.rsi
     state: heaterOff
 
 - type: stealTargetGroup
   id: Teg
-  name: teg generator part
+  name: steal-target-groups-teg
   sprite:
     sprite: Structures/Power/Generation/teg.rsi
     state: teg
 
 - type: stealTargetGroup
   id: BoozeDispenser
-  name: booze dispenser
+  name: steal-target-groups-booze-dispenser
   sprite:
     sprite: Structures/smalldispensers.rsi
     state: booze
 
 - type: stealTargetGroup
   id: AltarNanotrasen
-  name: nanotrasen altar (any)
+  name: steal-target-groups-altar-nanotrasen
   sprite:
     sprite: Structures/Furniture/Altars/Gods/nanotrasen.rsi
     state: nanotrasen
 
 - type: stealTargetGroup
   id: PlantRD
-  name: RD's potted plant
+  name: steal-target-groups-plant-rd
   sprite:
     sprite: Structures/Furniture/potted_plants.rsi
     state: plant-25
 
 - type: stealTargetGroup
   id: ToiletGoldenDirtyWater
-  name: golden toilet
+  name: steal-target-groups-toilet-golden-dirty-water
   sprite:
     sprite: Structures/Furniture/golden_toilet.rsi
     state: condisposal
 
 - type: stealTargetGroup
   id: AnimalIan
-  name: Ian
+  name: steal-target-groups-animal-ian
   sprite:
     sprite: Mobs/Pets/corgi.rsi
     state: ian
 
 - type: stealTargetGroup
   id: AnimalNamedCat
-  name: CMO's Cat
+  name: steal-target-groups-animal-named-cat
   sprite:
     sprite: Mobs/Pets/bingus.rsi
     state: bingus
 
 - type: stealTargetGroup
   id: AnimalMcGriff
-  name: McGriff
+  name: steal-target-groups-animal-mc-griff
   sprite:
     sprite: Mobs/Pets/mcgriff.rsi
     state: mcgriff
 
 - type: stealTargetGroup
   id: AnimalWalter
-  name: Walter
+  name: steal-target-groups-animal-walter
   sprite:
     sprite: Mobs/Pets/walter.rsi
     state: walter
 
 - type: stealTargetGroup
   id: AnimalMorty
-  name: Morty
+  name: steal-target-groups-animal-morty
   sprite:
     sprite: Mobs/Animals/possum.rsi
     state: possum
 
 - type: stealTargetGroup
   id: AnimalRenault
-  name: Renault
+  name: steal-target-groups-animal-renault
   sprite:
     sprite: Mobs/Animals/fox.rsi
     state: fox
 
 - type: stealTargetGroup
   id: AnimalShiva
-  name: Shiva
+  name: steal-target-groups-animal-shiva
   sprite:
     sprite: Mobs/Pets/shiva.rsi
     state: shiva
 
 - type: stealTargetGroup
   id: AnimalTropico
-  name: Tropico
+  name: steal-target-groups-animal-tropico
   sprite:
     sprite: Mobs/Animals/crab.rsi
     state: crab
-
-