{
  "common.cancel": "Cancel",
  "common.close": "Close",
  "common.save": "Save",
  "common.saveChanges": "Save changes",
  "common.delete": "Delete",
  "common.copied": "Copied",
  "common.moreActions": "More actions",
  "common.details": "Details",
  "common.optional": "(optional)",
  "common.back": "Back",
  "common.next": "Next",
  "common.change": "Change",
  "common.on": "On",
  "common.off": "Off",
  "common.name": "Name",
  "common.description": "Description",
  "common.email": "Email",
  "common.password": "Password",
  "common.logo": "Logo",
  "common.uploadLogo": "Upload logo",
  "common.logoHelp": "PNG or JPG, square, at least 128 pixels and at most 1 MB.",
  "common.yes": "Yes",
  "common.no": "No",
  "common.none": "None",
  "time.justNow": "Just now",
  "time.today": "Today, {time}",
  "time.yesterday": "Yesterday, {time}",
  "time.yesterdayShort": "Yesterday",
  "status.queued": "Queued",
  "status.held": "Held",
  "status.running": "Running",
  "status.waiting": "Waiting for you",
  "status.waitingFor": "Waiting for {name}",
  "status.finished": "Finished",
  "status.failed": "Failed",
  "status.stopped": "Stopped",
  "status.notReached": "Not reached",
  "status.skipped": "Skipped",
  "role.admin": "Admin",
  "role.owner": "Owner",
  "role.editor": "Editor",
  "role.runner": "Runner",
  "via.website": "Website",
  "via.connector": "Chat, via {chat}",
  "via.schedule": "Schedule",
  "via.api": "API",
  "nav.label": "Main",
  "nav.openMenu": "Open menu",
  "nav.group.instance": "Instance",
  "nav.home": "Home",
  "nav.services": "Services",
  "nav.runs": "Runs",
  "nav.agents": "Agents",
  "nav.members": "Members",
  "nav.workspace": "Workspace settings",
  "nav.catalog": "Catalog",
  "nav.admin": "Administration",
  "nav.store": "Store",
  "shell.workspaces": "Workspaces",
  "shell.waitingLabel": "{count, plural, one {# run is waiting for you} other {# runs are waiting for you}}",
  "shell.newWorkspace": "New workspace",
  "shell.profile": "Profile",
  "shell.executors": "Executors",
  "shell.notifications": "Notifications",
  "shell.connector": "Connector and chats",
  "shell.plans": "Plans",
  "shell.storePublishing": "Store publishing",
  "shell.signOut": "Sign out",
  "shell.accountMenu": "Account menu",
  "shell.breadcrumb": "Breadcrumb",
  "nav.inbox": "Inbox",
  "shell.back": "Back",
  "shell.foldWorkspace": "Show or hide the services of {workspace}",
  "shell.noServices": "No services yet",
  "shell.dotWaiting": "A run waits for you",
  "inbox.unreadCount": "{count, plural, one {# unread notification} other {# unread notifications}}",
  "ws.tabsLabel": "Workspace pages",
  "ws.tab.runs": "Runs",
  "ws.tab.members": "Members",
  "ws.tab.agents": "Agents",
  "ws.tab.settings": "Settings",
  "ws.kind": "Workspace",
  "ws.services": "{count, plural, =0 {No services} one {# service} other {# services}}",
  "ws.members": "{count, plural, one {# member} other {# members}}",
  "inbox.title": "Inbox",
  "inbox.markAllRead": "Mark all read",
  "inbox.unread": "Unread",
  "inbox.empty": "Nothing here yet. Notifications about your runs show up here.",
  "note.question": "Answer a question from “{step}”",
  "note.review": "Review the result of “{step}”",
  "note.failure": "“{step}” failed: choose how to go on",
  "note.reminder": "Reminder: {title}",
  "note.runFailed": "Run {run} of {service} failed",
  "note.runFinished": "Run {run} of {service} finished",
  "note.catalogVersion": "{service} has version {version} in the Catalog",
  "note.scheduleDeleted": "The schedule of {service} was deleted",
  "note.apiKeyDeleted": "The API key of {service} was deleted",
  "note.metaRun": "{service}, run {run}",
  "note.metaCopy": "Your copy in {workspace}",
  "note.metaMemberLeft": "{name} left {workspace}",
  "note.metaDeletedBy": "Deleted by {name} in {workspace}",
  "svc.trigger.manualOnly": "Manual only",
  "svc.trigger.daily": "Daily at {time}",
  "svc.trigger.weekdays": "Weekdays at {time}",
  "svc.trigger.days": "{days} at {time}",
  "svc.trigger.everyHours": "{count, plural, one {Every hour from {time}} other {Every # hours from {time}}}",
  "svc.trigger.apiKey": "API key",
  "svc.kind": "Service",
  "svc.version": "Version {version}",
  "svc.fromCatalog": "From {entry}, version {version}",
  "svc.fromStore": "From {entry} in the Store, version {version}",
  "svc.copyOf": "Copy of {entry}",
  "svc.copyTag": "Copy",
  "svc.customizedTag": "Customized",
  "svc.importedTag": "Imported",
  "svc.export": "Export",
  "svc.publish": "Publish to the Catalog",
  "svc.requestStore": "Request the Store",
  "svc.change.label": "Kind of change",
  "svc.change.fix": "Fix",
  "svc.change.feature": "New feature",
  "svc.change.breaking": "Breaking change",
  "svc.change.fixHelp": "Corrects something. What it does and what it needs stay the same.",
  "svc.change.featureHelp": "Adds or improves what it does. Copies keep working as they are.",
  "svc.change.breakingHelp": "Copies need setup changes, such as an agent for a new step.",
  "svc.change.forced": "Copies would need setup changes, so this is a breaking change.",
  "svc.delete": "Delete service",
  "svc.startRun": "Start run",
  "svc.new": "New service",
  "svc.untitled": "Untitled service",
  "svc.notSaved": "Not saved yet",
  "svc.tabsLabel": "Service pages",
  "svc.tab.steps": "Steps",
  "svc.tab.runs": "Runs",
  "svc.tab.versions": "Versions",
  "svc.tab.settings": "Settings",
  "svc.deleteTitle": "Delete {service}?",
  "svc.deleteText": "{active, plural, =0 {{count, plural, one {Its run is deleted too.} other {Its # runs are deleted too.}}} one {{count, plural, one {Its run stops and is deleted too.} other {Its # runs are deleted too. The one that hasn’t ended stops first.}}} other {Its {count, number} runs are deleted too. The # that haven’t ended stop first.}}",
  "svc.cantStartTitle": "This run can’t start yet",
  "svc.cantStartText": "{count, plural, one {Link the agent {agents} to one of your executors first.} other {Link the agents {agents} to your executors first.}}",
  "svc.openAgents": "Open agents",
  "svc.cantStartNoAgent": "{count, plural, one {Choose an agent for this step first:} other {Choose an agent for these steps first:}}",
  "svc.openStep": "Open step",
  "svc.updateTitle": "Version {version} of {entry} is in the Catalog",
  "svc.updateText": "Review the changes, then update your copy. Its settings stay.",
  "svc.queueFullText": "{service} already has {count, plural, other {# queued runs}}, the most a service can hold. Start it again once one of them has started, or stop a queued run you don’t need.",
  "svc.openRuns": "Open runs",
  "col.service": "Service",
  "col.run": "Run",
  "col.status": "Status",
  "col.started": "Started",
  "col.startedBy": "Started by",
  "col.duration": "Duration",
  "col.version": "Version",
  "req.answerNow": "Answer now",
  "req.answerLater": "Answer later",
  "rating.label": "{count, plural, one {Rated {avg} out of 5 by # person} other {Rated {avg} out of 5 by # people}}",
  "rating.none": "No ratings yet",
  "rating.count": "({count, number})",
  "rating.outOf5": "Rated {avg} out of 5",
  "rating.yours": "Your rating",
  "rating.star": "{count, plural, one {# star} other {# stars}}",
  "rating.savedToast": "Rating saved",
  "rating.help": "One rating per person. You can change it any time.",
  "rating.afterRun": "You can rate it once one of your runs of it has ended.",
  "rating.ownListing": "You published it, so you can’t rate it.",
  "rating.needsLink": "Link your aservice.co account to rate services from the Store.",
  "listing.installs": "{count, plural, one {# install} other {# installs}}",
  "listing.installsShort": "{count, plural, one {{short} install} other {{short} installs}}",
  "listing.free": "Free",
  "listing.highlighted": "Highlighted",
  "listing.new": "New",
  "listing.updated": "Updated",
  "listing.install": "Install",
  "toast.allRead": "All notifications marked read",
  "toast.exported": "Exported as {file}",
  "toast.runQueued": "Run {run} is queued",
  "toast.runQueuedSub": "It starts when run {active} ends.",
  "toast.runStarted": "Run {run} started",
  "toast.openRun": "Open run",
  "toast.saved": "Changes saved",
  "plan.free": "Free plan",
  "plan.start": "Start plan",
  "plan.grow": "Grow plan",
  "plan.scale": "Scale plan",
  "plan.comingSoon": "Coming soon",
  "plan.seePlans": "See plans",
  "plan.seats": "{count, plural, one {# seat} other {# seats}}",
  "plan.yours": "Your plan",
  "plan.freeWorkspace": "Free workspace",
  "plan.badge": "Paid plan",
  "plan.limit.ownOnly": "Workspaces besides your own come with a paid plan.",
  "plan.limit.members": "A Free workspace can’t add members until one of its Owners has a paid plan.",
  "plan.limit.services": "{workspace} holds {count} services, the most the Free plan allows; a paid plan lifts this limit.",
  "plan.limit.frozen": "{workspace} is a Free workspace: its services keep running, but it takes no new services, versions or members until one of its Owners has a paid plan.",
  "plan.limit.history": "Free workspaces keep 7 days of run history; a paid plan lets you keep runs longer.",
  "plan.limit.paid": "Paid listings and updates to their copies come with a paid plan.",
  "plan.limit.chats": "Unlocking a chat, so it can act as you, comes with a paid plan.",
  "plan.limit.tunnel": "The tunnel comes with a paid plan for this instance.",
  "plan.limit.servicesCount": "{count} of 5 services",
  "listing.paid": "Paid",
  "listing.paidLabel": "Comes with every paid plan",
  "listing.runs": "{count, plural, one {# run} other {# runs}}",
  "listing.runsShort": "{count, plural, one {{short} run} other {{short} runs}}",
  "listing.summaryLabel": "Summary",
  "listing.summaryHelp": "One sentence for its card, up to 160 characters.",
  "listing.summaryCount": "{count} of {max} characters",
  "listing.summaryError": "Write a summary of up to 160 characters.",
  "listing.cover": "Cover picture",
  "listing.coverHelp": "PNG, JPEG or WebP, 2:1, at least 1200 × 600 pixels, up to 2 MB. Without one, the card shows the logo instead.",
  "listing.coverAdd": "Add a cover picture",
  "listing.coverReplace": "Replace",
  "listing.coverRemove": "Remove",
  "listing.coverAlt": "Cover picture of {name}",
  "home.wsSettings": "Settings of {workspace}",
  "home.wsMore": "More for {workspace}",
  "home.svcMore": "More for {service}",
  "home.runWaitsForYou": "Run {run} waits for you",
  "home.runWaitsFor": "Run {run} waits for {name}",
  "home.runRunning": "Run {run} is running",
  "home.runHeld": "Run {run} is held",
  "home.runQueued": "Run {run} is queued",
  "home.runFinished": "Run {run} finished · {time}",
  "home.runFailed": "Run {run} failed · {time}",
  "home.noRuns": "No runs yet",
  "home.notApproved": "Not approved yet",
  "home.answer": "Answer",
  "home.review": "Review",
  "home.deletedToast": "{service} is deleted",
  "home.addTitle": "Add a service to {workspace}",
  "home.addDesign": "Design a new service",
  "home.addDesignSub": "Start with an empty step list",
  "home.addImport": "Import a file",
  "home.addImportSub": "An .aservice file from Export",
  "home.addCatalog": "Add from the Catalog",
  "home.addCatalogSub": "A copy of a published service",
  "home.addStore": "Install from the Store",
  "home.addStoreSub": "A copy of a Store listing",
  "home.importTitle": "Import a service",
  "home.importText": "Choose a file exported from aService. The service is added to {workspace} and can run once someone approves it after a review.",
  "home.file": "File",
  "home.noFile": "No file chosen",
  "home.chooseFile": "Choose file",
  "home.fileHelp": "An .aservice file, as Export saves it.",
  "home.fileSteps": "{count, plural, one {# step} other {# steps}}",
  "home.fileAgents": "Uses the {count, plural, one {agent} other {agents}} {agents}",
  "home.fileNoAgent": "Its new-session steps start without an agent. Choose one for each before the first run.",
  "home.importConfirm": "Import service",
  "home.importError": "This file isn’t an aService export. Choose a file that ends in .aservice.",
  "home.importedToast": "{service} is imported",
  "home.importedSub": "Review it and approve it before it runs.",
  "home.newWsText": "You become its Owner and can add members afterwards.",
  "home.createWorkspace": "Create workspace",
  "home.createdToast": "{workspace} is created",
  "home.createdSub": "Set it up with the steps below.",
  "home.setupTitle": "Set up {workspace}",
  "home.setupOwnTitle": "Set up your workspace",
  "home.setupText": "Four steps, and your first run can start.",
  "home.step1Title": "Add agents",
  "home.step1Text": "An agent is a kind of worker your services need, such as a coder or a reviewer.",
  "home.step1Action": "Add agent",
  "home.step2Title": "Link them to your Claude",
  "home.step2Text": "Each member links the agents to an executor of their own, so runs use their own Claude account.",
  "home.step3Title": "Add a service",
  "home.step3Text": "Design one, import a file, or add one from the Catalog.",
  "home.openCatalog": "Open Catalog",
  "home.step4Title": "Add members",
  "home.step4Text": "Add the people who design, start and answer services with you.",
  "home.step4Action": "Add member",
  "home.showHidden": "Show hidden",
  "home.hiddenCount": "{count, plural, one {# hidden item} other {# hidden items}}",
  "home.hide": "Hide from Home",
  "home.unhide": "Show on Home",
  "home.hiddenTag": "Hidden",
  "home.hiddenToast": "{name} is hidden",
  "home.hiddenToastSub": "Turn on Show hidden to see it again.",
  "home.shownToast": "{name} shows on Home again",
  "home.move": "Move",
  "home.moveHint": "Moving {name}. Use the arrow keys to move it, Enter to place it, or Escape to cancel.",
  "home.movedToast": "{name} moved",
  "home.movedPosition": "{name} is at position {position} of {count}.",
  "home.moving": "Moving {name}",
  "home.moveEarlier": "Move earlier",
  "home.moveLater": "Move later",
  "home.moveDone": "Done",
  "home.moveCanceled": "Move canceled. {name} is back in its place.",
  "home.allHidden": "Every service here is hidden.",
  "home.undo": "Undo",
  "home.tileFrom": "Run {run} · {time}",
  "home.tileOpen": "Open run {run} of {service}, which made this tile",
  "home.showAsCard": "Show as card",
  "home.showAsTile": "Show as tile",
  "home.railCatalogHighlights": "Catalog highlights",
  "home.railCatalogNew": "New from the Catalog",
  "home.railStoreHighlights": "Store highlights",
  "home.railStoreNew": "New from the Store",
  "home.placeholderText": "Multi-step AI workflows that run on your own AI agents. The app is on its way.",
  "home.seeAll": "See all",
  "home.seeAllLabel": "See all: {rail}",
  "home.railBack": "Scroll back",
  "home.railOn": "Scroll on",
  "des.listLabel": "Steps",
  "des.listHelp": "Steps run from top to bottom. Drag a row by its handle to change the order. An outcome can jump to another step.",
  "des.colStep": "Step",
  "des.colSession": "Session",
  "des.colAfter": "After the step",
  "des.colJumps": "Jumps",
  "des.moveStep": "Move {step}: drag, or use the up and down arrow keys",
  "des.keepBelow": "“{step}” continues the session of “{session}”, so it stays below that step.",
  "des.endRun": "End of run",
  "des.newSessionWith": "New session with {agent}",
  "des.newSessionNoAgent": "New session, no agent yet",
  "des.sessionOfStep": "Session of step",
  "des.sessionOfDeleted": "Session of a deleted step",
  "des.tagReview": "Review",
  "des.tagEndSession": "Ends session",
  "des.jumpEnd": "End",
  "des.jumpMissing": "deleted step",
  "des.addStep": "Add step",
  "des.newStep": "New step",
  "des.noPromptYet": "No prompt yet",
  "des.prompt": "Prompt",
  "des.promptHelp": "What the session does in this step. It also gets every answer and result of the run so far. When the work needs a decision or details from the starter, say so: the session asks them in the wizard.",
  "des.promptPlaceholder": "Describe the task for the step’s agent",
  "des.session": "Session",
  "des.sessionNew": "Start a new session",
  "des.sessionContinue": "Continue the session of a step above",
  "des.agent": "Agent",
  "des.chooseAgent": "Choose an agent",
  "des.settingHelp": "A setting: changing it creates no new version.",
  "des.agentMissing": "Runs can’t start until this step has an agent.",
  "des.continueStep": "Step",
  "des.continueHelp": "This step works in that step’s session, with its agent {agent}.",
  "des.continueHelpNoAgent": "This step works in that step’s session. That step has no agent yet.",
  "des.invalidSession": "The step whose session this one continued was deleted. Choose another step, or start a new session.",
  "des.newSession": "New session",
  "des.continues": "Continues the session of {step}",
  "des.repos": "Repositories",
  "des.repoUrl": "Repository URL",
  "des.repoRemove": "Remove repository",
  "des.repoAdd": "Add repository",
  "des.reposHelp": "The repositories the session works on in this step. A setting: changing them creates no new version.",
  "des.noRepos": "No repositories",
  "des.outcomes": "Outcomes",
  "des.outcomesHelp": "Results the session can report, each jumping to another step or to the end of the run. With no outcome, or one that isn’t listed, the step below follows.",
  "des.noOutcomes": "None: the step below follows.",
  "des.outcomeName": "Outcome name",
  "des.outcomeNext": "Jumps to",
  "des.outcomeRemove": "Remove outcome",
  "des.outcomeAdd": "Add outcome",
  "des.invalidTarget": "“{outcome}” jumped to a deleted step. Choose where it goes now.",
  "des.chooseStep": "Choose a step",
  "des.stepOption": "Step {n}: {step}",
  "des.afterStep": "After this step",
  "des.reviewAfter": "Review after step",
  "des.reviewAfterHelp": "The starter approves the result or sends feedback before the run moves on. A result that jumps back to an earlier step goes back at once, without a review.",
  "des.endSession": "End session after this step",
  "des.endSessionHelp": "Steps that continue it later start a new session from its dump.",
  "des.deleteStep": "Delete step",
  "des.limitsTitle": "Run limits",
  "des.loopLimit": "Loop limit",
  "des.loopLimitHelp": "The most times one step may run within a run.",
  "des.stepTimeLimit": "Step time limit",
  "des.stepTimeLimitHelp": "How long a session may work on a step, not counting waits.",
  "des.hoursUnit": "hours",
  "des.hours": "{count, plural, one {# hour} other {# hours}}",
  "des.saveTitle": "Save a new version",
  "des.saveText": "Version {version} stays as it is, and runs already created keep using it. What kind of change is this?",
  "des.saveAs": "Save as {version}",
  "des.saveCustomizes": "This copy becomes customized: later updates offer Replace or Keep mine.",
  "des.deleteStepTitle": "Delete “{step}”?",
  "des.deleteStepText": "Outcomes that jump to it, and steps that continue its session, need a new choice before you can save. Runs keep the version they were created with.",
  "des.newNameHelp": "Shown on Home, in the sidebar and in notifications.",
  "des.readOnlyTitle": "View only",
  "des.readOnlyText": "Owners and Editors change this service. You can start its runs.",
  "des.oldVersionTitle": "You’re viewing version {version}",
  "des.oldVersionText": "Saved on {date} by {name}. The current version is {current}.",
  "des.openCurrent": "Open version {version}",
  "des.importedTitle": "Review this service before it runs",
  "des.importedText": "It was imported from a file and can’t run until someone approves it. Check its steps, prompts and repositories first.",
  "des.approve": "Approve",
  "des.unsavedDef": "Unsaved changes. Saving creates a new version.",
  "des.unsavedDefCopy": "Unsaved changes. Saving creates a new version and marks this copy customized.",
  "des.unsavedSettings": "Unsaved settings. Saving creates no new version.",
  "des.cantSave": "{count, plural, one {Can’t save: # problem to fix} other {Can’t save: # problems to fix}}",
  "des.showProblems": "Show problems",
  "des.discard": "Discard changes",
  "des.noSteps": "Add a step to save this service.",
  "des.unsavedNew": "Not saved yet. Saving creates the service with version 1.0.0.",
  "des.savedVersion": "Saved as version {version}",
  "des.savedCustomized": "This copy is now customized.",
  "des.savedSettings": "Settings saved",
  "des.savedSettingsSub": "No new version was created.",
  "des.approvedToast": "{service} is approved",
  "des.approvedSub": "Choose an agent for its new-session steps before the first run.",
  "svcSet.intro": "Settings apply to runs created or restarted after a change, and changing them creates no new version.",
  "svcSet.runnerNote": "Only Owners and Editors can change these settings.",
  "svcSet.generalTitle": "Name and logo",
  "svcSet.generalText": "The name and logo show in lists, runs and notifications.",
  "svcSet.generalCopy": "Your copy’s own name and logo. An update from the Catalog keeps them.",
  "svcSet.generalCopyStore": "Your copy’s own name and logo. An update from the Store keeps them.",
  "svcSet.originalName": "Original name: {entry}, by {publisher}.",
  "svcSet.startTitle": "How runs start",
  "svcSet.startText": "Members start runs on the website or from a chat. A schedule and an API key start runs too. Each belongs to whoever set it up, and only they can change it. The runs it starts are theirs and use their executors.",
  "svcSet.schedule": "Schedule",
  "svcSet.noSchedule": "No schedule",
  "svcSet.noKey": "No API key",
  "svcSet.setUpBy": "{by, select, you {Set up by you} other {Set up by {by}}}",
  "svcSet.nextStart": "Next start: {time}",
  "svcSet.keyBy": "{by, select, you {Created by you on {date}} other {Created by {by} on {date}}}",
  "svcSet.othersSchedule": "Only {name} can change it. You can delete it and set up your own.",
  "svcSet.othersKey": "Only {name} can replace it. You can delete it and create your own.",
  "svcSet.setSchedule": "Set schedule",
  "svcSet.createKey": "Create API key",
  "svcSet.replace": "Replace",
  "svcSet.importedNote": "An imported service can start runs once it’s approved.",
  "svcSet.finishTitle": "Finish notification",
  "svcSet.finishText": "A failed run and an open request always notify the starter. This also notifies them when a run finishes.",
  "svcSet.finishLabel": "Notify the starter when a run finishes",
  "svcSet.finishMeta": "In the inbox and on the channels they turned on.",
  "svcSet.limitsText": "A run fails when a step would run more often than the loop limit. A step fails when its session works on it longer than the step time limit.",
  "svcSet.limitsCopy": "Your copy started with the values of {entry}. Updates keep yours.",
  "svcSet.scheduleNewTitle": "Set a schedule for {service}",
  "svcSet.scheduleEditTitle": "Change the schedule of {service}",
  "svcSet.scheduleText": "The runs it starts are yours: they use your executors and ask you when they need something.",
  "svcSet.repeats": "Repeats",
  "svcSet.kindHours": "Every few hours",
  "svcSet.kindDaily": "Daily",
  "svcSet.kindDays": "On chosen days",
  "svcSet.hoursBetween": "Hours between starts",
  "svcSet.hoursHelp": "From 1 to 23.",
  "svcSet.firstStart": "First start of the day",
  "svcSet.hoursPreview": "Starts each day at {times}.",
  "svcSet.days": "Days",
  "svcSet.time": "Time",
  "svcSet.timeZoneHelp": "Times are in your time zone, {zone}.",
  "svcSet.skipHelp": "If a run of {service} is still active at a start time, that start is skipped. Runs lists each skip.",
  "svcSet.saveSchedule": "Save schedule",
  "svcSet.scheduleSaved": "Schedule saved",
  "svcSet.deleteScheduleTitle": "Delete the schedule of {service}?",
  "svcSet.deleteScheduleText": "{by, select, you {No more runs start on schedule. Runs it already started go on.} other {No more runs start on schedule, and {by} gets a notification. Runs it already started go on.}}",
  "svcSet.deleteSchedule": "Delete schedule",
  "svcSet.scheduleDeleted": "Schedule deleted",
  "svcSet.keyTitle": "Copy your new API key",
  "svcSet.keyText": "It shows only now. Store it where your system can use it.",
  "svcSet.keyReplacedText": "The old key no longer works. The new one shows only now: store it where your system can use it.",
  "svcSet.keyLabel": "API key for {service}",
  "svcSet.copyKey": "Copy API key",
  "svcSet.keyHelp": "With it, a system can start runs of {service} and read their status and step results, through the aService API at {url}. You are the starter of those runs and answer their questions.",
  "svcSet.done": "Done",
  "svcSet.replaceKeyTitle": "Replace the API key of {service}?",
  "svcSet.replaceKeyText": "The current key stops working at once, so systems that use it need the new one.",
  "svcSet.replaceKey": "Replace key",
  "svcSet.deleteKeyTitle": "Delete the API key of {service}?",
  "svcSet.deleteKeyText": "{by, select, you {It stops working at once: systems that use it can no longer start or read runs of {service}. Runs it already started go on.} other {It stops working at once: systems that use it can no longer start or read runs of {service}, and {by} gets a notification. Runs it already started go on.}}",
  "svcSet.deleteKey": "Delete API key",
  "svcSet.keyDeleted": "API key deleted",
  "versions.semver": "Numbers say the kind of change: 2.0.0 is a breaking change, 1.1.0 a new feature, 1.0.1 a fix.",
  "versions.change": "Change",
  "versions.first": "First version",
  "versions.installed": "Installed from the Store, version {version}",
  "versions.updatedStore": "Updated to Store version {version}",
  "versions.restored": "Restored from {version}",
  "versions.restore": "Restore",
  "versions.restoreLabel": "Restore version {version}",
  "versions.restoreTitle": "Restore version {version}?",
  "versions.restoreText": "Its steps and prompts replace the current ones, as a new version. Settings stay as they are, and runs already created keep their version.",
  "versions.restoreUndoes": "{count, plural, one {It undoes this version:} other {It undoes these # versions:}}",
  "versions.savedBy": "Saved on {date} by {name}",
  "versions.restoreAs": "Restore as {version}",
  "versions.restoredToast": "Version {version} restored as {new}",
  "versions.restoredSub": "New runs use it. Runs already created keep their version.",
  "runs.pageTitle": "Runs",
  "runs.allWorkspaces": "All workspaces",
  "runs.colWorkspace": "Workspace",
  "runs.emptyAll": "No runs yet. Add a service to a workspace on Home, then start it to see its first run here.",
  "runs.allHidden": "Every service is hidden from your Home. Turn on Show hidden to see their runs.",
  "runs.historyEndIn": "{workspace}: runs that ended more than {length} ago are deleted ({length} of history)",
  "runs.summary": "{count, plural, one {# run in {workspace}} other {# runs in {workspace}}}",
  "runs.filterLabel": "Filter runs",
  "runs.filters": "Filters",
  "runs.filtersSet": "{count, plural, other {Filters, # set}}",
  "runs.filtersDone": "Done",
  "runs.allStatuses": "All statuses",
  "runs.allServices": "All services",
  "runs.startedByAnyone": "Started by anyone",
  "runs.startedByMe": "Started by me",
  "runs.clearFilters": "Clear filters",
  "runs.noMatch": "No runs match these filters.",
  "runs.empty": "No runs yet. Start one of the workspace’s services on Home to see its first run here.",
  "runs.openHome": "Open Home",
  "runs.showOlder": "Show older runs",
  "runs.historyEnd": "Runs that ended more than {length} ago are deleted ({length} of history)",
  "runs.keepsDays": "This workspace keeps {length} of run history.",
  "runs.actions": "Actions",
  "runs.rowMenu": "More actions for run {run} of {service}",
  "runs.stop": "Stop run",
  "runs.delete": "Delete run",
  "runs.stopTitle": "Stop run {run} of {service}?",
  "runs.stopText": "Its open requests close and its sessions end. {starter, select, you {You can restart it later from any step.} other {{starter} can restart it later from any step.}}",
  "runs.stopped": "Run {run} of {service} is stopped",
  "runs.deleteTitle": "Delete run {run} of {service}?",
  "runs.deleteText": "Its results and answers are deleted too.",
  "runs.deleted": "Run {run} of {service} is deleted",
  "inboxPage.summary": "{count, plural, =0 {No unread notifications} one {# unread notification} other {# unread notifications}}",
  "inboxPage.filterLabel": "Filter notifications",
  "inboxPage.all": "All",
  "inboxPage.unread": "Unread",
  "svcRuns.skippedReason": "Run {run} was still active.",
  "svcRuns.emptyImported": "No runs yet. {service} can run once someone reviews its steps and approves it.",
  "svcRuns.openSteps": "Open Steps",
  "versions.intro": "Saving a changed definition creates a new version. Changing settings, such as the name, the schedule or a step’s agent, doesn’t.",
  "versions.createdBy": "Created by",
  "versions.created": "Created",
  "versions.current": "Current",
  "versions.inCatalog": "In the Catalog",
  "versions.open": "Open",
  "versions.openLabel": "Open version {version}",
  "versions.added": "Added from the Catalog, version {version}",
  "versions.updated": "Updated to Catalog version {version}",
  "versions.imported": "Imported from a file",
  "run.crumb": "Run {run}",
  "run.title": "Run {run}",
  "run.listLabel": "Steps of run {run}",
  "run.listHelp": "Steps run from top to bottom; a highlighted jump is an outcome this run took. Select a step to see its results, sessions and answers.",
  "run.restart": "Restart run",
  "run.startedBy": "{kind, select, chat {Started by {name} from a chat via {chat}} schedule {Started by {name}’s schedule} api {Started with {name}’s API key} other {Started by {name} on the website}}",
  "run.waitingReviewTitle": "“{step}” waits for your review",
  "run.waitingReviewTitleOther": "“{step}” waits for {name}’s review",
  "run.waitingQuestionTitle": "“{step}” asks you a question",
  "run.waitingQuestionTitleOther": "“{step}” asks {name} a question",
  "run.waitingSince": "Since {time}. The run goes on once you answer.",
  "run.waitingSinceOther": "Since {time}. Only the person who started the run can answer.",
  "run.failedTwiceTitle": "“{step}” failed twice",
  "run.failedTwiceTitleOther": "“{step}” failed twice and waits for {name}",
  "run.failedTwiceText": "aService retried it once. Choose whether to retry it, skip it or stop the run.",
  "run.queuedTitle": "Waits for run {active} to end",
  "run.queuedText": "A service runs one run at a time. Queued runs start in the order they were queued.",
  "run.queuedRestart": "Then it restarts from “{step}”.",
  "run.heldTitle": "“{step}” waits for a limit",
  "run.heldText": "{name}’s {limit} is at its hold level. The step starts when it resets at {time}.",
  "run.failedTitle": "This run failed",
  "run.failedLoop": "“{step}” would have run more often than the loop limit of {limit} allows.",
  "run.failedStop": "You stopped it after “{step}” failed twice.",
  "run.stoppedTitle": "{by, select, you {You stopped this run} other {{by} stopped this run}}",
  "run.restartText": "Restart it from any step. It keeps its results and uses version {version} with the current settings; loop counts start again.",
  "run.ranTimes": "{count, plural, one {Ran once} other {Ran # times}}",
  "run.timesShort": "×{count}",
  "run.jumpTaken": "Taken in this run",
  "run.needReview": "Review the result",
  "run.needAnswer": "Answer its question",
  "run.needChoice": "Choose how to go on",
  "run.until": "Until {time}",
  "run.since": "Since {time}",
  "run.endedAt": "Ended: {time}",
  "run.detailsTitle": "Run details",
  "run.ended": "Ended",
  "run.passN": "Pass {n}",
  "run.passRetryAuto": "Pass {n}, automatic retry",
  "run.passRetryChosen": "Pass {n}, retry",
  "run.timeRange": "{start} – {end}",
  "run.sessionNew": "Session {n}, new with {agent}",
  "run.sessionContinued": "Session {n}, continued",
  "run.sessionWoken": "Session {n}, woken by the command-line tool",
  "run.sessionFromDump": "Session {n}, new from the dump of session {from}",
  "run.sessionPending": "Continues session {n} once the limit resets",
  "run.result": "Result",
  "run.outcome": "Outcome",
  "run.workingNoResult": "Working on it. The result shows here once the session reports it.",
  "run.questionAt": "Question at {time}",
  "run.answeredBy": "Answered by {name} at {time}",
  "run.questionWaiting": "Waits for your answer since {time}",
  "run.questionWaitingOther": "Waits for {name}’s answer since {time}",
  "run.reviewWaiting": "Waits for your review since {time}",
  "run.reviewWaitingOther": "Waits for {name}’s review since {time}",
  "run.approvedBy": "Approved by {name} at {time}",
  "run.feedbackBy": "Feedback from {name} at {time}",
  "run.revising": "The session revises its result.",
  "run.dumpSaved": "Saved a dump at {time}",
  "run.stoppedBy": "Stopped by {name} at {time}.",
  "run.skippedBy": "Skipped by {name} at {time}. The run went on with the step below it.",
  "run.heldNote": "Held until {time}: {name}’s {limit} is at its hold level.",
  "run.loopNote": "The run failed at {time}: this step would have run more often than the loop limit of {limit} allows.",
  "run.reportedFailure": "The session reported a failure: {reason}",
  "run.notReached": "Not reached in this run.",
  "run.openInSteps": "Open in Steps",
  "run.restartTitle": "Restart run {run}",
  "run.restartFrom": "Restart from",
  "run.restartFromHelp": "The step continues its last session, or starts a new one from its dump.",
  "run.restartDialogText": "It keeps its results and uses version {version} with the current settings. Loop counts start again.",
  "run.restartQueued": "Another run of this service is active, so this run waits as Queued.",
  "wiz.kindQuestion": "Question",
  "wiz.kindReview": "Review",
  "wiz.kindFailure": "Failure choice",
  "wiz.progress": "Progress",
  "wiz.count": "Question {n} of {count}",
  "wiz.askedBy": "“{step}” asks",
  "wiz.required": "Answer this question to go on.",
  "wiz.multiHelp": "Choose all that apply.",
  "wiz.rangeHelp": "A number from {min} to {max}.",
  "wiz.rangeError": "Enter a number from {min} to {max}.",
  "wiz.unlockError": "This answer contains an unlock code. Remove it to go on: an unlock code belongs only in a new chat.",
  "wiz.sendAnswers": "Send answers",
  "wiz.approve": "Approve",
  "wiz.sendFeedback": "Send feedback",
  "wiz.retry": "Retry",
  "wiz.skip": "Skip",
  "wiz.reviewHint": "Approve it so the run goes on, or send feedback and the session revises it.",
  "wiz.feedbackQ": "What should change?",
  "wiz.feedbackHint": "Your feedback goes to the session of “{step}”, which revises its result and reports again.",
  "wiz.failureHint": "aService retried it once. Choose how the run goes on.",
  "wiz.whatHappened": "What happened",
  "wiz.retryHelp": "Runs the step again with the dump of its last session.",
  "wiz.skipHelp": "Goes on with the step below it: {next}.",
  "wiz.stopHelp": "Ends the run as Failed. You can restart it later from any step.",
  "run.tileSet": "Set the service’s tile on Home at {time}",
  "run.tileRemoved": "Removed the service’s tile from Home at {time}",
  "run.tileSeeHome": "See it on Home",
  "run.tilePreview": "The tile this run set",
  "run.rateTitle": "Rate {entry}",
  "run.rateText": "{service} is your copy of {entry} by {publisher}. Your rating shows on its {where, select, store {Store listing} other {Catalog entry}}.",
  "run.failedNoLink": "{starter, select, you {“{step}” needs the agent {agent}, which you haven’t linked to one of your executors. Link it, then restart the run from this step.} other {“{step}” needs the agent {agent}, which {starter} hasn’t linked to an executor. {starter} can link it and restart the run from this step.}}",
  "run.noLinkNote": "The run failed at {time}: this step needs the agent {agent}, which isn’t linked.",
  "tl.viewLabel": "Show runs as",
  "tl.viewTimeline": "Timeline",
  "tl.viewTable": "Table",
  "tl.label": "Runs on a timeline",
  "tl.toolbar": "Timeline controls",
  "tl.zoomOut": "Zoom out",
  "tl.zoomIn": "Zoom in",
  "tl.fit": "Fit all",
  "tl.fitLabel": "Fit all runs into view",
  "tl.now": "Go to now",
  "tl.shorter": "Make rows shorter",
  "tl.taller": "Make rows taller",
  "tl.openAll": "Open every row",
  "tl.closeAll": "Close every row",
  "tl.fullscreen": "Full screen",
  "tl.exitFullscreen": "Leave full screen",
  "tl.more": "More timeline controls",
  "tl.plotLabelAll": "Timeline of the runs in your workspaces",
  "tl.showServices": "Show the services of {workspace}",
  "tl.hideServices": "Hide the services of {workspace}",
  "tl.showSteps": "Show the steps of {service}",
  "tl.hideSteps": "Hide the steps of {service}",
  "tl.servicesOf": "Services of {workspace}",
  "tl.stepsOf": "Steps of {service}",
  "tl.servicesCount": "{count, plural, =0 {No services} one {# service} other {# services}}",
  "tl.toggleHidden": "{label} (hidden)",
  "tl.rowHidden": "{name} (hidden)",
  "tl.historyStarts": "History starts · {length}",
  "tl.historyDays": "{count, plural, one {# day} other {# days}}",
  "tl.historyIn": "{workspace} keeps {length} of run history.",
  "tl.plotLabel": "Timeline of the runs in {name}",
  "tl.plotHelp": "Drag or use the arrow keys to move through time, plus and minus to zoom, Home for the first run and End for now. Tab moves between runs and Enter opens one.",
  "tl.today": "Today",
  "tl.day": "{weekday}, {date}",
  "tl.nowAt": "Now, {time}",
  "tl.behind": "Behind run {run}",
  "tl.queueFold": "Fold the queued runs",
  "tl.queueUnfold": "Show the queued runs",
  "tl.queuedCount": "{count, plural, one {# run queued} other {# runs queued}}",
  "tl.noneInView": "No runs in this part of the timeline.",
  "tl.skipLabel": "The schedule was skipped at {time}: run {run} was still active.",
  "tl.runLabel": "Run {run} of {service}, {status}, started {started} by {name}, {trigger}",
  "tl.queuedLabel": "Run {run} of {service}, queued since {time} behind run {behind}, by {name}, {trigger}",
  "tl.triggerLabel": "{kind, select, chat {manually, from a chat via {chat}} schedule {by {name}’s schedule} api {with {name}’s API key} other {manually, on the website}}",
  "tl.announce": "{status, select, running {Run {run} of {service} is running} waitingYou {Run {run} of {service} waits for you} waiting {Run {run} of {service} waits for {name}} held {Run {run} of {service} is held} finished {Run {run} of {service} finished} failed {Run {run} of {service} failed} stopped {Run {run} of {service} is stopped} queued {Run {run} of {service} is queued} other {Run {run} of {service} changed}}",
  "tl.detailsLabel": "Run {run} of {service}",
  "tl.fitRun": "Fit this run into view",
  "tl.manual": "Manual",
  "tl.scheduleOf": "{name}’s schedule",
  "tl.apiKeyOf": "{name}’s API key",
  "tl.passes": "Step passes",
  "tl.ranBy": "Ran by {agent} agent of {name}",
  "tl.onExecutor": "On {executor}",
  "tl.retryAuto": "Automatic retry",
  "tl.ev.answered": "Question at {time}, answered by {name} at {done}",
  "tl.ev.approved": "Review at {time}, approved by {name} at {done}",
  "tl.ev.feedback": "Review at {time}, feedback from {name} at {done}",
  "tl.ev.chose": "Failed at {time}, {name} chose “{choice}” at {done}",
  "tl.ev.choiceWaiting": "Failed twice, waits for your choice since {time}",
  "tl.ev.choiceWaitingOther": "Failed twice, waits for {name}’s choice since {time}",
  "tl.ev.heldUntil": "Held by {name}’s {limit} until {time}",
  "tl.ev.unanswered": "Question at {time}, not answered",
  "tl.ev.unreviewed": "Review at {time}, not done",
  "tl.ev.unchosen": "Failed at {time}, no choice made",
  "tl.ev.outcome": "Reported “{outcome}”",
  "tl.colTrigger": "Trigger",
  "tl.colSteps": "Step passes",
  "tl.passesOf": "Step passes of run {run} of {service}",
  "tl.legendLabel": "Key",
  "tl.keyWaiting": "Waiting for a person",
  "tl.legendPerson": "Waits for a person",
  "tl.legendHeld": "Held by a limit",
  "agent.summary": "Link each agent you use to one of your executors.",
  "agent.ownersOnly": "Only Owners can add, edit and delete agents.",
  "agent.openExecutors": "Open executors",
  "agent.add": "Add agent",
  "agent.actionsFor": "More actions for {agent}",
  "agent.edit": "Edit agent",
  "agent.delete": "Delete agent",
  "agent.usedIn": "Used in",
  "agent.linkedTo": "Linked to {executor}",
  "agent.notLinked": "Not linked",
  "agent.blocks": "You can’t start {services} until you link it.",
  "agent.link": "Link",
  "agent.editLink": "Edit link",
  "agent.unlink": "Unlink",
  "agent.empty": "No agents yet. Add one for each kind of work your services need, such as coding or reviewing.",
  "agent.linkTitle": "Link {agent}",
  "agent.editLinkTitle": "Edit the link of {agent}",
  "agent.linkText": "Runs you start use the executor you choose here for every step with {agent}.",
  "agent.executor": "Executor",
  "agent.setupTitle": "Set up the Claude routine",
  "agent.step1Title": "Create a routine in Claude",
  "agent.step1Text": "Name it “{name}”, for example, and give it the model, connectors and environment this description names:",
  "agent.step1Repos": "Add the repositories its steps work on. A routine reaches no others:",
  "agent.step2Title": "Add the aService connector",
  "agent.step2Text": "Add this URL as a custom connector in Claude’s settings, if you haven’t yet, and sign in with your aService account. Keep it turned on for the routine.",
  "agent.copyUrl": "Copy connector URL",
  "agent.step3Title": "Set the start prompt",
  "agent.step3Text": "Make this text the routine’s whole prompt. It hands each session over to aService.",
  "agent.copyPrompt": "Copy start prompt",
  "agent.step4Title": "Add an API trigger",
  "agent.step4Text": "Add an API trigger to the routine, then paste its URL and token here.",
  "agent.triggerUrl": "API trigger URL",
  "agent.token": "Token",
  "agent.tokenHelp": "Only you see your link settings.",
  "agent.linkSave": "Link agent",
  "agent.toastLinked": "{agent} is linked",
  "agent.toastLinkedSub": "You can start {services} now.",
  "agent.unlinkTitle": "Unlink {agent} from {executor}?",
  "agent.unlinkText": "Until you link it again, runs you start can’t use {agent}: new runs of {services} are refused or fail at their start, and your active runs fail when they reach a step with it. The routine itself stays in Claude.",
  "agent.unlinkConfirm": "Unlink agent",
  "agent.toastUnlinked": "{agent} is unlinked",
  "agent.addText": "Name an agent the services in {workspace} need, such as a coder or a reviewer. Each member links it to an executor of their own.",
  "agent.namePlaceholder": "Translator",
  "agent.descHelp": "Describe how members set it up: its model, connectors and environment.",
  "agent.descPlaceholder": "Translates the interface texts. Claude Sonnet, GitHub connector.",
  "agent.toastAdded": "Agent added",
  "agent.editTitle": "Edit {agent}",
  "agent.editText": "Members keep their links. If the agent changes, they update their routines in Claude.",
  "agent.deleteTitle": "Delete {agent}?",
  "agent.deleteText": "{count, plural, =0 {No step uses {agent}.} one {{steps} loses its agent, so runs of {services} can’t start until an agent is chosen for it again.} other {{steps} lose their agent, so runs of {services} can’t start until an agent is chosen for each again.}} Every member’s link to {agent} is deleted too.",
  "agent.stepIn": "“{step}” in {service}",
  "agent.toastDeleted": "{agent} is deleted",
  "member.summary": "{count, plural, one {# member in {workspace}} other {# members in {workspace}}}",
  "member.ownersOnly": "Only Owners can add and remove members and change their roles.",
  "member.add": "Add member",
  "member.role": "Role",
  "member.since": "Member since",
  "member.you": "{name} (you)",
  "member.actions": "Actions",
  "member.roleOf": "Role of {name}",
  "member.toastRole": "{name} is now {role, select, owner {an Owner} editor {an Editor} other {a Runner}}",
  "member.actionsFor": "More actions for {name}",
  "member.remove": "Remove from {workspace}",
  "member.lastOwner": "{workspace} needs at least one Owner. Give the role to another member first.",
  "member.addText": "Add someone with an account on this instance, and choose what they can do in {workspace}.",
  "member.person": "Person",
  "member.personHelp": "Everyone with an account here who isn’t in {workspace} yet. Admins invite new people.",
  "member.emailHelp": "The exact email address of their account. The person needs an account on this instance first.",
  "member.ownerHelp": "Manages agents, members and the workspace, and can stop or delete any run. Can do everything an Editor can.",
  "member.editorHelp": "Designs services, sets schedules and API keys, and works with the Catalog. Can do everything a Runner can.",
  "member.runnerHelp": "Sees all services and runs, starts runs, and answers and stops the runs they started.",
  "member.emailUnknown": "No account on this instance uses this email address. Check it, or ask the person to sign up first.",
  "member.toastAdded": "{name} is now a member",
  "member.removeTitle": "Remove {name} from {workspace}?",
  "member.removeText": "{name} loses access to everything in {workspace}.",
  "member.removeRuns": "{count, plural, one {# run of {name} that hasn’t ended stops: {runs}.} other {# runs of {name} that haven’t ended stop: {runs}.}}",
  "member.runOf": "run {run} of {service}",
  "member.removeSchedule": "The schedule of {service} is deleted.",
  "member.removeApiKey": "The API key of {service} is deleted.",
  "member.removeLinks": "The agent links of {name} in {workspace} are deleted.",
  "member.removeNotify": "The Owners of {workspace} get a notification about each deleted schedule and API key.",
  "member.removeConfirm": "Remove member",
  "member.toastRemoved": "{name} is removed from {workspace}",
  "wsSet.generalTitle": "General",
  "wsSet.generalText": "The name and logo every member of {workspace} sees.",
  "wsSet.ownersOnly": "Only Owners can change the name and logo.",
  "wsSet.dangerTitle": "Danger zone",
  "wsSet.dangerText": "These actions can’t be undone.",
  "wsSet.leaveTitle": "Leave {workspace}",
  "wsSet.leaveText": "You lose access to its services and runs. Your runs here that haven’t ended stop, and your schedules, API keys and agent links here are deleted.",
  "wsSet.leave": "Leave workspace",
  "wsSet.leftToast": "You left {workspace}",
  "wsSet.lastOwner": "You’re the only Owner of {workspace}. Give the role to another member first.",
  "wsSet.openMembers": "Open members",
  "wsSet.deleteTitle": "Delete {workspace}",
  "wsSet.deleteText": "Deletes its services, agents and runs for every member.",
  "wsSet.delete": "Delete workspace",
  "wsSet.deletedToast": "{workspace} is deleted",
  "wsSet.deleteEmptyText": "It has no services, agents or runs yet.",
  "wsSet.deleteConfirmTitle": "Delete {workspace}?",
  "wsSet.deleteConfirmText": "Its {services, plural, one {# service} other {# services}}, {agents, plural, one {# agent} other {# agents}} and all their runs are deleted too.{active, plural, =0 {} one { The run that hasn’t ended stops first.} other { The # runs that haven’t ended stop first.}}",
  "wsSet.deleteCatalog": "{count, plural, one {{entries} is removed from the Catalog, and its copies in other workspaces become independent services.} other {{entries} are removed from the Catalog, and their copies in other workspaces become independent services.}}",
  "wsSet.leaveConfirmTitle": "Leave {workspace}?",
  "wsSet.leaveConfirmText": "Your runs here that haven’t ended stop, and your agent links here are deleted. To come back, an Owner has to add you again.",
  "wsSet.historyTitle": "History length",
  "wsSet.historyText": "How long each run is kept after it ends. Run views show how far back the history goes.",
  "wsSet.historyLabel": "Keep runs",
  "wsSet.history7": "7 days",
  "wsSet.history30": "30 days",
  "wsSet.history90": "90 days",
  "wsSet.history365": "1 year",
  "wsSet.historyAlways": "Always",
  "wsSet.historyHelp": "Each run is deleted with its results this long after it ends. Deleted runs don’t come back.",
  "wsSet.historyKeepsAll": "Keeps every run.",
  "wsSet.historyKeeps": "Keeps each run for {length} after it ends.",
  "wsSet.historyOwnersOnly": "Only Owners can change the history length.",
  "wsSet.historyConfirmTitle": "Keep runs of {workspace} for {length}?",
  "wsSet.historyConfirmText": "Runs that ended more than {length} ago are deleted with their results, and from then on each run {length} after it ends. Deleted runs don’t come back.",
  "wsSet.historyConfirmCount": "{count, plural, =0 {No runs are old enough to be deleted yet.} one {# run is deleted now.} other {# runs are deleted now.}}",
  "wsSet.historyConfirm": "Change history length",
  "wsSet.historySavedToast": "History length changed",
  "wsSet.historySavedSub": "{workspace} keeps each run for {length} after it ends.",
  "wsSet.ownTitle": "Your own workspace",
  "wsSet.ownText": "{workspace} came with your account and stays yours until the account is removed, so you can’t leave it or delete it.",
  "wsSet.becomesFreeTitle": "{workspace} becomes a Free workspace on {date}",
  "wsSet.becomesFreeText": "None of its Owners has a seat after that day. Its services keep running, but it takes no new services, versions or members, and keeps only 7 days of run history. A seat for one of its Owners before then keeps it as it is.",
  "cat.summary": "Services shared on this instance.",
  "cat.filtersLabel": "Show",
  "cat.filterAll": "All",
  "cat.filterNew": "New and updated",
  "cat.sortLabel": "Sort by",
  "cat.sortName": "Name",
  "cat.sortRating": "Highest rated",
  "cat.sortInstalls": "Most installed",
  "cat.sortRuns": "Most runs",
  "cat.sortNew": "Newest",
  "cat.searchLabel": "Search the Catalog",
  "cat.noMatch": "No services in the Catalog match “{query}”.",
  "cat.clearSearch": "Clear search",
  "cat.emptyText": "Nothing is in the Catalog yet. Publish a service from its menu to share it here.",
  "cat.openHome": "Open Home",
  "cat.noAccessTitle": "You don’t have Catalog access",
  "cat.noAccessText": "The Catalog lists the services shared on this instance. Ask an Admin for access: {admins}.",
  "cat.noAccessStore": "The Store is open to you either way.",
  "cat.openStore": "Open the Store",
  "cat.removedToast": "{entry} is no longer in the Catalog",
  "cat.removedSub": "Its copies are now independent services.",
  "cat.addToWorkspace": "Add to workspace",
  "cat.addTitle": "Add {entry} to a workspace",
  "cat.addText": "The copy starts at version {version} and gets later versions as updates.",
  "cat.addWorkspace": "Workspace",
  "cat.addWorkspaceHelp": "Only workspaces where you’re an Owner or Editor are listed.",
  "cat.hasCopy": "Has a copy based on version {version}",
  "cat.publishedHere": "Published from here",
  "cat.agentsTitle": "New-session steps start without an agent",
  "cat.agentsText": "Choose one for each on the copy’s Steps tab before its first run. It needs {agents}.",
  "cat.addedToast": "{entry} is in {workspace}",
  "cat.addedSub": "Choose an agent for each new-session step before its first run.",
  "cat.openService": "Open service",
  "cat.openSteps": "Open Steps",
  "cat.since": "In the Catalog since {date}",
  "cat.factPublisher": "Publisher",
  "cat.factVersion": "Latest version",
  "cat.versionDate": "{version} · {date}",
  "cat.agentsNeeded": "Agents it needs",
  "cat.steps": "Steps",
  "cat.stepsCount": "{count, plural, one {# step} other {# steps}}",
  "cat.versions": "Versions",
  "cat.ratings": "Ratings",
  "cat.ratingsCount": "{count, plural, one {# rating} other {# ratings}}",
  "cat.ratingsByStars": "Ratings by stars",
  "cat.starsRow": "{stars, plural, one {# star} other {# stars}}: {count, plural, one {# rating} other {# ratings}}",
  "cat.copiesTitle": "Your copies",
  "cat.copyOffer": "Version {version}, update to {update} offered",
  "cat.copyCurrent": "Version {version}, up to date",
  "cat.reviewUpdate": "Review the update",
  "cat.highlightLabel": "Highlight this entry",
  "cat.highlightHelp": "It shows first in Home’s Catalog highlights and under Highlighted.",
  "cat.adminOnly": "Only Admins see this.",
  "cat.highlightedToast": "{entry} is highlighted",
  "cat.unhighlightedToast": "{entry} is no longer highlighted",
  "cat.manageTitle": "Manage this entry",
  "cat.sourceIn": "Published from {service} in {workspace}",
  "cat.sourceNewer": "Its version {version} isn’t in the Catalog yet.",
  "cat.sourceCurrent": "Its current version {version} is in the Catalog.",
  "cat.editListing": "Edit listing",
  "cat.publishVersion": "Publish version {version}",
  "cat.remove": "Remove from the Catalog",
  "cat.editText": "For the whole entry, every version included.",
  "cat.listingSaved": "Listing saved",
  "cat.removeTitle": "Remove {entry} from the Catalog?",
  "cat.removeText": "The entry and all its versions leave the Catalog. Its copies become independent services and get no more updates. {service} in {workspace} stays as it is.",
  "cat.publishedToast": "Version {version} is in the Catalog",
  "cat.publishedSub": "Workspaces with a copy are notified and can update it.",
  "cat.storeTitle": "In the Store too",
  "cat.storeText": "Request the Store for version {version} with your aservice.co account. Once aservice.co approves it, users of aservice.co and of every instance can install it, and only your account sends its new versions.",
  "cat.storeWaiting": "Waiting for Store review",
  "cat.storeWaitingText": "You requested the Store for version {version} on {date}. aservice.co’s decision comes to your inbox.",
  "cat.openStorePublishing": "Open Store publishing",
  "cat.storeIn": "In the Store",
  "cat.storeInText": "Version {version} is in the Store, where users of aservice.co and of every instance can install it.",
  "cat.openInStore": "Open in the Store",
  "cat.publishCrumb": "Publish",
  "cat.publishSummary": "Everyone with Catalog access on this instance can find it and add a copy to their workspaces.",
  "cat.versionGroup": "Version",
  "cat.versionGroupText": "Publishing takes the service’s current version. Each version can be published once.",
  "cat.entryHas": "Its Catalog entry has version {version}. Publishing adds version {next}.",
  "cat.entryNew": "It isn’t in the Catalog yet. Publishing creates its entry with this version.",
  "cat.kindFromService": "The largest change among the service’s versions since {version}, the entry’s latest. Copies are offered the update as this kind.",
  "cat.kindFirst": "The entry starts with this version. Later versions take their kind from the service’s versions.",
  "cat.openEntry": "Open the entry",
  "cat.listingGroup": "Listing",
  "cat.listingGroupText": "What people see in the Catalog before they add a copy.",
  "cat.descHelp": "Shown on the entry’s page, for the whole entry. You can change it later.",
  "cat.descError": "Enter a description, so people know what the service does.",
  "cat.whatsNewLabel": "What’s new in version {version}",
  "cat.whatsNewHelp": "Shown with this version on the entry’s page and when copies review the update.",
  "cat.whatsNewError": "Enter what’s new in version {version}.",
  "cat.holdsGroup": "What version {version} holds",
  "cat.holdsGroupText": "Copies get exactly this. What belongs to your workspace stays here.",
  "cat.holds": "Included",
  "cat.holdsNever": "Never included",
  "cat.h.steps": "The steps",
  "cat.h.stepsValue": "{count, plural, one {One step with its prompt and outcomes, plus the run limits} other {# steps with their prompts and outcomes, plus the run limits}}",
  "cat.h.nameLogo": "Name and logo",
  "cat.h.repos": "Repositories",
  "cat.h.agents": "Agent names and descriptions",
  "cat.h.schedule": "Schedule",
  "cat.h.apiKey": "API key",
  "cat.h.finish": "Finish notification",
  "cat.h.agentChoices": "Agent choices",
  "cat.h.limitsValue": "Loop limit {loop} · Step time limit {hours, plural, one {# hour} other {# hours}}",
  "cat.neverNote": "These stay with {service} in {workspace}. Each copy sets its own.",
  "cat.alreadyTitle": "Version {version} is already in the Catalog",
  "cat.alreadyText": "Each version is published once. Save a new version of its steps, then publish that.",
  "cat.copyTitle": "Copies can’t be published",
  "cat.copyText": "{service} is a copy of the Catalog entry {entry} by {publisher}. Its new versions come from that entry.",
  "cat.copyStoreText": "{service} is a copy of {entry} by {publisher}, from the Store. Its new versions come from the Store, and it can’t be published to the Catalog or the Store.",
  "cat.importTitle": "{service} isn’t approved yet",
  "cat.importText": "Imported services can be published once they’re approved. Review its steps and approve it first.",
  "cat.updateCrumb": "Update",
  "cat.updateSummary": "{service} is based on version {from} of its Catalog entry. {publisher} published version {to} on {date}.",
  "cat.whatsNewSince": "What’s new since version {version}",
  "cat.updateKind": "{kind, select, fix {The update is a fix: your copy keeps its setup and runs as before.} feature {The update is a new feature: your copy keeps its setup and runs as before.} other {The update is a breaking change: your copy needs the setup below before its next run.}}",
  "cat.changesTitle": "Changes",
  "cat.changesText": "What version {to} changes compared with version {from}. Changed prompts show on the Steps tab after the update.",
  "cat.change.prompt": "Prompt changed",
  "cat.change.added": "New step",
  "cat.unchangedSteps": "Unchanged: {steps}.",
  "cat.setupTitle": "Setup it needs",
  "cat.setupText": "Do this after updating. Until then, {service} can’t start.",
  "cat.setupAgent": "Choose an agent for the new step “{step}”",
  "cat.setupAgentText": "It starts a new session. The entry describes the agent it needs: {agent}, “{description}”",
  "cat.staysTitle": "What stays",
  "cat.staysText": "An update keeps your copy’s settings. Runs already created, such as run {run}, keep their version.",
  "cat.staysNoRun": "An update keeps your copy’s settings. Runs already created keep their version.",
  "cat.keyBy": "Created by {name} on {date}",
  "cat.updateTo": "Update to version {version}",
  "cat.replaceWith": "Replace with version {version}",
  "cat.keepMine": "Keep mine",
  "cat.updatedToast": "Updated to Catalog version {version}",
  "cat.updatedSub": "Saved as version {saved} of {service}.",
  "cat.updatedSetupSub": "Choose an agent for the new step “{step}” before its next run.",
  "cat.keptToast": "You kept your version",
  "cat.keptSub": "Catalog version {version} isn’t offered again; later ones are.",
  "cat.customizedTitle": "{service} is customized",
  "cat.customizedText": "Its steps were changed in {workspace} since its last update. “Replace with version {version}” takes the new steps and loses those changes. “Keep mine” leaves it as it is, and later versions are still offered.",
  "cat.runnerTitle": "Only Owners and Editors can update this copy",
  "cat.runnerText": "You can review the changes. {names} can apply the update.",
  "cat.storeOnlyPublisher": "Only {publisher}, who published this entry, can request the Store for it. The listing then belongs to their aservice.co account, which alone sends its new versions.",
  "cat.storeOtherAccount": "{publisher} requested the Store for it with their aservice.co account. The listing belongs to that account, and only it sends new versions.",
  "store.summary": "Services from aservice.co, for every aService user.",
  "store.searchLabel": "Search the Store",
  "store.noMatch": "No services in the Store match “{query}”.",
  "store.offlineTitle": "The Store can’t be reached right now",
  "store.offlineText": "aService couldn’t reach aservice.co, where the Store lives. Services you installed keep working.",
  "store.unavailableTitle": "The Store isn’t available here",
  "store.unavailableText": "This instance doesn’t show the Store. Services installed from it before keep running, without updates.",
  "store.unlinkedLine": "Installing from the Store needs this instance linked to aservice.co.",
  "store.askAdminLink": "Ask an Admin to link this instance to aservice.co.",
  "store.linkInstance": "Link this instance",
  "store.since": "In the Store since {date}",
  "store.factPrice": "Price",
  "store.support": "Support",
  "store.factHome": "On Home",
  "store.tileValue": "Shows a tile with its latest result",
  "store.moreFrom": "More from {publisher}",
  "store.highlightLabel": "Highlight this listing",
  "store.highlightHelp": "It shows first in Store highlights on Home, everywhere, and under Highlighted.",
  "store.adminOnly": "Only aservice.co’s Admins see this.",
  "store.yoursTitle": "You publish this listing",
  "store.yoursText": "It belongs to your aservice.co account and came from the Catalog entry {entry} on {instance}. Only your account sends its new versions.",
  "store.installTitle": "Install {entry}",
  "store.installName": "Name in the workspace",
  "store.installNameHelp": "Under any name, the copy shows “From {entry} in the Store”.",
  "store.hasCopy": "Has a copy: {service}",
  "store.paidNote": "A Paid listing: your plan includes it and its updates.",
  "store.freeNote": "A Free listing: installing it and its updates cost nothing.",
  "store.updateSummary": "{service} is based on version {from} of its Store listing. {publisher} published version {to} on {date}.",
  "storeReq.summary": "aservice.co’s Admins review every request. Once they approve it, everyone on aservice.co and on every instance finds it in the Store.",
  "storeReq.linkTitle": "Link your aservice.co account first",
  "storeReq.linkText": "A Store request goes out with your aservice.co account, which then gets the notifications about it. Link one on your profile, then come back to send {service}.",
  "storeReq.openEntry": "Open the Catalog entry",
  "storeReq.whatGroup": "What goes to the Store",
  "storeReq.whatGroupText": "The version people install, and what their copies get.",
  "storeReq.fFrom": "Sent from",
  "storeReq.fAccount": "aservice.co account",
  "storeReq.firstVersion": "First version in the Store",
  "storeReq.storeHas": "The Store has version {version}, since {date}.",
  "storeReq.fromCatalog": "The Catalog entry on {instance}",
  "storeReq.fromService": "Your service on aservice.co",
  "storeReq.notLinked": "Not linked yet",
  "storeReq.getsTitle": "Copies get",
  "storeReq.gets.steps": "The steps, with their prompts and outcomes",
  "storeReq.gets.nameLogo": "The name and logo",
  "storeReq.gets.agents": "Each agent’s name and description: {agents}",
  "storeReq.neverTitle": "Copies never get",
  "storeReq.never.repos": "Your repositories: copies add their own",
  "storeReq.never.setup": "Your schedules, API keys and agent links",
  "storeReq.never.runs": "Your runs and their results",
  "storeReq.listingGroup": "Listing",
  "storeReq.listingGroupText": "How the Store shows it. Your texts appear as you write them.",
  "storeReq.listingGroupVersion": "How the Store shows it. Changes to these texts go live with version {version}.",
  "storeReq.descHelp": "On the listing’s page. Say what it does, what it needs and when it asks people.",
  "storeReq.supportLabel": "Support contact",
  "storeReq.supportHelp": "An email address or a web address where people get help with it.",
  "storeReq.supportError": "Enter an email address or a web address.",
  "storeReq.tileLabel": "Its runs set a tile on Home",
  "storeReq.tileHelp": "Check this when a step’s prompt sets the service’s tile. Reviewers check it against the prompts.",
  "storeReq.priceGroup": "Free or Paid",
  "storeReq.priceGroupText": "Chosen with the first request. Changing it comes later, together with payouts.",
  "storeReq.freeHelp": "Anyone can install it.",
  "storeReq.paidHelp": "It comes with every paid plan and has no price of its own: people need a seat to install it and to update their copies.",
  "storeReq.priceFixed": "Chosen with the listing’s first request. Changing it comes later, together with payouts.",
  "storeReq.payTitle": "Payouts come later",
  "storeReq.payLine": "A Paid listing earns you nothing for now. aservice.co starts paying publishers of Paid listings later, for use from then on.",
  "storeReq.termsHelp": "What you agree to when you offer a Paid listing.",
  "storeReq.readTerms": "Read the publisher terms",
  "storeReq.termsError": "Accept the publisher terms to offer a Paid listing.",
  "storeReq.termsAccepted": "You accepted the publisher terms with your first Paid listing.",
  "storeReq.publisherGroup": "Publisher",
  "storeReq.publisherGroupText": "Your name or your organization’s, on all your listings.",
  "storeReq.publisherName": "Publisher name",
  "storeReq.publisherHelp": "Set once for your aservice.co account, with your first request.",
  "storeReq.publisherFixed": "Set for your aservice.co account with your first request.",
  "storeReq.reviewGroup": "For the reviewers",
  "storeReq.reviewGroupText": "aservice.co’s Admins see the whole definition with its prompts, and what changed since the version in the Store.",
  "storeReq.whatsNew": "What’s new in version {version}",
  "storeReq.whatsNewHelp": "On the listing and in the update offered to copies.",
  "storeReq.kindOk": "You chose {kind}. aService agrees: no setup changes in copies.",
  "storeReq.noteLabel": "Note to the reviewers",
  "storeReq.noteHelp": "Anything that helps the review, such as what it needs to run. Only the reviewers see it.",
  "storeReq.previewGroup": "Preview",
  "storeReq.previewGroupText": "Its card in the Store, as people will see it.",
  "storeReq.send": "Send request",
  "storeReq.sendVersion": "Send version {version} to the Store",
  "storeReq.sendAgain": "Send again",
  "storeReq.sentTitle": "{service} waits for review",
  "storeReq.sentText": "aservice.co’s Admins review requests in the order they arrive. You’ll get a notification when they decide.",
  "storeReq.openPublishing": "Open Store publishing",
  "storeReq.sentToast": "Store request sent",
  "storeReq.sentToastSub": "aservice.co’s Admins review it. You’ll get a notification when they decide.",
  "storeReq.changesHow": "Change the request and send it again. To change the steps, save a new version of the service, publish it to the Catalog and request the Store for that version.",
  "storeReq.termsTitle": "Publisher terms",
  "storeReq.termsIntro": "The main points. The full terms are on aservice.co.",
  "storeReq.terms.sell": "aservice.co sells the paid plans that include Paid listings: it charges their owners and handles VAT and refunds.",
  "storeReq.terms.support": "You keep the support contact working and answer people who ask for help.",
  "storeReq.terms.remove": "aservice.co can remove a listing that breaks these terms, with a reason you see.",
  "storeReq.terms.later": "Until aservice.co starts paying publishers, later, a Paid listing earns you nothing, and that time doesn’t count toward payouts.",
  "storeReq.accountOwns": "A listing belongs to the account of its first request. Only that account sends its new versions.",
  "storeReq.sendAs": "Send it as",
  "storeReq.asVersionOf": "A new version of {listing}",
  "storeReq.asNewListing": "A new listing",
  "storeReq.sendAsHelp": "Your listings, or a new one. It starts with the listing that earlier versions went to.",
  "storeReq.termsAccept": "I accept the publisher terms",
  "storeRev.request": "Store request",
  "storeRev.waiting": "Waiting for review",
  "storeRev.newListing": "New listing",
  "storeRev.newVersion": "New version",
  "storeRev.approvedTag": "Approved",
  "storeRev.changesTag": "Changes asked",
  "storeRev.declinedTag": "Declined",
  "storeRev.fListing": "Listing",
  "storeRev.fPublisher": "Publisher",
  "storeRev.fSent": "Sent",
  "storeRev.fTile": "Tile on Home",
  "storeRev.termsNow": "Publisher terms accepted with this request",
  "storeRev.coverNone": "None: the card shows the logo instead.",
  "storeRev.selfHosted": "Self-hosted instance",
  "storeRev.fromCo": "aservice.co",
  "storeRev.cardTitle": "Card in the Store",
  "storeRev.textsTitle": "Listing texts",
  "storeRev.defTitle": "Steps and prompts",
  "storeRev.defText": "The whole definition, as copies get it. The listing shows the steps but never the prompts.",
  "storeRev.promptsTitle": "Prompts",
  "storeRev.agentsTitle": "Agents it needs",
  "storeRev.agentsText": "Copies start without them: each workspace links its own.",
  "storeRev.reposNone": "No repositories: copies add their own.",
  "storeRev.changesTitle": "What changed since version {version}",
  "storeRev.changesText": "Compared with the version in the Store, which copies have now.",
  "storeRev.change.prompt": "Prompt changed",
  "storeRev.change.added": "New step",
  "storeRev.unchanged": "Unchanged: {steps}.",
  "storeRev.agentsSame": "Agents: unchanged.",
  "storeRev.legendAdded": "Added",
  "storeRev.legendRemoved": "Removed",
  "storeRev.kindOkTitle": "The kind of change fits",
  "storeRev.kindOk": "{name} chose {kind}. aService agrees: no setup changes in copies.",
  "storeRev.kindBadTitle": "The kind of change is too low",
  "storeRev.kindBad": "{name} chose {kind}, but aService computes a breaking change: the new step “{step}” starts a new session, so copies need setup for it. A request’s version can’t change, so decline it and ask for a new version as a breaking change, {version}.",
  "storeRev.decideText": "Waiting for your decision",
  "storeRev.cantApprove": "The kind of change is too low: decline the request",
  "storeRev.approve": "Approve",
  "storeRev.askChanges": "Ask for changes",
  "storeRev.decline": "Decline",
  "storeRev.approveTitle": "Approve {name}?",
  "storeRev.approveVersionTitle": "Approve version {version} of {name}?",
  "storeRev.approveNew": "It’s in the Store at once, for everyone on aservice.co and on every instance, and {publisher} gets a notification.",
  "storeRev.approveUpdate": "It replaces version {old} in the Store at once. Copies are offered the update, Owners and Editors of their workspaces are notified, and so is {publisher}.",
  "storeRev.approvedToast": "{name} is in the Store",
  "storeRev.approvedVersionToast": "Version {version} of {name} is in the Store",
  "storeRev.notifiedSub": "{publisher} gets a notification.",
  "storeRev.approvedTitle": "You approved this request",
  "storeRev.approvedText": "It’s in the Store now, and {publisher} got a notification.",
  "storeRev.approvedVersionText": "Version {version} is in the Store now. Copies are offered the update, and {publisher} got a notification.",
  "storeRev.backToRequests": "Back to Store requests",
  "storeRev.changesDialogTitle": "Ask for changes to {name}",
  "storeRev.changesDialogText": "{publisher} gets your message, changes the request and sends it again. Until then it stays out of the Store.",
  "storeRev.messageLabel": "Message to {publisher}",
  "storeRev.messageHelp": "Say what to change. {publisher} sees it with the request.",
  "storeRev.changesToast": "Message sent to {publisher}",
  "storeRev.changesToastSub": "The request waits until {publisher} sends it again.",
  "storeRev.changesSentTitle": "You asked for changes",
  "storeRev.changesSentText": "The request waits until {publisher} sends it again. Your message:",
  "storeRev.declineTitle": "Decline {name}?",
  "storeRev.declineText": "{publisher} gets your reason and can send a new request later.",
  "storeRev.reasonLabel": "Reason",
  "storeRev.reasonHelp": "{publisher} sees it with the request.",
  "storeRev.declineButton": "Decline request",
  "storeRev.declinedToast": "Request declined",
  "storeRev.reasonSentSub": "{publisher} gets your reason.",
  "storeRev.declinedTitle": "You declined this request",
  "storeRev.declinedText": "{publisher} got your reason:",
  "storeRev.chosenBy": "Chosen by {name}",
  "storeRev.fKindComputed": "Kind aService computes",
  "storePub.summary": "Your services in the Store: requests and listings.",
  "storePub.emptyText": "Your Store requests and listings appear here once you send your first request.",
  "storePub.emptyTitle": "Nothing in the Store yet",
  "storePub.howTitle": "How to put a service in the Store",
  "storePub.howCat1": "Publish the service to the Catalog from its menu.",
  "storePub.howCat2": "Open its entry in the Catalog and choose Request the Store.",
  "storePub.howReview": "aservice.co’s Admins review it. Once they approve it, it’s in the Store.",
  "storePub.howCo1": "Open the service and choose Request the Store in its menu.",
  "storePub.howCo2": "Write the listing texts and choose Free or Paid.",
  "storePub.accountLine": "Requests go out with your aservice.co account {account}. Your listings belong to it, and only it sends their new versions.",
  "storePub.openCatalog": "Open the Catalog",
  "storePub.openHome": "Open Home",
  "storePub.linkTitle": "Link an aservice.co account to publish in the Store",
  "storePub.linkText": "Store requests and listings belong to an aservice.co account. Link yours on your profile.",
  "storePub.requestsTitle": "Requests",
  "storePub.requestsText": "Until aservice.co’s Admins decide. You can withdraw a request while it waits.",
  "storePub.noRequests": "No requests waiting.",
  "storePub.col.request": "Request",
  "storePub.menu": "Actions for {name}",
  "storePub.withdraw": "Withdraw request",
  "storePub.withdrawTitle": "Withdraw the request for {name}?",
  "storePub.withdrawText": "aservice.co’s Admins stop reviewing it. You can send a new request any time.",
  "storePub.withdrawnToast": "Request withdrawn",
  "storePub.withdrawnSub": "You can send a new request any time.",
  "storePub.changesAsked": "aservice.co asked for changes",
  "storePub.editRequest": "Edit and send again",
  "storePub.approvedTitle": "{name} is in the Store",
  "storePub.approvedText": "aservice.co approved version {version}. Everyone on aservice.co and on every instance can install it now.",
  "storePub.declinedTitle": "aservice.co declined it",
  "storePub.declinedText": "Change what the reason names, then send a new request from the Catalog entry.",
  "storePub.listingsTitle": "Listings in the Store",
  "storePub.noListings": "Nothing in the Store yet. Approved requests appear here.",
  "storePub.col.listing": "Listing",
  "storePub.col.rating": "Rating",
  "storePub.col.installCount": "Installs",
  "storePub.col.runs": "Runs",
  "storePub.inStoreSince": "In the Store since {date}",
  "storePub.versionWaiting": "Version {version} waits for review",
  "storePub.remove": "Remove from the Store",
  "storePub.removeTitle": "Remove {name} from the Store?",
  "storePub.removeText": "Nobody can install it anymore. Its copies keep running at version {version} without updates, and Owners and Editors of workspaces with a copy are notified. Its ratings, installs and runs stay with it if it comes back.",
  "storePub.removedToast": "{name} left the Store",
  "storePub.removedSub": "Its copies keep running at version {version}.",
  "storeAdm.summary": "Users, settings and backups of aservice.co, and its Store.",
  "storeAdm.navLabel": "Store administration",
  "storeAdm.nav.requests": "Requests",
  "storeAdm.nav.listings": "Listings",
  "storeAdm.waitingTitle": "Waiting for review",
  "storeAdm.waitingCount": "{count, plural, one {# request, oldest first} other {# requests, oldest first}}",
  "storeAdm.col.publisher": "Publisher",
  "storeAdm.review": "Review",
  "storeAdm.reviewLabel": "Review {name}",
  "storeAdm.decidedTitle": "Recent decisions",
  "storeAdm.decidedText": "The publisher sees each decision with its message or reason.",
  "storeAdm.col.decision": "Decision",
  "storeAdm.col.decided": "Decided",
  "storeAdm.by": "By {name}",
  "storeAdm.waitingPill": "{count} waiting",
  "storeAdm.listingsCount": "{count, plural, one {# listing} other {# listings}}",
  "storeAdm.highlightedCount": "{count} highlighted",
  "storeAdm.searchLabel": "Search listings",
  "storeAdm.col.highlighted": "Highlighted",
  "storeAdm.highlightLabel": "Highlight {name}",
  "storeAdm.highlightedToast": "{name} is highlighted",
  "storeAdm.highlightedSub": "It shows first under Highlighted in the Store and in Store highlights on Home.",
  "storeAdm.removeText": "{publisher} is notified with your reason. Nobody can install it anymore; its copies keep running at version {version} without updates, and Owners and Editors of workspaces with a copy are notified. Its ratings, installs and runs stay with it if it comes back.",
  "storeAdm.reasonHelp": "{publisher} gets it in a notification.",
  "storeAdm.removedSub": "{publisher} is notified with your reason.",
  "profile.summary": "How others see you, how you sign in, your plan, and how aService looks for you.",
  "profile.nameTitle": "Name and email",
  "profile.nameText": "Your name shows on what you do in aService. You sign in with your email.",
  "profile.displayName": "Display name",
  "profile.displayNameHelp": "Others see it on runs, versions and Catalog entries.",
  "profile.emailHelp": "You sign in with it and get your emails there. A new address counts once you open the link sent to it.",
  "profile.pendingTitle": "Confirm your new email address",
  "profile.pendingText": "A link is on its way to {email}. Once you open it, the new address replaces the old one, and {old} gets a notice. Until then, you keep using {old}.",
  "profile.resendLink": "Send link again",
  "profile.cancelChange": "Keep old address",
  "profile.linkSentToast": "Link sent to {email}",
  "profile.changeCanceledToast": "You keep {email}",
  "profile.passwordIntro": "You sign in with your email and this password.",
  "profile.passwordText": "If you forget it, reset it from the sign-in page with a link sent to your email.",
  "profile.changePassword": "Change password",
  "profile.passwordDialogText": "Enter your current password, then the new one.",
  "profile.currentPassword": "Current password",
  "profile.newPassword": "New password",
  "profile.passwordChangedToast": "Password changed",
  "profile.planTitle": "Plan",
  "profile.planText": "Your plan sets what you can do in aService. A paid plan comes as a seat, given by whoever owns the plan.",
  "profile.planAdminSeat": "Your seat of this instance’s plan since {date}. As an Admin, you give its seats.",
  "profile.planSeatGiven": "A seat of this instance’s plan, given by {name} on {date}",
  "profile.prefsTitle": "Preferences",
  "profile.prefsText": "How aService looks and speaks to you.",
  "profile.language": "Language",
  "profile.langEn": "English",
  "profile.langDe": "Deutsch",
  "profile.languageHelp": "Your emails and notifications use it too.",
  "profile.timeZone": "Time zone",
  "profile.timeZoneHelp": "All times show in this zone, and schedules you set up run in it.",
  "profile.appearance": "Appearance",
  "profile.light": "Light",
  "profile.dark": "Dark",
  "profile.device": "Device",
  "profile.appearanceHelp": "Device follows the light or dark setting of each device you use.",
  "profile.moreTitle": "More settings",
  "profile.moreText": "Your executors, channels and chat unlocks belong to your profile too.",
  "profile.execMeta": "{name}, linked to {count, plural, one {# agent} other {# agents}}",
  "profile.execNone": "No executors yet",
  "profile.notifMeta": "Inbox, email and browser push are on",
  "profile.connMeta": "{count, plural, =0 {No chat unlocked} one {# chat unlocked} other {# chats unlocked}}",
  "profile.deleteAccount": "Delete account",
  "profile.deleteIntro": "This can’t be undone.",
  "profile.deleteCardText": "You leave all your workspaces. Your own workspace is deleted, also when others are members of it, and so is any other workspace where you’re the only member. Your name stays on past runs, versions and Catalog entries, and your ratings stay.",
  "profile.deleteTitle": "Delete your account?",
  "profile.deleteText": "You leave {workspaces}. This can’t be undone.",
  "profile.deleteRuns": "{count, plural, =0 {Your schedules, API keys and agent links are deleted.} one {Your run that hasn’t ended stops, and your schedules, API keys and agent links are deleted.} other {Your # runs that haven’t ended stop, and your schedules, API keys and agent links are deleted.}}",
  "profile.newOwner": "Who becomes Owner of {workspace}?",
  "profile.newOwnerHelp": "{workspace} has no other Owner. Pick one of its members to take over.",
  "profile.newAdmin": "Who becomes Admin?",
  "profile.newAdminHelp": "You’re the only Admin of this instance, and it always needs one.",
  "profile.emailPasswordHelp": "Changing your email address needs your password.",
  "profile.deleteOwn": "Your own workspace, {workspace}, is deleted with its services, agents and runs, and so is any other workspace where you’re the only member.",
  "profile.deleteOwnMembers": "{count, plural, one {{members} is a member of {workspace} too, and loses its services and runs.} other {{members} are members of {workspace} too, and lose its services and runs.}}",
  "profile.deleteStays": "Your name stays on past runs, versions and Catalog entries, and your ratings stay.",
  "profile.deletePasswordHelp": "Deleting your account needs your password.",
  "exec.summary": "Your connections to your AI accounts. Only runs you start use them.",
  "exec.add": "Add executor",
  "exec.typeClaude": "Claude routine",
  "exec.openExecutor": "Open executor",
  "exec.linksIn": "Agent links in {workspace}",
  "exec.addText": "Connect aService to an AI account of yours. Then link the executor to agents in your workspaces.",
  "exec.namePlaceholder": "Work Claude",
  "exec.nameHelp": "Members of your workspaces see it on the steps it runs, and you see it when you link agents.",
  "exec.type": "Type",
  "exec.typeClaudeHelp": "Runs sessions on your own Claude subscription, through Claude Code routines.",
  "exec.addedToast": "Executor added",
  "exec.addedToastSub": "Link it to agents on the Agents page of each workspace.",
  "exec.deletedToast": "{name} is deleted",
  "exec.emptyText": "No executors yet. Add your Claude to run services on your own subscription.",
  "exec.limitsTitle": "Limits",
  "exec.limitsText": "aService checks them before every step of your runs. A step waits while a limit is reached and starts once it resets.",
  "exec.readingsTitle": "Usage readings come through Claude’s command-line tool",
  "exec.readingsText": "With the sign-in below, aService reads your usage windows while your sessions work, so a reading can lag a little. Without it, they aren’t checked, and a step waits only when Claude refuses it.",
  "exec.windowsTitle": "Usage windows",
  "exec.startsTitle": "Session starts this hour",
  "exec.limit5h": "5-hour window",
  "exec.limitWeek": "Weekly window",
  "exec.limitRoutine": "Session starts, {routine}",
  "exec.limitAccount": "Session starts, Claude account",
  "exec.claudeAccount": "Claude account",
  "exec.countOf": "{used} of {max}",
  "exec.holdsAtPct": "Holds at {level}",
  "exec.holdsAtCount": "Holds at {count} per hour",
  "exec.resetsAt": "Resets at {time}",
  "exec.resetsOn": "Resets {day} at {time}",
  "exec.noReading": "No reading",
  "exec.lastReading": "Last reading {time}",
  "exec.near": "Near its hold level",
  "exec.holding": "{count, plural, one {Holding # step until {time}} other {Holding # steps until {time}}}",
  "exec.settingsTitle": "Name and hold level",
  "exec.settingsText": "The hold level applies to both usage windows. Session starts hold at their exact limit.",
  "exec.holdLevel": "Hold level",
  "exec.holdHelp": "Steps wait once a usage window reaches it. From 50 to 100; the default is 90.",
  "exec.holdError": "Enter a number from 50 to 100.",
  "exec.agentLinks": "Agent links",
  "exec.linksText": "The agents this executor works for. Only you see the settings of your links.",
  "exec.colWorkspace": "Workspace",
  "exec.colAgent": "Agent",
  "exec.editLink": "Edit link",
  "exec.unlink": "Unlink",
  "exec.unlinkedToast": "{agent} is unlinked",
  "exec.unlinkTitle": "Unlink {agent} from {executor}?",
  "exec.unlinkText": "Until you link it again, runs you start can’t use {agent}: new runs of {services} are refused or fail at their start, and your active runs fail when they reach a step with it. The routine itself stays in Claude.",
  "exec.unlinkConfirm": "Unlink agent",
  "exec.cliTitle": "Command-line tool",
  "exec.cliText": "With Claude’s command-line tool, aService reads your usage windows and wakes a waiting session when a step continues it. Without it, usage windows aren’t checked, and a new session starts with the latest dump.",
  "exec.cliOff": "Not signed in",
  "exec.cliOffMeta": "Usage windows aren’t read, and steps that continue a session start a new one.",
  "exec.cliOn": "Signed in",
  "exec.cliOnMeta": "aService reads the usage of {name} and wakes its waiting sessions.",
  "exec.cliSignIn": "Sign in",
  "exec.cliSignOut": "Sign out",
  "exec.cliWarnTitle": "The Admin could reach this sign-in",
  "exec.cliWarnText": "On a shared instance, sign in the command-line tool only if you trust the Admin.",
  "exec.cliOpenTitle": "Not offered on this instance",
  "exec.cliOpenText": "Anyone can sign up here, so aService doesn’t keep sign-ins of Claude’s command-line tool. Usage windows aren’t checked, and a step that continues a session starts a new one with the latest dump.",
  "exec.cliDialogTitle": "Sign in Claude’s command-line tool",
  "exec.cliDialogText": "Use the Claude account that {name} runs on. aService uses this sign-in for your runs only.",
  "exec.cliStep1": "Open this link and sign in to Claude",
  "exec.copyLink": "Copy sign-in link",
  "exec.cliStep2": "Paste the code Claude shows you",
  "exec.cliFinish": "Finish sign-in",
  "exec.cliOnToast": "Command-line tool signed in",
  "exec.cliOffToast": "Command-line tool signed out",
  "exec.delete": "Delete executor",
  "exec.deleteIntro": "This can’t be undone.",
  "exec.deleteTitle": "Delete {name}?",
  "exec.deleteText": "{count, plural, one {Its agent link is removed too. Until you link it again, you can’t start services that need {agents}, and your active runs fail when they reach a step with it.} other {Its # agent links are removed too. Until you link them again, you can’t start services that need {agents}, and your active runs fail when they reach a step with one of them.}}",
  "notif.summary": "Every notification lands in your inbox. Channels send you a copy with the same link.",
  "notif.channelsTitle": "Channels",
  "notif.channelsText": "Each channel you turn on gets a copy of every notification. Channels only inform you; you act on the website.",
  "notif.inboxMeta": "Always on. Every notification stays here, read or unread.",
  "notif.emailTo": "To {email}",
  "notif.telegram": "Telegram",
  "notif.telegramOff": "Not linked",
  "notif.telegramLinked": "Linked to {account}",
  "notif.linkTelegram": "Link Telegram",
  "notif.unlinkTelegram": "Unlink",
  "notif.push": "Browser push",
  "notif.pushMeta": "On for this browser. Turn it on in each browser where you want it.",
  "notif.pushBlockedMeta": "Blocked by this browser",
  "notif.pushBlockedTitle": "This browser blocks notifications",
  "notif.pushBlockedText": "Allow notifications for {site} in your browser’s site settings, then turn browser push on here.",
  "notif.noServersTitle": "Email and Telegram aren’t set up",
  "notif.noServersText": "This instance has no email server or Telegram bot, so these channels aren’t offered. An Admin can set them up.",
  "notif.openInstance": "Open instance settings",
  "notif.tgText": "Send this code to {bot} in Telegram. Notifications then go to the Telegram account you sent it from.",
  "notif.tgCode": "One-time code",
  "notif.copyCode": "Copy code",
  "notif.tgCodeHelp": "Works once, for 10 minutes.",
  "notif.tgAuto": "This dialog closes by itself once the bot has your code.",
  "notif.openTelegram": "Open Telegram",
  "notif.tgLinkedToast": "Telegram linked",
  "notif.tgUnlinkedToast": "Telegram unlinked",
  "notif.eventsTitle": "What notifies you",
  "notif.eventsText": "These events reach your inbox and every channel you turned on. Each service decides in its settings whether its finished runs notify you.",
  "notif.evRequest": "A run of yours waits for you",
  "notif.evRequestMeta": "For a question, a review or a failure choice. A reminder follows every 24 hours until you answer.",
  "notif.evFailed": "A run of yours fails",
  "notif.evFailedMeta": "Runs of your schedules and API keys count as yours.",
  "notif.evFinished": "A run of yours finishes",
  "notif.evFinishedMeta": "Only for services with the finish notification on.",
  "notif.evCatalog": "A Catalog entry gets a new version",
  "notif.evCatalogMeta": "If a workspace where you’re Owner or Editor has a copy of it, and you have Catalog access.",
  "notif.evDeleted": "A member’s schedule or API key is deleted",
  "notif.evYoursDeleted": "Someone deletes your schedule or API key",
  "notif.evYoursDeletedMeta": "Owners and Editors can delete them, but only you can change them.",
  "notif.evDeletedMeta": "In workspaces where you’re Owner, when the member leaves or is removed.",
  "conn.summary": "Add aService to Claude, and let a chat work with aService as you.",
  "conn.title": "Connector",
  "conn.text": "The sessions of your runs and your chats in Claude reach aService through it.",
  "conn.url": "Connector URL",
  "conn.copyUrl": "Copy connector URL",
  "conn.urlHelp": "The same address for everyone on this instance.",
  "conn.addTitle": "Add it to Claude",
  "conn.step1": "In Claude, open the connector settings and add a custom connector.",
  "conn.step2": "Paste the connector URL and name the connector aService.",
  "conn.step3": "When Claude asks, sign in with your aService account, {email}.",
  "conn.routinesNote": "Your routines use the same connector. The setup guide for agent links shows how to add it to a routine.",
  "conn.unlocksTitle": "Chat unlocks",
  "conn.unlocksText": "A chat can’t act as you until you unlock it. An unlock lasts 12 hours, or until you revoke it.",
  "conn.canTitle": "What an unlocked chat can do",
  "conn.can1": "Read workspaces, services, versions, runs and the Catalog",
  "conn.can2": "Start runs, and stop runs you started",
  "conn.can3": "Create workspaces, create and edit services, and set schedules",
  "conn.can4": "Publish to the Catalog, add copies and apply updates",
  "conn.can5": "Manage agents",
  "conn.canNote": "Always within your roles. Everything else, such as deleting or answering requests, works only on the website. Changes from a chat show its name in the history, such as “via Claude”.",
  "conn.riskTitle": "An unlocked chat acts with your rights",
  "conn.riskText": "If it reads a harmful web page or file, that content could steer it. Unlock a new chat for one task, and revoke the unlock when you’re done.",
  "conn.activeTitle": "Active unlocks",
  "conn.createCode": "Create unlock code",
  "conn.colChat": "Chat",
  "conn.colUnlocked": "Unlocked",
  "conn.colEnds": "Ends",
  "conn.revoke": "Revoke",
  "conn.none": "No chat is unlocked. Create an unlock code to let a new chat act as you.",
  "conn.codeTitle": "Your unlock code",
  "conn.codeText": "It’s shown only once. The chat you give it to needs the aService connector and can then act as you for 12 hours.",
  "conn.codeLabel": "Unlock code",
  "conn.copyCode": "Copy unlock code",
  "conn.codeHelp": "Give it to a new chat. Works once, for 10 minutes.",
  "conn.codeExample": "In the chat, write for example: “Unlock aService with {code}”.",
  "conn.revokeTitle": "Revoke the unlock of {chat}?",
  "conn.revokeText": "The chat can’t act as you anymore. What it already did stays as it is.",
  "conn.revokeUnlock": "Revoke unlock",
  "conn.revokedToast": "Unlock of {chat} revoked",
  "acctLink.title": "aservice.co account",
  "acctLink.text": "Link the account you use on aservice.co to rate Store listings and send services to the Store.",
  "acctLink.linkedOn": "Linked on {date}",
  "acctLink.unlink": "Unlink",
  "acctLink.notLinked": "Not linked",
  "acctLink.notLinkedText": "With a linked account you can rate Store listings and send services to the Store.",
  "acctLink.link": "Link account",
  "acctLink.linkTitle": "Link an aservice.co account",
  "acctLink.linkText": "aservice.co opens in this tab:",
  "acctLink.step1": "Sign in there, or create an aservice.co account and verify its email address.",
  "acctLink.step2": "Allow {site} to use the account.",
  "acctLink.step3": "You come back here, linked.",
  "acctLink.shares": "{site} then tells aservice.co only what the link needs: your ratings and your Store requests. Never what your runs contain.",
  "acctLink.continue": "Continue to aservice.co",
  "acctLink.unlinkTitle": "Unlink your aservice.co account?",
  "acctLink.unlinkText": "{account} stops working here. Until you link an account again, you can’t:",
  "acctLink.stopRate": "Rate Store listings",
  "acctLink.stopRequest": "Send services to the Store",
  "acctLink.stays": "What stays:",
  "acctLink.stayRatings": "Your ratings and your listings in the Store stay with {account}.",
  "acctLink.stayPlan": "Your plan and your seat don’t change: they come with this instance.",
  "acctLink.unlinkConfirm": "Unlink account",
  "acctLink.unlinkedToast": "aservice.co account unlinked",
  "acctLink.unlinkedToastSub": "You can link an account again any time.",
  "acctLink.linkedToast": "aservice.co account linked",
  "acctLink.linkedToastSub": "You can now rate Store listings and send services to the Store.",
  "acctLink.coName": "aservice.co",
  "acctLink.asks": "{name} ({email}) wants to link an aservice.co account.",
  "acctLink.signInTitle": "Sign in to aservice.co",
  "acctLink.signInText": "Use your aservice.co account. It’s separate from your account on {site}.",
  "acctLink.noAccount": "No aservice.co account yet?",
  "acctLink.createTitle": "Create an aservice.co account",
  "acctLink.allowTitle": "Allow {site} to use your account?",
  "acctLink.signedInAs": "Signed in as {email}",
  "acctLink.otherAccount": "Use another account",
  "acctLink.mayTitle": "{site} can then:",
  "acctLink.mayRate": "Rate Store listings",
  "acctLink.mayRequest": "Send services to the Store",
  "acctLink.never": "It never sees your aservice.co password or your payment details.",
  "acctLink.unlinkAnyTime": "You can unlink it any time on your profile at {site}.",
  "acctLink.allow": "Allow",
  "storeNote.version": "{listing} has version {version} in the Store",
  "storeNote.metaCopyNamed": "Your copy {service} in {workspace}",
  "storeNote.removed": "{listing} left the Store",
  "storeNote.approved": "{listing} is in the Store",
  "storeNote.changes": "aservice.co asked for changes to {listing}",
  "storeNote.declined": "aservice.co declined your Store request for {listing}",
  "storeNote.requestNew": "{name} sent {listing} to the Store",
  "storeNote.requestVersion": "{name} sent version {version} of {listing} to the Store",
  "storeNote.metaNewListing": "New listing, version {version}",
  "storeNote.metaNewVersion": "New version",
  "storeNote.metaRequest": "Store request, version {version}",
  "storeNote.versionText": "Your copy {service} in {workspace} is based on version {from}. Review the changes before you update it.",
  "storeNote.reviewUpdate": "Review update",
  "storeNote.openListing": "Open {listing} in the Store",
  "storeNote.whyCopy": "You get this email because you’re an Owner or Editor of {workspace}, which has a copy of {listing}, and email is on in your notification settings.",
  "storeNote.removedText": "{by, select, admin {aservice.co removed {listing} from the Store.} other {{publisher} removed {listing} from the Store.}} Your copy in {workspace} keeps running at version {version}, but it gets no more updates.",
  "storeNote.openCopy": "Open your copy",
  "storeNote.approvedText": "aservice.co approved version {version} of {listing}. It’s in the Store now, for everyone on aservice.co and on every instance that shows the Store.",
  "storeNote.changesText": "Version {version} of {listing} stays out of the Store for now. Make the changes the message asks for, then send the request again.",
  "storeNote.message": "Message from aservice.co",
  "storeNote.declinedText": "Version {version} of {listing} won’t be in the Store. You can change the service and send a new request.",
  "storeNote.reason": "Reason",
  "storeNote.openPublishing": "Open Store publishing",
  "storeNote.whyPublisher": "You get this email because you sent {listing} to the Store and email is on in your notification settings.",
  "storeNote.requestText": "Review the listing as it will look, its whole definition and where it came from. It stays out of the Store until an Admin approves it.",
  "storeNote.reviewRequest": "Review request",
  "storeNote.whyAdmin": "You get this email because you’re an Admin of aservice.co and email is on in your notification settings.",
  "storeNote.removedByAdmin": "aservice.co removed {listing} from the Store",
  "storeNote.removedByAdminText": "Nobody can install it anymore. Its copies keep running at version {version} without updates, and Owners and Editors of workspaces with a copy are told it left the Store.",
  "storeNote.removedByAdminMore": "Its ratings, installs and runs stay with it if it comes back with a new Store request.",
  "storeNotif.evVersion": "A Store listing gets a new version",
  "storeNotif.evVersionMeta": "If a workspace where you’re Owner or Editor has a copy of it.",
  "storeNotif.evRemoved": "A listing leaves the Store",
  "storeNotif.evRemovedMeta": "If a workspace where you’re Owner or Editor has a copy of it. The copy keeps running.",
  "storeNotif.evDecided": "Your Store request is approved, needs changes or is declined",
  "storeNotif.evDecidedMeta": "For services you sent to the Store.",
  "storeNotif.evRequest": "A Store request is sent or withdrawn",
  "storeNotif.evRequestMeta": "For aservice.co’s Admins, who review it.",
  "storeNotif.evRemovedYours": "aservice.co removes your listing from the Store",
  "storeNotif.evRemovedYoursMeta": "For listings you publish, with the reason.",
  "plans.summary": "Everyone has the Free plan. A seat of a paid plan lifts its limits, on aservice.co and on every instance.",
  "plans.name.free": "Free",
  "plans.name.start": "Start",
  "plans.name.grow": "Grow",
  "plans.name.scale": "Scale",
  "plans.priceFree": "For everyone",
  "plans.plusFree": "Everything in Free, plus:",
  "plans.plusStart": "Everything in Start, plus:",
  "plans.plusGrow": "Everything in Grow, plus:",
  "plans.free.own": "Your own workspace with up to {count, plural, one {# service} other {# services}}",
  "plans.free.join": "Join any workspace you’re invited to",
  "plans.free.tools": "Schedules, API keys, the Catalog, publishing and AI chats",
  "plans.free.history": "{count, plural, one {# day} other {# days}} of run history",
  "plans.free.store": "Free listings from the Store",
  "plans.start.create": "Create workspaces",
  "plans.start.members": "Add members",
  "plans.start.services": "Any number of services",
  "plans.start.history": "History length up to always",
  "plans.start.paid": "Paid listings and their updates",
  "plans.start.chats": "Chat unlocks, so AI chats can act as you",
  "plans.start.tunnel": "The tunnel for a self-hosted instance",
  "plans.grow.products": "Coming later: aservice.co products, such as {sites, plural, one {# website} other {# websites}} on Hosting and {mb, number} MB of Storage",
  "plans.scale.products": "More of the products",
  "plans.scale.servers": "aService on several servers behind a load balancer",
  "plans.more": "More than {count, plural, one {# seat} other {# seats}}: contact aservice.co.",
  "plans.salesEmail": "aservice.co’s sales address",
  "plans.copyEmail": "Copy email address",
  "plans.buyStart": "Buy the Start plan",
  "plans.askAdmin": "Ask an Admin of this instance for a seat.",
  "plans.ownAndGive": "{count, plural, one {You own the plan and give its seat by email, to yourself or someone else.} other {You own the plan and give its # seats by email, your own included.}}",
  "plans.linkFirst": "An Admin links this instance to aservice.co first.",
  "plans.canceledTitle": "The {plan} ends on {date}",
  "plans.canceledText": "You canceled it, so it won’t renew. Resume it until then to keep it without a break.",
  "plans.resume": "Resume plan",
  "plans.failedTitle": "The {plan} couldn’t be renewed on {date}",
  "plans.failedText": "aservice.co tries again on {retry} and a last time on {last}. If the payment still fails, the plan ends. Update your payment method to keep it.",
  "plans.updatePayment": "Update payment method",
  "plans.graceTitle": "You have the {plan} until {date}",
  "plans.graceText": "{name} took back your seat on {taken}. Then you have the Free plan, unless you get a seat again.",
  "plans.noPlanTitle": "This instance has no paid plan",
  "plans.noPlanText": "Everyone here has the Free plan. As an Admin, you can buy the Start or the Grow plan for this instance and give its seats to its users.",
  "plans.unlinkedTitle": "Link this instance to aservice.co to buy a plan",
  "plans.unlinkedText": "aservice.co sells the plans and bills them to the account an Admin links this instance with. Until then everyone here has the Free plan.",
  "plans.linkInstance": "Link this instance",
  "plans.seatsTitle": "Seats",
  "plans.seatsText": "Each seat gives one user of this instance the {plan}.",
  "plans.seatsTextCo": "Each seat gives one aservice.co account the {plan}. Someone without an account gets an invitation to sign up.",
  "plans.seatsUsed": "{used, number} of {count, plural, one {# seat} other {# seats}} in use",
  "plans.give": "Give a seat",
  "plans.noneFree": "All seats are in use. Move to a bigger plan to give more.",
  "plans.colPerson": "Person",
  "plans.colSeat": "Seat",
  "plans.you": "{name} (you)",
  "plans.givenOn": "Given on {date}",
  "plans.takenBack": "Taken back, in use until {date}",
  "plans.invitedOn": "Invited on {date}, waiting for sign-up",
  "plans.giveSeat": "Give seat",
  "plans.takeBack": "Take back",
  "plans.takeBackLabel": "Take back the seat of {name}",
  "plans.rule": "A seat you take back stays in use for 30 days, and its user keeps the {plan} until then.",
  "plans.billingTitle": "Billing",
  "plans.billingText": "aservice.co bills the plan to {account}, the account this instance is linked with.",
  "plans.billingTextCo": "aservice.co bills the plan to your account, {account}.",
  "plans.monthly": "{price} a month, VAT included",
  "plans.statusActive": "Active",
  "plans.statusCanceled": "Canceled",
  "plans.statusFailed": "Renewal failed",
  "plans.since": "Since",
  "plans.renewsOn": "Renews on",
  "plans.endsOn": "Ends on",
  "plans.nextTry": "Next try",
  "plans.country": "Billing country",
  "plans.paymentMethod": "Payment method",
  "plans.cardEnding": "{brand} ending in {last4}",
  "plans.cardExpires": "Expires {date}",
  "plans.cardExpired": "Expired {date}",
  "plans.changePayment": "Change payment method",
  "plans.paymentToast": "Payment page opened in a new tab",
  "plans.paymentToastSub": "Change your card there. aService never sees card numbers.",
  "plans.cancelPlan": "Cancel plan",
  "plans.invoicesTitle": "Invoices",
  "plans.invoicesText": "One for each payment, with the VAT of the billing country.",
  "plans.colInvoice": "Invoice",
  "plans.colDate": "Date",
  "plans.colAmount": "Amount",
  "plans.colVat": "VAT",
  "plans.vatAmount": "{amount} ({rate})",
  "plans.paid": "Paid",
  "plans.notPaid": "Not paid",
  "plans.download": "Download",
  "plans.downloadLabel": "Download invoice {number}",
  "plans.downloadedToast": "Invoice {number} downloaded",
  "plans.sumVat": "VAT ({rate})",
  "plans.sumToday": "Total today",
  "plans.chargedTo": "aservice.co charges your {card}.",
  "plans.giveText": "Pick a user of this instance. They get the {plan} at once, with a notification and an email.",
  "plans.giveTextCo": "Enter the email address of their aservice.co account. They get the {plan} at once, with an email.",
  "plans.giveWho": "User",
  "plans.giveInvited": "Can get a seat once they accept their invitation",
  "plans.giveEmailHelp": "Someone without an aservice.co account gets an invitation to sign up with this address.",
  "plans.givenToast": "{name} has a seat",
  "plans.givenToastSub": "They have the {plan} now. aService told them in their inbox and by email.",
  "plans.invitedToast": "Invitation sent to {email}",
  "plans.invitedToastSub": "The seat is theirs once they sign up with this address.",
  "plans.takeBackTitle": "Take back the seat of {name}?",
  "plans.takeBackText": "{name} keeps the {plan} until {date}, and the seat stays in use until then. Then they have the Free plan:",
  "plans.takeBackWs": "{workspace}, where they’re the only Owner, becomes a Free workspace, unless they have a seat again.",
  "plans.takeBackKeep": "Their workspaces, services and copies stay and keep running.",
  "plans.takeBackConfirm": "Take back seat",
  "plans.takenToast": "Seat taken back from {name}",
  "plans.takenToastSub": "It stays in use until {date}. aService told them.",
  "plans.cancelTitle": "Cancel the {plan}?",
  "plans.cancelText": "It lasts until {date}, the end of the month you paid for, and aservice.co doesn’t charge you again. When it ends:",
  "plans.cancelSeats": "{count, plural, one {The seat in use ends. Its user keeps the {plan} for 30 more days, until {date}, then has the Free plan.} other {The # seats in use end. Their users keep the {plan} for 30 more days, until {date}, then have the Free plan.}}",
  "plans.cancelKeep": "Everything they have stays and keeps running, copies of Paid listings too.",
  "plans.keepPlan": "Keep plan",
  "plans.canceledToast": "Plan canceled",
  "plans.canceledToastSub": "It lasts until {date}. Until then nothing changes.",
  "plans.resumedToast": "Plan resumed",
  "plans.resumedToastSub": "It renews on {date}, as before.",
  "plans.checkoutText": "Check the price for your country. You pay on the payment provider’s page next, then come back here.",
  "plans.selfSeat": "{count, plural, one {Give its seat to yourself} other {Give one of its seats to yourself}}",
  "plans.countryHelp": "It sets the VAT on your invoices.",
  "plans.countryAT": "Austria",
  "plans.countryFR": "France",
  "plans.countryDE": "Germany",
  "plans.countryNL": "Netherlands",
  "plans.countryPT": "Portugal",
  "plans.vatId": "VAT ID",
  "plans.vatIdHelp": "For businesses. It’s printed on your invoices. With a valid VAT ID from another EU country, no VAT is charged.",
  "plans.sumTotal": "Total today",
  "plans.renewsMonthly": "Renews every month at {price}, next on {date}. Cancel any time: the plan then lasts to the end of the month you paid for.",
  "plans.forInstance": "Billed to {account}, the aservice.co account this instance is linked with.",
  "plans.forAccount": "Billed to your aservice.co account, {account}.",
  "plans.continuePayment": "Continue to payment",
  "plans.boughtToast": "This instance has the {plan}",
  "plans.boughtToastCo": "You have the {plan}",
  "plans.boughtToastSub": "aservice.co emailed the receipt to {account}.",
  "plans.yourSeatTitle": "Your seat",
  "plans.yourSeatText": "Admins of this instance own its plan and give its seats.",
  "plans.seatOf": "A seat of this instance’s {plan}",
  "plans.seatGiven": "Given by {name} on {date}",
  "plans.seatTaken": "Taken back by {name} on {date}",
  "plans.untilDate": "Until {date}",
  "plans.graceWhen": "On {date}, unless you have a seat again:",
  "plans.graceWs": "{workspace} becomes a Free workspace: it takes no new services, versions or members, and keeps 7 days of run history.",
  "plans.graceFree": "You can’t create more workspaces, install Paid listings or unlock chats. Everything you have keeps running.",
  "plans.getTitle": "Get the {plan}",
  "plans.getAdmins": "Admins of this instance give its seats.",
  "plans.priceSeats": "a month, {count, plural, one {# seat} other {# seats}}, VAT included",
  "plans.buyGrow": "Buy the Grow plan",
  "plans.moveTo": "Move to the {plan}",
  "plans.moveUpHelp": "It starts at once, and today you pay the difference for the rest of the month.",
  "plans.planSeats": "{plan}, {count, plural, one {# seat} other {# seats}}",
  "plans.invPlan": "{plan}, {start} to {end}",
  "plans.invUp": "Moved up to the {plan}, {start} to {end}",
  "plans.upText": "The {plan} starts at once, with its {count, plural, one {# seat} other {# seats}}. Today you pay the difference for the rest of the month, until the plan renews on {date}.",
  "plans.upLine": "{plan} instead of {from}, {start} to {end} ({days, number} of {total, number} days)",
  "plans.upThen": "From {date}: {price} a month for the {plan}.",
  "plans.downTitle": "Move to the {plan}?",
  "plans.downText": "The plan stays as it is until it renews on {date}. From then it’s the {plan}, with {count, plural, one {# seat} other {# seats}}, at {price} a month.",
  "plans.downKeep": "{count, plural, one {Seat to keep} other {Seats to keep}}",
  "plans.downEnds": "{count, plural, one {The other seat in use ends on {date}. Its user keeps the {plan} for 30 more days, until {until}, then has the Free plan.} other {The other # seats in use end on {date}. Their users keep the {plan} for 30 more days, until {until}, then have the Free plan.}}",
  "plans.downToast": "The plan becomes the {plan} on {date}",
  "plans.downToastSub": "Until then nothing changes.",
  "plans.plan": "Plan",
  "plans.sumPlan": "{plan}, {count, plural, one {# seat} other {# seats}}, 1 month",
  "admin.summary": "Users, settings and backups of this instance.",
  "admin.tabsLabel": "Administration pages",
  "admin.tab.users": "Users",
  "admin.tab.instance": "Instance",
  "admin.tab.backup": "Backup",
  "admin.tab.store": "Store",
  "admin.checked": "Checked {time}",
  "admin.notSetUp": "Not set up",
  "admin.secretSaved": "Saved encrypted. Enter a new one to replace it.",
  "admin.secretNew": "It’s saved encrypted.",
  "admin.users.count": "{users, plural, one {# user} other {# users}} and {invites, plural, =0 {no open invitations} one {# open invitation} other {# open invitations}}",
  "admin.users.invite": "Invite user",
  "admin.col.role": "Instance role",
  "admin.col.catalog": "Catalog access",
  "admin.col.plan": "Plan",
  "admin.col.joined": "Joined",
  "admin.col.actions": "Actions",
  "admin.users.you": "{name} (you)",
  "admin.users.active": "Active",
  "admin.users.invited": "Invited",
  "admin.users.expires": "Expires {date}",
  "admin.users.bySignup": "Open sign-up",
  "admin.users.catalogLabel": "Catalog access for {name}",
  "admin.users.menu": "More actions for {name}",
  "admin.users.resetLink": "Create reset link",
  "admin.users.makeAdmin": "Make Admin",
  "admin.users.removeAdmin": "Remove Admin role",
  "admin.users.remove": "Remove user",
  "admin.users.resend": "Resend invitation",
  "admin.users.cancelInvite": "Cancel invitation",
  "admin.users.madeAdmin": "{name} is now an Admin",
  "admin.users.resent": "{email} is invited again",
  "admin.users.resentSub": "The new link is valid until {date}. The earlier one no longer works.",
  "admin.users.canceled": "The invitation for {email} is canceled",
  "admin.users.canceledSub": "Its link no longer works.",
  "admin.users.giveSeat": "Give a seat",
  "admin.signup.title": "Open sign-up is on",
  "admin.signup.text": "Anyone can create an account here. Accounts made through sign-up start without Catalog access, so turn it on only for people you trust.",
  "admin.invite.text": "aService emails an invite link to this address. It’s valid for 7 days.",
  "admin.invite.help": "The email is in {language}, the instance’s default language.",
  "admin.invite.send": "Send invitation",
  "admin.invite.sent": "{email} is invited",
  "admin.invite.sentSub": "The invite link is valid until {date}.",
  "admin.invite.noEmail": "No email server is set up, so aService can’t send the invitation. You get an invite link to pass on yourself, valid for 7 days.",
  "admin.invite.createLink": "Create invite link",
  "admin.inviteLink.title": "Invite link for {email}",
  "admin.inviteLink.text": "Copy the link and send it to {email} yourself. It works once.",
  "admin.inviteLink.label": "Invite link",
  "admin.inviteLink.copy": "Copy invite link",
  "admin.inviteLink.valid": "Valid for 7 days, until {date}.",
  "admin.inviteLink.setUpEmail": "Set up email server",
  "admin.reset.title": "Reset link for {name}",
  "admin.reset.text": "With this link, {name} can set a new password. Pass it on yourself. It works once.",
  "admin.reset.label": "Reset link",
  "admin.reset.copy": "Copy reset link",
  "admin.reset.valid": "Valid for 24 hours, until {date}. A newer link replaces this one.",
  "admin.remove.title": "Remove {name}?",
  "admin.remove.text": "{name} can’t sign in anymore. This can’t be undone.",
  "admin.remove.leaves": "Leaves all their workspaces. Their runs that haven’t ended stop, and their schedules, API keys and agent links are deleted.",
  "admin.remove.alone": "Workspaces where they’re the only member are deleted, with their services and runs.",
  "admin.remove.history": "Their name stays on past runs, versions and Catalog entries.",
  "admin.remove.seat": "Their seat of the {plan} is free again at once.",
  "admin.remove.owner": "New Owner of {workspace}",
  "admin.remove.ownerHelp": "{name} is its last Owner, and a workspace always keeps one. Pick one of its other members.",
  "admin.remove.removed": "{name} is removed",
  "admin.remove.removedSub": "You’re now the Owner of {workspace}.",
  "admin.lastAdmin.title": "You’re the only Admin",
  "admin.lastAdmin.text": "An instance always keeps at least one Admin. Make another user Admin first, then remove your Admin role.",
  "admin.firstRun.title": "Finish setting up aService",
  "admin.firstRun.text": "Your account is the first on this instance, so it’s an Admin. Set up these parts before you invite others. You can change them here at any time.",
  "admin.firstRun.step1Title": "Set the public address",
  "admin.firstRun.step1Text": "AI sessions reach this instance through it, so runs need it.",
  "admin.firstRun.step1Action": "Set public address",
  "admin.firstRun.step2Title": "Set up the email server",
  "admin.firstRun.step2Text": "For invitations, password resets and email notifications.",
  "admin.firstRun.step2Action": "Set up email",
  "admin.firstRun.step3Title": "Connect a Telegram bot (optional)",
  "admin.firstRun.step3Text": "For notifications in Telegram.",
  "admin.firstRun.step3Action": "Add bot token",
  "admin.firstRun.step4Title": "Link to aservice.co (optional)",
  "admin.firstRun.step4Text": "For installing from the Store, a paid plan and the tunnel. Until then, everyone here has the Free plan.",
  "admin.firstRun.goHome": "Go to Home",
  "admin.link.title": "Link to aservice.co",
  "admin.link.text": "Lets users install from the Store, and carries this instance’s plan and tunnel.",
  "admin.link.linked": "Linked",
  "admin.link.linkedBy": "By {name} on {date}",
  "admin.link.account": "aservice.co account",
  "admin.link.plan": "Plan",
  "admin.link.planSeats": "{plan}, {seats}",
  "admin.link.noPlan": "No paid plan",
  "admin.link.openPlans": "Open plans",
  "admin.link.sendsTitle": "What this instance tells aservice.co",
  "admin.link.sends": "Installs and runs of copies of Store listings, seats in use, ratings and Store requests, with this instance’s address and id and the name and email of each user who links.",
  "admin.link.never": "Never what runs contain.",
  "admin.link.unlink": "Unlink instance",
  "admin.link.notLinked": "Not linked",
  "admin.link.notLinkedText": "Users can browse the Store but can’t install from it, and this instance has no paid plan or tunnel until an Admin links it.",
  "admin.link.link": "Link this instance",
  "admin.link.linkedToast": "This instance is linked to aservice.co",
  "admin.link.linkedToastSub": "Users can install from the Store now. Buy a plan on the Plans page.",
  "admin.unlink.title": "Unlink this instance from aservice.co?",
  "admin.unlink.text": "Until an Admin links it again:",
  "admin.unlink.keep": "Copies installed from the Store keep running.",
  "admin.unlink.plan": "The {plan} is canceled. It ends on {date}, and people with a seat keep the plan for 30 more days.",
  "admin.unlink.store": "Users can’t install from the Store or update copies of Store listings.",
  "admin.unlink.toast": "This instance is unlinked",
  "admin.unlink.toastSub": "The {plan} ends on {date}.",
  "admin.unlink.tunnel": "If the tunnel is on, it stops at once. This instance is then reachable only at its own address, if it has one.",
  "admin.url.title": "Public address",
  "admin.url.text": "How people and AI sessions in Claude’s cloud reach this instance. Links in emails and notifications use it too.",
  "admin.url.own": "Your own HTTPS address",
  "admin.url.ownHelp": "An address you make reachable from the internet yourself.",
  "admin.url.help": "An address that starts with https://, without a path.",
  "admin.url.placeholder": "https://aservice.example.com",
  "admin.url.check": "Check",
  "admin.url.reachable": "Reachable",
  "admin.url.unreachable": "Not reachable",
  "admin.url.guideTitle": "How to make it reachable",
  "admin.url.guideText": "AI sessions run in Claude’s cloud and reach this instance’s connector through this address, so it has to work from outside your network. Two usual ways:",
  "admin.url.port": "Point a domain at your router, forward port 443 to this instance and add an HTTPS certificate.",
  "admin.url.service": "Run a tunnel service of your own, such as Cloudflare Tunnel, which gives this instance an HTTPS address without opening any ports.",
  "admin.url.errorTitle": "aService can’t reach this address",
  "admin.url.errorText": "Until it can, sessions can’t reach the connector, and steps fail. Check these points:",
  "admin.url.check1": "The domain has an IPv4 address (an A record) that points to your router or tunnel service. Claude connects over IPv4 only.",
  "admin.url.check2": "Port 443 is forwarded to this instance, or the tunnel service is running.",
  "admin.url.check3": "The address has a valid HTTPS certificate.",
  "admin.tunnel.title": "The tunnel",
  "admin.tunnel.help": "An address on aservice.co, such as acme.tunnel.aservice.co, without opening any ports.",
  "admin.tunnel.name": "Name",
  "admin.tunnel.nameHelp": "Lowercase letters, digits and hyphens, unique on aservice.co.",
  "admin.tunnel.turnOn": "Turn on tunnel",
  "admin.tunnel.onToast": "The tunnel is on",
  "admin.tunnel.onToastSub": "This instance is reachable at {address}.",
  "admin.tunnel.address": "Tunnel address",
  "admin.tunnel.copy": "Copy tunnel address",
  "admin.tunnel.onHelp": "Links and the connector use this address now, so everyone updates the connector in their AI tool.",
  "admin.tunnel.turnOff": "Turn off tunnel",
  "admin.tunnel.offToast": "The tunnel is off",
  "admin.tunnel.offToastSub": "This instance uses {address} again.",
  "admin.tunnel.stopsTitle": "The tunnel stops on {date}",
  "admin.tunnel.stopsText": "The {plan} ended on {ended}. Buy it again to keep the tunnel, or switch to your own address before then.",
  "admin.email.title": "Email server",
  "admin.email.text": "For invitations, password resets and email notifications. Without it, you pass invite and reset links on yourself, and email isn’t offered as a channel.",
  "admin.email.working": "Working",
  "admin.email.lastSent": "Last email sent {time}",
  "admin.email.failing": "Not working",
  "admin.email.lastFailed": "Last attempt failed {time}",
  "admin.email.host": "Host",
  "admin.email.port": "Port",
  "admin.email.username": "Username",
  "admin.email.sender": "Sender address",
  "admin.email.senderHelp": "Emails from aService come from this address.",
  "admin.email.hostPlaceholder": "smtp.example.com",
  "admin.email.senderPlaceholder": "aservice@example.com",
  "admin.email.test": "Send test email",
  "admin.email.testSent": "Test email sent to {email}",
  "admin.email.testSentSub": "If it doesn’t arrive within a few minutes, check the settings.",
  "admin.email.errorTitle": "The test email couldn’t be sent",
  "admin.email.errorText": "The email server refused the sign-in. Check the username and password, then send the test again.",
  "admin.telegram.title": "Telegram bot",
  "admin.telegram.text": "For notifications in Telegram. People link their Telegram by sending the bot a one-time code. Without a bot, Telegram isn’t offered.",
  "admin.telegram.connected": "Connected to {bot}",
  "admin.telegram.token": "Bot token",
  "admin.telegram.tokenHelp": "Create a bot with @BotFather in Telegram and paste its token here. It’s saved encrypted.",
  "admin.telegram.test": "Send test message",
  "admin.telegram.errorTitle": "The test message can’t be sent yet",
  "admin.telegram.errorText": "It goes to your own Telegram, which isn’t linked yet. Link it in your notification settings, then send the test again.",
  "admin.telegram.openSettings": "Open notification settings",
  "admin.legal.title": "Terms and privacy",
  "admin.legal.text": "People accept these when they sign up, and the sign-in pages link to them. Leave the fields empty if you have none.",
  "admin.legal.terms": "Terms of use",
  "admin.legal.privacy": "Privacy policy",
  "admin.legal.termsPlaceholder": "https://example.com/terms",
  "admin.legal.privacyPlaceholder": "https://example.com/privacy",
  "admin.language.title": "Default language",
  "admin.language.text": "Invitations use it, and so do pages shown before sign-in when the browser’s language isn’t supported.",
  "admin.language.label": "Language",
  "admin.language.help": "New users start with their browser’s language if aService supports it, otherwise with this one.",
  "admin.lang.en": "English",
  "admin.lang.de": "Deutsch",
  "admin.signupSetting.title": "Open sign-up",
  "admin.signupSetting.text": "Lets anyone create an account on this instance.",
  "admin.signupSetting.off": "Open sign-up is off",
  "admin.signupSetting.help": "Only people you invite can join. It’s set with an environment variable where aService is installed and can’t be changed here.",
  "admin.signupSetting.help2": "When it’s on, sign-up also needs the email server, because new accounts work only once their email address is verified.",
  "admin.download.title": "Download backup",
  "admin.download.text": "One file with all data and settings of this instance.",
  "admin.download.holds": "It holds the users, workspaces, services with their versions, runs with their results, the Catalog, notifications and the instance settings.",
  "admin.download.safeTitle": "Keep the file safe",
  "admin.download.safeText": "It holds everyone’s data. Secrets in it, such as routine tokens and the email server password, stay encrypted.",
  "admin.download.last": "Last download: {time}",
  "admin.download.toast": "The backup is downloading",
  "admin.download.toastSub": "Your browser saves it as {file}.",
  "admin.restore.title": "Restore a backup",
  "admin.restore.text": "Replace all data of this instance with a backup.",
  "admin.restore.warn": "Restoring replaces everything on this instance, including users, workspaces and runs, and signs everyone out. Changes made after the backup are lost.",
  "admin.restore.choose": "Choose backup file",
  "admin.restore.confirmTitle": "Restore this backup?",
  "admin.restore.confirmText": "It replaces all data of this instance, including users, workspaces and runs, and signs everyone out, you too. To keep today’s data, download a backup first.",
  "admin.restore.file": "Backup file",
  "admin.restore.fileMeta": "From {url}, created {date}",
  "admin.restore.confirm": "Restore backup",
  "admin.restore.invalidTitle": "This file can’t be restored",
  "admin.restore.invalidText": "{file} isn’t an aService backup, or it comes from a newer version of aService. Choose a backup file downloaded on this page.",
  "admin.restoring.title": "Restoring the backup",
  "admin.restoring.text": "aService is unavailable to everyone until it’s done. This can take a few minutes.",
  "admin.restoring.step": "Replacing the data…",
  "admin.restoring.progress": "Restore progress",
  "admin.done.title": "Backup restored",
  "admin.done.text": "This instance now holds the data from {date}. Everyone was signed out. Sign in with your account as it was then.",
  "admin.done.signIn": "Sign in",
  "auth.productName": "aService",
  "auth.displayName": "Display name",
  "auth.displayNameHelp": "This is how others see you in aService.",
  "auth.passwordHelp": "At least 12 characters.",
  "auth.errorName": "Enter a display name.",
  "auth.errorEmail": "Enter a complete email address, such as name@example.com.",
  "auth.errorPassword": "Use at least 12 characters.",
  "auth.errorPasswordCommon": "This password is too common. Choose one that’s harder to guess.",
  "connAuth.title": "Allow {client} to use aService",
  "connAuth.returnsTo": "Returns you to {host}",
  "connAuth.mayTitle": "{client} can then:",
  "connAuth.mayRuns": "Work on the steps of your runs, in sessions that have their run key",
  "connAuth.mayChats": "Act as you, within your roles, in a chat you unlock with a code",
  "connAuth.never": "It never gets your password.",
  "connAuth.remove": "To end it, remove the connector in {client}.",
  "auth.createAccount": "Create account",
  "auth.signIn": "Sign in",
  "auth.resetPassword": "Reset password",
  "auth.forgotPassword": "Forgot your password?",
  "auth.backToSignIn": "Back to sign in",
  "auth.terms": "Terms of use",
  "auth.privacy": "Privacy policy",
  "auth.legal": "Terms of use and privacy policy",
  "auth.checkEmail": "Check your email",
  "auth.linkExpired": "This link has expired",
  "auth.goHome": "Go to Home",
  "auth.setupTitle": "Create the first account",
  "auth.setupText": "It gets the Admin role, so you can set up this instance and invite people.",
  "auth.setupNote": "Only the first person to open a new instance sees this page.",
  "auth.signInTitle": "Sign in",
  "auth.wrongTitle": "Email or password is wrong",
  "auth.wrongText": "Check both and try again, or reset your password.",
  "auth.lockedTitle": "Sign-in is paused",
  "auth.lockedText": "There were too many wrong attempts. Try again in {minutes, plural, one {# minute} other {# minutes}}, or reset your password.",
  "auth.inviteOnly": "No account yet? Ask an Admin to invite you.",
  "auth.noAccount": "No account yet?",
  "auth.createAnAccount": "Create an account",
  "auth.signUpTitle": "Create your account",
  "auth.signUpText": "You get a workspace of your own to design and run services.",
  "auth.acceptTerms": "Accept the terms of use and the privacy policy",
  "auth.errorTerms": "Accept the terms of use and the privacy policy to create an account.",
  "auth.takenTitle": "This email address already has an account",
  "auth.takenText": "Sign in with it, or reset its password if you don’t remember it.",
  "auth.haveAccount": "Already have an account?",
  "auth.verifyText": "aService sent a link to {email}. Open it to verify your address and finish creating your account.",
  "auth.verifyHelp": "The link works for 24 hours. Nothing there? Check your spam folder, or send the link again.",
  "auth.sendAgain": "Send the link again",
  "auth.sentToast": "New link sent",
  "auth.sentToastSub": "It went to {email}. Earlier links no longer work.",
  "auth.alreadyVerified": "Already verified?",
  "auth.verifiedTitle": "Your account is ready",
  "auth.verifiedText": "Your email address is verified. aService created the workspace “{workspace}” for you, with you as its Owner.",
  "auth.verifyExpiredText": "Verification links work for 24 hours. Send a new one to {email}.",
  "auth.sendNewLink": "Send a new link",
  "auth.changedTitle": "Your new email address is confirmed",
  "auth.changedText": "From now on, you sign in with {email}, and emails from aService go there.",
  "auth.openProfile": "Open profile",
  "auth.inviteTitle": "Accept your invitation",
  "auth.inviteText": "{name} invited you to aService at {url}.",
  "auth.inviteEmailHelp": "The invitation is for this address. You can change it later in your profile.",
  "auth.inviteExpiredTitle": "This invitation has expired",
  "auth.inviteExpiredText": "Invitations work for 7 days, and this one ended on {date}. Ask {name} or another Admin to invite you again.",
  "auth.inviteUsedTitle": "This invitation was already accepted",
  "auth.inviteUsedText": "The account for {email} exists. Sign in with it.",
  "auth.resetTitle": "Reset your password",
  "auth.resetText": "Enter the email address of your account. aService sends you a link to choose a new password.",
  "auth.sendResetLink": "Send reset link",
  "auth.noEmailTitle": "This instance can’t send emails",
  "auth.noEmailText": "Ask an Admin to create a reset link for you and pass it on.",
  "auth.resetSentText": "If {email} belongs to an account, a link to choose a new password is on its way. It works for 1 hour.",
  "auth.resetSentHelp": "Nothing there after a few minutes? Check your spam folder, or check the address you entered.",
  "auth.otherEmail": "Use another email address",
  "auth.newPasswordTitle": "Choose a new password",
  "auth.newPasswordText": "For the account {email}.",
  "auth.newPassword": "New password",
  "auth.saveNewPassword": "Save new password",
  "auth.passwordChangedTitle": "Your password is changed",
  "auth.passwordChangedText": "Sign in with your new password. Devices that were still signed in are signed out.",
  "auth.resetExpiredText": "This reset link is too old or was already used. Request a new one.",
  "auth.requestNewLink": "Request a new link",
  "coLink.createText": "You use it on aservice.co and on every instance you link it to.",
  "coLink.createInstanceText": "The instance’s plan will be billed to it.",
  "coLink.sends": "It tells aservice.co about your ratings and Store requests, never what your runs contain.",
  "coLink.asksInstance": "{name} ({email}), an Admin there, wants to link this instance to an aservice.co account.",
  "coLink.instanceTitle": "Link {site} to your account?",
  "coLink.mayInstall": "Let its users install from the Store",
  "coLink.mayPlan": "Buy a plan for its users, billed to this account",
  "coLink.mayTunnel": "Turn on the tunnel, with a paid plan",
  "coLink.instanceSends": "It tells aservice.co about installs and runs of copies of Store listings and the seats in use, never what runs contain.",
  "coLink.instanceUnlink": "Its Admins can unlink it any time in Administration.",
  "coLink.linkInstance": "Link instance",
  "coLink.verifyText": "{kind, select, instance {aservice.co sent a link to {email}. Open it to verify your address, then link {site} to the account.} other {aservice.co sent a link to {email}. Open it to verify your address, then allow {site} to use the account.}}",
  "coLink.continue": "Continue",
  "email.to": "To",
  "email.address": "<{address}>",
  "email.whyRun": "You get this email because run {run} of {service} belongs to you and email is on in your notification settings.",
  "email.whyFinished": "You get this email because run {run} of {service} belongs to you, {service} notifies when a run finishes, and email is on in your notification settings.",
  "email.whyCatalog": "You get this email because you’re an Owner or Editor with Catalog access in {workspace}, which has a copy of {service}, and email is on in your notification settings.",
  "email.whyOwner": "You get this email because you’re an Owner of {workspace} and email is on in your notification settings.",
  "email.whyYours": "{kind, select, schedule {You get this email because you set up the schedule of {service} and email is on in your notification settings.} other {You get this email because you created the API key of {service} and email is on in your notification settings.}}",
  "email.changeSettings": "Change notification settings",
  "email.viewRun": "View run",
  "email.inviteSubject": "{name} invited you to aService",
  "email.inviteTitle": "You’re invited to aService",
  "email.inviteText": "{name} invited you to aService at {url}, where your team designs and runs multi-step AI workflows. Create your account by {date}.",
  "email.inviteButton": "Accept invitation",
  "email.inviteWhy": "You get this email because {name} invited {email} to {url}. If you didn’t expect it, you can ignore it.",
  "email.verifyTitle": "Verify your email address",
  "email.verifyText": "Open the link to verify {email} and finish creating your aService account. It works for 24 hours.",
  "email.verifyButton": "Verify email address",
  "email.verifyWhy": "You get this email because someone signed up at {url} with this address. If it wasn’t you, ignore it, and the account won’t work.",
  "email.newEmailTitle": "Confirm your new email address",
  "email.newEmailText": "Open the link to use {email} for your aService account. Until then, sign-in and emails keep using {old}. The link works for 24 hours.",
  "email.newEmailButton": "Confirm email address",
  "email.newEmailWhy": "You get this email because this address was entered in a profile at {url}. If it wasn’t you, ignore it, and nothing changes.",
  "email.resetTitle": "Reset your password",
  "email.resetText": "Open the link to choose a new password for your aService account. It works for 1 hour and only once.",
  "email.resetButton": "Choose new password",
  "email.resetWhy": "You get this email because a new password was requested for this address at {url}. If it wasn’t you, ignore it, and your password stays the same.",
  "email.reviewText": "Run {run} of {service} waits for your review. It goes on once you approve the result.",
  "email.reminderText": "Run {run} of {service} has waited for your review since {date}. It waits until you answer, with a reminder every 24 hours.",
  "email.failedText": "{cause, select, link {It failed because “{step}” needs the agent {agent}, which isn’t linked to an executor. Link it, then restart the run from that step.} stopped {It failed because “{step}” failed and {starter} chose Stop. Open the run to see the results so far, or restart it from a step.} other {It failed because “{step}” would have run more often than the loop limit of {limit} allows. Open the run to see the results so far, or restart it from a step.}}",
  "email.finishedText": "It finished after {duration}. Open the run to see the result of each step.",
  "email.catalogText": "Your copy in {workspace} is based on version {from}. Review the changes before you update it.",
  "email.catalogNew": "What’s new in version {version}",
  "email.catalogButton": "Review changes",
  "email.scheduleText": "{kind, select, schedule {{name} left {workspace}, so the schedule they set up for {service} was deleted. Set up a new one if {service} should keep running on a schedule.} other {{name} left {workspace}, so the API key they created for {service} was deleted. Create a new one if systems still need to start its runs.}}",
  "email.deletedByText": "{kind, select, schedule {{name} deleted the schedule you set up for {service}. Runs it already started go on. Set up a new one if {service} should keep running on a schedule.} other {{name} deleted the API key you created for {service}, so systems that use it can no longer start or read its runs. Create a new one if they still need it.}}",
  "email.scheduleButton": "Open service settings",
  "email.testSubject": "Test email from aService",
  "email.testTitle": "The email server works",
  "email.testText": "aService sent this test through {server} to check the email settings of {url}. Invitations and notifications can now go out by email.",
  "email.testButton": "Open email settings",
  "email.testWhy": "You get this email because you sent a test from the email settings of {url}.",
  "email.telegramBot": "bot",
  "email.telegramLabel": "Telegram chat with the aService bot",
  "email.pushLabel": "Browser notification",
  "email.emailChangedTitle": "Your account’s email address changed",
  "email.emailChangedText": "Since {date}, your aService account at {url} uses {email} instead of this address. You sign in with the new address, and emails from aService go there.",
  "email.emailChangedNotYou": "If you changed it, there’s nothing to do. If you didn’t, someone else knows your password: ask an Admin of {url} for help right away.",
  "email.emailChangedWhy": "You get this email because this address belonged to your account at {url}. Notices about your account’s email address and password are always sent.",
  "email.passwordChangedTitle": "Your password changed",
  "email.passwordChangedText": "The password of your aService account at {url} changed on {date}.",
  "email.passwordChangedNotYou": "If you changed it, there’s nothing to do. If you didn’t, reset your password right away.",
  "email.passwordChangedWhy": "You get this email because it’s the address of your account at {url}. Notices about your account’s email address and password are always sent.",
  "planNote.seatGiven": "{name} gave you a seat of the {plan}",
  "planNote.seatEnded": "{reason, select, plan {Your seat of the {plan} ended} other {{name} took back your seat of the {plan}}}",
  "planNote.metaUntil": "{plan} until {date}",
  "planNote.workspaceFree": "{workspace} becomes a Free workspace on {date}",
  "planNote.tunnelStops": "The tunnel stops on {date}",
  "planNote.tunnelStopped": "The tunnel stopped",
  "planNote.failed": "{owner, select, instance {The {plan} of {site} couldn’t be renewed} other {Your {plan} couldn’t be renewed}}",
  "planNote.metaNextTry": "Next try on {date}",
  "planNote.ended": "{owner, select, instance {The {plan} of {site} ended} other {Your {plan} ended}}",
  "planNote.metaUsersUntil": "Its users keep it until {date}",
  "planMail.receiptTitle": "Your receipt for the {plan}",
  "planMail.metaInvoice": "Invoice {number}",
  "planMail.receiptText": "aservice.co charged {amount} to your {card} for the {plan} of {site}, from {start} to {end}. The invoice is attached.",
  "planMail.sumVat": "VAT ({rate})",
  "planMail.total": "Total",
  "planMail.openPlans": "Open plans",
  "planMail.priceTitle": "The price of the {plan} changes on {date}",
  "planMail.priceText": "From {date}, the {plan} costs {price} a month, VAT included, instead of {old}.",
  "planMail.priceMore": "Until then, nothing changes. You can change or cancel the plan on the Plans page any time.",
  "planMail.failedText": "aservice.co couldn’t charge {amount} to your {card} on {date}. It tries again on {retry} and a last time on {last}.",
  "planMail.cardEnding": "{brand} ending in {last4}",
  "planMail.cardExpired": "Expired {date}",
  "planMail.failedMore": "If the last try fails too, the plan ends. Update your payment method to keep it.",
  "planMail.updatePayment": "Update payment method",
  "planMail.endedText": "{who, select, you {You canceled it} other {{who} canceled it}} on {canceled}, so it ended on {date}. Its users keep the {plan} for 30 more days, until {until}, then have the Free plan.",
  "planMail.endedKeep": "Everything they have stays and keeps running, copies of Paid listings too.",
  "planMail.endedTunnel": "The tunnel stops on {date}, unless this instance has a paid plan again by then.",
  "planMail.buy": "Buy the {plan}",
  "planMail.whyPayment": "{owner, select, instance {You get this email because the {plan} of {site} is billed to {account}.} other {You get this email because {account} owns a {plan}.}} Payment emails are always sent.",
  "planMail.seatGivenText": "You have the {plan} now. You can create workspaces, add members to them and install Paid listings.",
  "planMail.seatEndedText": "You keep the {plan} until {date}. Then you have the Free plan, unless you get a seat again. Everything you have keeps running.",
  "planMail.whySeat": "You get this email because your plan on {site} changed and email is on in your notification settings.",
  "planMail.openWorkspace": "Open workspace settings",
  "planMail.openInstance": "Open instance settings",
  "planMail.whyAdmin": "You get this email because you’re an Admin of {site} and email is on in your notification settings.",
  "planMail.tunnelStoppedText": "The tunnel stopped on {date}, 30 days after the {plan} of {site} ended. {own, select, none {Until you give this instance an address of its own, AI sessions and people outside your network can’t reach it.} other {This instance uses its own address again, {own}, so everyone updates the connector in their AI tool.}}",
  "planMail.tunnelStoppedMore": "With a paid plan, you can turn the tunnel on again.",
  "planMail.sumPlan": "{plan}, 1 month",
  "planNotif.payment": "Payment emails",
  "planNotif.paymentMeta": "Always on. aservice.co emails receipts for buying, moving up and renewing a plan, price changes, failed renewals and the end of a plan to {email}, also when Email is off here.",
  "planNotif.subhead": "Plans",
  "planNotif.evSeat": "You get a seat of a paid plan, or your seat ends",
  "planNotif.evSeatMeta": "A plan’s owner gives and takes back its seats.",
  "planNotif.evWsFree": "A workspace becomes a Free workspace in 7 days",
  "planNotif.evWsFreeMeta": "In workspaces where you’re Owner, when none of their Owners has a seat any more.",
  "planNotif.evPlan": "This instance’s plan can’t be renewed, or ends",
  "planNotif.evPlanMeta": "For Admins, who own the plan. aservice.co also emails the account it’s billed to.",
  "planNotif.evTunnel": "The tunnel stops in 7 days, or has stopped",
  "planNotif.evTunnelMeta": "For Admins. It stops 30 days after this instance’s plan ends.",
  "planNotif.storeSubhead": "Store",
  "error.goHome": "Go to Home",
  "error.tryAgain": "Try again",
  "error.notFoundTitle": "This page doesn’t exist",
  "error.notFoundText": "It may have been deleted, or the link is incomplete.",
  "error.noAccessTitle": "You don’t have access to this page",
  "error.noAccessText": "It belongs to a workspace you’re not a member of. Ask someone with the Owner role there to add you.",
  "error.signedOutTitle": "You’re signed out",
  "error.signedOutText": "Your sign-in ended, for example after a password change. Sign in again to go on where you left off.",
  "error.signInAgain": "Sign in again",
  "error.serverTitle": "This page couldn’t load",
  "error.serverText": "Something went wrong on this instance. Try again in a moment. If it keeps happening, send the details to an Admin.",
  "error.serverTextShort": "Something went wrong on this instance. Try again in a moment.",
  "error.code": "Error",
  "error.requestId": "Request ID",
  "error.time": "Time",
  "error.copyDetails": "Copy details",
  "error.offlineTitle": "The connection to aService was lost",
  "error.offlineText": "Live updates are paused, so this page may be out of date. aService reconnects on its own.",
  "error.restoringTitle": "aService is being restored",
  "error.restoringText": "An Admin is restoring this instance from a backup, which replaces all its data. Try again in a few minutes.",
  "problem.bad_request": "aService couldn’t read this request. Reload the page and try again.",
  "problem.validation_failed": "Some entries aren’t valid. Check the marked fields and try again.",
  "problem.unauthorized": "Your sign-in ended. Sign in again to go on where you left off.",
  "problem.forbidden": "You don’t have access to this. Ask an Owner of the workspace or an Admin if you need it.",
  "problem.not_found": "This doesn’t exist. It may have been deleted, or the link is incomplete.",
  "problem.method_not_allowed": "This action isn’t possible here. Reload the page and try again.",
  "problem.not_acceptable": "aService can’t answer this request in a form your browser accepts. Reload the page and try again.",
  "problem.request_timeout": "The request took too long. Check your connection and try again.",
  "problem.conflict": "Something changed in the meantime. Reload the page to see the latest state, then try again.",
  "problem.payload_too_large": "This is too large to send. Make it smaller and try again.",
  "problem.uri_too_long": "This address is too long. Check the link and try again.",
  "problem.unsupported_media_type": "aService can’t read this kind of data. Reload the page and try again.",
  "problem.too_many_requests": "There were too many requests in a short time. Wait a moment, then try again.",
  "problem.headers_too_large": "The request carried too much data. Clear this site’s cookies, then try again.",
  "problem.internal_error": "Something went wrong on this instance. Try again in a moment. If it keeps happening, send the details to an Admin.",
  "problem.service_unavailable": "aService isn’t available right now. Try again in a few minutes.",
  "problem.unhealthy": "aService isn’t working as it should right now. Try again in a few minutes. If it keeps happening, tell an Admin.",
  "problem.queue_full": "This service already holds the most queued runs it can. Start it again once one of them has started, or stop a queued run you don’t need.",
  "problem.agent_not_linked": "This run can’t start yet. Link its agents to your executors first.",
  "problem.step_without_agent": "This run can’t start yet. Choose an agent for each of its steps first.",
  "problem.import_not_approved": "This imported service can’t run or be published until it’s approved.",
  "problem.definition_invalid": "These steps can’t be saved yet. Fix the problems marked on them first.",
  "problem.answer_contains_unlock_code": "This answer contains an unlock code. Remove it to go on: an unlock code belongs only in a new chat.",
  "problem.version_already_published": "This version is already in the Catalog. Save a new version of its steps, then publish that.",
  "problem.image_invalid": "This picture can’t be used. Check its type, shape and size, then choose another one.",
  "problem.store_hidden": "The Store isn’t available on this instance.",
  "problem.request_already_decided": "Someone already decided on this request.",
  "problem.instance_not_linked": "This instance isn’t linked to aservice.co yet. Ask an Admin to link it.",
  "problem.aservice_co_unreachable": "aservice.co can’t be reached right now. Try again in a moment.",
  "problem.account_linked_to_other_user": "Another user of this instance already linked this aservice.co account. Use another account to link yours.",
  "problem.already_member": "This person is already a member of the workspace.",
  "problem.account_not_found": "No account on this instance uses this email address. Check it, or ask the person to sign up first.",
  "problem.last_owner": "A workspace needs at least one Owner. Give the role to another member first.",
  "problem.last_admin": "An instance always keeps at least one Admin. Make another user Admin first.",
  "problem.invalid_credentials": "Email or password is wrong. Check both and try again, or reset your password.",
  "problem.email_not_verified": "Verify your email address first: open the link aService sent to it.",
  "problem.wrong_password": "This password is wrong. Check it and try again.",
  "problem.too_many_attempts": "There were too many wrong attempts. Wait a while, then try again.",
  "problem.password_too_common": "This password is too common. Choose one that’s harder to guess.",
  "problem.email_taken": "This email address already has an account. Sign in with it, or use another address.",
  "problem.invitation_pending": "This email address already has an open invitation. Resend that one instead.",
  "problem.invitation_expired": "This invitation has expired or was withdrawn. Ask an Admin to send a new one.",
  "problem.invitation_used": "This invitation was accepted already. Sign in with its email address.",
  "problem.link_expired": "This link has expired, was used already, or a newer one replaced it. Ask for a new link.",
  "problem.executor_name_taken": "You already have an executor with this name. Choose another name.",
  "problem.email_server_missing": "This instance can’t send emails yet. Ask an Admin to set up its email server.",
  "problem.email_send_failed": "The email server didn’t accept the email. Check its settings, then try again.",
  "problem.telegram_token_rejected": "Telegram doesn’t accept this bot token. Copy the token from Telegram again, then save it.",
  "problem.telegram_not_linked": "Your Telegram isn’t linked yet. Link it in your notification settings, then try again.",
  "problem.tunnel_name_taken": "This name is taken on aservice.co. Choose another one.",
  "problem.backup_invalid": "This file isn’t an aService backup, or it comes from a newer version of aService. Choose a backup file downloaded from this instance.",
  "problem.restoring": "An Admin is restoring this instance from a backup. Try again in a few minutes.",
  "problem.paid_plan_required": "This comes with a paid plan. Open Plans to see how to get one."
}
