- Ana Sayfa
- Katkıda bulunma
Contribute to GolinksPRO Download Manager
Bug reports, ideas, and translation fixes are all welcome.
Geliştirme ortamını hazırlama
Windows 10 veya 11 ve Rust stable 1.95 veya üzeri (MSVC araç zinciri) gereklidir.
cargo build
cargo run -p mdm-app
Kendi indirmelerinizi etkilemeden değişiklikleri denemek için uygulama için ayrı bir veri klasörü belirleyin:
set MDM_DATA_DIR=C:\some\empty\folder
cargo run -p mdm-app
cargo run -p mdm-labserver -- --faults "rate=2M"İstediğiniz sorunlarla (yavaş bağlantılar, kesintiler, meşgul yanıtlar, aralık desteği olmaması; GET / bunları listeler) oluşturulmuş dosyaları sunan yerel bir test sunucusu başlatır. Böylece indirmeler internet bağlantısı olmadan test edilebilir.
Bir çekme isteği açmadan önce
CI'nin çalıştırdığı kontroller şunlardır; her biri temiz bir klon üzerinde çalışır:
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
Değişiklikleri odaklanmış tutun ve etraflarındaki kodla eşleştirin. Birkaç kural her yerde geçerlidir:
- 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.
- Kullanıcının gördüğü tüm metinler
crate::i18n(t,tc,tn,fmt) üzerinden geçer; yeni bir metin ekledikten sonrapython tools/i18n/extract.pykomutunu çalıştırın. Cümle içindeki veriler (dosya adı, adres, boyut)i18n::ltrveyai18n::isolateüzerinden eklenir; böylece sağdan sola yazılan dillerde doğru görüntülenir. - Yalnızca Windows'ta kullanılan çağrılar
crates/app/src/win32.rsiçinde yer alır; Linux ve macOS karşılıklarıunix.rsiçindedir. Çalışma alanının geri kalanı güvenli ve taşınabilir Rust kodudur (unsafe_code = "deny"). Windows'tatools\dev\check-cross.ps1, Linux ve macOS için derlemenin hâlâ başarılı olduğunu denetler. - Örnekleri değil, nedenleri düzeltin ve paylaşılan verileri (indirme listesi, tarayıcı uzantısının iletileri, kataloglar) oluşturan ve kullanan bölümlerin uyumlu kalmasını sağlayın.
Çeviriler
Arayüz, Windows 11'in sunduğu tüm dillerde kullanılabilir. i18n/ içindeki kataloglar makine çevirisiyle oluşturulmuştur ve #, machine ile işaretlenmiş her satırın ana dili o dil olan bir çevirmen tarafından gözden geçirilmesi beklenmektedir:
i18n/<code>.tsvdosyasını açın (dil kodlarıi18n/languages.tsviçinde).- Satırın üçüncü sütunundaki çeviriyi düzeltin ve
#, machinesatırını silin. {placeholders}ve tek&(klavye kısayol harfi) olduğu gibi bırakın.
#, machine satırı olmayan bir satır artık size aittir: tools/i18n/translate.py bu satırı bir daha makine çevirisine göndermez ve CI (tools/i18n/reviewed_guard.py), satırı silen veya yeniden #, machine olarak işaretleyen çekme isteklerini başarısız kılar.
cargo test -p mdm-app every_catalogher kataloğu denetler. Metinlerinizin sığıp sığmadığını görmek için MDM_FIT_AUDIT değerini bir dosyaya ayarlayın ve dilinizdeki ekran görüntülerini alın (tools\lab\docs-shots.ps1 ... -Lang <code>): penceresinden taşan veya başka bir pencerenin üzerine gelen tüm metinler listelenir. Dil listesinin, yükleyicinin ve sağdan sola düzenin birbiriyle nasıl uyumlu olduğunu Diller bölümünde görebilirsiniz.
Web sitesi de makine çevirisiyle 21 dilde sunuluyor. Metinler i18n/site/<code>.json içinde, her cümle ayrı bir satırda yer alıyor: bir satırın "text" değerini düzeltin (<g1>…</g1> ve <x2/> gibi etiketleri olduğu gibi bırakın; bunlar bağlantıları ve simgeleri temsil eder). python tools/website/translate_site.py
--status her dilde nelerin eksik olduğunu gösterir; aynı araç --langs <code> ile yalnızca eksik kısımları çevirir.
Sorun Bildirme
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.
Çekme istekleri, projenin lisansı olan GNU GPL, sürüm 3 veya üzeri kapsamında kabul edilir.