{ "action.reset": "reset worktree", "actionError": "Workspace action failed: {{message}}", "actionErrorUnknown": "Unknown error", "add": "Add workspace", "addLane": "Create a workspace from a working directory", "addLaneBaseLabel": "Branch to fork from", "addLaneBranchBusy": "{{branch}} — already checked out at {{path}}", "addLaneBranchExistingHint": "The worktree checks this branch out as it is — no new branch, no base.", "addLaneBranchExistingLabel": "Branch to check out", "addLaneBranchHintAuto": "Leave empty to let the server name the branch from the title.", "addLaneBranchLabel": "New branch name", "addLaneBranchModeCurrent": "Current branch", "addLaneBranchModeCurrentHint": "Work straight on this repo's checked-out branch (main) — no worktree, no fork. Switches to Repo mode.", "addLaneBranchModeExisting": "Existing branch", "addLaneBranchModeNew": "New branch", "addLaneBranchPlaceholder": "Automatic — named from the title", "addLaneNoBranches": "This repo has no commits yet, so a worktree has nothing to branch from. Add it as a Repo workspace: commit first, then publish it from the Changes panel.", "addLaneNoBranchesUseRepo": "Use as a Repo workspace", "addLaneNoFreeBranches": "Every branch in this repo is already checked out in a worktree. Create a new branch instead.", "addLaneExists": "This folder already has a workspace: #{{id}} {{title}}. It is selected; pick another folder to add a new one.", "addLaneNotARepo": "Not a git repository (or no read access) yet.", "addLaneProvisionFailed": "Worktree provisioning failed or timed out — the workspace exists but auto-setup was skipped. Check the workspace's git facts, then run agents/mcp setup manually.", "addLaneRepoHint": "An existing git repo. The dashboard creates a new worktree for the workspace, not a folder you pick.", "addLaneRepoHintAdopt": "An existing directory. The dashboard tracks it as-is — no worktree, no new branch.", "addLaneRepoLabel": "Source repository", "addLaneRepoLabelAdopt": "Directory", "addLaneSetupClose": "Close", "addLaneSetupMcp": "MCP servers", "addLaneSetupProfile": "Profile", "addLaneSetupTitle": "Setup", "addLaneTitleLabel": "Title", "addLaneTitlePlaceholder": "Optional", "addLaneNoTools": "No AI tool is installed and enabled.", "addLaneNoToolsLink": "Open Settings → AI Tools", "addLaneWorktreeDetached": "(detached)", "addLaneWorktreesMore": "+{{count}} more", "addLaneWorktreesTitle": "Worktrees of this repo ({{count}})", "browse.button": "Browse", "browse.empty": "This folder is empty.", "browse.fileTitle": "Browse for a file", "browse.select": "Select this folder", "browse.back": "Back (Alt+←)", "browse.create": "Create", "browse.editPath": "Type a path (Ctrl+L)", "browse.filter": "Filter…", "browse.forward": "Forward (Alt+→)", "browse.hint": "Double-click or Enter opens · Backspace goes up · type to jump", "browse.home": "Home", "browse.modified": "Modified", "browse.name": "Name", "browse.newFolder": "New folder", "browse.newFolderName": "Folder name", "browse.noMatch": "Nothing matches the filter.", "browse.places": "Places", "browse.recent": "Recent", "browse.selectFile": "Select file", "browse.showHidden": "Show hidden", "browse.hostFolder": "Server folder", "browse.hostFolderHint": "Browse the server account's own folder ({{path}}). A workspace there runs as the shared server account, which every admin uses — not as your own.", "browse.up": "Up one level (Backspace)", "browse.workspaces": "Workspaces", "browse.title": "Browse for a folder", "changes.back": "All files", "changes.bin": "bin", "changes.binary": "Binary file — not shown.", "changes.collapse": "Collapse the changes panel", "changes.closeRepo": "Close repository", "changes.closeOtherRepos": "Close other repositories", "changes.collapseAll": "Collapse every file", "changes.collapseAllFolders": "Collapse all folders", "changes.collapseContext": "Show fewer surrounding lines", "changes.collapseFile": "Collapse {{path}}", "changes.commitPlaceholder": "Commit message", "changes.suggestMessage": "Suggest a commit message with AI (Claude, ticked files)", "changes.conflicted": "conflict", "changes.discard": "Discard this file's changes", "changes.discardConfirm": "Click again to discard — this cannot be undone", "changes.empty.branch": "This branch matches its base.", "changes.empty.commit": "This commit changed no files.", "changes.empty.work": "Nothing uncommitted.", "changes.expand": "Show the changes panel", "changes.expandAll": "Expand every file", "changes.expandAllFolders": "Expand all folders", "changes.download": "Download", "changes.upload": "Upload files to the workspace root", "changes.uploadHere": "Upload files here…", "changes.uploaded_one": "Uploaded {{count}} file to {{dir}}", "changes.uploaded_other": "Uploaded {{count}} files to {{dir}}", "changes.uploadFailed": "Could not upload {{name}}: {{message}}", "changes.expandContext": "Show more surrounding lines", "changes.expandFile": "Expand {{path}}", "changes.fileGone": "That file no longer has changes in this range.", "changes.fileTruncated": "Diff cut short — open the file in an editor for the rest.", "changes.commentLine": "Comment on line {{n}} — pasted into this workspace's pane", "changes.commentOn": "Comment on {{at}} — pasted into the pane you used last; nothing is sent until you press Enter there", "changes.commentSend": "Paste into pane", "changes.addToChat": "Add to Chat", "changes.commentCancel": "Cancel", "changes.commentNoPane": "No terminal of this workspace is on screen — open its session (or narrow the Changes panel) first", "changes.layout.split": "Side-by-side", "changes.layout.unified": "Unified", "changes.loading": "Reading the working copy…", "changes.mode.browse": "Files", "changes.mode.history": "History", "changes.mode.overview": "Changes", "changes.mode.review": "Review", "changes.noCommits": "No commits yet.", "changes.noHunks": "No textual change.", "changes.noMatches": "No tracked file matches.", "changes.openFile": "Open {{path}}", "changes.quickOpen": "Find a file by path…", "changes.range.branch": "Compared to {{base}}", "changes.range.baseBranch": "base branch", "changes.range.branchHint": "{{base}}...HEAD — everything this branch adds on top of {{base}}", "changes.range.work": "Uncommitted", "changes.range.workHint": "Working tree vs HEAD — what has been touched and not committed", "changes.refresh": "Refresh", "changes.size.full": "Full screen", "changes.restore": "Restore size", "changes.fileCount_one": "{{count}} file", "changes.fileCount_other": "{{count}} files", "changes.dropEdits": "Discard your unsaved edits to this file?", "changes.stage": "Stage this file", "changes.title": "Changes", "changes.truncated": "Some changes were left out to keep this panel responsive.", "changes.unavailable": "This workspace's directory is not a readable git repository.", "changes.unavailableFolder": "This folder is not a readable git repository.", "changes.unstage": "Unstage this file", "changes.changesView": "Changes", "changes.wholeFile": "Whole file", "destructive.blocked.adopted": "This is an adopted directory and cannot be changed by a worktree action.", "destructive.blocked.missing": "The workspace directory is missing, so this action cannot continue.", "destructive.blocked.unreadable": "The workspace directory cannot be read as a Git worktree, so this action cannot continue.", "destructive.cancel": "Cancel", "destructive.count.bytesEstimate": "Estimated space freed", "destructive.count.dirty": "Modified files", "destructive.count.events": "Events", "destructive.count.head": "HEAD", "destructive.count.sessions": "Sessions", "destructive.count.tokenRows": "Token rows", "destructive.count.unpushed": "Unpushed commits", "destructive.count.untracked": "Untracked files", "destructive.force": "I understand these unpushed commits will be discarded.", "destructive.loading": "Loading current facts…", "destructive.notice.activeSessionSkipped": "One or more sessions in this workspace are still active and will be kept, not purged.", "destructive.notice.adopted": "This workspace points at a directory you own. Only the dashboard's record of it is dropped — the directory and its files are left untouched.", "destructive.notice.missing": "The workspace directory is already gone. Deleting the workspace drops the dashboard's record only; nothing on disk and no Git record is touched.", "destructive.notice.unreadable": "The workspace directory cannot be read as a Git worktree. That changes nothing here: only the dashboard's record is deleted, the directory is never touched.", "destructive.purge.confirm": "Purge history", "destructive.purge.message": "Approve the current counts before deleting stored session history.", "destructive.purge.title": "Purge workspace history?", "destructive.remove.confirm": "Delete workspace record", "destructive.remove.message": "Only the dashboard's record of this workspace is deleted. Its working tree, its branch and its database are left exactly as they are — delete them yourself if you want them gone.", "destructive.remove.title": "Delete workspace record?", "destructive.reset.confirm": "Reset worktree", "destructive.reset.message": "Approve the current counts before resetting this worktree.", "destructive.reset.survives": "Gitignored files such as node_modules and .env are kept; untracked files are deleted.", "destructive.reset.title": "Reset managed worktree?", "destructive.warning.no-remote": "No Git remote is configured, so nothing here is backed up remotely. You can still proceed.", "features.archived": "archived", "features.live": "Live", "features.viewingArchived": "Viewing archived feature \"{{slug}}\" — the workspace keeps running; this is a read-only snapshot.", "git.filesHeading_one": "{{count}} file changed", "git.filesHeading_other": "{{count}} files changed", "git.filesMore_one": "… and {{count}} more file", "git.filesMore_other": "… and {{count}} more files", "git.noDelta": "new", "git.uncommitted": "{{dirty}} modified · {{untracked}} untracked", "gitBar.branchCreate": "Create", "gitBar.branchCreateHint": "Create this branch without switching to it", "gitBar.branchDelete": "Delete", "gitBar.branchDeleteHint": "Delete the selected branch (refused if it has unmerged commits)", "gitBar.branchNewPlaceholder": "New branch name…", "gitBar.fetch": "Fetch", "gitBar.fetchHint": "git fetch --all --prune", "gitBar.errNoRemote": "No remote to push to or pull from. Add one, or set this branch's upstream, in a terminal.", "gitBar.inSync": "in sync", "gitBar.newLane": "New workspace here", "gitBar.newLaneHeld": "Already checked out at {{path}} — git allows one worktree per branch", "gitBar.newLaneHint": "Open Add workspace for a sibling worktree on the selected branch", "gitBar.noCommits": "no commits yet", "gitBar.noUpstream": "not pushed", "gitBar.publish": "Publish…", "gitBar.publishApply": "Publish", "gitBar.publishBranch": "Publish branch", "gitBar.publishBranchHint": "git push -u origin HEAD — this branch has no upstream yet", "gitBar.publishHint": "Add a remote named origin and push this branch to it (git remote add origin + git push -u origin HEAD)", "gitBar.publishUrl": "Remote URL: https://host/owner/repo.git or git@host:owner/repo.git", "gitBar.pull": "Pull", "gitBar.pullHint": "git pull --ff-only — refuses instead of merging when the branch has diverged", "gitBar.push": "Push", "gitBar.nothingToPush": "Nothing to push — {{upstream}} already has every commit.", "gitBar.pushHint": "git push -u origin HEAD", "gitBar.switch": "Branch", "gitBar.switchApply": "Switch branch", "gitBar.switchCurrent": "current", "gitBar.switchDirty": "Commit or discard the uncommitted changes first", "gitBar.switchHint": "Switch this worktree to another local branch", "gitBar.switchLabel": "Switch branch…", "gitBar.unbornHint": "Commit first, then publish this repo to a remote.", "locks.held_one": "{{count}} lock held", "locks.held_other": "{{count}} locks held", "mode.repo": "Repo", "mode.repoHint": "Adopt this directory as a workspace, as-is — no worktree, no new branch.", "mode.worktree": "Worktree", "mode.worktreeHint": "Provision a new git worktree + branch from a source repo.", "mode.clone": "Clone", "mode.cloneHint": "Clone a repository over HTTPS or SSH into one of your folders, as a new workspace.", "clone.urlLabel": "Repository URL", "clone.urlHint": "https://host/owner/repo.git, git@host:owner/repo.git or ssh://… — SSH uses your own key (Settings → Git).", "clone.parentLabel": "Clone into folder", "clone.parentHint": "The repository is cloned to {{path}}", "clone.nameLabel": "Folder name", "clone.cloning": "Cloning…", "clone.loginNeeded": "{{host}} needs a login: your username and a password or access token.", "clone.loginRejected": "{{host}} rejected that username or token.", "clone.username": "Username", "clone.token": "Password or access token", "clone.remember": "Remember this login for my account", "clone.sshRefused": "{{host}} refused the SSH login. Add your public key to that host, or make one in Settings → Git.", "clone.sshSettings": "Open Settings → Git", "moreActions": "More actions", "pipelinePicker.label": "Pipeline template", "pipelinePicker.stageMismatch": "Stage \"{{stage}}\" matches no node in \"{{pipeline}}\" — declare one of: {{nodes}}", "preflightError": "Could not load the current workspace facts.", "preflightErrorWithMessage": "Could not load the current workspace facts: {{message}}", "proof.ticketReport": "Task report", "renameLabel": "Rename this workspace", "proxy.native": "Native ({{tool}})", "proxy.label": "AI Proxy", "runtime.down": "down", "runtime.healthy": "healthy", "runtime.partial": "partial", "runtime.slot": "slot {{slot}}", "runtime.steppedAsideTitle": "Stepped aside from {{expected}}, which was already in use", "status.failed": "failed", "status.idle": "idle", "status.provisioning": "provisioning", "status.running": "running", "title": "Workspaces", "worktrees.heading_one": "{{count}} worktree", "worktrees.heading_other": "{{count}} worktrees", "changes.undoHunk": "Undo this hunk", "changes.undoHunkConfirm": "Click again to undo this hunk — this cannot be undone", "changes.undoHunkShort": "Undo", "changes.undoHunkShortConfirm": "Confirm undo", "changes.edit": "Edit", "changes.save": "Save", "changes.revertBlock": "Revert", "changes.blockNotInDiff": "That change is no longer in git's diff; refresh and retry", "changes.cancelEdit": "Cancel", "changes.preview": "Preview", "changes.raw": "Raw", "changes.editorLabel": "Edit {{path}}", "changes.prevHunk": "Previous change", "changes.nextHunk": "Next change", "changes.hunkOf": "{{n}} of {{total}}", "changes.noEditBinary": "Binary file — not editable here", "changes.imageFailed": "Could not show this image (deleted, or larger than 20 MB).", "changes.noEditTooBig": "Too large to edit here (over 1 MB)", "changes.noEdit": "Not editable here", "gitBar.loginTitle": "Git needs a login for {{host}}", "gitBar.loginRejected": "The server rejected that username or token.", "gitBar.loginUser": "Username", "gitBar.loginPassword": "Password or access token", "gitBar.loginRemember": "Remember for everyone using this AgentHub", "gitBar.loginTokenHint": "On Gitea: Settings → Applications → Generate token, with repository read/write.", "gitBar.loginInsecure": "This dashboard is on plain http — the token crosses the network unencrypted.", "gitBar.loginSubmit": "Log in and retry", "gitBar.loginCancel": "Cancel", "gitBar.merge": "Merge into current", "gitBar.mergeHint": "Merge the selected branch into the branch this workspace is on", "gitBar.mergeUpstream": "Merge {{upstream}}", "gitBar.mergeUpstreamHint": "The branch has diverged from its upstream: merge it in (conflicts are resolved in the Changes panel)", "gitBar.mergeConfirm": "Merge {{branch}} into {{current}}? Files in this workspace change now — if an agent is working in this workspace, let it finish first.", "gitBar.pushConfirm": "Push {{count}} commit(s) from {{branch}} to {{upstream}}? Anyone with access to the remote will see them, and a push cannot be taken back from here.", "gitBar.publishBranchConfirm": "Publish branch {{branch}} to the remote? Anyone with access to the remote will see it.", "gitBar.publishConfirm": "Add {{url}} as this repo's remote and push {{branch}} to it? Anyone with access to that remote will see the code.", "gitBar.branchDeleteConfirm": "Delete the local branch {{branch}}? Git refuses if it holds commits merged nowhere else.", "gitBar.mergeConflicts": "Merge stopped on {{count}} conflicted file(s) — resolve them in the list below.", "gitBar.merging": "A {{op}} is in progress: finish or abort it first", "changes.conflictsGroup": "Merge conflicts", "changes.mergeBanner": "A {{op}} is in progress — {{count}} file(s) still conflicted", "changes.mergeReady": "A {{op}} is in progress — every conflict is resolved", "changes.mergeCommit": "Complete {{op}}", "changes.mergeAbort": "Abort {{op}}", "changes.mergeAbortConfirm": "Click again to abort the {{op}}", "changes.discardShortConfirm": "Discard?", "changes.amend": "Amend", "changes.amendPushed": "The last commit is already pushed; amending it would rewrite shared history. Revert it from History instead.", "changes.amendHint": "Fold the ticked files into the last commit (only before it is pushed). Nothing ticked rewords it; leave the message empty to keep the old one.", "changes.amendPlaceholder": "New message (empty = keep the old one)", "changes.historyOf": "History of branch", "changes.cherryPick": "Cherry-pick onto {{branch}}", "changes.revertCommit": "Revert this commit", "changes.undoCommit": "Undo commit (keep changes)", "changes.undoCommitTitle": "Undo the last commit?", "changes.undoCommitBody": "{{short}} \"{{subject}}\" is removed from the branch. Its changes stay staged, so you can edit them and commit again.", "changes.undoCommitConfirm": "Undo commit", "changes.revertConfirm": "Add a commit on {{branch}} that undoes {{short}} \"{{subject}}\"? Files in this workspace change now.", "changes.cherryPickConfirm": "Apply {{short}} \"{{subject}}\" from {{from}} onto {{branch}} as a new commit? Files in this workspace change now.", "changes.amendTitle": "Amend the last commit?", "changes.amendConfirm": "\"{{subject}}\" is replaced by a new commit with the staged changes folded in. The server refuses if it is already pushed.", "changes.opConflicts": "The {{op}} stopped on {{count}} conflict(s) — resolve them in Changes", "changes.opDone": "{{op}} done", "changes.takeOurs": "Keep mine", "changes.takeTheirs": "Take theirs", "changes.markResolved": "Mark resolved (after editing out the markers)", "conflict.left": "{{left}} of {{total}} conflicts left", "conflict.prev": "Previous conflict", "conflict.next": "Next conflict", "conflict.allOurs": "Keep all mine", "conflict.allTheirs": "Take all theirs", "conflict.editByHand": "Edit by hand", "conflict.unbalanced": "The conflict markers do not line up (edited by hand?) — use Edit by hand.", "conflict.unusable": "This file cannot be shown here (binary or too large) — use Keep all mine / Take all theirs, or a terminal.", "conflict.keepOurs": "Keep mine", "conflict.takeTheirs": "Take theirs", "conflict.keepBoth": "Keep both", "conflict.chose.ours": "Kept mine", "conflict.chose.theirs": "Took theirs", "conflict.chose.both": "Kept both", "conflict.undo": "Undo", "conflict.ours": "Mine ({{label}})", "conflict.theirs": "Theirs ({{label}})", "conflict.reset": "Cancel", "conflict.save": "Save and mark resolved", "changes.takeOursHint": "Keep your version of the whole file", "changes.takeTheirsHint": "Take the incoming version of the whole file", "row.actions": "Workspace actions", "row.hint": "Double-click to rename · drag or Alt+↑/↓ to reorder · right-click for actions", "menu.rename": "Rename", "menu.newHere": "New workspace here…", "menu.copyPath": "Copy path", "menu.reset": "Reset worktree…", "menu.remove": "Delete workspace…", "panel.changes": "Changes", "panel.analyst": "Analyst", "replay.placeholder": "Message to continue this session…", "replay.hint": "Sending resumes the session in a free pane.", "replay.send": "Send", "sessions.resume": "Resume", "resume.openPane": "Open pane", "resume.hint": "Resume this session in a workspace pane — re-reads its whole transcript into context", "resume.title": "Resume this session?", "resume.body": "Resuming re-reads the session's whole transcript into the model's context, so its next turns pay for all of it again. It opens in the first free pane of {{workspace}}. To only read it, stay on this page.", "resume.confirm": "Resume session", "resume.fork": "Fork", "resume.forkHint": "Continue from here as a NEW session — the original stays as it is", "resume.forkTitle": "Fork this session?", "resume.forkBody": "A fork re-reads the session's whole transcript into a NEW session (its own id), so its turns pay for all of it again; the original is left untouched. It opens in the first free pane of {{workspace}}.", "resume.forkConfirm": "Fork session", "tree.title": "Workspaces", "tree.search": "Search workspaces and sessions", "tree.toolFilter": "Filter by tool", "tree.allTools": "All tools", "tree.ownerYou": "{{name}} (you)", "tree.noOwner": "No owner", "tree.ownerToggle": "Show or hide {{name}}'s workspaces", "tree.readOnly": "{{name}}'s workspace — read only. A session opens its analysis page.", "tree.newSession": "New session", "tree.noSessions": "No sessions yet", "tree.transcriptHint": "No live pane — opens its conversation; a message you send resumes it", "tree.splitHint": "Live pane — Ctrl/Cmd+click opens it in a split beside the focused pane", "tree.renameSession": "Rename session", "tree.archiveSession": "Archive — hide from this workspace (deletes nothing)", "tree.pinSession": "Pin to the top of this workspace", "tree.unpinSession": "Unpin", "tree.pinned": "Pinned", "tree.worktreeSession": "In its own worktree: .claude/worktrees/{{name}}", "tree.archiveWorktreeTitle": "Archive and remove its worktree?", "tree.archiveWorktreeBody": "Like Claude Desktop, archiving removes the session's worktree .claude/worktrees/{{name}} and its branch. Git refuses if it holds uncommitted changes, and a branch with commits merged nowhere is kept — nothing unsaved is lost.", "tree.archiveWorktreeConfirm": "Archive and remove", "tree.archived_one": "{{count}} archived session", "tree.archived_other": "{{count}} archived sessions", "tree.unarchive": "Unarchive", "home.breadcrumb": "Workspaces", "home.ai": "AI", "home.openTerminal": "Open terminal", "home.repoRoot": "Repository root", "home.mainBranch": "Main worktree's branch", "home.worktreeCount_one": "{{count}} worktree", "home.worktreeCount_other": "{{count}} worktrees", "home.placeholder": "How can I help you today?", "home.start": "Start", "home.permissionAuto": "Auto", "home.permissionAcceptEdits": "Accept edits", "home.permissionDefault": "Ask first", "home.permissionPlan": "Plan", "home.permissionBypass": "Bypass permissions", "home.local": "Local", "home.localHint": "Work in the workspace folder itself", "home.worktree": "New worktree", "home.worktreeHint": "Run this session in its own git worktree — /.claude/worktrees/, a branch of its own, made and cleaned up by Claude Code", "home.allBusy": "All 10 sessions of this workspace are in use — stop one before starting another.", "home.recents": "Recents", "home.noRecents": "No sessions yet — start one above.", "home.instructions": "Instructions", "home.instructionsEmpty": "Add instructions to tailor how the agent works in this workspace. They are appended to every new session's system prompt.", "home.edit": "Edit instructions", "home.save": "Save", "home.cancel": "Cancel", "home.memory": "Memory", "home.viewMemory": "View memory", "home.memoryCount_one": "{{count}} file the agent reads", "home.memoryCount_other": "{{count}} files the agent reads", "home.memoryEmpty": "Memory shows here once the folder has a CLAUDE.md or AGENTS.md, or Claude saves memory for it.", "home.context": "Context", "home.contextEmpty": "Add PDFs, documents, or other text to reference in this workspace.", "home.contextSnapshot": "Each file is copied when you add it — later edits to the original are not seen. Remove and add it again, or add its folder under Folder to always read the latest.", "home.addFile": "Add files", "home.folder": "Folder", "home.ownFolder": "Workspace folder", "home.addFolder": "Add folder", "home.folderPath": "Absolute folder path", "home.add": "Add", "home.cloneFolders": "Or clone repositories", "home.cloneHint": "One URL per line — each is cloned into {{path}} with your own git login (Settings → Git) and added here.", "home.clonePlaceholder": "https://host/owner/repo.git\ngit@host:owner/other.git", "home.cloneRun": "Clone", "home.cloneRetry": "Retry the failed ones", "home.cloneDone": "Added", "home.suggested": "Untracked worktrees", "home.remove": "Remove", "home.missing": "missing", "home.unsupported": "{{tool}} cannot take instructions, context files or extra folders: they are kept, but its sessions start without them.", "home.close": "Close", "tabs.label": "Session tabs", "tabs.new": "New tab", "tabs.newTerminal": "New terminal", "tabs.terminal": "Terminal", "tabs.close": "Close tab (stops its session)", "tabs.full": "All 10 sessions are in use — stop one first", "tabs.agentSettings": "Agent settings…", "tabs.settings": "Settings", "tabs.closeSettings": "Close Settings", "tabs.splitHint": "Ctrl/Cmd+click: open in a split · drag onto a pane to place it", "panes.drag": "Drag to move this pane — onto another pane's edge to split there, onto its middle to swap; hold it over another tab to open that tab", "panes.drop.left": "Place on the left", "panes.drop.right": "Place on the right", "panes.drop.top": "Place on top", "panes.drop.bottom": "Place below", "panes.drop.swap": "Swap places", "panes.drop.replace": "Show here — this pane moves to its own tab", "panes.pick": "Show another session in this pane", "panes.empty": "No session", "panes.split.right": "Split right", "panes.split.bottom": "Split down", "panes.full": "A tab holds at most 4 panes", "panes.newTerminal": "New terminal", "panes.showChat": "Show as chat", "panes.showTerminal": "Show the terminal", "panes.close": "Move to its own tab (the session keeps running)", "panes.resize": "Resize panes", "tabs.home": "Workspace home", "sessionMenu.open": "Open", "sessionMenu.openSplit": "Open in split", "sessionMenu.details": "Session details", "sessionMenu.copyId": "Copy session ID", "sessionMenu.archive": "Archive", "sessionMenu.pin": "Pin", "sessionMenu.unpin": "Unpin", "panes.show": "Show {{name}} here", "panes.splitNew.right": "Split right with a new terminal", "panes.splitNew.bottom": "Split down with a new terminal", "panes.closeShort": "Move to own tab", "panes.stop": "Stop session", "changes.copyPath": "Copy relative path", "changes.viewCommit": "View commit", "changes.copySha": "Copy commit SHA", "changes.copySubject": "Copy commit message", "replay.live": "This session is open in a tab — continue it there.", "replay.noResume": "{{tool}} cannot resume a session by id, so this conversation is read-only here.", "replay.newSession": "Start a new session", "tabs.state.awaiting": "Waiting for you", "tabs.state.error": "Error", "tabs.state.running": "Running", "tabs.renameHint": "Double-click to rename", "tabs.stopTitle": "Stop “{{name}}”?", "tabs.stopGroupTitle": "Stop the {{count}} sessions in this tab?", "tabs.stopBody": "Closing the tab stops its session, even mid-turn. It can be resumed later from Recents.", "tabs.stopConfirm": "Stop session", "changes.loadMore": "Load more commits", "changes.commentPasted": "Pasted into tab {{tab}} — press Enter there to send it", "changes.splitter": "Resize the changes panel", "tree.archiveLiveTitle": "Archive a live session?", "tree.archiveLiveBody": "Its tab keeps running; archiving only hides it from this list. Unarchive it from the archived fold.", "tree.state.awaiting": "waiting for you", "tree.state.error": "error", "tree.state.live": "live", "tree.state.idle": "ended", "tree.showMore_one": "Show {{count}} more", "tree.showMore_other": "Show {{count}} more", "tree.seeAll": "See all ({{count}} more)", "tree.showLess": "Show less", "home.contextPanel": "Workspace context", "row.state.needsYou": "needs you", "row.state.error": "error", "row.state.running": "running", "row.state.active": "active", "row.state.idle": "idle", "gitBar.done.fetch": "Fetched", "gitBar.done.pull": "Pulled", "gitBar.done.push": "Pushed", "gitBar.done.publish": "Published", "runtime.listening": "listening", "runtime.notListening": "not listening", "replay.pasted": "That session was already open in a tab — your message is pasted there; press Enter to send it.", "replay.notPasted": "That session is open in a tab, but your message could not be pasted there: {{text}}", "changes.changesGroup": "Changes", "changes.unversionedGroup": "Unversioned Files", "changes.commitTicked": "Commit ({{count}})", "changes.commitAndPush": "Commit and Push", "changes.amendAndPush": "Amend and Push", "changes.pushFailed": "Committed, but the push failed: {{error}}", "changes.tickFile": "Include {{path}} in the commit", "changes.tickFolder": "Tick every file in {{path}}", "changes.commitFile": "Commit File…", "changes.jumpToSource": "Jump to Source", "changes.copyPatch": "Copy as Patch to Clipboard", "changes.noPatch": "This file has no text diff to copy", "changes.addToVcs": "Add to VCS", "changes.addToGitignore": "Add to .gitignore", "changes.includeBlock": "Include this change in the commit", "changes.prevDiff": "Previous difference (Shift+F7)", "changes.nextDiff": "Next difference (F7)", "changes.prevFile": "Previous file", "changes.nextFile": "Next file", "changes.showHistory": "Show History", "changes.historyOfFile": "History of {{path}}", "changes.historyWholeBranch": "Whole branch", "changes.annotate": "Annotate", "changes.noBlame": "Nothing to annotate: this file has no committed history yet", "changes.notCommitted": "Not committed yet", "fx.title": "Files", "fx.workspace": "Workspace", "fx.files": "Files", "fx.trash": "Trash", "fx.close": "Close", "fx.up": "Parent folder", "fx.refresh": "Refresh", "fx.newFolder": "New folder", "fx.newFile": "New file", "fx.uploadFiles": "Upload files", "fx.uploadFolder": "Upload a folder", "fx.download": "Download", "fx.downloadZip": "Download as zip", "fx.rename": "Rename", "fx.copy": "Copy", "fx.cut": "Cut", "fx.paste": "Paste", "fx.pasteInto": "Paste into this folder", "fx.pasteFrom": "Paste {{count}} item(s) from {{workspace}}", "fx.delete": "Move to Trash", "fx.open": "Open", "fx.location": "Location", "fx.name": "Name", "fx.size": "Size", "fx.modified": "Modified", "fx.empty": "This folder is empty — drop files here to upload.", "fx.itemsCount": "{{count}} item(s)", "fx.selectedCount": "{{count}} selected", "fx.dropHint": "Drag files or folders here to upload · drag onto a folder to move (Ctrl: copy)", "fx.uploading": "Uploading {{done}}/{{total}}…", "fx.uploaded": "Uploaded {{count}} file(s).", "fx.uploadFailed": "Could not upload {{name}}: {{message}}", "fx.tooBig": "{{size}} is more than one upload may carry ({{max}}). Upload fewer files at a time.", "fx.trashed": "Moved {{count}} item(s) to the Trash.", "fx.copiedDone": "Copied {{count}} item(s) — open a folder (or another workspace) and Paste.", "fx.cutDone": "Cut {{count}} item(s) — open a folder (or another workspace) and Paste.", "fx.pasted": "Pasted.", "fx.crossOnlyWorkspace": "These items can only be pasted where they came from (a session worktree, an extra folder, or between two homes).", "fx.needsUpgrade": "This needs the updated server helper — ask an admin to run `sudo agenthub server install-system` once.", "fx.conflictTitle": "Already there", "fx.conflictBody": "This name is taken in the destination: {{names}}", "fx.conflictAll": "Do this for every remaining file", "fx.cancel": "Cancel", "fx.skip": "Skip", "fx.keepBoth": "Keep both", "fx.replace": "Replace", "fx.trashHint": "Deleted files and folders, restorable for 7 days.", "fx.emptyTrash": "Empty Trash", "fx.restore": "Restore", "fx.purge": "Delete forever", "fx.restored": "Restored.", "fx.trashEmpty": "The Trash is empty.", "changes.openExplorer": "Open File Explorer — manage, upload and download files", "changes.openInExplorer": "Open in File Explorer", "fx.places": "Workspaces", "fx.back": "Back", "fx.forward": "Forward", "fx.search": "Search (Ctrl+F)", "fx.searchHere": "Search this folder…", "fx.viewAs": "View as", "fx.gridView": "Icons", "fx.listView": "List", "fx.new": "New", "fx.upload": "Upload", "fx.more": "More", "fx.selectAll": "Select all", "fx.showHidden": "Show hidden files (Ctrl+H)", "fx.untitledFolder": "New folder", "fx.untitledFile": "untitled.txt", "fx.copyPath": "Copy path", "fx.clearSelection": "Clear selection", "fx.noMatch": "Nothing here matches.", "fx.loading": "Loading…", "fx.dropHere": "Drop to upload into {{folder}}", "fx.nameField": "Name", "fx.from": "From", "fx.deletedAt": "Deleted", "fx.unavailable": "The file manager is not available on this dashboard yet — it needs a restart after the update.", "fx.noWorkspace": "There is no workspace yet. Add one first, then its files show here.", "fx.myHome": "Home", "fx.userHomes": "Users' homes", "fx.readOnlyHome": "Another user's home — view and download only", "fx.readOnly": "Read-only", "fx.readOnlyHint": "This is another user's home: you can view, copy and download, not change it.", "fx.homeEmpty": "Nothing in your home yet — its hidden files (.bashrc, .claude…) are not shown here. Your workspaces are on the left.", "tmuxUpgrade": "Upgrade tmux: {{advice}}" }