{ "action.reset": "Đặt lại worktree", "actionError": "Thao tác workspace thất bại: {{message}}", "actionErrorUnknown": "Lỗi không xác định", "add": "Thêm workspace", "addLane": "Tạo workspace từ một thư mục làm việc", "addLaneBaseLabel": "Nhánh để tạo nhánh mới", "addLaneBranchBusy": "{{branch}} — đang được checkout tại {{path}}", "addLaneBranchExistingHint": "Worktree checkout đúng nhánh này — không tạo nhánh mới, không cần nhánh gốc.", "addLaneBranchExistingLabel": "Nhánh cần checkout", "addLaneBranchHintAuto": "Để trống để server tự đặt tên nhánh theo tiêu đề.", "addLaneBranchLabel": "Tên nhánh mới", "addLaneBranchModeCurrent": "Nhánh hiện tại", "addLaneBranchModeCurrentHint": "Làm thẳng trên nhánh repo đang mở (main) — không tạo worktree, không fork nhánh. Chuyển sang chế độ Repo.", "addLaneBranchModeExisting": "Nhánh có sẵn", "addLaneBranchModeNew": "Nhánh mới", "addLaneBranchPlaceholder": "Tự động — đặt theo tiêu đề", "addLaneNoBranches": "Repo này chưa có commit nào nên worktree không có gì để rẽ nhánh. Hãy thêm nó thành workspace Repo: commit trước, rồi publish từ bảng Changes.", "addLaneNoBranchesUseRepo": "Dùng làm workspace Repo", "addLaneNoFreeBranches": "Mọi nhánh của repo này đều đang nằm trong một worktree. Hãy tạo nhánh mới.", "addLaneExists": "Thư mục này đã có workspace: #{{id}} {{title}}. Workspace đó đã được chọn; hãy chọn thư mục khác để thêm workspace mới.", "addLaneNotARepo": "Chưa phải repo git (hoặc không có quyền đọc).", "addLaneProvisionFailed": "Tạo worktree thất bại hoặc quá thời gian chờ — workspace vẫn tồn tại nhưng tự động thiết lập đã bị bỏ qua. Kiểm tra git facts của workspace, rồi chạy thiết lập agents/mcp thủ công.", "addLaneRepoHint": "Một repo git có sẵn. Dashboard tự tạo worktree mới cho workspace, không phải thư mục bạn chọn.", "addLaneRepoHintAdopt": "Một thư mục có sẵn. Dashboard theo dõi nguyên trạng — không tạo worktree, không tạo nhánh mới.", "addLaneRepoLabel": "Repo nguồn", "addLaneRepoLabelAdopt": "Thư mục", "addLaneSetupClose": "Đóng", "addLaneSetupMcp": "MCP server", "addLaneSetupProfile": "Profile", "addLaneSetupTitle": "Thiết lập", "addLaneTitleLabel": "Tiêu đề", "addLaneTitlePlaceholder": "Không bắt buộc", "addLaneToolDefaultBadge": "Mặc định", "addLaneNoTools": "Chưa có AI tool nào được cài và bật.", "addLaneNoToolsLink": "Mở Cài đặt → AI Tools", "addLaneToolHint": "CLI nào điều khiển workspace này. Không thể thay đổi sau này.", "addLaneWorktreeDetached": "(detached)", "addLaneWorktreesMore": "+{{count}} nữa", "addLaneWorktreesTitle": "Worktree của repo này ({{count}})", "browse.button": "Duyệt", "browse.empty": "Thư mục này trống.", "browse.fileTitle": "Duyệt chọn tệp", "browse.select": "Chọn thư mục này", "browse.title": "Duyệt chọn thư mục", "browse.typePath": "Không mở được hộp thoại chọn của hệ điều hành ở đây — hãy gõ đường dẫn.", "changes.back": "Tất cả file", "changes.bin": "bin", "changes.binary": "File nhị phân — không hiển thị.", "changes.collapse": "Thu gọn bảng thay đổi", "changes.closeRepo": "Đóng repository", "changes.closeOtherRepos": "Đóng các repository khác", "changes.collapseAll": "Thu gọn tất cả file", "changes.collapseAllFolders": "Thu gọn tất cả thư mục", "changes.collapseContext": "Bớt dòng xung quanh", "changes.collapseFile": "Thu gọn {{path}}", "changes.commitPlaceholder": "Nội dung commit", "changes.suggestMessage": "Gợi ý nội dung commit bằng AI (Claude, các file đã tick)", "changes.conflicted": "xung đột", "changes.discard": "Bỏ thay đổi của file này", "changes.discardConfirm": "Bấm lần nữa để bỏ — không thể hoàn tác", "changes.empty.branch": "Nhánh này không khác nhánh gốc.", "changes.empty.commit": "Commit này không đổi file nào.", "changes.empty.work": "Không có gì chưa commit.", "changes.expand": "Mở bảng thay đổi", "changes.expandAll": "Mở tất cả file", "changes.expandAllFolders": "Mở tất cả thư mục", "changes.expandContext": "Hiện thêm dòng xung quanh", "changes.expandFile": "Mở {{path}}", "changes.fileGone": "File này không còn thay đổi nào trong phạm vi đang xem.", "changes.fileTruncated": "Diff bị cắt bớt — mở file trong editor để xem phần còn lại.", "changes.commentLine": "Comment dòng {{n}} — dán vào pane của workspace này", "changes.commentOn": "Comment {{at}} — dán vào pane bạn dùng gần nhất; chưa gửi gì cho tới khi bạn nhấn Enter ở đó", "changes.commentSend": "Dán vào pane", "changes.addToChat": "Thêm vào chat", "changes.commentCancel": "Huỷ", "changes.commentNoPane": "Chưa có terminal nào của workspace này đang hiện — hãy mở session (hoặc thu hẹp khung Changes) trước", "changes.layout.split": "Hai cột", "changes.layout.unified": "Một cột", "changes.loading": "Đang đọc working copy…", "changes.mode.browse": "Tệp", "changes.mode.history": "Lịch sử", "changes.mode.overview": "Thay đổi", "changes.mode.review": "Xem toàn bộ", "changes.noCommits": "Chưa có commit nào.", "changes.noHunks": "Không có thay đổi nội dung.", "changes.noMatches": "Không có file nào khớp.", "changes.openFile": "Mở {{path}}", "changes.quickOpen": "Tìm file theo đường dẫn…", "changes.range.branch": "So với {{base}}", "changes.range.baseBranch": "nhánh gốc", "changes.range.branchHint": "{{base}}...HEAD — toàn bộ phần nhánh này thêm vào so với {{base}}", "changes.range.work": "Chưa commit", "changes.range.workHint": "Working tree so với HEAD — những gì vừa sửa mà chưa commit", "changes.refresh": "Tải lại", "changes.size.full": "Toàn màn hình", "changes.restore": "Thu nhỏ", "changes.fileCount_one": "{{count}} tệp", "changes.fileCount_other": "{{count}} tệp", "changes.dropEdits": "Bỏ các chỉnh sửa chưa lưu của file này?", "changes.stage": "Đưa file này vào index", "changes.title": "Thay đổi", "changes.truncated": "Một phần thay đổi đã bị lược bớt để bảng này còn mượt.", "changes.unavailable": "Thư mục của workspace này không phải repo git đọc được.", "changes.unavailableFolder": "Thư mục này không phải repo git đọc được.", "changes.unstage": "Bỏ file này khỏi index", "changes.changesView": "Thay đổi", "changes.wholeFile": "Toàn bộ file", "destructive.blocked.adopted": "Đây là thư mục đã nhận và không thể thay đổi bằng thao tác worktree.", "destructive.blocked.missing": "Thư mục workspace không còn, nên không thể tiếp tục thao tác này.", "destructive.blocked.unreadable": "Không thể đọc thư mục workspace như một Git worktree, nên không thể tiếp tục thao tác này.", "destructive.cancel": "Hủy", "destructive.count.bytesEstimate": "Dung lượng giải phóng (ước tính)", "destructive.count.dirty": "Tệp đã sửa", "destructive.count.events": "Sự kiện", "destructive.count.head": "HEAD", "destructive.count.sessions": "Phiên", "destructive.count.tokenRows": "Dòng token", "destructive.count.unpushed": "Commit chưa đẩy", "destructive.count.untracked": "Tệp chưa theo dõi", "destructive.force": "Tôi hiểu các commit chưa đẩy này sẽ bị loại bỏ.", "destructive.loading": "Đang tải trạng thái hiện tại…", "destructive.notice.activeSessionSkipped": "Một hoặc nhiều phiên trong workspace này vẫn đang hoạt động và sẽ được giữ lại, không bị dọn.", "destructive.notice.adopted": "Workspace này trỏ tới thư mục của bạn. Chỉ bản ghi trên bảng điều khiển bị xóa — thư mục và các tệp bên trong không bị thay đổi.", "destructive.notice.missing": "Thư mục workspace đã không còn. Việc xóa chỉ bỏ bản ghi trên bảng điều khiển; không tệp nào trên đĩa và không bản ghi Git nào bị đụng tới.", "destructive.notice.unreadable": "Không thể đọc thư mục workspace như một Git worktree. Điều đó không ảnh hưởng gì: chỉ bản ghi trên bảng điều khiển bị xóa, thư mục không bao giờ bị đụng tới.", "destructive.purge.confirm": "Xóa lịch sử", "destructive.purge.message": "Hãy xác nhận các số liệu hiện tại trước khi xóa lịch sử phiên đã lưu.", "destructive.purge.title": "Xóa lịch sử workspace?", "destructive.remove.confirm": "Xóa bản ghi workspace", "destructive.remove.message": "Chỉ bản ghi của workspace trên bảng điều khiển bị xóa. Working tree, nhánh và cơ sở dữ liệu của workspace được giữ nguyên — bạn tự xóa nếu thực sự muốn bỏ chúng.", "destructive.remove.title": "Xóa bản ghi workspace?", "destructive.reset.confirm": "Đặt lại worktree", "destructive.reset.message": "Hãy xác nhận các số liệu hiện tại trước khi đặt lại worktree này.", "destructive.reset.survives": "Các tệp Git bỏ qua như node_modules và .env được giữ lại; các tệp chưa theo dõi sẽ bị xóa.", "destructive.reset.title": "Đặt lại worktree được quản lý?", "destructive.warning.no-remote": "Chưa cấu hình Git remote, nên không có bản sao lưu ở xa. Bạn vẫn có thể tiếp tục.", "features.archived": "đã lưu trữ", "features.live": "Phiên bản trực tiếp", "features.viewingArchived": "Xem tính năng đã lưu trữ \"{{slug}}\" — workspace tiếp tục chạy; đây là ảnh chụp nhanh chỉ đọc.", "git.filesHeading_one": "{{count}} tệp thay đổi", "git.filesHeading_other": "{{count}} tệp thay đổi", "git.filesMore_one": "… và {{count}} tệp nữa", "git.filesMore_other": "… và {{count}} tệp nữa", "git.noDelta": "mới", "git.uncommitted": "{{dirty}} đã sửa · {{untracked}} chưa theo dõi", "gitBar.branchCreate": "Tạo", "gitBar.branchCreateHint": "Tạo nhánh này mà không chuyển sang", "gitBar.branchDelete": "Xoá", "gitBar.branchDeleteHint": "Xoá nhánh đang chọn (git từ chối nếu còn commit chưa merge)", "gitBar.branchNewPlaceholder": "Tên nhánh mới…", "gitBar.fetch": "Fetch", "gitBar.fetchHint": "git fetch --all --prune", "gitBar.errNoRemote": "Không có remote để push hoặc pull. Hãy thêm remote, hoặc đặt upstream cho nhánh này, trong terminal.", "gitBar.inSync": "đã đồng bộ", "gitBar.newLane": "Tạo workspace mới", "gitBar.newLaneHeld": "Nhánh đã được checkout tại {{path}} — git chỉ cho một worktree trên mỗi nhánh", "gitBar.newLaneHint": "Mở Thêm workspace để tạo worktree anh em trên nhánh đang chọn", "gitBar.noCommits": "chưa có commit", "gitBar.noUpstream": "chưa push", "gitBar.publish": "Publish…", "gitBar.publishApply": "Publish", "gitBar.publishBranch": "Publish nhánh", "gitBar.publishBranchHint": "git push -u origin HEAD — nhánh này chưa có upstream", "gitBar.publishHint": "Thêm remote tên origin rồi push nhánh này lên đó (git remote add origin + git push -u origin HEAD)", "gitBar.publishUrl": "URL remote: https://host/owner/repo.git hoặc git@host:owner/repo.git", "gitBar.pull": "Pull", "gitBar.pullHint": "git pull --ff-only — nhánh đã rẽ nhánh thì báo lỗi chứ không merge", "gitBar.push": "Push", "gitBar.pushHint": "git push -u origin HEAD", "gitBar.switch": "Nhánh", "gitBar.switchApply": "Chuyển nhánh", "gitBar.switchCurrent": "hiện tại", "gitBar.switchDirty": "Hãy commit hoặc bỏ các thay đổi chưa commit trước", "gitBar.switchHint": "Đổi worktree này sang nhánh local khác", "gitBar.switchLabel": "Đổi nhánh…", "gitBar.unbornHint": "Hãy commit trước, rồi publish repo này lên remote.", "locks.held_one": "Đang giữ {{count}} khóa", "locks.held_other": "Đang giữ {{count}} khóa", "mode.repo": "Repo", "mode.repoHint": "Gắn thẳng thư mục này làm workspace, nguyên trạng — không worktree, không nhánh mới.", "mode.worktree": "Worktree", "mode.worktreeHint": "Tạo worktree git mới + nhánh mới từ repo nguồn.", "moreActions": "Thêm hành động", "pipelinePicker.label": "Mẫu pipeline", "pipelinePicker.stageMismatch": "Stage \"{{stage}}\" không khớp node nào trong \"{{pipeline}}\" — khai báo một trong: {{nodes}}", "preflightError": "Không thể tải trạng thái workspace hiện tại.", "preflightErrorWithMessage": "Không thể tải trạng thái workspace hiện tại: {{message}}", "proof.ticketReport": "Báo cáo nhiệm vụ", "renameLabel": "Đổi tên workspace này", "proxy.native": "Native ({{tool}})", "proxy.label": "AI Proxy", "runtime.down": "tắt", "runtime.healthy": "khoẻ", "runtime.partial": "một phần", "runtime.slot": "slot {{slot}}", "runtime.steppedAsideTitle": "Đã lùi khỏi {{expected}} vì cổng đó đang bận", "status.failed": "thất bại", "status.idle": "rảnh", "status.provisioning": "đang khởi tạo", "status.running": "đang chạy", "title": "Workspace", "worktrees.heading_one": "{{count}} worktree", "worktrees.heading_other": "{{count}} worktree", "changes.undoHunk": "Hoàn tác đoạn này", "changes.undoHunkConfirm": "Bấm lần nữa để hoàn tác đoạn này — không thể khôi phục", "changes.undoHunkShort": "Hoàn tác", "changes.undoHunkShortConfirm": "Xác nhận", "changes.edit": "Sửa", "changes.save": "Lưu", "changes.revertBlock": "Hoàn tác", "changes.blockNotInDiff": "Thay đổi này không còn trong diff của git; hãy làm mới rồi thử lại", "changes.cancelEdit": "Huỷ", "changes.preview": "Xem trước", "changes.raw": "Mã nguồn", "changes.editorLabel": "Sửa {{path}}", "changes.prevHunk": "Thay đổi trước", "changes.nextHunk": "Thay đổi sau", "changes.hunkOf": "{{n}} / {{total}}", "changes.noEditBinary": "File nhị phân — không sửa được ở đây", "changes.imageFailed": "Không hiển thị được ảnh này (đã bị xoá, hoặc lớn hơn 20 MB).", "changes.noEditTooBig": "File quá lớn để sửa ở đây (trên 1 MB)", "changes.noEdit": "Không sửa được ở đây", "gitBar.loginTitle": "Git cần đăng nhập {{host}}", "gitBar.loginRejected": "Máy chủ từ chối (rejected) tài khoản hoặc token này.", "gitBar.loginUser": "Tên đăng nhập", "gitBar.loginPassword": "Mật khẩu hoặc access token", "gitBar.loginRemember": "Ghi nhớ cho mọi người dùng AgentHub", "gitBar.loginTokenHint": "Trên Gitea: Settings → Applications → Generate token, cấp quyền đọc/ghi repository.", "gitBar.loginInsecure": "Dashboard đang chạy http thường - token sẽ đi qua mạng không mã hoá.", "gitBar.loginSubmit": "Đăng nhập và thử lại", "gitBar.loginCancel": "Huỷ", "gitBar.merge": "Merge vào nhánh hiện tại", "gitBar.mergeHint": "Merge nhánh đang chọn vào nhánh workspace này đang đứng", "gitBar.mergeUpstream": "Merge {{upstream}}", "gitBar.mergeUpstreamHint": "Nhánh đã lệch với upstream: merge vào (conflict được giải quyết trong Changes panel)", "gitBar.mergeConfirm": "Merge {{branch}} vào {{current}}? File trong workspace sẽ thay đổi ngay - nếu có agent đang làm việc trong workspace này, hãy để nó xong trước.", "gitBar.pushConfirm": "Push {{count}} commit từ {{branch}} lên {{upstream}}? Ai có quyền vào remote đều thấy được, và không thể rút lại push từ đây.", "gitBar.publishBranchConfirm": "Publish nhánh {{branch}} lên remote? Ai có quyền vào remote đều thấy được.", "gitBar.publishConfirm": "Thêm {{url}} làm remote của repo và push {{branch}} lên đó? Ai có quyền vào remote đó đều thấy được code.", "gitBar.branchDeleteConfirm": "Xoá nhánh local {{branch}}? Git sẽ từ chối nếu nhánh còn commit chưa được merge vào đâu.", "gitBar.mergeConflicts": "Merge dừng ở {{count}} file conflict - hãy giải quyết trong danh sách bên dưới.", "gitBar.merging": "Đang {{op}}: hãy hoàn tất hoặc huỷ trước", "changes.conflictsGroup": "Conflict khi merge", "changes.mergeBanner": "Đang {{op}} - còn {{count}} file conflict", "changes.mergeReady": "Đang {{op}} - đã giải quyết hết conflict", "changes.mergeCommit": "Hoàn tất {{op}}", "changes.mergeAbort": "Huỷ {{op}}", "changes.mergeAbortConfirm": "Bấm lần nữa để huỷ {{op}}", "changes.discardShortConfirm": "Xoá?", "changes.amend": "Amend", "changes.amendHint": "Gộp các file đã tick vào commit cuối (chỉ khi chưa push). Không tick file nào thì chỉ sửa message; để trống message để giữ message cũ.", "changes.amendPlaceholder": "Message mới (trống = giữ message cũ)", "changes.historyOf": "Lịch sử của nhánh", "changes.cherryPick": "Cherry-pick vào {{branch}}", "changes.revertCommit": "Revert commit này", "changes.undoCommit": "Hoàn tác commit (giữ thay đổi)", "changes.undoCommitTitle": "Hoàn tác commit cuối?", "changes.undoCommitBody": "{{short}} \"{{subject}}\" sẽ bị gỡ khỏi nhánh. Thay đổi của nó vẫn được giữ ở trạng thái staged để sửa và commit lại.", "changes.undoCommitConfirm": "Hoàn tác commit", "changes.revertConfirm": "Thêm một commit trên {{branch}} để đảo ngược {{short}} \"{{subject}}\"? File trong workspace sẽ thay đổi ngay.", "changes.cherryPickConfirm": "Áp {{short}} \"{{subject}}\" từ {{from}} vào {{branch}} thành một commit mới? File trong workspace sẽ thay đổi ngay.", "changes.amendTitle": "Amend commit cuối?", "changes.amendConfirm": "\"{{subject}}\" sẽ được thay bằng một commit mới gộp cả phần đã stage. Server sẽ từ chối nếu commit đã được push.", "changes.opConflicts": "{{op}} dừng lại ở {{count}} file conflict — hãy giải quyết trong Changes", "changes.opDone": "Đã {{op}} xong", "changes.takeOurs": "Giữ bản của mình", "changes.takeTheirs": "Lấy bản kia", "changes.markResolved": "Đánh dấu đã xong (sau khi đã sửa hết dấu conflict)", "conflict.left": "Còn {{left}}/{{total}} khối conflict", "conflict.prev": "Khối trước", "conflict.next": "Khối sau", "conflict.allOurs": "Giữ hết của mình", "conflict.allTheirs": "Lấy hết bản kia", "conflict.editByHand": "Sửa tay", "conflict.unbalanced": "Dấu conflict không khớp nhau (đã sửa tay?) - hãy dùng Sửa tay.", "conflict.unusable": "Không hiển thị được file này ở đây (nhị phân hoặc quá lớn) - hãy dùng Giữ hết của mình / Lấy hết bản kia, hoặc terminal.", "conflict.keepOurs": "Giữ của mình", "conflict.takeTheirs": "Lấy bản kia", "conflict.keepBoth": "Giữ cả hai", "conflict.chose.ours": "Đã giữ của mình", "conflict.chose.theirs": "Đã lấy bản kia", "conflict.chose.both": "Đã giữ cả hai", "conflict.undo": "Hoàn tác", "conflict.ours": "Của mình ({{label}})", "conflict.theirs": "Bản kia ({{label}})", "conflict.reset": "Huỷ", "conflict.save": "Lưu và đánh dấu đã xong", "changes.takeOursHint": "Giữ bản của mình cho cả file", "changes.takeTheirsHint": "Lấy bản kia cho cả file", "row.actions": "Thao tác workspace", "row.hint": "Nhấp đúp để đổi tên · kéo hoặc Alt+↑/↓ để sắp xếp · chuột phải để xem thao tác", "menu.rename": "Đổi tên", "menu.newHere": "Workspace mới tại đây…", "menu.copyPath": "Sao chép đường dẫn", "menu.reset": "Đặt lại worktree…", "menu.remove": "Xóa workspace…", "panel.changes": "Thay đổi", "panel.analyst": "Analyst", "replay.placeholder": "Nhắn để tiếp tục session này…", "replay.hint": "Gửi tin sẽ resume session trong một pane trống.", "replay.send": "Gửi", "sessions.resume": "Tiếp tục", "resume.openPane": "Mở pane", "resume.hint": "Tiếp tục session này trong một pane của workspace — nạp lại toàn bộ transcript vào context", "resume.title": "Tiếp tục session này?", "resume.body": "Tiếp tục sẽ nạp lại toàn bộ transcript của session vào context của model, nên các lượt sau phải trả lại chi phí cho tất cả phần đó. Session mở ở pane trống đầu tiên của {{workspace}}. Nếu chỉ cần đọc, hãy ở lại trang này.", "resume.confirm": "Tiếp tục session", "resume.fork": "Fork", "resume.forkHint": "Tiếp tục từ đây thành một session MỚI — session gốc giữ nguyên", "resume.forkTitle": "Fork session này?", "resume.forkBody": "Fork nạp lại toàn bộ transcript vào một session MỚI (id riêng), nên các lượt sau phải trả lại chi phí cho tất cả phần đó; session gốc không bị đụng tới. Session mở ở pane trống đầu tiên của {{workspace}}.", "resume.forkConfirm": "Fork session", "tree.title": "Không gian làm việc", "tree.search": "Tìm workspace và session", "tree.toolFilter": "Lọc theo tool", "tree.allTools": "Mọi tool", "tree.ownerYou": "{{name}} (bạn)", "tree.noOwner": "Không có chủ", "tree.ownerToggle": "Hiện hoặc ẩn workspace của {{name}}", "tree.readOnly": "Workspace của {{name}} — chỉ xem. Bấm một phiên để mở trang phân tích.", "tree.newSession": "Session mới", "tree.noSessions": "Chưa có session", "tree.transcriptHint": "Không còn pane — mở hội thoại; gửi tin nhắn sẽ tiếp tục (resume) session", "tree.splitHint": "Pane đang chạy — Ctrl/Cmd+click để mở ở split cạnh pane đang focus", "tree.renameSession": "Đổi tên session", "tree.archiveSession": "Lưu trữ — ẩn khỏi workspace này (không xoá gì)", "tree.worktreeSession": "Trong worktree riêng: .claude/worktrees/{{name}}", "tree.archiveWorktreeTitle": "Lưu trữ và gỡ worktree của session?", "tree.archiveWorktreeBody": "Giống Claude Desktop, lưu trữ sẽ gỡ worktree .claude/worktrees/{{name}} của session cùng branch của nó. Git sẽ từ chối nếu còn thay đổi chưa commit, và branch có commit chưa merge vào đâu sẽ được giữ lại — không mất gì chưa lưu.", "tree.archiveWorktreeConfirm": "Lưu trữ và gỡ", "tree.archived_one": "{{count}} session đã lưu trữ", "tree.archived_other": "{{count}} session đã lưu trữ", "tree.unarchive": "Bỏ lưu trữ", "home.breadcrumb": "Không gian làm việc", "home.ai": "AI", "home.openTerminal": "Mở terminal", "home.repoRoot": "Thư mục gốc của repo", "home.mainBranch": "Branch của worktree chính", "home.worktreeCount_one": "{{count}} worktree", "home.worktreeCount_other": "{{count}} worktree", "home.placeholder": "Tôi có thể giúp gì cho bạn hôm nay?", "home.start": "Bắt đầu", "home.permissionAuto": "Tự động", "home.permissionAcceptEdits": "Tự nhận sửa file", "home.permissionDefault": "Hỏi trước", "home.permissionPlan": "Lập kế hoạch", "home.permissionBypass": "Bỏ qua quyền", "home.local": "Thư mục chính", "home.localHint": "Làm việc ngay trong thư mục của workspace", "home.worktree": "Worktree mới", "home.worktreeHint": "Chạy session này trong worktree git riêng — /.claude/worktrees/, branch riêng, do Claude Code tạo và dọn", "home.allBusy": "Workspace này đã dùng hết 10 session — hãy dừng một session trước khi mở session mới.", "home.recents": "Gần đây", "home.noRecents": "Chưa có session nào — bắt đầu ở ô phía trên.", "home.instructions": "Hướng dẫn", "home.instructionsEmpty": "Thêm hướng dẫn để điều chỉnh cách agent làm việc trong workspace này. Hướng dẫn được nối vào system prompt của mỗi session mới.", "home.edit": "Sửa hướng dẫn", "home.save": "Lưu", "home.cancel": "Huỷ", "home.memory": "Bộ nhớ", "home.viewMemory": "Xem bộ nhớ", "home.memoryCount_one": "{{count}} file agent đọc", "home.memoryCount_other": "{{count}} file agent đọc", "home.memoryEmpty": "Bộ nhớ hiện ở đây khi thư mục có CLAUDE.md hoặc AGENTS.md, hoặc Claude lưu bộ nhớ cho nó.", "home.context": "Ngữ cảnh", "home.contextEmpty": "Thêm PDF, tài liệu hoặc văn bản để tham chiếu trong workspace này.", "home.contextSnapshot": "Mỗi file được sao chép lúc thêm — sửa file gốc sau đó sẽ không cập nhật theo. Hãy xóa rồi thêm lại, hoặc thêm thư mục chứa nó ở mục Thư mục để luôn đọc bản mới nhất.", "home.addFile": "Thêm file", "home.folder": "Thư mục", "home.ownFolder": "Thư mục của workspace", "home.addFolder": "Thêm thư mục", "home.folderPath": "Đường dẫn tuyệt đối của thư mục", "home.add": "Thêm", "home.suggested": "Worktree chưa theo dõi", "home.remove": "Gỡ", "home.missing": "không còn", "home.unsupported": "{{tool}} không nhận được hướng dẫn, file ngữ cảnh hay thư mục bổ sung: chúng vẫn được giữ, nhưng session của nó khởi động mà không có chúng.", "home.close": "Đóng", "tabs.label": "Các tab phiên", "tabs.new": "Tab mới", "tabs.newTerminal": "Terminal mới", "tabs.terminal": "Terminal", "tabs.close": "Đóng tab (dừng phiên của nó)", "tabs.full": "Đã dùng hết 10 session — hãy dừng bớt một session", "tabs.agentSettings": "Cài đặt agent…", "tabs.splitHint": "Ctrl/Cmd+click: mở ở split · kéo thả vào một pane để đặt vị trí", "panes.drag": "Kéo để di chuyển pane — thả vào cạnh pane khác để tách ở đó, vào giữa để đổi chỗ", "panes.pick": "Hiện session khác trong pane này", "panes.empty": "Không có session", "panes.split.right": "Tách sang phải", "panes.split.bottom": "Tách xuống dưới", "panes.full": "Một tab chứa tối đa 4 pane", "panes.newTerminal": "Terminal mới", "panes.showChat": "Xem dạng chat", "panes.showTerminal": "Xem dạng terminal", "panes.close": "Tách ra tab riêng (session vẫn chạy)", "panes.resize": "Đổi kích thước pane", "tabs.home": "Trang chủ workspace", "sessionMenu.open": "Mở", "sessionMenu.openSplit": "Mở ở pane chia đôi", "sessionMenu.details": "Chi tiết session", "sessionMenu.copyId": "Sao chép ID session", "sessionMenu.archive": "Lưu trữ", "panes.show": "Hiện {{name}} ở đây", "panes.splitNew.right": "Chia sang phải với terminal mới", "panes.splitNew.bottom": "Chia xuống dưới với terminal mới", "panes.closeShort": "Tách ra tab riêng", "panes.stop": "Dừng phiên", "changes.copyPath": "Sao chép đường dẫn tương đối", "changes.viewCommit": "Xem commit", "changes.copySha": "Sao chép SHA của commit", "changes.copySubject": "Sao chép commit message", "replay.live": "Session này đang mở trong một tab — hãy tiếp tục ở đó.", "replay.noResume": "{{tool}} không thể tiếp tục (resume) một session theo id, nên hội thoại này chỉ để đọc.", "replay.newSession": "Bắt đầu session mới", "tabs.state.awaiting": "Đang chờ bạn", "tabs.state.error": "Lỗi", "tabs.state.running": "Đang chạy", "tabs.renameHint": "Nhấp đúp để đổi tên", "tabs.stopTitle": "Dừng “{{name}}”?", "tabs.stopGroupTitle": "Dừng {{count}} session trong tab này?", "tabs.stopBody": "Đóng tab sẽ dừng phiên của nó, kể cả khi đang chạy dở. Bạn có thể tiếp tục (resume) sau từ mục Gần đây.", "tabs.stopConfirm": "Dừng phiên", "changes.loadMore": "Tải thêm commit", "changes.commentPasted": "Đã dán vào tab {{tab}} — nhấn Enter ở đó để gửi", "changes.splitter": "Đổi độ rộng khung thay đổi", "tree.archiveLiveTitle": "Lưu trữ một session đang chạy?", "tree.archiveLiveBody": "Tab của nó vẫn chạy; lưu trữ chỉ ẩn nó khỏi danh sách này. Bỏ lưu trữ trong mục đã lưu trữ.", "tree.state.awaiting": "đang chờ bạn", "tree.state.error": "lỗi", "tree.state.live": "đang chạy", "tree.state.idle": "đã kết thúc", "tree.showMore_one": "Hiện thêm {{count}}", "tree.showMore_other": "Hiện thêm {{count}}", "tree.seeAll": "Xem tất cả (thêm {{count}})", "tree.showLess": "Thu gọn", "home.contextPanel": "Ngữ cảnh workspace", "row.state.needsYou": "cần bạn", "row.state.error": "lỗi", "row.state.running": "đang chạy", "row.state.active": "đang hoạt động", "row.state.idle": "nghỉ", "gitBar.done.fetch": "Đã fetch", "gitBar.done.pull": "Đã pull", "gitBar.done.push": "Đã push", "gitBar.done.publish": "Đã publish", "runtime.listening": "đang lắng nghe", "runtime.notListening": "không lắng nghe", "replay.pasted": "Session đó đã mở trong một tab — tin nhắn đã được dán vào đó; nhấn Enter để gửi.", "replay.notPasted": "Session đó đang mở trong một tab nhưng không dán được tin nhắn vào đó: {{text}}", "changes.changesGroup": "Thay đổi", "changes.unversionedGroup": "File chưa theo dõi", "changes.commitTicked": "Commit ({{count}})", "changes.commitAndPush": "Commit và Push", "changes.amendAndPush": "Amend và Push", "changes.pushFailed": "Đã commit, nhưng push thất bại: {{error}}", "changes.tickFile": "Đưa {{path}} vào commit", "changes.tickFolder": "Tick mọi file trong {{path}}", "changes.commitFile": "Commit file…", "changes.jumpToSource": "Mở mã nguồn", "changes.copyPatch": "Sao chép dạng patch", "changes.noPatch": "File này không có diff dạng văn bản để sao chép", "changes.addToVcs": "Thêm vào VCS", "changes.addToGitignore": "Thêm vào .gitignore", "changes.includeBlock": "Đưa thay đổi này vào commit", "changes.prevDiff": "Khác biệt trước (Shift+F7)", "changes.nextDiff": "Khác biệt tiếp theo (F7)", "changes.prevFile": "File trước", "changes.nextFile": "File tiếp theo", "changes.showHistory": "Xem lịch sử", "changes.historyOfFile": "Lịch sử của {{path}}", "changes.historyWholeBranch": "Cả nhánh", "changes.annotate": "Annotate", "changes.noBlame": "Không có gì để annotate: file này chưa có lịch sử commit", "changes.notCommitted": "Chưa commit" }