{"os.ok":"OK","os.cancel":"Cancel","os.close":"Close","os.done":"Done","os.save":"Save","os.copy":"Copy","os.copied":"Copied","os.error":"Error","os.none":"none","os.never":"never","os.loading":"Loading…","os.yes":"yes","os.no":"no","units.b":"{n} B","units.kib":"{n} KiB","units.mib":"{n} MiB","units.gib":"{n} GiB","units.gibs":"{n} GiB·s","shell.title.connecting":"sys0 (connecting…)","shell.title.disconnected":"sys0 (disconnected)","shell.title.starting":"sys0 (starting…)","shell.title.updating":"sys0 (updating…)","shell.still-loading":"{instance} is still loading","shell.folder.not-text":"{name} is not text ({size}), so there is no preview of it.","shell.folder.start-of":"(the start of it: {size} in all)","shell.apps":"Apps","shell.window.draft":"{name} (draft)","shell.window.with":"{name} with {who}","shell.talk.title":"Chat with {who}","shell.talk.tab":"Chat","shell.talk.back":"Back","shell.talk.back-to":"Back to {name}","shell.talk.hint":"This game's chat: its players, and anyone let into it","shell.save-as.title":"Save As a New App","shell.save-as.name":"Name","shell.save-as.id":"Id","shell.save-as.copy":"{name} Copy","shell.menubar.launcher":"Launcher","shell.menubar.launcher-hint":"Launcher (⌘K)","shell.menubar.chat-hint":"Toggle dev mode (⌘⇧D / Ctrl+Shift+D)","shell.menubar.chat":"Dev mode","shell.menubar.share-hint":"Share this window","shell.menubar.share":"Share","shell.menubar.affordances-hint":"Hide affordances (⌘⇧.)","shell.menubar.voice-hint":"Speak commands to sys0","shell.menubar.voice":"Voice","shell.settings.app-title":"{name} Settings","shell.settings.appearance":"Appearance","shell.window.close":"Close","shell.ask.store":"Save","shell.ask.title":"{app} needs to sign in to {host}","shell.ask.where":"sys0 keeps what you enter locked away and sends it only to {host}. {app} itself never sees it.","shell.ask.subject":"Sent only to","shell.ask.why":"Why it’s needed","shell.ask.missing":"Enter {fields}.","shell.connect.open":"Open the sign-in page","shell.connect.working":"Working…","shell.connect.finish":"Finish","shell.connect.missing":"Paste what you were shown first.","shell.connect.error-expired":"That sign-in expired. Sign in again.","shell.connect.error-refused":"The sign-in was refused. Sign in again.","shell.connect.error-denied":"You did not allow the sign-in. Sign in again if you want to connect.","shell.connect.error-failed":"The sign-in did not complete. Sign in again.","shell.connect.error-exchange":"The sign-in was not accepted. Sign in again.","shell.connect.claude.title":"Connect your Claude subscription","shell.connect.claude.about":"Claude Code, in Paseo, will use your Claude subscription. sys0 keeps the sign-in in its vault and sends it only to Anthropic, for the apps you allow; they never see it.","shell.connect.claude.sign-in":"Sign in with Claude","shell.connect.claude.waiting":"Sign in with Claude in the tab that opened. It then shows a code: paste it here.","shell.connect.claude.paste":"Paste the code Claude shows","shell.connect.claude.blocked":"Your browser blocked the sign-in tab.","shell.connect.google.title":"Connect Google","shell.connect.google.about":"sys0 will sign in to your Google account, keep the sign-in in its vault, and send it only to Google, for the apps you allow; they never see it.","shell.connect.google.unverified":"Google may warn that sys0 is not verified. Choose Advanced, then Go to sys0.","shell.connect.google.sign-in":"Sign in with Google","shell.connect.google.waiting":"Waiting for Google…","shell.connect.google.paste":"If the sign-in tab ends on a page that cannot be reached, paste its address here:","shell.connect.google.address":"Address","shell.connect.google.blocked":"Your browser blocked the sign-in tab.","connect.done":"sys0 is connected to {name} as {account}. You can close this tab.","connect.already":"sys0 is already connected to {name} as {account}. You can close this tab.","connect.failed":"The {name} sign-in did not complete: {reason}. Close this tab and sign in again.","connect.expired":"This {name} sign-in has expired. Close this tab and sign in again.","shell.share.locked":"Locked","shell.share.follow-pointer":"Follow us, with our pointer","shell.share.follow":"Follow us","shell.share.own":"Their own view","shell.share.shared":"One shared view","shell.share.link":"Share link","shell.share.link-once":"Link · shown only now","shell.share.qr":"QR code for this link: scan it to open the share on a phone","shell.share.now":"Shared now","shell.share.stop":"Stop sharing","shell.share.row":"Since {since} · {n, plural, one {# viewer} other {# viewers}}","shell.share.create":"Create share","shell.share.title":"Share {name}","shell.share.default-name":"{name} share","shell.share.edit":"Edit","shell.share.cancel-edit":"Cancel edit","shell.share.name":"Name","shell.share.start":"Start from","shell.share.edit-title":"Edit “{name}”","shell.share.editing":"Editing “{name}”. Its link stays the same.","shell.share.save":"Save changes","shell.share.name-missing":"Name the share before saving it.","shell.settings.title":"sys0 Settings","shell.settings.theme":"Theme","shell.settings.language":"Language","shell.settings.time-zone":"Time Zone","shell.settings.time-zone-label":"Time zone","shell.settings.time-zone-automatic":"Automatic (device time zone)","shell.settings.time-zone-about":"Used for the desktop clock and system timestamps. Your choice follows you across devices.","shell.settings.time-zone-saving":"Saving…","shell.settings.time-zone-saved":"Time zone saved.","shell.settings.speech":"Speech","shell.settings.speech-parakeet":"Parakeet (NVIDIA, Hex's model; most accurate, about 660 MB on first use)","shell.settings.speech-moonshine":"Moonshine (smaller, about 305 MB on first use)","shell.settings.speech-saving":"Saving…","shell.settings.speech-saved":"Speech model saved. It is used the next time the microphone opens.","shell.settings.affordances":"Affordances","shell.settings.affordances-show":"Show what can be pressed, typed in, dragged or resized","shell.settings.motion":"Motion","shell.settings.motion-none":"None: nothing moves or fades","shell.settings.motion-low":"Low: minimal feedback, without travel","shell.settings.motion-medium":"Medium: quick motion where it shows what happened","shell.settings.motion-high":"High: windows and messages also arrive and leave with motion","shell.settings.motion-about":"Applies at once, to the desktop and every app. While this device is set to reduce motion, nothing moves, whatever is chosen here.","shell.settings.sounds":"Sounds","shell.settings.sounds-play":"Play sounds","shell.settings.sounds-typing":"Also when typing","shell.settings.sounds-volume":"Volume","shell.settings.wallpaper-theme":"The theme's own","shell.settings.colors":"Colours","shell.settings.colors-own":"Default","shell.settings.wallpaper-live":"{name} (live)","shell.settings.wallpaper-once":"{name} (one-shot)","shell.settings.wallpaper-play-once":"Play once","shell.settings.wallpaper-start-live":"Start live wallpaper","shell.settings.wallpaper":"Wallpaper","shell.settings.wallpaper-picture":"Picture","shell.settings.wallpaper-about":"Live wallpapers loop automatically, unless Motion is None or this device reduces motion. Control–Option–W plays a one-shot animation or starts a stopped live wallpaper. Escape returns to the still.","shell.settings.people":"People","shell.settings.people-person":"Person","shell.settings.people-you":"{name} (you)","shell.settings.people-joined":"Joined {date}","shell.settings.people-account":"Account","shell.settings.people-name":"Name","shell.settings.people-email":"Email","shell.settings.people-phone":"Phone","shell.settings.people-band":"What they may do","shell.settings.people-band-about":"An account is a band with a name: what someone may do is their band, and nothing else. Two people with the same band can do exactly the same things.","shell.settings.people-by-hand":"This band was written by hand and says more than this form shows. Saving the form replaces it with what the form says.","shell.settings.people-admin":"Admin: every app, and these settings","shell.settings.people-admin-apps":"An admin uses every app.","shell.settings.people-usd":"Monthly spend","shell.settings.people-tokens":"Monthly tokens","shell.settings.people-no-limit":"No limit","shell.settings.people-unlimited":"no limit","shell.settings.people-spent":"This month: {used} spent of {cap}, {tokens} tokens of {tokenCap}, in {calls} model requests.","shell.settings.people-models":"Models","shell.settings.people-models-all":"Every model, now and later","shell.settings.people-save-band":"Save what they may do","shell.settings.people-band-raw-title":"The band itself, as JSON","shell.settings.people-band-raw-about":"What they may do, as sys0 keeps it. sys0 checks it when it is saved and points at what it refuses.","shell.settings.people-band-raw":"{name}'s band","shell.settings.people-band-line":"Line {line}: {error}","shell.settings.people-save-raw":"Save band","shell.settings.people-invite-admin":"As an admin, with every app","shell.settings.people-machine":"sys0's own work this month, begun by nobody's desktop: {used}, {tokens} tokens, in {calls} model requests.","shell.settings.people-apps-about":"Use: they open it, act in it and change its data, shared with everyone who uses it. Watch: they see it and its data, and change nothing.","shell.settings.people-app":"App","shell.settings.people-access":"Access","shell.settings.people-app-off":"No access","shell.settings.people-app-watch":"Watch","shell.settings.people-app-use":"Use","shell.settings.people-all-use":"Use all","shell.settings.people-none":"None","shell.settings.people-save":"Save changes","shell.settings.people-saved":"Saved.","shell.settings.people-password":"Password","shell.settings.people-new-password":"New password","shell.settings.people-password-length":"At least 8 characters","shell.settings.people-set-password":"Set password","shell.settings.people-password-set":"{name}'s password is changed.","shell.settings.people-invite-title":"Invite someone","shell.settings.people-invite-about":"A link that lets one person join. It is shown once, works once and lasts 14 days. They start with no models and no budget.","shell.settings.people-invite":"Make invite link","shell.settings.people-open-as-title":"Open as {name}","shell.settings.people-open-as-about":"A link that signs a browser in as {name}, to use sys0 as they see it. It works once, for 10 minutes. Open it in a private window to stay signed in here as yourself.","shell.settings.people-open-as":"Make link","shell.settings.people-open-as-link":"Link to use sys0 as {name}","shell.settings.people-invite-link":"Invite link","shell.soundtrack.title":"Soundtrack","shell.window.flip":"Flip","shell.window.geometry":"Window geometry","shell.window.flip-hint":"Flip (⌘⇧B)","shell.folder.places":"Places","shell.folder.files-on":"Files on {name}","shell.folder.preview":"Preview","shell.folder.choose":"Choose a file to see it.","shell.folder.empty":"{name} is empty.","shell.launcher.apps":"Apps","shell.launcher.apps-what":"Open the Apps folder: every app, and every drive's files (⌘E)","shell.launcher.settings":"Settings","shell.launcher.settings-what":"Choose the theme and the language sys0 is drawn in, and its sounds","shell.launcher.theme":"Theme: {name}","shell.launcher.theme-current":"The current theme","shell.launcher.theme-what":"Draw sys0 in this theme","shell.launcher.language":"Language: {name}","shell.launcher.language-current":"The current language","shell.launcher.language-what":"Show sys0 in this language","shell.launcher.dictation":"Dictation","shell.launcher.dictation-stop":"Stop dictating","shell.launcher.dictation-what":"Speak, and the words are typed where the focus is (Control twice)","shell.launcher.chat":"Chat","shell.launcher.chat-undock":"Undock {name}'s chat","shell.launcher.chat-what":"Chat with {name}: drive it, change it, save it","shell.launcher.share-sys0":"Share sys0","shell.launcher.share-sys0-what":"Share the whole desktop to watch, live, from a link","shell.launcher.share":"Share","shell.launcher.share-what":"Share {name} to watch, live, from a link","shell.launcher.activity":"Activity","shell.launcher.activity-what":"Everything running now, on every host, and what it costs","shell.launcher.costs":"Costs","shell.launcher.costs-what":"What everything costs, now and over time, by app and by provider","shell.about.build":"Build {hash}","shell.launcher.about":"About sys0","shell.launcher.about-what":"Its version and content address","shell.launcher.close-all":"Close All Windows","shell.launcher.close-all-what":"Every instance keeps its state","shell.launcher.search-placeholder":"Search apps and commands…","shell.launcher.search":"Search apps and commands","shell.launcher.results":"Results","shell.launcher.key-move":"Move","shell.launcher.key-open":"Open","shell.launcher.key-close":"Close","shell.launcher.section-apps":"Apps","shell.launcher.section-commands":"Commands","shell.launcher.none":"No results","shell.launcher.shortcuts":"Keyboard Shortcuts","shell.launcher.shortcuts-what":"Show current keyboard commands (⌘/ or Ctrl+/)","shell.launcher.affordances-hide":"Hide Affordances","shell.launcher.affordances-hide-what":"Stop drawing where things are pressed, typed into, dragged and resized (⌘⇧.)","shell.launcher.affordances-show":"Show Affordances","shell.launcher.affordances-show-what":"Draw where everything is pressed, typed into, dragged or resized, over it (⌘⇧.)","shell.launcher.voice":"Voice mode","shell.launcher.voice-what":"Speak commands to sys0 — listen continuously and act","shell.launcher.voice-spec":"Voice Spec Mode","shell.launcher.voice-spec-what":"Talk about {name}'s spec, full screen: only the spec changes until you implement it","shell.launcher.spec-editor":"Spec Editor","shell.launcher.spec-editor-what":"Read and write {name}'s specs as one outline; each commit is implemented by a new T3 Code thread","shell.launcher.sounds-off":"Sounds: Off","shell.launcher.sounds-off-what":"Stop the theme's sounds","shell.launcher.sounds-on":"Sounds: On","shell.launcher.sounds-on-what":"Hear the theme's sounds as you use sys0","shell.launcher.browser-host":"Host sys0 in a browser","shell.launcher.browser-host-what":"Let another computer lend isolated browser workers to sys0, from a password-free link","shell.launcher.share-hosts":"Share Hosts","shell.launcher.share-hosts-what":"Lend this sys0's hosts to another sys0, from a link","shell.launcher.hold-hosts":"Use Shared Hosts","shell.launcher.hold-hosts-what":"Run on the hosts another sys0 lends, from its link","shell.launcher.assemble":"Assemble {name}","shell.launcher.assemble-what":"Put {name}'s view back together (⌘⇧E)","shell.launcher.explode":"Explode {name}","shell.launcher.explode-what":"Pull {name}'s view apart, a degree of embeddedness at a step, every template labelled (⌘⇧E)","shell.back.events":"{n, plural, one {# event} other {# events}}, newest last","shell.back.place":"Its view's place","shell.back.section":"Section","shell.back.tab-use":"APIs","back.apis.intro":"Use {instance} from an agent, a terminal or an HTTP client. Each uses your account’s permissions.","back.apis.mcp":"MCP","back.apis.mcp.intro":"Sign in with s0 as shown below, then add this server to your MCP client’s configuration:","back.apis.mcp.call":"Send these tools/call parameters to read this instance’s state. Action tools also take input with the method’s fields:","back.apis.mcp.http":"Streamable HTTP endpoint (POST; requires an authenticated sys0 session):","back.apis.cli":"s0 CLI","back.apis.cli.intro":"Install s0 with the sys0 backend installer. Sign in once, then read this instance or call a method. Replace the placeholders with your username, method and JSON input:","back.apis.cli.result":"The CLI prints the result’s value. Add -t to include success, errors and the call trace.","back.apis.rest":"REST API","back.apis.rest.login":"Sign in to save a session cookie. Replace the username and password placeholders with your own:","back.apis.rest.read":"Read this instance’s state (use data or ui for its other reads):","back.apis.rest.call":"Call a method with POST. Replace <method> and <input JSON> using the method forms below; use an empty JSON object when no input is needed:","back.apis.rest.result":"REST returns a banded result with ok, value or error, and trace. HTTP status reflects whether the call succeeded.","back.apis.rest.reference":"Open REST API reference","back.apis.try":"Try methods","back.apis.try.intro":"These forms call this same instance. Their field names and input shapes apply to MCP, s0 and REST.","shell.back.tab-state":"State","shell.back.tab-definition":"Definition","shell.back.tab-resources":"Resources & Costs","shell.back.tab-access":"Access","shell.back.tab-log":"Log","shell.back.tab-spec":"Spec","shell.back.tab-vars":"Vars","shell.back.tab-schemas":"Schemas","shell.back.select":"Select an item.","shell.back.class":"Class","shell.back.file":"{path}  ({n, plural, one {# byte} other {# bytes}})","shell.back.instance":"Instance {hash}","shell.back.state":"state","shell.back.data":"data","shell.back.traces":"Traces ({n})","shell.back.traces-all":"show all","shell.back.traces-none":"none yet","shell.back.tab-rendering":"Rendering","shell.back.tab-data":"Data","shell.back.explode-hint":"Pull its view apart, a degree of embeddedness at a step (⌘⇧E)","shell.back.explode":"Explode","shell.back.show-exploded-hint":"Pull its view apart to the first part {path} makes, and choose it","shell.back.show-exploded":"Show exploded","shell.back.pulled-apart":"Pulled apart","shell.connection.connecting":"Connecting to sys0…","shell.connection.disconnected":"Disconnected from sys0 — retrying…","shell.connection.starting":"sys0 is starting…","shell.desktop.lost":"sys0 no longer had this tab’s desktop, so this is a copy of your saved one.","shell.connection.updating":"sys0 was updated and this page has to reload. It will when you pause, or in {seconds} seconds. What you typed in a window is kept.","shell.wallpaper.title":"Wallpaper","shell.voice.title":"Agent0 · Voice","shell.report.frame-placeholder":"This window did not draw itself in time.","shell.report.capturing":"Taking the screenshot…","shell.report.title":"Report a Bug","shell.appearance.rejected":"Appearance update rejected","shell.explode.cannot":"Can't Explode","shell.menu.report-error":"Report a Bug…","shell.menu.hide-affordances":"Hide Affordances","shell.menu.shortcuts":"Keyboard Shortcuts","shell.menu.sign-out":"Log Out {name}","shell.menu.show-front":"Show Front","shell.menu.flip-to-back":"Flip to Backside","shell.menu.close-backside":"Close Separate Backside","shell.menu.front-and-back":"Show Front and Backside","shell.menu.view":"View","shell.menu.window":"Window","shell.menu.agent0":"Chat with Agent0","shell.menu.agent-threads":"Agent Threads","shell.menu.live-editor":"Live Editor","shell.menubar.agent0-hint":"Chat with Agent0 about {app}","shell.switcher.title":"Switch window","shell.switcher.windows":"Windows","shell.inspect.app":"App to look inside","shell.inspect.allow":"Let {app} Look","shell.inspect.title":"Let {app} look inside an app?","shell.inspect.body":"{app} will see everything in the app you choose: what it holds, what it shows and what it is made of. It can’t change anything there, and it stops seeing it when you close the inspection.","shell.inspect.none":"No other app is open to look inside. Open one, then ask again.","shell.inspect.cannot":"Cannot inspect","shell.inspect.open-label":"Inspect app","shell.inspect.open":"Inspect app…","shell.inspect.toolbar":"Inspection","shell.shortcuts.filter":"Filter keyboard shortcuts","shell.shortcuts.find":"Find a command or key…","shell.shortcuts.keys":"Keys","shell.shortcuts.command":"Command","shell.shortcuts.none":"No matching shortcuts","shell.shortcuts.list":"Keyboard commands","shell.shortcuts.title":"Keyboard Shortcuts","shell.hosts.link":"Host share link","shell.hosts.lent-now":"Lent now","shell.hosts.lent-row":"Since {since} · {n, plural, one {# sys0 holds it} other {# sys0s hold it}}","shell.hosts.create":"Create Link","shell.hosts.title":"Share Hosts","shell.hosts.trust":"Lend only to a sys0 you trust: this sys0 sees what it runs for them, and pays for it.","shell.hosts.none":"This sys0 has no hosts of its own to lend.","shell.browser-host.link":"Browser host link","shell.browser-host.link-once":"The link — anyone with it can host this sys0","shell.browser-host.stop":"Stop hosting","shell.browser-host.title":"Host sys0 in a browser","shell.browser-host.about":"Create a link for another computer to lend isolated workers, camera, microphone, GPU and local storage. The device chooses what to offer and approves each resource session.","shell.browser-host.authority":"App permissions stay with this sys0. Closing the lending page stops its workers and device access.","shell.hold.held-now":"Held now:","shell.hold.row":"{name} · {link} · lends {lends}","shell.hold.row-none":"{name} · {link} · lends nothing yet","shell.hold.stop":"Stop holding","shell.hold.add":"Add Link","shell.hold.title":"Use Shared Hosts","shell.resources.title":"Resources","shell.hold.about":"Paste a link another sys0 made in its Share Hosts. This sys0 then runs apps on the hosts it lends, as on its own.","shell.hold.key":"The link holds a key: sys0 keeps it in its vault, and no app ever sees it.","shell.hold.missing":"Paste a host share's link.","shell.backside.title":"Backside","shell.backside.close":"Close backside","shell.backside.title-bar":"{name} — Backside","shell.backside.label":"{name} backside","generated.not-json":"{name} is not JSON","generated.none":"none","generated.no-methods":"{name} offers no methods.","generated.run":"Run","generated.running":"Running…","generated.display.none":"No display: {why}","generated.display.starting":"Starting…","generated.display.closed":"The display closed. Reconnecting…","generated.display.unreachable":"The display is not reachable. Reconnecting…","ds.graph.label":"Graph","ds.graph.close":"Close","ds.graph.visits":"Visits {n}","ds.graph.status.idle":"Idle","ds.graph.status.active":"Entered","ds.graph.status.working":"Working","ds.graph.status.waiting":"Needs you","ds.graph.status.passed":"Passed","ds.graph.status.failed":"Failed","ds.graph.status.done":"Done","ds.graph.status.visited":"Visited","frame.no-instance":"{instance} is no instance","frame.turned-over":"{name} is turned over: its back is not drawn","frame.engine-off":"{name}'s engine is not running","frame.site":"{name} is a site, which draws itself","labels.title":"Labels","labels.intro":"Every word sys0 shows, in every language it speaks: {n, plural, one {# message} other {# messages}} of {apps, plural, one {# app} other {# apps}}, in {languages, plural, one {# language} other {# languages}}. Each is shown as it reads, with sample values: a name in a box is filled in when it is said.","labels.messages":"{n, plural, one {# message} other {# messages}}","labels.id":"Message","labels.untranslated":"Not translated: shown in English","back.calls.failed":"{calls} ({failed, plural, one {# failed} other {# failed}})","back.network.traffic":"{requests, plural, one {# request} other {# requests}} · {sent} sent · {received} received","back.files.traffic":"{read} read · {written} written","back.range.hour":"Last hour","back.range.day":"24 hours","back.range.week":"7 days","back.range.month":"30 days","back.range.all":"All time","back.range.over":"{range, select, hour {last hour} day {24 hours} week {7 days} month {30 days} other {all time}}","back.measure.cost":"Cost","back.measure.cpu":"CPU time","back.measure.calls":"Calls run","back.measure.calls.more":"{failed, plural, one {# failed} other {# failed}} · {views, plural, one {# view} other {# views}}","back.measure.wall":"Time running calls","back.measure.memory":"Peak memory","back.measure.held":"Container held","back.measure.held.more":"up {up} · {boots, plural, one {# boot} other {# boots}}","back.measure.shown":"Shown in a window","back.measure.network":"Network","back.measure.files":"Files","back.measure.out":"Band calls made","back.measure.tokens":"Model tokens","back.measure.tokens.more":"{input} in · {output} out","back.chart.label":"{measure}, {over}: {total}","back.chart.peak":"peak {amount}","back.chart.empty":"none in this range","back.chart.step.minute":"each bar is a minute","back.chart.step.hour":"each bar is an hour","back.chart.step.day":"each bar is a day","back.chart.max":"max {amount}","back.chart.now":"now","back.host.mac-thread":"Mac thread","back.host.mac-vm":"Mac VM","back.host.cloudflare-do":"Cloudflare DO","back.host.cloudflare-vm":"Cloudflare Containers","back.host.linux-container":"Linux container","back.host.lima-vm":"Lima VM","back.host.peers":"Another sys0","back.choice.here":"{choice}, running here","back.part.app":"App","back.part.actions":"Actions","back.part.places":"{part, select, app {App runs on} other {Actions runs on}}","back.place.auto":"Auto","back.place.auto.fits":"the first place that fits, in sys0's order: {order}","back.place.auto.room":"the first place with room, in sys0's order: {order}","back.place.auto.nowhere":"sys0's order has nowhere for it: choose a place","back.place.outside-auto":"{host} · Auto never uses it: it is not in sys0's order","back.place.missing.not-mac":"Not on this sys0: Apple's container runs only on a Mac","back.place.missing.no-apple-container":"Not on this sys0: Apple's container is not installed","back.place.missing.not-linux":"Not on this sys0: Linux containers run only where sys0 runs on Linux","back.place.missing.no-podman-or-docker":"Not on this sys0: neither Podman nor Docker is installed","back.place.missing.no-lima-vm":"Not on this sys0: no Lima VM is named for its engines","back.place.missing.not-deployed":"Not on this sys0: its worker is not deployed — run {command}","back.place.missing.no-fly-app":"Not on this sys0: its Fly app is not made — run {command}","back.place.missing.no-peers":"Not on this sys0: no other sys0 lends it hosts","back.place.missing.link-down":"Not now: the sys0 that lends it is not linked","back.place.missing.gone":"Chosen, but this sys0 no longer has it: choose another place","back.place.unfit.guest":"{host}: does not offer what its band needs","back.place.unfit.engine":"{host}: does not offer its platform and memory","back.part.sizes":"{part, select, app {App size} other {Actions size}}","back.size.auto":"Auto · {size}","back.size.auto.hint":"what it requests","back.size.on":"{size} on {host}","back.part.not-running":"not running","back.part.failed":"not running: {why}","back.part.size":"Size","back.money.under-cent":"under 1¢","back.money.free":"free","back.money.per-hour":"{amount}/h","back.cost.idle":"Not running: costs nothing now.","back.cost.free":"Running: costs nothing to hold.","back.cost.now":"Costs {hour} an hour · {day} a day, while it runs.","back.part.using":"{used} of {held} · {rate}","back.uses.running":"{host} · {held} held · {rate}","back.uses.running.using":"{host} · {held} held · {used} in use · {rate}","back.uses.storage":"Its storage","back.uses.storage.files":"{files, plural, one {# file} other {# files}} · {size}","back.uses.storage.unlisted":"Not listed yet","back.nothing":"nothing","back.uses.state":"State and data","back.window":"Window","back.window.showing-back":"open, showing its back","back.window.open":"open","back.window.closed":"closed","back.uses.cpu":"CPU, {over}","back.uses.network":"Network, {over}","back.uses.apps":"Other apps, {over}","back.uses.drives":"Drives, {over}","back.uses.files":"Files, {over}","back.uses.tokens":"Model tokens, {over}","back.uses.tokens.value":"{input} in · {output} out, in its calls and the calls they made","back.uses":"Everything it uses","back.server.runs-on":"Runs on","back.server.not-booted":"not booted: none of its actions has run since sys0 started, and its guest boots on the first one","back.server.container":"Container","back.server.container.own":"{kind} {name} · its own: no other instance runs in it","back.server.container.shared":"{kind} {name} · shared with other instances","back.server.size":"Container size","back.server.size.own":"{memory} · {cpus, plural, one {# CPU} other {# CPUs}}","back.server.size.shared":"{memory} held for it · {cpus, plural, one {# CPU} other {# CPUs}} (the machine's, shared)","back.server.machine":"Machine","back.server.machine.value":"{hostname} · {os} {arch} · {cpus, plural, one {# CPU} other {# CPUs}} · {memory}","back.server.rates":"Rates","back.server.rates.value":"{cpu} per CPU-second · {gib} per GiB-second held","back.server.container.kernel":"the kernel's own process: kernel code is not placed, capped or metered for CPU","back.server.allocates":"Band allocates","back.server.allocates.value":"{runtime} · {memory} memory · {time} per call","back.server.allocates.kernel":"kernel code: not placed or capped","back.server.uses":"Uses now","back.server.uses.unclocked":"{memory} memory · CPU not measured: no clock moves while code runs in this container","back.server.uses.value":"{memory} memory · {cpu} CPU in this guest","back.server.uses.unmetered":"not metered","back.server.uses.none":"nothing: no guest is booted","back.server":"Server side","back.server.caption":"Server side: its actions","back.browser.unknown":"a browser","back.browser.unknown-os":"an unknown OS","back.browser":"{browser} on {os} · {cpus, plural, one {# CPU} other {# CPUs}}","back.memory.unmeasured":"this browser does not measure a frame's memory","back.memory.refused":"this browser does not let the desktop measure a frame's memory","back.memory.measured":"{size}, as this browser measures it","back.display.site":"a wrapped web app: its whole program runs here, in this browser; the server side runs only actions it has, if any","back.display.written":"{n, plural, one {# written view} other {# written views}}: templates drawn here, from the model the server side computes","back.display.generated":"its generated view, built here from its methods","back.display":"Browser side","back.display.view":"View","back.display.runs-in":"Runs in","back.display.runs-in.desktop":"{browser}, in this desktop","back.display.runs-in.none":"nothing: it has no window open","back.display.frame":"Frame","back.display.frame.value":"sandboxed, on its own origin {origin}; {n, plural, =0 {no frames} one {# frame (its view)} other {# frames (its view and the back's generated view)}}","back.window.flipped":"open, flipped to its back","back.display.memory":"Memory now","back.display.caption":"Browser side: its view","back.totals":"Totals","back.totals.renders":"Views rendered","back.totals.held":"{held} · up {up} · {boots, plural, one {# boot} other {# boots}}","back.totals.state":"State and data kept","back.where.details":"Details","back.where":"Where it runs","back.used-and-cost":"Used and cost","back.range":"Range","back.memory.measuring":"measuring…","back.metered":"Metered by sys0 since {since}.","back.targets":"Band calls made, by target","back.targets.table":"Band calls by target","back.col.target":"Target","back.col.method":"Method","back.col.calls":"Calls","back.col.failed":"Failed","back.targets.none":"None in this range.","back.access.not-installed":"{app} (not installed)","back.access.intro":"Exactly what sys0 lets {address} do — its band, and what sys0 has granted its app — checked fresh on every call it makes. It can do nothing else.","back.access.band":"Band","back.access.role":"Role","back.access.role.provider":"provider: a client for an external service, the only kind of app that reaches the network","back.access.role.app":"app","back.access.band-instance":"Band instance","back.access.band.hash":"Band","back.access.token":"Token","back.access.token.value":"{token} (held by sys0; the app never sees it)","back.access.kernel":"Kernel code","back.access.kernel.value":"it imports the kernel module, outside its band: it is part of sys0","back.access.own":"Its own state and data","back.access.own.text":"It reads and changes its own state and data, and nothing of any other instance's but what is below. Its view runs sandboxed in its own frame: it reads what the band allows and never reaches the network or a drive.","back.access.apps.heading":"Apps it can call ({n})","back.access.apps":"Apps it can call","back.col.app":"App","back.col.allowed-by":"Allowed by","back.col.used":"Used","back.access.apps.none":"None: its band requires no other app.","back.access.network.heading":"Network ({n})","back.access.network":"Network","back.col.host":"Host","back.col.http-methods":"HTTP methods","back.col.paths":"Paths","back.access.network.rule":"Only https, only these hosts, methods and path prefixes, and no redirects; only from an action, never its view.","back.access.network.none":"None directly; any access through another app is shown above.","back.access.secrets.heading":"Secrets ({n})","back.access.secrets":"Secrets","back.col.secret":"Secret","back.col.fields":"Fields","back.col.held":"sys0 holds it","back.col.sent-to":"Sent only to","back.col.granted":"Granted","back.access.secrets.rule":"It only ever sees a stand-in for each field; sys0 swaps in the value at the edge, for these methods, to that host alone.","back.access.secrets.none":"None: no method of its band uses a secret.","back.access.drives.heading":"Drives ({n})","back.access.drives":"Drives","back.col.drive":"Drive","back.col.path":"Path","back.col.kind":"Kind","back.access.drives.unmounted":"not mounted","back.access.drives.kernel":"As kernel code, it reaches every drive through the kernel.","back.access.drives.none":"None: sys0 hands its app no drive.","back.access.limits":"Limits","back.limits.calls":"Calls","back.limits.calls.value":"{all} in all · {concurrent} at once","back.limits.time":"Time per call","back.limits.input":"Input","back.limits.output":"Output","back.limits.compute":"Compute","back.limits.compute.value":"{runtime} · {memory} memory","back.limits.tokens":"Model tokens","back.limits.spend":"Spend","back.access.exposes":"What it exposes","back.exposes.methods":"Methods","back.exposes.permission":"Permission {name}","back.exposes.property":"Property {name}","back.access.callers":"Who can call it","back.col.caller":"Caller","back.col.methods":"Methods","back.callers.operator":"the operator (you, through sys0)","back.callers.operator.methods":"every exposed method, and its state and data","back.access.references":"References","back.col.from":"From","back.col.reference":"Reference","back.col.to":"To","back.access.references.none":"None: it reads no other app's properties, and none reads its.","back.access.also":"Also used","back.access.declaration":"Exact band declaration","back.access.declaration.about":"The complete declared permissions, as exact, reversible text. Current grants and access through other apps are shown above.","back.spec.field":"Spec","back.spec.apply":"Apply","back.spec.implement":"Implement","back.spec.changes.label":"Changes to the spec","back.spec.changes":"Changes","back.spec.diffing":"What changed from the saved app's spec: struck lines were removed, marked lines added. Press Changes again to edit.","back.spec.draft":"The spec of this window's draft. Apply keeps your edit in the draft; Implement asks the chat to change the app to match.","back.spec.saved":"The app's spec, in ***plain: what it is and does, the source of truth its code is written from. Apply keeps your edit in a draft; Implement asks the chat to change the app to match.","back.spec.vars":"Its vars, which you change on the Vars tab:","back.spec.write":"Write a spec from this app","back.spec.none":"This app has no spec yet: nothing says, in ***plain, what it is and does. Its chat can write one from the app as it is, into a draft; then you change the app by changing its spec.","back.spec.writing":"The chat is writing the spec. The Spec tab of the Files window shows it as it is written; to edit it once it is done, choose Spec on the window's back.","back.spec.components.tree":"Component tree","back.spec.components.chat":"Chat about {name}","spec.reader.document":"The app's specs, as one document","spec.reader.definitions":"Terms","spec.reader.implementation":"How it is built","spec.reader.tests":"How it is tested","spec.reader.functional":"What it does","spec.reader.design":"How it looks","spec.reader.acceptance":"Checks","spec.reader.again":"{name} is read above.","spec.reader.edit":"Edit spec","spec.reader.edit-design":"Edit design","spec.reader.add-design":"Add a design spec","back.vars.draft":"The vars of this window's draft. A change runs at once; save the draft from its chat to keep it.","back.vars.saved":"Values the app reads that you may change while it runs. A change runs at once, in a draft of the app.","back.vars.not-json":"That is not JSON.","back.vars.slot":"Slot","back.vars.value":"Value","back.vars.used":"Used in","back.schemas.saved":"Shared definitions first, then the schemas belonging to this app and its components. Choose one to inspect it.","back.schemas.draft":"Schemas used by this window’s draft, organized by component. Shared definitions open in Schemer.","back.schemas.none":"No schemas to display.","activity.peer.linked":"linked","activity.peer.down":"down: {why}","activity.peer.runs-on":"{hostname} · {os} {arch} · {cpus, plural, one {# CPU} other {# CPUs}} · {memory}","ds.chat.copy":"Copy","ds.chat.copy-failed":"Select and copy","ds.chat.effort.low":"Low","ds.chat.effort.medium":"Medium","ds.chat.effort.high":"High","ds.chat.effort.xhigh":"Extra high","ds.chat.effort.max":"Max","ds.chat.agent.code":"Agent0","ds.chat.agent.app":"Agent0","ds.chat.conversation":"Conversation","ds.chat.queued.label":"Waiting to be said","ds.chat.message.label":"Message","ds.chat.message.placeholder":"Tell it what to do","ds.chat.send":"Send","ds.chat.model.label":"Model","ds.chat.effort.label":"Thinking","ds.chat.effort.hint":"How hard the model thinks","ds.chat.usage.label":"Usage","ds.chat.budget.label":"Budget","ds.chat.budget.form.label":"Change budget","ds.chat.clear":"Clear","ds.chat.clear.hint":"Forget this conversation, and what it used","ds.chat.fast":"Fast mode","ds.chat.model.unpriced":"{name} · unpriced","ds.chat.model.priced":"{name} · {input} in, {output} out per million tokens","ds.chat.queued.drop.label":"Don't say \"{text}\"","ds.chat.queued.drop":"Remove","ds.chat.queued.waiting":"Waiting: {text}","ds.chat.queued.images":"{n, plural, one {# image} other {# images}}","ds.chat.queued.text-images":"{text} · {images}","ds.chat.working":"working…","ds.chat.failed":"The last turn failed.","ds.chat.queue":"Queue","ds.chat.usage.line":"{input} in · {output} out · {cost}","ds.chat.usage.hint":"{input, plural, one {# token} other {# tokens}} in, {output} out, since the chat was last cleared","ds.chat.budget.change.label":"Change the {agent, select, code {implementer's} other {agent's}} budget","ds.chat.budget.change":"Change","ds.chat.budget.hint":"What the {agent, select, code {implementer} other {agent}} may spend for each thing you say, and what it has spent of it since you last said something","ds.chat.budget.used":"{name}: {roundsUsed}/{rounds, plural, one {# round} other {# rounds}} · {tokens, plural, one {{tokensUsed}/{tokensBudget} token} other {{tokensUsed}/{tokensBudget} tokens}} · {spent}/{budget}","ds.chat.budget.rounds":"Rounds","ds.chat.budget.tokens":"Tokens","ds.chat.budget.dollars":"Dollars","ds.chat.cancel":"Cancel","ds.chat.budget.set":"Set","ds.chat.budget.form":"{agent, select, code {Implementer's} other {Agent's}} budget for each thing you say","ds.chat.models.environment":"Environment","ds.chat.models.environment.local":"This sys0","ds.chat.models.providers":"Providers","ds.chat.models.recent":"Recent choices","ds.chat.took.seconds":"{s, number, ::unit/second unit-width-narrow}","ds.chat.took.minutes":"{m, number, ::unit/minute unit-width-narrow} {s, number, ::unit/second unit-width-narrow}","ds.chat.took.hours":"{h, number, ::unit/hour unit-width-narrow} {m, number, ::unit/minute unit-width-narrow}","ds.chat.tool.shell":"Shell","ds.chat.tool.read":"Read","ds.chat.tool.edit":"Edit","ds.chat.tool.write":"Write","ds.chat.tool.search":"Search","ds.chat.tool.task":"Task","ds.chat.tool.thinking":"Thinking","ds.chat.fork":"Fork","ds.chat.session.label":"Chat lifetime usage","ds.chat.session.unavailable":"Chat lifetime usage unavailable","ds.chat.session.at-least":"≥{amount}","ds.chat.session.line":"{agents, plural, one {# live agent} other {# live agents}} · Tokens {tokens} · Compute {compute} · Total {total}","ds.chat.session.hint":"Lifetime of this chat instance, across all threads. {complete, select, yes {Includes cleared and archived conversations.} other {Older cleared conversations and detached runtimes cannot be fully recovered; ≥ marks recorded lower bounds.}}","ds.chat.session.loading":"Loading chat lifetime usage…","ds.chat.attachments.label":"Attached images","ds.chat.attachment.remove.label":"Remove image {n}","ds.chat.attachment.remove":"Remove","ds.chat.attachment.alt":"Attached image {n}","ds.chat.recover.resume":"Resume","ds.chat.recover.resume.hint":"Resume the turn interrupted by sys0 restarting","ds.chat.recover.retry":"Retry","ds.chat.recover.retry.hint":"Retry the failed turn in Paseo","ds.chat.track.label":"Under way","ds.chat.image.too-big":"Each image must be at most {most}","ds.chat.image.kind":"Paste a PNG, JPEG, GIF or WebP image","ds.chat.image.unreadable":"Could not read the pasted image","ds.chat.image.alt":"Image attached to message","ds.chat.worked":"Worked for {took}","ds.chat.draft.hint":"This thread's draft, against the saved app","chat.draft.label":"Draft","chat.dock.label":"Chat with {name}","chat.dock.title":"Chat — {name}","chat.dock.back-hint":"Show Chat backside","chat.draft.save-as":"Save As…","chat.draft.scope-shared":"Save this app for everyone in this environment","chat.draft.scope-private":"Save your own version of this app","chat.draft.discard":"Discard","shell.dev-exit.title":"Leave developer mode?","shell.dev-exit.body":"Save or discard your changes to {name} before leaving developer mode.","shell.dev-exit.working":"Wait for the chat to finish before saving or discarding changes.","shell.dev-exit.saving":"Saving…","shell.dev-exit.discarding":"Discarding…","shell.dev-exit.failed":"The draft could not be saved. Your changes are still here.","chat.draft.broken":"This draft is kept but not running: {error}","chat.agent-back.label":"Show agent backside","chat.agent-back":"Agent backside","share-page.connecting":"Connecting…","share-page.about.title":"About sys0","share-page.settings.menu":"Settings…","share-page.band.share-ui":"You share the host's UI; the data is read-only","share-page.band.own-ui":"Your own UI; the data is read-only","share-page.band.watch-pointer":"Watching the host, with their pointer","share-page.band.watch":"Watching the host","share-page.band.read-only":"Read-only","shell.share.mask-shape-help":"One black square per character. Turn off to hide length and spacing with fixed dots per field.","shell.share.mask-shape":"Preserve text shape","shell.share.mask-ids":"Mask with IDs","share-page.redacted":"{n, plural, one {# field redacted} other {# fields redacted}}","share-page.theme.title":"Theme","share-page.theme.chosen-gone":"This site has no theme \"{theme}\", the one you chose before: the page goes back to the host's.","share-page.theme.host-missing":"This page cannot be drawn in the host's theme (\"{theme}\"): its site was published before that theme existed. It stays in the theme it has.","share-page.about.host":"sys0 is its host: it shows here only while that sys0 runs.","share-page.about.none":"A share of a sys0.","share-page.settings.title":"Settings","share-page.theme.host":"The host's ({theme})","share-page.pointer.host":"host","share-page.status.host-gone":"The host went away; waiting for it to come back…","share-page.status.no-host":"The host of this share is not connected; waiting for it…","share-page.status.closed":"The link to the host closed.","share-page.title.app":"{app} — shared from sys0","share-page.title.desktop":"sys0 — shared desktop","share-page.status.live":"Live","share-page.status.not-a-share":"This link is not a share link.","soundtrack.credit":"{title}, by {artist}","soundtrack.track-license":"“{title}”. {license}","soundtrack.name":"Soundtrack","soundtrack.command.open":"Music that follows what you do: what plays, how loud, and the mood it hears","soundtrack.command.tracks.title":"Soundtrack: Tracks","soundtrack.command.tracks.on":"Playing whole tracks","soundtrack.command.tracks.offer":"Whole tracks, each chosen for what you did while the last played","soundtrack.command.synth.title":"Soundtrack: Synth","soundtrack.command.synth.on":"The synth is playing","soundtrack.command.synth.offer":"A synth that changes with what you do","soundtrack.command.off.title":"Soundtrack: Off","soundtrack.command.off.on":"Nothing is playing","soundtrack.command.off.offer":"Stop the music","soundtrack.next-track":"Next Track","soundtrack.command.skip":"Skip {playing}","soundtrack.dialog.off":"Off","soundtrack.dialog.tracks":"Tracks: whole tracks, each chosen for what you did while the last played","soundtrack.dialog.synth":"Synth: a loop that changes with what you do","soundtrack.mood.energy":"Energy","soundtrack.mood.brightness":"Brightness","soundtrack.mood.play":"Play","soundtrack.dialog.nothing":"Nothing is playing.","soundtrack.dialog.starting":"Starting…","soundtrack.dialog.lately":"In front lately: {apps}","soundtrack.dialog.lately-app":"{app} {share}","soundtrack.dialog.lately-none":"No window has been in front lately.","soundtrack.dialog.play":"Play","soundtrack.dialog.volume":"Volume","soundtrack.dialog.now":"Now","soundtrack.dialog.hears":"What it hears","soundtrack.status.error":"Soundtrack: {error}","soundtrack.status.fetching":"Soundtrack: the kernel is still getting the music","soundtrack.status.waiting":"Soundtrack: click or type to start","soundtrack.synth.mode.phrygian":"Phrygian","soundtrack.synth.mode.aeolian":"Aeolian","soundtrack.synth.mode.dorian":"Dorian","soundtrack.synth.mode.mixolydian":"Mixolydian","soundtrack.synth.mode.ionian":"Ionian","soundtrack.synth.mode.lydian":"Lydian","soundtrack.synth.note.c":"C","soundtrack.synth.note.d-flat":"D♭","soundtrack.synth.note.d":"D","soundtrack.synth.note.e-flat":"E♭","soundtrack.synth.note.e":"E","soundtrack.synth.note.f":"F","soundtrack.synth.note.g-flat":"G♭","soundtrack.synth.note.g":"G","soundtrack.synth.note.a-flat":"A♭","soundtrack.synth.note.a":"A","soundtrack.synth.note.b-flat":"B♭","soundtrack.synth.note.b":"B","soundtrack.synth.playing":"Synth in {key} {mode}, {bpm} bpm","dictation.getting":"{mode, select, voice {Voice mode} other {Dictation}}: getting the speech model, {percent}","dictation.starting":"{mode, select, voice {Voice mode} other {Dictation}}: preparing the speech model","dictation.listening":"Listening","dictation.loading":"{mode, select, voice {Voice mode} other {Dictation}}: loading the speech model, {percent}","dictation.heard":"Listening: {heard}","dictation.untyped":"Listening; nothing focused takes text: “{text}”","dictation.failed":"{mode, select, voice {Voice mode} other {Dictation}} failed: {error}","dictation.load-failed":"{mode, select, voice {Voice mode} other {Dictation}}: could not load the speech model: {error}","dictation.microphone":"{mode, select, voice {Voice mode} other {Dictation}}: waiting for microphone access","hearing.getting":"Getting the speech model, {percent}","hearing.starting":"Preparing the speech model","hearing.hidden":"Paused while this page is hidden","hearing.loading":"Loading the speech model, {percent}","hearing.microphone":"Waiting for microphone access","hearing.failed":"Listening failed: {error}","hearing.load-failed":"Could not load the speech model: {error}","hearing.on":"{name} is listening","hearing.stopped":"Stopped listening","hearing.taken":"{name} took the microphone","hearing.busy":"{name} is using the microphone","hearing.refused":"{name} does not declare hearing","ds.chat.work.title":"Agent work graph","ds.chat.work.builder":"App builder","ds.chat.work.requests":"Requests","shell.band.title":"{app} wants to go online to {host}","shell.band.reads":"If you allow it, {app} can read from {host} whenever it needs to.","shell.band.sends":"If you allow it, {app} can send information to {host} whenever it needs to.","shell.band.subject":"Internet","shell.band.undo":"You can take it back under Access, on the back of the {app} window.","shell.band.allow":"Allow","shell.band.deny":"Don’t Allow","preview.test-data":"Test data has been used","recovery.label":"Input recovery","recovery.attention":"{n, plural, one {# input needs your attention} other {# inputs need your attention}}","recovery.awaiting":"{n, plural, one {# change is waiting for the kernel · kept on this device} other {# changes are waiting for the kernel · kept on this device}}","recovery.waiting":"They are sent as soon as the connection is back. Nothing is lost if this tab closes.","recovery.not-saved":"They are sent as soon as the connection is back. This device could not keep a copy, so keep this tab open until then.","recovery.refused":"Recovery refused: {reason}","recovery.keep-server":"Keep server value","recovery.apply-mine":"Apply my input to current version","recovery.export":"Export recovery","recovery.unkept":"{n, plural, one {# change is waiting for the kernel · not kept on this device} other {# changes are waiting for the kernel · not kept on this device}}","recovery.skipped":"Not applied: an input before it was not accepted.","recovery.dismiss-all":"Keep the server value for all","chat.files.title":"Files — {name}","chat.files.close":"Close Files — {name}","voice-spec.open":"Voice spec","voice-spec.title":"Voice spec — {name}","voice-spec.listen":"Listen","voice-spec.listening":"Listening","voice-spec.speak":"Speak replies","voice-spec.implement":"Implement","voice-spec.implement-text":"Implement the spec: change the app so it does what its specs now say.","voice-spec.done":"Done","voice-spec.working":"Changing the spec…","voice-spec.hint":"Say what the app should do. Only the spec changes while you watch; Implement builds it. Say “stop listening” to pause.","voice-spec.none":"This app has no spec yet: say what it does, and its spec is written as you watch.","spec-editor.open":"Spec editor","spec-editor.label":"Spec editor — {name}","spec-editor.crumbs":"Where the page is zoomed","spec-editor.contents":"Contents","spec-editor.outline":"The app's specs, nested as it is composed","spec-editor.mode":"How rows read","spec-editor.reader":"Reader","spec-editor.source":"Source","spec-editor.code":"Code","spec-editor.done":"Done","spec-editor.close":"Close the spec editor","spec-editor.app-hint":"Every spec, in its component's folder, nested as the app is composed. Click a row to write it; Enter implements what changed.","spec-editor.fold":"Fold","spec-editor.unfold":"Unfold","spec-editor.zoom":"Zoom into {name}","spec-editor.has-design":"design spec","spec-editor.in-draft":"in the draft","spec-editor.empty":"Write it…","spec-editor.row":"The row's ***plain: Enter implements what changed, Shift+Enter starts a row below, Escape undoes","spec-editor.add-item":"Add","spec-editor.add-check":"Add a check","spec-editor.add-sub":"Add a detail","spec-editor.clean":"Every spec is as sys0 has it. Click a row to write it.","spec-editor.pending":"{n, plural, one {# spec changed} other {# specs changed}}: {names} · Enter implements it in a new T3 Code thread","spec-editor.committing":"Writing the specs into the draft…","spec-editor.implement":"Implement","spec-editor.discard":"Discard","spec-editor.threads":"T3 Code threads implementing the specs","spec-editor.status.starting":"Starting","spec-editor.status.working":"Working","spec-editor.status.done":"Done","spec-editor.status.failed":"Failed","spec-editor.status-said":"{status}: {text}","spec-editor.not-started":"The specs are in the draft, but T3 Code did not start: {error}","spec-editor.removed":"removed a requirement","spec-editor.and-more":" (and {n, plural, one {# more spec} other {# more specs}})","spec-editor.code-none":"No spec is in view.","spec-editor.code-empty":"This folder holds no code of its own.","spec-editor.file.added":"new in the draft","spec-editor.file.changed":"changed in the draft","spec-editor.file.removed":"removed in the draft","spec-editor.input":"Input","spec-editor.output":"Output","chat.files.list":"Component files","chat.files.content":"File contents and draft changes","chat.files.dependency":"Dependency","chat.files.empty":"No files in this component.","chat.files.binary":"Binary file — text preview unavailable.","chat.scope.title":"Scope: {name}","chat.scope.entire-name":"Entire {name}","chat.scope.tree":"Component scope","chat.scope.entire":"Whole app","chat.scope.start":"Start scoped chat","chat.scope.help":"Tick the components to work on. Their files, specs and vars show here; start a scoped chat to keep the agent to them.","chat.scope.pending":"Start the scoped chat, or close Scope, before sending.","chat.scope.highlight":"Highlight","chat.scope.highlight.label":"Highlight components","ds.chat.queued.send-now":"Send now","ds.chat.queued.send-now.label":"Send now: {text}","os.copy-failed":"Select and copy","shell.settings.theme-follow":"Follow desktop","shell.settings.theme-native":"Native (no theme)","shell.settings.theme-app-about":"Applies to every instance of this app on this desktop. Window borders keep the desktop theme.","ds.chat.pick.stale":"This component has changed. Pick it again.","ds.chat.pick.thread-component":"Option+Command-click a component to start a scoped thread; this click landed outside every component.","yodag.search":"Find a node","yodag.fit":"Fit","yodag.expand":"Expand all","yodag.path":"Selected path","yodag.minus":"−","yodag.plus":"+","yodag.count":"{shown}/{total} nodes · {edges} edges","yodag.empty":"No recorded work yet","yodag.label":"Yodag execution graph","yodag.inspect":"Inspect the evidence","yodag.help":"Select a node or edge to inspect its recorded evidence. Double-click a node to fold its branch.","yodag.expandBranch":"Expand branch","yodag.collapse":"Collapse branch","yodag.capture":"Capture / evaluate this attempt","yodag.raw":"Raw evidence","yodag.export":"Export eval","yodag.replay":"Replay without actions","yodag.expected":"Expected action JSON; null means no action","yodag.saveCase":"Save regression case","yodag.unreviewed":"Needs review","yodag.all":"All outcomes","yodag.report":"Regression report","yodag.commands":"All commands","yodag.searchCommands":"Find an app or command","yodag.unavailable":"Unavailable in this input scope","yodag.reportCounts":"{passed}/{total} passed · {failed} failed · {unreplayable} need recapture · {deterministic} deterministic · {jev} Jev","yodag.replayScope":"Interpretation checks on saved, labelled cases. No actions or live model calls. This does not verify resulting app state.","yodag.coverage":"Coverage and improvement candidates","yodag.timeline":"Timing and every event","shell.connect.codex.title":"Connect Codex","shell.connect.codex.about":"sys0 will connect Codex to your ChatGPT plan. Your sign-in stays in the vault and is used only for the apps you allow.","shell.connect.codex.sign-in":"Continue with ChatGPT","shell.connect.codex.waiting":"Waiting for ChatGPT…","shell.connect.manus.title":"Connect Manus","shell.connect.manus.about":"The Manus app, and the apps you allow, will use your Manus account. sys0 keeps the API key in its vault and sends it only to Manus; the apps never see it.","shell.connect.manus.step":"Create an API key in Manus: Settings, then Developers, then Create API Key.","shell.connect.manus.key":"API key","shell.connect.manus.missing":"Paste the API key first.","shell.connect.manus.connect":"Connect","chat.files.tab-files":"Files","chat.files.tab-spec":"Spec","chat.files.tab-design":"Design","chat.design.about":"The values the app reads, those that say how it looks under the components that read them. Move one and the window shows it; let go and it is kept in a draft.","chat.design.none":"This app has no vars yet. A component's design spec names each value of consequence as a var, and each can be changed here.","chat.spec.content":"Spec text and draft changes","shell.print.title":"Print","shell.print.about":"Print the view as a share shows it: one page per record, each sensitive value a block. Unredacter reveals current values on the paper to whoever may read them, until you end the printed share.","shell.print.create":"Create print preview","shell.print.open":"Open print preview","shell.print.saved":"Printed copies","shell.print.stop":"End printed share","shell.print.row":"{n, plural, one {# page} other {# pages}} · {since}","shell.print.ready":"Your print is ready. Open the preview to print or save a PDF.","shell.print.empty":"Select at least one contact to print.","back.schemas.library":"Shared schemas","back.schemas.views":"Views","back.schemas.components":"Components","back.schemas.vars":"Design values","back.schemas.methods":"Actions","back.schemas.detail":"Schema detail","back.schemas.tree":"Schema tree","back.schemas.open":"Open in Schemer","back.schemas.open-name":"Open {name} in Schemer","back.schemas.format.fields":"Fields","back.schemas.format.plaintype":"PlainType","back.schemas.format.json":"JSON","back.schemas.references":"Uses","back.schemas.inherited":"Protected by parent","back.schemas.protected":"Sensitive","back.schemas.type.never":"No value allowed","back.schemas.type.any":"Any value","back.schemas.type.string":"Text","back.schemas.type.number":"Number","back.schemas.type.integer":"Whole number","back.schemas.type.boolean":"Yes or no","back.schemas.type.object":"Record","back.schemas.type.array":"List","back.schemas.type.null":"Empty","back.schemas.type.choice":"Choice","back.schemas.type.union":"One of several types","back.schemas.format-label":"Schema format","back.schemas.kind.state":"State","back.schemas.kind.data":"Data","back.schemas.kind.method-input":"Input","back.schemas.kind.method-output":"Output","back.schemas.sensitivity-hint":"Changes apply immediately to every app and share using this schema.","back.schemas.local-hint":"This contract belongs to this app. Shared definitions are listed separately.","back.schemas.protect":"Protect {name}","back.schemas.source":"Defined in {name}","back.schemas.inherited-parent":"Inherited from {name}","back.schemas.saving":"Saving sensitivity…","back.schemas.sensitivity-saved":"Sensitivity updated.","shell.print.sensitive":"Include sensitive values","shell.print.sensitive-about":"Prints them as they are. Anyone holding the paper can read them, and ending the printed share cannot take them back.","shell.print.row-sensitive":"{n, plural, one {# page} other {# pages}} · with sensitive values · {since}","print.title":"{app} · print preview","print.action":"Print / Save PDF…","print.redacted":"Sensitive values are blocks. Unredacter reveals their current values on the paper until the printed share ends.","print.sensitive":"This copy includes sensitive values as they are.","shell.print.delete":"Delete copy","shell.referred":"{app} can now read “{prop}” from {target}.","back.col.property":"Property","back.access.referenced.heading":"Granted by references ({n})","back.access.referenced.text":"Writing $app.property in an app’s data grants it read access to that one property. sys0 grants it as yours, since it cannot tell your writing from the app’s.","back.access.referenced.none":"None: no reference grants it another app’s property, and none grants another app one of its.","shell.share.together":"Use it together","shell.share.presence":"Viewer {n}","share-page.band.together":"You use it together with the host: your own UI, and your changes reach everyone","share-page.pointer.viewer":"viewer {n}","shell.share.publish-title":"Publish","shell.share.publish-app":"Publish as an app","shell.share.publish-web":"Publish to the web","shell.share.publish-app-hint":"A copy with none of this window’s data, for anyone with the link to install in a sys0 of their own","shell.share.publish-web-hint":"A copy with none of this window’s data, as a site that runs in its visitor’s browser","shell.share.published-app":"An app to install · since {since}","shell.share.published-web":"A site · since {since}","shell.share.unpublish":"Stop publishing","share-page.published.gone":"This is no longer published, or its link is wrong.","share-page.web.status":"Runs here, in your browser: nothing you do leaves this page","share-page.app.title":"{app}, an app to install","share-page.app.about":"A copy of this app, with no one’s data. To install it in a sys0 of your own, open its App Store and paste this page’s link into Install from a link.","share-page.app.link":"This page’s link","share-page.app.download":"Download the copy","share-page.app.status":"Version {version} · {n, plural, one {# file} other {# files}}","chat.editor.chat":"sys0 chat","chat.editor.t3":"T3 Code","chat.editor.starting":"Opening this thread in T3 Code…","chat.editor.status":"In T3, project {project}: {text}","chat.scope.cancel":"Cancel","chat.design.none-in-scope":"Nothing in this scope reads a var. Clear the scope to see every var of the app.","shell.report.what":"What happened?","shell.report.what-placeholder":"What you did, what you expected, and what happened instead.","shell.report.no-screenshot":"The screenshot could not be made; the windows' state and logs still go.","shell.report.include-screenshot":"Include the screenshot","shell.report.included":"The report also carries every window's state and recent log, as they were at {at}. App data stays here.","shell.report.say":"Say what happened first.","shell.report.draw":"Draw on the screenshot to mark the problem.","shell.report.undo":"Undo mark","shell.report.send-shortcut":"Send (Shift+Enter, Cmd+Enter or Ctrl+Enter)","shell.report.send":"Send","shell.report.not-sent":"The bug report could not be sent: {why}","shell.report.sent":"Bug report sent","shell.menu.recent-bugs":"Recent Bugs","shell.bugs.title":"Recent Bugs","shell.bugs.none":"No bugs recorded.","shell.bugs.when":"Last seen","shell.bugs.app":"App","shell.bugs.what":"What","shell.bugs.times":"Times","shell.bugs.issue":"Issue","shell.bugs.waiting":"not filed","shell.menubar.bug":"Report a bug","shell.menubar.bug-hint":"Report a bug, with a screenshot (⌥⇧⌘E / Ctrl+Alt+Shift+E)","shell.report.not-sent-title":"Bug Report Not Sent","shell.shortcuts.legend-mac":"⌃ = Control · ⌥ = Option · ⇧ = Shift · ⌘ = Command. Window commands need their Desktop Manager behavior enabled.","shell.shortcuts.legend-other":"Ctrl = Control · Win = Windows key. Window commands need their Desktop Manager behavior enabled.","shell.menu.about":"About sys0","shell.menu.settings":"Settings…","shell.menu.show-affordances":"Show Affordances","shell.menu.share":"Share sys0…","shell.menu.browser-host":"Host sys0 in a Browser","shell.menu.share-hosts":"Share Hosts…","shell.menu.hold-hosts":"Use Shared Hosts…","shell.menu.close-all":"Close All Windows","shell.window.minimize":"Minimize","shell.window.shade":"Roll Up / Down","shell.window.restore":"Restore Size","shell.window.center":"Center","shell.window.maximize":"Maximize","shell.window.left":"Left Half","shell.window.right":"Right Half","shell.window.top":"Top Half","shell.window.bottom":"Bottom Half","shell.window.top-left":"Top Left","shell.window.top-right":"Top Right","shell.window.bottom-left":"Bottom Left","shell.window.bottom-right":"Bottom Right","shell.window.third-left":"Left Third","shell.window.third-center":"Center Third","shell.window.third-right":"Right Third","shell.window.wide-left":"Left Two Thirds","shell.window.wide-right":"Right Two Thirds","shell.window.move-resize":"Move & Resize","shell.window.overview":"Overview","shell.window.return":"Return to Windows","shell.window.show-desktop":"Show Desktop","shell.window.next":"Next Window","shell.window.show-all":"Show All Windows","shell.window.tile-all":"Tile All Windows","shell.window.cascade":"Cascade Windows","shell.window.stop-fading":"Stop Fading Other Windows","shell.window.fade":"Fade Other Windows","shell.window.resume":"Resume Layout","shell.window.pause":"Pause Layout","shell.window.stack-next":"Next in Stack","shell.window.pin":"Keep Above","shell.window.sticky":"All Workspaces","shell.window.scratchpad":"Tuck into Scratchpad","shell.window.lower":"Lower Window","shell.window.float":"Float / Tile","shell.window.unfocus":"Leave Focus Mode","shell.window.focus":"Focus Mode","shell.window.swap-previous":"Swap with Previous","shell.window.swap-next":"Swap with Next","shell.window.main":"Make Main Window","shell.window.tile-app":"Tile This App Again","shell.window.never-tile":"Never Tile This App","shell.window.more":"More","shell.window.manager":"Desktop Manager…","shell.window.tiles-1":"Tile Up to 1","shell.window.tiles-2":"Tile Up to 2","shell.window.tiles-3":"Tile Up to 3","shell.window.tiles-4":"Tile Up to 4","shell.notifications.title":"Notification Center","shell.toaster.label":"Toasts","shell.toaster.dismiss":"Dismiss","shell.notifications.button":"{n, plural, =0 {Notification Center} one {Notification Center, # unread notification} other {Notification Center, # unread notifications}}","shell.notifications.clear-all":"Clear All","shell.notifications.clear":"Clear","shell.notifications.clear-app":"Clear {name} notifications","shell.notifications.empty":"No notifications","shell.notifications.now":"now","shell.notifications.minutes":"{n, number} min ago","shell.notifications.yesterday":"Yesterday {at, time, short}","live-editor.title":"Live editor…","live-editor.section":"Edit live","live-editor.values":"Value register","live-editor.state":"App state","live-editor.data":"User data","live-editor.ui":"UI state","live-editor.code":"Code","live-editor.file":"Source file","live-editor.buffer":"Live edit buffer","live-editor.apply":"Apply live","live-editor.reload":"Reload buffer","live-editor.changed":"Live values changed. Your edits will be merged when you apply them.","live-editor.no-text":"This file has no editable text.","voice.listening-mode":"Listening mode","voice.watchword":"Watchword · hey zero","voice.continuous":"Continuous · every phrase","voice.watchword-help":"In watchword mode, say “hey zero” before each command, together or followed by a command within 10 seconds. Background speech stays in the browser; only command transcripts are saved. Say “stop listening” to turn off the microphone.","voice.watchword-waiting":"Voice mode: waiting for “hey zero”","voice.watchword-ready":"Voice mode: ready for one command","shell.settings.avatar-picture":"Picture","shell.settings.avatar-alt":"Profile picture for {name}","shell.settings.avatar-choose":"Choose picture…","shell.settings.avatar-remove":"Remove picture","shell.settings.avatar-about":"PNG, JPEG, GIF or WebP, up to 10 MB. Pictures are cropped to a square.","shell.settings.avatar-uploading":"Uploading picture…","shell.settings.avatar-saved":"Picture saved.","shell.settings.avatar-removed":"Picture removed.","shell.settings.avatar-type":"Choose a PNG, JPEG, GIF or WebP image.","shell.settings.avatar-size":"Choose an image smaller than 10 MB.","shell.settings.avatar-unreadable":"This image could not be read. Try a different picture.","shell.back.tab-evidence":"Evidence","back.evidence.receipts":"Scoped receipts","back.evidence.empty":"No kernel test receipts are available for this app.","back.evidence.resources":"Resource accounting coverage","back.evidence.missing":"Missing instrumentation","back.evidence.criteria":"Native-app criteria","back.evidence.required":"Required evidence","back.evidence.plan":"Scoped check and repair plan","back.evidence.refresh":"Refresh evidence","back.evidence.scope":"Evidence is tied to the running content identities below. A verified receipt covers only its stated scope; it does not certify the whole app. Inspection runs no tests or agents.","back.evidence.artifacts":"Source, spec and test identities","back.evidence.owner":"Owner","back.evidence.execution":"Execution","back.evidence.package":"Package","back.evidence.toolchain":"Toolchain","back.export":"Export independent app…","back.access.technical":"Technical details","back.lab.tab":"Live Lab","back.lab.about":"Try synchronized views, live values, edits, offline recovery and rewind on a disposable checkpoint fork.","back.lab.open":"Open Live Lab","shared-source.open":"Edit code together","shared-source.file":"Source file","shared-source.buffer":"Shared source code","shared-source.apply":"Apply code","shared-source.loading":"Loading shared source…","shared-source.waiting":"Your edits are waiting to sync","shared-source.synced":"Shared buffer synced · Apply code to run it","shared-source.syncing":"Syncing shared edits…","shell.close.timeout":"Cleanup has not been acknowledged. The window stays open; press Close again to check the same operation.","shell.close.retired":"This window has already closed or changed.","recovery.close.pending":"This window is finishing its pending close.","recovery.close.retired":"This view no longer owns the window.","recovery.close.unavailable":"This window cannot acquire a resource without acknowledged input recovery. Close it and reopen after recovery is available.","recovery.close.unacknowledged":"The action was not acknowledged.","shell.launcher.resources":"Resources","shell.launcher.resources-what":"Use resources lent by browsers, phones and other devices","shell.menu.resources":"Resources…","back.backend.create":"Create browser / CLI link","back.backend.creating":"Creating link…","back.backend.url":"Backend sharing URL","back.backend.copy-link":"Copy link","back.backend.use":"Run this app here","back.backend.stop":"Stop link","back.backend.copy-command":"Copy command","back.backend.paste":"Use someone else's backend sharing URL","back.backend.add":"Add backend","back.backend.adding":"Adding…","back.backend.copied":"Copied","back.backend.copy-manually":"Select and copy the field's text.","back.backend.waiting":"Waiting for the other browser or CLI to connect. Keep its page or process running.","back.backend.does-not-fit":"This backend does not offer the app's required runtime or memory.","back.backend.assigned":"This app is assigned to this backend.","back.backend.connected":"Backend connected. Choose Run this app here to move its actions.","back.backend.stopped":"Link stopped.","back.backend.paste-needed":"Paste a backend sharing URL.","back.backend.added":"Backend added. Choose one of its hosts below.","back.backend.title":"Run backend elsewhere","back.backend.about":"Open a sharing link in another person's browser, or run its command on a Mac or Linux computer. Your app's actions run there; its data and permissions stay with this sys0. The host can see the code and inputs it runs.","back.backend.scope":"Browser and connected CLI backends run JavaScript and Wasm actions. Native engines need a machine's shared host URL.","back.backend.install":"Install a backend on Mac or Linux","ds.chat.development.open":"Inspect loop","shell.environment.title":"Shared environments","shell.environment.about":"Give each person their own desktop, with selected apps and shared rooms for games and chat.","shell.environment.choose":"Environment","shell.environment.new":"New environment…","shell.environment.name":"Name","shell.environment.search":"Find apps","shell.environment.save":"Save environment","shell.environment.preview":"Their desktop: {apps}.","shell.environment.empty":"Choose at least one app.","shell.environment.policy":"App building and AI spending are off. Personal apps keep each person’s own documents; games and chat share rooms with their members. Newly installed apps stay excluded.","shell.environment.members":"Members: {names}. Saving updates these accounts and pending invites.","shell.environment.no-members":"No members yet. Save, then make an invite for each person.","shell.environment.saved":"Environment saved. Its accounts and pending invites now have this access.","shell.environment.invited":"Single-use invite made. It expires in 14 days. Make another for the next person.","shell.environment.copied":"Invite copied.","shell.environment.assign":"Move account into environment","shell.environment.account":"Existing account","shell.environment.moved":"Account moved. Its documents and saved desktop are retained; its access now follows this environment.","shell.environment.individual":"Saving individual access removes this account from its environment.","chat.thread.untitled":"New thread","chat.thread.current":"Thread: {title}, {state}","chat.thread.switch-hint":"Switch threads ({keys})","chat.thread.others":"{n, plural, one {+# thread} other {+# threads}}","chat.thread.others-hint":"{n, plural, one {# other thread} other {# other threads}}, one {state}","chat.thread.state.running":"working","chat.thread.state.failed":"failed","chat.thread.state.attention":"ready to review","chat.thread.state.done":"done","chat.tools.label":"More","chat.tools.refresh":"Refresh models","chat.tools.refreshing":"Refreshing models…","chat.tools.clear":"Clear conversation","chat.draft.unsaved":"Unsaved draft","chat.draft.hint":"The window is running this thread's draft ({hash}): {added, plural, one {# line} other {# lines}} added and {removed} removed against the saved app","chat.draft.discard-hint":"Throw this draft away and run the saved app","chat.scope.keys.label":"Shortcuts in the running app","chat.scope.keys.scope":"Add or remove a component","chat.scope.keys.inspect":"Inspect one instance","chat.scope.keys.mention":"Drop an object's chip in your message","chat.scope.keys.thread":"Start a thread scoped to a component","chat.editor.label":"Editor","shell.tour.end":"End tour","shell.tour.back":"Back","shell.tour.next":"Next","shell.tour.finish":"Done","shell.tour.done":"Done","shell.tour.opening":"Opening windows…","shell.tour.progress":"{n} of {count}","shell.tour.chapters":"Chapters","shell.tour.chat":"Chat","shell.tour.title-field":"Title","shell.tour.text-field":"Text","shell.tour.not-live":"Left out of the tour: what this step shows is not built yet.","shell.tour.words":"Words","shell.tour.write-menu":"Write Tour Words","shell.tour.saving":"Saving…","shell.tour.drafted":"In the draft","shell.tour.empty":"Empty: not saved","shell.tour.saved":"Saved","shell.tour.not-saved":"Not saved: {error}","ds.chat.you":"You","shell.share.band":"Band","shell.share.band-json":"Band (JSON)","shell.share.band-visual":"Visual","shell.share.band-view":"Band view","shell.share.band-include":"Only share records when","shell.share.band-reveal":"Reveal sensitive fields when","shell.share.code-grant":"Also allow editing the app’s code","shell.share.link-qr":"Link & QR","shell.share.open-link":"Open share","shell.share.named-link":"Link to {name}","shell.connect.serpapi.title":"Connect SerpApi","shell.connect.serpapi.about":"The SerpApi app, and the apps you allow, will search with your SerpApi account. sys0 keeps the API key encrypted and sends it only to SerpApi; apps never see it.","shell.connect.serpapi.step":"Copy your API key from SerpApi’s API Key page.","shell.connect.serpapi.key":"API key","shell.connect.serpapi.missing":"Paste the API key first.","shell.connect.serpapi.connect":"Connect","shell.share.presentation":"Presentation","shell.share.presentation.regular":"Regular System Zero","shell.share.presentation.html":"Light HTML","shell.share.presentation.md":"Markdown","app.connect-four.notification.turn":"Connect Four with {name}","app.connect-four.notification.move":"Your move","app.connect-four.menu.rules":"How to Play…","app.connect-four.rules.title":"How to Play","app.connect-four.rules.close":"Close","app.connect-four.rules.line1":"Line up four pieces horizontally, vertically or diagonally before your opponent.","app.connect-four.rules.line2":"Click a column to drop your piece into its lowest empty space.","app.connect-four.rules.line3":"Play the computer at Easy, Medium or Hard, or challenge a friend to a match.","app.connect-four.rules.line4":"The score counts wins and draws. The coach suggests a better column; Undo takes back your move.","app.connect-four.rules.line5":"Keys: 1–7 drop a piece, U undoes, N starts a new game. Escape closes this sheet.","app.conniptions.app.description":"Find four word groups, compose original puzzles on a visual board with red herrings and connection ideas from Claude, challenge friends, or solve the daily together in a private team room.","app.conniptions.menu.about":"About {app}","app.conniptions.menu.settings":"Settings","app.conniptions.menu.quit":"Quit","app.conniptions.menu.game":"Game","app.conniptions.title":"Conniptions","app.conniptions.kicker":"A little word entanglement","app.conniptions.mode.label":"Puzzle mode","app.conniptions.mode.daily":"Daily","app.conniptions.mode.practice":"Practice","app.conniptions.action.new":"New puzzle","app.conniptions.action.help":"How to play","app.conniptions.action.close":"Back to puzzle","app.conniptions.action.shuffle":"Shuffle","app.conniptions.action.deselect":"Deselect all","app.conniptions.action.submit":"Submit","app.conniptions.action.share":"Share results","app.conniptions.action.copy":"Copy results","app.conniptions.board.label":"Find the four groups","app.conniptions.mistakes":"Mistakes remaining","app.conniptions.daily.label":"Daily puzzle","app.conniptions.practice.label":"Practice puzzle","app.conniptions.picker.title":"Pick a day","app.conniptions.picker.hint":"Since Jun 12, 2023","app.conniptions.picker.prevDay":"Previous day","app.conniptions.picker.nextDay":"Next day","app.conniptions.picker.prevMonth":"Earlier month","app.conniptions.picker.nextMonth":"Later month","app.conniptions.picker.today":"Today","app.conniptions.picker.random":"Surprise me","app.conniptions.picker.close":"Close the calendar","app.conniptions.result.won":"Untangled!","app.conniptions.result.lost":"A proper conniption.","app.conniptions.result.tomorrow":"Come back tomorrow for another puzzle, or pick an earlier day from the calendar.","app.conniptions.result.archive":"A day from the archive — it doesn’t change your streak. Pick another whenever you like.","app.conniptions.result.practice":"Another tangle of words is ready when you are.","app.conniptions.result.herrings":"Red herrings","app.conniptions.stats.played":"Played","app.conniptions.stats.wins":"Wins","app.conniptions.stats.streak":"Streak","app.conniptions.stats.best":"Best streak","app.conniptions.share.label":"Your result — select and copy to share","app.conniptions.notice.short":"Select four words first.","app.conniptions.notice.oneAway":"One away…","app.conniptions.notice.wrong":"Those words don’t form a group.","app.conniptions.notice.duplicate":"You already tried that combination.","app.conniptions.notice.full":"Four selected. Deselect one to choose another.","app.conniptions.notice.copied":"Results copied.","app.conniptions.notice.copyManually":"Select and copy your results below.","app.conniptions.rules.title":"How to play","app.conniptions.rules.goal":"Find four groups of four words with something in common.","app.conniptions.rules.select":"Select four words, then Submit. A correct group reveals its connection and leaves the board.","app.conniptions.rules.mistakes":"You have four mistakes. “One away” means three of your selected words belong together. Repeating a guess costs nothing.","app.conniptions.rules.tricks":"Watch for double meanings, phrases, and wordplay. Each word belongs to exactly one intended group.","app.conniptions.rules.colors":"Categories get trickier from yellow to green to blue to purple. Shuffle changes the order without costing a mistake.","app.conniptions.rules.daily":"Daily gives everyone the same puzzle and keeps your streak. The date picker replays any daily back to June 12, 2023 — over 900 of them — though only today’s puzzle counts toward your streak. Practice keeps a separate game of original puzzles.","app.conniptions.rules.keys":"Tab between words and use Space to select. Enter on the board submits; Escape clears your selection.","app.conniptions.rules.original":"An independent word puzzle with original content.","app.conniptions.social.compose":"Compose","app.conniptions.social.library":"Puzzles & challenges","app.conniptions.social.together":"Solve together","app.conniptions.social.home":"My puzzles","app.conniptions.composer.title":"Make a puzzle","app.conniptions.composer.intro":"Type a word in each square and choose its color. Each color is one connection of four words, from yellow (easiest) to purple (trickiest). For ideas, use Ideas on a square or Suggest words on a connection.","app.conniptions.composer.name":"Puzzle title","app.conniptions.composer.category":"Connection name","app.conniptions.composer.save":"Save puzzle","app.conniptions.composer.back":"Back to game","app.conniptions.composer.yellow":"Yellow · easiest","app.conniptions.composer.green":"Green","app.conniptions.composer.blue":"Blue","app.conniptions.composer.purple":"Purple · trickiest","app.conniptions.composer.board":"Puzzle board","app.conniptions.composer.square":"Square","app.conniptions.composer.word":"Word","app.conniptions.composer.colorOf":"Color of square","app.conniptions.composer.yellowName":"Yellow","app.conniptions.composer.greenName":"Green","app.conniptions.composer.blueName":"Blue","app.conniptions.composer.purpleName":"Purple","app.conniptions.composer.connections":"Connections","app.conniptions.composer.herrings":"Red herrings","app.conniptions.composer.addHerring":"Add red herring","app.conniptions.composer.herringsIntro":"A red herring is a partial connection that pulls players toward the wrong group, like three words from different groups that could all be fish. Players see your red herrings when they finish.","app.conniptions.composer.herringName":"Red herring","app.conniptions.composer.herringPlaceholder":"What do these words share?","app.conniptions.composer.mark":"Mark words","app.conniptions.composer.done":"Done","app.conniptions.composer.remove":"Remove","app.conniptions.composer.removeHerring":"Remove red herring","app.conniptions.composer.noWords":"No words marked yet.","app.conniptions.composer.marking":"Click the words for red herring","app.conniptions.composer.markingFull":"six words at most","app.conniptions.composer.ready":"Ready to save.","app.conniptions.composer.fix":"Fix the highlighted items to save.","app.conniptions.ideas.short":"Ideas","app.conniptions.ideas.forWord":"Find other connections for","app.conniptions.ideas.more":"Suggest words","app.conniptions.ideas.linksTitle":"Other connections for","app.conniptions.ideas.moreTitle":"More words for","app.conniptions.ideas.close":"Close","app.conniptions.ideas.thinking":"Claude is thinking…","app.conniptions.ideas.unavailable":"Couldn’t get ideas from Claude. Try again, or check that your account can use models.","app.conniptions.ideas.nothing":"Type a word or name the connection first.","app.conniptions.ideas.garbled":"Claude’s answer couldn’t be used. Try again.","app.conniptions.ideas.full":"The board is full. Clear a square to add a word.","app.conniptions.ideas.herring":"Red herring","app.conniptions.ideas.herringFor":"Make a red herring of","app.conniptions.ideas.hint":"Click a word to put it in the first empty square. Words in color are already on the board.","app.conniptions.kind.meaning":"Same meaning","app.conniptions.kind.category":"Category","app.conniptions.kind.blank":"Fill in the blank","app.conniptions.kind.compound":"Compound","app.conniptions.kind.hidden":"Hidden word","app.conniptions.kind.sound":"Sounds like","app.conniptions.kind.rhyme":"Rhymes","app.conniptions.kind.anagram":"Anagram","app.conniptions.kind.letters":"Letter play","app.conniptions.kind.culture":"Pop culture","app.conniptions.kind.other":"Wordplay","app.conniptions.validation.title":"Give your puzzle a title.","app.conniptions.validation.name":"Name this connection.","app.conniptions.validation.duplicate":"Every word must be unique across the whole puzzle.","app.conniptions.validation.empty":"Fill every square with a word.","app.conniptions.validation.count":"This connection needs exactly four words.","app.conniptions.validation.herringName":"Name this red herring.","app.conniptions.validation.herringSize":"Mark at least two words.","app.conniptions.validation.herringSpread":"Mix words from at least two connections; otherwise it is part of a real group.","app.conniptions.library.title":"Puzzles & challenges","app.conniptions.library.yours":"Puzzles you made","app.conniptions.library.empty":"Your puzzles will appear here. Compose your first puzzle to challenge someone.","app.conniptions.library.shared":"Your challenges and daily teams","app.conniptions.library.noRooms":"Challenges and team games you start or receive will appear here.","app.conniptions.library.refresh":"Refresh","app.conniptions.library.challenge":"Challenge friends","app.conniptions.library.open":"Open","app.conniptions.library.team":"Daily team","app.conniptions.library.custom":"Authored challenge","app.conniptions.library.author":"You made this puzzle","app.conniptions.library.withHerrings":"With red herrings","app.conniptions.invite.team":"Solve the daily together","app.conniptions.invite.challenge":"Challenge friends","app.conniptions.invite.intro":"Choose up to seven people. They’ll get a notification that opens this game.","app.conniptions.invite.teamInfo":"Start a fresh team board for this date. Everyone shares selections, solved groups and four mistakes. Your solo puzzle and streak stay separate.","app.conniptions.invite.challengeInfo":"Each friend gets a separate attempt. You can see their results without playing your own puzzle.","app.conniptions.invite.startTeam":"Start team game","app.conniptions.invite.send":"Send challenge","app.conniptions.invite.cancel":"Cancel","app.conniptions.invite.empty":"No other players are available yet. Add someone in sys0’s People settings.","app.conniptions.session.team":"Solving together","app.conniptions.session.challenge":"A challenge from","app.conniptions.session.members":"Players","app.conniptions.session.last":"Last action by","app.conniptions.session.teamInfo":"One board, four shared mistakes. Use Team chat below to work it out together.","app.conniptions.session.results":"Your friends’ results","app.conniptions.session.guesses":"Guesses","app.conniptions.session.mistakes":"Mistakes","app.conniptions.session.finished":"Team and challenge results stay separate from solo daily statistics.","app.conniptions.message.signin":"Sign in to compose puzzles or play with others.","app.conniptions.message.saved":"Puzzle saved. Challenge friends below.","app.conniptions.message.choosePeople":"Choose between one and seven other players.","app.conniptions.message.invalidPeople":"Choose players from the current list.","app.conniptions.message.missingPuzzle":"That puzzle is no longer available.","app.conniptions.message.notYours":"Choose one of your own puzzles.","app.conniptions.message.notMember":"This game is available only to its players.","app.conniptions.message.author":"You made this puzzle. Your friends’ results are shown below.","app.conniptions.message.alreadySet":"This room already holds another game.","app.conniptions.message.session":"Open My puzzles to compose or start another game.","app.conniptions.message.invited":"Game ready. Your friends can open it from their notifications or Puzzles & challenges.","app.conniptions.notification.together":"{name} invited you to solve Conniptions together","app.conniptions.notification.challenge":"{name} challenged you to Conniptions","app.conniptions.notification.puzzle":"Open {title} in Conniptions.","app.conniptions.rules.social":"Compose your own four-group puzzles on a board, red herrings and all, then challenge friends from Puzzles & challenges. Solve together starts a private daily team room with its own board and chat.","app.conniptions.chat.title":"Team chat","app.conniptions.chat.recent":"Most recent messages","app.conniptions.chat.empty":"Talk through the connections with your team.","app.conniptions.chat.message":"Message your team","app.conniptions.chat.send":"Send","app.conniptions.message.chatFull":"This team chat has reached 500 messages.","app.conniptions.ideas.again":"More ideas","app.conniptions.ideas.nothingSuggested":"Claude had nothing for this. Try More ideas.","app.contacts.app.name":"Contacts","app.contacts.app.toolbar":"Contact actions","app.contacts.action.new":"New Contact","app.contacts.action.print":"Print…","app.contacts.action.printList":"Print List…","app.contacts.action.edit":"Edit","app.contacts.action.done":"Done","app.contacts.action.cancel":"Cancel","app.contacts.action.delete":"Delete","app.contacts.action.vcard":"vCard","app.contacts.action.favourite":"Add Favourite","app.contacts.action.unfavourite":"Remove Favourite","app.contacts.action.removeField":"Remove field","app.contacts.action.removeAddress":"Remove address","app.contacts.group.library":"LIBRARY","app.contacts.group.all":"All Contacts","app.contacts.group.favourites":"Favourites","app.contacts.group.groups":"Groups","app.contacts.group.filter":"Contact groups","app.contacts.group.new":"New group","app.contacts.group.add":"Add group","app.contacts.group.remove":"Delete Group…","app.contacts.search.label":"Search contacts","app.contacts.search.placeholder":"Search contacts","app.contacts.contact.unnamed":"Untitled Contact","app.contacts.empty.contacts":"No contacts yet. Add someone to get started.","app.contacts.empty.search":"No matching contacts. Try another search.","app.contacts.empty.title":"Your people, beautifully organised","app.contacts.empty.select":"Select a contact to see their card.","app.contacts.field.name":"Name","app.contacts.field.first":"First name","app.contacts.field.middle":"Middle name","app.contacts.field.last":"Last name","app.contacts.field.nickname":"Nickname","app.contacts.field.company":"Company","app.contacts.field.jobTitle":"Job title","app.contacts.field.department":"Department","app.contacts.field.work":"Work","app.contacts.field.personal":"Personal","app.contacts.field.email":"Email","app.contacts.field.phone":"Phone","app.contacts.field.address":"Address","app.contacts.field.website":"Website","app.contacts.field.birthday":"Birthday","app.contacts.field.notes":"Notes","app.contacts.field.relationship":"Relationships","app.contacts.field.custom":"Custom Fields","app.contacts.field.label":"Label","app.contacts.field.street":"Street","app.contacts.field.city":"City","app.contacts.field.region":"State / region","app.contacts.field.postcode":"Postal code","app.contacts.field.country":"Country","app.contacts.add.email":"Add Email","app.contacts.add.phone":"Add Phone","app.contacts.add.website":"Add Website","app.contacts.add.address":"Add Address","app.contacts.add.relationship":"Add Relationship","app.contacts.add.custom":"Add Custom Field","app.contacts.photo.label":"Contact photo","app.contacts.photo.choose":"Choose contact photo","app.contacts.photo.remove":"Remove Photo","app.contacts.photo.hint":"PNG, JPEG or WebP · up to 512 KB","app.contacts.edit.title":"Edit Contact","app.contacts.edit.saved":"Changes save as you type.","app.contacts.delete.title":"Confirm deletion","app.contacts.delete.contact":"Delete this contact? This cannot be undone.","app.contacts.delete.group":"Delete this group? Its contacts will stay in All Contacts.","app.contacts.error.name":"Enter a name or company before finishing.","app.contacts.error.email":"Check the highlighted email address.","app.contacts.error.birthday":"Enter a valid birthday, or clear the date.","app.contacts.error.photo":"Choose a PNG, JPEG or WebP image no larger than 512 KB.","app.contacts.error.group":"This group no longer exists. Choose another group.","app.contacts.error.groupName":"Give the new group a name.","app.contacts.error.groupExists":"A group with that name already exists.","app.contacts.error.missing":"This contact is no longer available. Select another contact.","app.contacts.status.count":"{n, plural, one {# contact} other {# contacts}}","app.contacts.status.shown":"{n, plural, one {# shown} other {# shown}}","app.contacts.camera.open":"Unredact with camera","app.contacts.camera.label":"Camera view","app.contacts.camera.start":"Start camera","app.contacts.camera.flip":"Switch camera","app.contacts.camera.close":"Back to Contacts","app.contacts.problem.denied":"The camera is blocked. Allow this page to use the camera in your browser's settings, then start it again.","app.contacts.problem.missing":"No camera was found on this device.","app.contacts.problem.unavailable":"This page cannot use the camera. A browser gives the camera only to a secure (https) page.","app.contacts.problem.failed":"The camera could not start. Try again.","app.countdown.graph":"State graph","app.countdown.resetAll":"Reset all countdowns","app.countdown.first":"First countdown","app.countdown.second":"Second countdown","app.countdown.settings":"Countdown settings","app.countdown.help":"Choose duration in the countdown controls. Each countdown owns its state independently.","app.countdown.countdowninterfacestartLabel":"Start","app.countdown.countdowninterfacestartDescription":"Start or resume the countdown.","app.countdown.countdowninterfaceatLabel":"Time","app.countdown.countdowninterfaceatDescription":"Current time is supplied at submission.","app.countdown.countdowninterfaceatUnit":"milliseconds","app.countdown.countdowninterfacepauseLabel":"Pause","app.countdown.countdowninterfacepauseDescription":"Pause and keep the remaining time.","app.countdown.countdowninterfaceresetLabel":"Reset","app.countdown.countdowninterfaceresetDescription":"Return to the selected duration.","app.countdown.countdowninterfacesetMinutesLabel":"Set duration","app.countdown.countdowninterfacesetMinutesDescription":"Pause before choosing a new duration.","app.countdown.countdowninterfaceminutesLabel":"Remaining time","app.countdown.countdowninterfaceminutesDescription":"Choose 0 to 60 whole minutes.","app.countdown.countdowninterfaceminutesUnit":"minutes","app.countdown.countdowninterfacesetRemainingLabel":"Set remaining time","app.countdown.countdowninterfacesetRemainingDescription":"Wind the countdown; zero stops without completion.","app.countdown.countdowninterfacemodeValue":"State","app.countdown.countdowninterfacemodeValueUnit":"","app.countdown.countdowninterfacedurationValue":"Duration","app.countdown.countdowninterfacedurationValueUnit":"milliseconds","app.countdown.countdowninterfaceremainingValue":"Remaining at last observation","app.countdown.countdowninterfaceremainingValueUnit":"milliseconds","app.countdown.countdowninterfaceendsAtValue":"Deadline","app.countdown.countdowninterfaceendsAtValueUnit":"milliseconds","app.countdown.countdowninterfaceName":"Countdown","app.countdown.countdowninterfaceDescription":"A reusable deadline countdown.","app.countdown.countdowninterfacestartatLabel":"Time","app.countdown.countdowninterfacestartatDescription":"Current time is supplied at submission.","app.countdown.countdowninterfacestartatUnit":"milliseconds","app.countdown.countdowninterfacepauseatLabel":"Time","app.countdown.countdowninterfacepauseatDescription":"Current time is supplied at submission.","app.countdown.countdowninterfacepauseatUnit":"milliseconds","app.countdown.countdowninterfacesetMinutesminutesLabel":"Duration","app.countdown.countdowninterfacesetMinutesminutesDescription":"Choose 1 to 60 whole minutes.","app.countdown.countdowninterfacesetMinutesminutesUnit":"minutes","app.countdown.countdowninterfacesetRemainingminutesLabel":"Remaining time","app.countdown.countdowninterfacesetRemainingminutesDescription":"Choose 0 to 60 whole minutes.","app.countdown.countdowninterfacesetRemainingminutesUnit":"minutes","app.countdown.countdowninterfacesetRemainingatLabel":"Time","app.countdown.countdowninterfacesetRemainingatDescription":"Current time is supplied at submission.","app.countdown.countdowninterfacesetRemainingatUnit":"milliseconds","app.countdown.countdowninterfacePending":"Working…","app.countdown.countdowninterfaceDone":"Done","app.countdown-pair.graph":"State graph","app.countdown-pair.resetAll":"Reset all countdowns","app.countdown-pair.first":"First countdown","app.countdown-pair.second":"Second countdown","app.countdown-pair.settings":"Countdown settings","app.countdown-pair.help":"Choose duration in the countdown controls. Each countdown owns its state independently.","app.countdown-pair.countdowninterfacestartLabel":"Start","app.countdown-pair.countdowninterfacestartDescription":"Start or resume the countdown.","app.countdown-pair.countdowninterfaceatLabel":"Time","app.countdown-pair.countdowninterfaceatDescription":"Current time is supplied at submission.","app.countdown-pair.countdowninterfaceatUnit":"milliseconds","app.countdown-pair.countdowninterfacepauseLabel":"Pause","app.countdown-pair.countdowninterfacepauseDescription":"Pause and keep the remaining time.","app.countdown-pair.countdowninterfaceresetLabel":"Reset","app.countdown-pair.countdowninterfaceresetDescription":"Return to the selected duration.","app.countdown-pair.countdowninterfacesetMinutesLabel":"Set duration","app.countdown-pair.countdowninterfacesetMinutesDescription":"Pause before choosing a new duration.","app.countdown-pair.countdowninterfaceminutesLabel":"Remaining time","app.countdown-pair.countdowninterfaceminutesDescription":"Choose 0 to 60 whole minutes.","app.countdown-pair.countdowninterfaceminutesUnit":"minutes","app.countdown-pair.countdowninterfacesetRemainingLabel":"Set remaining time","app.countdown-pair.countdowninterfacesetRemainingDescription":"Wind the countdown; zero stops without completion.","app.countdown-pair.countdowninterfacemodeValue":"State","app.countdown-pair.countdowninterfacemodeValueUnit":"","app.countdown-pair.countdowninterfacedurationValue":"Duration","app.countdown-pair.countdowninterfacedurationValueUnit":"milliseconds","app.countdown-pair.countdowninterfaceremainingValue":"Remaining at last observation","app.countdown-pair.countdowninterfaceremainingValueUnit":"milliseconds","app.countdown-pair.countdowninterfaceendsAtValue":"Deadline","app.countdown-pair.countdowninterfaceendsAtValueUnit":"milliseconds","app.countdown-pair.countdowninterfaceName":"Countdown","app.countdown-pair.countdowninterfaceDescription":"A reusable deadline countdown.","app.countdown-pair.countdowninterfacestartatLabel":"Time","app.countdown-pair.countdowninterfacestartatDescription":"Current time is supplied at submission.","app.countdown-pair.countdowninterfacestartatUnit":"milliseconds","app.countdown-pair.countdowninterfacepauseatLabel":"Time","app.countdown-pair.countdowninterfacepauseatDescription":"Current time is supplied at submission.","app.countdown-pair.countdowninterfacepauseatUnit":"milliseconds","app.countdown-pair.countdowninterfacesetMinutesminutesLabel":"Duration","app.countdown-pair.countdowninterfacesetMinutesminutesDescription":"Choose 1 to 60 whole minutes.","app.countdown-pair.countdowninterfacesetMinutesminutesUnit":"minutes","app.countdown-pair.countdowninterfacesetRemainingminutesLabel":"Remaining time","app.countdown-pair.countdowninterfacesetRemainingminutesDescription":"Choose 0 to 60 whole minutes.","app.countdown-pair.countdowninterfacesetRemainingminutesUnit":"minutes","app.countdown-pair.countdowninterfacesetRemainingatLabel":"Time","app.countdown-pair.countdowninterfacesetRemainingatDescription":"Current time is supplied at submission.","app.countdown-pair.countdowninterfacesetRemainingatUnit":"milliseconds","app.countdown-pair.countdowninterfacePending":"Working…","app.countdown-pair.countdowninterfaceDone":"Done","app.focus-timer.brand":"FOCUS","app.focus-timer.focus":"Focus","app.focus-timer.short":"Short break","app.focus-timer.long":"Long break","app.focus-timer.start":"Start","app.focus-timer.pause":"Pause","app.focus-timer.resume":"Resume","app.focus-timer.reset":"Reset","app.focus-timer.next":"Next interval","app.focus-timer.ready":"Ready when you are","app.focus-timer.running":"One thing at a time","app.focus-timer.paused":"Take your time","app.focus-timer.finished":"Time well spent","app.focus-timer.minutes":"Minutes","app.focus-timer.task":"What are you working on?","app.focus-timer.completed":"Completed","app.focus-timer.graph":"State graph","app.focus-timer.remaining":"Time remaining","app.focus-timer.setDuration":"Set duration","app.focus-timer.timer":"Focus timer","app.focus-timer.toggle":"Start or pause the timer","app.focus-timer.wind":"Time remaining; turn the dial or use arrow keys","app.focus-timer.countdowninterfacestartLabel":"Start","app.focus-timer.countdowninterfacestartDescription":"Start or resume the countdown.","app.focus-timer.countdowninterfaceatLabel":"Time","app.focus-timer.countdowninterfaceatDescription":"Current time is supplied at submission.","app.focus-timer.countdowninterfaceatUnit":"milliseconds","app.focus-timer.countdowninterfacepauseLabel":"Pause","app.focus-timer.countdowninterfacepauseDescription":"Pause and keep the remaining time.","app.focus-timer.countdowninterfaceresetLabel":"Reset","app.focus-timer.countdowninterfaceresetDescription":"Return to the selected duration.","app.focus-timer.countdowninterfacesetMinutesLabel":"Set duration","app.focus-timer.countdowninterfacesetMinutesDescription":"Pause before choosing a new duration.","app.focus-timer.countdowninterfaceminutesLabel":"Remaining time","app.focus-timer.countdowninterfaceminutesDescription":"Choose 0 to 60 whole minutes.","app.focus-timer.countdowninterfaceminutesUnit":"minutes","app.focus-timer.countdowninterfacesetRemainingLabel":"Set remaining time","app.focus-timer.countdowninterfacesetRemainingDescription":"Wind the countdown; zero stops without completion.","app.focus-timer.countdowninterfacemodeValue":"State","app.focus-timer.countdowninterfacemodeValueUnit":"","app.focus-timer.countdowninterfacedurationValue":"Duration","app.focus-timer.countdowninterfacedurationValueUnit":"milliseconds","app.focus-timer.countdowninterfaceremainingValue":"Remaining at last observation","app.focus-timer.countdowninterfaceremainingValueUnit":"milliseconds","app.focus-timer.countdowninterfaceendsAtValue":"Deadline","app.focus-timer.countdowninterfaceendsAtValueUnit":"milliseconds","app.focus-timer.countdowninterfaceName":"Countdown","app.focus-timer.countdowninterfaceDescription":"A reusable deadline countdown.","app.focus-timer.countdowninterfacestartatLabel":"Time","app.focus-timer.countdowninterfacestartatDescription":"Current time is supplied at submission.","app.focus-timer.countdowninterfacestartatUnit":"milliseconds","app.focus-timer.countdowninterfacepauseatLabel":"Time","app.focus-timer.countdowninterfacepauseatDescription":"Current time is supplied at submission.","app.focus-timer.countdowninterfacepauseatUnit":"milliseconds","app.focus-timer.countdowninterfacesetMinutesminutesLabel":"Duration","app.focus-timer.countdowninterfacesetMinutesminutesDescription":"Choose 1 to 60 whole minutes.","app.focus-timer.countdowninterfacesetMinutesminutesUnit":"minutes","app.focus-timer.countdowninterfacesetRemainingminutesLabel":"Remaining time","app.focus-timer.countdowninterfacesetRemainingminutesDescription":"Choose 0 to 60 whole minutes.","app.focus-timer.countdowninterfacesetRemainingminutesUnit":"minutes","app.focus-timer.countdowninterfacesetRemainingatLabel":"Time","app.focus-timer.countdowninterfacesetRemainingatDescription":"Current time is supplied at submission.","app.focus-timer.countdowninterfacesetRemainingatUnit":"milliseconds","app.focus-timer.countdowninterfacePending":"Working…","app.focus-timer.countdowninterfaceDone":"Done","app.font-zero.menuApp":"Font Zero","app.font-zero.menuView":"View","app.font-zero.about":"About Font Zero","app.font-zero.settings":"Settings","app.font-zero.quit":"Quit","app.font-zero.previewText":"Text","app.font-zero.designFont":"Glyph","app.font-zero.editText":"Edit text","app.font-zero.previewMode":"Preview","app.font-zero.size":"Size","app.font-zero.fontSize":"Font size in pixels","app.font-zero.fit":"Fit","app.font-zero.lineHeight":"Leading","app.font-zero.padding":"Padding","app.font-zero.wrap":"Wrap","app.font-zero.within":"Within letters","app.font-zero.attractors":"Attractors","app.font-zero.add":"Add","app.font-zero.remove":"Remove","app.font-zero.showAttractors":"Show","app.font-zero.motion":"Motion","app.font-zero.glyph":"Glyph","app.font-zero.fontName":"Font name","app.font-zero.font":"Font","app.font-zero.attractorMode":"Behavior","app.font-zero.placed":"Placed on card","app.font-zero.cursor":"Follow cursor","app.font-zero.bounce":"Bouncing ball","app.font-zero.ambient":"Everywhere","app.font-zero.radius":"Radius","app.font-zero.decay":"Decay","app.font-zero.speed":"Speed","app.font-zero.x":"Across","app.font-zero.y":"Down","app.font-zero.card":"Card","app.font-zero.cardWidth":"Card width","app.font-zero.cardHeight":"Card height","app.font-zero.text":"Text","app.font-zero.saveFont":"Download font","app.font-zero.preview":"Font preview","app.font-zero.position":"Position","app.font-zero.typography":"Typography","app.font-zero.ready":"Ready","app.font-zero.lastAttractor":"Keep at least one attractor.","app.font-zero.unavailable":"Font unavailable.","app.font-zero.incompatible":"These fonts have different letter constructions.","app.font-zero.noAttractor":"Attractor not found.","app.font-zero.exportSaved":"Font saved to app files.","app.font-zero.px":"px","app.font-zero.app.description":"Design fonts with spatial attractors in 45 faces, dressed in the looks of the Mac’s eras, with native themeable controls.","app.font-zero.tools":"Font Zero tools","app.font-zero.look":"Look","app.font-zero.themeLook":"Desktop theme","app.font-zero.addAttractor":"Add attractor","app.font-zero.removeAttractor":"Remove attractor","app.font-zero.by":"×","app.font-zero.interface":"Interface","app.font-zero.interfaceHtml":"HTML","app.font-zero.interfaceRune":"Rune (WebGPU)","app.font-zero.interfaceHelp":"Rune draws the whole window from the same controls on WebGPU. Your settings stay the same in either.","app.font-zero.sizeSlider":"Adjust size","app.font-zero.sizeScrub":"Drag to adjust size. Hold Shift for finer control.","app.font-zero.sizeHelp":"Drag for scale. Arrow keys adjust by 0.1 px; Shift for 1 px.","app.font-zero.sizeInvalid":"Enter a size from 1 to 4096 px, in steps of 0.1.","app.game-2048.menu.rules":"How to Play…","app.game-2048.rules.title":"How to Play","app.game-2048.rules.close":"Close","app.game-2048.rules.line1":"Join tiles to make 2048. Keep going afterwards to chase a higher score.","app.game-2048.rules.line2":"Use the arrow keys or WASD, or swipe, to slide every tile in that direction.","app.game-2048.rules.line3":"Equal tiles merge once per move; their new value is added to your score. A new tile appears after each move.","app.game-2048.rules.line4":"The game ends when no moves remain. Undo takes back one move; finished scores enter the standings.","app.game-2048.rules.line5":"Keys: U or Backspace undoes; N starts a new game. Escape closes this sheet.","app.guppycube.notification.turn":"Guppycube with {name}","app.guppycube.notification.move":"Your move","app.hangman.menu.rules":"How to Play…","app.hangman.rules.title":"How to Play","app.hangman.rules.close":"Close","app.hangman.rules.line1":"Find the hidden word before six wrong letters complete the gallows.","app.hangman.rules.line2":"Click a letter or type it. Every matching letter is revealed; a wrong letter costs a guess.","app.hangman.rules.line3":"Choose a category for your next word. Give up reveals the answer and counts as a loss.","app.hangman.rules.line4":"Win to grow your streak; your wins, losses and best streak are kept.","app.hangman.rules.line5":"Keys: A–Z guess a letter; Enter starts another word after a game. Escape closes this sheet.","app.inventory.search":"Search your things","app.inventory.item.new":"Add item","app.inventory.phone.connect":"Connect phone","app.inventory.places":"Places","app.inventory.everything":"Everything","app.inventory.place.new":"New place","app.inventory.place.edit":"Edit place","app.inventory.capture.title":"Captures","app.inventory.capture.incoming":"Incoming scans","app.inventory.view.shelf":"Shelf","app.inventory.view.list":"List","app.inventory.view.label":"View","app.inventory.empty.title":"A place for everything.","app.inventory.empty.body":"Point your phone at a bookshelf, drawer or box. Tell Inventory what you see and where it belongs.","app.inventory.empty.hint":"Books, tools, keepsakes, cables. Anything you want to find again.","app.inventory.back":"Back to inventory","app.inventory.capture.hint":"Pictures and narration arrive here from your phone. Inventory identifies and files the things when the scan finishes.","app.inventory.capture.picture":"Captured picture","app.inventory.capture.streaming":"Streaming to Inventory","app.inventory.capture.processing":"Identifying your things…","app.inventory.capture.done":"Items filed","app.inventory.capture.identify":"Identify items","app.inventory.retry":"Retry","app.inventory.items":"items","app.inventory.review.label":"Needs review","app.inventory.review.checked":"Checked","app.inventory.review.status":"Review","app.inventory.item.edit":"Item details","app.inventory.name":"Name","app.inventory.id":"Assigned ID","app.inventory.quantity":"Quantity","app.inventory.location":"Location","app.inventory.unfiled":"Unfiled","app.inventory.kind.label":"Kind","app.inventory.kind.object":"Object","app.inventory.kind.book":"Book","app.inventory.kind.room":"Room","app.inventory.kind.shelf":"Shelf","app.inventory.kind.drawer":"Drawer","app.inventory.kind.box":"Box","app.inventory.kind.other":"Other","app.inventory.author":"Author / maker","app.inventory.barcode":"Barcode / ISBN","app.inventory.notes":"Notes","app.inventory.delete.item":"Delete item","app.inventory.delete.place":"Delete place","app.inventory.delete.item.confirm":"Delete this item? This cannot be undone.","app.inventory.delete.place.confirm":"Delete this place? This cannot be undone.","app.inventory.cancel":"Cancel","app.inventory.save":"Save","app.inventory.root":"Top level","app.inventory.scanner.title":"Inventory Scanner","app.inventory.scanner.hint":"Point at a shelf, drawer, box—or anything you want to inventory.","app.inventory.camera.start":"Open camera","app.inventory.camera.photo":"Scan photo","app.inventory.camera.record":"Record & narrate","app.inventory.camera.finish":"Finish scan","app.inventory.camera.close":"Close camera","app.inventory.camera.upload":"Photo or video","app.inventory.camera.unavailable":"Camera unavailable. Open this link over HTTPS and allow camera access.","app.inventory.narration.label":"Tell Inventory what you see","app.inventory.narration.hint":"“This is the top shelf. These are cookbooks. Label the blue box K-12.”","app.inventory.scanner.limit":"Each scan samples up to 12 frames over 36 seconds. Speak while recording, or type a description. Uploaded videos use the description below.","app.inventory.frames":"Frames sent","app.inventory.speech.unavailable":"Speech recognition is unavailable here. Type your narration or use keyboard dictation.","app.inventory-scanner.search":"Search your things","app.inventory-scanner.item.new":"Add item","app.inventory-scanner.phone.connect":"Connect phone","app.inventory-scanner.places":"Places","app.inventory-scanner.everything":"Everything","app.inventory-scanner.place.new":"New place","app.inventory-scanner.place.edit":"Edit place","app.inventory-scanner.capture.title":"Captures","app.inventory-scanner.capture.incoming":"Incoming scans","app.inventory-scanner.view.shelf":"Shelf","app.inventory-scanner.view.list":"List","app.inventory-scanner.empty.title":"A place for everything.","app.inventory-scanner.empty.body":"Point your phone at a bookshelf, drawer or box. Tell Inventory what you see and where it belongs.","app.inventory-scanner.empty.hint":"Books, tools, keepsakes, cables. Anything you want to find again.","app.inventory-scanner.back":"Back to inventory","app.inventory-scanner.capture.hint":"Pictures and narration arrive here from your phone. Inventory identifies and files the things when the scan finishes.","app.inventory-scanner.capture.picture":"Captured picture","app.inventory-scanner.capture.streaming":"Streaming to Inventory","app.inventory-scanner.capture.processing":"Identifying your things…","app.inventory-scanner.capture.done":"Items filed","app.inventory-scanner.capture.identify":"Identify items","app.inventory-scanner.retry":"Retry","app.inventory-scanner.items":"items","app.inventory-scanner.review.label":"Needs review","app.inventory-scanner.review.checked":"Checked","app.inventory-scanner.item.edit":"Item details","app.inventory-scanner.name":"Name","app.inventory-scanner.id":"Assigned ID","app.inventory-scanner.quantity":"Quantity","app.inventory-scanner.location":"Location","app.inventory-scanner.places.refresh":"Refresh places","app.inventory-scanner.unfiled":"Unfiled","app.inventory-scanner.kind.label":"Kind","app.inventory-scanner.kind.object":"Object","app.inventory-scanner.kind.book":"Book","app.inventory-scanner.kind.room":"Room","app.inventory-scanner.kind.shelf":"Shelf","app.inventory-scanner.kind.drawer":"Drawer","app.inventory-scanner.kind.box":"Box","app.inventory-scanner.kind.other":"Other","app.inventory-scanner.author":"Author / maker","app.inventory-scanner.barcode":"Barcode / ISBN","app.inventory-scanner.notes":"Notes","app.inventory-scanner.delete.label":"Delete","app.inventory-scanner.delete.confirm":"Delete this entry?","app.inventory-scanner.cancel":"Cancel","app.inventory-scanner.save":"Save","app.inventory-scanner.root":"Top level","app.inventory-scanner.scanner.title":"Inventory Scanner","app.inventory-scanner.scanner.hint":"Point at a shelf, drawer, box—or anything you want to inventory.","app.inventory-scanner.camera.start":"Open camera","app.inventory-scanner.camera.photo":"Scan photo","app.inventory-scanner.camera.record":"Record & narrate","app.inventory-scanner.camera.finish":"Finish scan","app.inventory-scanner.camera.close":"Close camera","app.inventory-scanner.camera.upload":"Photo or video","app.inventory-scanner.camera.unavailable":"Camera unavailable. Open this link over HTTPS and allow camera access.","app.inventory-scanner.narration.label":"Tell Inventory what you see","app.inventory-scanner.narration.hint":"“This is the top shelf. These are cookbooks. Label the blue box K-12.”","app.inventory-scanner.scanner.limit":"Each scan samples up to 12 frames over 36 seconds. Speak while recording, or type a description. Uploaded videos use the description below.","app.inventory-scanner.frames":"Frames sent","app.inventory-scanner.speech.unavailable":"Speech recognition is unavailable here. Type your narration or use keyboard dictation.","app.lounge.app.description":"One group chat for everyone on this sys0, and a thread for each game between the same people, which only they can open: challenges, results and talk, the newest at the bottom. People show who is around; Standings keeps match records and the named solo bests.","app.lounge.menu.about":"About {app}","app.lounge.menu.settings":"Settings","app.lounge.menu.quit":"Quit","app.lounge.log.label":"Messages","app.lounge.log.empty":"Nobody has said anything yet. Say hello.","app.lounge.compose.label":"Message","app.lounge.compose.placeholder":"Write a message","app.lounge.compose.send":"Send","app.lounge.rooms.label":"Your threads","app.lounge.rooms.title":"Your games","app.lounge.rooms.none":"No games yet. Challenge someone.","app.lounge.rooms.challenged":"Challenge!","app.lounge.game.c4":"Connect Four","app.lounge.game.ttt":"Tic-Tac-Toe","app.lounge.game.gc":"Guppycube","app.lounge.challenge.new":"New challenge…","app.lounge.challenge.game":"Game","app.lounge.challenge.nobody":"Nobody else has joined this sys0 yet.","app.lounge.challenge.cancel":"Cancel","app.lounge.thread.table":"Open the game","app.lounge.card.label":"Challenge","app.lounge.card.you":"challenged you.","app.lounge.card.waiting":"challenged: waiting for an answer.","app.lounge.card.accepted":"challenged: accepted.","app.lounge.card.declined":"challenged: declined.","app.lounge.card.accept":"Accept","app.lounge.card.decline":"Decline","app.lounge.event.challenge":"sent a challenge.","app.lounge.event.accepted":"accepted the challenge.","app.lounge.event.declined":"declined the challenge.","app.lounge.event.won":"won the game.","app.lounge.event.draw":"The game was a draw.","app.lounge.error.signin":"Sign in to post to the Lounge.","app.lounge.error.empty":"Write something first.","app.lounge.error.long":"That message is too long: keep it under 2,000 characters.","app.lounge.error.player":"Only this game's players can do that.","app.lounge.error.challenge":"There is no challenge for you to answer.","app.lounge.error.players":"Choose someone to challenge.","app.lounge.status.count":"{n, plural, one {# message} other {# messages}}","app.lounge.watch.title":"Games you can watch","app.lounge.notification.challenge":"{name} challenged you to {game, select, connectfour {Connect Four} tictactoe {Tic-Tac-Toe} guppycube {Guppycube} reversi {Reversi} checkers {Checkers} mancala {Mancala} dotsandboxes {Dots and Boxes} wordtiles {Word Tiles} other {a game}}","app.lounge.notification.game":"{game, select, connectfour {Connect Four} tictactoe {Tic-Tac-Toe} guppycube {Guppycube} reversi {Reversi} checkers {Checkers} mancala {Mancala} dotsandboxes {Dots and Boxes} wordtiles {Word Tiles} other {a game}}","app.lounge.notification.accepted":"{name} accepted your challenge","app.lounge.notification.declined":"{name} declined your challenge","app.lounge.notification.thread":"{name} · {game, select, connectfour {Connect Four} tictactoe {Tic-Tac-Toe} guppycube {Guppycube} reversi {Reversi} checkers {Checkers} mancala {Mancala} dotsandboxes {Dots and Boxes} wordtiles {Word Tiles} other {a game}}","app.lounge.notification.lounge":"{name} in the Lounge","app.lounge.notification.won":"{name} won {game, select, connectfour {Connect Four} tictactoe {Tic-Tac-Toe} guppycube {Guppycube} reversi {Reversi} checkers {Checkers} mancala {Mancala} dotsandboxes {Dots and Boxes} wordtiles {Word Tiles} other {a game}}","app.lounge.notification.draw":"A draw in {game, select, connectfour {Connect Four} tictactoe {Tic-Tac-Toe} guppycube {Guppycube} reversi {Reversi} checkers {Checkers} mancala {Mancala} dotsandboxes {Dots and Boxes} wordtiles {Word Tiles} other {a game}}","app.lounge.people.title":"People","app.lounge.people.playing":"playing","app.lounge.people.online":"online","app.lounge.people.idle":"idle","app.lounge.people.offline":"offline","app.lounge.people.seen":"last seen","app.lounge.standings.title":"Standings","app.lounge.standings.back":"Back","app.lounge.standings.player":"Player","app.lounge.standings.w":"W","app.lounge.standings.l":"L","app.lounge.standings.d":"D","app.lounge.standings.bests":"Bests","app.lounge.game.snake":"Snake","app.lounge.game.2048":"2048","app.lounge.game.mines":"Minesweeper · Expert seconds","app.lounge.game.memory":"Memory · 6×6 moves","app.lounge.game.typing":"Typing Test · WPM","app.lounge.event.beat":"beat","app.lounge.event.at":"at","app.lounge.event.drew":"drew at","app.lounge.rooms.yours":"Your move","app.lounge.rooms.theirs":"Their move","app.lounge.game.reversi":"Reversi","app.lounge.game.checkers":"Checkers","app.lounge.game.mancala":"Mancala","app.lounge.game.dotsandboxes":"Dots and Boxes","app.lounge.game.wordtiles":"Word Tiles","app.mailcraft.app.description":"An Outlook-style mail app after ArtCraft's MailCraft: Google mail through the google provider and IMAP/SMTP accounts through MailCraft's Rust core, with search, drafts, replies and optional shader effects.","app.mailcraft.toolbar.label":"Mail","app.mailcraft.toolbar.new":"New message","app.mailcraft.toolbar.newHint":"New message (C)","app.mailcraft.toolbar.refresh":"Refresh","app.mailcraft.toolbar.refreshHint":"Fetch new mail (F9)","app.mailcraft.toolbar.resume":"Back to draft","app.mailcraft.toolbar.search":"Search","app.mailcraft.toolbar.searchLabel":"Search this folder","app.mailcraft.toolbar.clear":"Clear","app.mailcraft.folders.label":"Folders","app.mailcraft.folders.loading":"Loading folders","app.mailcraft.folders.googleHint":"Connect Google in Connectors, then press Refresh.","app.mailcraft.list.label":"Messages","app.mailcraft.list.loading":"Loading messages…","app.mailcraft.list.firstLoad":"Opening your mailboxes…","app.mailcraft.list.emptyTitle":"Nothing here","app.mailcraft.list.emptyText":"This folder has no messages. New mail appears here when you refresh.","app.mailcraft.list.noResultsTitle":"No messages match","app.mailcraft.list.noResultsText":"Try other words, or fewer of them.","app.mailcraft.list.clearSearch":"Clear search","app.mailcraft.list.failedTitle":"Messages unavailable","app.mailcraft.list.failedText":"The mailbox did not answer. Check the connection, then try again.","app.mailcraft.list.retry":"Try again","app.mailcraft.list.noFolder":"Choose a folder to see its messages.","app.mailcraft.list.more":"Load more","app.mailcraft.detail.label":"Reading pane","app.mailcraft.reader.opening":"Opening the message…","app.mailcraft.reader.failedTitle":"Message unavailable","app.mailcraft.reader.failedText":"It could not be opened.","app.mailcraft.reader.retry":"Try again","app.mailcraft.reader.noneTitle":"Select a message to read it","app.mailcraft.reader.noneText":"Press J and K to move through the list, ? for every shortcut.","app.mailcraft.reader.actions":"Message actions","app.mailcraft.reader.back":"‹ Messages","app.mailcraft.reader.editDraft":"Edit draft","app.mailcraft.reader.reply":"Reply","app.mailcraft.reader.replyAll":"Reply all","app.mailcraft.reader.forward":"Forward","app.mailcraft.reader.archive":"Archive","app.mailcraft.reader.delete":"Delete","app.mailcraft.reader.toInbox":"Move to Inbox","app.mailcraft.reader.junk":"Junk","app.mailcraft.reader.star":"Star","app.mailcraft.reader.to":"To:","app.mailcraft.reader.cc":"Cc:","app.mailcraft.reader.attachments":"Attachments","app.mailcraft.reader.embeddedNote":"This message carries pictures of its own.","app.mailcraft.reader.showPictures":"Show pictures","app.mailcraft.reader.noText":"This message has no text.","app.mailcraft.compose.back":"‹ Messages","app.mailcraft.compose.from":"From","app.mailcraft.compose.to":"To","app.mailcraft.compose.cc":"Cc","app.mailcraft.compose.subject":"Subject","app.mailcraft.compose.message":"Message","app.mailcraft.compose.send":"Send","app.mailcraft.compose.sendHint":"Send (⌘↩ or Ctrl+Enter)","app.mailcraft.compose.save":"Save draft","app.mailcraft.compose.discard":"Discard draft","app.mailcraft.compose.hint":"Save draft keeps it in the account's Drafts; nothing is sent until you press Send.","app.mailcraft.sent.title":"Message sent","app.mailcraft.sent.done":"Done","app.mailcraft.accounts.back":"‹ Messages","app.mailcraft.accounts.title":"Accounts","app.mailcraft.accounts.googleNote":"Google mail, through the Google connection in Connectors.","app.mailcraft.accounts.imapNote":"IMAP and SMTP, through MailCraft's engine.","app.mailcraft.accounts.remove":"Remove","app.mailcraft.accounts.confirm":"Remove this account from MailCraft? Its mail stays on its server; MailCraft forgets the account and its password.","app.mailcraft.accounts.keep":"Keep account","app.mailcraft.accounts.confirmRemove":"Remove account","app.mailcraft.accounts.addTitle":"Add an IMAP account","app.mailcraft.accounts.addHint":"Gmail, Fastmail, iCloud, Yahoo, AOL, Zoho, Microsoft 365, GMX, mailbox.org, Purelymail or Migadu. Most need an app password rather than your usual one.","app.mailcraft.accounts.email":"Email address","app.mailcraft.accounts.name":"Your name","app.mailcraft.accounts.password":"Password or app password","app.mailcraft.accounts.add":"Add account","app.mailcraft.accounts.checking":"Checking the account…","app.mailcraft.accounts.noAnswer":"MailCraft's engine did not answer.","app.mailcraft.status.retry":"Try again","app.mailcraft.status.dismiss":"Dismiss","app.mailcraft.keys.title":"Keyboard shortcuts","app.mailcraft.keys.key":"Key","app.mailcraft.keys.command":"Does","app.mailcraft.keys.next":"Next message","app.mailcraft.keys.previous":"Previous message","app.mailcraft.keys.compose":"New message","app.mailcraft.keys.reply":"Reply","app.mailcraft.keys.replyAll":"Reply all","app.mailcraft.keys.forward":"Forward","app.mailcraft.keys.archive":"Archive","app.mailcraft.keys.delete":"Delete","app.mailcraft.keys.junk":"Move to Junk","app.mailcraft.keys.star":"Star or unstar","app.mailcraft.keys.read":"Mark read or unread","app.mailcraft.keys.search":"Search","app.mailcraft.keys.refresh":"Refresh","app.mailcraft.keys.send":"Send, while writing","app.mailcraft.keys.back":"Back, or leave a field","app.mailcraft.keys.help":"Show these shortcuts","app.mailcraft.keys.close":"Close","app.mailcraft.effects.label":"Effects","app.mailcraft.effects.off":"Off","app.mailcraft.effects.aurora":"Aurora","app.mailcraft.effects.neon":"Neon","app.mailcraft.effects.electric":"Electric","app.mailcraft.effects.inferno":"Inferno","app.mailcraft.effects.preview":"Preview","app.mailcraft.effects.previewHint":"Play every effect once in this mode","app.mailcraft.effects.reduced":"Effects are off: your system asks for reduced motion.","app.mailcraft.effects.noGl":"Effects need WebGL 2, which this browser did not give.","app.mailcraft.keys.k.j":"J","app.mailcraft.keys.k.k":"K","app.mailcraft.keys.k.c":"C","app.mailcraft.keys.k.n":"N","app.mailcraft.keys.k.r":"R","app.mailcraft.keys.k.a":"A","app.mailcraft.keys.k.f":"F","app.mailcraft.keys.k.e":"E","app.mailcraft.keys.k.delete":"Delete","app.mailcraft.keys.k.s":"S","app.mailcraft.keys.k.u":"U","app.mailcraft.keys.k.f9":"F9","app.mailcraft.keys.k.send":"⌘↩ or Ctrl+Enter","app.mailcraft.keys.k.esc":"Esc","app.mailcraft.folders.manage":"Accounts…","app.mailcraft.accounts.provider":"Mail service","app.mailcraft.accounts.chooseProvider":"Choose a service…","app.mailcraft.accounts.onlyThese":"MailCraft may reach only these services' mail servers; it refuses any other server.","app.mailcraft.accounts.evidence":"For now sys0 records every call's input as evidence, in plain text in its storage: the password you type here included. Use an app password you can revoke, not your main password.","app.mailcraft.folders.needsPassword":"MailCraft was restarted and needs this account's password again.","app.mailcraft.folders.enterPassword":"Enter password","app.mailcraft.list.passwordTitle":"Password needed","app.mailcraft.list.passwordText":"MailCraft keeps passwords only while it runs. Enter this account's password again to read its mail.","app.mailcraft.signin.title":"Sign in again","app.mailcraft.signin.text":"MailCraft keeps an account's password only while it runs, and it was restarted. Enter the password again to read and send this account's mail.","app.mailcraft.signin.password":"Password or app password","app.mailcraft.signin.provider":"Mail service","app.mailcraft.signin.submit":"Sign in","app.mailcraft.signin.cancel":"Cancel","app.mailcraft.signin.checking":"Signing in…","app.mailcraft.signin.noAnswer":"MailCraft's engine did not answer.","app.memory.menu.rules":"How to Play…","app.memory.rules.title":"How to Play","app.memory.rules.close":"Close","app.memory.rules.line1":"Find every pair of matching cards.","app.memory.rules.line2":"Click two face-down cards. Matching cards stay up; a missed pair turns back down.","app.memory.rules.line3":"Choose a 4 × 4 or 6 × 6 board for a new game.","app.memory.rules.line4":"Each pair you try counts as one move. Fewer moves and a faster finish improve your best; 6 × 6 wins enter the standings.","app.memory.rules.line5":"Use Tab and Enter to choose cards. Escape closes this sheet.","app.messages.app.name":"0Chat","app.messages.list.label":"Conversations","app.messages.thread.label":"Messages","app.messages.thread.you":"You","app.messages.search.label":"Search conversations","app.messages.search.placeholder":"Search","app.messages.compose.label":"Message","app.messages.compose.placeholder":"Write a message","app.messages.compose.send":"Send","app.messages.empty.title":"Welcome to 0Chat","app.messages.empty.waiting":"Reading conversations from your Mac…","app.messages.empty.select":"Choose a conversation to read it.","app.messages.empty.search":"No matching conversations.","app.messages.message.attachments":"{n, plural, one {# attachment} other {# attachments}}","app.messages.status.count":"{n, plural, one {# conversation} other {# conversations}}","app.messages.notice.nodevice":"No Mac is paired. Pair the Mac companion to read and send messages.","app.messages.notice.sync":"The Mac's messages could not be read just now. Trying again shortly.","app.messages.notice.failed":"The message was not sent. Try it again, or edit it.","app.messages.notice.uncertain":"The Mac may or may not have sent that message. Check Messages on the Mac before sending it again.","app.messages.notice.offline":"The Mac is not reachable, so nothing was sent. Try again once it is back.","app.messages.thread.me":"Me","app.messages.status.shown":"{n, plural, one {# shown} other {# shown}}","app.messages.list.you":"You:","app.messages.thread.people":"{n, plural, one {# person} other {# people}}","app.messages.thread.loading":"Loading earlier messages…","app.messages.thread.start":"This is as far back as your Mac's archive goes.","app.messages.thread.sending":"Sending…","app.messages.thread.failed":"Not delivered.","app.messages.thread.retry":"Try again","app.messages.thread.edit":"Edit","app.messages.thread.remove":"Delete","app.messages.thread.unsure":"This may have been sent. Check Messages on the Mac first.","app.messages.thread.again":"Send again","app.messages.thread.latest":"New messages ↓","app.messages.day.today":"Today","app.messages.day.yesterday":"Yesterday","app.messages.time":"{n, time, ::jmm}","app.messages.when.weekday":"{n, date, ::EEE}","app.messages.when.date":"{n, date, ::MMMd}","app.messages.when.year":"{n, date, ::yMMMd}","app.messages.day.weekday":"{n, date, ::EEEE}","app.messages.day.date":"{n, date, ::EEEEMMMMd}","app.messages.day.year":"{n, date, ::yEEEEMMMMd}","app.messages.agent.label":"Agent","app.messages.agent.identify":"Use as agent","app.messages.agent.remove":"Remove agent designation","app.messages.agent.name":"Agent name","app.metering.tab.meters":"Meters","app.metering.tab.running":"Running","app.metering.tab.costs":"Costs","app.metering.tab.bucket":"Bucket","app.metering.tab.account":"Account","app.metering.bucket.label":"The bucket","app.metering.bucket.census":"Listed","app.metering.bucket.unlisted":"Not listed yet","app.metering.bucket.objects":"Objects","app.metering.bucket.bytes":"Bytes","app.metering.bucket.name":"Bucket","app.metering.requests.label":"Requests","app.metering.requests.since":"Counted from","app.metering.requests.none":"None counted yet","app.metering.requests.class":"Class","app.metering.requests.counted":"Counted","app.metering.requests.month":"A month at this rate","app.metering.requests.a":"Class A: writes and listings","app.metering.requests.b":"Class B: reads","app.metering.requests.free":"Deletes","app.metering.month.label":"A month (estimate)","app.metering.month.storage":"Storage","app.metering.month.a":"Class A requests","app.metering.month.b":"Class B requests","app.metering.month.egress":"Egress","app.metering.month.total":"Total","app.metering.rates.label":"Rates","app.metering.rates.service":"Service","app.metering.rates.storage":"Storage, a GB-month","app.metering.rates.a":"Class A, a million","app.metering.rates.b":"Class B, a million","app.metering.rates.egress":"Egress, a GB","app.metering.rates.source":"Source","app.metering.rates.checked":"Checked","app.metering.rates.operator":"The operator's own","app.metering.rates.free":"Free each month","app.metering.kinds.label":"By place","app.metering.largest.label":"Holding most","app.metering.busiest.label":"Asked most","app.metering.col.place":"Place","app.metering.col.kind":"Kind","app.metering.col.objects":"Objects","app.metering.col.bytes":"Bytes","app.metering.col.a":"Class A","app.metering.col.b":"Class B","app.metering.col.month":"Stored and asked, a month","app.metering.col.person":"Person","app.metering.col.asleep":"Asleep, a month","app.metering.col.stored":"Stored and asked, a month","app.metering.col.awake":"Running now, an hour","app.metering.col.compute":"Compute, 30 days","app.metering.col.models":"Models, 30 days","app.metering.kind":"{n, select, apps {App definitions} instances {Instances} homes {Homes} desktops {Saved desktops} branches {Private app versions} surfaces {Launch surfaces} evidence {Evidence} other {sys0}}","app.metering.part":"{n, select, home {Home} instances {Instances} desktop {Saved desktop} branches {Private app versions} other {Launch surfaces}}","app.metering.account.label":"Your account","app.metering.account.none":"No account: this desktop is nobody's","app.metering.account.home":"Home","app.metering.account.instances":"Instances of your own","app.metering.account.asleep":"Asleep: stored, nothing running, a month","app.metering.account.requests":"Requests, a month at this rate","app.metering.account.month":"Stored and asked, a month (estimate)","app.metering.account.awake":"Running now, an hour","app.metering.account.running":"Parts running now","app.metering.account.compute":"Compute spent, last 30 days","app.metering.account.models":"Models spent, last 30 days","app.metering.accounts.label":"Everyone's accounts","app.metering.bucket.next":"Next listing","app.metering.bucket.listing":"Listing now","app.metering.requests.boots":"Kernel boots","app.metering.requests.ofBoots":"Of them, boots","app.metering.requests.short":"Under a day counted: no month is projected","app.metering.counted.label":"What the requests counted cost","app.metering.col.amount":"Amount","app.metering.col.list":"List price","app.metering.col.free":"Free allowance","app.metering.col.billed":"Billed","app.metering.col.from":"From","app.metering.col.storage":"Storage, a month","app.metering.col.requests":"Requests counted","app.metering.col.requestsMonth":"Requests, a month","app.metering.col.counted":"Requests counted","app.metering.account.made":"Made","app.metering.account.by":"Listed by","app.metering.account.byCensus":"The bucket's census","app.metering.account.byOwn":"Its own places","app.metering.account.unlisted":"Not listed since the account was made","app.metering.account.counted":"Requests counted","app.metering.account.over":"Over","app.metering.account.cost":"Requests counted, list price","app.metering.account.short":"Under a day counted","app.metering.col.ops":"By operation","app.minesweeper.menu.rules":"How to Play…","app.minesweeper.rules.title":"How to Play","app.minesweeper.rules.close":"Close","app.minesweeper.rules.line1":"Reveal every safe square without opening a mine.","app.minesweeper.rules.line2":"Click to reveal. A number tells how many mines touch that square, including diagonally.","app.minesweeper.rules.line3":"Right-click to flag a suspected mine, or turn on Flag mode. Click a revealed number to open its neighbours when its flags match.","app.minesweeper.rules.line4":"Choose Beginner, Intermediate or Expert. Finish faster to beat your best time; Expert wins enter the standings.","app.minesweeper.rules.line5":"Keys: F toggles Flag mode; N or F2 starts a new game. Escape closes this sheet.","app.schemer.library":"Library","app.schemer.new.label":"New Schema","app.schemer.refresh":"Refresh","app.schemer.name":"Name","app.schemer.create":"Create","app.schemer.cancel":"Cancel","app.schemer.schemas.label":"Schemas","app.schemer.reading":"Reading the library…","app.schemer.empty.library":"The library holds no schemas.","app.schemer.sensitive":"Sensitive","app.schemer.schema":"Schema","app.schemer.empty.selection":"Choose a schema to explore its fields and privacy settings.","app.schemer.new.hint":"This schema joins the library when you save it.","app.schemer.edit":"Edit","app.schemer.save":"Save","app.schemer.revert":"Revert","app.schemer.delete":"Delete","app.schemer.fields.title":"Fields","app.schemer.plaintype":"PlainType","app.schemer.json.label":"JSON","app.schemer.resolved.label":"Resolved","app.schemer.uses.label":"Uses","app.schemer.json.schema":"JSON Schema","app.schemer.resolved.unsaved":"Save this schema to see its resolved form.","app.schemer.uses.unsaved":"Nothing uses this schema until it is saved.","app.schemer.apps.label":"Apps","app.schemer.apps.empty":"No apps use this schema.","app.schemer.uses.schemas":"Schemas that use this one","app.schemer.uses.empty":"No other schemas use this one.","app.schemer.fields.sensitive":"Sensitive fields","app.schemer.fields.none":"None of these fields are sensitive.","app.schemer.fields.unsaved":"Save the schema before changing its field settings.","app.schemer.fields.draft":"Save or revert your text changes to use these switches.","app.schemer.fields.hint":"Changes apply immediately everywhere this schema is used. Sensitive groups protect every field inside them.","app.schemer.fields.field":"Field","app.schemer.fields.type":"{n, select, string {Text} integer {Whole number} number {Number} boolean {Yes / no} object {Group} array {List} choice {Choice} null {Empty} other {Value}}","app.schemer.fields.protect":"Protect {n}","app.schemer.fields.inherited":"Inherited protection","app.schemer.fields.parent":"From {n}","app.schemer.fields.source":"Open {n} →","app.schemer.schemas.count":"{n, plural, one {# schema} other {# schemas}}","app.schemer.apps.count":"{n, plural, one {Used by # app} other {Used by # apps}}","app.schemer.saved":"Saved. Your changes are live.","app.schemer.not.changed":"No changes applied.","app.snake.menu.rules":"How to Play…","app.snake.rules.title":"How to Play","app.snake.rules.close":"Close","app.snake.rules.line1":"Eat food to grow your snake and increase your score.","app.snake.rules.line2":"Eat fruit for points: apples and oranges score 1, cherries and strawberries 2, watermelon and kiwi 3.","app.snake.rules.line3":"Avoid your body and the poop. New poop appears every eight steps; the oldest disappears when there are more than three.","app.snake.rules.line4":"Each food scores one point and speeds you up. Finished scores enter the standings.","app.snake.rules.line5":"Keys: Space or P pauses and resumes; N starts a new game. Opening this sheet pauses play; Escape closes it.","app.sudoku.menu.rules":"How to Play…","app.sudoku.rules.title":"How to Play","app.sudoku.rules.close":"Close","app.sudoku.rules.line1":"Fill each row, column and 3 × 3 box with the digits 1–9, each exactly once.","app.sudoku.rules.line2":"Select an empty cell, then click a digit or type 1–9. Given digits stay fixed.","app.sudoku.rules.line3":"Use pencil marks to note possibilities. Check marks mistakes; Hint fills one cell.","app.sudoku.rules.line4":"Choose Easy, Medium or Hard. Your fastest completion is kept for each level.","app.sudoku.rules.line5":"Keys: arrows move, Backspace or Delete clears, P toggles pencil, U undoes. Escape closes this sheet.","app.themer.app.description":"Every theme's tokens, edited live: change one and every window wears it at once. Make a theme of your own, save it to your own fork, and propose it to sys0 as a pull request.","app.themer.menu.about":"About {app}","app.themer.menu.settings":"Settings","app.themer.menu.quit":"Quit","app.themer.menu.theme":"Theme","app.themer.menu.new":"New Theme","app.themer.menu.save":"Save","app.themer.menu.revert":"Revert","app.themer.menu.propose":"Propose to sys0","app.themer.menu.view":"View","app.themer.menu.refresh":"Refresh","app.themer.themes":"Themes","app.themer.choose.theme":"Choose a theme","app.themer.tokens":"Tokens","app.themer.edited":"Edited","app.themer.new.name":"Name of the new theme","app.themer.new.label":"New Theme","app.themer.create":"Create","app.themer.cancel":"Cancel","app.themer.refresh":"Refresh","app.themer.choose":"Choose a theme to edit its tokens. Every change shows at once, in this window and every window that wears the theme.","app.themer.drawn.on":"Drawn on","app.themer.search":"Find a token","app.themer.section":"Section","app.themer.all":"All tokens","app.themer.condition":"Condition","app.themer.everywhere":"Everywhere","app.themer.revert":"Revert","app.themer.no.match":"No token matches.","app.themer.reset":"Reset to saved","app.themer.message":"What this save changes (optional)","app.themer.go.to":"Show the token, and every token drawn from it:","app.themer.save":"Save","app.themer.propose":"Propose to sys0","app.themer.proposal":"Pull request","app.themer.contrast.count":"{n, plural, one {# colour pair contrasts too little} other {# colour pairs contrast too little}}","app.themer.changed.count":"{n, plural, =0 {Nothing unsaved} one {# file unsaved} other {# files unsaved}}","app.themer.saves.count":"{n, plural, =0 {nothing to propose} one {# save not in sys0} other {# saves not in sys0}}","app.tic-tac-toe.notification.turn":"Tic-Tac-Toe with {name}","app.tic-tac-toe.notification.move":"Your move","app.tic-tac-toe.menu.rules":"How to Play…","app.tic-tac-toe.rules.title":"How to Play","app.tic-tac-toe.rules.close":"Close","app.tic-tac-toe.rules.line1":"Make a line of three marks across, down or diagonally. A full board with no line is a draw.","app.tic-tac-toe.rules.line2":"Click an empty square to place your mark.","app.tic-tac-toe.rules.line3":"Play an Easy or Perfect computer, or challenge a friend. The challenger starts as X.","app.tic-tac-toe.rules.line4":"Your score counts wins, losses and draws; Undo takes back your last move.","app.tic-tac-toe.rules.line5":"Keys: 1–9 choose a square, U undoes, N starts a new game. Escape closes this sheet.","app.todoist.app.description":"A to-do list with Inbox, Today and Upcoming views, projects in groups, and quick add.","app.todoist.menu.about":"About {app}","app.todoist.menu.settings":"Settings","app.todoist.menu.quit":"Quit","app.todoist.menu.task":"Task","app.todoist.menu.newTask":"New Task","app.todoist.title.of":"{n, select, __inbox__ {Inbox} __blank__ {Untitled} __today__ {Today} __tomorrow__ {Tomorrow} __upcoming__ {Upcoming} __labels__ {Filters & Labels} __search__ {Search} __overdue__ {Overdue} __nosection__ {No section} other {{n}}}","app.todoist.date.short":"{n, date, ::EEEMMMd}","app.todoist.date.monthDay":"{n, date, ::MMMd}","app.todoist.date.weekday":"{n, date, ::EEEE}","app.todoist.time.am":"{n} AM","app.todoist.time.pm":"{n} PM","app.todoist.common.cancel":"Cancel","app.todoist.common.close":"Close","app.todoist.common.rename":"Rename","app.todoist.common.done":"Done","app.todoist.task.add":"Add task","app.todoist.task.name":"Task name","app.todoist.task.complete":"Complete {n, select, __inbox__ {Inbox} __today__ {Today} __tomorrow__ {Tomorrow} __upcoming__ {Upcoming} __labels__ {Filters & Labels} __blank__ {Untitled} other {{n}}}","app.todoist.task.completeThis":"Complete task","app.todoist.task.delete":"Delete task","app.todoist.task.deleteNamed":"Delete {n, select, __inbox__ {Inbox} __today__ {Today} __tomorrow__ {Tomorrow} __upcoming__ {Upcoming} __labels__ {Filters & Labels} __blank__ {Untitled} other {{n}}}","app.todoist.task.openParent":"Open parent","app.todoist.task.subtaskOf":"Subtask of “{n}”","app.todoist.search.placeholder":"Search","app.todoist.search.results":"Results for “{n}”","app.todoist.done.show":"Show completed","app.todoist.empty.quiet":"Nothing here. Enjoy the quiet.","app.todoist.status.open":"{n} open","app.todoist.status.done":"{n} done","app.todoist.form.legend":"New task","app.todoist.form.placeholder":"e.g. Buy milk tomorrow 5pm p1 #Groceries @errands","app.todoist.field.description":"Description","app.todoist.field.due":"Due date","app.todoist.field.time":"Time","app.todoist.field.priority":"Priority","app.todoist.field.project":"Project","app.todoist.field.section":"Section","app.todoist.field.labels":"Labels","app.todoist.priority.name":"Priority {n}","app.todoist.priority.flag":"P{n}","app.todoist.project.addTo":"Add project to {n}","app.todoist.project.name":"Project name","app.todoist.project.deleteAsk":"{n, select, __blank__ {Delete this project?} other {Delete “{n}”?}}","app.todoist.project.deleteCount":"{n, plural, one {# task will be deleted too.} other {# tasks will be deleted too.}}","app.todoist.project.deleteConfirm":"Yes, delete {n, select, __inbox__ {Inbox} __today__ {Today} __tomorrow__ {Tomorrow} __upcoming__ {Upcoming} __labels__ {Filters & Labels} __blank__ {Untitled} other {{n}}}","app.todoist.project.delete":"Delete project","app.todoist.section.name":"Section name","app.todoist.section.add":"Add section","app.todoist.section.delete":"Delete section {n, select, __inbox__ {Inbox} __today__ {Today} __tomorrow__ {Tomorrow} __upcoming__ {Upcoming} __labels__ {Filters & Labels} __blank__ {Untitled} other {{n}}}","app.todoist.label.new":"New label","app.todoist.label.newEnter":"New label, then Enter","app.todoist.label.add":"Add label","app.todoist.label.list":"Labels","app.todoist.side.label":"Views and projects","app.todoist.parsed.label":"Understood","app.todoist.label.delete":"Delete label {n}","app.todoist.label.remove":"Remove label {n}","app.todoist.subtasks.title":"Subtasks","app.todoist.subtasks.done":"{n} done","app.todoist.subtasks.placeholder":"Add a subtask","app.todoist.subtasks.new":"New subtask","app.todoist.side.show":"Show {n, select, __inbox__ {Inbox} __today__ {Today} __tomorrow__ {Tomorrow} __upcoming__ {Upcoming} __labels__ {Filters & Labels} __blank__ {Untitled} other {{n}}}","app.todoist.task.reopen":"Reopen {n, select, __inbox__ {Inbox} __today__ {Today} __tomorrow__ {Tomorrow} __upcoming__ {Upcoming} __labels__ {Filters & Labels} __blank__ {Untitled} other {{n}}}","app.todoist.task.open":"Open {n, select, __inbox__ {Inbox} __today__ {Today} __tomorrow__ {Tomorrow} __upcoming__ {Upcoming} __labels__ {Filters & Labels} __blank__ {Untitled} other {{n}}}","app.todoist.task.reopenThis":"Reopen task","app.todoist.task.addTo":"Add task to {n, select, __inbox__ {Inbox} __today__ {Today} __tomorrow__ {Tomorrow} __upcoming__ {Upcoming} __labels__ {Filters & Labels} __blank__ {Untitled} other {{n}}}","app.todoist.task.addOn":"Add task to {n, date, ::EEEEMMMMd}","app.todoist.task.closeDetails":"Close task details","app.todoist.project.rename":"Rename project","app.todoist.project.deleteNamed":"Delete project {n, select, __inbox__ {Inbox} __today__ {Today} __tomorrow__ {Tomorrow} __upcoming__ {Upcoming} __labels__ {Filters & Labels} __blank__ {Untitled} other {{n}}}","app.todoist.section.rename":"Rename section {n, select, __inbox__ {Inbox} __today__ {Today} __tomorrow__ {Tomorrow} __upcoming__ {Upcoming} __labels__ {Filters & Labels} __blank__ {Untitled} other {{n}}}","app.todoist.label.addTo":"Add label {n}","app.todoist.label.show":"Show {n}","app.todoist.done.hide":"Hide completed","app.todoist.subtasks.add":"Add subtask","app.tour.tour.title":"Tour","app.tour.chat.voice":"…","app.tour.chapter.lives":"Object storage","app.tour.lives-open.title":"system zero","app.tour.lives-open.say":"0.0.0 Ice Kitty","app.tour.lives-bucket.title":"System Zero lives on object storage","app.tour.lives-bucket.say":"Object storage is absurdly cheap and infinitely horizontally scalable. It's also very slow, so we need to intelligently shift data into local SSD and memory when the user needs it.\n\nTurbopuffer wrote the book on this technique for databases. To make a distributed operating system that works this way, we just need to treat the OS like a database.\n\nLike a database, System Zero is a set of operations over data.","app.tour.lives-versions.title":"Nothing is written over","app.tour.lives-versions.say":"…","app.tour.lives-applied.title":"Applied and committed","app.tour.lives-applied.say":"…","app.tour.lives-cache.title":"Everything above is a cache","app.tour.lives-cache.say":"…","app.tour.lives-cost.title":"Economics","app.tour.lives-cost.say":"…","app.tour.lives-yours.title":"Yours is yours","app.tour.lives-yours.say":"…","app.tour.chapter.runs":"Containers","app.tour.runs-wall.title":"The wall","app.tour.runs-wall.say":"…","app.tour.runs-heavy.title":"Heavy work, watched","app.tour.runs-heavy.say":"…","app.tour.runs-unaware.title":"No app knows where it runs","app.tour.runs-unaware.say":"…","app.tour.runs-move.title":"Move it","app.tour.runs-move.say":"…","app.tour.runs-size.title":"Size it","app.tour.runs-size.say":"…","app.tour.runs-idle.title":"Idle is let go","app.tour.runs-idle.say":"…","app.tour.runs-metered.title":"Metered from the real systems","app.tour.runs-metered.say":"…","app.tour.runs-lent.title":"Any sys0 can host for another","app.tour.runs-lent.say":"…","app.tour.runs-guide.title":"The guide runs somewhere too","app.tour.runs-guide.say":"…","app.tour.chapter.bands":"Bands","app.tour.bands-guide.title":"The guide is an app","app.tour.bands-guide.say":"…","app.tour.bands-refused.title":"Nothing else","app.tour.bands-refused.say":"…","app.tour.bands-fresh.title":"Looked up fresh","app.tour.bands-fresh.say":"…","app.tour.bands-core.title":"The proved core","app.tour.bands-core.say":"…","app.tour.bands-trace.title":"Every call leaves a trace","app.tour.bands-trace.say":"…","app.tour.bands-secrets.title":"Secrets stay sys0's","app.tour.bands-secrets.say":"…","app.tour.bands-person.title":"A person is a band with a name","app.tour.bands-person.say":"…","app.tour.bands-public.title":"What a band allows is not a secret","app.tour.bands-public.say":"…","app.tour.bands-sound.title":"Sound and hearing are asked for","app.tour.bands-sound.say":"…","app.tour.app-flip.title":"The flip side","app.tour.app-flip.say":"…","app.tour.app-state.title":"State live beside the front","app.tour.app-state.say":"…","app.tour.app-apart.title":"Pulled apart","app.tour.app-apart.say":"…","app.tour.app-class.title":"Class, instances, files, spec","app.tour.app-class.say":"…","app.tour.app-surfaces.title":"Five surfaces and a frame","app.tour.app-surfaces.say":"…","app.tour.app-pills.title":"Pills","app.tour.app-pills.say":"…","app.tour.app-schemas.title":"Schemas and hashes","app.tour.app-schemas.say":"…","app.tour.app-look.title":"No look of its own","app.tour.app-look.say":"…","app.tour.app-languages.title":"Languages","app.tour.app-languages.say":"…","app.tour.app-objects.title":"Objects on the desk","app.tour.app-objects.say":"…","app.tour.app-windows.title":"Windows","app.tour.app-windows.say":"…","app.tour.chapter.play":"Play","app.tour.play-computer.title":"Against the computer","app.tour.play-computer.say":"…","app.tour.play-guide.title":"Against the guide","app.tour.play-guide.say":"…","app.tour.play-table.title":"A table for two","app.tour.play-table.say":"…","app.tour.play-everyone.title":"Everyone at once","app.tour.play-everyone.say":"…","app.tour.play-machines.title":"Machines in windows","app.tour.play-machines.say":"…","app.tour.play-standings.title":"Standings","app.tour.play-standings.say":"…","app.tour.chapter.share":"Sharing","app.tour.share-ways.title":"Four ways","app.tour.share-ways.say":"…","app.tour.share-band.title":"A share is a band","app.tour.share-band.say":"…","app.tour.share-sensitive.title":"Sensitive values and redaction","app.tour.share-sensitive.say":"…","app.tour.share-in-place.title":"Values change in place","app.tour.share-in-place.say":"…","app.tour.share-desktop.title":"The whole desktop","app.tour.share-desktop.say":"…","app.tour.share-from-yours.title":"From the human's sys0","app.tour.share-from-yours.say":"…","app.tour.chapter.make":"Work","app.tour.make-blank.title":"Starts blank","app.tour.make-blank.say":"…","app.tour.make-spec.title":"Spec first","app.tour.make-spec.say":"…","app.tour.make-jail.title":"The agent's jail","app.tour.make-jail.say":"…","app.tour.make-vars.title":"Vars","app.tour.make-vars.say":"…","app.tour.make-save.title":"Save is yours","app.tour.make-save.say":"…","app.tour.make-presentations.title":"Other presentations","app.tour.make-presentations.say":"…","app.tour.make-own.title":"Run your own","app.tour.make-own.say":"…","app.tour.view.start":"Start","app.tour.view.resume":"Resume","app.tour.view.restart":"Restart","app.tour.view.optional":"Optional","app.tour.chapter.core":"The core","app.tour.make-work.title":"Real work in an existing app","app.tour.make-work.say":"…","app.typing-test.menu.rules":"How to Play…","app.typing-test.rules.title":"How to Play","app.typing-test.rules.close":"Close","app.typing-test.rules.line1":"Type the displayed passage as accurately and quickly as you can.","app.typing-test.rules.line2":"Click the typing field and copy the passage. The clock starts with your first character.","app.typing-test.rules.line3":"Correct mistakes with Backspace; finish the whole passage to save your result.","app.typing-test.rules.line4":"Words per minute uses five characters per word; accuracy counts your typing errors. Results keeps your attempts and best WPM.","app.typing-test.rules.line5":"Next Passage chooses another text; Start Over retries it. Escape closes this sheet.","app.unredacter.camera.label":"Camera view","app.unredacter.camera.hint":"Start the camera and point it at a screen that shows a redacted Contacts share.","app.unredacter.camera.start":"Start camera","app.unredacter.camera.stop":"Stop camera","app.unredacter.camera.flip":"Switch camera","app.unredacter.status.seen":"{n, plural, =0 {No redactions seen} one {# redaction seen} other {# redactions seen}}","app.unredacter.status.shown":"{n, plural, =0 {none unredacted} one {# unredacted} other {# unredacted}}","app.unredacter.problem.denied":"The camera is blocked. Allow this page to use the camera in your browser's settings, then start it again.","app.unredacter.problem.missing":"No camera was found on this device.","app.unredacter.problem.unavailable":"This page cannot use the camera. A browser gives the camera only to a secure (https) page.","app.unredacter.problem.failed":"The camera could not start. Try again.","app.untitled-19.app.description":"A new app, blank. Tell its chat what it is to be.","app.untitled-19.menu.about":"About {app}","app.untitled-19.menu.settings":"Settings","app.untitled-19.menu.quit":"Quit","app.untitled-19.blank.hint":"This app is blank. Tell its chat what it is to be.","app.untitled-20.app.description":"A new app, blank. Tell its chat what it is to be.","app.untitled-20.menu.about":"About {app}","app.untitled-20.menu.settings":"Settings","app.untitled-20.menu.quit":"Quit","app.untitled-20.blank.hint":"This app is blank. Tell its chat what it is to be.","app.wordle.app.description":"Guess the daily word, create your own daily puzzle, and challenge a person or everyone. Five letters by default; authored words can have 3–12 letters.","app.wordle.menu.about":"About {app}","app.wordle.menu.settings":"Settings","app.wordle.menu.quit":"Quit","app.wordle.menu.game":"Game","app.wordle.menu.daily":"Today's Puzzle","app.wordle.menu.practice":"Practice","app.wordle.menu.newWord":"New Practice Word","app.wordle.menu.resetStats":"Reset Statistics","app.wordle.mode.label":"Game","app.wordle.mode.daily":"Daily","app.wordle.mode.practice":"Practice","app.wordle.puzzle.number":"No. {n}","app.wordle.action.newWord":"New word","app.wordle.board.label":"Guesses","app.wordle.keyboard.label":"Keyboard","app.wordle.key.enter":"Enter","app.wordle.key.back":"Backspace","app.wordle.notice.short":"Not enough letters","app.wordle.notice.unknown":"Not in word list","app.wordle.result.won":"{n, plural, =1 {Genius!} =2 {Magnificent!} =3 {Impressive!} =4 {Splendid!} =5 {Great!} one {Genius!} other {Phew!}}","app.wordle.result.answer":"The word was","app.wordle.result.tomorrow":"A new puzzle comes tomorrow.","app.wordle.result.again":"Press Enter for another word.","app.wordle.stats.title":"Statistics","app.wordle.stats.played":"Played","app.wordle.stats.winPct":"Win %","app.wordle.stats.streak":"Current streak","app.wordle.stats.best":"Max streak","app.wordle.stats.distribution":"Guess distribution","app.wordle.menu.rules":"How to Play…","app.wordle.rules.title":"How to Play","app.wordle.rules.close":"Close","app.wordle.rules.line1":"Guess the word in six tries. Daily and Practice use five letters; authored words use 3–12.","app.wordle.rules.line2":"Type a word with the keyboard or the on-screen keys, then press Enter to submit. Backspace removes a letter.","app.wordle.rules.line3":"Green means the right letter in the right place; yellow means it belongs elsewhere; grey means it is absent.","app.wordle.rules.line4":"Daily keeps your wins and streak. In Challenges, play words set by other people, or use Author to publish your own daily word or challenge.","app.wordle.rules.line5":"Authored puzzles accept any guess of the right length using A–Z. Everyone gets separate guesses. After Practice, Enter deals another word. Escape closes this sheet.","app.wordle.menu.author":"Author a Word…","app.wordle.menu.challenges":"Challenges","app.wordle.mode.challenges":"Challenges","app.wordle.mode.author":"Author","app.wordle.author.title":"Set a word for others","app.wordle.author.intro":"Publish your daily word, or send a challenge. Everyone gets six guesses of their own.","app.wordle.author.word":"Secret word","app.wordle.author.length":"Letters","app.wordle.author.kind":"Puzzle type","app.wordle.author.daily":"My daily word","app.wordle.author.challenge":"Challenge","app.wordle.author.audience":"Challenge whom?","app.wordle.author.everyone":"Everyone on the system","app.wordle.author.hint":"Use A–Z letters. Names and unusual words are welcome; guesses don’t need to be in the dictionary.","app.wordle.author.fixed":"Published words stay fixed. You can publish one daily word per date, and extra challenges anytime.","app.wordle.author.publish":"Publish and challenge","app.wordle.challenges.title":"Words from people","app.wordle.challenges.empty":"No words here yet. Author a word to start a challenge.","app.wordle.challenges.mine":"Words you set","app.wordle.challenges.play":"Play","app.wordle.challenges.resume":"Resume","app.wordle.challenges.back":"Back to challenges","app.wordle.challenges.custom":"Authored puzzle · six guesses","app.wordle.notification.challenge":"{name} challenged you in Wordly","app.wordle.notification.body":"A {n}-letter word is ready. Open Challenges in Wordly to play.","app.wordle.board.length":"{n}-letter puzzle"}