- होम
- योगदान देना
Contribute to GolinksPRO Download Manager
Bug reports, ideas, and translation fixes are all welcome.
सेटअप करना
आपको 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
बदलावों को केंद्रित रखें और उनके आसपास के कोड से मेल खाएं। कुछ नियम हर जगह लागू होते हैं:
- Clean room. GDM contains no code, binaries, artwork, icons, sounds or text from Internet Download Manager or any other download manager. Never disassemble, decompile or patch another program, and never bypass anyone's licensing. See Not a reverse-engineering project.
- उपयोगकर्ता को दिखने वाला हर टेक्स्ट
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}और एक&(कीबोर्ड शॉर्टकट अक्षर) को वैसे ही रखें जैसे वे हैं।
एक पंक्ति जिसमें #, machine लाइन नहीं है, वह तब से आपकी है: tools/i18n/translate.py इसे फिर कभी मशीन अनुवाद पर नहीं भेजता है, और CI (tools/i18n/reviewed_guard.py) किसी भी पुल अनुरोध को विफल कर देता है जो इसे हटाता है या इसे फिर से #, machine चिह्नित करता है।
cargo test -p mdm-app every_catalogहर कैटलॉग की जाँच करता है। यह देखने के लिए कि आपके टेक्स्ट फिट होते हैं या नहीं, MDM_FIT_AUDIT को एक फ़ाइल पर सेट करें और अपनी भाषा में स्क्रीनशॉट लें (tools\lab\docs-shots.ps1 ... -Lang <code>): हर टेक्स्ट जो अपनी विंडो से आगे या दूसरे पर चलता है, वहाँ सूचीबद्ध होता है। भाषा सूची, इंस्टॉलर और दाएं से बाएं लेआउट कैसे एक साथ फिट होते हैं, इसके लिए भाषाएँ देखें।
यह वेबसाइट भी 21 भाषाओं में है, जो मशीन-अनुवादित भी है। इसके टेक्स्ट i18n/site/<code>.json में हैं, प्रति वाक्य एक पंक्ति: एक पंक्ति के "text" को ठीक करें (टैग जैसे <g1>…</g1> और <x2/> को वैसे ही रखें, वे लिंक और आइकन हैं)। python tools/website/translate_site.py
--status दिखाता है कि प्रत्येक भाषा में अभी भी क्या कमी है, और --langs <code> के साथ वही टूल केवल उसी का अनुवाद करता है।
समस्याओं की रिपोर्ट करना
Use Help → Report a problem in the app: it opens the bug report form with your version, system, how GDM was installed and its language filled in. The form asks for the same when you open it yourself. Security problems: see SECURITY.md.
पुल रिक्वेस्ट प्रोजेक्ट के लाइसेंस, GNU GPL, संस्करण 3 या बाद के के तहत स्वीकार किए जाते हैं।