Thiết lập
Bạn cần Windows 10 hoặc 11 và Rust stable 1.95 trở lên (công cụ MSVC).
cargo build
cargo run -p mdm-app
Để thử các thay đổi mà không ảnh hưởng đến các bản tải xuống của riêng bạn, hãy cấp cho ứng dụng một thư mục dữ liệu riêng:
set MDM_DATA_DIR=C:\some\empty\folder
cargo run -p mdm-app
cargo run -p mdm-labserver -- --faults "rate=2M"khởi động một máy chủ thử nghiệm cục bộ phục vụ các tệp được tạo với bất kỳ sự cố nào bạn yêu cầu (kết nối chậm, ngắt kết nối, phản hồi bận, không có phạm vi; GET / liệt kê chúng), để các bản tải xuống có thể được kiểm tra mà không cần internet.
Trước khi bạn mở một yêu cầu kéo
Đây là các kiểm tra mà CI chạy; mỗi kiểm tra hoạt động trên một bản sao sạch:
cargo fmt --all --check
cargo clippy --workspace --all-targets -- -D warnings
cargo test --workspace
python tools/i18n/extract.py # then: git diff --exit-code i18n/en.tsv
node tools/extension/test.mjs
Giữ các thay đổi tập trung và phù hợp với mã xung quanh chúng. Một vài quy tắc áp dụng ở mọi nơi:
- Môi trường sạch. MDM không chứa mã, tệp nhị phân, tác phẩm nghệ thuật, biểu tượng, âm thanh hoặc văn bản từ Internet Download Manager hoặc bất kỳ trình quản lý tải xuống nào khác. Không bao giờ tháo rời, dịch ngược hoặc vá một chương trình khác, và không bao giờ bỏ qua cấp phép của bất kỳ ai. Xem Không phải dự án kỹ thuật đảo ngược.
- Mọi văn bản người dùng thấy đều thông qua
crate::i18n(t,tc,tn,fmt); sau khi thêm một, hãy chạypython tools/i18n/extract.py. Dữ liệu bên trong một câu (tên tệp, địa chỉ, kích thước) đi vào thông quai18n::ltrhoặci18n::isolate, để nó đọc đúng trong các ngôn ngữ từ phải sang trái. - Các lệnh gọi chỉ dành cho Windows nằm trong
crates/app/src/win32.rs, các đối tác Linux và macOS của chúng nằm trongunix.rs; phần còn lại của không gian làm việc là Rust an toàn, có thể di động (unsafe_code = "deny"). Trên Windows,tools\dev\check-cross.ps1kiểm tra xem nó vẫn xây dựng cho Linux và macOS. - Khắc phục nguyên nhân, không phải trường hợp, và giữ cho các nhà sản xuất và người tiêu dùng dữ liệu được chia sẻ (danh sách tải xuống, tin nhắn của tiện ích mở rộng trình duyệt, các danh mục) đồng bộ.
Bản dịch
Giao diện có sẵn trong mọi ngôn ngữ mà Windows 11 cung cấp. Các danh mục trong i18n/ được tạo bằng dịch máy, và mỗi hàng được đánh dấu #, machine đang chờ một người bản xứ:
- Mở
i18n/<code>.tsv(các mã nằm trongi18n/languages.tsv). - Sửa bản dịch trong cột thứ ba của hàng và xóa dòng
#, machinecủa nó. - Giữ
{placeholders}và&(chữ cái phím tắt) như chúng vốn có.
cargo test -p mdm-app every_catalogkiểm tra mọi danh mục. Để xem liệu văn bản của bạn có phù hợp không, hãy đặt MDM_FIT_AUDIT thành một tệp và chụp ảnh màn hình bằng ngôn ngữ của bạn (tools\lab\docs-shots.ps1 ... -Lang <code>): mọi văn bản chạy qua cửa sổ của nó hoặc chồng lên một cửa sổ khác đều được liệt kê ở đó. Xem Ngôn ngữ để biết cách danh sách ngôn ngữ, trình cài đặt và bố cục từ phải sang trái khớp với nhau.
Trang web cũng có 20 ngôn ngữ, được dịch tự động. Các văn bản của trang web nằm trong i18n/site/<code>.json, mỗi dòng một câu: hãy sửa "text" của một dòng (giữ nguyên các thẻ như <g1>…</g1> và <x2/>, chúng là các liên kết và biểu tượng). python tools/website/translate_site.py
--status cho biết mỗi ngôn ngữ còn thiếu gì, và công cụ tương tự với --langs <code> chỉ dịch phần đó.
Báo cáo sự cố
Sử dụng Trợ giúp → Báo cáo sự cố trong ứng dụng: nó mở biểu mẫu báo cáo lỗi với phiên bản, hệ thống, cách MDM được cài đặt và ngôn ngữ của bạn đã được điền. Biểu mẫu yêu cầu tương tự khi bạn tự mở nó. Các vấn đề bảo mật: xem SECURITY.md.
Các yêu cầu kéo được chấp nhận theo giấy phép của dự án, GNU GPL, phiên bản 3 trở lên.