Route UI labels through the string table
Full build / Import + headless tests (push) Successful in 38s
Full build / Full desktop build + optional release (push) Skipped

Move start menu, settings, pause, Help, HUD, radio, shift review and campaign
labels/templates into content/strings.en.json, including placeholder-validated
dynamic status text. No player-facing hardcoded labels remain outside dynamic
data/debug output. Headless 250/250, docs check OK.
This commit is contained in:
zwitschi committed 2026-11-02 11:25:15 +01:00
1 parent 3a74cedee0
commit af923b1483
10 files changed
+179 -89

No files matched your search

+8 -8
View File
@@ -68,22 +68,22 @@ func _init() -> void:
vbox.add_child(npc_name_label)
location_edit = LineEdit.new()
location_edit.placeholder_text = "Location (e.g. front steps)"
location_edit.text = "front entrance"
location_edit.placeholder_text = Strings.lookup("ui.radio_location_placeholder")
location_edit.text = Strings.lookup("ui.radio_location_default")
vbox.add_child(location_edit)
desc_edit = LineEdit.new()
desc_edit.placeholder_text = "Describe the person and behavior"
desc_edit.placeholder_text = Strings.lookup("ui.radio_description_placeholder")
vbox.add_child(desc_edit)
weapons_check = CheckBox.new()
weapons_check.text = "Weapon seen"
weapons_check.text = Strings.lookup("ui.radio_weapon")
vbox.add_child(weapons_check)
var danger_row := HBoxContainer.new()
vbox.add_child(danger_row)
var danger_label := Label.new()
danger_label.text = "Danger level: "
danger_label.text = Strings.lookup("ui.radio_danger")
danger_row.add_child(danger_label)
danger_option = OptionButton.new()
for i in 4:
@@ -109,7 +109,7 @@ func _init() -> void:
action_button.pressed.connect(_on_action_pressed)
buttons.add_child(action_button)
var cancel_btn := Button.new()
cancel_btn.text = "Cancel"
cancel_btn.text = Strings.lookup("ui.radio_cancel")
cancel_btn.pressed.connect(func(): cancelled.emit())
buttons.add_child(cancel_btn)
@@ -134,9 +134,9 @@ func open(controller: Object, emergency: bool, truth: Dictionary) -> void:
_paint_backdrop()
_truth = truth
_npc_id = controller.npc_id if controller else ""
npc_name_label.text = "Target: %s" % (controller.profile.display_name if controller else "?")
npc_name_label.text = Strings.fmt("ui.radio_target", [controller.profile.display_name if controller else "?"])
var title: Label = panel.find_child("RadioTitle", true, false)
title.text = "EMERGENCY RADIO" if emergency else "RADIO DISPATCH"
title.text = Strings.lookup("ui.radio_title_emergency") if emergency else Strings.lookup("ui.radio_title_assist")
weapons_check.button_pressed = truth.get("weapons_seen", false)
danger_option.select(truth.get("danger_level", 1))
hold_hint.text = Strings.fmt("ui.radio_hold_hint", [HOLD_NEEDED]) if emergency else ""