{
  "meta": {
    "product": "Henri Family 2.0",
    "artifact": "ui_dictionary",
    "generated_by": "scripts/generate_i18n.py",
    "generated_at": "2026-04-26T15:03:43Z",
    "notes": "UI chrome only. Do not translate English lesson exercise content unless a string is intentionally listed here.",
    "language": "en",
    "source": "app/i18n-source.en.json"
  },
  "provenance": {
    "provider": "source"
  },
  "strings": {
    "LIVE": "LIVE",
    "ON AIR": "ON AIR",
    "Air timer deck": "Air timer deck",
    "AIR timer deck": "AIR timer deck",
    "Time left": "Time left",
    "Start or pause the timer": "Start or pause the timer",
    "Time adjustment": "Time adjustment",
    "Tap clock to start / pause": "Tap clock to start / pause",
    "Move stack": "Move stack",
    "Student board": "Student board",
    "Teacher cue": "Teacher cue",
    "Look for": "Look for",
    "Student action": "Student action",
    "Teacher line": "Teacher line",
    "Support line": "Support line",
    "Preview and move stack": "Preview and move stack",
    "Support panel": "Support panel",
    "Production switcher controls": "Production switcher controls",
    "Compact timing controls": "Compact timing controls",
    "Support panels": "Support panels",
    "Control groups": "Control groups",
    "Lesson steps": "Lesson steps",
    "Now": "Now",
    "Say": "Say",
    "Help": "Help",
    "Run": "Run",
    "More": "More",
    "Back": "Back",
    "Start": "Start",
    "Pause": "Pause",
    "Resume": "Resume",
    "Next move": "Next move",
    "Next": "Next",
    "Move on": "Move on",
    "Wrap": "Wrap",
    "Board": "Board",
    "Watch": "Watch",
    "Watch for": "Watch for",
    "Materials": "Materials",
    "Demo": "Demo",
    "Copy link": "Copy link",
    "Copied": "Copied",
    "Student": "Student",
    "Settings": "Settings",
    "Other": "Other",
    "Reset": "Reset",
    "Reset defaults": "Reset defaults",
    "Save": "Save",
    "Saving": "Saving",
    "Saved": "Saved",
    "Try again": "Try again",
    "-1 min": "-1 min",
    "+1 min": "+1 min",
    "Sync": "Sync",
    "Local only": "Local only",
    "Waiting": "Waiting",
    "Waiting for teacher": "Waiting for teacher",
    "Live from teacher view": "Live from teacher view",
    "Synced from teacher view": "Synced from teacher view",
    "Class board": "Class board",
    "Sentence frame": "Sentence frame",
    "Next round": "Next round",
    "Next step": "Next step",
    "Step {{current}} of {{total}}": "Step {{current}} of {{total}}",
    "Step {{current}}: {{title}}": "Step {{current}}: {{title}}",
    "Tap to continue": "Tap to continue",
    "Tap anywhere to begin - auto starts in {{seconds}} seconds": "Tap anywhere to begin - auto starts in {{seconds}} seconds",
    "Wrap now": "Wrap now",
    "Ask one pair, then move.": "Ask one pair, then move.",
    "Timer": "Timer",
    "Time check": "Time check",
    "Paused": "Paused",
    "Start when the room is ready.": "Start when the room is ready.",
    "Overtime {{time}}": "Overtime {{time}}",
    "Borrowing from the next step. Move on or compress.": "Borrowing from the next step. Move on or compress.",
    "Finish in 10s": "Finish in 10s",
    "This appears early. When it clears, 10 seconds remain. Say the final line and tap Next.": "This appears early. When it clears, 10 seconds remain. Say the final line and tap Next.",
    "Wrap soon": "Wrap soon",
    "Wrap in 30s": "Wrap in 30s",
    "This appears early. When it clears, 30 seconds remain. Ask one pair, then move.": "This appears early. When it clears, 30 seconds remain. Ask one pair, then move.",
    "Next move soon": "Next move soon",
    "Check pace": "Check pace",
    "This stays for {{seconds}} seconds. If most students have spoken, tap Move.": "This stays for {{seconds}} seconds. If most students have spoken, tap Move.",
    "This stays for {{durationSeconds}} seconds. If most students have spoken, tap Move.": "This stays for {{durationSeconds}} seconds. If most students have spoken, tap Move.",
    "On pace": "On pace",
    "Keep rhythm": "Keep rhythm",
    "Short prompt. Student talk. Move.": "Short prompt. Student talk. Move.",
    "{{time}} lesson": "{{time}} lesson",
    "{{time}} planned lesson time": "{{time}} planned lesson time",
    "{{time}} to class": "{{time}} to class",
    "{{time}} class": "{{time}} class",
    "Class period {{start}}-{{end}}; inferred {{status}} from the wall clock.": "Class period {{start}}-{{end}}; inferred {{status}} from the wall clock.",
    "{{count}} screen": "{{count}} screen",
    "{{count}} screens": "{{count}} screens",
    "Finish": "Finish",
    "Finish and collect evidence": "Finish and collect evidence",
    "Finish and collect evidence.": "Finish and collect evidence.",
    "Collect evidence and close the loop.": "Collect evidence and close the loop.",
    "Student screen link": "Student screen link",
    "Next section: {{text}}": "Next section: {{text}}",
    "Frame: {{text}}": "Frame: {{text}}",
    "Recovery: {{text}}": "Recovery: {{text}}",
    "Check room and screens": "Check room and screens",
    "Confirm the room code and connected screen count before class starts.": "Confirm the room code and connected screen count before class starts.",
    "Start the section": "Start the section",
    "Start shows the section card first, then begins the countdown when Henri taps through.": "Start shows the section card first, then begins the countdown when Henri taps through.",
    "Watch the clock": "Watch the clock",
    "The broadcast clock and dot rings keep urgency visible without asking Henri to calculate time.": "The broadcast clock and dot rings keep urgency visible without asking Henri to calculate time.",
    "Teach from NOW": "Teach from NOW",
    "Use the NOW, SAY, and HELP rails as the live classroom script.": "Use the NOW, SAY, and HELP rails as the live classroom script.",
    "Swap weak content": "Swap weak content",
    "Other moves to the next labelled suggestion; the small left button goes back.": "Other moves to the next labelled suggestion; the small left button goes back.",
    "Next move inside the section": "Next move inside the section",
    "Next move advances Write to Pair to Ask without leaving the current lesson section.": "Next move advances Write to Pair to Ask without leaving the current lesson section.",
    "Jump inside the move stack": "Jump inside the move stack",
    "When paused, tap a move row to jump back or forward inside this section.": "When paused, tap a move row to jump back or forward inside this section.",
    "Open teacher notes": "Open teacher notes",
    "Board, Watch, and Materials open the big support panel. Tap the same button again to hide it.": "Board, Watch, and Materials open the big support panel. Tap the same button again to hide it.",
    "Close or advance": "Close or advance",
    "Wrap closes the current section quickly. Next starts the next section card.": "Wrap closes the current section quickly. Next starts the next section card.",
    "Timeline is for pauses": "Timeline is for pauses",
    "While running, future sections are locked. Pause first when Henri needs to jump ahead.": "While running, future sections are locked. Pause first when Henri needs to jump ahead.",
    "More tools and settings": "More tools and settings",
    "More holds Demo, copy link, Student, and Settings. Student mirrors the classroom screen.": "More holds Demo, copy link, Student, and Settings. Student mirrors the classroom screen.",
    "Demo {{current}} of {{total}}": "Demo {{current}} of {{total}}",
    "Teacher Settings": "Teacher Settings",
    "Family 2.0 Controls": "Family 2.0 Controls",
    "Family 2.0 controls": "Family 2.0 controls",
    "Back to teacher": "Back to teacher",
    "Full-screen Messages": "Full-screen Messages",
    "Choose which broadcast-style classroom cards appear, and how long they stay on screen.": "Choose which broadcast-style classroom cards appear, and how long they stay on screen.",
    "Messages": "Messages",
    "Display": "Display",
    "Language": "Language",
    "Timing": "Timing",
    "Buttons": "Buttons",
    "Section start cards": "Section start cards",
    "Show a full-screen card before each new lesson section.": "Show a full-screen card before each new lesson section.",
    "Auto-start after": "Auto-start after",
    "Auto-start delay": "Auto-start delay",
    "A full-screen phrase card appears before the timer starts.": "A full-screen phrase card appears before the timer starts.",
    "Timer warnings": "Timer warnings",
    "Full-screen warning cards appear before a timer cue. The warning lasts this long, so an 8 sec warning begins with 8 sec remaining.": "Full-screen warning cards appear before a timer cue. The warning lasts this long, so an 8 sec warning begins with 8 sec remaining.",
    "Wrap, move-on, pace-check, and overtime warnings appear early enough to clear before the named time remains.": "Wrap, move-on, pace-check, and overtime warnings appear early enough to clear before the named time remains.",
    "Automatic warning cards": "Automatic warning cards",
    "Show all automatic warning cards": "Show all automatic warning cards",
    "Each warning can also be tuned below. Cards start early enough that the full message clears before the named time remains.": "Each warning can also be tuned below. Cards start early enough that the full message clears before the named time remains.",
    "Default card length": "Default card length",
    "Changing this sets the fallback length for every warning card.": "Changing this sets the fallback length for every warning card.",
    "Overtime": "Overtime",
    "Show": "Show",
    "Card length": "Card length",
    "Title template": "Title template",
    "Message template": "Message template",
    "Move soon": "Move soon",
    "When this much remains": "When this much remains",
    "Pace check": "Pace check",
    "After this much of the step": "After this much of the step",
    "Warning length": "Warning length",
    "Warning card length": "Warning card length",
    "Next move flashes": "Next move flashes",
    "Flash a full-screen nudge when Henri advances inside a section.": "Flash a full-screen nudge when Henri advances inside a section.",
    "Flash length": "Flash length",
    "Wrap flashes": "Wrap flashes",
    "Flash a full-screen wrap-up nudge when Henri taps Wrap.": "Flash a full-screen wrap-up nudge when Henri taps Wrap.",
    "Pace pulse": "Pace pulse",
    "Optional full-screen urgency pulse every few minutes. Default is off.": "Optional full-screen urgency pulse every few minutes. Default is off.",
    "Default is off. When enabled, it flashes the remaining time at a chosen interval.": "Default is off. When enabled, it flashes the remaining time at a chosen interval.",
    "Pulse every": "Pulse every",
    "Every 1 minute": "Every 1 minute",
    "Pulse length": "Pulse length",
    "Pace message": "Pace message",
    "Keep the room moving": "Keep the room moving",
    "Good for iPad use when the teacher naturally reaches for the clock.": "Good for iPad use when the teacher naturally reaches for the clock.",
    "Student screen theme": "Student screen theme",
    "Dark studio": "Dark studio",
    "Light classroom": "Light classroom",
    "Saved on the server for the room; any open student board refreshes its theme automatically.": "Saved on the server for the room; any open student board refreshes its theme automatically.",
    "Interface language": "Interface language",
    "Browser language": "Browser language",
    "English": "English",
    "French": "French",
    "Defaults to the browser language. Use this to force Henri's controls to English or French on any device.": "Defaults to the browser language. Use this to force Henri's controls to English or French on any device.",
    "Language and dictionaries": "Language and dictionaries",
    "UI chrome dictionaries": "UI chrome dictionaries",
    "Inspectable JSON files for English and French UI chrome. Lesson exercises stay in English unless we intentionally add them here.": "Inspectable JSON files for English and French UI chrome. Lesson exercises stay in English unless we intentionally add them here.",
    "English dictionary": "English dictionary",
    "French dictionary": "French dictionary",
    "Lesson timing": "Lesson timing",
    "Show lesson-period countdown": "Show lesson-period countdown",
    "Default is on. The teacher header uses the school period clock while the big clock stays on the current activity.": "Default is on. The teacher header uses the school period clock while the big clock stays on the current activity.",
    "Lesson length": "Lesson length",
    "Starts at": "Starts at",
    "Top of the hour": "Top of the hour",
    "5 past": "5 past",
    "10 past": "10 past",
    "15 past": "15 past",
    "Early setup window": "Early setup window",
    "No early window": "No early window",
    "5 minutes before": "5 minutes before",
    "10 minutes before": "10 minutes before",
    "Late iPad pickup": "Late iPad pickup",
    "15 minutes after": "15 minutes after",
    "30 minutes after": "30 minutes after",
    "Until class ends": "Until class ends",
    "With the defaults, opening at 2:25 infers a 2:00-2:45 class period. Opening at 1:57 prepares the 2:00 period.": "With the defaults, opening at 2:25 infers a 2:00-2:45 class period. Opening at 1:57 prepares the 2:00 period.",
    "Run deck": "Run deck",
    "Run deck button labels": "Run deck button labels",
    "Rename the visible button text without changing what each control does.": "Rename the visible button text without changing what each control does.",
    "Utility buttons": "Utility buttons",
    "Utility button labels": "Utility button labels",
    "Timer buttons": "Timer buttons",
    "Timer button labels": "Timer button labels",
    "Button preview": "Button preview",
    "Current State": "Current State",
    "These settings save to the room so the teacher screen can load them on any device.": "These settings save to the room so the teacher screen can load them on any device.",
    "Pace messages off": "Pace messages off",
    "Full-screen pace messages are disabled.": "Full-screen pace messages are disabled.",
    "Saved on server for room {{room}}. Open teacher view in the same room to use these settings.": "Saved on server for room {{room}}. Open teacher view in the same room to use these settings.",
    "Server settings unavailable for room {{room}}. Showing defaults; changes will save only when the server accepts them.": "Server settings unavailable for room {{room}}. Showing defaults; changes will save only when the server accepts them.",
    "Saved on server for room {{room}}.": "Saved on server for room {{room}}.",
    "Could not reach the server. Nothing was saved in this browser; try again when sync is back.": "Could not reach the server. Nothing was saved in this browser; try again when sync is back.",
    "{{enabled}}/5 message groups on": "{{enabled}}/5 message groups on",
    "Pace pulse every {{minutes}} min for {{seconds}} sec.": "Pace pulse every {{minutes}} min for {{seconds}} sec.",
    "Pace pulse off.": "Pace pulse off.",
    "{{duration}} min classes from :{{minute}}; late pickup {{late}} min.": "{{duration}} min classes from :{{minute}}; late pickup {{late}} min.",
    "Class-period clock off.": "Class-period clock off.",
    "Section cards {{section}} ({{seconds}}s). Timer warnings {{timer}} ({{warningSeconds}}s). Next move {{move}}, Wrap {{wrap}}. Student board {{theme}}. {{pace}} {{period}}": "Section cards {{section}} ({{seconds}}s). Timer warnings {{timer}} ({{warningSeconds}}s). Next move {{move}}, Wrap {{wrap}}. Student board {{theme}}. {{pace}} {{period}}",
    "Section cards {{section}} ({{seconds}}s). Automatic warnings {{timer}} ({{warningCount}}/4 cards). Next move {{move}}, Wrap {{wrap}}. Student board {{theme}}. {{pace}} {{period}}": "Section cards {{section}} ({{seconds}}s). Automatic warnings {{timer}} ({{warningCount}}/4 cards). Next move {{move}}, Wrap {{wrap}}. Student board {{theme}}. {{pace}} {{period}}",
    "on": "on",
    "off": "off",
    "dark": "dark",
    "light": "light",
    "Replays": "Replays",
    "Prior lesson replays": "Prior lesson replays",
    "Recorded lesson runs for this room. No student names or typed student answers are stored.": "Recorded lesson runs for this room. No student names or typed student answers are stored.",
    "Refresh replays": "Refresh replays",
    "No replays yet": "No replays yet",
    "Open replay": "Open replay",
    "Replay": "Replay",
    "Lesson replay": "Lesson replay",
    "Event timeline": "Event timeline",
    "Manual extensions": "Manual extensions",
    "Pauses": "Pauses",
    "Late pickup": "Late pickup",
    "Events": "Events",
    "Telemetry": "Telemetry",
    "Record lesson telemetry": "Record lesson telemetry",
    "Operational replay only: controls, timing, section and cue changes. Student names and typed answers are not recorded.": "Operational replay only: controls, timing, section and cue changes. Student names and typed answers are not recorded.",
    "Keep replays for": "Keep replays for",
    "60 days": "60 days",
    "90 days": "90 days",
    "180 days": "180 days",
    "365 days": "365 days",
    "Show HENRI core + buffer": "Show HENRI core + buffer",
    "Shows the planned HENRI runtime inside the bell-to-bell period, leaving the difference for settling, copying, homework, transitions, and tech.": "Shows the planned HENRI runtime inside the bell-to-bell period, leaving the difference for settling, copying, homework, transitions, and tech.",
    "Class period length": "Class period length",
    "{{core}} HENRI + {{buffer}} buffer": "{{core}} HENRI + {{buffer}} buffer",
    "{{core}} HENRI / {{class}} class": "{{core}} HENRI / {{class}} class",
    "Class period {{start}}-{{end}}; {{clock}}": "Class period {{start}}-{{end}}; {{clock}}",
    "{{duration}} min classes from :{{minute}}; header shows HENRI core plus buffer. Late pickup {{late}} min.": "{{duration}} min classes from :{{minute}}; header shows HENRI core plus buffer. Late pickup {{late}} min.",
    "{{time}} left in class": "{{time}} left in class"
  }
}
