Files
AgentHub/client/src/i18n/locales/vi/gitRefs.json
T
nntrivi2001 2cc492bb88 feat(git): Branches & tags panel — rename, branch from any ref, upstream, tags
GET /git/refs lists local branches (upstream, ahead/behind, last commit,
merged, held by a worktree, protected), remote branches grouped by remote
and tags (target, annotated message/tagger/date). New writes in
server/lib/git-refs.js, dispatched from git-ops.js: branch-rename,
branch-upstream (set/unset), tag-create (light/annotated), tag-delete
(confirm), tag-push (one tag to origin, no --tags, no force), and
branch-create with a looked-up from + switch on a clean tree. Every ref is
looked up, never passed through; repo-wide writes are repo-root only
(ESUBDIR) and refused during any operation (EMERGING).

Client: git/BranchManager + TagManager dialog opened from the git bar's
tags icon, en+vi (gitRefs namespace), keyboard navigable.

# Conflicts:
#	CLAUDE.md
#	client/src/components/lanes/LaneGitBar.tsx
#	docs/API.md
#	server/__tests__/lanes-api.test.js
#	server/routes/lanes.js
2026-11-02 12:00:55 +07:00

77 lines
4.1 KiB
JSON

{
"openPanel": "Nhánh và tag",
"openPanelHint": "Nhánh và tag: đổi tên, tạo nhánh từ commit hoặc tag bất kỳ, upstream, merge, xóa, tag",
"title": "Nhánh và tag",
"branches": "Nhánh",
"tags": "Tag",
"close": "Đóng",
"searchBranches": "Tìm nhánh",
"searchTags": "Tìm tag",
"loading": "Đang tải…",
"unavailable": "Thư mục này không phải là kho git.",
"local": "Trên máy",
"remote": "Remote · {{remote}}",
"noMatch": "Không có nhánh nào khớp.",
"truncated": "Chỉ hiện 1000 mục đầu của mỗi loại.",
"merging": "Đang có merge, cherry-pick hoặc revert dở: hãy hoàn tất hoặc hủy nó trước khi đổi nhánh hay tag.",
"current": "đang dùng",
"protected": "được bảo vệ",
"worktree": "worktree",
"gone": "upstream đã mất",
"ahead": "đi trước",
"behind": "đi sau",
"inSync": "đã đồng bộ",
"newFrom": "Tạo nhánh từ đây",
"newBranchName": "Tên nhánh mới",
"switchToIt": "Chuyển sang nhánh đó",
"switchDirty": "Hãy commit hoặc bỏ các thay đổi rồi mới chuyển nhánh được.",
"create": "Tạo",
"rename": "Đổi tên",
"renameHint": "Đổi tên nhánh này (thiết lập upstream đi theo)",
"renameTo": "Tên mới",
"setUpstream": "Đặt upstream",
"upstreamHint": "Theo dõi một nhánh remote: số commit đi trước/đi sau, pull và push sẽ dựa vào nó",
"pickUpstream": "Chọn nhánh remote",
"noRemoteBranches": "Chưa fetch nhánh remote nào",
"unsetUpstream": "Bỏ upstream",
"apply": "Áp dụng",
"merge": "Merge",
"mergeInto": "Merge vào {{current}}",
"mergeHint": "Merge nhánh này vào {{current}} (cần cây làm việc sạch)",
"mergeConfirm": "Merge {{branch}} vào {{current}}? Nếu có xung đột, bạn xử lý trong bảng Thay đổi hoặc hủy merge.",
"delete": "Xóa",
"deleteHint": "Xóa nhánh trên máy này (git branch -d)",
"deleteConfirm": "Xóa nhánh {{branch}} trên máy? Nhánh đã merge hết nên không mất commit nào.",
"deleteUnmerged": "Xóa nhánh {{branch}} trên máy? Nhánh chưa merge vào nhánh hiện tại, nên git sẽ từ chối trừ khi upstream của nó đã có đủ mọi commit.",
"why.current": "Bạn đang ở nhánh này nên không xóa được.",
"why.protected": "Nhánh được bảo vệ: không đổi tên hay xóa ở đây được.",
"why.worktree": "Đang được mở ở worktree khác: {{path}}",
"why.unmerged": "Chưa merge vào nhánh hiện tại: git sẽ không xóa trừ khi upstream của nó đã có đủ mọi commit.",
"errLogin": "Remote cần đăng nhập. Hãy bấm Fetch hoặc Push trên thanh git một lần để đăng nhập (tick Ghi nhớ), rồi thử lại.",
"errSubdir": "Nhánh và tag thuộc về cả kho: hãy làm việc này từ một workspace ở thư mục gốc của kho.",
"tagNew": "Tạo tag",
"tagName": "Tên tag, ví dụ v1.2.0",
"tagFrom": "Đặt trên (nhánh, tag hoặc mã commit) — để trống là HEAD",
"tagMessage": "Nội dung (không bắt buộc — có nội dung thì là tag có chú thích)",
"tagCreateLight": "Tạo tag",
"tagCreateAnnotated": "Tạo tag có chú thích",
"cancel": "Hủy",
"noTags": "Chưa có tag nào.",
"annotated": "có chú thích",
"tagPush": "Đẩy lên origin",
"tagPushHint": "Chỉ đẩy đúng tag này (không dùng --tags, không ghi đè)",
"tagPushConfirm": "Đẩy tag {{tag}} lên remote?",
"tagDelete": "Xóa tag",
"tagDeleteHint": "Chỉ xóa tag này trên máy",
"tagDeleteConfirm": "Xóa tag {{tag}} trên máy? Không hoàn tác được ở đây; bản đã đẩy lên remote vẫn còn.",
"done.create": "Đã tạo nhánh {{branch}}",
"done.rename": "Đã đổi tên thành {{branch}}",
"done.setUpstream": "Giờ đang theo dõi {{upstream}}",
"done.unsetUpstream": "Đã bỏ upstream",
"done.merge": "Đã merge {{branch}}",
"done.delete": "Đã xóa nhánh {{branch}}",
"done.tagCreate": "Đã tạo tag {{tag}}",
"done.tagPush": "Đã đẩy tag {{tag}}",
"done.tagDelete": "Đã xóa tag {{tag}}"
}