feat(i18n): complete migration — items, entities, AI goals, GUI screens

119 new translation keys across 3 domains:
- Items/Blocks/Misc (46 keys): tooltips, action messages, trap states
- Entities/AI Goals (55 keys): NPC speech, maid/master/guard messages
- Client GUI (18 keys): widget labels, screen buttons, merchant display

Remaining 119 Component.literal() are all intentional:
- Debug/Admin/Command wands (47) — dev tools, not player-facing
- Entity display names (~25) — dynamic getNpcName() calls
- Empty string roots (~15) — .append() chain bases
- User-typed text (~10) — /me, /pm, /norp chat content
- Runtime data (~12) — StringBuilder, gag muffling, MCA compat
This commit is contained in:
NotEvil
2026-04-16 12:33:13 +02:00
parent 9b2c5dec8e
commit fd60086322
51 changed files with 325 additions and 246 deletions

View File

@@ -263,6 +263,11 @@
"gui.tiedup.merchant.title": "Merchant Trading",
"gui.tiedup.merchant.buy": "Buy",
"gui.tiedup.merchant.your_gold": "Your Gold: ",
"gui.tiedup.merchant.gold_amount": "%sx ",
"gui.tiedup.merchant.gold_icon": "\u269c ",
"gui.tiedup.merchant.nugget_amount": "+ %sx ",
"gui.tiedup.merchant.nugget_icon": "\u2726",
"item.tiedup.clothes.tooltip.has_url": "Dynamic texture set",
"item.tiedup.clothes.tooltip.no_url": "No dynamic texture (use /tiedup clothes url set)",
@@ -297,6 +302,11 @@
"gui.tiedup.command_wand.relationship": "Relationship",
"gui.tiedup.command_wand.follow_distance.tooltip": "How closely the NPC follows. Click to cycle.",
"gui.tiedup.command_wand.follow_distance.current": "Current",
"gui.tiedup.command_wand.follow_distance.abbrev.heel": "H",
"gui.tiedup.command_wand.follow_distance.abbrev.close": "C",
"gui.tiedup.command_wand.follow_distance.abbrev.far": "F",
"gui.tiedup.command_wand.follow_distance.abbrev.unknown": "?",
"gui.tiedup.command_wand.percent": "%s%%",
"tiedup.follow_distance.far": "Far",
"tiedup.follow_distance.close": "Close",
"tiedup.follow_distance.heel": "Heel",
@@ -306,6 +316,7 @@
"gui.tiedup.npc_inventory": "NPC Inventory",
"gui.tiedup.npc_inventory.title": "Inventory",
"gui.tiedup.npc_inventory.title_name": "%s's Inventory",
"gui.tiedup.npc_inventory.take_all": "Take All",
"gui.tiedup.equipment": "Equipment",
"gui.tiedup.equipment.short": "Gear",
@@ -523,6 +534,12 @@
"gui.tiedup.adjustment.no_gag": "No gag equipped",
"gui.tiedup.adjustment.no_blindfold": "No blindfold equipped",
"gui.tiedup.adjustment.both": "Adjusting both items",
"gui.tiedup.adjustment.btn.reset": "0",
"gui.tiedup.adjustment.btn.decrement": "-0.25",
"gui.tiedup.adjustment.btn.increment": "+0.25",
"gui.tiedup.adjustment.btn.scale_reset": "1x",
"gui.tiedup.adjustment.btn.scale_decrement": "-0.1",
"gui.tiedup.adjustment.btn.scale_increment": "+0.1",
"gui.tiedup.continuous_struggle.label.resistance": "RESISTANCE:",
"gui.tiedup.continuous_struggle.status.shocked": "SHOCKED!",
@@ -560,6 +577,7 @@
"gui.tiedup.cell_manager.label.op_mode": "(OP Mode)",
"gui.tiedup.cell_manager.label.owner": "Owner: %s",
"gui.tiedup.cell_manager.label.empty": "(empty)",
"gui.tiedup.cell_manager.tree_prefix": " \u2514\u2500 ",
"gui.tiedup.cell_manager.status.rename_hint": "Press Enter to save, Escape to cancel",
"gui.tiedup.cell_manager.status.no_cells": "No cells created",
"gui.tiedup.cell_manager.status.use_cellwand": "Use CellWand to create cells",
@@ -651,6 +669,7 @@
"gui.tiedup.tab.lower": "Lower",
"gui.tiedup.tab.special": "Special",
"gui.tiedup.tab_bar": "Tab bar, active: %s",
"gui.tiedup.tab_bar.label": "Tab Bar",
"gui.tiedup.equip": "+ Equip",
"gui.tiedup.close_esc": "Close [ESC]",
"gui.tiedup.action.equip": "Equip",
@@ -689,6 +708,7 @@
"gui.tiedup.status.no_key": "No key",
"gui.tiedup.status.target_info": "Target: %s",
"gui.tiedup.status_bar": "Status bar",
"gui.tiedup.item_picker": "Item Picker",
"msg.tiedup.system.being_tied": "%1$s is tying you up!",
"msg.tiedup.system.tied_up": "%1$s tied you up, you can't move!",
@@ -998,5 +1018,106 @@
"msg.tiedup.network.at_location": " at ",
"item.tiedup.owner_target.owner": "Owner: ",
"item.tiedup.owner_target.unclaimed": "Unclaimed (%1$s)"
"item.tiedup.owner_target.unclaimed": "Unclaimed (%1$s)",
"item.tiedup.key.owner": "Owner: %1$s",
"item.tiedup.key.unclaimed": "Unclaimed (Right-click a collar wearer to claim)",
"item.tiedup.key.target": "Target: %1$s",
"item.tiedup.key.hint": "Right-click a collared player to toggle LOCK",
"item.tiedup.shocker.mode_broadcast": "MODE: BROADCAST",
"item.tiedup.shocker.broadcast_desc": "(Affects ALL your slaves in radius)",
"item.tiedup.shocker.mode_targeted": "MODE: TARGETED",
"item.tiedup.shocker.freed": " [FREED]",
"item.tiedup.shocker.no_target": " > No target connected",
"item.tiedup.shocker.radius": "Radius: %1$sm",
"item.tiedup.shocker.hint": "Shift + Right-click to toggle Broadcast mode",
"item.tiedup.rag.soaked": "Soaked with chloroform",
"item.tiedup.rag.evaporates": "Evaporates in: %1$ss",
"item.tiedup.rag.dry": "Dry - needs chloroform",
"item.tiedup.gps_locator.target": "Target: %1$s",
"item.tiedup.lockpick.uses": "Uses: %1$s/%2$s",
"item.tiedup.lockpick.chances_hint": "Success/break chances: Check server config",
"item.tiedup.lockpick.alert_prefix": "ALERT: ",
"item.tiedup.lockpick.alert_attempt": "%1$s tried to pick a lock!",
"item.tiedup.token.title": "Camp Access Token",
"item.tiedup.token.effect_no_target": "Kidnappers won't target you",
"item.tiedup.token.effect_trading": "Allows trading with Slave Traders",
"item.tiedup.token.hint": "Keep in your inventory for effect",
"item.tiedup.cell_key.desc": "Unlocks any Iron Bar Door",
"item.tiedup.cell_key.restriction": "Does not work on bondage items",
"item.tiedup.guide.no_patchouli": "Patchouli is not installed! Install it to use this guide.",
"item.tiedup.guide.book_not_found": "Failed to find Patchouli guide_book item.",
"item.tiedup.guide.received": "Received TiedUp! Guide Book!",
"item.tiedup.knife.cutting_speed": "Cutting speed: %1$s res/s",
"item.tiedup.knife.cutting_time": "Cutting time: %1$ss (%2$s total res)",
"block.tiedup.trap.armed": "Armed",
"block.tiedup.trap.disarmed": "Disarmed",
"block.tiedup.kidnap_bomb.loaded": "Loaded:",
"block.tiedup.kidnap_bomb.empty": "Empty",
"msg.tiedup.bounty.broadcast": "[Bounty] %1$s",
"msg.tiedup.prison.returned_to_cell": "You have been returned to your cell.",
"msg.tiedup.forcefeeding.you_fed": "You force fed %1$s.",
"msg.tiedup.forcefeeding.been_fed": "You have been force fed.",
"msg.tiedup.restraint.tightened": "Your restraints have been tightened!",
"msg.tiedup.camp.captor_died": "Your captor has died. You are FREE!",
"msg.tiedup.camp.grace_period": "You have 5 minutes of protection from kidnappers.",
"msg.tiedup.petplay.cannot_eat_hand": "You cannot eat from your hand! Use a bowl.",
"msg.tiedup.petplay.cannot_sleep_bed": "You cannot sleep in a bed! Use your pet bed.",
"msg.tiedup.petplay.sleep_time_only": "You can only sleep at night or during thunderstorms.",
"msg.tiedup.petplay.curl_up_bed": "You curl up in your pet bed...",
"entity.tiedup.maid.died_work_paused": "The maid has died. Work is paused. A replacement will arrive in 5 minutes.",
"entity.tiedup.maid.manual_assign": "The maid manually assigns you to: %1$s",
"entity.tiedup.maid.collect_shortly": "A Maid will come to collect you shortly.",
"entity.tiedup.maid.labor_status_header": "=== Labor Status ===",
"entity.tiedup.maid.labor_status_state": "State: %1$s",
"entity.tiedup.maid.labor_status_task": "Task: %1$s",
"entity.tiedup.maid.labor_status_progress": "Progress: %1$s/%2$s",
"entity.tiedup.maid.labor_status_debt": "Remaining debt: %1$s emeralds",
"entity.tiedup.maid.labor_hint_start_task": "Shift+Right-Click to manually start task",
"entity.tiedup.maid.labor_hint_turn_in": "Shift+Right-Click to manually turn in task",
"entity.tiedup.master.caught_escaping": "%1$s caught you trying to escape!",
"entity.tiedup.master.pet_freed": "You are free! Your master %1$s is gone.",
"entity.tiedup.trader.no_token_warning": "You don't have a trader token. Leave now, or I'll make you leave.",
"entity.tiedup.trader.camp_destroyed": "A slave trader camp has been destroyed!",
"entity.tiedup.guard.attack_punished": "Attacking your guard is punished!",
"entity.tiedup.guard.eliminated_free": "Your guard has been eliminated! You are free!",
"entity.tiedup.damsel.needs_collar_to_feed": "This NPC needs a collar before you can feed them.",
"entity.tiedup.damsel.not_collar_owner": "You don't own this NPC's collar.",
"entity.tiedup.damsel.cant_eat_now": "This NPC can't eat that right now.",
"entity.tiedup.trade.price_both": "%1$s gold + %2$s nuggets",
"entity.tiedup.trade.price_gold": "%1$s gold",
"entity.tiedup.trade.price_nuggets": "%1$s nuggets",
"entity.tiedup.trade.price_free": "Free",
"entity.tiedup.pet.too_far_to_talk": "You are too far from your Master to talk.",
"entity.tiedup.pet.too_far_from_master": "You are too far from your Master.",
"entity.tiedup.pet.you_say": "You: %1$s",
"goal.tiedup.trader_sell.greeting": "[%1$s] %2$s",
"goal.tiedup.trader_sell.browse_hint": "Right-click me to browse my stock.",
"goal.tiedup.guard_monitor.too_far": "You are too far from your guard! Return within 15 seconds or escape will be triggered!",
"goal.tiedup.guard_monitor.returned": "You returned to your guard. Stay close!",
"goal.tiedup.maid_deliver.on_leash": "%1$s is now on your leash.",
"goal.tiedup.maid_deliver.delivered": "%1$s has been delivered to you.",
"goal.tiedup.guard_command.chasing": "%1$s is chasing %2$s!",
"goal.tiedup.guard_command.spotted": "%1$s spotted: %2$s!",
"goal.tiedup.maid_extract.extracted": "You have been extracted for labor. Complete your task: %1$s",
"goal.tiedup.master_watch.time_remaining": "%1$s - %2$ss remaining",
"goal.tiedup.master_watch.speak_waiting": "%1$s: \"I'm waiting...\"",
"goal.tiedup.master_watch.demand_warning": "%1$s: \"%2$s\"",
"goal.tiedup.master_watch.punishment": "%1$s: \"%2$s\"",
"goal.tiedup.master_inspect.confiscated": "%1$s confiscated %2$s contraband item(s) from you!",
"goal.tiedup.master_inspect.inspecting": "%1$s is inspecting your inventory...",
"goal.tiedup.master_assign.task_speech": "%1$s: \"%2$s\"",
"goal.tiedup.maid_idle.task_complete": "Task complete! Walk back to camp.",
"goal.tiedup.maid_idle.task_failed": "Task failed due to inactivity! You will be returned to your cell.",
"goal.tiedup.maid_idle.inactivity_warning": "Warning: Work or face punishment! (%1$s/3)",
"goal.tiedup.maid_assign.task_assigned": "Task assigned: %1$s",
"goal.tiedup.maid_assign.task_reward": "Reward: %1$s emeralds toward your debt.",
"goal.tiedup.maid.debt_paid_free": "Your debt is paid. You are FREE!",
"goal.tiedup.maid_init.imprisoned": "You have been imprisoned. Your debt: %1$s emeralds.",
"goal.tiedup.maid_init.confiscated": "Your valuables have been confiscated.",
"goal.tiedup.kidnapper_decide.still_tied": "You're still tied up - struggle to break free!",
"goal.tiedup.kidnapper_sale.tag": "[SALE] ",
"goal.tiedup.kidnapper_sale.is_selling": " is selling ",
"goal.tiedup.kidnapper_sale.for": " for ",
"goal.tiedup.kidnapper_sale.at": " at "
}