"sidebar.context.eyebrow" = "Context";
"sidebar.context.defaultTitle" = "Current runtime";
"sidebar.workspace.eyebrow" = "Workspace";
"sidebar.projects.title" = "Projects";
"sidebar.projects.empty" = "No saved projects";
"sidebar.projects.openPicker" = "open project picker";
"sidebar.providers.eyebrow" = "Agents";
"sidebar.providers.title" = "Providers";
"sidebar.addProvider.title" = "Add provider";
"sidebar.addProvider.subtitle" = "register a CLI command";
"sidebar.actions.eyebrow" = "Actions";
"sidebar.commands.title" = "Commands";
"sidebar.commands.all" = "ALL COMMANDS";
"sidebar.status.eyebrow" = "Status";
"sidebar.connections.title" = "Connections";
"sidebar.addProject.title" = "Add project";
"sidebar.addProject.subtitle" = "choose a folder and register it";
"sidebar.telegram.connected" = "Connected";
"sidebar.telegram.ready" = "Ready";
"sidebar.telegram.setup" = "Setup";
"sidebar.noProject" = "No project selected";
"sidebar.label.model" = "Model";
"sidebar.label.profile" = "PROFILE";
"sidebar.label.bridge" = "Bridge";
"sidebar.model.default" = "Default";
"sidebar.bridge.running" = "Running";
"sidebar.bridge.stopped" = "Stopped";
"sidebar.profile.help" = "Select work profile";
"sidebar.codex.checking" = "Checking...";
"sidebar.codex.installedVersion" = "Installed (%@) at %@";
"sidebar.codex.installed" = "Installed at %@";
"sidebar.codex.notInstalled" = "Not found in PATH. Install Codex CLI, then refresh.";
"sidebar.status.failed" = "Status check failed: %@";
"sidebar.telegram.notConfigured" = "Not configured (bot token required)";
"sidebar.telegram.tokenOnly" = "Token configured (chat_id not set, send /chat_info to your bot)";
"sidebar.telegram.configured" = "Configured (token: %@, chat_id: %@)";
"sidebar.configured" = "Configured";
"sidebar.executors" = "EXECUTORS";
"sidebar.refreshTools" = "Refresh tool status";
"sidebar.claude.installed" = "Claude installed at %@";
"sidebar.claude.notInstalled" = "Claude not found in PATH. Install Claude Code, then verify `claude --version`.";
"sidebar.addProject.error.noDirectory" = "Choose a project directory.";
"sidebar.addProject.error.pipe" = "Project paths containing | cannot be added from this form.";
"sidebar.addProject.duplicateNotice" = "A project with this path is already saved: %@\nPress Add Project again to add it anyway.";
"sidebar.projectDelete.title" = "Remove project";
"sidebar.projectDelete.message" = "Remove %@ from the sidebar?\n%@\n\nProject files will not be deleted.";
"sidebar.projectDelete.cancel" = "Cancel";
"sidebar.projectDelete.confirm" = "Remove";
"sidebar.projectDelete.help" = "Remove project";
"sidebar.providerDelete.title" = "Remove provider";
"sidebar.providerDelete.message" = "Remove %@ from the sidebar?\n%@\n\nThe saved provider command will be removed.";
"sidebar.providerDelete.cancel" = "Cancel";
"sidebar.providerDelete.confirm" = "Remove";
"sidebar.providerDelete.help" = "Remove provider";
"sidebar.usage.emptyLabel" = "tokens: --";
"sidebar.usage.emptyTooltip" = "No tokens recorded yet for this app conversation.";
"sidebar.usage.tooltip" = "Last turn: %d / ~%d tokens (%d%% of context) · %@";
"content.typing" = "Typing";
"content.activity.answering" = "Answering";
"content.activity.working" = "Working";
"content.activity.waitingForInput" = "Waiting";
"content.openProject.help.disabled" = "Select a project first";
"content.openProject.help.enabled" = "Open project";
"content.inspector.show" = "Show right panel";
"content.inspector.hide" = "Hide right panel";
"content.background.title" = "Chat background";
"content.background.help" = "Choose chat background";
"content.background.standard" = "Default";
"content.background.bankTeller" = "Bank counter";
"content.background.visitationRoom" = "Visitation room";
"content.background.classroom" = "Classroom";
"content.background.laborRally" = "Labor rally";
"content.background.aiPlanningMeeting" = "AI planning meeting";
"content.background.custom" = "Custom image";
"content.background.chooseFile" = "Choose image file…";
"content.background.invalidImage" = "The selected file is not a valid image.";
"content.background.importFailed" = "Could not save the selected background image.";
"content.background.importFailedWithReason" = "Could not save the selected background image.\n\n%@";
"content.traceReview.show" = "Review traces";
"content.saveAttachmentFailed" = "Failed to save attachment.\n\n%@";
"content.scriptTerminal.command" = "Run script in terminal: %@ %@";
"content.scriptTerminal.unavailable" = "Script unavailable: %@";
"about.menu" = "About PromptPiece";
"about.title" = "About PromptPiece";
"about.version" = "Version %@";
"about.versionWithBundleBuild" = "Version %@ (%@)";
"about.build" = "App build";
"about.commit" = "Commit";
"about.branch" = "Branch";
"about.builtAt" = "Built at";
"about.latestBuild" = "Latest build";
"about.latestBuiltAt" = "Latest at";
"about.updateStatus" = "Update";
"about.checkedAt" = "Checked at";
"about.latestLoading" = "Checking";
"about.latestFailed" = "Check failed: %@";
"about.updateAvailable" = "Update available";
"about.updateCurrent" = "Current";
"inspector.title" = "Project tools";
"inspector.noProject" = "No project";
"inspector.noProjectDetail" = "Select a project to use files, Git, and terminal.";
"inspector.files.tab" = "Files";
"inspector.files.changes" = "Changes";
"inspector.files.noChanges" = "No changed files.";
"inspector.files.title" = "File list";
"inspector.files.refresh" = "Refresh files";
"inspector.files.empty" = "No files to show.";
"inspector.files.openExternal" = "Open in default app";
"inspector.files.editor.save" = "Save";
"inspector.files.editor.cancel" = "Cancel";
"inspector.files.editor.unsaved" = "Unsaved";
"inspector.files.editor.ready" = "Editable text file";
"inspector.files.editor.quickLook" = "Preview only";
"inspector.files.editor.loading" = "Loading file...";
"inspector.files.editor.loadFailed" = "Could not load this file.";
"inspector.files.editor.confirmTitle" = "Save changes?";
"inspector.files.editor.confirmMessage" = "%@ has unsaved changes.";
"inspector.files.name" = "Name";
"inspector.files.kind" = "Kind";
"inspector.files.kind.folder" = "Folder";
"inspector.files.kind.file" = "File";
"inspector.files.modified" = "Modified";
"inspector.files.modified.unknown" = "--";
"inspector.git.tab" = "Git";
"inspector.git.refresh" = "Refresh Git status";
"inspector.git.notRepository" = "This project is not a Git repository.";
"inspector.git.detached" = "Detached HEAD";
"inspector.git.changes" = "Changed files";
"inspector.git.navigator.changes" = "Changes";
"inspector.git.navigator.repositories" = "Repositories";
"inspector.git.uncommittedChanges" = "Uncommitted Changes";
"inspector.git.recentLocations" = "Recent Locations";
"inspector.git.clean" = "Working tree clean.";
"inspector.git.changed" = "Changed";
"inspector.git.staged" = "Staged";
"inspector.git.unstaged" = "Unstaged";
"inspector.git.untracked" = "Untracked";
"inspector.git.ahead" = "Ahead";
"inspector.git.behind" = "Behind";
"inspector.git.autoRefresh" = "Auto refresh";
"inspector.git.actions" = "Actions";
"inspector.git.moreTools" = "Branch, remote, and tag tools";
"inspector.git.branches" = "Branches";
"inspector.git.branches.local" = "Local";
"inspector.git.branches.remote" = "Remote";
"inspector.git.branches.current" = "Current";
"inspector.git.branches.empty" = "No branches found.";
"inspector.git.branches.local.empty" = "No local branches.";
"inspector.git.branches.remote.empty" = "No remote branches.";
"inspector.git.branch.create.placeholder" = "New branch name";
"inspector.git.branch.create.head" = "Create from HEAD";
"inspector.git.branch.create.selected" = "Create from selected";
"inspector.git.branch.create.fromBranch" = "New branch from this branch";
"inspector.git.branch.create.fromBranchSummary" = "Base branch %@";
"inspector.git.branch.create.confirm" = "Create";
"inspector.git.branch.create.cancel" = "Cancel";
"inspector.git.branch.delete" = "Delete branch";
"inspector.git.branch.delete.title" = "Delete branch?";
"inspector.git.branch.delete.message" = "Deletes %@. Git will refuse if the branch has unmerged commits.";
"inspector.git.branch.delete.confirm" = "Delete";
"inspector.git.branch.delete.cancel" = "Cancel";
"inspector.git.branch.create.withChanges" = "Move with changes";
"inspector.git.branch.create.withChanges.hint" = "Keeps the current changes and checks out a new branch.";
"inspector.git.branch.create.withChanges.currentBranch" = "Creates a new branch from %@ and keeps the current working tree changes on it.";
"inspector.git.branch.moveWithChanges" = "Move with changes";
"inspector.git.branch.moveWithChanges.summary" = "Keep the current working tree changes and move to a selected local branch, or create a new branch from the selected branch and move there.";
"inspector.git.branch.moveWithChanges.target" = "Move to or branch from";
"inspector.git.branch.moveWithChanges.currentTarget" = "%@ · current";
"inspector.git.branch.moveWithChanges.confirm" = "Move";
"inspector.git.branch.moveWithChanges.newBranchHint" = "The new branch is created from the selected branch above.";
"inspector.git.branch.create.selectedHint" = "Select a commit in Branch Flow to branch from it.";
"inspector.git.branch.create.selectedSummary" = "Selected %@ · %@";
"inspector.git.branch.create.needsName" = "Enter a branch name first.";
"inspector.git.remotes" = "Remotes";
"inspector.git.remotes.empty" = "No remotes configured.";
"inspector.git.remotes.fetch" = "Fetch";
"inspector.git.remotes.push" = "Push";
"inspector.git.remotes.noURL" = "No URL";
"inspector.git.remotes.fetchSelected" = "Fetch %@";
"inspector.git.remotes.pruneSelected" = "Prune %@";
"inspector.git.remotes.fetchSelectedShort" = "Fetch";
"inspector.git.remotes.pruneSelectedShort" = "Prune";
"inspector.git.tags" = "Tags";
"inspector.git.tags.empty" = "No tags found.";
"inspector.git.tag.create.placeholder" = "New tag name";
"inspector.git.tag.create.action" = "Create tag";
"inspector.git.tag.create.selectedSummary" = "Selected %@ · %@";
"inspector.git.tag.create.needsName" = "Enter a tag name first.";
"inspector.git.tag.create.exists" = "Tag %@ already exists.";
"inspector.git.tag.create.title" = "Create lightweight tag?";
"inspector.git.tag.create.message" = "Create %@ at %@: %@";
"inspector.git.tag.create.confirm" = "Create tag";
"inspector.git.tag.create.cancel" = "Cancel";
"inspector.git.merge.action" = "Merge";
"inspector.git.merge.fromBranch" = "Merge from this branch";
"inspector.git.merge.toBranch" = "Merge current branch into this branch";
"inspector.git.merge.selected" = "Selected %@";
"inspector.git.merge.into" = "Into %@";
"inspector.git.merge.title" = "Merge selected branch?";
"inspector.git.merge.message" = "Merge %@ into %@. This can change HEAD, the index, and the working tree.";
"inspector.git.merge.confirm" = "Merge";
"inspector.git.merge.cancel" = "Cancel";
"inspector.git.merge.conflict" = "Merge stopped with conflicts. Resolve the conflicted files before continuing.";
"inspector.git.rebase.action" = "Rebase";
"inspector.git.rebase.title" = "Rebase current branch?";
"inspector.git.rebase.message" = "Rebase %@ onto %@. This rewrites the current branch history and can change HEAD, the index, and the working tree.";
"inspector.git.rebase.confirm" = "Rebase";
"inspector.git.rebase.cancel" = "Cancel";
"inspector.git.rebase.conflict" = "Rebase stopped with conflicts. Resolve the conflicted files before continuing.";
"inspector.git.cherryPick.action" = "Cherry-pick";
"inspector.git.cherryPick.selected" = "Selected %@";
"inspector.git.cherryPick.title" = "Cherry-pick selected commit?";
"inspector.git.cherryPick.message" = "Apply %@ to the current branch: %@";
"inspector.git.cherryPick.confirm" = "Cherry-pick";
"inspector.git.cherryPick.cancel" = "Cancel";
"inspector.git.cherryPick.conflict" = "Cherry-pick stopped with conflicts. Resolve the conflicted files before continuing.";
"inspector.git.recovery.normal" = "Normal";
"inspector.git.recovery.merging" = "Merge in progress";
"inspector.git.recovery.merging.message" = "Resolve conflicts or abort the merge before running unrelated Git actions.";
"inspector.git.recovery.rebasing" = "Rebase in progress";
"inspector.git.recovery.rebasing.message" = "Resolve conflicts or abort the rebase before running unrelated Git actions.";
"inspector.git.recovery.cherryPicking" = "Cherry-pick in progress";
"inspector.git.recovery.cherryPicking.message" = "Resolve the current cherry-pick before continuing.";
"inspector.git.recovery.reverting" = "Revert in progress";
"inspector.git.recovery.reverting.message" = "Resolve the current revert before continuing.";
"inspector.git.recovery.bisecting" = "Bisect in progress";
"inspector.git.recovery.bisecting.message" = "Finish or reset the bisect before continuing.";
"inspector.git.recovery.abortMerge" = "Abort merge";
"inspector.git.recovery.abortRebase" = "Abort rebase";
"inspector.git.recovery.abort.title" = "Abort Git operation?";
"inspector.git.recovery.abortMerge.message" = "Abort the current merge and restore the repository to the pre-merge state.";
"inspector.git.recovery.abortRebase.message" = "Abort the current rebase and restore the branch to the pre-rebase state.";
"inspector.git.recovery.abort.confirm" = "Abort";
"inspector.git.recovery.abort.cancel" = "Cancel";
"inspector.git.flow" = "Branch flow";
"inspector.git.flow.commits" = "Commits";
"inspector.git.flow.commitsCount" = "%d commits";
"inspector.git.flow.empty" = "No commits found.";
"inspector.git.flow.current" = "Current";
"inspector.git.flow.upstream" = "Upstream";
"inspector.git.flow.base" = "Base";
"inspector.git.flow.none" = "None";
"inspector.git.flow.localRefs" = "Local";
"inspector.git.flow.remoteRefs" = "Remote";
"inspector.git.flow.refs.empty" = "No refs";
"inspector.git.flow.mergeBase" = "Base";
"inspector.git.flow.merge" = "Merge";
"inspector.git.flow.copyTagID" = "Copy Tag ID";
"inspector.git.flow.copyCommitID" = "Copy Commit ID";
"inspector.git.flow.showChanges" = "View Changes";
"inspector.git.stash" = "Stash";
"inspector.git.stash.count" = "%d stashes";
"inspector.git.stash.empty" = "No stashes saved.";
"inspector.git.stash.loading" = "Refreshing stashes...";
"inspector.git.stash.selected" = "Selected stash";
"inspector.git.stash.selectPrompt" = "Select a stash to inspect it.";
"inspector.git.stash.message.placeholder" = "Optional stash message";
"inspector.git.stash.create" = "Create stash";
"inspector.git.stash.create.confirm" = "Create stash";
"inspector.git.stash.create.cancel" = "Cancel";
"inspector.git.stash.createAll" = "Stash working tree";
"inspector.git.stash.createSelected" = "Stash %d selected";
"inspector.git.stash.apply" = "Apply stash";
"inspector.git.stash.pop" = "Pop stash";
"inspector.git.stash.drop" = "Drop stash";
"inspector.git.stash.drop.title" = "Drop stash?";
"inspector.git.stash.drop.message" = "This permanently removes %@: %@";
"inspector.git.stash.drop.confirm" = "Drop";
"inspector.git.stash.drop.cancel" = "Cancel";
"inspector.git.stash.detail" = "Stash detail";
"inspector.git.stash.detail.loading" = "Loading stash detail...";
"inspector.git.stash.detail.files" = "Changed files";
"inspector.git.stash.detail.noFiles" = "No changed files found.";
"inspector.git.stash.detail.moreFiles" = "+%d more files";
"inspector.git.stash.detail.diff" = "Diff";
"inspector.git.stash.files" = "%d files";
"inspector.git.stash.more" = "+%d more stashes";
"inspector.git.stash.noMeta" = "No stash metadata";
"inspector.git.stagedSection" = "Staged";
"inspector.git.workingTreeSection" = "Working tree";
"inspector.git.kind.modified" = "Modified";
"inspector.git.kind.added" = "Added";
"inspector.git.kind.deleted" = "Deleted";
"inspector.git.kind.renamed" = "Renamed";
"inspector.git.kind.copied" = "Copied";
"inspector.git.kind.conflicted" = "Conflicted";
"inspector.git.kind.untracked" = "Untracked";
"inspector.git.action.stage" = "Stage";
"inspector.git.action.unstage" = "Unstage";
"inspector.git.action.previewDiff" = "Preview Diff";
"inspector.git.action.discard" = "Discard";
"inspector.git.action.open" = "Open";
"inspector.git.action.reveal" = "Reveal in Finder";
"inspector.git.action.fetch" = "Fetch";
"inspector.git.action.pull" = "Pull";
"inspector.git.action.push" = "Push";
"inspector.git.push.noRemote" = "Add a remote before pushing this branch.";
"inspector.git.push.title" = "Select Push Target";
"inspector.git.push.remote" = "Remote";
"inspector.git.push.sameBranch" = "Push to same branch name";
"inspector.git.push.sameBranchHint" = "Pushes to %@/%@. The remote branch is created if it does not exist.";
"inspector.git.push.targetBranch" = "Remote branch";
"inspector.git.push.noRemoteBranches" = "The selected remote has no fetched branches. Use same branch name to create a remote branch.";
"inspector.git.action.commit" = "Commit";
"inspector.git.action.openMergeTool" = "Open in Merge Tool";
"inspector.git.diffPreview.stageFile" = "Stage file";
"inspector.git.diffPreview.unstageFile" = "Unstage file";
"inspector.git.diffPreview.revertHunk" = "Revert hunk";
"inspector.git.diffPreview.revertHunk.range" = "Applies to %@";
"inspector.git.diffPreview.revertHunk.title" = "Revert this hunk?";
"inspector.git.diffPreview.revertHunk.message" = "This will undo only this diff hunk in %@.";
"inspector.git.diffPreview.revertHunk.confirm" = "Revert hunk";
"inspector.git.progress" = "%@ in progress...";
"inspector.git.success" = "%@ completed.";
"inspector.git.operation" = "Git operation";
"inspector.git.checkout" = "Checkout %@";
"inspector.git.feedback.safe" = "Safe";
"inspector.git.feedback.destructive" = "Destructive";
"inspector.git.commit.placeholder" = "Commit message";
"inspector.git.commit.confirm" = "Commit";
"inspector.git.commit.cancel" = "Cancel";
"inspector.git.commit.hint" = "Commits staged changes. Selected unstaged files are staged first.";
"inspector.git.commit.noChanges" = "Stage files or select unstaged files to commit.";
"inspector.git.commit.needsMessage" = "Commit needs a message.";
"inspector.git.discard.title" = "Discard changes?";
"inspector.git.discard.message" = "This will permanently discard changes in %d selected file(s). Untracked files will be deleted. This cannot be undone.";
"inspector.git.discard.confirm" = "Discard";
"inspector.git.discard.cancel" = "Cancel";
"inspector.git.error.deleteUntracked" = "Could not delete untracked files:\n%@";
"inspector.terminal.tab" = "Terminal";
"inspector.terminal.placeholder" = "Enter command";
"inspector.terminal.empty" = "Enter a command to run in the project cwd.";
"inspector.terminal.running" = "Shell running";
"inspector.terminal.stopped" = "Shell stopped";
"projectAction.finder" = "Open in Finder";
"projectAction.terminal" = "Open in Terminal";
"projectAction.ide" = "Open in %@";
"projectAdd.eyebrow" = "Workspace";
"projectAdd.title" = "Add project";
"projectAdd.subtitle" = "Register a local project folder with PromptPiece.";
"projectAdd.folder" = "Project folder";
"projectAdd.pathPlaceholder" = "/path/to/project";
"projectAdd.choose" = "Choose";
"projectAdd.displayName" = "Display name";
"projectAdd.displayNameCaption" = "Leave blank to use the folder name.";
"projectAdd.optional" = "Optional";
"projectAdd.cancel" = "Cancel";
"projectAdd.submit" = "Add Project";
"profilePicker.eyebrow" = "Context";
"profilePicker.title" = "Work profile";
"profile.default.title" = "Default";
"profile.default.summary" = "Follow the current conversation and project instructions without an extra role.";
"profile.owner.title" = "Owner";
"profile.owner.summary" = "Prioritizes product value, scope decisions, and tradeoffs.";
"profile.planner.title" = "Planning";
"profile.planner.summary" = "Prioritizes user needs, alternatives, scope, and acceptance criteria.";
"profile.developer.title" = "Implementation";
"profile.developer.summary" = "Prioritizes applying requirements without broad design changes, plus verification.";
"profile.designer.title" = "Design";
"profile.designer.summary" = "Prioritizes user flow, visual polish, and state feedback.";
"profile.architect.title" = "Architecture";
"profile.architect.summary" = "Turns plans into structure and prioritizes ownership boundaries and change cost.";
"profile.reviewer.title" = "Review";
"profile.reviewer.summary" = "Prioritizes regressions, missing tests, and unclear state transitions.";
"settings.eyebrow" = "Preferences";
"settings.title" = "PromptPiece settings";
"settings.subtitle" = "Keep transport setup, executor defaults, and local machine assumptions explicit.";
"settings.telegram.eyebrow" = "Transport";
"settings.telegram.title" = "Telegram bot";
"settings.telegram.subtitle" = "PromptPiece started here historically, but it now plugs into the same core as every other surface.";
"settings.botToken" = "Bot Token";
"settings.botToken.caption" = "Required. If chat ID is unknown, run /chat_info in Telegram and copy the returned chat_id.";
"settings.chatID" = "Chat ID";
"settings.chatID.caption" = "Optional. Discover with /chat_info.";
"settings.botUsername" = "Bot Username";
"settings.allowedUserID" = "Allowed User ID";
"settings.pollingInterval" = "Polling Interval";
"settings.executor.eyebrow" = "Executor";
"settings.codex.title" = "Codex CLI";
"settings.codex.subtitle" = "Keep the binary path explicit and the workspace assumptions local to this machine.";
"settings.executablePath" = "Executable Path";
"settings.executablePath.caption" = "Optional manual override when PATH detection is not enough.";
"settings.defaultWorkspace" = "Default Workspace";
"settings.defaultWorkspace.placeholder" = "Default Workspace Path";
"settings.defaultModel" = "Default Model";
"settings.defaultSandbox" = "Default Sandbox";
"settings.codex.skipGit" = "Pass --skip-git-repo-check when executing Codex";
"settings.claude.title" = "Claude CLI";
"settings.claude.subtitle" = "Treat Claude as a peer runtime, with its own binary path and repo assumptions.";
"settings.claude.executable.caption" = "Optional manual override. Claude still runs with the selected project as the working directory.";
"settings.claude.skipGit" = "Keep skip-git-repo-check equivalent enabled for Claude project runs";
"menu.zoomIn" = "Zoom In";
"menu.view" = "View";
"menu.zoomOut" = "Zoom Out";
"menu.actualSize" = "Actual Size";
"install.eyebrow" = "Install";
"install.method" = "Install Method";
"install.codex.subtitle" = "The app and CLI are separate. If discovery still fails after install, set the executable path manually in Settings.";
"install.codex.after" = "After install, click Refresh Codex Status.";
"install.claude.subtitle" = "PromptPiece needs the separate Claude Code CLI. If discovery still fails after install, set the executable path manually in Settings.";
"install.claude.after" = "After install, verify `claude --version` and sign in from Terminal.";
"install.step.install" = "Install";
"install.step.verify" = "Verify";
"install.step.signIn" = "Sign in";
"install.step.linkBundled" = "Link app-bundled binary to PATH";
"install.copy" = "Copy";
"install.copied" = "Copied";
"install.run" = "Run";
"install.done" = "Done.";
"install.commandFailed" = "Command failed with exit code %d.";
"web.close" = "Close";
"terminalStatus.openPopover" = "Running terminal";
"terminalStatus.open" = "Open Terminal";
"terminalStatus.send" = "Send";
"terminalStatus.ctrlC" = "Ctrl-C";
"terminalStatus.stop" = "Stop";
"terminalStatus.close" = "Close";
"terminalStatus.running" = "Running";
"terminalStatus.elapsed" = "Running %d:%02d";
"terminalStatus.inputPlaceholder" = "Send text to terminal";
"appScriptStatus.openPopover" = "Running app script";
"appScriptStatus.stop" = "Stop";
"appScriptStatus.elapsed" = "Running %d:%02d";
"appScriptStatus.inputPlaceholder" = "Send text to script";
"appScriptStatus.send" = "Send";
"web.input.placeholder" = "Type /projects, /scripts, or a plain prompt";
"web.attach" = "Attach";
"web.attachFiles" = "Attach files";
"web.send" = "Send";
"web.copy" = "Copy";
"web.saveAs" = "Save As";
"web.attachedFiles" = "Attached files";
"web.noDiffPreview" = "No diff preview is available for this file.";
"web.reply" = "Reply";
"web.remove" = "Remove";
"web.replyingToCommand" = "Replying to command";
"web.replyingToSystem" = "Replying to system message";
"web.replyingToBridge" = "Replying to bridge response";
"web.cancelReply" = "Cancel reply";
"web.diagramNotWired" = "Diagram rendering is not wired yet, so the source is shown below.";
"web.pendingAttachments" = "Pending attachments";
"web.queued" = "queued";
"web.sendResponse" = "Send response";
"web.waitingForReply" = "Waiting for reply";
"web.answering" = "Answering";
"web.working" = "Working";
"web.waitingForInput" = "Waiting for input";
"web.fileChange" = "file change";
"web.fileChangeEdits" = "%d edits";
"web.fileChangeRevision" = "Edit";
"web.fileChangeTotal" = "Total change";
"web.fileChangeBack" = "Edit list";
"web.showMore" = "Show more";
"web.showLess" = "Show less";
"web.traceFamily.label" = "Training label";
"web.traceFamily.unset" = "Select type";
"web.traceFamily.message" = "Answer";
"web.traceFamily.status" = "Work activity";
"web.traceFamily.workspaceChange" = "File change";
"web.traceFamily.approvalRequest" = "User input";
"web.traceFamily.usage" = "Usage/limit";
"web.traceFamily.error" = "Error";
"web.traceFamily.ignore" = "Hide/ignore";
"web.inputMode.projectPath" = "Project path";
"web.inputMode.projectName" = "Project name";
"web.inputMode.shellCommand" = "Shell command";
"web.inputMode.telegram.botToken" = "Telegram bot token";
"web.inputMode.telegram.chatID" = "Telegram chat ID";
"web.inputMode.telegram.botUsername" = "Telegram bot username";
"web.inputMode.telegram.allowedUserID" = "Allowed Telegram user ID";
"web.inputMode.telegram.pollingInterval" = "Telegram polling interval";
"web.inputMode.scriptDisplayName" = "Script name";
"web.inputMode.scriptPath" = "Script path";
"web.inputMode.scriptExecutionMode" = "Script execution mode";
"web.inputMode.scriptDescription" = "Script description";
"web.inputMode.modelID" = "Model ID";
"web.inputMode.localModelConfig" = "Local model config";
"web.inputMode.customProviderConfig" = "Custom provider config";
"web.inputMode.taskPlanItems" = "Task plan items";
"web.inputMode.taskPlanPrompt" = "Task plan goal";
"web.inputMode.scriptChoice" = "Script choice: %@";
"web.inputMode.scriptText" = "Script input: %@";
"web.inputMode.approvalText" = "Approval input: %@";
"taskPlanForm.title" = "Task plan";
"taskPlanForm.subtitle" = "Add tasks and choose a work profile for each item. PromptPiece will create a plan file in the selected project and keep asking the provider until the checklist is complete.";
"taskPlanForm.taskPlaceholder" = "Task to perform";
"taskPlanForm.addTask" = "Add task";
"taskPlanForm.removeTask" = "Remove task";
"taskPlanForm.autoApprove" = "Auto-approve provider requests during this plan";
"taskPlanForm.autoApproveHelp" = "Approval prompts are accepted automatically while the task plan is running. Text questions still require a reply.";
"taskPlanForm.cancel" = "Cancel";
"taskPlanForm.start" = "Start";
"traceReview.eyebrow" = "Provider traces";
"traceReview.title" = "Classification review";
"traceReview.subtitle" = "Assign gold labels to collected provider progress messages. Labels stay local and are appended to the normalized trace log.";
"traceReview.scope.unclassified" = "Unclassified";
"traceReview.scope.hidden" = "Hidden";
"traceReview.scope.ignored" = "Ignored";
"traceReview.scope.all" = "All";
"traceReview.outputPrediction" = "New ML";
"traceReview.outputCategory.label" = "Output category";
"traceReview.outputCategory.unset" = "Select output";
"traceReview.outputCategory.message" = "Message";
"traceReview.outputCategory.fileChange" = "File change";
"traceReview.outputCategory.workInfo" = "Work info";
"traceReview.outputCategory.userInputText" = "Text input";
"traceReview.outputCategory.userInputChoice" = "Choice input";
"traceReview.outputCategory.systemError" = "System error";
"traceReview.inputSource.aiPrompt" = "AI prompt";
"traceReview.inputSource.script" = "Script";
"traceReview.inputSource.shell" = "Shell";
"traceReview.inputSource.unknown" = "Unknown source";
"traceReview.observationSource.providerAdapter" = "Provider adapter";
"traceReview.observationSource.tuiCLI" = "TUI/CLI";
"traceReview.observationSource.scriptOutput" = "Script output";
"traceReview.observationSource.unknown" = "Unknown path";
"traceReview.hidden" = "Hidden";
"traceReview.fileChangeMapping.title" = "File change mapping";
"traceReview.fileChangeMapping.path" = "Path";
"traceReview.fileChangeMapping.displayPath" = "Display path";
"traceReview.fileChangeMapping.counts" = "Counts";
"traceReview.fileChangeMapping.save" = "Save label";
"traceReview.fileChangeMapping.saved" = "Saved";
"traceReview.empty.title" = "No traces";
"traceReview.empty.subtitle" = "Collected provider progress traces will appear here after logging is enabled.";
"settings.update.eyebrow" = "App update";
"settings.update.title" = "Automatic updates";
"settings.update.subtitle" = "Check for a new release, download it, then replace the app while PromptPiece is closed and relaunch it.";
"settings.update.autoCheck" = "Check for updates when the app starts";
"settings.update.current" = "Current %@ · %@";
"settings.update.lastChecked" = "Checked %@";
"settings.update.check" = "Check for Updates";
"settings.update.install" = "Download and Relaunch";
"settings.update.status.idle" = "Updates have not been checked yet.";
"settings.update.status.checking" = "Checking for a new version.";
"settings.update.status.upToDate" = "You are using the latest version.";
"settings.update.status.available" = "A new version is available: %@ · %@";
"settings.update.status.downloading" = "Downloading the new version: %@";
"settings.update.status.downloadingProgress" = "Downloading the new version: %@";
"settings.update.status.downloadingSizePending" = "Checking the download size for the new version.";
"settings.update.status.preparing" = "Verifying the download and expanding the app.";
"settings.update.status.installing" = "PromptPiece will quit, replace the app, and relaunch.";
"settings.update.status.failed" = "Update failed: %@";
"settings.update.error.invalidURL" = "The update download URL is invalid.";
"settings.update.error.http" = "The update server returned HTTP %d.";
"settings.update.error.checksum" = "The downloaded file checksum does not match.";
"settings.update.error.bundle" = "PromptPiece.app was not found in the downloaded archive.";
"settings.update.error.permission" = "The current app location is not writable. Move the app to a writable location and try again.";
"settings.update.error.process" = "Failed to run %@.";
"updateAlert.title" = "New PromptPiece Version";
"updateAlert.message" = "%@ · %@ is available. PromptPiece will download it, quit, replace the app, and relaunch.";
"updateAlert.message.fallback" = "A new version is available.";
"updateAlert.install" = "Download and Relaunch";
"updateAlert.later" = "Later";
"updateProgress.title" = "Install Update";
"updateProgress.detail" = "After the download and verification finish, PromptPiece will quit, replace the app, and open again.";
"updateProgress.downloadStarting" = "Connecting to the server and starting the download.";
"updateProgress.downloadSizePending" = "Checking the download size.";
"updateProgress.downloadBytes" = "%@ / %@";
"updateProgress.downloadBytesUnknown" = "%@ downloaded";
"updateProgress.preparingDetail" = "Checking the downloaded file checksum and preparing the app bundle.";
"updateProgress.installingDetail" = "PromptPiece is quitting and replacing the app. If it does not close immediately, the installer will quit it automatically and continue.";
"updateProgress.failureDetail" = "Something went wrong while downloading or verifying the update. Check the network connection, then retry.";
"updateProgress.retry" = "Retry";
"updateProgress.dismiss" = "Close";
