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
429 lines
13 KiB
JSON
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ủ"
|
|
}
|
|
}
|