cluster-not-found = Cluster "{ $name }" not found nccl-config-missing = NCCL config not found cluster-auto-fail = No suitable cluster found cluster-selected = ✅ Auto-selected cluster: { $name } ({ $nodes } { $nodes -> [one] node *[other] nodes }) container-log-header = 📜 Latest container logs: cluster-stopping = 🛑 Stopping cluster '{ $name }'... cluster-all-stopped = ✅ All containers stopped. cluster-section = === Cluster: { $name } === container-count = Total containers: { $count } no-sm121-containers = (no sm121 containers) docker-unavailable = ✗ Docker unavailable ssh-error = { $node } ({ $ip }): ✗ SSH error: { $error } task-join-error = ✗ Task join error: { $error } doctor-header = 🩺 Doctor: { $name } ({ $engine }) [backend: { $backend }] doctor-node-section = --- { $name } --- doctor-all-passed = ✅ All checks passed! doctor-checks-failed = ⚠ Some checks failed. Run with --repair to auto-fix. doctor-repairing = 🔧 Repairing image... doctor-repaired = ✅ Repaired image: { $tag } doctor-dry-build = (dry-run) Would build { $tag } on { $node } logs-follow-head = 📜 Following logs for '{ $name }' (head node)... logs-section = --- { $name } --- stop-failed = Stop failed on { $name }: { $error } remove-failed = Remove failed on { $name }: { $error } failed-to = Failed to { $action } on { $name }: { $error } health-section = === Cluster: { $name } === health-cluster-header = === { $name } === { $nodes } { $nodes -> [one] node *[other] nodes } health-switch-off = 🚫 switch off health-interface-down = 🌐 interface down health-all-online = ✅ all online health-partial-online = ({ $online } online, { $offline } offline) health-node-online-cluster-down = ◍ { $name } ({ $ip }){ $net } — online (cluster offline) health-free-count = — { $free } free health-cluster-down = ⏻ cluster offline health-soft-off = ⚙ { $list } off (non-blocking) health-net-status = [net: { $details }] health-no-containers = (no containers) health-no-containers-inline = , no containers health-total = Total containers: { $count } health-docker-unavailable = ✗ Docker unavailable docker-error-line = { $err } exec-header = ⚡ exec: { $cmd } ({ $nodes } { $nodes -> [one] node *[other] nodes }) exec-section = --- { $name } --- exec-failed = ✗ { $name } :: { $cmd } :: { $error } exec-completed-errors = exec completed with errors (some nodes reported failures) power-off-dryrun = dry-run: skipping actual shutdown + HA call power-off-would = would: { $action } { $target } power-off-shutdown-failed = ✗ { $name } :: { $cmd } :: { $error } power-off-waiting = ⏳ waiting { $secs }s for nodes to settle power-off-no-ha = no [home_assistant] config; OS shutdown was performed above power-off-ssh-failures = some nodes reported SSH failures during shutdown power-on-dryrun = dry-run: skipping actual HA call power-on-would-on = would: HA turn_on { $entity } power-on-would-skip = would skip: { $name } (no entity) power-on-head = 💡 power on: { $nodes } node(s) ha-invalid-entity = { $name }: invalid entity '{ $entity }': { $error } ha-call-failed = HA { $service } { $entity }: { $error } ha-skip-no-entity = ⚠ { $name }: no `entity` configured, skipping HA ha-extra-invalid = { $label } ({ $extra }): invalid entity '{ $extra }' ha-extra-failed = HA { $service } { $extra } ({ $label }): { $error } power-switch-would-off = would: HA turn_off { $entity } power-switch-would-off-extra = would: HA turn_off { $extra } (from extras) power-switch-would-on = would: HA turn_on { $entity } power-switch-would-on-extra = would: HA turn_on { $extra } (to extras) power-switch-shutdown-failed = ✗ { $name } shutdown: { $error } power-switch-waiting = ⏳ waiting { $secs }s for shutdown ha-entity-error = { $name }: entity '{ $entity }': { $error } power-switch-no-ha = no [home_assistant] config; OS shutdown was performed power-off-entity-would = would: HA turn_off { $entity } pre-serve-skip = ⏭ Skipping pre-serve hooks (--skip-before-serve) pre-serve-failed = pre-serve: node { $name } failed: { $error } pre-serve-run = { $node } ({ $tag }) :: { $cmd } pre-serve-ignored = ⚠ { $cmd } ignored: { $error } host-key-header = Discovered host keys: host-key-line = { $name } ({ $ip }) -> host_key = { $key } host-key-error = { $name } ({ $ip }) -> error: { $error } host-key-no-match = (no nodes matched) recipe-starting = 🚀 Starting recipe: { $name } ({ $engine }) [backend: { $backend }] cluster-switch-off-detected = ⚠️ Cluster switch appears to be off cluster-switch-powered-on = ✅ Cluster switch powered on cluster-waiting-for-nodes = ⏳ Waiting for nodes to become available... cluster-nodes-available = ✅ All nodes are now available cluster-nodes-not-available-timeout = ❌ Timeout waiting for nodes to become available ha-config-required-for-power-on = ❌ HA config required for power-on logs-header = 📜 Logs for cluster '{ $name }' ({ $count } nodes) engine-started = ✅ { $engine } started on { $name } (rank { $rank }) engine-start-failed = Failed to start { $engine } on { $name } (rank { $rank }): { $error } cluster-started = 🎉 Cluster started! API → http://{ $ip }:{ $port } exec-both-specified = Specify either --cluster or --recipe, not both exec-missing = Must specify either --cluster or --recipe exec-node-not-found = Node '{ $name }' not found in cluster '{ $cluster }' exec-cluster-empty = Cluster '{ $name }' has no nodes exec-cannot-use-alias = Cannot use --alias together with a trailing command exec-must-specify = Must specify either --alias or a command after `--` exec-unknown-alias-empty = Unknown alias @{ $name } (no aliases configured) exec-unknown-alias-list = Unknown alias @{ $name }; known aliases: { $aliases } mods-uploading = 📤 Uploading mods to { $node }... mods-uploaded = ✅ Mods uploaded to { $node } mods-entrypoint-required = Recipe '{ $name }' has mods but no entrypoint; entrypoint is required when mods are present power-off-container-stop-failed = ⚠️ Failed to stop containers on node { $name }: { $error} after-stop-failed = after_stop: node { $name } failed: { $error } after-stop-run = { $node } ({ $tag }) :: { $cmd } after-stop-ignored = ⚠ { $cmd } ignored: { $error } solo-node-selected = 🎯 Solo: selected node { $name } in cluster { $cluster } # --- Strings that previously bypassed the i18n system (hardcoded) --- boot-wait = ⏳ Waiting { $secs }s for nodes to boot... doctor-found-repaired = 🩺 Found repaired image: { $tag } tmux-waiting-head = ⏳ Waiting for head node to be ready... tmux-head-ready = ✅ Head node ready. Starting worker nodes... tmux-head-api-ready = Head node API ready (attempt { $attempt }) tmux-session-started = ✅ Session started on { $name } tmux-stopped = ✅ Stopped '{ $sess }' on { $name } tmux-all-stopped = ✅ All tmux sessions stopped. tmux-all-ok = ✅ ALL OK tmux-issues = ⚠️ { $issues } tmux-cluster-healthy = ✅ Cluster is healthy! tmux-node-section = --- { $name } ({ $sess }) --- tmux-node-no-output = --- { $name } — no output --- tmux-session-created = ✅ tmux session created on { $name } tmux-no-pty = (russh does not support interactive PTY. Use the following command directly:) sync-digest-match = '{ $name }' OK (digest matches) sync-syncing = { $name } ({ $ip }): syncing... sync-synced = { $name } OK health-node-offline = ✗ { $name } ({ $ip }) — offline health-node-idle = ○ { $name } ({ $ip }){ $net } health-node-online = ● { $name } ({ $ip }){ $net } health-container-count = , { $count } { $count -> [one] container *[other] containers } power-off-head = 🛑 power off: { $nodes } node(s) — sudo shutdown now power-switch-head = 🔌 switch: { $from } → { $to } ({ $nodes } node(s) + { $entities } entity(ies) to disable) power-switch-powering-on = 💡 switch: powering on { $nodes } node(s) + { $entities } entity(ies) to { $to } health-task-join = task join: { $error } health-no-recipes = No sm121 containers running. health-running-recipes = Running recipes: health-recipe-line = { $recipe } — { $nodes } { $nodes -> [one] node *[other] nodes }: { $list } tmux-ray-backend = 🐍 Ray backend detected — starting head node first... tmux-mp-backend = 🔗 MP backend detected — starting all nodes in parallel... tmux-following-logs = 📜 Following logs from '{ $sess }' on { $name }... tmux-deploy-ignored-opts = ⚠️ tmux deploy: ignoring Docker-only CLI opts: { $opts } tmux-mods-unsupported = Recipe '{ $name }' uses [mods], which is Docker-only. tmux deployment does not support mods. tmux-composed-model-unsupported = Recipe '{ $name }' uses [composed_model], which is Docker-only. tmux deployment does not support composed model directories. tmux-health-section = Tmux: tmux-health-entry-running = { $recipe } — { $node }: running (API: { $api }) tmux-health-entry-degraded = { $recipe } — { $node }: degraded (session exists, process dead) tmux-health-entry-stopped = { $recipe } — { $node }: stopped tmux-health-all-stopped = { $count -> [one] { $count } tmux recipe configured, all stopped *[other] { $count } tmux recipes configured, all stopped } tmux-api-ok = 200 tmux-api-down = down venv-preparing = 🔧 Preparing venv: { $venv } venv-exists = ✓ venv already exists on { $name } venv-creating = venv not found on { $name } — creating... venv-created = ✓ venv created successfully on { $name } venv-prepare-failed = venv prepare: node { $name } failed: { $error } venv-not-created = venv was not created successfully on { $name } — setup commands ran but activate script is missing composed-dir-dry-run = [dry-run] would build composed model dir '{ $host }' on '{ $node }' (mount: { $mount }, { $sources } { $sources -> [one] source *[other] sources }, { $files } { $files -> [one] file *[other] files }) composed-dir-built = Built composed model dir '{ $host }' on '{ $node }' ({ $sources } { $sources -> [one] source *[other] sources }, { $files } { $files -> [one] file *[other] files })