การตั้งค่า
คุณต้องมี Windows 10 หรือ 11 และ Rust stable 1.95 หรือใหม่กว่า (MSVC toolchain)
cargo build
cargo run -p mdm-app
หากต้องการลองเปลี่ยนแปลงโดยไม่กระทบกับการดาวน์โหลดของคุณ ให้แอปใช้โฟลเดอร์ข้อมูลแยกต่างหาก:
set MDM_DATA_DIR=C:\some\empty\folder
cargo run -p mdm-app
cargo run -p mdm-labserver -- --faults "rate=2M"จะเริ่มเซิร์ฟเวอร์ทดสอบในเครื่องที่ให้บริการไฟล์ที่สร้างขึ้นพร้อมกับปัญหาที่คุณร้องขอ (การเชื่อมต่อช้า, การตัดการเชื่อมต่อ, การตอบกลับไม่ว่าง, ไม่มีช่วง; GET / แสดงรายการ) เพื่อให้สามารถทดสอบการดาวน์โหลดได้โดยไม่ต้องใช้อินเทอร์เน็ต
ก่อนที่คุณจะเปิด pull request
นี่คือการตรวจสอบที่ CI รัน; แต่ละรายการทำงานบนโคลนที่สะอาด:
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
ให้การเปลี่ยนแปลงมุ่งเน้นและเข้ากับโค้ดรอบ ๆ มีกฎบางอย่างที่ใช้ได้ทุกที่:
- Clean room. MDM ไม่มีโค้ด, ไบนารี, งานศิลปะ, ไอคอน, เสียง หรือข้อความจาก Internet Download Manager หรือโปรแกรมจัดการการดาวน์โหลดอื่น ๆ ห้ามถอดแยกชิ้นส่วน, ดีคอมไพล์ หรือแพตช์โปรแกรมอื่น และห้ามหลีกเลี่ยงการอนุญาตใช้งานของใครก็ตาม ดู ไม่ใช่โปรเจกต์วิศวกรรมย้อนกลับ
- ข้อความทุกอย่างที่ผู้ใช้เห็นจะผ่าน
crate::i18n(t,tc,tn,fmt); หลังจากเพิ่มแล้ว ให้รันpython tools/i18n/extract.pyข้อมูลภายในประโยค (ชื่อไฟล์, ที่อยู่, ขนาด) จะผ่านi18n::ltrหรือi18n::isolateเพื่อให้อ่านได้ถูกต้องในภาษาที่เขียนจากขวาไปซ้าย - การเรียกใช้เฉพาะ Windows อยู่ใน
crates/app/src/win32.rsส่วนคู่ของ Linux และ macOS อยู่ในunix.rs; ส่วนที่เหลือของ workspace เป็น Rust ที่ปลอดภัยและพกพาได้ (unsafe_code = "deny") บน Windows,tools\dev\check-cross.ps1ตรวจสอบว่ายังคงสร้างสำหรับ Linux และ macOS ได้ - แก้ไขสาเหตุ ไม่ใช่กรณี และรักษาผู้ผลิตและผู้บริโภคข้อมูลที่ใช้ร่วมกัน (รายการดาวน์โหลด, ข้อความของส่วนขยายเบราว์เซอร์, แค็ตตาล็อก) ให้สอดคล้องกัน
คำแปล
อินเทอร์เฟซมีให้เลือกทุกภาษาที่ Windows 11 มีให้ แค็ตตาล็อกใน i18n/ สร้างขึ้นโดยการแปลด้วยเครื่อง และแต่ละแถวที่ทำเครื่องหมาย #, machine กำลังรอเจ้าของภาษา:
- เปิด
i18n/<code>.tsv(รหัสอยู่ในi18n/languages.tsv) - แก้ไขคำแปลในคอลัมน์ที่สามของแถวและลบเส้น
#, machine - เก็บ
{placeholders}และ&(ตัวอักษรทางลัดคีย์บอร์ด) ไว้ตามเดิม
cargo test -p mdm-app every_catalogตรวจสอบแค็ตตาล็อกทุกรายการ หากต้องการดูว่าข้อความของคุณเหมาะสมหรือไม่ ให้ตั้งค่า MDM_FIT_AUDIT เป็นไฟล์และถ่ายภาพหน้าจอในภาษาของคุณ (tools\lab\docs-shots.ps1 ... -Lang <code>): ข้อความทุกรายการที่เกินหน้าต่างหรือทับซ้อนกับหน้าต่างอื่นจะแสดงอยู่ที่นั่น ดู ภาษา สำหรับวิธีที่รายการภาษา, ตัวติดตั้ง และเค้าโครงจากขวาไปซ้ายทำงานร่วมกัน
เว็บไซต์มี 20 ภาษาเช่นกัน ซึ่งแปลด้วยเครื่อง ข้อความอยู่ใน i18n/site/<code>.json หนึ่งแถวต่อหนึ่งประโยค: แก้ไข "text" ของแถว (คงแท็กเช่น <g1>…</g1> และ <x2/> ไว้ตามเดิม เนื่องจากเป็นลิงก์และไอคอน) python tools/website/translate_site.py
--status แสดงสิ่งที่แต่ละภาษายังขาดอยู่ และเครื่องมือเดียวกันกับ --langs <code> จะแปลเฉพาะส่วนนั้น
การรายงานปัญหา
ใช้ วิธีใช้ → รายงานปัญหา ในแอป: จะเปิดแบบฟอร์มรายงานข้อผิดพลาดพร้อมกับเวอร์ชัน, ระบบ, วิธีการติดตั้ง MDM และภาษาที่กรอกไว้ แบบฟอร์มจะขอข้อมูลเดียวกันเมื่อคุณเปิดเอง ปัญหาด้านความปลอดภัย: ดู SECURITY.md
Pull request ได้รับการยอมรับภายใต้ใบอนุญาตของโปรเจกต์ คือ GNU GPL, เวอร์ชัน 3 หรือใหม่กว่า