Files
upstream-mirror 240db4e2a7
Some checks failed
Server CI / Postgres (shard 0) (push) Has been skipped
Server CI / Postgres (shard 3) (push) Has been skipped
BuildEnv Docker Image / build-image (push) Failing after 4s
BuildEnv Docker Image / build-image-fips (push) Failing after 4s
Migration Review & Release Notes / Generate migration review & release notes (push) Failing after 3s
Server CI / Build Environment (push) Failing after 3s
Server CI / Postgres (shard 1) (push) Has been skipped
Tools CI / check-style (mattermost-govet) (push) Failing after 4s
Server CI / Postgres (shard 2) (push) Has been skipped
Tools CI / check-style (mmgotool) (push) Failing after 3s
Server CI / Elasticsearch v8 Compatibility (push) Has been skipped
Server CI / OpenSearch v2 Compatibility (push) Has been skipped
Server CI / Postgres FIPS (shard 0) (push) Has been skipped
Tools CI / Test (mattermost-govet) (push) Failing after 3s
Server CI / Postgres FIPS (shard 1) (push) Has been skipped
Server CI / Postgres FIPS (shard 2) (push) Has been skipped
Tools CI / Test (mmgotool) (push) Failing after 3s
Server CI / Postgres FIPS (shard 3) (push) Has been skipped
Server CI / Run mmctl tests (push) Has been skipped
Server CI / Run mmctl tests (FIPS) (push) Has been skipped
Server CI / Merge Postgres Test Results (push) Has been skipped
Server CI / Merge Postgres FIPS Test Results (push) Has been skipped
Server CI / Check backport migrations (push) Has been skipped
Server CI / Check generated files (push) Has been skipped
Server CI / check-style (push) Has been skipped
Server CI / Vet API (push) Has been skipped
Server CI / Build mattermost server app (push) Has been skipped
Server CI / Server CI Complete (push) Failing after 2s
Server CI / Server CI Artifacts (push) Has been skipped
Server CI / Sentry Upload (push) Has been skipped
Server CI / Server CI Report (push) Failing after 5m1s
Server CI Nightly Race / Race Detector (push) Has been skipped
CodeQL / Analyze (go) (push) Has been cancelled
CodeQL / Analyze (javascript) (push) Has been cancelled
Webapp CI Cache Warm / Warm Webapp node_modules Cache (push) Has been cancelled
E2E CI Cache Warm / Warm E2E npm Registry Cache (push) Has been cancelled
API / build (push) Has been cancelled
Web App CI / check-types (push) Has been cancelled
Web App CI / check-lint (push) Has been cancelled
Web App CI / check-i18n (push) Has been cancelled
Web App CI / check-external-links (push) Has been cancelled
Web App CI / test (platform) (push) Has been cancelled
Web App CI / test (mattermost-redux) (push) Has been cancelled
Web App CI / test (channels shard 1/4) (push) Has been cancelled
Web App CI / test (channels shard 2/4) (push) Has been cancelled
Web App CI / test (channels shard 3/4) (push) Has been cancelled
Web App CI / test (channels shard 4/4) (push) Has been cancelled
Web App CI / upload-coverage (push) Has been cancelled
Web App CI / build (push) Has been cancelled
YAML Lint / yamllint (push) Has been cancelled
Push mirrored docker images / cd/Push mirrored docker images (push) Has been cancelled
docs-cd / Build and deploy docs (push) Has been cancelled
Docs CI / build (push) Has been cancelled
E2E Cache Warm: Cypress deps / Warm Cypress deps cache (push) Has been cancelled
Scorecards supply-chain security / Scorecard analysis (push) Has been cancelled
Server CI Weekly / Postgres FIPS (push) Has been skipped
Server CI Weekly / Run mmctl tests (FIPS) (push) Has been skipped
Server CI Weekly / Postgres with binary parameters (push) Has been skipped
Server CI Weekly / Build Environment (push) Failing after 1s
Server CI Cache Warm / Warm Go Module and Build Cache (push) Failing after 2s
Server CI Nightly Race / Build Environment (push) Failing after 1s
snapshot of https://github.com/mattermost/mattermost.git (master, 2026-09-16; blobs > 131072B omitted)
2026-09-16 00:29:55 +05:00

429 lines
13 KiB
JSON

{
"Mattermost": {
"target": "Mattermost"
},
"Enterprise Edition": {
"target": "Enterprise Edition"
},
"Team Edition": {
"target": "Team Edition",
"note": "Repo once renders this as 'Phiên bản cho Nhóm'; per doNotTranslate keep the English edition name."
},
"Mattermost Cloud": {
"target": "Mattermost Cloud"
},
"Channels": {
"target": "Channels",
"note": "Product name only; the common noun 'channel' is 'kênh'."
},
"Playbooks": {
"target": "Playbooks"
},
"Boards": {
"target": "Boards"
},
"Calls": {
"target": "Calls"
},
"Markdown": {
"target": "Markdown"
},
"OAuth": {
"target": "OAuth"
},
"SAML": {
"target": "SAML"
},
"LDAP": {
"target": "LDAP"
},
"SSO": {
"target": "SSO"
},
"MFA": {
"target": "MFA"
},
"OpenID Connect": {
"target": "OpenID Connect"
},
"Entra ID": {
"target": "Entra ID"
},
"GitLab": {
"target": "GitLab"
},
"Elasticsearch": {
"target": "Elasticsearch"
},
"Gossip": {
"target": "Gossip"
},
"Actiance XML": {
"target": "Actiance XML"
},
"Global Relay": {
"target": "Global Relay"
},
"System Console": {
"target": "Bảng điều khiển Hệ thống",
"note": "Established in vi.json; capitalize as a named UI area."
},
"marketplace": {
"target": "thị trường",
"note": "vi.json uses 'Thị trường' (e.g. 'Bật Thị trường'); capitalize when used as the feature name."
},
"channel": {
"target": "kênh",
"note": "Consistently 'kênh' throughout vi.json."
},
"team": {
"target": "nhóm",
"note": "Majority rendering (236 'nhóm' vs 33 'đội' in vi.json). Caution: 'nhóm' also translates 'group' (user group = 'nhóm người dùng', group message = 'tin nhắn nhóm'); use context or 'đội' only if disambiguation is essential — but 'nhóm' is the established default."
},
"post": {
"target": "bài đăng",
"note": "Distinct from 'message' = 'tin nhắn'; vi.json uses 'bài đăng' for post."
},
"message": {
"target": "tin nhắn"
},
"thread": {
"target": "chủ đề",
"note": "Established in vi.json ('Chủ đề trong', 'chủ đề chưa đọc'). Also means 'topic'; alternative 'luồng' is not used in the repo — keep 'chủ đề'."
},
"reply": {
"target": "trả lời",
"note": "Verb and noun both 'trả lời'; a reply message can be 'câu trả lời'."
},
"direct message": {
"target": "tin nhắn trực tiếp",
"note": "Consistent in vi.json; capitalize as 'Tin nhắn Trực tiếp' in headings."
},
"group message": {
"target": "tin nhắn nhóm"
},
"mention": {
"target": "đề cập",
"note": "Verb 'đề cập'; noun/count 'lượt đề cập' (per vi.json 'mentions' -> 'lượt đề cập')."
},
"notification": {
"target": "thông báo"
},
"pin": {
"target": "ghim",
"note": "unpin = 'bỏ ghim'; pinned = 'đã ghim'; pinned messages = 'tin nhắn được ghim'."
},
"bookmark": {
"target": "dấu trang",
"note": "No existing vi rendering in repo; 'dấu trang' is the standard Vietnamese UI term (browsers). Verb: 'thêm dấu trang'."
},
"saved messages": {
"target": "tin nhắn đã lưu",
"note": "vi.json is inconsistent: 'Bài đăng đã lưu' in one label but 'tin nhắn được lưu' elsewhere; prefer 'tin nhắn đã lưu' to match message = 'tin nhắn'. save = 'lưu', unsave = 'bỏ lưu'."
},
"draft": {
"target": "bản nháp",
"note": "vi.json uses short form 'nháp' in buttons ('Gửi nháp', 'Xoá nháp'); 'bản nháp' as the standalone noun."
},
"scheduled post": {
"target": "tin nhắn đã lên lịch",
"note": "No existing vi rendering; align with message = 'tin nhắn'. Verb schedule = 'lên lịch'."
},
"emoji": {
"target": "biểu tượng cảm xúc",
"note": "Consistent in vi.json."
},
"custom emoji": {
"target": "biểu tượng cảm xúc tùy chỉnh"
},
"reaction": {
"target": "phản ứng",
"note": "Established in vi.json; verb react = 'phản ứng' or 'thêm phản ứng'."
},
"status": {
"target": "trạng thái"
},
"custom status": {
"target": "trạng thái tùy chỉnh"
},
"do not disturb": {
"target": "Không làm phiền",
"note": "Established status label in vi.json; keep the DND abbreviation untranslated if it appears."
},
"away": {
"target": "Đi vắng"
},
"online": {
"target": "Trực tuyến"
},
"offline": {
"target": "Ngoại tuyến"
},
"out of office": {
"target": "Vắng mặt",
"note": "vi.json uses 'Vắng mặt' for the status label; expanded 'vắng mặt tại văn phòng' in prose."
},
"guest": {
"target": "khách"
},
"member": {
"target": "thành viên"
},
"user": {
"target": "người dùng"
},
"system admin": {
"target": "quản trị viên hệ thống",
"note": "vi.json labels the role 'Quản trị hệ thống'; use 'quản trị viên hệ thống' when referring to the person."
},
"team admin": {
"target": "quản trị viên nhóm"
},
"channel admin": {
"target": "quản trị viên kênh"
},
"session": {
"target": "phiên",
"note": "Also 'phiên đăng nhập' where clarity is needed (vi.json uses both)."
},
"sign in": {
"target": "đăng nhập",
"note": "Translate both 'sign in' and 'log in' as 'đăng nhập'."
},
"sign out": {
"target": "đăng xuất",
"note": "Translate both 'sign out' and 'log out' as 'đăng xuất'."
},
"join": {
"target": "tham gia"
},
"leave": {
"target": "rời khỏi",
"note": "'rời' alone in short buttons; 'rời khỏi kênh/nhóm' in full phrases."
},
"archive": {
"target": "lưu trữ",
"note": "archived = 'đã lưu trữ'. Caution: 'lưu trữ' also means 'store/save' in some legacy strings; for the channel action always 'lưu trữ kênh'."
},
"unarchive": {
"target": "hủy lưu trữ"
},
"mute": {
"target": "tắt thông báo",
"note": "vi.json is inconsistent ('Tắt tiếng kênh' vs 'Tắt thông báo'). For channels/notifications use 'tắt thông báo'; reserve 'tắt tiếng' for microphone mute in Calls. unmute = 'bật thông báo'."
},
"follow": {
"target": "theo dõi"
},
"unfollow": {
"target": "bỏ theo dõi"
},
"favorite": {
"target": "yêu thích",
"note": "Favorites category = 'Yêu thích'; unfavorite = 'bỏ yêu thích'."
},
"search": {
"target": "tìm kiếm"
},
"integration": {
"target": "tích hợp"
},
"slash command": {
"target": "lệnh gạch chéo",
"note": "Majority in vi.json; some strings leave 'Slash Commands' untranslated — prefer 'lệnh gạch chéo'."
},
"webhook": {
"target": "webhook",
"note": "Kept in English throughout vi.json."
},
"incoming webhook": {
"target": "webhook đến"
},
"outgoing webhook": {
"target": "webhook đi"
},
"trigger word": {
"target": "từ kích hoạt"
},
"plugin": {
"target": "plugin",
"note": "Kept in English throughout vi.json; do not translate as 'trình cắm'."
},
"bot": {
"target": "bot",
"note": "Kept in English; bot account = 'tài khoản bot'."
},
"role": {
"target": "vai trò"
},
"permission": {
"target": "quyền"
},
"scheme": {
"target": "lược đồ",
"note": "vi.json mixes 'lược đồ' and 'sơ đồ' ('Sơ đồ quyền'); prefer 'lược đồ' for permission schemes."
},
"license": {
"target": "giấy phép"
},
"seat": {
"target": "chỗ",
"note": "A licensed slot, not a user: render seat counts as '{num} chỗ'. Existing strings are inconsistent ('người dùng trả phí', 'chỗ ngồi', 'ghế người dùng') and must not collapse to plain 'người dùng'."
},
"trial": {
"target": "bản dùng thử",
"note": "'dùng thử' as verb/period ('Bắt đầu dùng thử', 'ngày dùng thử')."
},
"workspace": {
"target": "không gian làm việc",
"note": "Majority in vi.json; a few strings leave 'workspace' untranslated — prefer 'không gian làm việc'."
},
"subscription": {
"target": "gói đăng ký",
"note": "vi.json uses bare 'Đăng ký', which collides with 'sign up/register'; 'gói đăng ký' is clearer for the paid-plan sense."
},
"deactivate": {
"target": "hủy kích hoạt",
"note": "vi.json mixes 'hủy kích hoạt' and 'vô hiệu hóa'; prefer 'hủy kích hoạt' for user accounts, matching 'Deactivate' -> 'Hủy kích hoạt'."
},
"invite": {
"target": "mời",
"note": "Noun sense: use 'lời mời'."
},
"invitation": {
"target": "lời mời"
},
"sidebar": {
"target": "thanh bên",
"note": "Majority in vi.json; one legacy string uses 'thanh tiện ích' — prefer 'thanh bên'."
},
"unread": {
"target": "chưa đọc"
},
"attachment": {
"target": "tệp đính kèm"
},
"public channel": {
"target": "kênh công khai"
},
"private channel": {
"target": "kênh riêng tư"
},
"shared channel": {
"target": "kênh được chia sẻ"
},
"channel header": {
"target": "tiêu đề kênh"
},
"channel purpose": {
"target": "mục đích kênh"
},
"system message": {
"target": "thông báo hệ thống",
"note": "Established in vi.json; slight collision with notification = 'thông báo', but keep for consistency."
},
"persistent notification": {
"target": "thông báo liên tục",
"note": "No existing vi rendering; 'liên tục' conveys the repeated-until-acknowledged behavior."
},
"message priority": {
"target": "mức ưu tiên tin nhắn",
"note": "vi.json has 'Ưu tiên tin nhắn'; 'mức ưu tiên' is clearer for the noun (the priority level)."
},
"urgent": {
"target": "Khẩn cấp",
"note": "vi.json has one legacy 'Gấp'; 'Khẩn cấp' is the standard priority label in Vietnamese UIs and matches Important/Standard register."
},
"recap": {
"target": "bản tóm tắt",
"note": "No existing vi rendering (new AI feature); aligns with 'tóm tắt' = summary."
},
"agent": {
"target": "tác nhân",
"note": "No existing vi rendering. 'Tác nhân' follows Microsoft/Google Vietnamese AI terminology; 'trợ lý AI' is a friendlier alternative. Keep 'Agents' in English when used as the product/plugin name."
},
"burn-on-read": {
"target": "tự hủy sau khi đọc",
"note": "No existing vi rendering; follows Vietnamese messaging-app convention for self-destructing messages (tin nhắn tự hủy)."
},
"magic link": {
"target": "liên kết đăng nhập nhanh",
"note": "No existing vi rendering; avoid literal 'liên kết ma thuật'. Describes a passwordless email sign-in link."
},
"personal access token": {
"target": "mã thông báo truy cập cá nhân",
"note": "vi.json mixes this with shorter 'mã truy cập cá nhân'; 'mã thông báo' is the standard rendering of 'token' — prefer the full form."
},
"announcement banner": {
"target": "biểu ngữ thông báo",
"note": "Majority in vi.json; one string uses 'Banner thông báo' — prefer 'biểu ngữ thông báo'."
},
"channel banner": {
"target": "biểu ngữ kênh"
},
"keyword": {
"target": "từ khóa"
},
"user group": {
"target": "nhóm người dùng",
"note": "Established in vi.json. Note collision: 'nhóm' alone also renders 'team'."
},
"permalink": {
"target": "liên kết cố định",
"note": "No existing vi rendering; standard Vietnamese term for permanent link."
},
"profile": {
"target": "hồ sơ"
},
"username": {
"target": "tên người dùng"
},
"nickname": {
"target": "biệt hiệu",
"note": "Established in vi.json ('thêm biệt hiệu')."
},
"display name": {
"target": "tên hiển thị"
},
"collapsed reply threads": {
"target": "chủ đề trả lời được thu gọn",
"note": "Exact existing rendering in vi.json for 'Threaded Discussions'/collapsed threads."
},
"auto-translation": {
"target": "dịch tự động",
"note": "auto-translated (label) = 'ĐÃ DỊCH TỰ ĐỘNG'."
},
"data retention": {
"target": "lưu giữ dữ liệu",
"note": "Policy = 'chính sách lưu giữ dữ liệu' (established in vi.json)."
},
"compliance export": {
"target": "xuất tuân thủ"
},
"access control": {
"target": "kiểm soát truy cập",
"note": "One legacy vi string renders 'Advanced Access Control' as 'Kiểm duyệt kênh' (channel moderation) — do not follow it; 'kiểm soát truy cập' is the standard term."
},
"attribute": {
"target": "thuộc tính"
},
"onboarding": {
"target": "hướng dẫn bắt đầu",
"note": "vi.json has one legacy 'giới thiệu'; 'hướng dẫn bắt đầu' better conveys the guided first-run experience."
},
"Town Square": {
"target": "Không gian chung",
"note": "Established channel-name translation in server vi.json."
},
"Off-Topic": {
"target": "Chủ đề ngoài lề",
"note": "Established channel-name translation in server vi.json."
},
"read-only": {
"target": "chỉ đọc"
},
"server": {
"target": "máy chủ"
}
}