DeepAI Code(Windows/Mac用デスクトップ・コーディングエージェント)のUIを日本語化する、非公式のコミュニティパッチです。
これは何? DeepAI Codeには言語設定がありません(v0.3.19時点)。このツールは、あなたのPCにインストールされたアプリ内のUI文字列を、日本語辞書で置き換えたアーカイブを生成して差し替えます。アプリ本体の再配布は一切行いません。
- 非公式です。DeepAI社とは関係なく、支持も受けていません。
- インストール済みアプリの
server.asarを書き換えます。適用前に必ず自動バックアップを作成し、restoreコマンドで元に戻せます。 - アプリの自動更新で元に戻ります。更新が入ったら再度
applyを実行してください(新しいバージョンは versions.json での動作確認が必要です)。 - 適用は自己責任で。何か問題があれば
restoreするか、バックアップを手動で戻してください。 - DeepAI、DeepAI Codeは各権利者の商標です。
| DeepAI Code | 状態 |
|---|---|
| 0.3.19 (Windows) | ✅ 動作確認済み |
| 0.3.20 (Windows) | ✅ 動作確認済み |
| 0.3.30 (Windows) | ✅ 動作確認済み |
| 0.3.19 (macOS) | 🧪 未検証(コードは対応済み。検証PR歓迎) |
| Linux版アプリ | 実施不可(公式ダウンロードは現在Windows/Macのみ。将来の提供に備えてCLIは対応済み) |
新しいバージョンが出たら versions.json を更新してPRをお願いします。
要件: Node.js 20以上(依存パッケージなし)。EdgeまたはChromeがあると適用前に起動試験が自動で走ります。
# 適用(バックアップ作成 → 差し替え)
npx deepai-code-ja-patch apply
# 元に戻す
npx deepai-code-ja-patch restore
# 状態確認(インストール先・バージョン・対応可否)
npx deepai-code-ja-patch statusapply の動作:
- インストール先を自動検出(見つからない場合は
--resources "C:\...\resources"で指定) - バージョンが
versions.jsonに無ければ拒否(--forceで例外) - すでに適用済みなら、最新バックアップを自動復元してから構築します(手動の
restoreは不要) - DeepAI Codeが起動中なら拒否(完全に終了してから再実行)
- あなたの
server.asarからパッチ済みアーカイブを生成し、全エントリのSHA-256を検証 - 起動試験(ヘッドレスEdge/ChromeでUIを実際に起動し、JS例外を検査)— 合格するまで一切書き換えません
- バックアップ作成 → 差し替え → ハッシュ照合(不一致なら自動復元)
- 公式のダウンロードは現在 Windows / Mac のみです。Linux版が提供された場合に備え、CLIはインストール先候補・Chromium検出・プロセスチェックに対応済みです
- macOS版での動作はまだ検証されていません。動作確認・PRを歓迎します(
restoreで元に戻せます) - LinuxではElectronのasar改ざん検証が働かないため、ツールはヒューズ検出時に警告のみ出します
- Linux/macOSで
/opt等への書き込みに権限が必要な場合はsudoで実行してください
node bin/patch.mjs build --asar <server.asar> --out <出力先> # 適用せず生成のみ
node bin/patch.mjs build --asar <server.asar> --out <出力先> # 起動試験つき- UIは
server.asar内のapps/server/dist/client(React SPA)にあり、英語がミニファイ済みJSに直接埋め込まれています(i18n機構なし) dictionaries/*.jsonのキー(英語の完全一致リテラル)を値(日本語)で置換して再パックします- 実行時に生成される文字列(キーバインタイトル等)は
code-patches.jsonのコードパッチで対応(_始まりの辞書はコードパッチ用データ)
- 内部タグと衝突する語(
Success/Failure等、コードが比較に使う語)は翻訳しない - キーバインドの WHEN 条件式は設定値そのものなので翻訳しない(下の対応表を参照)
- 製品名・フォント名・キー名(
SnapShots、Arial、Enter等)は原則原文
キーバインド設定の「WHEN」列に表示される識別子は設定値そのものです。意味は以下の通り:
| 識別子 | 意味 |
|---|---|
常時(元表記: Always)/ 空欄 |
常に発動 |
terminalFocus |
ターミナルにフォーカスがあるとき |
!terminalFocus |
ターミナルにフォーカスがないとき(! = 否定) |
previewFocus |
プレビューにフォーカスがあるとき |
isDesktop / isWeb |
デスクトップアプリ / ブラウザー |
- 動的な文章(
${...}で名前や数値が挟まれる文)は翻訳できません - サーバー側で定義されるラベル(思考レベルの
Medium/High等)は本パッチの対象外です - ダブルクォート文字列(バッククォートを含む文)は対象外です
- 設定画面・主要UIはかなりカバーしていますが、チャット/スレッド画面の一部は未対応です
- 文言は機械的な完全一致置換のため、文脈によっては不自然な訳があります → PRで改善歓迎
dictionaries/*.jsonに"English string": "日本語"を追加(番号順ファイル、あとのファイルが優先)- 翻訳してはいけない語に注意(上記の方針参照。誤追加はアプリを壊します)
node bin/patch.mjs build --asar <server.asar> --out test.asarで起動試験が通ることを確認してPR
MIT — 詳細は LICENSE を参照。
DeepAI Codeに公式の多言語対応が実装された場合、本リポジトリはアーカイブします。そちらをご利用ください。