セットアップ
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にあります)。- 行の3列目の翻訳を修正し、その
#, machine行を削除します。 {placeholders}と&(キーボードショートカットの文字)はそのままにしてください。
cargo test -p mdm-app every_catalogはすべてのカタログをチェックします。テキストが適合するかどうかを確認するには、MDM_FIT_AUDITをファイルに設定し、お使いの言語でスクリーンショットを撮ります(tools\lab\docs-shots.ps1 ... -Lang <code>)。ウィンドウをはみ出したり、他のウィンドウの上に重なったりするすべてのテキストがそこにリストされます。言語リスト、インストーラー、右から左へのレイアウトがどのように連携するかについては、言語を参照してください。
このウェブサイトも20言語に対応しており、機械翻訳されています。テキストはi18n/site/<code>.jsonにあり、1行に1文です。行の"text"を修正してください(<g1>…</g1>や<x2/>のようなタグはリンクやアイコンなので、そのままにしてください)。python tools/website/translate_site.py
--statusは各言語にまだ不足しているものを示し、--langs <code>と同じツールでそれだけを翻訳できます。
問題の報告
アプリでヘルプ → 問題の報告を使用してください。バージョン、システム、MDMのインストール方法、言語が入力されたバグレポートフォームが開きます。自分でフォームを開いた場合も同様の情報を求められます。セキュリティ上の問題については、SECURITY.mdを参照してください。
プルリクエストは、プロジェクトのライセンスであるGNU GPL、バージョン3以降の下で受け入れられます。