- ホーム
- 貢献する
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にあります)。- 行の3列目の翻訳を修正し、その
#, 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に文ごとに1行で記載されています。各行の"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以降の下で受け入れられます。