feat(i18n): 覆盖支持扩展到 19 语言(de/fr/pt/ko/ar/hi/id/tr/vi/th/ru/it/nl/sv/pl/zh-HK/zh-TW/zh-MO)
This commit is contained in:
@@ -0,0 +1,345 @@
|
||||
/**
|
||||
* The vi (Vietnamese) dictionary for the betterSidebar namespace.
|
||||
*
|
||||
* Mirrors the key set of `zh` in `locales.ts`. The sidebar's `t()`
|
||||
* consults this dict when `attachBetterLocale(store)` has been called
|
||||
* with an active better-locale store whose `active` is `'vi'`; absent
|
||||
* that, the existing zh/en chain runs unchanged.
|
||||
*
|
||||
* Translation conventions:
|
||||
* - Technical terms stay in English where appropriate (Git, SSH, HTTP, URL,
|
||||
* Markdown, PDF, VS Code, API Key, Base URL, token, etc.).
|
||||
* - Placeholders keep {name} verbatim (interpolation runs after lookup).
|
||||
* - Formal Vietnamese appropriate for software UI.
|
||||
* - Terminology is kept consistent with the DSH core vi dictionary.
|
||||
*/
|
||||
|
||||
/** The vi dictionary (key-set-equal to zh, enforced by the type annotation in locales.ts). */
|
||||
export const vi: Record<string, string> = {
|
||||
files: 'Tệp',
|
||||
explorer: 'Trình khám phá',
|
||||
git: 'Quản lý mã nguồn',
|
||||
terminal: 'Terminal',
|
||||
editor: 'Trình soạn thảo',
|
||||
editorExplorer: 'Cách mở tệp',
|
||||
editorExplorerDesc: 'Kiểm soát cách mở tệp',
|
||||
editorExplorerMerged: 'Gộp',
|
||||
editorExplorerMergedDesc: 'Tệp chuyển tại chỗ trong cùng cửa sổ; cửa sổ mới mặc định mở cây tệp',
|
||||
editorExplorerSplit: 'Riêng biệt',
|
||||
editorExplorerSplitDesc: 'Cửa sổ không đường dẫn là trình khám phá (chỉ cây tệp); mỗi tệp mở cửa sổ riêng (có cây tệp, mặc định thu gọn)',
|
||||
editorTreeToggle: 'Panel cây tệp',
|
||||
editorPathPlaceholder: 'Nhập đường dẫn tệp (tương đối thư mục phiên hoặc tuyệt đối), Enter để mở',
|
||||
editorSearchPlaceholder: 'Tìm theo tên tệp…',
|
||||
editorSearchNoResults: 'Không có tệp phù hợp',
|
||||
editorSearchTruncated: 'Quá nhiều kết quả, chỉ hiển thị một phần',
|
||||
editorEmptyHint: 'Chọn tệp từ cây tệp bên phải hoặc ô nhập đường dẫn phía trên để xem trước',
|
||||
openFileNewTab: 'Mở trong Tab mới',
|
||||
openFileSide: 'Mở ở bên cạnh',
|
||||
openWithMenu: 'Mở bằng',
|
||||
openWithSshSuffix: ' (SSH)',
|
||||
pinOpenWith: 'Ghim vào menu',
|
||||
unpinOpenWith: 'Bỏ ghim',
|
||||
openWithExplorer: 'Trình quản lý tệp',
|
||||
openWithVscode: 'VS Code',
|
||||
openWithCursor: 'Cursor',
|
||||
openWithZed: 'Zed',
|
||||
openWithSettingsSshTitle: 'Máy chủ từ xa SSH',
|
||||
openWithSettingsSshDesc: 'Để trống cho không gian làm việc cục bộ; nhập user@host hoặc alias SSH, các trình mở họ VSCode sẽ chuyển sang giao thức vscode-remote/ssh-remote, Trình quản lý tệp / Zed / trình soạn thảo tùy chỉnh không phải VSCode sẽ ẩn khỏi menu',
|
||||
openWithSettingsSshPlaceholder: 'user@host hoặc alias SSH',
|
||||
openWithSettingsCustomTitle: 'Trình soạn thảo tùy chỉnh',
|
||||
openWithSettingsCustomDesc: 'Tên + mẫu URL (placeholder {path}) + cờ họ VSCode; ở chế độ SSH chỉ họ VSCode mở được đường dẫn từ xa',
|
||||
openWithSettingsAdd: 'Thêm',
|
||||
openWithSettingsName: 'Tên',
|
||||
openWithSettingsTemplate: 'vd: cursor://file/{path}',
|
||||
openWithSettingsFamily: 'Họ VSCode',
|
||||
openWithSettingsFamilyDesc: 'Trình soạn thảo này dùng giao thức URL của VSCode (hỗ trợ mở từ xa qua SSH)',
|
||||
openWithSettingsRemove: 'Xóa',
|
||||
openWithSettingsInvalidHint: 'Trình soạn thảo thiếu tên hoặc mẫu (cần chứa {path} và bắt đầu bằng scheme://) sẽ không xuất hiện trong menu',
|
||||
newTab: 'Tab mới',
|
||||
openExplorer: 'Trình khám phá',
|
||||
brokenSymlink: 'Symlink hỏng',
|
||||
openGit: 'Panel Git',
|
||||
newTerminal: 'Terminal mới',
|
||||
terminalLimit: 'Đã đạt giới hạn terminal (3)',
|
||||
close: 'Đóng',
|
||||
closeOtherTabs: 'Đóng các tab khác',
|
||||
closeLeftTabs: 'Đóng tab bên trái',
|
||||
closeRightTabs: 'Đóng tab bên phải',
|
||||
collapse: 'Thu gọn thanh bên',
|
||||
expand: 'Mở rộng thanh bên',
|
||||
collapseBottomPanel: 'Thu gọn panel dưới',
|
||||
expandBottomPanel: 'Mở rộng panel dưới',
|
||||
terminalError: 'Kết nối terminal thất bại',
|
||||
terminalConnectFailed: 'Terminal kết nối thất bại nhiều lần',
|
||||
terminalRetry: 'Thử lại',
|
||||
terminalDepsFailed: 'Dependency terminal node-pty tải thất bại',
|
||||
terminalDepsHint: 'Chạy lệnh sau trong terminal hoặc cmd trên máy DSH để sửa, rồi nhấn thử lại (node-pty đồng bộ phiên bản với lõi DSH):',
|
||||
terminalDepsProfile: ' (phát hiện profile: {profile})',
|
||||
preview: 'Xem trước',
|
||||
edit: 'Chỉnh sửa',
|
||||
mermaidError: 'Render Mermaid thất bại',
|
||||
mermaidZoomIn: 'Phóng to',
|
||||
mermaidZoomOut: 'Thu nhỏ',
|
||||
mermaidZoomReset: 'Đặt lại',
|
||||
mermaidZoomHint: 'Cuộn để zoom · kéo để di chuyển · Esc để đóng',
|
||||
refresh: 'Làm mới',
|
||||
save: 'Lưu',
|
||||
saved: 'Đã lưu',
|
||||
unsaved: 'Chưa lưu',
|
||||
saveFailed: 'Lưu thất bại',
|
||||
truncation: 'Tệp quá lớn, chỉ hiển thị 512KB đầu',
|
||||
binary: 'Tệp nhị phân, không xem trước được',
|
||||
loading: 'Đang tải…',
|
||||
error: 'Tải thất bại',
|
||||
retry: 'Thử lại',
|
||||
splitLeft: 'Chia bên trái',
|
||||
splitRight: 'Chia bên phải',
|
||||
splitUp: 'Chia lên trên',
|
||||
splitDown: 'Chia xuống dưới',
|
||||
notRepo: 'Thư mục hiện tại không phải repo git',
|
||||
noChanges: 'Không có thay đổi',
|
||||
stage: 'Stage',
|
||||
unstage: 'Unstage',
|
||||
stageAll: 'Stage tất cả',
|
||||
unstageAll: 'Unstage tất cả',
|
||||
commitPlaceholder: 'Thông điệp commit (Ctrl+Enter)',
|
||||
commit: 'Commit',
|
||||
commitError: 'Commit thất bại',
|
||||
branch: 'Branch',
|
||||
checkoutError: 'Chuyển branch thất bại',
|
||||
history: 'Lịch sử',
|
||||
changes: 'Thay đổi',
|
||||
staged: 'Đã stage',
|
||||
unstaged: 'Chưa stage',
|
||||
cancel: 'Hủy',
|
||||
diffEmpty: 'Không có khác biệt văn bản',
|
||||
diffLoadError: 'Tải diff thất bại',
|
||||
diffBinary: 'Nhị phân',
|
||||
diffAdded: 'Thêm',
|
||||
diffDeleted: 'Xóa',
|
||||
diffRenamed: 'Đổi tên',
|
||||
diffExpand: 'Mở rộng {count} dòng còn lại',
|
||||
diffCollapse: 'Thu gọn',
|
||||
discard: 'Bỏ thay đổi',
|
||||
discardTitle: 'Bỏ thay đổi',
|
||||
discardDesc: 'Sẽ hủy các thay đổi worktree của «{path}» (không thể khôi phục).',
|
||||
viewCommitDiff: 'Xem diff commit',
|
||||
copyShortHash: 'Sao chép hash ngắn',
|
||||
copyFullHash: 'Sao chép hash đầy đủ',
|
||||
copySubject: 'Sao chép thông điệp commit',
|
||||
revertCommit: 'Revert commit',
|
||||
revertTitle: 'Revert commit',
|
||||
revertDesc: 'Sẽ tạo commit mới trên branch hiện tại đảo ngược «{subject}».',
|
||||
cherryPickCommit: 'Cherry-pick commit',
|
||||
cherryPickTitle: 'Cherry-pick commit',
|
||||
cherryPickDesc: 'Áp dụng các thay đổi của «{subject}» lên branch hiện tại.',
|
||||
timeJustNow: 'vừa xong',
|
||||
timeMinutesAgo: '{n} phút trước',
|
||||
timeHoursAgo: '{n} giờ trước',
|
||||
timeYesterday: 'hôm qua',
|
||||
loadMore: 'Tải thêm',
|
||||
historyLoadError: 'Tải thêm lịch sử thất bại',
|
||||
produced: 'Đã tạo',
|
||||
producedOpen: 'Mở trong thanh bên',
|
||||
disconnected: 'Terminal mất kết nối, đang kết nối lại…',
|
||||
exited: 'Tiến trình terminal đã thoát',
|
||||
noSession: 'Chọn một phiên để dùng thanh bên',
|
||||
pluginNotLoaded: 'Plugin chưa tải, tab tạm không khả dụng:',
|
||||
hiddenFiles: 'Tệp ẩn',
|
||||
parent: 'Thư mục cha',
|
||||
copied: 'Đã sao chép',
|
||||
copy: 'Sao chép',
|
||||
newFile: 'Tệp mới',
|
||||
openEditor: 'Mở trình soạn thảo',
|
||||
gitDetail: 'Xem chi tiết thay đổi',
|
||||
referenceFile: '@tệp',
|
||||
addToConversation: 'Thêm vào cuộc trò chuyện',
|
||||
copyRelative: 'Sao chép đường dẫn tương đối',
|
||||
copyAbsolute: 'Sao chép đường dẫn tuyệt đối',
|
||||
download: 'Tải xuống',
|
||||
uploadFiles: 'Tải tệp lên',
|
||||
uploadFolder: 'Tải thư mục lên',
|
||||
uploadHere: 'Tải lên đây',
|
||||
uploadDropHint: 'Kéo tệp/thư mục vào đây để tải lên',
|
||||
uploadDropChat: 'Kéo vào khu vực chat: thêm hình ảnh vào cuộc trò chuyện',
|
||||
uploadTo: 'Tải lên {dir}',
|
||||
uploadingTo: 'Đang tải lên {dir}…',
|
||||
uploadProgress: 'Đang tải lên {done}/{total}: {name}',
|
||||
uploadDone: 'Đã tải lên {count} tệp',
|
||||
uploadFailed: 'Tải lên thất bại: {error}',
|
||||
uploadFailedUnknown: 'Lỗi không xác định',
|
||||
uploadTooLarge: 'Tệp quá lớn, vượt giới hạn tải lên',
|
||||
uploadCancelled: 'Đã hủy tải lên',
|
||||
settingsNav: 'Thẻ bên',
|
||||
settingsIntro: 'Quản lý nội dung hiển thị và hành vi mặc định của thẻ bên',
|
||||
settingsPopupDesc: 'Cấu hình tùy chọn cho «{feature}»',
|
||||
settingsDone: 'Xong',
|
||||
settingsOpenTitle: 'Mở mặc định cho phiên mới',
|
||||
settingsOpenDesc: 'Tự động mở rộng thẻ bên cho phiên mới; phiên đã có giữ nguyên bố cục',
|
||||
settingsWidthTitle: 'Tỷ lệ chiều rộng mặc định',
|
||||
settingsWidthDesc: 'Tỷ lệ phần trăm chiều rộng cửa sổ mà thẻ bên chiếm cho phiên mới (20–60)',
|
||||
settingsWidthSuffix: '%',
|
||||
settingsOpenPathTitle: 'Mở tệp chat trong thanh bên',
|
||||
settingsOpenPathDesc: 'Khi nhấp link tệp trong chat (dòng công cụ, danh sách sản phẩm, nhắc tệp), mở trong trình soạn thảo thanh bên thay vì ứng dụng mặc định hệ thống',
|
||||
settingsTitleBarTitle: 'Chế độ tương thích thanh tiêu đề',
|
||||
settingsTitleBarDesc: 'Chọn phương án tương thích thanh tiêu đề: tự động phát hiện (mặc định, bảo thủ) / Web DSH chính thức / shell desktop đã biết / tùy chỉnh (khoảng dịch chuyển + CSS tùy chỉnh)',
|
||||
settingsTitleBarStripTitle: 'Khoảng dịch chuyển',
|
||||
settingsTitleBarStripDesc: 'Chiều cao dải thanh tiêu đề: số pixel dịch xuống của nút và nội dung thanh bên (0–120, mặc định 40; áp dụng trong chế độ tùy chỉnh)',
|
||||
settingsSchemeAutoTitle: 'Tự động phát hiện',
|
||||
settingsSchemeAutoDesc: 'Bảo thủ: chỉ nhường chỗ theo chiều cao thanh tiêu đề thật khi API Window Controls Overlay chuẩn khả dụng; môi trường web thuần không sửa gì',
|
||||
settingsSchemeWebTitle: 'Web DSH chính thức',
|
||||
settingsSchemeWebDesc: 'Khai báo tường minh chạy trên web chính thức: không điều chỉnh gì cả (kể cả hình học WCO chuẩn)',
|
||||
settingsSchemeCustomTitle: 'Tùy chỉnh',
|
||||
settingsSchemeCustomDesc: 'Toàn quyền kiểm soát: chèn CSS tùy chỉnh (có thể ghi đè style built-in), và chỉ định khoảng dịch chuyển thanh tiêu đề',
|
||||
settingsSchemeDetectedSuffix: 'đã phát hiện',
|
||||
settingsCustomCssTitle: 'CSS tùy chỉnh',
|
||||
settingsCustomCssDesc: 'Style追加 vào cuối trang (cùng ưu tiên thì viết sau thắng; ghi đè biến inline JS cần !important)',
|
||||
settingsCustomCssPlaceholder: '/* vd: dành sẵn 36px cho shell tự vẽ thanh tiêu đề */\nhtml[data-dsh-title-bar-height="36"] {\n --dsh-title-bar-strip: 36px !important;\n}',
|
||||
settingsSaveFailed: 'Lưu thất bại',
|
||||
settingsConflict: 'Cài đặt đã bị sửa bởi cửa sổ khác, vui lòng thử lại',
|
||||
binaryNoPreview: 'Loại tệp này không hỗ trợ xem trước',
|
||||
downloadToView: 'Tải xuống để xem',
|
||||
settingsSubagentTitle: 'Tự động mở trang Quản lý tác vụ khi phát hiện tác nhân con',
|
||||
settingsSubagentDesc: 'Khi phiên hiện tại tạo tác nhân con mới, tự động mở rộng thanh bên và mở trang Quản lý tác vụ; tắt thì phải mở thủ công',
|
||||
settingsJobsTitle: 'Tự động mở trang Tác vụ nền khi có tác vụ nền mới',
|
||||
settingsJobsDesc: 'Khi phiên hiện tại có tác vụ nền mới, tự động mở rộng thanh bên và mở trang Tác vụ nền (mỗi tác vụ mới đều kích hoạt); tắt thì phải mở thủ công',
|
||||
settingsToolsTitle: 'Tiêm công cụ terminal cho mô hình',
|
||||
settingsToolsDesc: 'Khi bật, mô hình có thể tạo và điều khiển terminal thanh bên qua 8 công cụ terminal_* (mặc định tắt)',
|
||||
settingsBottomTerminalTitle: 'Tự động mở terminal khi panel dưới mở rộng lần đầu',
|
||||
settingsBottomTerminalDesc: 'Khi panel dưới được mở rộng lần đầu trong phiên, thử mở một tab terminal mới ở panel dưới (giới hạn terminal vẫn áp dụng; mặc định bật)',
|
||||
settingsFontFamilyTitle: 'Font terminal',
|
||||
settingsFontFamilyDesc: 'Font terminal tùy chỉnh (CSS font-family, vd: "JetBrains Mono", monospace; để trống theo font mono của theme)',
|
||||
settingsFontFamilyPlaceholder: '"JetBrains Mono", monospace',
|
||||
settingsFontSizeTitle: 'Cỡ chữ terminal',
|
||||
settingsFontSizeDesc: 'Cỡ chữ terminal (9–32, mặc định 13)',
|
||||
settingsFontSizeSuffix: 'px',
|
||||
settingsShellTitle: 'Đường dẫn shell',
|
||||
settingsShellDesc: 'Shell khởi động cho terminal UI và mô hình (đường dẫn tuyệt đối hoặc tên thực thi). Để trống sẽ phân tích theo thứ tự: yaml config.shell → $SHELL / login shell / powershell.exe trên Windows. Áp dụng cho terminal mở sau đó',
|
||||
settingsShellPlaceholder: 'vd: /bin/zsh (để trống = tự động)',
|
||||
settingsShellArgsTitle: 'Tham số shell',
|
||||
settingsShellArgsDesc: 'Tham số shell tường minh, phân tách bằng dấu cách; khi không trống sẽ thay thế hoàn toàn mặc định (đồng bộ với contract shellArgs yaml)',
|
||||
settingsShellArgsPlaceholder: 'vd: -l (để trống = mặc định)',
|
||||
settingsTabsTitle: 'Nội dung thanh bên',
|
||||
settingsViewersTitle: 'Trình xem tệp',
|
||||
settingsGeneralTitle: 'Chung',
|
||||
settingsPopup: 'Cài đặt tính năng',
|
||||
settingsViewerCatchAll: 'Catch-all: mọi tệp',
|
||||
viewerImage: 'Hình ảnh',
|
||||
viewerPdf: 'PDF',
|
||||
viewerMarkdown: 'Markdown',
|
||||
viewerCode: 'Mã',
|
||||
viewerBinary: 'Tải nhị phân',
|
||||
viewerHtml: 'HTML',
|
||||
browser: 'Trình duyệt',
|
||||
browserPlaceholder: 'Nhập URL, vd: example.com',
|
||||
browserGo: 'Đi',
|
||||
browserBack: 'Lùi',
|
||||
browserForward: 'Tiến',
|
||||
browserStart: 'Nhập URL để bắt đầu duyệt (chế độ sandbox)',
|
||||
browserBlockedScheme: 'Đã chặn: chỉ cho phép link http/https',
|
||||
browserBlockedLoopback: 'Đã chặn: không cho phép truy cập địa chỉ cục bộ hoặc nội bộ trong trình duyệt',
|
||||
browserInvalid: 'URL không hợp lệ',
|
||||
browserNoSandboxWarning: 'Sandbox đã tắt: trang hiện tại cùng nguồn với UI, có toàn quyền phiên (có thể bật lại trong cài đặt)',
|
||||
htmlNoSandboxWarning: 'Sandbox đã tắt: HTML này cùng nguồn với UI, có thể đọc tệp phiên và API nội bộ (có thể bật lại trong cài đặt)',
|
||||
sandboxStatusOn: 'Chế độ sandbox: đã bật · trang không thể truy cập dữ liệu UI và tệp cục bộ, đăng nhập và cookie bên thứ ba có thể không hoạt động',
|
||||
sandboxUnlock: 'Mở khóa tạm (không an toàn)',
|
||||
sandboxRestore: 'Khôi phục sandbox',
|
||||
settingsHtmlDefaultUnsafeTitle: 'Mở xem trước HTML không sandbox mặc định (không an toàn)',
|
||||
settingsHtmlDefaultUnsafeDesc: 'Khi bật, mỗi lần mở tệp HTML xem trước sẽ mặc định không sandbox (cùng nguồn UI, có thể đọc tệp phiên và API nội bộ); có thể khôi phục sandbox tạm thời trên thanh trạng thái',
|
||||
settingsHtmlSandboxTitle: 'Tắt sandbox xem trước HTML (không an toàn)',
|
||||
settingsHtmlSandboxDesc: 'Khi tắt, HTML xem trước sẽ chạy cùng nguồn với UI: có thể đọc tệp phiên, local storage và gọi API nội bộ. Chỉ bật cho tệp hoàn toàn đáng tin cậy',
|
||||
settingsBrowserSandboxTitle: 'Tắt sandbox trình duyệt (không an toàn)',
|
||||
settingsBrowserSandboxDesc: 'Khi tắt, mọi trang truy cập sẽ chạy cùng nguồn với UI: có thể đọc dữ liệu phiên và mạo danh phiên đăng nhập. Chỉ bật cho trang hoàn toàn đáng tin cậy',
|
||||
settingsBrowserLinksTitle: 'Mở link ngoài trong chat ở thanh bên',
|
||||
settingsBrowserLinksDesc: 'Khi bật, nhấp link ngoài trong chat hoặc UI sẽ mở trong thanh bên thay vì cửa sổ mới; HTTP và HTTPS được kiểm soát riêng bởi công tắc bên dưới; Ctrl/Cmd+nhấp luôn bỏ qua',
|
||||
settingsBrowserHttpTitle: 'Mở trang HTTP trong thanh bên',
|
||||
settingsBrowserHttpDesc: 'Khi bật, nhấp link HTTP ngoài trong chat hoặc UI sẽ mở trong thanh bên (trang plugin khai báo urlTarget ưu tiên); Ctrl/Cmd+nhấp luôn bỏ qua',
|
||||
settingsBrowserHttpsTitle: 'Mở trang HTTPS trong thanh bên',
|
||||
settingsBrowserHttpsDesc: 'Khi bật, nhấp link HTTPS ngoài trong chat hoặc UI sẽ mở trong thanh bên. Mặc định tắt: đa số trang HTTPS từ chối nhúng, trình duyệt hệ thống mượt mà hơn',
|
||||
browserOpenExternal: 'Mở trong trình duyệt',
|
||||
browserEmbedBlocked: '{host} từ chối nhúng',
|
||||
browserEmbedBlockedDesc: 'Trang này cấm hiển thị trong trang khác qua X-Frame-Options / frame-ancestors, không thể tải trong thanh bên. Mở trực tiếp trong trình duyệt',
|
||||
browserEmbedAnyway: 'Vẫn tải',
|
||||
subagent: 'Quản lý tác vụ',
|
||||
openSubagent: 'Quản lý tác vụ',
|
||||
subagentMainAgent: 'Tác nhân chính',
|
||||
subagentEmpty: 'Không có tác nhân con',
|
||||
subagentEmptyDesc: 'Tác nhân con do tác nhân chính tạo ra sẽ hiển thị ở đây',
|
||||
subagentRunning: 'Đang chạy',
|
||||
subagentInactive: 'Nghỉ',
|
||||
subagentModeOneShot: 'Một lần',
|
||||
subagentModeContinuable: 'Có thể tiếp tục',
|
||||
subagentCount: '{count} tác nhân con',
|
||||
subagentCountRunning: '{count} tác nhân con · {running} đang chạy',
|
||||
subagentDiagCorrupt: 'Bị hỏng',
|
||||
subagentDiagUnsupported: 'Không hỗ trợ',
|
||||
subagentDiagUnavailable: 'Không khả dụng',
|
||||
subagentThinking: 'Đang suy nghĩ…',
|
||||
sideChat: 'Chat bên (beta)',
|
||||
sideChatNew: 'Luồng mới',
|
||||
sideChatUntitled: 'Luồng mới',
|
||||
sideChatEmpty: 'Không có cuộc trò chuyện bên',
|
||||
sideChatEmptyDesc: 'Mỗi cuộc trò chuyện bên là một Tab riêng trong thanh tab, kế thừa ngữ cảnh phiên hiện tại, không vào phiên chính',
|
||||
sideChatCreating: 'Đang tạo cuộc trò chuyện bên…',
|
||||
sideChatRetry: 'Thử lại',
|
||||
sideChatThreads: 'Chuyển luồng / mới',
|
||||
sideChatSave: 'Lưu thành phiên mới',
|
||||
sideChatSaveTitle: 'Nâng luồng này thành phiên cấp cao nhất, xuất hiện trong danh sách phiên chính',
|
||||
sideChatSaved: 'Đã lưu thành phiên mới',
|
||||
sideChatNoTurn: 'Cần hoàn thành ít nhất một vòng trò chuyện trước khi lưu',
|
||||
sideChatPendingDrop: 'Tin nhắn theo dõi chưa hoàn thành cuối cùng sẽ không được đưa vào phiên đã lưu',
|
||||
sideChatFirstPlaceholder: 'Hỏi câu đầu tiên — ngữ cảnh đã kế thừa…',
|
||||
sideChatComposerPlaceholder: 'Hỏi tiếp…',
|
||||
sideChatThinking: 'Đang đào sâu…',
|
||||
sideChatThink: 'Suy nghĩ',
|
||||
sideChatInjection: 'Đã tiêm ngữ cảnh',
|
||||
sideChatSend: 'Gửi',
|
||||
sideChatCancel: 'Dừng',
|
||||
sideChatCancelTitle: 'Hủy vòng hiện tại (giữ hàng đợi)',
|
||||
sideChatClose: 'Đóng luồng',
|
||||
sideChatCloseTitle: 'Giải phóng agent của luồng (lịch sử được giữ)',
|
||||
sideChatError: 'Lỗi chat bên: {message}',
|
||||
jobs: 'Tác vụ nền',
|
||||
jobsCount: '{count} tác vụ nền',
|
||||
jobsCountRunning: '{count} tác vụ nền · {running} đang chạy',
|
||||
jobStatusRunning: 'Đang chạy',
|
||||
jobStatusStopping: 'Đang dừng',
|
||||
jobStatusCompleted: 'Đã hoàn thành',
|
||||
jobStatusKilled: 'Đã hủy',
|
||||
jobStatusFailed: 'Thất bại',
|
||||
jobDurationSeconds: '{seconds}s',
|
||||
jobDurationMinutes: '{minutes}m {seconds}s',
|
||||
jobDurationHours: '{hours}h {minutes}m',
|
||||
jobViewOutput: 'Xem đầu ra',
|
||||
jobHideOutput: 'Ẩn đầu ra',
|
||||
jobNoOutput: 'Chưa có đầu ra',
|
||||
jobNotReadYet: 'Đang chờ mô hình đọc đầu ra tác vụ này (sau khi mô hình chạy job_output, đầu ra sẽ hiển thị ở đây)',
|
||||
jobOutputTruncated: 'Đầu ra quá dài, đã cắt bớt',
|
||||
jobOutputError: 'Đọc đầu ra thất bại',
|
||||
jobKill: 'Hủy',
|
||||
jobKillConfirm: 'Nhấp lại để xác nhận hủy',
|
||||
jobKillError: 'Hủy thất bại',
|
||||
addPluginsTabCard: 'Thêm plugin tab',
|
||||
addPluginsTabCardDesc: 'Đăng ký trang thanh bên mới',
|
||||
addPluginsViewerCard: 'Thêm plugin xem trước',
|
||||
addPluginsViewerCardDesc: 'Đăng ký xem trước loại tệp mới',
|
||||
addPluginsTabDesc: 'Trang thanh bên (tab) có thể mở rộng qua plugin. Plugin đăng ký qua service ctx.betterSidebar; nhấp «Cài đặt» để sao chép lệnh cài, dán vào terminal nơi DSH chạy rồi thực thi.',
|
||||
addPluginsViewerDesc: 'Trình xem tệp có thể mở rộng qua plugin. Plugin đăng ký qua service ctx.betterSidebar; nhấp «Cài đặt» để sao chép lệnh cài, dán vào terminal nơi DSH chạy rồi thực thi.',
|
||||
addPluginsBrowseMore: 'Duyệt thêm plugin trên GitHub (topic: dsh-better-sidebar)',
|
||||
addPluginsSearch: 'Tìm theo tên / mô tả plugin…',
|
||||
addPluginsNoMatch: 'Không có plugin phù hợp',
|
||||
addPluginsRecommended: 'Plugin đề xuất',
|
||||
addPluginsEmpty: 'Chưa có plugin nào, hoan nghênh bạn publish plugin dưới GitHub topic',
|
||||
openPlugin: 'Mở',
|
||||
copyInstall: 'Sao chép lệnh cài',
|
||||
pluginOfficeDesc: 'Xem trước bộ Office (.docx / .xlsx / .pptx) cho trình soạn thảo better-sidebar, tách thư viện render Office nặng ra khỏi bundle chính, cài theo nhu cầu',
|
||||
pluginFlowglassDesc: 'Biểu đồ luồng phiên theo thời gian thực: ba lane cho user, assistant và tool call, hỗ trợ nhóm song song, nhánh tác nhân con, drill-down từng lớp và trạng thái trực tiếp; sau khi cài better-sidebar đăng ký tab «Flowglass» native, khi chưa cài giữ drawer riêng',
|
||||
pluginGitForgeDesc: 'Tab «Git Forge» của better-sidebar: kho tài khoản GitHub/Gitea và Forge khác + cấp quyền theo project + chặn cứng chính sách push; token chỉ lưu secrets cục bộ, không vào ngữ cảnh mô hình; cung cấp công cụ GitForge chỉ đọc và HTTPS credential helper cho agent',
|
||||
pluginGitRemotesDesc: 'Tab Git Remotes của better-sidebar: xem branch/upstream/ahead-behind, fetch (có thể prune), pull ff-only, push chỉ sau khi xác nhận trong tab. Không thay thế tab stage/commit Git built-in, cũng không cung cấp force-push hay công cụ auto-push cho mô hình',
|
||||
pluginSentinelDesc: 'Hệ thống đánh thức agent theo điều kiện: cảm biến file/process/port/HTTP/command/webhook, khi điều kiện đạt sẽ tự đánh thức phiên ngủ; đăng ký tab «Sentinel» hiển thị bảng giám sát toàn server',
|
||||
pluginSidebarQaDesc: 'Tab chọn-đoạn-hỏi dựa trên better-sidebar: chọn văn bản trò chuyện → hỏi ở panel phải → phiên theo dõi riêng trong cùng workspace (❓ theo dõi · chủ đề): mô hình nhanh không suy nghĩ nén ngữ cảnh chat chính rồi tiêm cùng trích dẫn, không gián đoạn chat chính; theo dõi có thể lồng nhau, tiếp tục, lưu trữ',
|
||||
pluginSshTunnelDesc: 'Tab «SSH Tunnel» của better-sidebar: danh sách máy đa host + cấp quyền theo project + khóa lưu cục bộ; công cụ mô hình SSHManager (exec/SFTP/chiến lược phiên); terminal tương tác trung tâm và SFTP hai pane',
|
||||
pluginTurnReviewDesc: 'Cổng duyệt người cho diff «vừa rồi»: Approve / Request changes theo path kèm comment tùy chọn; path nhóm theo phiên chính / tác nhân con / không rõ nguồn; nhấp file xem diff snapshot đầu vòng vs hiện tại. Không fork, không /rewind',
|
||||
pluginVideoPreviewDesc: 'Xem trước video inline trong trình soạn thảo better-sidebar (.mp4/.webm/.mov/.mkv/.avi v.v.), có route host /video hỗ trợ HTTP Range (206), có thể tua tiến độ, không bị giới hạn mediaLimit 20MB',
|
||||
pluginDocsPanelDesc: '«Tài liệu toàn cục» trong thanh bên DSH: ghi chú Markdown toàn cục, đọc từ bất kỳ workspace nào — danh sách chọn để đọc, outline hover để nhảy, mở ngoài trong Chrome / VS Code, sao chép code, thư mục cấu hình được (mặc định ~/.dsh/docs)',
|
||||
}
|
||||
Reference in New Issue
Block a user