설정하기
Windows 10 또는 11과 Rust stable 1.95 이상(MSVC 툴체인)이 필요합니다.
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 /에 나열됨)가 있는 생성된 파일을 제공하는 로컬 테스트 서버를 시작하여 인터넷 없이도 다운로드를 테스트할 수 있습니다.
풀 리퀘스트를 열기 전에
다음은 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
변경 사항을 집중시키고 주변 코드와 일치시키세요. 몇 가지 규칙은 모든 곳에 적용됩니다.
- 클린 룸. 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에 있습니다. 나머지 작업 공간은 안전하고 이식 가능한 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를 참조하세요.
풀 리퀘스트는 프로젝트 라이선스인 GNU GPL, 버전 3 이상에 따라 허용됩니다.