extends Node ## i18n string table — player-visible strings ONLY. Code keys, EN values. ## ## Locked from day one (per CLAUDE.md): no hardcoded display copy in scenes or ## scripts. If you have player-facing text, add a key here and call Strings.t(key). ## ## Locale switching is post-MVP; the indirection lands now so we don't have to ## retrofit the whole game later. When the table grows, move it to a .tres or ## external CSV import; the public API (`Strings.t(key)`) stays the same. const TABLE: Dictionary = { # Phase 0 placeholder — populate as features land. &"app.title": "Rimlike", &"smoke.hello": "Phase 0 — autoloads online.", # Speed controls (top bar) &"speed.pause": "‖", &"speed.normal": "1×", &"speed.fast": "5×", &"speed.ultra": "12×", # HUD &"hud.tick": "Tick: {n}", # Phase 11 — in-game clock display ("{d}" = day, "{t}" = "HH:MM") &"clock.format": "Day {d}, {t}", # Pawn state labels &"pawn.state.idle": "idle", &"pawn.state.walking": "walking", # Item types (player-visible this phase) &"item.wood": "Wood", &"item.stone": "Stone", &"item.iron_ore": "Iron ore", # Item stack count badge ("{n}" is substituted at call site via .format()) &"item.stack_count": "×{n}", # Phase 6 — new item types (carpenter bench + smelter outputs) &"item.plank": "Plank", &"item.stone_block": "Stone block", # Phase 7 — food loop and cooking chain item types &"item.flour": "Flour", &"item.bread": "Bread", &"item.meal": "Meal", # Phase 7 — cooking workbench labels &"workbench.hearth": "Hearth", &"workbench.millstone": "Millstone", # Phase 7 — pawn hunger states &"pawn.state.eating": "eating", &"pawn.state.hungry": "hungry", # Phase 11 — mood thoughts (player-visible in pawn-detail, Phase 17) &"thought.in_darkness": "In darkness", # Phase 6 — quality tier labels &"quality.shoddy": "Shoddy", &"quality.normal": "Normal", &"quality.excellent": "Excellent", &"quality.masterwork": "Masterwork", &"quality.legendary": "Legendary", } func t(key: StringName) -> String: if TABLE.has(key): return TABLE[key] push_warning("Strings.t(): missing key %s" % key) return String(key)