- خانه
- مشارکت
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 / آنها را لیست میکند) ارائه میدهد، بنابراین دانلودها را میتوان بدون اینترنت آزمایش کرد.
قبل از ارسال یک درخواست پول (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. 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) هر درخواست pull را که آن را حذف کند یا دوباره #, 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.
درخواستهای پول (pull requests) تحت مجوز پروژه، GNU GPL، نسخه 3 یا بالاتر پذیرفته میشوند.