rea/website/locales/ja/messages.po

13803 lines
580 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#
msgid ""
msgstr ""
"Project-Id-Version: REA website\n"
"Language: ja\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Initial-Translation: Machine-assisted baseline; see website/locales/README.md for review workflow\n"
#: website/public/blog/index.html:103
msgctxt "page:blog/index.html"
msgid "Skip to content"
msgstr "コンテンツにスキップ"
#. {ph0}: <a href="../">
#. {ph1}: </a>
#: website/public/blog/index.html:194
#, python-brace-format
msgctxt "page:blog/index.html"
msgid "{ph0}Home{ph1} / Blog"
msgstr "{ph0}ホーム{ph1} /ブログ"
#: website/public/blog/index.html:195
msgctxt "page:blog/index.html"
msgid "Blog."
msgstr "ブログ。"
#: website/public/blog/index.html:196
msgctxt "page:blog/index.html"
msgid "Thoughts on reverse engineering."
msgstr "リバースエンジニアリングに関する考え。"
#. {ph0}: <br />
#: website/public/blog/index.html:214
#, python-brace-format
msgctxt "page:blog/index.html"
msgid "Game reconstruction{ph0}Essay"
msgstr "ゲーム再構築{ph0}小論文"
#: website/public/blog/index.html:216
msgctxt "page:blog/index.html"
msgid "The industrial revolution in reverse engineering"
msgstr "リバースエンジニアリングにおける産業革命"
#: website/public/blog/index.html:217
msgctxt "page:blog/index.html"
msgid ""
"What manual RE and reconstructing TH08, TH095 and TH04 taught me about "
"agents, verification and knowledge that compounds across projects."
msgstr ""
"どのようなマニュアル再とTH08を再構築,TH095とTH04は、エージェントについて教えてくれました,プロジェクト間で化合物の検証と知識."
#: website/public/blog/index.html:207 website/public/blog/index.html:222
msgctxt "page:blog/index.html"
msgid "Read the article"
msgstr "記事を読む"
#: website/public/blog/index.html:225
msgctxt "page:blog/index.html"
msgid "By N0zoM1z0 · 10 October 2026"
msgstr "によってN0zoM1z0•10 10月2026"
#. {ph0}: <span aria-hidden="true">
#. {ph1}: </span>
#: website/public/blog/index.html:244
#: website/public/blog/reverse-engineering-models/index.html:883
#: website/public/blog/touhou-reconstruction/index.html:1080
#: website/public/examples/dino-lab/index.html:475
#: website/public/faq/index.html:573
#: website/public/first-investigation/index.html:523
#: website/public/get-started/index.html:882
#: website/public/guides/browser/index.html:507
#: website/public/guides/index.html:282
#: website/public/guides/javascript/index.html:503
#: website/public/guides/native/index.html:509 website/public/index.html:1191
#: website/public/showcase/aegis/index.html:808
#: website/public/showcase/ctf/index.html:777
#: website/public/showcase/dx-ball/index.html:785
#: website/public/showcase/index.html:317
#: website/public/showcase/notion/index.html:631
#: website/public/showcase/th04/index.html:800
#, python-brace-format
msgctxt "shared"
msgid "{ph0}↑{ph1} Top"
msgstr "{ph0}↑{ph1} トップ"
#: website/public/blog/index.html:6
msgctxt "page:blog/index.html"
msgid "REA Blog — Thoughts on Reverse Engineering"
msgstr "REAブログ-リバースエンジニアリングに関する考え"
#: website/public/blog/index.html:7
msgctxt "page:blog/index.html"
msgid ""
"Thoughts on reverse engineering, drawing on practical experience with REA "
"and AI agents."
msgstr "REAとAIエージェントの実践的な経験に基づいて、リバースエンジニアリングに関する考え。"
#: website/public/blog/index.html:75 website/public/blog/index.html:88
#: website/public/blog/reverse-engineering-models/index.html:75
#: website/public/blog/reverse-engineering-models/index.html:88
#: website/public/blog/touhou-reconstruction/index.html:75
#: website/public/blog/touhou-reconstruction/index.html:88
#: website/public/examples/dino-lab/index.html:75
#: website/public/examples/dino-lab/index.html:88
#: website/public/faq/index.html:75 website/public/faq/index.html:88
#: website/public/first-investigation/index.html:75
#: website/public/first-investigation/index.html:88
#: website/public/get-started/index.html:75
#: website/public/get-started/index.html:88
#: website/public/guides/browser/index.html:75
#: website/public/guides/browser/index.html:88
#: website/public/guides/index.html:75 website/public/guides/index.html:88
#: website/public/guides/javascript/index.html:75
#: website/public/guides/javascript/index.html:88
#: website/public/guides/native/index.html:75
#: website/public/guides/native/index.html:88 website/public/index.html:75
#: website/public/index.html:88 website/public/showcase/aegis/index.html:75
#: website/public/showcase/aegis/index.html:88
#: website/public/showcase/ctf/index.html:75
#: website/public/showcase/ctf/index.html:88
#: website/public/showcase/dx-ball/index.html:75
#: website/public/showcase/dx-ball/index.html:88
#: website/public/showcase/index.html:75 website/public/showcase/index.html:88
#: website/public/showcase/notion/index.html:75
#: website/public/showcase/notion/index.html:88
#: website/public/showcase/th04/index.html:75
#: website/public/showcase/th04/index.html:88
msgctxt "shared"
msgid ""
"REA — Find out how software works. Reverse engineering with your coding "
"agent."
msgstr "REA—ソフトウェアがどのように動作するかを調べます。 コーディングエージェントとのリバースエンジニアリング。"
#: website/public/blog/index.html:108
#: website/public/blog/reverse-engineering-models/index.html:108
#: website/public/blog/touhou-reconstruction/index.html:108
#: website/public/examples/dino-lab/index.html:109
#: website/public/faq/index.html:108
#: website/public/first-investigation/index.html:108
#: website/public/get-started/index.html:108
#: website/public/guides/browser/index.html:108
#: website/public/guides/index.html:108
#: website/public/guides/javascript/index.html:108
#: website/public/guides/native/index.html:108 website/public/index.html:110
#: website/public/showcase/aegis/index.html:109
#: website/public/showcase/ctf/index.html:108
#: website/public/showcase/dx-ball/index.html:108
#: website/public/showcase/index.html:108
#: website/public/showcase/notion/index.html:108
#: website/public/showcase/th04/index.html:108
msgctxt "shared"
msgid "REA home"
msgstr "REA ホーム"
#: website/public/blog/index.html:112
#: website/public/blog/reverse-engineering-models/index.html:112
#: website/public/blog/touhou-reconstruction/index.html:112
#: website/public/examples/dino-lab/index.html:113
#: website/public/faq/index.html:112
#: website/public/first-investigation/index.html:112
#: website/public/get-started/index.html:112
#: website/public/guides/browser/index.html:112
#: website/public/guides/index.html:112
#: website/public/guides/javascript/index.html:112
#: website/public/guides/native/index.html:112 website/public/index.html:114
#: website/public/showcase/aegis/index.html:113
#: website/public/showcase/ctf/index.html:112
#: website/public/showcase/dx-ball/index.html:112
#: website/public/showcase/index.html:112
#: website/public/showcase/notion/index.html:112
#: website/public/showcase/th04/index.html:112
msgctxt "shared"
msgid "Main navigation"
msgstr "メインナビゲーション"
#: website/public/blog/index.html:130
#: website/public/blog/reverse-engineering-models/index.html:130
#: website/public/blog/touhou-reconstruction/index.html:130
#: website/public/examples/dino-lab/index.html:131
#: website/public/faq/index.html:130
#: website/public/first-investigation/index.html:130
#: website/public/get-started/index.html:130
#: website/public/guides/browser/index.html:130
#: website/public/guides/index.html:130
#: website/public/guides/javascript/index.html:130
#: website/public/guides/native/index.html:130 website/public/index.html:132
#: website/public/showcase/aegis/index.html:131
#: website/public/showcase/ctf/index.html:130
#: website/public/showcase/dx-ball/index.html:130
#: website/public/showcase/index.html:130
#: website/public/showcase/notion/index.html:130
#: website/public/showcase/th04/index.html:130
msgctxt "shared"
msgid "REA on GitHub"
msgstr "GitHub で REA を見る"
#: website/public/blog/index.html:150
#: website/public/blog/reverse-engineering-models/index.html:150
#: website/public/blog/touhou-reconstruction/index.html:150
#: website/public/examples/dino-lab/index.html:151
#: website/public/faq/index.html:150
#: website/public/first-investigation/index.html:150
#: website/public/get-started/index.html:150
#: website/public/guides/browser/index.html:150
#: website/public/guides/index.html:150
#: website/public/guides/javascript/index.html:150
#: website/public/guides/native/index.html:150 website/public/index.html:152
#: website/public/showcase/aegis/index.html:151
#: website/public/showcase/ctf/index.html:150
#: website/public/showcase/dx-ball/index.html:150
#: website/public/showcase/index.html:150
#: website/public/showcase/notion/index.html:150
#: website/public/showcase/th04/index.html:150
msgctxt "shared"
msgid "Join REA on Discord"
msgstr "REA の Discord に参加"
#: website/public/blog/index.html:169
#: website/public/blog/reverse-engineering-models/index.html:169
#: website/public/blog/touhou-reconstruction/index.html:169
#: website/public/examples/dino-lab/index.html:170
#: website/public/faq/index.html:169
#: website/public/first-investigation/index.html:169
#: website/public/get-started/index.html:169
#: website/public/guides/browser/index.html:169
#: website/public/guides/index.html:169
#: website/public/guides/javascript/index.html:169
#: website/public/guides/native/index.html:169 website/public/index.html:171
#: website/public/showcase/aegis/index.html:170
#: website/public/showcase/ctf/index.html:169
#: website/public/showcase/dx-ball/index.html:169
#: website/public/showcase/index.html:169
#: website/public/showcase/notion/index.html:169
#: website/public/showcase/th04/index.html:169
msgctxt "shared"
msgid "Follow REA on X"
msgstr "X で REA をフォロー"
#: website/public/blog/index.html:244
msgctxt "page:blog/index.html"
msgid "Back to top"
msgstr "ページ上部へ"
#: website/public/blog/touhou-reconstruction/index.html:103
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid "Skip to content"
msgstr "コンテンツにスキップ"
#. {ph0}: <a href="../../">
#. {ph1}: </a>
#. {ph2}: <a href="../">
#. {ph3}: </a>
#: website/public/blog/touhou-reconstruction/index.html:194
#, python-brace-format
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid "{ph0}Home{ph1} / {ph2}Blog{ph3} / Touhou reconstruction"
msgstr "{ph0}ホーム{ph1} / {ph2}ブログ{ph3} /東方復興"
#: website/public/blog/touhou-reconstruction/index.html:198
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid "Essay · Touhou reconstruction"
msgstr "エッセイ·東方復興"
#: website/public/blog/touhou-reconstruction/index.html:199
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid "The industrial revolution in reverse engineering."
msgstr "リバースエンジニアリングにおける産業革命。"
#: website/public/blog/touhou-reconstruction/index.html:200
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid "By N0zoM1z0 · 10 October 2026"
msgstr "によってN0zoM1z0•10 10月2026"
#: website/public/blog/touhou-reconstruction/index.html:202
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid "Takeaway"
msgstr "要点"
#. {ph0}: <strong>
#. {ph1}: </strong>
#: website/public/blog/touhou-reconstruction/index.html:204
#, python-brace-format
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid ""
"{ph0}Give agents autonomy over the investigation.{ph1} Set a clear goal and "
"acceptance criteria, then let the agent decide what to try next."
msgstr "{ph0}エージェントに調査の自律性を与えます。{ph1} 明確な目標と合格基準を設定し、次に何を試すかをエージェントに決定させます。"
#. {ph0}: <strong>
#. {ph1}: </strong>
#: website/public/blog/touhou-reconstruction/index.html:209
#, python-brace-format
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid ""
"{ph0}Use the repository and Git as working memory.{ph1} Keep the reasoning "
"with the code. Git checkpoints let the next session continue after the "
"conversation ends."
msgstr ""
"{ph0}リポジトリとGitを作業メモリとして使用します。{ph1} 推論をコードで維持してください。 Git "
"checkpointsは、会話が終了した後に次のセッションを続行させます。"
#. {ph0}: <strong>
#. {ph1}: </strong>
#: website/public/blog/touhou-reconstruction/index.html:214
#, python-brace-format
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid ""
"{ph0}Let evidence decide what you claim.{ph1} A confident explanation still "
"needs testing. “Unknown” is a valid answer when the evidence is incomplete."
msgstr ""
"{ph0}証拠があなたが主張するものを決定しましょう。{ph1} 自信を持って説明するには、まだテストが必要です。 "
"「不明」は、証拠が不完全な場合の有効な答えです。"
#. {ph0}: <strong>
#. {ph1}: </strong>
#: website/public/blog/touhou-reconstruction/index.html:219
#, python-brace-format
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid ""
"{ph0}Test the oracle too.{ph1} Try cases it should reject. If it misses a "
"bug, revisit the earlier results that depended on it."
msgstr ""
"{ph0}検証リファレンス(oracle)もテストします。{ph1} それが拒否すべきケースを試してみてください。 "
"バグを見逃した場合は、それに依存していた以前の結果を再訪してください。"
#. {ph0}: <strong >
#. {ph1}: </strong >
#: website/public/blog/touhou-reconstruction/index.html:224
#, python-brace-format
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid ""
"{ph0}We are in the early days of RE's industrial revolution.{ph1} The "
"methods are still taking shape. There is plenty left to explore."
msgstr "{ph0}私たちはREの産業革命の初期にいます。{ph1} メソッドはまだ形を取っています。 探索することがたくさん残っています。"
#: website/public/blog/touhou-reconstruction/index.html:236
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid "How experience compounds"
msgstr "どのように経験化合物"
#. {ph0}: <strong>
#. {ph1}: </strong>
#: website/public/blog/touhou-reconstruction/index.html:237
#, python-brace-format
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid "{ph0}Human direction{ph1} · Goal and acceptance criteria"
msgstr "{ph0}人間の方向性{ph1} *目標と合格基準"
#: website/public/blog/touhou-reconstruction/index.html:325
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid "Autonomy"
msgstr "自律性"
#: website/public/blog/touhou-reconstruction/index.html:326
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid "Agent"
msgstr "エージェント"
#. {ph0}: <br />
#: website/public/blog/touhou-reconstruction/index.html:327
#, python-brace-format
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid "Choose an experiment.{ph0}Propose a hypothesis."
msgstr "実験を選択します。{ph0}仮説を提案する。"
#: website/public/blog/touhou-reconstruction/index.html:330
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid "Verification"
msgstr "検証"
#: website/public/blog/touhou-reconstruction/index.html:331
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid "Oracle"
msgstr "検証基準"
#. {ph0}: <br />
#: website/public/blog/touhou-reconstruction/index.html:332
#, python-brace-format
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid "Test against a{ph0}concrete reference."
msgstr "Aに対するテスト{ph0}具体的な参照。"
#: website/public/blog/touhou-reconstruction/index.html:335
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid "Repository"
msgstr "リポジトリ"
#: website/public/blog/touhou-reconstruction/index.html:336
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid "Working memory"
msgstr "作業の記憶"
#. {ph0}: <br />
#: website/public/blog/touhou-reconstruction/index.html:337
#, python-brace-format
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid "Code, evidence,{ph0}checks and lessons."
msgstr "コード、証拠,{ph0}チェックとレッスン。"
#. {ph0}: <br />
#. {ph1}: <strong>
#. {ph2}: </strong>
#: website/public/blog/touhou-reconstruction/index.html:339
#, python-brace-format
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid "Mismatch{ph0}{ph1}Revise the hypothesis{ph2}"
msgstr "ミスマッチ{ph0}{ph1}仮説を修正する{ph2}"
#. {ph0}: <br />
#. {ph1}: <strong>
#. {ph2}: </strong>
#: website/public/blog/touhou-reconstruction/index.html:342
#, python-brace-format
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid "A better{ph0}{ph1}starting point{ph2}"
msgstr "より良い{ph0}{ph1}出発点{ph2}"
#: website/public/blog/touhou-reconstruction/index.html:345
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid "Reuse"
msgstr "再利用"
#. {ph0}: <strong>
#. {ph1}: </strong>
#: website/public/blog/touhou-reconstruction/index.html:346
#, python-brace-format
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid "{ph0}Pass{ph1} · Keep the result and its evidence"
msgstr "{ph0}パス{ph1} *結果とその証拠を保持する"
#: website/public/blog/touhou-reconstruction/index.html:358
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid ""
"Each project leaves the next with a better starting point. That includes "
"fixing the checks when we discover a gap."
msgstr "各プロジェクトは、より良い出発点で次のものを残します。 それには、ギャップを発見したときにチェックを修正することが含まれます。"
#: website/public/blog/touhou-reconstruction/index.html:365
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid "In this article"
msgstr "この記事の内容"
#. {ph0}: <a href="#august">
#. {ph1}: </a>
#: website/public/blog/touhou-reconstruction/index.html:367
#, python-brace-format
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid "{ph0}August 2026{ph1}"
msgstr "{ph0}2026年8月{ph1}"
#. {ph0}: <a href="#th08">
#. {ph1}: </a>
#: website/public/blog/touhou-reconstruction/index.html:368
#, python-brace-format
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid "{ph0}TH08: the continuation{ph1}"
msgstr "{ph0} TH08:続き{ph1}"
#. {ph0}: <a href="#different-approaches">
#. {ph1}: </a>
#: website/public/blog/touhou-reconstruction/index.html:369
#, python-brace-format
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid "{ph0}Two approaches{ph1}"
msgstr "{ph0}二つのアプローチ{ph1}"
#. {ph0}: <a href="#th095">
#. {ph1}: </a>
#: website/public/blog/touhou-reconstruction/index.html:370
#, python-brace-format
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid "{ph0}TH095: compounding{ph1}"
msgstr "{ph0} TH095:配合{ph1}"
#. {ph0}: <a href="#th04">
#. {ph1}: </a>
#: website/public/blog/touhou-reconstruction/index.html:371
#, python-brace-format
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid "{ph0}TH04: across architectures{ph1}"
msgstr "{ph0} TH04:アーキテクチャ間{ph1}"
#. {ph0}: <a href="#semantic-reconstruction">
#. {ph1}: </a>
#: website/public/blog/touhou-reconstruction/index.html:372
#, python-brace-format
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid "{ph0}From exact to readable{ph1}"
msgstr "{ph0}正確なものから読みやすいものへ{ph1}"
#. {ph0}: <a href="#industrial-shift">
#. {ph1}: </a>
#: website/public/blog/touhou-reconstruction/index.html:375
#, python-brace-format
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid "{ph0}The industrial shift{ph1}"
msgstr "{ph0}産業シフト{ph1}"
#. {ph0}: <a href="#possibilities">
#. {ph1}: </a>
#: website/public/blog/touhou-reconstruction/index.html:376
#, python-brace-format
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid "{ph0}What becomes possible{ph1}"
msgstr "{ph0}何が可能になるか{ph1}"
#: website/public/blog/touhou-reconstruction/index.html:381
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid "What changed in August 2026"
msgstr "2026年8月に何が変わったのか"
#: website/public/blog/touhou-reconstruction/index.html:382
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid ""
"Before this work, I had done a lot of manual reverse engineering. I would "
"inspect a function until I had an explanation, then test that explanation "
"against the program. Getting further meant spending more of my own time on "
"the next function. It also meant keeping an increasingly large picture in my"
" head."
msgstr ""
"この作業の前に、私は多くの手動リバースエンジニアリングを行っていました。 私は説明があるまで関数を検査し、その説明をプログラムに対してテストします。 "
"さらに得ることは、次の機能に自分の時間をもっと費やすことを意味しました。 それはまた、私の頭の中でますます大きな絵を保つことを意味しました。"
#: website/public/blog/touhou-reconstruction/index.html:389
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid ""
"Most of my RE work is on games. I reconstruct them so their behavior can be "
"understood and eventually carried into a port or a mod. That is the "
"experience behind this article. The method can be useful elsewhere, but each"
" field needs to establish what it can check against a reliable reference."
msgstr ""
"私の再作業のほとんどは、ゲームにあります. 私はそれらを再構築して、それらの動作を理解し、最終的にソフトウェアポートまたはmodに運ぶことができます。 "
"それがこの記事の背後にある経験です。 "
"このメソッドは他の場所でも役立ちますが、各フィールドは信頼できる参照に対してチェックできるものを確立する必要があります。"
#: website/public/blog/touhou-reconstruction/index.html:396
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid ""
"In August 2026, I started exploring agent-driven RE seriously. I wanted to "
"see how far an agent could get with access to the program and ordinary "
"development tools. Touhou reconstruction gave me a substantial project in "
"which to find out."
msgstr ""
"2026年8月、私はエージェント主導のREを真剣に探求し始めました。 "
"私は、エージェントがプログラムや通常の開発ツールにアクセスすることでどこまで得ることができるかを見たかったのです。 "
"東方復興は私に見つけるための実質的なプロジェクトを与えました。"
#: website/public/blog/touhou-reconstruction/index.html:402
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid ""
"The early progress was startling. An investigation could keep moving without"
" me choosing every individual step. A failed comparison might send the agent"
" to another caller. It could write a small diagnostic and use the result to "
"decide what to try next. Giving it that freedom made a difference: I could "
"spend more attention on the project's direction and on whether its checks "
"were trustworthy."
msgstr ""
"初期の進歩は驚くべきものでした。 調査は私がすべての個々のステップを選択せずに移動し続けることができます。 "
"比較に失敗すると、エージェントが別の呼び出し元に送信される可能性があります。 "
"小さな診断を記述し、その結果を使用して次に何を試すかを決定することができます。 "
"自由が違いをもたらしたことをそれに与える:私はプロジェクトの方向性とそのチェックが信頼できるかどうかにもっと注意を払うことができ"
#: website/public/blog/touhou-reconstruction/index.html:411
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid ""
"The pace got my attention first. Then I began wondering what would survive "
"beyond the current project. Would the next game benefit from everything we "
"had just learned?"
msgstr ""
"ペースは最初に私の注意を得ました。 それから私は現在のプロジェクトを超えて何が生き残るのだろうかと思い始めました。 "
"次のゲームは、私たちが学んだすべてのものから利益を得るでしょうか?"
#: website/public/blog/touhou-reconstruction/index.html:418
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid "TH08: building on human work"
msgstr "TH08:人間の仕事の上に構築"
#. {ph0}: <a href="https://github.com/N0zoM1z0/th08">
#. {ph1}: </a>
#. {ph2}: <a href="https://github.com/GensokyoClub/th08" >
#. {ph3}: </a >
#: website/public/blog/touhou-reconstruction/index.html:419
#, python-brace-format
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid ""
"{ph0}TH08{ph1}, Imperishable Night, began as a continuation of "
"{ph2}GensokyoClub's reconstruction{ph3}. Their public source gave me a "
"substantial foundation. It came with knowledge of the build and a history of"
" contributions that I preserved in the continuation."
msgstr ""
"{ph0} TH08 {ph1}、不滅の夜は、の続きとして始まった {ph2} GensokyoClubの再構築{ph3}. "
"彼らの公的な情報源は私に実質的な基盤を与えました。 それは、ビルドの知識と私が継続して保存した貢献の歴史が付属していました。"
#: website/public/blog/touhou-reconstruction/index.html:428
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid ""
"The imported history ends at the public 10 August checkpoint. My independent"
" continuation began on 13 August. By 19 August, the ledger recorded source "
"for all 1,107 identified game functions."
msgstr ""
"同年10月場所で初土俵を踏んだ。 私の独立した継続は8月13日に始まりました。 "
"8月19日までに、台帳は1,107の特定されたゲーム機能すべてのソースを記録しました。"
#: website/public/blog/touhou-reconstruction/index.html:433
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid ""
"A playable Linux reconstruction port was committed on 24 August, roughly "
"eleven days after the continuation began. A Web edition followed. The native"
" Linux 64-bit release arrived on 30 August."
msgstr ""
"Linux再構築ポートは、継続が始まった約十一日後の8月24日にコミットされました。 Web版が続いた。 "
"ネイティブLinux64ビットリリースは8月30日に到着しました。"
#: website/public/blog/touhou-reconstruction/index.html:438
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid ""
"What struck me was that the work had reached a program people could run. "
"Getting there required following problems beyond an individual function. "
"Even when two functions looked correct in isolation, they could accidentally"
" use separate copies of state that should have been shared."
msgstr ""
"私を襲ったのは、仕事が人々が実行できるプログラムに達していたということでした。 そこに到達するには、個々の機能を超えた次の問題が必要でした。 "
"二つの関数が別々に正しく見えたとしても、共有されるべき状態の別々のコピーを誤って使用する可能性があります。"
#. {ph0}: <strong>
#. {ph1}: </strong>
#: website/public/blog/touhou-reconstruction/index.html:445
#, python-brace-format
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid ""
"This made reference checks central to the work. I call them "
"{ph0}oracles{ph1}. A code comparison can tell us whether a reconstructed "
"function reproduces the original instructions. A runtime check can tell us "
"whether an exercised route reaches the expected state. The agent proposes an"
" explanation and tests it; a mismatch gives it something specific to "
"investigate."
msgstr ""
"これにより、作業の中心となる参照チェックが行われました。 私はそれらを呼び出します {ph0}検証参考文献(オラクル){ph1}. "
"コード比較は、再構築された関数が元の命令を再現するかどうかを知ることができます。 "
"実行時チェックは、実行されたルートが予想される状態に達するかどうかを確認できます。 "
"エージェントは説明を提案し、それをテストします;不一致はそれに調査するために特定の何かを与えます。"
#: website/public/blog/touhou-reconstruction/index.html:453
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid "An exact match with the wrong constant"
msgstr "間違った定数と完全に一致する"
#: website/public/blog/touhou-reconstruction/index.html:454
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid ""
"An oracle is software someone wrote. TH08 gave me a clear reminder of how "
"much can depend on that software."
msgstr ""
"検証リファレンス(oracle)は、誰かが書いたソフトウェアです。 TH08は、そのソフトウェアにどれだけ依存できるかを明確に思い出させてくれました。"
#. {ph0}: <code>0.0</code>
#. {ph1}: <code>128.0</code>
#: website/public/blog/touhou-reconstruction/index.html:458
#, python-brace-format
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid ""
"In September, a bug reported by a downstream Switch port led back to item "
"auto-collection. The reconstructed source checked player power against "
"{ph0}. The original used {ph1}, the maximum-power threshold."
msgstr ""
"9月には、ダウンストリームスイッチポートから報告されたバグがアイテムの自動収集に戻りました。 再構築されたソースは、プレーヤーのパワーをチェックしました"
" {ph0}. 使用される原物 {ph1}、最大電力しきい値。"
#: website/public/blog/touhou-reconstruction/index.html:464
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid ""
"Normal power is non-negative, so the reconstructed power check was "
"effectively always satisfied. Above the collection line, the game could "
"attract items without requiring maximum power. The other exceptions in the "
"condition were correct. This one constant changed the behavior."
msgstr ""
"通常の電力は負ではないので、再構成された電力チェックは事実上常に満たされていました。 "
"コレクションラインの上に、ゲームは最大の力を必要とせずにアイテムを引き付けることができます。 条件の他の例外は正しかった。 "
"この1つの定数が動作を変更しました。"
#. {ph0}: <strong >
#. {ph1}: </strong >
#: website/public/blog/touhou-reconstruction/index.html:471
#, python-brace-format
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid "{ph0}Yet the function had already passed the exact comparison.{ph1}"
msgstr "{ph0}しかし、関数はすでに正確な比較に合格していました。{ph1}"
#: website/public/blog/touhou-reconstruction/index.html:477
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid ""
"A rebuild can put a constant at a different address. The comparison tool "
"accounted for that by adjusting addresses in the compiled instructions "
"before comparing them with the original. But it never checked the floating-"
"point value stored at the referenced address."
msgstr ""
"再構築は、別のアドレスに定数を置くことができます。 "
"比較ツールは、コンパイルされた命令のアドレスを元の命令と比較する前に調整することによってそれを説明しました。 "
"しかし、参照されたアドレスに格納されている浮動小数点値は決してチェックされませんでした。"
#. {ph0}: <code>128.0</code>
#. {ph1}: <code>0.0</code>
#: website/public/blog/touhou-reconstruction/index.html:484
#, python-brace-format
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid ""
"That left a hole in the check. It could point the reconstructed instruction "
"at the original's {ph0} while the source still said {ph1}. The instruction "
"bytes matched. The source meant something different."
msgstr ""
"それは小切手に穴を残しました。 それは元ので再構築された命令を指すことができます {ph0} ソースがまだ言っている間 {ph1}. "
"命令バイトが一致しました。 ソースは別の何かを意味しました。"
#. {ph0}: <a href="https://github.com/N0zoM1z0/th08/pull/11" >
#. {ph1}: </a >
#. {ph2}: <a href="https://github.com/N0zoM1z0/th08/pull/13">
#. {ph3}: </a>
#: website/public/blog/touhou-reconstruction/index.html:490
#, python-brace-format
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid ""
"The {ph0}2 September fix{ph1} corrected the source and made the comparison "
"check the referenced constant's actual bytes. A {ph2}wider audit{ph3} then "
"examined 1,548 floating-literal references. It found another twelve "
"incorrect references across five accepted functions."
msgstr ""
"ザ- {ph0}2月の修正{ph1} ソースを修正し、参照された定数の実際のバイトを比較チェックしました。 A {ph2}より広い監査{ph3} "
"次に、1,548個の浮動小数点定数参照を調べました。 それは5つの受け入れられた関数間で別の12の誤った参照を見つけました。"
#: website/public/blog/touhou-reconstruction/index.html:501
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid ""
"The comparison now checks every such floating literal. Its tests include "
"deliberately wrong values to make sure they are rejected. We also had to "
"revisit results that had passed the weaker check."
msgstr ""
"比較では、このようなすべての浮動小数点定数がチェックされます。 そのテストには、意図的に間違った値が含まれており、拒否されていることを確認します。 "
"また、弱いチェックに合格した結果を再検討する必要がありました。"
#. {ph0}: <strong>
#. {ph1}: </strong>
#: website/public/blog/touhou-reconstruction/index.html:506
#, python-brace-format
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid ""
"{ph0}The oracle needed reconstructing too.{ph1} Repairing it was part of "
"repairing the game."
msgstr ""
"{ph0}検証リファレンス(oracle)も再構築する必要がありました。{ph1} それを修復することは、ゲームを修復することの一部でした。"
#: website/public/blog/touhou-reconstruction/index.html:510
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid ""
"That matters when the team is mostly one person working with agents. I "
"cannot personally inspect every line they produce, so much of my confidence "
"rests on their checks. A shared oracle's blind spot can affect many "
"investigations before I notice it. I have to understand what the checker "
"actually verifies and test it against cases that ought to fail."
msgstr ""
"それは、チームが主にエージェントと協力している一人の人である場合に重要です。 "
"私は個人的に彼らが生産するすべてのラインを検査することはできませんので、私の自信の多くは彼らのチェックにかかっています。 Shared "
"verification reference(oracle)の死角は、私が気付く前に多くの調査に影響を与える可能性があります。 "
"チェッカーが実際に何を検証し、失敗するはずのケースに対してテストするかを理解する必要があります。"
#. {ph0}: <strong >
#. {ph1}: </strong >
#: website/public/blog/touhou-reconstruction/index.html:518
#, python-brace-format
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid ""
"As the work continued, those checks became part of the repository. So did "
"the reasons for source changes and notes that let a later session pick up "
"where an earlier one stopped. {ph0}The repository was becoming the project's"
" working memory.{ph1}"
msgstr ""
"作業が進むにつれて、これらのチェックはリポジトリの一部になりました。 "
"ソースの変更の理由と、以前のセッションが停止した場所で後のセッションがピックアップできるようにするメモもそうでした。 "
"{ph0}ソースコードリポジトリはプロジェクトのワーキングメモリになりつつありました。{ph1}"
#. {ph0}: <strong >
#. {ph1}: </strong >
#: website/public/blog/touhou-reconstruction/index.html:527
#, python-brace-format
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid ""
"{ph0}A successful batch gave us both recovered code and a better environment"
" for the next batch.{ph1}"
msgstr "{ph0}バッチが成功すると、復元されたコードと次のバッチのためのより良い環境の両方が得られました。{ph1}"
#: website/public/blog/touhou-reconstruction/index.html:535
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid "Two different ideas of reconstruction"
msgstr "再建の2つの異なるアイデア"
#. {ph0}: <a
#. href="https://web.archive.org/web/20260909051514/https://github.com/GensokyoClub/th08#important-
#. notice" >
#. {ph1}: </a >
#: website/public/blog/touhou-reconstruction/index.html:536
#, python-brace-format
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid ""
"GensokyoClub's {ph0}public README{ph1} makes its disagreement with this kind"
" of work explicit. The notice announces that further development will happen"
" privately until completion. One passage reads:"
msgstr ""
"GensokyoClubの {ph0}パブリックREADME{ph1} この種の作業との意見の相違を明示的にします。 "
"この通知により、さらなる開発が完了するまで非公開で行われることが発表されました。 一つの通路が読みます:"
#: website/public/blog/touhou-reconstruction/index.html:547
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid ""
"The rise of grifters (AI decompilations and ports) in this space taking from"
" our work paints a bad image for future decompilation efforts…"
msgstr ""
"私たちの仕事から取って、この空間でのグリフター(AIの逆コンパイルとポート)の台頭は、将来の逆コンパイルの努力のための悪いイメージを描きます…"
#: website/public/blog/touhou-reconstruction/index.html:553
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid ""
"The notice also describes the psychological toll on the maintainers. Their "
"contribution policy excludes pull requests produced primarily with AI. They "
"have put their free time into difficult work, and that work helped make my "
"continuation possible. I respect the effort behind it. The disagreement I "
"want to discuss is about how reconstruction should proceed and how a "
"contribution should be judged."
msgstr ""
"この通知には、メンテナーの心理的な犠牲も記載されています。 彼らの貢献ポリシーは、主にAIで生成されたプルリクエストを除外します。 "
"彼らは自分の自由な時間を困難な仕事に入れており、その仕事は私の継続を可能にするのに役立ちました。 私はその背後にある努力を尊重します。 "
"私が議論したい意見の相違は、復興をどのように進めるべきか、そして貢献をどのように判断すべきかということです。"
#: website/public/blog/touhou-reconstruction/index.html:562
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid ""
"In the manual workflow I knew, developing an understanding of a function and"
" reconstructing it usually fell to the same person. A project relied heavily"
" on that person's expertise. Trust in the contributor mattered because so "
"much of the reasoning happened while they worked."
msgstr ""
"私が知っていた手動ワークフローでは、機能の理解を開発し、それを再構築することは、通常、同じ人に落ちました。 "
"プロジェクトはその人の専門知識に大きく依存していました。 彼らが働いている間に推論の多くが起こったので、貢献者への信頼は重要でした。"
#: website/public/blog/touhou-reconstruction/index.html:569
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid ""
"Existing projects already preserve knowledge in their source and build "
"tools. What changed for me was that an agent could use that knowledge to "
"pursue the next investigation on its own."
msgstr ""
"既存のプロジェクトは、ソースとビルドツールの知識をすでに保持しています。 "
"私にとって変わったのは、エージェントがその知識を使って次の調査を単独で追求できるということでした。"
#: website/public/blog/touhou-reconstruction/index.html:574
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid ""
"In my continuation, I decide the objective and the standard for accepting a "
"result. The agent has broad freedom to investigate. Its proposed "
"reconstruction then has to survive the relevant checks. I want another "
"person to be able to examine why we chose an implementation, even if an "
"agent did most of the work."
msgstr ""
"私の継続では、私は結果を受け入れるための目的と基準を決定します。 エージェントは調査する幅広い自由を持っています。 "
"その提案された再建は、関連するチェックを生き残るために持っています。 "
"エージェントがほとんどの作業を行ったとしても、他の人がなぜ実装を選んだのかを調べることができるようにしたいと思います。"
#: website/public/blog/touhou-reconstruction/index.html:581
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid ""
"This can be a difficult transition. Years of careful work may become the "
"foundation for a continuation that moves much faster. That raises real "
"questions about credit. It also changes what maintainers need to know before"
" accepting a contribution."
msgstr ""
"これは難しい移行になる可能性があります。 注意深い仕事の年は大いにより速く動く継続のための基礎になるかもしれない。 "
"それは信用についての実質の質問を上げる。 また、コントリビューションを受け入れる前にメンテナが知る必要があることも変更されます。"
#: website/public/blog/touhou-reconstruction/index.html:587
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid ""
"The industrial analogy helps me think about this. In a craft, much of the "
"process depends on the skill of the person carrying it out. Machinery "
"changes where that skill is needed. Someone still has to design the process "
"and recognize when its output is wrong. Different communities can choose how"
" much of that change they want to take on."
msgstr ""
"産業的な類推は、私がこれについて考えるのに役立ちます。 工芸品では、プロセスの多くはそれを実行する人のスキルに依存します。 "
"機械はその技術が必要とされるところで変わる。 誰かがまだプロセスを設計し、その出力が間違っているときに認識する必要があります。 "
"さまざまなコミュニティが、その変更のどれだけを実行したいかを選択できます。"
#: website/public/blog/touhou-reconstruction/index.html:595
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid ""
"My choice is to continue openly, with the inherited work credited and its "
"history preserved. I want the new work to be reviewable. That gives us a way"
" to ask how far this approach can go and to learn from what goes wrong along"
" the way."
msgstr ""
"私の選択は、継承された作品がクレジットされ、その歴史が保存されたまま、公然と継続することです。 新しい作品をレビューできるようにしたいです。 "
"それは私たちにこのアプローチがどこまで行くことができるかを尋ね、道に沿って何がうまくいかないかから学ぶ方法を与えます。"
#. {ph0}: <a
#. href="https://github.com/GensokyoClub/th08/blob/e874b98e210b3be1ed21c5e03d54b883eac5069c/README.md#important-
#. notice" >
#. {ph1}: </a >
#. {ph2}: <a
#. href="https://github.com/GensokyoClub/th08/blob/f345c7dee07b849f2ff93a0029ab5ede126bf12c/CODE_OF_CONDUCT.md"
#. >
#. {ph3}: </a >
#. {ph4}: <a
#. href="https://github.com/N0zoM1z0/th08/blob/d2a00f4acb4a13916e07a00bd13f714961714628/README.md#credits-
#. and-provenance" >
#. {ph5}: </a >
#: website/public/blog/touhou-reconstruction/index.html:601
#, python-brace-format
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid ""
"Source: GensokyoClub's {ph0}README notice{ph1}, checked on 10 October 2026, "
"and its {ph2}contribution policy{ph3}. The quotation is a shortened excerpt."
" TH08's {ph4}credits and provenance{ph5} record the continuation boundary."
msgstr ""
"ソース:GensokyoClubの {ph0}READMEのお知らせ{ph1}、2026年10月10日にチェックされ、その "
"{ph2}貢献方針{ph3}. 引用は短縮された抜粋です。 TH08の {ph4}クレジットと出所{ph5} 継続境界を記録します。"
#: website/public/blog/touhou-reconstruction/index.html:619
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid "TH095: experience starts compounding"
msgstr "TH095:経験は配合を開始します"
#. {ph0}: <a href="https://github.com/N0zoM1z0/th095">
#. {ph1}: </a>
#: website/public/blog/touhou-reconstruction/index.html:620
#, python-brace-format
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid ""
"{ph0}TH095{ph1}, Shoot the Bullet, made the value of that experience much "
"easier to see. Its repository began on 29 August with zero confirmed game "
"functions in the ledger. We still had to learn the game. But we already knew"
" much more about how to begin a reconstruction and how to keep it moving."
msgstr ""
"{ph0} TH095 {ph1}、弾丸を撃つ、その経験の価値をはるかに見やすくしました。 同月29日にはゲームソフトの発売が開始された。 "
"私たちはまだゲームを学ばなければなりませんでした。 "
"しかし、私たちはすでに再建を開始する方法とそれを動かし続ける方法についてはるかに多くを知っていました。"
#: website/public/blog/touhou-reconstruction/index.html:628
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid ""
"By 7 September, all 697 identified game functions had source. By 8 "
"September, 696 had been accepted as exact comparisons. The whole program "
"linked on 9 September. The Windows i386 reconstruction was marked playable "
"on 10 September, about twelve days after initialization."
msgstr ""
"9月7日までに、特定された697のゲーム機能すべてがソースを持っていました。 8年(696年)までには、正確な比較として受け入れられていた。 "
"プログラム全体は9月にリンクされています。 Windows i386は、初期化から約10日後の10月に再構築された。"
#: website/public/blog/touhou-reconstruction/index.html:635
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid ""
"I found this more exciting than the first project's speed. A fresh target "
"could benefit from work done on another game. The experience was already "
"present in the tools and in the way the project was organized."
msgstr ""
"私はこれが最初のプロジェクトのスピードよりも刺激的だと感じました。 新しいターゲットは、別のゲームで行われた作業の恩恵を受けることができます。 "
"この経験は、ツールとプロジェクトの編成方法にすでに存在していました。"
#: website/public/blog/touhou-reconstruction/index.html:641
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid ""
"For example, TH08 had taught us to pay attention to the assembled program "
"early. If several recovered functions depend on the same state, their "
"isolated comparisons leave an important question open. We need to see them "
"working together. That lesson helped shape how we approached TH095's whole-"
"program build."
msgstr ""
"たとえば、TH08は、組み立てられたプログラムに早期に注意を払うように教えてくれました。 "
"いくつかの回復された関数が同じ状態に依存している場合、それらの分離された比較は重要な質問を開いたままにします。 "
"彼らが一緒に働いているのを見る必要があります。 このレッスンは、TH095のプログラム全体のビルドにどのようにアプローチしたかを形作るのに役立ちました。"
#: website/public/blog/touhou-reconstruction/index.html:648
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid ""
"A lesson that stays in my head is useful while I am there. Once it becomes a"
" check that another session can run, it can keep helping after I have moved "
"on. The next agent can use the result without repeating the investigation "
"that led to it."
msgstr ""
"私がそこにいる間、私の頭の中にとどまるレッスンは役に立ちます。 別のセッションが実行できるチェックになると、私が移動した後も助け続けることができます。 "
"次のエージェントは、それにつながった調査を繰り返すことなく、結果を使用することができます。"
#: website/public/blog/touhou-reconstruction/index.html:654
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid ""
"The floating-literal bug belongs in that memory too. It explains why "
"checking a reference also requires checking the data behind it. Keeping that"
" correction with the code helps later projects avoid inheriting the old "
"check's blind spot."
msgstr ""
"浮動小数点定数のバグもそのメモリに属しています。 参照をチェックするには、その背後にあるデータをチェックする必要がある理由を説明します。 "
"コードでその修正を維持することは、後のプロジェクトが古いチェックの死角を継承するのを避けるのに役立ちます。"
#. {ph0}: <strong >
#. {ph1}: </strong >
#: website/public/blog/touhou-reconstruction/index.html:660
#, python-brace-format
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid ""
"{ph0}The method becomes part of the starting material for the next "
"game.{ph1} We can spend more of the next project's effort on what is "
"actually new about its target."
msgstr ""
"{ph0}この方法は、次のゲームの出発材料の一部になります。{ph1} "
"私たちは、次のプロジェクトの努力の多くを、その目標について実際に新しいものに費やすことができます。"
#: website/public/blog/touhou-reconstruction/index.html:668
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid ""
"The same benefit is available to people joining later. They can inspect a "
"decision and rerun its check before continuing the work. They do not have to"
" reconstruct the entire project's history to find out why the source looks "
"the way it does."
msgstr ""
"同じ利点は、後で参加する人々に利用可能です。 彼らは決定を検査し、作業を続行する前にそのチェックを再実行することができます。 "
"彼らは、ソースがそれがないように見える理由を見つけるために、プロジェクト全体の履歴を再構築する必要はありません。"
#: website/public/blog/touhou-reconstruction/index.html:676
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid "TH04: the workflow survives a different architecture"
msgstr "TH04:ワークフローは異なるアーキテクチャで存続します"
#. {ph0}: <a href="https://github.com/N0zoM1z0/th04">
#. {ph1}: </a>
#. {ph2}: <a href="https://github.com/nmlgc/ReC98">
#. {ph3}: </a>
#: website/public/blog/touhou-reconstruction/index.html:677
#, python-brace-format
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid ""
"{ph0}TH04{ph1}, Lotus Land Story, took this work into the PC-98 DOS era. The"
" target was now a 16-bit environment with four cooperating programs. "
"Understanding its hardware behavior required different evidence from the "
"Windows games. Existing {ph2}ReC98 work{ph3} gave us valuable knowledge and "
"source material here too."
msgstr ""
"{ph0} TH04 {ph1}、ロータスランド物語は、PC-98 DOS時代にこの作品を取りました。 "
"ターゲットは現在、4つの協力プログラムを持つ16ビット環境でした。 "
"そのハードウェアの動作を理解するには、Windowsゲームとは異なる証拠が必要でした。 既存の {ph2}Rec98作品{ph3} "
"私たちに貴重な知識とソース材料をここにも与えました。"
#: website/public/blog/touhou-reconstruction/index.html:686
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid ""
"The DOS reconstruction is now working. In my manual testing, I played "
"complete Normal routes through their endings and checked saves. The current "
"work is a native 64-bit port. Establishing a working DOS version first gives"
" that port a reference."
msgstr ""
"DOSの再構築は現在機能しています。 私の手動テストでは、私は彼らのエンディングを介して完全な通常のルートを再生し、保存を確認しました。 "
"現在の作業はネイティブの64ビットポートです。 動作中のDOSバージョンを確立すると、最初にそのポートに参照が与えられます。"
#: website/public/blog/touhou-reconstruction/index.html:692
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid ""
"The architecture changed what we needed to investigate. It also changed the "
"compiler and runtime against which we checked our work. But the agent could "
"still follow a question through to a result and let that result guide the "
"next experiment."
msgstr ""
"建築は私達が調査するために必要としたものを変えた。 また、作業をチェックしたコンパイラとランタイムも変更されました。 "
"しかし、エージェントはまだ結果に至るまでの質問に従うことができ、その結果は次の実験を導くことができます。"
#: website/public/blog/touhou-reconstruction/index.html:698
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid ""
"Consider the transition from gameplay to an ending. We need to know what "
"state carries across that boundary and which program is responsible for it. "
"That is something we can investigate against the DOS product. Once the "
"evidence and checks are available, an agent can work through the question "
"much as it did on a Windows title."
msgstr ""
"ゲームプレイからエンディングへの移行を考えてみましょう。 "
"私たちは、どの州がその境界を越えて運び、どのプログラムがそれを担当しているかを知る必要があります。 それはDOS製品に対して調査できるものです。 "
"証拠とチェックが利用可能になると、エージェントはWindowsタイトルと同じように質問を処理することができます。"
#: website/public/blog/touhou-reconstruction/index.html:706
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid ""
"This is why TH04 matters to the argument. A substantial platform change did "
"not force us to start over with a new way of working. The architecture "
"defined the problem; the workflow still gave us a way to solve it."
msgstr ""
"これが、TH04が引数に重要である理由です。 プラットフォームを大幅に変更しても、新しい作業方法でやり直すことはできませんでした。 "
"アーキテクチャは問題を定義しましたが、ワークフローはまだそれを解決する方法を与えてくれました。"
#: website/public/blog/touhou-reconstruction/index.html:712
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid ""
"For the 64-bit port, we can now examine the new implementation against "
"behavior already recovered on DOS. The knowledge from reconstruction gives "
"the port something to build on."
msgstr ""
"64ビットポートについては、DOS上で既に回復されている動作に対して新しい実装を調べることができます。 "
"再構築からの知識は、ポートに構築するための何かを与えます。"
#. {ph0}: <a
#. href="https://github.com/N0zoM1z0/th04/blob/bb9faca54e2eb3c0d6c757c75d59ac29d2cd5e93/docs/RE_HANDOFF.md"
#. >
#. {ph1}: </a >
#. {ph2}: <a href="https://github.com/N0zoM1z0/th04/tree/port/modern-64" >
#. {ph3}: </a >
#: website/public/blog/touhou-reconstruction/index.html:717
#, python-brace-format
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid ""
"Project state as of 10 October 2026: {ph0}DOS reconstruction and manual "
"testing{ph1} · {ph2}64-bit port{ph3}. The port remains in development."
msgstr ""
"2026年10月10日現在のプロジェクト状況: {ph0}DOSの再構成および手動テスト{ph1} · {ph2}64ビットポート{ph3}. "
"港は開発中のままです。"
#: website/public/blog/touhou-reconstruction/index.html:730
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid "From exact code to readable code"
msgstr "正確なコードから読みやすいコードへ"
#: website/public/blog/touhou-reconstruction/index.html:731
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid ""
"Once a reconstruction works, I want someone else to be able to understand "
"it."
msgstr "復興がうまくいったら、他の誰かにそれを理解してもらいたいです。"
#: website/public/blog/touhou-reconstruction/index.html:735
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid ""
"To me, assembly and raw offsets can feel like old friends. I realise this is"
" a slightly unusual definition of “readable.” Most people would prefer to "
"follow the game's logic without keeping the executable's memory layout in "
"their head."
msgstr ""
"私にとって、アセンブリと生のオフセットは古い友達のように感じることができます。 "
"私はこれが「読みやすい」という少し変わった定義であることを認識しています。「ほとんどの人は、実行可能ファイルのメモリレイアウトを頭の中に保持せずに、ゲームのロジックに従うことを好むでしょう。"
#. {ph0}: <strong>
#. {ph1}: </strong>
#: website/public/blog/touhou-reconstruction/index.html:741
#, python-brace-format
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid ""
"That is where {ph0}semantic reconstruction{ph1} comes in. A recovered field "
"may still be known mainly by its offset. We follow how the game uses it "
"until we can explain its role. Then we can give it a meaningful name and a "
"type that fits the evidence. We keep the reasoning with the source so the "
"next person can see where that interpretation came from."
msgstr ""
"それはどこですか {ph0}セマンティック再構成{ph1} 入ってきます。 "
"回収されたフィールドは、主にそのオフセットによって依然として知られていてもよい。 "
"その役割を説明できるまで、ゲームがどのようにそれを使用するかに従います。 それから、意味のある名前と証拠に合ったタイプを与えることができます。 "
"次の人がその解釈がどこから来たのかを見ることができるように、私たちは推論をソースと一緒に保ちます。"
#: website/public/blog/touhou-reconstruction/index.html:749
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid ""
"This becomes especially important for a port. An absolute address tells me "
"where something lived in the old executable. It gives a 64-bit "
"implementation little help in deciding which object should own that state. "
"To move the behavior safely, we need to recover the relationship behind the "
"old memory access."
msgstr ""
"これは、ソフトウェアポートにとって特に重要になります。 絶対アドレスは、古い実行可能ファイルのどこに何かが住んでいたかを教えてくれます。 "
"これは、どのオブジェクトがその状態を所有すべきかを決定する上で、64ビットの実装にはほとんど助けになりません。 "
"動作を安全に移動するには、古いメモリアクセスの背後にある関係を回復する必要があります。"
#: website/public/blog/touhou-reconstruction/index.html:756
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid "The order I now use is:"
msgstr "私が今使用している順序は次のとおりです:"
#. {ph0}: <strong>
#. {ph1}: </strong>
#: website/public/blog/touhou-reconstruction/index.html:758
#, python-brace-format
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid ""
"{ph0}Recover an exact baseline.{ph1} Compile the reconstructed pieces with "
"the historical compiler. Compare the relevant code and data with the "
"original executable. Record unresolved differences so the next phase has a "
"clear starting point."
msgstr ""
"{ph0}正確なベースラインを回復します。{ph1} 歴史的なコンパイラで再構築された部分をコンパイルします。 "
"関連するコードとデータを元の実行可能ファイルと比較します。 未解決の差分を記録して、次のフェーズの開始点を明確にします。"
#. {ph0}: <strong>
#. {ph1}: </strong>
#: website/public/blog/touhou-reconstruction/index.html:765
#, python-brace-format
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid ""
"{ph0}Build and play it on the original platform.{ph1} Link those pieces into"
" the real program using the original architecture and compiler. Exercise "
"important gameplay paths. This is where we can find problems with shared "
"state or initialization that an isolated function comparison missed."
msgstr ""
"{ph0}元のプラットフォーム上でそれを構築し、再生します。{ph1} "
"元のアーキテクチャとコンパイラを使用して、それらの部分を実際のプログラムにリンクします。 重要なゲームプレイパスを行使します。 "
"これは、分離された関数の比較が見逃した共有状態または初期化に関する問題を見つけることができる場所です。"
#. {ph0}: <strong >
#. {ph1}: </strong >
#: website/public/blog/touhou-reconstruction/index.html:772
#, python-brace-format
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid ""
"{ph0}Reconstruct the semantics against both references.{ph1} Take one "
"coherent part of the game at a time and establish what its recovered source "
"means. Improve its representation while preserving the exact comparisons and"
" the playable historical build."
msgstr ""
"{ph0}両方の参照に対してセマンティクスを再構築します。{ph1} "
"一度にゲームの一つの一貫した部分を取り、その回復されたソースが何を意味するかを確立します。 "
"正確な比較と再生可能な歴史的なビルドを維持しながら、その表現を改善します。"
#. {ph0}: <strong>
#. {ph1}: </strong>
#: website/public/blog/touhou-reconstruction/index.html:781
#, python-brace-format
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid ""
"{ph0}Make the modern port.{ph1} Move the established behavior into the new "
"environment, such as a native 64-bit build. The reconstructed original-"
"platform game remains a reference for comparing how the port behaves."
msgstr ""
"{ph0}モダンなポートを作ります。{ph1} 確立された動作を、ネイティブの64ビットビルドなどの新しい環境に移動します。 "
"再構築された元のプラットフォームのゲームは、ポートがどのように動作するかを比較するための参照のままです。"
#. {ph0}: <strong>
#. {ph1}: </strong>
#: website/public/blog/touhou-reconstruction/index.html:788
#, python-brace-format
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid ""
"The playable build from the second stage becomes a {ph0}second oracle{ph1} "
"during the third. The first oracle checks whether our changed source still "
"reproduces the relevant original code and data. The second checks that the "
"reconstructed program still builds and behaves correctly along the paths we "
"exercise."
msgstr ""
"第二段階からの再生可能なビルドは、次のようになります {ph0}第二検証リファレンス(オラクル){ph1} 第三の間に。 "
"最初の検証リファレンス(oracle)では、変更されたソースが関連する元のコードとデータを再現しているかどうかを確認します。 "
"第二は、再構築されたプログラムがまだ構築され、我々が行使するパスに沿って正しく動作することを確認します。"
#: website/public/blog/touhou-reconstruction/index.html:796
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid ""
"They catch different mistakes. A type change can alter the generated "
"instructions. An ownership change can leave two parts of the game using "
"different copies of state. Keeping both checks available gives the agent a "
"concrete failure to investigate before carrying a refactor further."
msgstr ""
"彼らはさまざまな間違いをキャッチします。 型の変更は、生成された命令を変更することができます。 "
"所有権の変更は、状態の異なるコピーを使用してゲームの2つの部分を残すことができます。 "
"両方のチェックを利用できるようにしておくと、リファクタリングをさらに実行する前にエージェントが具体的に調査できなくなります。"
#: website/public/blog/touhou-reconstruction/index.html:803
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid ""
"A name needs evidence of its own. An exact comparison cannot tell us whether"
" a field really means “invulnerability time.” We have to establish that from"
" how the game writes and uses it. If the meaning remains uncertain, a "
"neutral name is more helpful to the next reader than a confident guess."
msgstr ""
"名前はそれ自身の証拠を必要とします。 "
"正確な比較は、フィールドが本当に\"不死身の時間\"を意味するかどうかを私たちに伝えることはできません。「ゲームがどのように書いて使用するかから、それを確立する必要があります。"
" 意味が不確かなままである場合、中立的な名前は自信を持って推測するよりも次の読者にとってより有用です。"
#. {ph0}: <a href="https://github.com/N0zoM1z0/touhou-reconstruction-
#. factory/blob/717e1b8560783ed17a39fdf159d30aa16bb307a7/docs/semantic-
#. reconstruction.md" >
#. {ph1}: </a >
#: website/public/blog/touhou-reconstruction/index.html:810
#, python-brace-format
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid ""
"We learned this order through the projects. TH08 already had playable ports "
"before some of its later historical-platform audits. That made certain "
"defects harder to see. The {ph0}Factory's current workflow{ph1} puts the "
"original-platform build first, so semantic work can use it as a reference "
"before porting begins."
msgstr ""
"私たちはプロジェクトを通してこの順序を学びました。 "
"TH08は、後の歴史的なプラットフォーム監査のいくつかの前に、すでに再生可能なポートを持っていました。 これにより、特定の欠陥が見えにくくなりました。 "
"ザ- {ph0}Factoryの現在のワークフロー{ph1} "
"元のプラットフォームのビルドを最初に置くので、セマンティック作業は移植が始まる前にそれを参照として使用できます。"
#. {ph0}: <strong >
#. {ph1}: </strong >
#: website/public/blog/touhou-reconstruction/index.html:821
#, python-brace-format
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid ""
"{ph0}Exact reconstruction gives us a reference. Semantic reconstruction "
"makes the recovered knowledge usable.{ph1} A port can then build on both."
msgstr ""
"{ph0}正確な再構成は私たちに参照を与えます。 セマンティック再構成は、回収された知識を使用可能にする。{ph1} "
"ポートは、両方の上に構築することができます。"
#: website/public/blog/touhou-reconstruction/index.html:830
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid "What makes this an industrial shift"
msgstr "これを産業シフトにするものは何ですか"
#: website/public/blog/touhou-reconstruction/index.html:831
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid ""
"These projects changed where I spent my attention. Once agents could carry "
"much of an investigation forward, improving their working environment became"
" one of the most useful things I could do. A better tool could help with "
"every later function that needed it."
msgstr ""
"これらのプロジェクトは、私が注意を払った場所を変えました。 "
"エージェントが調査の多くを前進させることができれば、彼らの作業環境を改善することは私ができる最も有用なことの一つになりました。 "
"より良いツールは、それを必要とするすべての後の機能を助けることができます。"
#: website/public/blog/touhou-reconstruction/index.html:838
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid ""
"Autonomy matters here. The useful next step often becomes clear only after a"
" failed experiment. An agent needs enough freedom to follow that result "
"somewhere unexpected. If it has to wait for me to prescribe each step, much "
"of the work remains tied to my attention."
msgstr ""
"ここでは自治が重要です。 有用な次のステップは、多くの場合、失敗した実験の後にのみ明らかになります。 "
"エージェントは、予想外のどこかでその結果に従うのに十分な自由を必要とします。 "
"私が各ステップを処方するのを待たなければならない場合、仕事の多くは私の注意に結びついています。"
#: website/public/blog/touhou-reconstruction/index.html:845
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid ""
"I expect the agent to make wrong hypotheses. What matters is whether we can "
"test them and learn from the result. A failed check should help it "
"understand the mistake well enough to try again. I still have to decide "
"whether the accumulated evidence supports a project milestone."
msgstr ""
"私はエージェントが間違った仮説を立てることを期待しています。 重要なのは、それらをテストし、結果から学ぶことができるかどうかです。 "
"失敗したチェックは、それが再試行するのに十分な間違いを理解するのに役立つはずです。 "
"私はまだ蓄積された証拠がプロジェクトのマイルストーンをサポートしているかどうかを判断する必要があります。"
#: website/public/blog/touhou-reconstruction/index.html:852
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid ""
"REA gives the agent access to analysis tools. A question about a function's "
"caller can lead straight into inspecting that caller. The reconstruction "
"project supplies the compiler and its own reference checks. The agent can "
"use those to test the source it proposes and see where its explanation holds"
" up."
msgstr ""
"REAは、エージェントが分析ツールにアクセスできるようにします。 関数の呼び出し元に関する質問は、その呼び出し元の検査に直接つながる可能性があります。 "
"Reconstructionプロジェクトは、コンパイラとそれ自身の参照チェックを提供します。 "
"エージェントはそれらを使用して、提案するソースをテストし、その説明がどこに保持されているかを確認できます。"
#: website/public/blog/touhou-reconstruction/index.html:859
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid ""
"The TH08 bug shows why those checks deserve engineering attention of their "
"own. When the same comparison is used across hundreds of functions, a gap in"
" it can spread much further than a mistake in one implementation. Testing "
"the checker improves the feedback available to all that later work."
msgstr ""
"TH08のバグは、これらのチェックが独自のエンジニアリングの注意を払うに値する理由を示しています。 "
"同じ比較が何百もの関数で使用されている場合、そのギャップは、1つの実装での間違いよりもはるかに広がる可能性があります。 "
"チェッカーをテストすると、後のすべての作業で利用可能なフィードバックが向上します。"
#. {ph0}: <a
#. href="https://collection.sciencemuseumgroup.org.uk/objects/co51439/watts-
#. steam-engine-indicator" >
#. {ph1}: </a >
#: website/public/blog/touhou-reconstruction/index.html:866
#, python-brace-format
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid ""
"The industrial analogy has a useful historical example here. Boulton and "
"Watt introduced a {ph0}steam-engine indicator in 1796{ph1} to help adjust "
"engine valves. A recording version traced pressure through the piston "
"stroke. It made the engine's internal behavior available for inspection. Our"
" comparison tools serve a similar purpose: they let us examine what the "
"machinery is doing while we improve it."
msgstr ""
"産業の類推は、ここで有用な歴史的な例を持っています。 ボールトンとワットは、 {ph0}1796年の蒸気機関の表示器{ph1} "
"エンジン弁の調節を助けるため。 録音バージョンはピストンストロークを介して圧力を追跡しました。 "
"それはエンジンの内部動作を点検のために利用できるようにした。 "
"私たちの比較ツールは、同様の目的を果たしています:彼らは私たちがそれを改善しながら、機械が何をしているかを調べてみましょう。"
#. {ph0}: <strong >
#. {ph1}: </strong >
#: website/public/blog/touhou-reconstruction/index.html:879
#, python-brace-format
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid ""
"{ph0}We are in the early stages of this industrial shift.{ph1} Much of the "
"infrastructure is still immature. Agents can move faster than our checks "
"were designed to support, so the process has to develop alongside them. When"
" we find a defect in a shared tool, we have to repair it and revisit the "
"results it affected. The next project can then inherit a stronger tool."
msgstr ""
"{ph0}私たちはこの産業シフトの初期段階にあります。{ph1} インフラストラクチャの多くはまだ未成熟です。 "
"エージェントは、私たちのチェックがサポートするように設計されていたよりも速く移動できるため、プロセスはそれらと一緒に開発する必要があります。 "
"共有ツールに欠陥が見つかった場合は、それを修復し、影響を受けた結果を再検討する必要があります。 "
"次のプロジェクトは、より強力なツールを継承することができます。"
#: website/public/blog/touhou-reconstruction/index.html:889
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid ""
"There is also a practical limit to any one conversation. It will end before "
"a large reconstruction is finished. The repository has to make it possible "
"for another session to continue without losing the reason for the last "
"decision."
msgstr ""
"いずれかの会話には実用的な制限もあります。 大規模な再構築が完了する前に終了します。 "
"ソースコードリポジトリは、最後の決定の理由を失うことなく、別のセッションを継続できるようにする必要があります。"
#. {ph0}: <a href="https://github.com/N0zoM1z0/touhou-reconstruction-factory"
#. >
#. {ph1}: </a >
#: website/public/blog/touhou-reconstruction/index.html:895
#, python-brace-format
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid ""
"The {ph0}Touhou Reconstruction Factory{ph1} grew out of that need. It gives "
"projects a shared way to carry their checks and lessons forward. Work on one"
" game can improve the starting conditions for another."
msgstr ""
"ザ- {ph0}東方復興工場{ph1} その必要性から成長しました。 それはプロジェクトに彼らの点検およびレッスンを先に運ぶ共有された方法を与える。 "
"あるゲームでの作業は、別のゲームの開始条件を改善することができます。"
#: website/public/blog/touhou-reconstruction/index.html:905
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid ""
"That is what makes the industrial analogy meaningful to me. Experience "
"starts becoming part of tools that others can use. Improving those tools "
"changes how much the next person—or the next agent—can get done."
msgstr ""
"それが私にとって産業的な類推を意味のあるものにしているのです。 経験は、他の人が使用できるツールの一部になり始めます。 "
"これらのツールを改善することで、次の人、または次のエージェントがどれだけ達成できるかが変わります。"
#: website/public/blog/touhou-reconstruction/index.html:913
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid "The projects we can now consider"
msgstr "今考えられるプロジェクトは"
#: website/public/blog/touhou-reconstruction/index.html:914
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid ""
"The pace matters because it changes the decision to begin. A game could be "
"fascinating to reverse engineer and still demand more of my own attention "
"than I could realistically give it. Many projects would stay ideas."
msgstr ""
"ペースは、それが開始する決定を変えるので、重要です。 "
"ゲームはリバースエンジニアリングにとって魅力的であり、現実的にそれを与えることができるよりも私自身の注意を要求することができます。 "
"多くのプロジェクトは、アイデアを滞在します。"
#: website/public/blog/touhou-reconstruction/index.html:920
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid ""
"Now I can see a way to keep such a project moving through repeated "
"investigations. Getting a working reconstruction makes a port more "
"practical. Recovering readable semantics makes it easier for someone else to"
" explore a mod. The effort put into understanding the game can keep paying "
"off after the first version runs."
msgstr ""
"今、私はそのようなプロジェクトを繰り返し調査を通して動かし続ける方法を見ることができます。 "
"作業再構成を取得すると、ソフトウェアポートがより実用的になります。 "
"読み取り可能なセマンティクスを回復すると、他の誰かがmodを探索するのが簡単になります。 "
"ゲームを理解するための努力は、最初のバージョンが実行された後も報われ続けることができます。"
#. {ph0}: <strong >
#. {ph1}: </strong >
#: website/public/blog/touhou-reconstruction/index.html:927
#, python-brace-format
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid ""
"I now look at an unfamiliar program and ask: {ph0}what access, feedback and "
"accumulated knowledge would let an agent work on this reliably?{ph1}"
msgstr ""
"私は今、なじみのないプログラムを見て、尋ねる: "
"{ph0}どのようなアクセス、フィードバック、蓄積された知識が、エージェントがこれに確実に取り組むことを可能にするでしょうか?{ph1}"
#: website/public/blog/touhou-reconstruction/index.html:934
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid ""
"That question makes me consider projects I would previously have left alone."
" Each one can improve the way we approach the next. I want to keep exploring"
" how far that can take us."
msgstr ""
"その質問は、私が以前に一人で残していたであろうプロジェクトを考えさせます。 それぞれが私たちが次のアプローチ方法を改善することができます。 "
"私はそれが私たちをどこまで連れて行くことができるかを探求し続けたいです。"
#: website/public/blog/touhou-reconstruction/index.html:942
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid "Project milestones and sources"
msgstr "プロジェクトのマイルストーンとソース"
#: website/public/blog/touhou-reconstruction/index.html:943
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid ""
"The dates describe recorded project checkpoints, checked against public "
"GitHub history on 10 October 2026. Elapsed time is calendar time between "
"commits. Source presence, exact comparisons, a build and a runtime result "
"each name a different milestone."
msgstr ""
"日付は、2026年10月10日に公開されたGitHubの履歴と照合された、記録されたプロジェクトチェックポイントを記述しています。 "
"経過時間は、コミット間のカレンダー時間です。 ソースの存在、正確な比較、ビルドとランタイムの結果は、それぞれ異なるマイルストーンに名前を付けます。"
#. {ph0}: <strong>
#. {ph1}: </strong>
#. {ph2}: <a
#. href="https://github.com/N0zoM1z0/th08/commit/001bf3e9c91cc35b79c7a0e36b3565b86f494362"
#. >
#. {ph3}: </a >
#. {ph4}: <a
#. href="https://github.com/N0zoM1z0/th08/blob/15caba73df6735fc44eac4783bc61b8d098ea830/docs/PROGRESS.md"
#. >
#. {ph5}: </a >
#. {ph6}: <a
#. href="https://github.com/N0zoM1z0/th08/commit/da07b21c8cb63230142b0a66228d6aac66555f3f"
#. >
#. {ph7}: </a >
#. {ph8}: <a
#. href="https://github.com/N0zoM1z0/th08/commit/529eb1a3afa05ae36467731eaccb12e3e50e132f"
#. >
#. {ph9}: </a >
#. {ph10}: <a
#. href="https://github.com/N0zoM1z0/th08/releases/tag/v0.2.0-linux-64bit" >
#. {ph11}: </a >
#: website/public/blog/touhou-reconstruction/index.html:951
#, python-brace-format
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid ""
"{ph0}TH08:{ph1} {ph2}13 August continuation{ph3}, {ph4}19 August source "
"ledger{ph5}, {ph6}24 August Linux port{ph7}, {ph8}26 August Web "
"edition{ph9}, and {ph10}30 August 64-bit Linux release{ph11}."
msgstr ""
"{ph0} TH08 :{ph1} {ph2}13月の続き{ph3}, {ph4}8月19日ソース元帳{ph5}, "
"{ph6}8月24日Linuxポート{ph7}, {ph8}月26日ウェブ版{ph9}、および "
"{ph10}8月30日64ビットLinuxリリース{ph11}."
#. {ph0}: <strong>
#. {ph1}: </strong>
#. {ph2}: <a
#. href="https://github.com/N0zoM1z0/th095/blob/8c31e6f892d945423b7f7b439747a2bd915f82d8/docs/PROGRESS.md"
#. >
#. {ph3}: </a >
#. {ph4}: <a
#. href="https://github.com/N0zoM1z0/th095/blob/0fa857fb2b2ec6237732e4d6be8d0a28069c9330/docs/PROGRESS.md"
#. >
#. {ph5}: </a >
#. {ph6}: <a
#. href="https://github.com/N0zoM1z0/th095/blob/74baddfccb712d1311a4d6e7487a63cd1100452e/docs/PROGRESS.md"
#. >
#. {ph7}: </a >
#. {ph8}: <a
#. href="https://github.com/N0zoM1z0/th095/commit/33d46a0ee48f37060d973125a1a7632a40f8d998"
#. >
#. {ph9}: </a >
#. {ph10}: <a
#. href="https://github.com/N0zoM1z0/th095/blob/3442dcf29d9e0b5bef384a49bd0c9ad32a711826/docs/WHOLE_BUILD_TODO.md"
#. >
#. {ph11}: </a >
#: website/public/blog/touhou-reconstruction/index.html:974
#, python-brace-format
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid ""
"{ph0}TH095:{ph1} {ph2}29 August initial ledger{ph3}, {ph4}7 September source"
" ledger{ph5}, {ph6}8 September comparisons{ph7}, {ph8}9 September "
"linkage{ph9}, and {ph10}10 September playable-build record{ph11}."
msgstr ""
"{ph0} TH095 :{ph1} {ph2}月29日初動台帳{ph3}, {ph4}7月ソース元帳{ph5}, {ph6}8月の比較{ph7}, "
"{ph8}9月リンケージ{ph9}、および {ph10}10月再生可能な-ビルドレコード{ph11}."
#. {ph0}: <strong>
#. {ph1}: </strong>
#. {ph2}: <a
#. href="https://github.com/N0zoM1z0/th04/blob/bb9faca54e2eb3c0d6c757c75d59ac29d2cd5e93/docs/RE_HANDOFF.md"
#. >
#. {ph3}: </a >
#: website/public/blog/touhou-reconstruction/index.html:997
#, python-brace-format
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid ""
"{ph0}TH04:{ph1} {ph2}10 October handoff{ph3} records the working DOS "
"reconstruction, the maintainer's complete Normal-route testing and the "
"current 64-bit phase."
msgstr ""
"{ph0} TH04 :{ph1} {ph2}10月ハンドオフ{ph3} "
"動作中のDOS再構成、メンテナの完全な正常ルートテスト、および現在の64ビットフェーズを記録します。"
#. {ph0}: <strong>
#. {ph1}: </strong>
#. {ph2}: <a href="https://github.com/N0zoM1z0/th08/issues/10" >
#. {ph3}: </a >
#. {ph4}: <a
#. href="https://github.com/N0zoM1z0/th08/commit/7148a76ba224742677895c7160807a68897957d5"
#. >
#. {ph5}: </a >
#. {ph6}: <a
#. href="https://github.com/N0zoM1z0/th08/commit/a393f400786e4cc6cbb1000af0dad3276da12c78"
#. >
#. {ph7}: </a >
#: website/public/blog/touhou-reconstruction/index.html:1006
#, python-brace-format
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid ""
"{ph0}TH08 oracle correction:{ph1} {ph2}the reported auto-collection "
"bug{ph3}, {ph4}the source and comparison fix{ph5}, and {ph6}the full "
"floating-literal audit{ph7}."
msgstr ""
"{ph0} TH08検証リファレンス(oracle)の修正:{ph1} {ph2}報告された自動収集のバグ{ph3}, "
"{ph4}ソースと比較の修正{ph5}、および {ph6}完全浮動小数点定数監査{ph7}."
#. {ph0}: <strong>
#. {ph1}: </strong>
#. {ph2}: <a
#. href="https://github.com/N0zoM1z0/th08/blob/d2a00f4acb4a13916e07a00bd13f714961714628/docs/SEMANTIC_PLAYBOOK.md"
#. >
#. {ph3}: </a >
#. {ph4}: <a href="https://github.com/N0zoM1z0/touhou-reconstruction-
#. factory/blob/717e1b8560783ed17a39fdf159d30aa16bb307a7/docs/semantic-
#. reconstruction.md" >
#. {ph5}: </a >
#: website/public/blog/touhou-reconstruction/index.html:1020
#, python-brace-format
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid ""
"{ph0}Semantic reconstruction:{ph1} {ph2}TH08's readability playbook{ph3} and"
" {ph4}the Factory's phase order and two validation paths{ph5}."
msgstr ""
"{ph0}セマンティック再構成:{ph1} {ph2} TH08の読みやすさプレイブック{ph3} と "
"{ph4}ファクトリのフェーズオーダーと2つの検証パス{ph5}."
#. {ph0}: <strong>
#. {ph1}: </strong>
#. {ph2}: <a
#. href="https://collection.sciencemuseumgroup.org.uk/objects/co51439/watts-
#. steam-engine-indicator" >
#. {ph3}: </a >
#: website/public/blog/touhou-reconstruction/index.html:1032
#, python-brace-format
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid ""
"{ph0}Industrial history:{ph1} {ph2}the Science Museum Group's steam-engine "
"indicator record{ph3} describes the 1796 introduction and the pressure-"
"recording mechanism."
msgstr ""
"{ph0}産業史:{ph1} {ph2}科学館グループの蒸気機関の表示器の記録{ph3} 1796年の導入と圧力記録メカニズムについて説明します。"
#. {ph0}: <strong>
#. {ph1}: </strong>
#. {ph2}: <a href="https://github.com/N0zoM1z0/touhou-reconstruction-
#. factory/blob/038b6bed51d273c8b3680553b6f43e1b97d19bd1/docs/agent-
#. autonomy.md" >
#. {ph3}: </a >
#. {ph4}: <a href="https://github.com/N0zoM1z0/touhou-reconstruction-
#. factory/blob/038b6bed51d273c8b3680553b6f43e1b97d19bd1/docs/knowledge-
#. base.md" >
#. {ph5}: </a >
#: website/public/blog/touhou-reconstruction/index.html:1041
#, python-brace-format
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid ""
"{ph0}Method:{ph1} the Factory's {ph2}agent autonomy{ph3} and {ph4}cross-game"
" knowledge{ph5} documents retain the working principles and lessons."
msgstr ""
"{ph0}メソッド:{ph1} 工場の {ph2}エージェントの自律性{ph3} と {ph4}クロスゲームの知識{ph5} "
"文書は作業原則と教訓を保持しています。"
#. {ph0}: <a class="text-link" href="../">
#. {ph1}: </a>
#. {ph2}: <a class="text-link" href="../../showcase/th04/" >
#. {ph3}: </a >
#: website/public/blog/touhou-reconstruction/index.html:1056
#, python-brace-format
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid "{ph0}More articles{ph1} · {ph2}Explore a TH04 investigation{ph3}"
msgstr "{ph0}より多くの記事{ph1} · {ph2}TH04調査を探る{ph3}"
#: website/public/blog/touhou-reconstruction/index.html:6
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid "Reverse Engineering’s Industrial Revolution — REA"
msgstr "リバースエンジニアリングの産業革命-REA"
#: website/public/blog/touhou-reconstruction/index.html:7
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid ""
"N0zoM1z0 reflects on manual reverse engineering, Touhou reconstruction with "
"AI agents, and how knowledge compounds across TH08, TH095 and PC-98 TH04."
msgstr ""
"N0zoM1z0は、手動リバースエンジニアリング、AIエージェントによる東方再構築、TH08、TH095、PC-98 "
"TH04の知識がどのように化合物であるかを反映しています。"
#: website/public/blog/touhou-reconstruction/index.html:350
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid "Experience carried between projects"
msgstr "プロジェクト間で実施された経験"
#: website/public/blog/touhou-reconstruction/index.html:364
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid "On this page"
msgstr "このページでは"
#: website/public/blog/touhou-reconstruction/index.html:379
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid "Touhou reconstruction essay"
msgstr "東方復興エッセイ"
#: website/public/blog/touhou-reconstruction/index.html:1080
msgctxt "page:blog/touhou-reconstruction/index.html"
msgid "Back to top"
msgstr "ページ上部へ"
#: website/public/examples/dino-lab/index.html:104
msgctxt "page:examples/dino-lab/index.html"
msgid "Skip to content"
msgstr "コンテンツにスキップ"
#. {ph0}: <a href="../../">
#. {ph1}: </a>
#. {ph2}: <span>
#. {ph3}: </span>
#: website/public/examples/dino-lab/index.html:195
#, python-brace-format
msgctxt "page:examples/dino-lab/index.html"
msgid "{ph0}Home{ph1}{ph2}/{ph3}Dinosaur speed lab"
msgstr "{ph0}ホーム{ph1}{ph2}/{ph3}恐竜スピードラボ"
#: website/public/examples/dino-lab/index.html:198
msgctxt "page:examples/dino-lab/index.html"
msgid "Inspect → rebuild → change"
msgstr "検査→再構築→変更"
#: website/public/examples/dino-lab/index.html:199
msgctxt "page:examples/dino-lab/index.html"
msgid "Rebuild the dinosaur’s speed rule."
msgstr "恐竜のスピードルールを再構築します。"
#. {ph0}: <strong>
#. {ph1}: </strong>
#. {ph2}: <mark class="prose-highlight">
#. {ph3}: </mark>
#: website/public/examples/dino-lab/index.html:200
#, python-brace-format
msgctxt "page:examples/dino-lab/index.html"
msgid ""
"To recreate the game’s acceleration, first find the rule that controls its "
"speed. {ph0}REA returned the running script;{ph1} we used its rule to build "
"this mini-game with {ph2}adjustable speed.{ph3}"
msgstr ""
"ゲームの加速を再現するには、まずその速度を制御するルールを見つけます。 {ph0} REAが実行中のスクリプトを返しました;{ph1} "
"私たちは、このミニゲームを構築するために、そのルールを使用しました {ph2}調節可能な速度。{ph3}"
#: website/public/examples/dino-lab/index.html:209
#: website/public/examples/dino-lab/index.html:208
msgctxt "page:examples/dino-lab/index.html"
msgid "On this page"
msgstr "このページでは"
#. {ph0}: <a href="#play">
#. {ph1}: </a>
#: website/public/examples/dino-lab/index.html:211
#, python-brace-format
msgctxt "page:examples/dino-lab/index.html"
msgid "{ph0}Play and change the speed{ph1}"
msgstr "{ph0}再生し、速度を変更します{ph1}"
#. {ph0}: <a href="#rule">
#. {ph1}: </a>
#: website/public/examples/dino-lab/index.html:212
#, python-brace-format
msgctxt "page:examples/dino-lab/index.html"
msgid "{ph0}Read the recovered rule{ph1}"
msgstr "{ph0}回復されたルールを読む{ph1}"
#. {ph0}: <a href="#check">
#. {ph1}: </a>
#: website/public/examples/dino-lab/index.html:213
#, python-brace-format
msgctxt "page:examples/dino-lab/index.html"
msgid "{ph0}Check the reconstruction{ph1}"
msgstr "{ph0}再構築を確認する{ph1}"
#. {ph0}: <a href="#inspect">
#. {ph1}: </a>
#: website/public/examples/dino-lab/index.html:214
#, python-brace-format
msgctxt "page:examples/dino-lab/index.html"
msgid "{ph0}Try the analysis{ph1}"
msgstr "{ph0}分析を試してみてください{ph1}"
#: website/public/examples/dino-lab/index.html:219
msgctxt "page:examples/dino-lab/index.html"
msgid "Play and change the speed"
msgstr "再生し、速度を変更します"
#: website/public/examples/dino-lab/index.html:220
msgctxt "page:examples/dino-lab/index.html"
msgid ""
"Press Play, then jump over the cactus. Move the speed slider to try a slower"
" or faster game; it switches to a fixed speed. Select the recovered rule to "
"start at 6 and gradually accelerate again."
msgstr ""
"プレスプレイは、その後、サボテンの上にジャンプします。 速度スライダを動かして、より遅いまたはより速いゲームを試してみてください。 "
"回復されたルールを選択して6から開始し、徐々に再び加速します。"
#: website/public/examples/dino-lab/index.html:226
msgctxt "page:examples/dino-lab/index.html"
msgid "Play the reconstruction"
msgstr "再構築したゲームで遊ぶ"
#: website/public/examples/dino-lab/index.html:258
msgctxt "page:examples/dino-lab/index.html"
msgid "Play"
msgstr "スタート"
#: website/public/examples/dino-lab/index.html:261
msgctxt "page:examples/dino-lab/index.html"
msgid "Jump ↑"
msgstr "ジャンプ ↑"
#: website/public/examples/dino-lab/index.html:262
msgctxt "page:examples/dino-lab/index.html"
msgid "Restart"
msgstr "リスタート"
#: website/public/examples/dino-lab/index.html:265
msgctxt "page:examples/dino-lab/index.html"
msgid "Speed"
msgstr "速度"
#: website/public/examples/dino-lab/index.html:275
msgctxt "page:examples/dino-lab/index.html"
msgid "Use the recovered acceleration rule"
msgstr "回復された加速ルールを使用する"
#: website/public/examples/dino-lab/index.html:279
msgctxt "page:examples/dino-lab/index.html"
msgid "Original rule: start at 6, then increase toward 13."
msgstr "元のルール:6から開始し、13に向かって増加します。"
#: website/public/examples/dino-lab/index.html:282
msgctxt "page:examples/dino-lab/index.html"
msgid "Move the slider to set your own speed. Space or Jump clears a cactus."
msgstr "スライダーを動かして独自の速度を設定します。 スペースまたはジャンプはサボテンをクリアします。"
#: website/public/examples/dino-lab/index.html:287
msgctxt "page:examples/dino-lab/index.html"
msgid ""
"Enable JavaScript to play the reconstruction. The code and explanation above"
" remain readable."
msgstr "再構成を再生するには、JavaScriptを有効にします。 上記のコードと説明は読みやすいままです。"
#: website/public/examples/dino-lab/index.html:295
msgctxt "page:examples/dino-lab/index.html"
msgid "Read the script REA returned"
msgstr "返されたスクリプトREAを読みます"
#. {ph0}: <a href="https://wayou.github.io/t-rex-runner/" >
#. {ph1}: </a >
#. {ph2}: <code>index.js</code>
#: website/public/examples/dino-lab/index.html:296
#, python-brace-format
msgctxt "page:examples/dino-lab/index.html"
msgid ""
"We inspected {ph0}wayou’s Chromium-derived browser edition{ph1} with REA. It"
" returned the loaded {ph2}, including this branch in the game’s update "
"function:"
msgstr ""
"私達は点検しました {ph0}wayouのChromium派生ブラウザ版{ph1} REAと。 それはロードされたものを返しました "
"{ph2}、ゲームの更新機能にこのブランチを含めます:"
#. {ph0}: <code>SPEED: 6</code>
#. {ph1}: <code>ACCELERATION: 0.001</code>
#. {ph2}: <code>MAX_SPEED: 13</code>
#: website/public/examples/dino-lab/index.html:312
#, python-brace-format
msgctxt "page:examples/dino-lab/index.html"
msgid ""
"The settings are {ph0}, {ph1} and {ph2}. The game runs this branch on an "
"update without a collision."
msgstr "設定は次のとおりです {ph0}, {ph1} と {ph2}. ゲームは衝突することなく更新時にこのブランチを実行します。"
#: website/public/examples/dino-lab/index.html:317
msgctxt "page:examples/dino-lab/index.html"
msgid "Use the same rule in the new game"
msgstr "新しいゲームで同じルールを使用します"
#: website/public/examples/dino-lab/index.html:323
#: website/public/examples/dino-lab/index.html:422
msgctxt "page:examples/dino-lab/index.html"
msgid "Copy"
msgstr "コピー"
#: website/public/examples/dino-lab/index.html:336
msgctxt "page:examples/dino-lab/index.html"
msgid ""
"The mini-game uses this function for automatic acceleration. Moving the "
"slider supplies a fixed speed instead. Drawing, jump physics and rectangle "
"collision checks are new code for this teaching game; its simulation "
"advances at 60 updates per second."
msgstr ""
"ミニゲームは、自動加速のためにこの機能を使用しています。 スライダーを動かすと、代わりに固定速度が供給されます。 "
"描画、ジャンプ物理学と長方形の衝突チェックは、この教育ゲームのための新しいコードであり、そのシミュレーションは、毎秒60の更新で進みます。"
#. {ph0}: <a href="../../assets/dino-speed.js" download >
#. {ph1}: </a >
#. {ph2}: <a href="../../assets/dino-demo.js">
#. {ph3}: </a>
#: website/public/examples/dino-lab/index.html:342
#, python-brace-format
msgctxt "page:examples/dino-lab/index.html"
msgid "{ph0}Download the speed rule{ph1} · {ph2}Read the game code{ph3}"
msgstr "{ph0}スピードルールをダウンロードする{ph1} · {ph2}ゲームコードを読む{ph3}"
#: website/public/examples/dino-lab/index.html:350
msgctxt "page:examples/dino-lab/index.html"
msgid "Check the reconstruction"
msgstr "再構築を確認する"
#: website/public/examples/dino-lab/index.html:351
msgctxt "page:examples/dino-lab/index.html"
msgid ""
"We called the original game’s update function with obstacles and automatic "
"scheduling disabled. Compare those recorded speeds with a replay of the "
"recovered rule."
msgstr ""
"私たちは、障害物や自動スケジューリングを無効にして、元のゲームの更新機能と呼びました。 これらの記録された速度を、回復されたルールの再生と比較します。"
#: website/public/examples/dino-lab/index.html:360
msgctxt "page:examples/dino-lab/index.html"
msgid "Updates"
msgstr "更新情報"
#: website/public/examples/dino-lab/index.html:361
msgctxt "page:examples/dino-lab/index.html"
msgid "Original game"
msgstr "オリジナルゲーム"
#: website/public/examples/dino-lab/index.html:362
msgctxt "page:examples/dino-lab/index.html"
msgid "Reconstructed rule"
msgstr "再構築されたルール"
#: website/public/examples/dino-lab/index.html:389
msgctxt "page:examples/dino-lab/index.html"
msgid "Run the speed check"
msgstr "速度チェックを実行する"
#: website/public/examples/dino-lab/index.html:392
msgctxt "page:examples/dino-lab/index.html"
msgid ""
"Values rounded to three decimals. The branch checks before adding, so the "
"final increment can take speed just above 13."
msgstr "値は小数点以下3桁に丸められます。 分岐は追加する前にチェックするので、最終的な増分は13をちょうど上回る速度を取ることができます。"
#: website/public/examples/dino-lab/index.html:398
msgctxt "page:examples/dino-lab/index.html"
msgid "Try the analysis yourself"
msgstr "自分で分析を試してみてください"
#. {ph0}: <a href="../../get-started/">
#. {ph1}: </a>
#: website/public/examples/dino-lab/index.html:400
#, python-brace-format
msgctxt "page:examples/dino-lab/index.html"
msgid "{ph0}Set up REA{ph1} with your coding agent."
msgstr "{ph0}REAのセットアップ {ph1} あなたのコーディングの代理店と。"
#. {ph0}: <a href="../../guides/browser/#prepare" >
#. {ph1}: </a >
#. {ph2}: <code>https://wayou.github.io/t-rex-runner/</code>
#: website/public/examples/dino-lab/index.html:404
#, python-brace-format
msgctxt "page:examples/dino-lab/index.html"
msgid ""
"Follow the {ph0}browser connection steps{ph1}, using {ph2} as the page URL."
msgstr "フォローしてください {ph0}ブラウザ接続手順{ph1}、を使用して {ph2} ページURLとして。"
#: website/public/examples/dino-lab/index.html:411
msgctxt "page:examples/dino-lab/index.html"
msgid ""
"Give your agent the page URL and local debugging endpoint, then copy this "
"prompt."
msgstr "エージェントにページURLとローカルデバッグエンドポイントを指定し、このプロンプトをコピーします。"
#. {ph0}: <span class="terminal-dots" aria-hidden="true" >
#. {ph1}: <i>
#. {ph2}: </i>
#. {ph3}: <i>
#. {ph4}: </i>
#. {ph5}: <i>
#. {ph6}: </i>
#. {ph7}: </span >
#: website/public/examples/dino-lab/index.html:418
#, python-brace-format
msgctxt "page:examples/dino-lab/index.html"
msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent"
msgstr "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}あなたのコーディングエージェント"
#. {ph0}: <span class="prompt-symbol" aria-hidden="true">
#. {ph1}: </span >
#. {ph2}: <span id="lab-analysis-prompt" >
#. {ph3}: </span >
#. {ph4}: <span class="terminal-cursor" aria-hidden="true">
#. {ph5}: </span>
#: website/public/examples/dino-lab/index.html:431
#, python-brace-format
msgctxt "page:examples/dino-lab/index.html"
msgid ""
"{ph0}›{ph1}{ph2}Use REA to inspect this dinosaur game. Why does it get "
"faster? Show the speed rule, then build a small version with an adjustable "
"speed.{ph3}{ph4}{ph5}"
msgstr ""
"{ph0}›{ph1}{ph2}この恐竜のゲームを検査するためにREAを使用してください。 なぜそれは速くなるのですか? "
"速度ルールを表示し、調整可能な速度で小さなバージョンを構築します。{ph3}{ph4}{ph5}"
#. {ph0}: <strong >
#. {ph1}: </strong >
#: website/public/examples/dino-lab/index.html:440
#, python-brace-format
msgctxt "page:examples/dino-lab/index.html"
msgid ""
"Ask a follow-up: {ph0}“Where is jump height calculated? Add a jump-height "
"control to the new version.”{ph1}"
msgstr ""
"フォローアップを依頼する: {ph0}「ジャンプの高さはどこで計算されますか? 新しいバージョンにjump-"
"heightコントロールを追加します。”{ph1}"
#. {ph0}: <a href="https://github.com/wayou/t-rex-
#. runner/blob/5455bfa408ec6b707c7300ff194b7390733a766d/index.js#L565-L571" >
#. {ph1}: </a >
#. {ph2}: <a href="../../assets/licenses/dinosaur.txt" >
#. {ph3}: </a >
#: website/public/examples/dino-lab/index.html:447
#, python-brace-format
msgctxt "page:examples/dino-lab/index.html"
msgid ""
"Source: {ph0}inspected speed code{ph1}, Chromium Authors. {ph2}Copyright and"
" BSD license{ph3}. REA 4.1.0 inspected the running HTTP edition in Chrome "
"150."
msgstr ""
"ソース: {ph0}検査された速度コード{ph1}、Chromiumの著者。 {ph2}著作権とBSDライセンス{ph3}. "
"REA4.1.0は、Chrome150で実行中のHTTPエディションを検査しました。"
#: website/public/examples/dino-lab/index.html:6
msgctxt "page:examples/dino-lab/index.html"
msgid "Chrome Dinosaur Game: Rebuild Its Speed Rule — REA"
msgstr "Chrome恐竜ゲーム:その速度ルールを再構築-REA"
#: website/public/examples/dino-lab/index.html:7
msgctxt "page:examples/dino-lab/index.html"
msgid ""
"Read the dinosaur game’s speed rule with REA, rebuild it, then change the "
"speed and play."
msgstr "REAで恐竜ゲームの速度ルールを読んで、それを再構築し、速度を変更して再生します。"
#: website/public/examples/dino-lab/index.html:217
msgctxt "page:examples/dino-lab/index.html"
msgid "Dinosaur speed reconstruction"
msgstr "恐竜スピード復元"
#: website/public/examples/dino-lab/index.html:248
msgctxt "page:examples/dino-lab/index.html"
msgid ""
"Dinosaur mini-game. Use the Jump button or press Space while the game is "
"focused."
msgstr "恐竜ミニゲーム。 ゲームがフォーカスされている間にジャンプボタンを使用するか、スペースを押します。"
#: website/public/examples/dino-lab/index.html:323
msgctxt "page:examples/dino-lab/index.html"
msgid "Copy reconstructed speed rule"
msgstr "再構築された速度ルールのコピー"
#: website/public/examples/dino-lab/index.html:422
msgctxt "page:examples/dino-lab/index.html"
msgid "Copy dinosaur analysis prompt"
msgstr "コピー恐竜解析プロンプト"
#: website/public/examples/dino-lab/index.html:475
msgctxt "page:examples/dino-lab/index.html"
msgid "Back to top"
msgstr "ページ上部へ"
#: website/public/faq/index.html:103
msgctxt "page:faq/index.html"
msgid "Skip to content"
msgstr "コンテンツにスキップ"
#. {ph0}: <a href="../">
#. {ph1}: </a>
#: website/public/faq/index.html:194
#, python-brace-format
msgctxt "page:faq/index.html"
msgid "{ph0}Home{ph1} / FAQ"
msgstr "{ph0}ホーム{ph1} /よくある質問"
#: website/public/faq/index.html:195
msgctxt "page:faq/index.html"
msgid "REA FAQ."
msgstr "REAよくある質問。"
#: website/public/faq/index.html:196
msgctxt "page:faq/index.html"
msgid "Setup, updates, analysis and troubleshooting."
msgstr "セットアップ、更新、分析、トラブルシューティング。"
#: website/public/faq/index.html:200
msgctxt "page:faq/index.html"
msgid "Topics"
msgstr "トピックス"
#. {ph0}: <a href="#setup">
#. {ph1}: </a>
#: website/public/faq/index.html:202
#, python-brace-format
msgctxt "page:faq/index.html"
msgid "{ph0}Setup and updates{ph1}"
msgstr "{ph0}セットアップと更新{ph1}"
#. {ph0}: <a href="#analysis">
#. {ph1}: </a>
#: website/public/faq/index.html:203
#, python-brace-format
msgctxt "page:faq/index.html"
msgid "{ph0}Analysis{ph1}"
msgstr "{ph0}分析{ph1}"
#. {ph0}: <a href="#troubleshooting">
#. {ph1}: </a>
#: website/public/faq/index.html:204
#, python-brace-format
msgctxt "page:faq/index.html"
msgid "{ph0}Troubleshooting{ph1}"
msgstr "{ph0}トラブルシューティング{ph1}"
#. {ph0}: <a href="#sharing">
#. {ph1}: </a>
#: website/public/faq/index.html:205
#, python-brace-format
msgctxt "page:faq/index.html"
msgid "{ph0}Data and sharing{ph1}"
msgstr "{ph0}データと共有{ph1}"
#: website/public/faq/index.html:214
msgctxt "page:faq/index.html"
msgid "Setup and updates"
msgstr "セットアップと更新"
#: website/public/faq/index.html:217
msgctxt "page:faq/index.html"
msgid "How do I install REA?"
msgstr "REA のインストール方法は?"
#: website/public/faq/index.html:225
msgctxt "page:faq/index.html"
msgid "Terminal · agent setup"
msgstr "端末·エージェントの設定"
#: website/public/faq/index.html:226 website/public/faq/index.html:267
#: website/public/faq/index.html:285 website/public/faq/index.html:369
#: website/public/faq/index.html:416 website/public/faq/index.html:456
#: website/public/faq/index.html:476
msgctxt "page:faq/index.html"
msgid "Copy"
msgstr "コピー"
# Reviewed for readable setup and analysis terminology.
#. {ph0}: <a href="../get-started/">
#. {ph1}: </a>
#: website/public/faq/index.html:237
#, python-brace-format
msgctxt "page:faq/index.html"
msgid ""
"Setup registers REA's MCP connection and installs the matching investigation"
" skill. Restart your agent when it finishes, then give it a target path and "
"a question. {ph0}Follow the setup guide{ph1} for prerequisites and your "
"first analysis."
msgstr ""
"セットアップは REA の MCP "
"接続を登録し、対応する調査スキルをインストールします。完了したらエージェントを再起動し、調べたいファイルのパスと質問を渡してください。必要な環境と最初の分析手順は{ph0}セットアップガイド{ph1}で確認できます。"
#: website/public/faq/index.html:246
msgctxt "page:faq/index.html"
msgid "Which coding agents can use REA?"
msgstr "REAを使用できるコーディングエージェントはどれですか?"
#: website/public/faq/index.html:247
msgctxt "page:faq/index.html"
msgid ""
"Any agent that supports local MCP servers. Setup includes Claude Code, "
"Claude Desktop, Codex, Cursor, Gemini CLI, Windsurf, Devin, OpenCode, "
"Antigravity, GitHub Copilot CLI, Command Code, Grok Build, OMP, and VS Code."
" Grok Bot's connector is added from its chat."
msgstr ""
"ローカルMCPサーバーをサポートする任意のエージェント。 セットアップには、Claude "
"Code、Claudeデスクトップ、Codex、Cursor、Gemini "
"CLI、Windsurf、Devin、OpenCode、Antigravity、GitHub Copilot CLI、Command Code、Grok"
" Buildが含まれていますOMP、およびVS Code。 Grok Botのコネクタはチャットから追加されます。"
#. {ph0}: <a href="../get-started/#agent">
#. {ph1}: </a>
#: website/public/faq/index.html:254
#, python-brace-format
msgctxt "page:faq/index.html"
msgid "{ph0}Connect your coding agent{ph1}."
msgstr "{ph0}コーディングエージェントを接続する{ph1}."
#: website/public/faq/index.html:259
msgctxt "page:faq/index.html"
msgid "How do I update REA?"
msgstr "REA の更新方法は?"
#: website/public/faq/index.html:260
msgctxt "page:faq/index.html"
msgid ""
"REA releases frequently, including bug fixes. If you installed the CLI with "
"npm:"
msgstr "REAは、バグ修正を含め、頻繁にリリースされます。 CLIをnpmとともにインストールした場合 :"
#: website/public/faq/index.html:266
msgctxt "page:faq/index.html"
msgid "Terminal · installed CLI"
msgstr "ターミナル*インストールされているCLI"
#. {ph0}: <code>npx</code>
#: website/public/faq/index.html:278
#, python-brace-format
msgctxt "page:faq/index.html"
msgid ""
"Follow the setup refresh command printed by the update. If you set up your "
"agent through {ph0}, run:"
msgstr "更新によって印刷されたsetup refreshコマンドに従います。 エージェントを設定した場合 {ph0}、走る:"
#: website/public/faq/index.html:284
msgctxt "page:faq/index.html"
msgid "Terminal · refresh agent setup"
msgstr "端末·更新エージェントの設定"
# Reviewed for readable setup and analysis terminology.
#. {ph0}: <code>npx -y rea-agents@latest</code>
#: website/public/faq/index.html:296
#, python-brace-format
msgctxt "page:faq/index.html"
msgid ""
"Review the changes and restart your agent. Its REA connection pins a package"
" version, so refreshing setup makes it use the new release. For one-off CLI "
"commands, use {ph0} followed by the command."
msgstr ""
"変更内容を確認し、エージェントを再起動してください。REA "
"の接続設定にはパッケージのバージョンが指定されているため、セットアップをやり直すと新しいリリースを使えます。単発の CLI 操作では、{ph0} "
"の後にコマンドを続けてください。"
#: website/public/faq/index.html:304
msgctxt "page:faq/index.html"
msgid "Is installing the skill from skills.sh enough?"
msgstr "からスキルをインストールしていますskills.sh もういい?"
#. {ph0}: <a href="#install">
#. {ph1}: </a>
#: website/public/faq/index.html:307
#, python-brace-format
msgctxt "page:faq/index.html"
msgid ""
"The skill gives your agent investigation instructions. Run {ph0}REA "
"setup{ph1} to connect the MCP server and install the matching skill, then "
"restart your agent so it can call the tools."
msgstr ""
"スキルは、あなたのエージェントの調査の指示を与えます。 走れ。 {ph0} REAセットアップ{ph1} "
"MCPサーバーに接続して一致するスキルをインストールするには、エージェントを再起動してツールを呼び出すことができます。"
#: website/public/faq/index.html:318
msgctxt "page:faq/index.html"
msgid "Analysis"
msgstr "分析"
#: website/public/faq/index.html:321
msgctxt "page:faq/index.html"
msgid "What can I analyze with REA?"
msgstr "REAで何を分析できますか?"
#: website/public/faq/index.html:322
msgctxt "page:faq/index.html"
msgid "Start with the kind of software you have:"
msgstr "あなたが持っている種類のソフトウェアから始めてください:"
#. {ph0}: <a href="../guides/native/" >
#. {ph1}: </a >
#: website/public/faq/index.html:324
#, python-brace-format
msgctxt "page:faq/index.html"
msgid ""
"{ph0}Native executables and libraries{ph1}: functions, assembly, pseudocode "
"and references."
msgstr "{ph0}ネイティブ実行可能ファイルとライブラリ{ph1}:関数、アセンブリ、擬似コードおよび参照。"
#. {ph0}: <a href="../guides/javascript/" >
#. {ph1}: </a >
#: website/public/faq/index.html:329
#, python-brace-format
msgctxt "page:faq/index.html"
msgid ""
"{ph0}JavaScript and Electron apps{ph1}: modules, imports, IPC and source "
"locations."
msgstr "{ph0} JavaScriptおよびElectronアプリ{ph1}:モジュール、インポート、IPCとソースの場所。"
#. {ph0}: <a href="../guides/browser/">
#. {ph1}: </a>
#: website/public/faq/index.html:334
#, python-brace-format
msgctxt "page:faq/index.html"
msgid "{ph0}Browser pages{ph1}: scripts, requests and runtime observations."
msgstr "{ph0}ブラウザのページ{ph1}:スクリプト、要求、および実行時の観察。"
#. {ph0}: <a href="../showcase/">
#. {ph1}: </a>
#: website/public/faq/index.html:339
#, python-brace-format
msgctxt "page:faq/index.html"
msgid ""
"REA also has workflows for managed assemblies, Android APKs, firmware and "
"packaged resources. {ph0}See the case studies{ph1} for worked "
"investigations."
msgstr ""
"REAには、マネージアセンブリ、Android Apk、ファームウェア、パッケージリソースのワークフローもあります。 "
"{ph0}ケーススタディを見る{ph1} 働いた調査のために。"
#: website/public/faq/index.html:347
msgctxt "page:faq/index.html"
msgid "Do I need Hopper, Ghidra or IDA?"
msgstr "Hopper、Ghidra、またはIDAが必要ですか?"
#: website/public/faq/index.html:348
msgctxt "page:faq/index.html"
msgid ""
"Deep native analysis uses one of them. Static JavaScript and .NET inspection"
" work with the supplied files and do not need a native analysis engine."
msgstr ""
"マシンコードプログラムの詳細な分析は、そのうちの1つを使用します。 "
"静的JavaScriptと.NET検査は、供給されたファイルで動作し、マシンコードのプログラムエンジンの分析を必要としません。"
#. {ph0}: <a href="../get-started/#native">
#. {ph1}: </a>
#: website/public/faq/index.html:353
#, python-brace-format
msgctxt "page:faq/index.html"
msgid ""
"Connect your existing Ghidra or IDA installation, or let setup detect Hopper"
" and propose an installation. Your host and target determine which provider "
"can be used. {ph0}Set up native analysis{ph1}."
msgstr ""
"既存のGhidraまたはIDAインストールを接続するか、セットアップにHopperを検出させてインストールを提案させます。 "
"使用できるプロバイダーは、ホストとターゲットによって決まります。 {ph0}マシンコードプログラムの解析の設定{ph1}."
#: website/public/faq/index.html:361
msgctxt "page:faq/index.html"
msgid "Can I use REA without a coding agent?"
msgstr "コーディングエージェントなしでREAを使用できますか?"
#: website/public/faq/index.html:362
msgctxt "page:faq/index.html"
msgid ""
"Yes. The CLI uses the same analysis workflows. For a local JavaScript or "
"Electron app:"
msgstr "はい。. CLIは同じ分析ワークフローを使用します。 ローカルJavaScriptまたはElectronアプリの場合:"
#: website/public/faq/index.html:368
msgctxt "page:faq/index.html"
msgid "Terminal · static application analysis"
msgstr "端末*静的アプリケーション解析"
#. {ph0}: <a href="../get-started/#terminal">
#. {ph1}: </a>
#: website/public/faq/index.html:381
#, python-brace-format
msgctxt "page:faq/index.html"
msgid ""
"Replace the path with an extracted application folder or ASAR file. {ph0}Use"
" the CLI{ph1} for installation options."
msgstr ""
"パスを抽出したアプリケーションフォルダまたはASARファイルに置き換えます。 {ph0}CLIを使用する {ph1} インストールオプション用。"
# Reviewed for readable setup and analysis terminology.
#: website/public/faq/index.html:388
msgctxt "page:faq/index.html"
msgid "What code does REA return?"
msgstr "REA はどんなコードを返しますか?"
# Reviewed for readable setup and analysis terminology.
#: website/public/faq/index.html:389
msgctxt "page:faq/index.html"
msgid ""
"Native analysis returns assembly and pseudocode, with calls, references and "
"relevant constants. JavaScript analysis returns modules, their relationships"
" and source locations."
msgstr ""
"ネイティブプログラムの分析では、アセンブリと疑似コードに加え、関数呼び出し、参照、関連する定数が得られます。JavaScript "
"の分析では、モジュール、それらの関係、ソース内の位置が得られます。"
#. {ph0}: <a href="../showcase/dx-ball/#sound-pan" >
#. {ph1}: </a >
#. {ph2}: <a href="../showcase/ctf/">
#. {ph3}: </a>
#: website/public/faq/index.html:394
#, python-brace-format
msgctxt "page:faq/index.html"
msgid ""
"Your agent uses these findings to explain the behavior or write and test an "
"implementation. The {ph0}DX-Ball calculation{ph1} and {ph2}CTF flag "
"checker{ph3} show how that process works."
msgstr ""
"エージェントは、これらの調査結果を使用して、動作を説明したり、実装を記述してテストしたりします。 ザ- {ph0} DX-Ball計算{ph1} と "
"{ph2}CTFフラグチェッカー{ph3} そのプロセスがどのように機能するかを示します。"
#: website/public/faq/index.html:405
msgctxt "page:faq/index.html"
msgid "What should I ask my agent?"
msgstr "エージェントに何を聞けばいい?"
#: website/public/faq/index.html:406
msgctxt "page:faq/index.html"
msgid ""
"Give it a local target and one behavior to investigate. For a JavaScript or "
"Electron app:"
msgstr "それにローカルターゲットと調査するための一つの動作を与えます。 JavaScriptまたはElectronアプリの場合:"
#. {ph0}: <span class="terminal-dots" aria-hidden="true" >
#. {ph1}: <i>
#. {ph2}: </i>
#. {ph3}: <i>
#. {ph4}: </i>
#. {ph5}: <i>
#. {ph6}: </i>
#. {ph7}: </span >
#: website/public/faq/index.html:412
#, python-brace-format
msgctxt "page:faq/index.html"
msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent"
msgstr "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}あなたのコーディングエージェント"
#. {ph0}: <a href="../guides/">
#. {ph1}: </a>
#: website/public/faq/index.html:435
#, python-brace-format
msgctxt "page:faq/index.html"
msgid ""
"Replace the path with your target. The {ph0}guides{ph1} provide prompts for "
"native, Electron and browser examples."
msgstr ""
"パスをターゲットに置き換えます。 ザ- {ph0}ガイド{ph1} ネイティブ、Electron、およびブラウザの例のプロンプトを提供します。"
#: website/public/faq/index.html:445
msgctxt "page:faq/index.html"
msgid "Troubleshooting"
msgstr "トラブルシューティング"
#: website/public/faq/index.html:448
msgctxt "page:faq/index.html"
msgid "Why can't my agent see the REA tools?"
msgstr "エージェントにREAツールが表示されないのはなぜですか?"
#. {ph0}: <code>doctor</code>
#: website/public/faq/index.html:449
#, python-brace-format
msgctxt "page:faq/index.html"
msgid ""
"Restart or reconnect your agent after setup. Check its REA registration with"
" {ph0}; for Codex:"
msgstr "セットアップ後にエージェントを再起動または再接続します。 でそのREA登録を確認してください {ph0};Codexのため :"
#: website/public/faq/index.html:455
msgctxt "page:faq/index.html"
msgid "Terminal · check one client"
msgstr "端末·一つのクライアントを確認してください"
#. {ph0}: <code>codex</code>
#. {ph1}: <code>claude_code</code>
#. {ph2}: <code>cursor</code>
#: website/public/faq/index.html:467
#, python-brace-format
msgctxt "page:faq/index.html"
msgid ""
"Replace {ph0} with your client ID, such as {ph1} or {ph2}. If the report "
"shows a missing or stale registration, run setup for that client:"
msgstr ""
"置換 {ph0} クライアントIDでは、次のようになります {ph1} または {ph2}. "
"レポートに不足している登録または古い登録が表示されている場合は、そのクライアントのセットアップを実行します:"
#: website/public/faq/index.html:475
msgctxt "page:faq/index.html"
msgid "Terminal · repair one client's setup"
msgstr "端末*クライアントのセットアップを修復"
#. {ph0}: <a href="../get-started/#help">
#. {ph1}: </a>
#: website/public/faq/index.html:487
#, python-brace-format
msgctxt "page:faq/index.html"
msgid ""
"Review its plan and restart the client. If registration is healthy but tools"
" remain absent, check the client's MCP connection error. {ph0}More setup "
"diagnostics{ph1}."
msgstr ""
"その計画を確認し、クライアントを再起動します。 登録は正常ですが、ツールが存在しない場合は、クライアントのMCP接続エラーを確認してください。 "
"{ph0}より多くのセットアップ診断{ph1}."
#: website/public/faq/index.html:495
msgctxt "page:faq/index.html"
msgid "Do I need to start Hopper first?"
msgstr "最初にHopperを起動する必要がありますか?"
#. {ph0}: <a href="../get-started/#native">
#. {ph1}: </a >
#: website/public/faq/index.html:496
#, python-brace-format
msgctxt "page:faq/index.html"
msgid ""
"REA starts Hopper when an operation needs it. On macOS, complete the first-"
"run choice of demo mode or license activation before unattended analysis. "
"{ph0}See native provider setup{ph1}."
msgstr ""
"REAは、操作が必要なときにHopperを開始します。 macOSでは、無人分析の前にデモモードまたはライセンス認証の最初の実行選択を完了します。 "
"{ph0}ネイティブプロバイダーの設定を参照してください{ph1}."
#: website/public/faq/index.html:505
msgctxt "page:faq/index.html"
msgid "What should I do if I hit a bug?"
msgstr "バグが起きたらどうすればいい?"
#. {ph0}: <a href="#update">
#. {ph1}: </a>
#: website/public/faq/index.html:506
#, python-brace-format
msgctxt "page:faq/index.html"
msgid ""
"{ph0}Update REA{ph1}, restart your agent and retry the same task. A recent "
"release may already fix the problem."
msgstr ""
"{ph0}更新REA {ph1}、エージェントを再起動し、同じタスクを再試行します。 最近のリリースでは既に問題が解決されている可能性があります。"
#. {ph0}: <a href="https://github.com/morluto/rea/issues/new/choose" >
#. {ph1}: </a >
#: website/public/faq/index.html:510
#, python-brace-format
msgctxt "page:faq/index.html"
msgid ""
"If it persists, {ph0}open an issue{ph1} with your REA version, operating "
"system, target type, steps to reproduce and error output. Include the "
"provider name when the problem involves native analysis."
msgstr ""
"それが持続する場合, {ph0}課題を開く{ph1} "
"あなたのREAバージョン、オペレーティングシステム、ターゲットタイプ、再現する手順とエラー出力を使用します。 "
"問題がマシンコードプログラムの分析に関係する場合は、プロバイダー名を含めます。"
#: website/public/faq/index.html:524
msgctxt "page:faq/index.html"
msgid "Data and sharing"
msgstr "データと共有"
#: website/public/faq/index.html:527
msgctxt "page:faq/index.html"
msgid "Does REA upload my app?"
msgstr "REAは私のアプリをアップロードしますか?"
#: website/public/faq/index.html:528
msgctxt "page:faq/index.html"
msgid ""
"REA analyzes targets on your machine. Your agent receives the results, and "
"its model provider's data policy applies to those results."
msgstr "REAは、マシン上のターゲットを分析します。 エージェントは結果を受け取り、モデルプロバイダーのデータポリシーがその結果に適用されます。"
#: website/public/faq/index.html:535
msgctxt "page:faq/index.html"
msgid "How can I share an example or contribute?"
msgstr "例を共有したり、貢献したりするにはどうすればよいですか?"
#. {ph0}: <a href="https://github.com/morluto/rea/issues/new/choose" >
#. {ph1}: </a >
#. {ph2}: <a href="https://github.com/morluto/rea/pulls">
#. {ph3}: </a >
#: website/public/faq/index.html:536
#, python-brace-format
msgctxt "page:faq/index.html"
msgid ""
"Have a useful REA example? We'd love to see it. Share the target, your "
"question, the findings and how you checked them in an {ph0}issue{ph1} or "
"{ph2}pull request{ph3}. Short code excerpts and figures help others follow "
"the investigation."
msgstr ""
"便利なREAの例がありますか? 私たちはそれを見たいと思います。 ターゲット、あなたの質問、調査結果、およびそれらをどのようにチェックしたかを共有します"
" {ph0}発行{ph1} または {ph2}プルリクエスト{ph3}. 短いコードの抜粋と数字は、他の人が調査に従うのに役立ちます。"
#. {ph0}: <a href="https://discord.gg/GkcryMnJDM">
#. {ph1}: </a>
#: website/public/faq/index.html:548
#, python-brace-format
msgctxt "page:faq/index.html"
msgid ""
"Bug reports, feature requests, documentation and code improvements are "
"welcome too. You can also discuss an example in the {ph0}community{ph1}."
msgstr ""
"バグレポート、機能要求、ドキュメント、コードの改善も歓迎します。 また、例について説明することもできます {ph0}コミュニティ{ph1}."
#: website/public/faq/index.html:6
msgctxt "page:faq/index.html"
msgid "REA FAQ: Setup, Updates and Troubleshooting"
msgstr "REA FAQ:セットアップ、アップデート、およびトラブルシューティング"
#: website/public/faq/index.html:7
msgctxt "page:faq/index.html"
msgid ""
"Answers to common REA questions: installation, updates, analysis tools, "
"coding agents, troubleshooting and sharing examples."
msgstr "一般的なREAの質問への回答:インストール、更新、分析ツール、コーディングエージェント、トラブルシューティングと共有例。"
#: website/public/faq/index.html:199
msgctxt "page:faq/index.html"
msgid "On this page"
msgstr "このページでは"
#: website/public/faq/index.html:208
msgctxt "page:faq/index.html"
msgid "Frequently asked questions about REA"
msgstr "REAに関するよくある質問"
#: website/public/faq/index.html:226
msgctxt "page:faq/index.html"
msgid "Copy REA setup command"
msgstr "コピー REAセットアップコマンド"
#: website/public/faq/index.html:267
msgctxt "page:faq/index.html"
msgid "Copy REA update command"
msgstr "COPY REA updateコマンド"
#: website/public/faq/index.html:285
msgctxt "page:faq/index.html"
msgid "Copy agent setup refresh command"
msgstr "Copy agent setup refreshコマンド"
#: website/public/faq/index.html:369
msgctxt "page:faq/index.html"
msgid "Copy REA CLI analysis command"
msgstr "コピー REA CLI解析コマンド"
#: website/public/faq/index.html:416
msgctxt "page:faq/index.html"
msgid "Copy example analysis prompt"
msgstr "分析例のコピー"
#: website/public/faq/index.html:456
msgctxt "page:faq/index.html"
msgid "Copy client diagnosis command"
msgstr "クライアント診断コマンドのコピー"
#: website/public/faq/index.html:476
msgctxt "page:faq/index.html"
msgid "Copy scoped setup command"
msgstr "スコープ設定のコピーコマンド"
#: website/public/faq/index.html:573
msgctxt "page:faq/index.html"
msgid "Back to top"
msgstr "ページ上部へ"
#: website/public/first-investigation/index.html:103
msgctxt "page:first-investigation/index.html"
msgid "Skip to content"
msgstr "コンテンツにスキップ"
#. {ph0}: <a href="../">
#. {ph1}: </a>
#: website/public/first-investigation/index.html:194
#, python-brace-format
msgctxt "page:first-investigation/index.html"
msgid "{ph0}Home{ph1} / Your first investigation"
msgstr "{ph0}ホーム{ph1} /あなたの最初の調査"
#. {ph0}: <br />
#: website/public/first-investigation/index.html:197
#, python-brace-format
msgctxt "page:first-investigation/index.html"
msgid "Find out where{ph0}exported notes go."
msgstr "どこを見つける{ph0}エクスポートされたノートは行きます。"
#: website/public/first-investigation/index.html:198
msgctxt "page:first-investigation/index.html"
msgid ""
"Use REA to inspect a small app, follow its Export notes button and check one"
" detail yourself."
msgstr "REAを使用して、小さなアプリを検査し、そのエクスポートノートボタンに従って、自分で詳細を確認します。"
#: website/public/first-investigation/index.html:209
msgctxt "page:first-investigation/index.html"
msgid "In this exercise"
msgstr "この演習では"
#. {ph0}: <a href="#setup">
#. {ph1}: </a>
#: website/public/first-investigation/index.html:211
#, python-brace-format
msgctxt "page:first-investigation/index.html"
msgid "{ph0}1. Set up{ph1}"
msgstr "{ph0}1. セットアップ{ph1}"
#. {ph0}: <a href="#ask">
#. {ph1}: </a>
#: website/public/first-investigation/index.html:212
#, python-brace-format
msgctxt "page:first-investigation/index.html"
msgid "{ph0}2. Ask about export{ph1}"
msgstr "{ph0}2. 輸出について尋ねる{ph1}"
#. {ph0}: <a href="#answer">
#. {ph1}: </a>
#: website/public/first-investigation/index.html:213
#, python-brace-format
msgctxt "page:first-investigation/index.html"
msgid "{ph0}3. Follow the answer{ph1}"
msgstr "{ph0}3. 答えに従ってください{ph1}"
#. {ph0}: <a href="#check">
#. {ph1}: </a>
#: website/public/first-investigation/index.html:214
#, python-brace-format
msgctxt "page:first-investigation/index.html"
msgid "{ph0}4. Check a prediction{ph1}"
msgstr "{ph0}4. 予測を確認する{ph1}"
#. {ph0}: <a href="#next">
#. {ph1}: </a>
#: website/public/first-investigation/index.html:215
#, python-brace-format
msgctxt "page:first-investigation/index.html"
msgid "{ph0}5. Ask another question{ph1}"
msgstr "{ph0}5. 別の質問をする{ph1}"
#: website/public/first-investigation/index.html:220
msgctxt "page:first-investigation/index.html"
msgid "1. Connect your agent to REA"
msgstr "1. エージェントをREAに接続します"
#. {ph0}: <span class="terminal-dots" aria-hidden="true" >
#. {ph1}: <i>
#. {ph2}: </i>
#. {ph3}: <i>
#. {ph4}: </i>
#. {ph5}: <i>
#. {ph6}: </i>
#. {ph7}: </span >
#: website/public/first-investigation/index.html:229
#: website/public/first-investigation/index.html:279
#: website/public/first-investigation/index.html:401
#, python-brace-format
msgctxt "page:first-investigation/index.html"
msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent"
msgstr "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}あなたのコーディングエージェント"
#: website/public/first-investigation/index.html:234
#: website/public/first-investigation/index.html:256
#: website/public/first-investigation/index.html:284
#: website/public/first-investigation/index.html:406
#: website/public/first-investigation/index.html:448
msgctxt "page:first-investigation/index.html"
msgid "Copy"
msgstr "コピー"
#: website/public/first-investigation/index.html:253
msgctxt "page:first-investigation/index.html"
msgid "Or run this command in your terminal:"
msgstr "または、ターミナルでこのコマンドを実行します:"
#: website/public/first-investigation/index.html:265
msgctxt "page:first-investigation/index.html"
msgid ""
"Review the plan, approve the setup, then restart your agent. Already "
"connected? Continue below."
msgstr "計画を確認し、設定を承認してから、エージェントを再起動します。 すでに接続されていますか? 以下に進みます。"
#: website/public/first-investigation/index.html:271
msgctxt "page:first-investigation/index.html"
msgid "2. Ask where the CSV is written"
msgstr "2. CSVがどこに書かれているかを尋ねる"
#. {ph0}: <strong>
#. {ph1}: </strong>
#: website/public/first-investigation/index.html:272
#, python-brace-format
msgctxt "page:first-investigation/index.html"
msgid ""
"The example is a six-file Electron app with an {ph0}Export notes{ph1} "
"button. Your agent can inspect its code without installing or launching "
"Electron."
msgstr ""
"この例では、6つのファイルElectronアプリを使用しています。 {ph0}ノートのエクスポート{ph1} ボタン。 "
"エージェントは、Electronをインストールまたは起動せずにコードを検査できます。"
#: website/public/first-investigation/index.html:307
msgctxt "page:first-investigation/index.html"
msgid ""
"Your agent downloads the files and gives the unpacked folder to REA for "
"inspection."
msgstr "エージェントはファイルをダウンロードし、検査のために解凍されたフォルダをREAに与えます。"
#. {ph0}: <a class="button" href="../examples/notes-example.zip"
#. download="notes-example.zip" >
#. {ph1}: </a >
#: website/public/first-investigation/index.html:311
#, python-brace-format
msgctxt "page:first-investigation/index.html"
msgid "{ph0}Download example ZIP{ph1}"
msgstr "{ph0}ダウンロード例ZIP{ph1}"
#. {ph0}: <code>notes-example</code>
#: website/public/first-investigation/index.html:319
#, python-brace-format
msgctxt "page:first-investigation/index.html"
msgid ""
"If your agent can’t download files, unzip this archive yourself. Give it the"
" path to the {ph0} folder and the same export question."
msgstr ""
"エージェントがファイルをダウンロードできない場合は、このアーカイブを自分で解凍します。 それへの道を与えてください {ph0} "
"フォルダと同じエクスポートの質問。"
#: website/public/first-investigation/index.html:326
msgctxt "page:first-investigation/index.html"
msgid "3. Follow the answer back to the code"
msgstr "3. コードに戻って答えに従ってください"
#: website/public/first-investigation/index.html:327
msgctxt "page:first-investigation/index.html"
msgid "Look for a short explanation with file and line references:"
msgstr "ファイルと行の参照に関する簡単な説明を探してください:"
#. {ph0}: <code>notes:export</code>
#. {ph1}: <code>notes.csv</code>
#. {ph2}: <code>id</code>
#. {ph3}: <code>title</code>
#: website/public/first-investigation/index.html:329
#, python-brace-format
msgctxt "page:first-investigation/index.html"
msgid ""
"The button sends a {ph0} message. The main process formats the notes as CSV "
"and writes {ph1} in the user’s Downloads folder. The columns are {ph2} and "
"{ph3}."
msgstr ""
"ボタンはaを送ります {ph0} メッセージ。 メインプロセスは、CSVとしてノートをフォーマットし、書き込みます {ph1} "
"ユーザーのダウンロードフォルダにあります。 列は次のとおりです {ph2} と {ph3}."
#: website/public/first-investigation/index.html:337
msgctxt "page:first-investigation/index.html"
msgid "From the button to the file writer"
msgstr "ボタンからファイルライターへ"
#: website/public/first-investigation/index.html:366
msgctxt "page:first-investigation/index.html"
msgid ""
"REA’s static analysis pairs the message with its handler. The destination is"
" read from code."
msgstr "REAの静的解析は、メッセージとそのハンドラーをペアリングします。 宛先はコードから読み取られます。"
#: website/public/first-investigation/index.html:382
msgctxt "page:first-investigation/index.html"
msgid ""
"The file path, formatter and write call are together in this handler. Ask "
"your agent to show these lines if its answer leaves them out."
msgstr ""
"ファイルパス、フォーマッタ、および書き込み呼び出しは、このハンドラーにまとめられています。 "
"その答えがそれらを残す場合は、これらの行を表示するようにエージェントに依頼してください。"
#. {ph0}: <a href="../guides/javascript/#follow" >
#. {ph1}: </a >
#: website/public/first-investigation/index.html:387
#, python-brace-format
msgctxt "page:first-investigation/index.html"
msgid "{ph0}See the full code trace and recorded REA result{ph1}."
msgstr "{ph0}完全なコードトレースと記録されたREA結果を参照してください{ph1}."
#: website/public/first-investigation/index.html:394
msgctxt "page:first-investigation/index.html"
msgid "4. Check a prediction"
msgstr "4. 予測を確認する"
#: website/public/first-investigation/index.html:395
msgctxt "page:first-investigation/index.html"
msgid ""
"A comma separates CSV columns. What happens when a note title itself "
"contains a comma or quotation marks?"
msgstr "コンマはCSV列を区切っています。 ノートタイトル自体にコンマまたは引用符が含まれている場合はどうなりますか?"
#: website/public/first-investigation/index.html:439
msgctxt "page:first-investigation/index.html"
msgid "Run the check yourself"
msgstr "自分でチェックを実行します"
#. {ph0}: <code>notes-example</code>
#: website/public/first-investigation/index.html:440
#, python-brace-format
msgctxt "page:first-investigation/index.html"
msgid "Open a terminal in the unpacked {ph0} folder:"
msgstr "開梱された端末で端末を開く {ph0} フォルダ:"
#: website/public/first-investigation/index.html:462
msgctxt "page:first-investigation/index.html"
msgid ""
"This command uses a shell with here-document support, such as Bash or Zsh. "
"Your agent can run the same JavaScript in your platform’s shell."
msgstr ""
"このコマンドは、bashやZshなどのhere-documentをサポートするシェルを使用します。 "
"エージェントは、プラットフォームのシェルで同じJavaScriptを実行できます。"
#: website/public/first-investigation/index.html:470
msgctxt "page:first-investigation/index.html"
msgid "5. Ask another question"
msgstr "5. 別の質問をする"
#: website/public/first-investigation/index.html:471
msgctxt "page:first-investigation/index.html"
msgid "Try a follow-up in the same conversation:"
msgstr "同じ会話でフォローアップを試してみてください:"
#: website/public/first-investigation/index.html:473
msgctxt "page:first-investigation/index.html"
msgid ""
"What happens if the file can’t be written? Follow the error back to the "
"page."
msgstr "ファイルを書き込めない場合はどうなりますか? エラーに従ってページに戻ります。"
#: website/public/first-investigation/index.html:478
msgctxt "page:first-investigation/index.html"
msgid ""
"Or give your agent an app of your own and ask about one button, file or "
"behavior."
msgstr "または、エージェントに独自のアプリを提供し、一つのボタン、ファイル、または動作について尋ねます。"
#. {ph0}: <a href="../showcase/notion/">
#. {ph1}: </a >
#. {ph2}: <span >
#. {ph3}: </span >
#: website/public/first-investigation/index.html:483
#, python-brace-format
msgctxt "page:first-investigation/index.html"
msgid ""
"{ph0}How Notion copies text and HTML{ph1}{ph2}Follow a clipboard feature in "
"a packaged Electron app.{ph3}"
msgstr ""
"{ph0}NotionがテキストとHTMLをどのようにコピーするか{ph1}{ph2}パッケージ化されたElectronアプリのクリップボード機能に従ってください。{ph3}"
#. {ph0}: <a href="../showcase/dx-ball/" >
#. {ph1}: </a >
#. {ph2}: <span >
#. {ph3}: </span >
#: website/public/first-investigation/index.html:489
#, python-brace-format
msgctxt "page:first-investigation/index.html"
msgid ""
"{ph0}How DX-Ball calculates sound panning{ph1}{ph2}Read the original "
"instructions and the reconstruction’s checks.{ph3}"
msgstr ""
"{ph0}DX-Ballがステレオサウンドポジショニングを計算する方法{ph1}{ph2}元の指示と再建のチェックを読んでください。{ph3}"
#. {ph0}: <a href="../faq/#troubleshooting" >
#. {ph1}: </a >
#. {ph2}: <span >
#. {ph3}: </span >
#: website/public/first-investigation/index.html:497
#, python-brace-format
msgctxt "page:first-investigation/index.html"
msgid ""
"{ph0}Troubleshoot setup or analysis{ph1}{ph2}Update REA and check the "
"connection if you get stuck.{ph3}"
msgstr ""
"{ph0}セットアップまたは分析のトラブルシューティング{ph1}{ph2}REAを更新し、動けなくなった場合は接続を確認してください。{ph3}"
#: website/public/first-investigation/index.html:6
msgctxt "page:first-investigation/index.html"
msgid "Your First Reverse Engineering Investigation — REA"
msgstr "あなたの最初のリバースエンジニアリング調査-REA"
#: website/public/first-investigation/index.html:7
msgctxt "page:first-investigation/index.html"
msgid ""
"Try REA on a small Notes app. Set up your agent, ask where exported notes "
"go, and check the CSV formatter with a sample title."
msgstr ""
"小さなノートアプリでREAを試してみてください。 "
"エージェントを設定し、エクスポートされたノートの場所を尋ね、サンプルタイトル付きのCSVフォーマッタを確認します。"
#: website/public/first-investigation/index.html:208
msgctxt "page:first-investigation/index.html"
msgid "On this page"
msgstr "このページでは"
#: website/public/first-investigation/index.html:218
msgctxt "page:first-investigation/index.html"
msgid "Your first REA investigation"
msgstr "あなたの最初のREA調査"
#: website/public/first-investigation/index.html:234
msgctxt "page:first-investigation/index.html"
msgid "Copy REA installation prompt"
msgstr "コピー REAインストールプロンプト"
#: website/public/first-investigation/index.html:256
msgctxt "page:first-investigation/index.html"
msgid "Copy setup command"
msgstr "Copy setupコマンド"
#: website/public/first-investigation/index.html:284
msgctxt "page:first-investigation/index.html"
msgid "Copy Notes investigation prompt"
msgstr "コピーノート調査プロンプト"
#: website/public/first-investigation/index.html:406
msgctxt "page:first-investigation/index.html"
msgid "Copy CSV check prompt"
msgstr "コピー CSVチェックプロンプト"
#: website/public/first-investigation/index.html:448
msgctxt "page:first-investigation/index.html"
msgid "Copy formatter check command"
msgstr "コピーフォーマッタチェックコマンド"
#: website/public/first-investigation/index.html:523
msgctxt "page:first-investigation/index.html"
msgid "Back to top"
msgstr "ページ上部へ"
#: website/public/get-started/index.html:103
msgctxt "page:get-started/index.html"
msgid "Skip to content"
msgstr "コンテンツにスキップ"
#. {ph0}: <a href="../">
#. {ph1}: </a>
#: website/public/get-started/index.html:194
#, python-brace-format
msgctxt "page:get-started/index.html"
msgid "{ph0}Home{ph1} / Get started"
msgstr "{ph0}ホーム{ph1} /はじめに"
#: website/public/get-started/index.html:195
msgctxt "page:get-started/index.html"
msgid "Set up REA."
msgstr "REAをセットアップします。"
#: website/public/get-started/index.html:196
msgctxt "page:get-started/index.html"
msgid ""
"Connect REA to your coding agent, or inspect a local app from your terminal."
msgstr "REAをコーディングエージェントに接続するか、端末からローカルアプリを検査します。"
#: website/public/get-started/index.html:208
msgctxt "page:get-started/index.html"
msgid "Open a terminal and check:"
msgstr "ターミナルを開いて確認してください:"
#: website/public/get-started/index.html:211
#: website/public/get-started/index.html:468
msgctxt "page:get-started/index.html"
msgid "Terminal"
msgstr "ターミナル"
#: website/public/get-started/index.html:212
#: website/public/get-started/index.html:233
#: website/public/get-started/index.html:256
#: website/public/get-started/index.html:272
#: website/public/get-started/index.html:287
#: website/public/get-started/index.html:302
#: website/public/get-started/index.html:318
#: website/public/get-started/index.html:337
#: website/public/get-started/index.html:423
#: website/public/get-started/index.html:469
#: website/public/get-started/index.html:545
#: website/public/get-started/index.html:604
#: website/public/get-started/index.html:645
#: website/public/get-started/index.html:677
#: website/public/get-started/index.html:734
#: website/public/get-started/index.html:775
#: website/public/get-started/index.html:815
#: website/public/get-started/index.html:831
msgctxt "page:get-started/index.html"
msgid "Copy"
msgstr "コピー"
#. {ph0}: <strong>
#. {ph1}: </strong>
#: website/public/get-started/index.html:229
#, python-brace-format
msgctxt "page:get-started/index.html"
msgid "{ph0}Windows (PowerShell){ph1}"
msgstr "{ph0} Windows(PowerShell){ph1}"
#. {ph0}: <code>node -v</code>
#: website/public/get-started/index.html:244
#, python-brace-format
msgctxt "page:get-started/index.html"
msgid ""
"Type Y if asked to accept the terms. Close PowerShell, open it again, then "
"run {ph0}."
msgstr "条件に同意するように求められた場合は、\"Y\"と入力します。 PowerShellを閉じて、もう一度開き、実行します {ph0}."
#. {ph0}: <em>
#. {ph1}: </em>
#. {ph2}: <code>npx</code>
#: website/public/get-started/index.html:248
#, python-brace-format
msgctxt "page:get-started/index.html"
msgid ""
"If PowerShell later says {ph0}\"running scripts is disabled on this "
"system\"{ph1} when you run {ph2}, run this once and try again:"
msgstr ""
"PowerShellが後で言う場合 {ph0}「このシステムでスクリプトの実行が無効になっています」{ph1} あなたが実行するとき "
"{ph2}、これを一度実行して再試行してください:"
#: website/public/get-started/index.html:268
msgctxt "page:get-started/index.html"
msgid "If you use Homebrew:"
msgstr "Homebrewを使用する場合 :"
#: website/public/get-started/index.html:283
msgctxt "page:get-started/index.html"
msgid "Otherwise:"
msgstr "それ以外の場合:"
#: website/public/get-started/index.html:298
msgctxt "page:get-started/index.html"
msgid "Close Terminal, open it again, then:"
msgstr "ターミナルを閉じて、もう一度開いてから、:"
#. {ph0}: <code>curl</code>
#. {ph1}: <code>unzip</code>
#. {ph2}: <code>sudo apt install curl unzip</code>
#: website/public/get-started/index.html:329
#, python-brace-format
msgctxt "page:get-started/index.html"
msgid ""
"The installer needs {ph0} and {ph1} (on Debian/Ubuntu: {ph2}). Close the "
"terminal, open it again, then:"
msgstr ""
"インストーラは必要です {ph0} と {ph1} (Debian/Ubuntuで: {ph2}). ターミナルを閉じて、もう一度開いてから、:"
#. {ph0}: <code>nodejs</code>
#. {ph1}: <code>node -v</code>
#: website/public/get-started/index.html:349
#, python-brace-format
msgctxt "page:get-started/index.html"
msgid ""
"Your distribution's own {ph0} package is often older than 22.19, so check "
"{ph1} if you use it instead."
msgstr ""
"あなたの分布は独自のものです {ph0} パッケージは22.19より古いことが多いので、チェックしてください {ph1} "
"あなたが代わりにそれを使用する場合。"
#. {ph0}: <a href="https://nodejs.org/en/download">
#. {ph1}: </a>
#: website/public/get-started/index.html:353
#, python-brace-format
msgctxt "page:get-started/index.html"
msgid ""
"Prefer a regular installer? Download the LTS version from "
"{ph0}nodejs.org{ph1}."
msgstr "通常のインストーラを好みますか? からLTSバージョンをダウンロードしてください {ph0}nodejs.org{ph1}."
#: website/public/get-started/index.html:361
msgctxt "page:get-started/index.html"
msgid "Setup options"
msgstr "セットアップオプション"
#. {ph0}: <a href="#agent">
#. {ph1}: </a>
#: website/public/get-started/index.html:363
#, python-brace-format
msgctxt "page:get-started/index.html"
msgid "{ph0}Connect your coding agent{ph1}"
msgstr "{ph0}コーディングエージェントを接続する{ph1}"
#. {ph0}: <a href="#terminal">
#. {ph1}: </a>
#: website/public/get-started/index.html:364
#, python-brace-format
msgctxt "page:get-started/index.html"
msgid "{ph0}Use the CLI{ph1}"
msgstr "{ph0}CLIを使用する {ph1}"
#. {ph0}: <a href="#native">
#. {ph1}: </a>
#: website/public/get-started/index.html:365
#, python-brace-format
msgctxt "page:get-started/index.html"
msgid "{ph0}Set up native analysis{ph1}"
msgstr "{ph0}マシンコードプログラムの解析の設定{ph1}"
#. {ph0}: <a href="#help">
#. {ph1}: </a>
#: website/public/get-started/index.html:366
#, python-brace-format
msgctxt "page:get-started/index.html"
msgid "{ph0}Getting help{ph1}"
msgstr "{ph0}助けを得る{ph1}"
#: website/public/get-started/index.html:371
msgctxt "page:get-started/index.html"
msgid "Connect your coding agent"
msgstr "コーディングエージェントを接続する"
#: website/public/get-started/index.html:372
msgctxt "page:get-started/index.html"
msgid ""
"Run setup to connect REA to your coding agent. Client choices include Claude"
" Code, Codex, Cursor, Gemini CLI, Windsurf, Grok Build, and other supported "
"MCP clients. Grok Bot's connector is added from its chat."
msgstr ""
"セットアップを実行して、REAをコーディングエージェントに接続します。 クライアントの選択肢には、Claude "
"Code、Codex、Cursor、Gemini CLI、Windsurf、Grok "
"Build、およびその他のサポートされているMCPクライアントが含まれます。 Grok Botのコネクタはチャットから追加されます。"
#: website/public/get-started/index.html:379
msgctxt "page:get-started/index.html"
msgid "New to coding agents?"
msgstr "コーディングエージェントは初めてですか?"
#: website/public/get-started/index.html:380
msgctxt "page:get-started/index.html"
msgid ""
"A coding agent is an AI assistant that works on your computer instead of in "
"a browser tab. It can read files and run commands, and it asks before making"
" changes. REA gives it reverse-engineering tools."
msgstr ""
"コーディングエージェントは、ブラウザタブではなくコンピュータ上で動作するAIアシスタントです。 "
"ファイルを読み込んでコマンドを実行することができ、変更を加える前に要求します。 REAはリバースエンジニアリングツールを提供します。"
#: website/public/get-started/index.html:386
msgctxt "page:get-started/index.html"
msgid ""
"If you don't have one yet, pick one, follow its install page and sign in:"
msgstr "まだお持ちでない場合は、1つを選択し、インストールページに従ってサインインします:"
#. {ph0}: <strong >
#. {ph1}: <a href="https://code.claude.com/docs/en/setup" >
#. {ph2}: </a >
#. {ph3}: </strong >
#: website/public/get-started/index.html:391
#, python-brace-format
msgctxt "page:get-started/index.html"
msgid ""
"{ph0}{ph1}Claude Code{ph2}{ph3} by Anthropic. Needs a paid Claude plan."
msgstr "{ph0}{ph1} Claude Code {ph2}{ph3} Anthropicによって。 有料Claudeプランが必要です。"
#. {ph0}: <strong >
#. {ph1}: <a href="https://github.com/openai/codex">
#. {ph2}: </a>
#. {ph3}: </strong >
#: website/public/get-started/index.html:399
#, python-brace-format
msgctxt "page:get-started/index.html"
msgid ""
"{ph0}{ph1}Codex{ph2}{ph3} by OpenAI. Sign in with your ChatGPT account."
msgstr "{ph0}{ph1} Codex {ph2}{ph3} OpenAIによって。 ChatGPTアカウントでサインインします。"
#. {ph0}: <strong >
#. {ph1}: <a href="https://opencode.ai/docs">
#. {ph2}: </a>
#. {ph3}: </strong >
#: website/public/get-started/index.html:405
#, python-brace-format
msgctxt "page:get-started/index.html"
msgid ""
"{ph0}{ph1}OpenCode{ph2}{ph3}, open source. Connect the model provider of "
"your choice."
msgstr "{ph0}{ph1} OpenCode {ph2}{ph3}、オープンソース。 お好みのモデルプロバイダを接続します。"
#: website/public/get-started/index.html:411
msgctxt "page:get-started/index.html"
msgid ""
"Then open it and copy the prompt below into it. The agent runs REA's setup "
"and shows you the plan before changing anything."
msgstr "次に、それを開き、下のプロンプトをその中にコピーします。 エージェントはREAのセットアップを実行し、何かを変更する前に計画を示します。"
#. {ph0}: <span class="terminal-dots" aria-hidden="true" >
#. {ph1}: <i>
#. {ph2}: </i>
#. {ph3}: <i>
#. {ph4}: </i>
#. {ph5}: <i>
#. {ph6}: </i>
#. {ph7}: </span >
#: website/public/get-started/index.html:418
#, python-brace-format
msgctxt "page:get-started/index.html"
msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent"
msgstr "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}あなたのコーディングエージェント"
#: website/public/get-started/index.html:443
msgctxt "page:get-started/index.html"
msgid "Or run setup yourself"
msgstr "または自分でセットアップを実行します"
#: website/public/get-started/index.html:445
msgctxt "page:get-started/index.html"
msgid "How do I open a terminal?"
msgstr "ターミナルを開くにはどうすればよいですか?"
#. {ph0}: <strong>
#. {ph1}: </strong>
#. {ph2}: <em>
#. {ph3}: </em>
#: website/public/get-started/index.html:447
#, python-brace-format
msgctxt "page:get-started/index.html"
msgid ""
"{ph0}Windows:{ph1} open the Start menu, type {ph2}PowerShell{ph3} and press "
"Enter."
msgstr ""
"{ph0} Windows :{ph1} スタートメニューを開き、次のように入力します {ph2}PowerShell{ph3} "
"Enterキーを押します。"
#. {ph0}: <strong>
#. {ph1}: </strong>
#. {ph2}: <kbd>⌘</kbd>
#. {ph3}: <kbd>Space</kbd>
#. {ph4}: <em>
#. {ph5}: </em>
#: website/public/get-started/index.html:451
#, python-brace-format
msgctxt "page:get-started/index.html"
msgid ""
"{ph0}macOS:{ph1} press {ph2} {ph3}, type {ph4}Terminal{ph5} and press Enter."
msgstr "{ph0} macOS :{ph1} プレス {ph2} {ph3}、タイプ {ph4}ターミナル{ph5} Enterキーを押します。"
#. {ph0}: <strong>
#. {ph1}: </strong>
#. {ph2}: <kbd>Ctrl</kbd>
#. {ph3}: <kbd>Alt</kbd>
#. {ph4}: <kbd>T</kbd>
#: website/public/get-started/index.html:455
#, python-brace-format
msgctxt "page:get-started/index.html"
msgid "{ph0}Linux:{ph1} press {ph2} {ph3} {ph4} on most desktops."
msgstr "{ph0} Linux :{ph1} プレス {ph2} {ph3} {ph4} ほとんどのデスクトップで。"
#. {ph0}: <kbd>Ctrl</kbd>
#. {ph1}: <kbd>V</kbd>
#. {ph2}: <kbd>⌘</kbd>
#. {ph3}: <kbd>V</kbd>
#. {ph4}: <kbd>Ctrl</kbd>
#. {ph5}: <kbd>Shift</kbd>
#. {ph6}: <kbd>V</kbd>
#: website/public/get-started/index.html:460
#, python-brace-format
msgctxt "page:get-started/index.html"
msgid ""
"Paste a command with {ph0} {ph1} (macOS: {ph2} {ph3}; Linux terminals: {ph4}"
" {ph5} {ph6}), then press Enter."
msgstr ""
"でコマンドを貼り付ける {ph0} {ph1} (macOS : {ph2} {ph3};Linux端子: {ph4} {ph5} "
"{ph6})を押し、Enterキーを押します。"
#: website/public/get-started/index.html:481
msgctxt "page:get-started/index.html"
msgid ""
"Choose your client and review the setup plan. REA adds its MCP connection "
"and the matching investigation skill, keeping a backup of existing "
"configuration. It asks before applying the changes."
msgstr ""
"クライアントを選択し、セットアッププランを確認します。 REAは、MCP接続とマッチング調査スキルを追加し、既存の構成のバックアップを保持します。 "
"変更を適用する前に尋ねます。"
#: website/public/get-started/index.html:486
msgctxt "page:get-started/index.html"
msgid "Restart your client when setup finishes."
msgstr "セットアップが完了したら、クライアントを再起動します。"
#: website/public/get-started/index.html:488
msgctxt "page:get-started/index.html"
msgid "How do I restart my client?"
msgstr "クライアントを再起動するにはどうすればよいですか?"
#. {ph0}: <strong>
#. {ph1}: </strong>
#. {ph2}: <kbd>⌘</kbd>
#. {ph3}: <kbd>Q</kbd>
#: website/public/get-started/index.html:489
#, python-brace-format
msgctxt "page:get-started/index.html"
msgid ""
"{ph0}Desktop apps{ph1} (Claude Desktop, Cursor, Windsurf, VS Code): quit the"
" app completely, then open it again. Closing the window isn't enough. On "
"macOS press {ph2} {ph3}; on Windows, also quit from the tray icon if there "
"is one."
msgstr ""
"{ph0}デスクトップアプリ{ph1} (Claudeデスクトップ、Cursor、Windsurf、VS "
"Code):アプリを完全に終了してから、もう一度開きます。 ウィンドウを閉じるだけでは十分ではありません。 macOSプレスに {ph2} "
"{ph3};Windowsでは、トレイアイコンがある場合は、トレイアイコンからも終了します。"
#. {ph0}: <strong>
#. {ph1}: </strong>
#: website/public/get-started/index.html:496
#, python-brace-format
msgctxt "page:get-started/index.html"
msgid ""
"{ph0}Terminal agents{ph1} (Claude Code, Codex, Gemini CLI): exit the session"
" and start it again."
msgstr ""
"{ph0}ターミナルエージェント{ph1} (Claude Code,Codex,Gemini CLI):セッションを終了し、再度開始します。"
#: website/public/get-started/index.html:501
msgctxt "page:get-started/index.html"
msgid ""
"Give your agent a target path and a specific question. For a JavaScript or "
"Electron app, you might start with:"
msgstr "エージェントにターゲットパスと特定の質問を与えます。 JavaScriptまたはElectronアプリの場合は、次のように開始できます:"
#. {ph0}: <code>/absolute/path/to/app</code>
#: website/public/get-started/index.html:506
#, python-brace-format
msgctxt "page:get-started/index.html"
msgid ""
"Look at {ph0} and find how it exports data. Show the entry points, calls and"
" dependencies involved, with the source locations for your findings."
msgstr ""
"を見てください {ph0} そして、それはデータをエクスポートする方法を見つけます。 "
"関連するエントリポイント、呼び出し、依存関係、および調査結果のソースの場所を表示します。"
#: website/public/get-started/index.html:512
msgctxt "page:get-started/index.html"
msgid "Replace the path with your local target."
msgstr "パスをローカルターゲットに置き換えます。"
#: website/public/get-started/index.html:514
msgctxt "page:get-started/index.html"
msgid "How do I get a folder's full path?"
msgstr "フォルダのフルパスを取得するにはどうすればよいですか?"
#. {ph0}: <strong>
#. {ph1}: </strong>
#. {ph2}: <em>
#. {ph3}: </em>
#: website/public/get-started/index.html:516
#, python-brace-format
msgctxt "page:get-started/index.html"
msgid ""
"{ph0}Windows:{ph1} in File Explorer, right-click the folder and choose "
"{ph2}Copy as path{ph3}. On Windows 10, hold Shift while right-clicking."
msgstr ""
"{ph0} Windows :{ph1} ファイルエクスプローラーで、フォルダーを右クリックして、次を選択します {ph2}パスとしてコピー{ph3}."
" Windows10で、Shiftキーを押しながら右クリックします。"
#. {ph0}: <strong>
#. {ph1}: </strong>
#. {ph2}: <em>
#. {ph3}: </em>
#: website/public/get-started/index.html:521
#, python-brace-format
msgctxt "page:get-started/index.html"
msgid ""
"{ph0}macOS:{ph1} in Finder, right-click the folder, hold Option and choose "
"{ph2}Copy \"…\" as Pathname{ph3}."
msgstr ""
"{ph0} macOS :{ph1} Finderで、フォルダを右クリックし、オプションを押したまま、を選択します "
"{ph2}パス名として\"...\"をコピーします{ph3}."
#. {ph0}: <strong>
#. {ph1}: </strong>
#: website/public/get-started/index.html:525
#, python-brace-format
msgctxt "page:get-started/index.html"
msgid ""
"{ph0}Any system:{ph1} drag the folder into a terminal window and its path "
"appears."
msgstr "{ph0}任意のシステム:{ph1} フォルダをターミナルウィンドウにドラッグすると、そのパスが表示されます。"
#: website/public/get-started/index.html:530
msgctxt "page:get-started/index.html"
msgid "In a terminal, put quotes around a path that contains spaces."
msgstr "ターミナルでは、スペースを含むパスの周りに引用符を付けます。"
#: website/public/get-started/index.html:537
msgctxt "page:get-started/index.html"
msgid "Use the CLI"
msgstr "CLIを使用する"
#: website/public/get-started/index.html:538
msgctxt "page:get-started/index.html"
msgid ""
"Analyze a JavaScript or Electron application folder or ASAR archive without "
"running the app:"
msgstr "アプリを実行せずに、JavaScriptまたはElectronアプリケーションフォルダーまたはASARアーカイブを分析します:"
#: website/public/get-started/index.html:544
msgctxt "page:get-started/index.html"
msgid "Static application analysis"
msgstr "静的アプリケーション分析"
#. {ph0}: <code>.asar</code>
#. {ph1}: <code>"D:/apps/example"</code>
#: website/public/get-started/index.html:557
#, python-brace-format
msgctxt "page:get-started/index.html"
msgid ""
"Replace the path with your extracted app directory or {ph0} file. On "
"Windows, a path such as {ph1} works here."
msgstr ""
"パスを抽出したアプリディレクトリに置き換えます。 {ph0} ファイル。 Windowsでは、次のようなパス {ph1} ここで働いています。"
#: website/public/get-started/index.html:563
msgctxt "page:get-started/index.html"
msgid "Where do I find an app's .asar file?"
msgstr "どこでアプリを見つけるのですか。asarファイル?"
#. {ph0}: <code>resources</code>
#: website/public/get-started/index.html:564
#, python-brace-format
msgctxt "page:get-started/index.html"
msgid "Electron apps usually keep it in a {ph0} folder:"
msgstr "Electronアプリは、通常、それを維持します {ph0} フォルダ:"
#. {ph0}: <strong>
#. {ph1}: </strong>
#. {ph2}: <code
#. >C:\Users\&lt;you&gt;\AppData\Local\Programs\&lt;App&gt;\resources\app.asar</code
#. >
#: website/public/get-started/index.html:569
#, python-brace-format
msgctxt "page:get-started/index.html"
msgid "{ph0}Windows:{ph1} {ph2}"
msgstr "{ph0} Windows :{ph1} {ph2}"
#. {ph0}: <strong>
#. {ph1}: </strong>
#. {ph2}: <code
#. >/Applications/&lt;App&gt;.app/Contents/Resources/app.asar</code >
#. {ph3}: <em>
#. {ph4}: </em>
#: website/public/get-started/index.html:575
#, python-brace-format
msgctxt "page:get-started/index.html"
msgid ""
"{ph0}macOS:{ph1} {ph2} (right-click the app and choose {ph3}Show Package "
"Contents{ph4})"
msgstr "{ph0} macOS :{ph1} {ph2} (アプリを右クリックして選択します {ph3}パッケージの内容を表示する{ph4})"
#. {ph0}: <strong>
#. {ph1}: </strong>
#. {ph2}: <code>/opt/&lt;App&gt;/resources/app.asar</code>
#: website/public/get-started/index.html:583
#, python-brace-format
msgctxt "page:get-started/index.html"
msgid "{ph0}Linux:{ph1} often {ph2}"
msgstr "{ph0} Linux :{ph1} 多くの場合 {ph2}"
#. {ph0}: <code>app.asar</code>
#: website/public/get-started/index.html:588
#, python-brace-format
msgctxt "page:get-started/index.html"
msgid "Some apps install elsewhere. Search the app's folder for {ph0}."
msgstr "一部のアプリは他の場所にインストールされます。 アプリのフォルダを検索します {ph0}."
#: website/public/get-started/index.html:593
msgctxt "page:get-started/index.html"
msgid ""
"The result identifies the app, shows connections between modules and gives "
"their source locations. Connections REA cannot resolve are marked in the "
"result."
msgstr "結果はアプリを識別し、モジュール間の接続を示し、ソースの場所を示します。 REAが解決できない接続は、結果にマークされています。"
#. {ph0}: <code>rea</code>
#: website/public/get-started/index.html:598
#, python-brace-format
msgctxt "page:get-started/index.html"
msgid "If you'd like a permanent {ph0} command in your shell:"
msgstr "パーマネントをご希望の場合は {ph0} シェル内のコマンド:"
#: website/public/get-started/index.html:603
msgctxt "page:get-started/index.html"
msgid "Install the CLI"
msgstr "CLIをインストールする"
#. {ph0}: <a href="../guides/javascript/" >
#. {ph1}: </a >
#: website/public/get-started/index.html:615
#, python-brace-format
msgctxt "page:get-started/index.html"
msgid "{ph0}Continue with the JavaScript application guide{ph1}"
msgstr "{ph0}JavaScriptアプリケーションガイドの続きを読む{ph1}"
#: website/public/get-started/index.html:623
msgctxt "page:get-started/index.html"
msgid "Set up native analysis"
msgstr "マシンコードプログラムの解析の設定"
#: website/public/get-started/index.html:624
msgctxt "page:get-started/index.html"
msgid ""
"Native binaries need a local analysis tool. Choose and configure one below, "
"then give REA your executable or library."
msgstr ""
"マシンコードプログラムには、ローカル解析ツールが必要です。 以下のいずれかを選択して設定し、REAに実行可能ファイルまたはライブラリを与えます。"
#: website/public/get-started/index.html:629
msgctxt "page:get-started/index.html"
msgid "Choose a tool: Ghidra, Hopper or IDA"
msgstr "ツールを選択します:Ghidra、HopperまたはIDA"
#: website/public/get-started/index.html:634
msgctxt "page:get-started/index.html"
msgid ""
"Use an existing Ghidra 12.1.x installation and a 64-bit JDK 21 or newer on "
"Linux or macOS, on x64 or arm64. Your Ghidra installation needs a native "
"decompiler for your host architecture. Set the paths before running setup:"
msgstr ""
"既存のGhidra12.1を使用します。X64またはarm64上のLinuxまたはmacOS上のXインストールおよび64ビットJDK21以降。 "
"Ghidraインストールには、ホストアーキテクチャ用のネイティブ逆コンパイラが必要です。 セットアップを実行する前にパスを設定します:"
#: website/public/get-started/index.html:641
msgctxt "page:get-started/index.html"
msgid "Connect your Ghidra installation"
msgstr "Ghidraインストールを接続します"
#: website/public/get-started/index.html:644
msgctxt "page:get-started/index.html"
msgid "Ghidra connection · macOS / Linux"
msgstr "Ghidra接続•macOS/Linux"
#: website/public/get-started/index.html:659
msgctxt "page:get-started/index.html"
msgid ""
"Replace both paths with your existing installations. Setup checks them and "
"records valid settings for your selected client. On Linux arm64, you may "
"need to build Ghidra's native decompiler separately."
msgstr ""
"両方のパスを既存のインストールに置き換えます。 セットアップはそれらをチェックし、選択したクライアントの有効な設定を記録します。 Linux "
"arm64では、Ghidraのネイティブ逆コンパイラを個別にビルドする必要がある場合があります。"
#: website/public/get-started/index.html:667
msgctxt "page:get-started/index.html"
msgid "Connect Ghidra on Windows"
msgstr "GhidraをWindowsに接続する"
#: website/public/get-started/index.html:668
msgctxt "page:get-started/index.html"
msgid ""
"Windows x64 has experimental, read-only support for native x86 and x64 PE "
"applications and DLLs on fixed local NTFS drives. Use an existing Ghidra "
"12.1.x installation and a 64-bit JDK 21 or newer:"
msgstr ""
"Windows "
"x64は、固定ローカルNTFSドライブ上のネイティブx86およびx64PEアプリケーションとDllのための実験的な、読み取り専用のサポートを持っています。"
" 既存のGhidra12.1を使用します。Xのインストールおよび64ビットJDK21以降:"
#: website/public/get-started/index.html:676
msgctxt "page:get-started/index.html"
msgid "Ghidra connection · Windows PowerShell"
msgstr "Ghidra接続•Windows PowerShell"
#: website/public/get-started/index.html:691
msgctxt "page:get-started/index.html"
msgid ""
"Replace the two paths with your installations, then review setup's plan."
msgstr "2つのパスをインストールに置き換えてから、セットアップの計画を確認します。"
#: website/public/get-started/index.html:701
msgctxt "page:get-started/index.html"
msgid ""
"Connect Hopper on macOS or Linux. Run the setup command above; it detects an"
" existing installation or offers an installation plan for your approval."
msgstr ""
"HopperをmacOSまたはLinuxに接続します。 "
"上記のsetupコマンドを実行します。既存のインストールを検出するか、承認のためのインストール計画を提供します。"
#: website/public/get-started/index.html:706
msgctxt "page:get-started/index.html"
msgid ""
"On macOS, complete Hopper's first-run choice of demo mode or license "
"activation before an unattended analysis."
msgstr "macOSでは、無人分析の前にデモモードまたはライセンス認証のHopperの最初の実行選択を完了します。"
#: website/public/get-started/index.html:715
msgctxt "page:get-started/index.html"
msgid ""
"The verified IDA setups use Windows, with an existing MCP registration for "
"an attached GUI or a headless database. Linux and macOS headless analysis "
"remains unverified."
msgstr ""
"検証済みのIDAセットアップでは、Windowsを使用し、接続されたGUIまたはヘッドレスデータベース用の既存のMCP登録が使用されます。 "
"LinuxおよびmacOSヘッドレス解析は未検証のままです。"
#: website/public/get-started/index.html:721
msgctxt "page:get-started/index.html"
msgid "Connect an existing IDA MCP registration"
msgstr "既存のIDA MCP登録を接続する"
#. {ph0}: <code>command</code>
#. {ph1}: <code>args</code>
#. {ph2}: <code>env</code>
#. {ph3}: <code>mcpServers</code>
#. {ph4}: <code>ida-pro-mcp</code>
#: website/public/get-started/index.html:724
#, python-brace-format
msgctxt "page:get-started/index.html"
msgid ""
"Keep the upstream server's working {ph0}, {ph1} and optional {ph2} in a JSON"
" file. An existing {ph3} object with an {ph4} entry is also accepted. Point "
"REA at that file before setup:"
msgstr ""
"アップストリームサーバーの動作を維持する {ph0}, {ph1} とオプション {ph2} JSONファイルで。 既存の {ph3} "
"を持つオブジェクト {ph4} エントリーも受け付けています。 セットアップ前にそのファイルにREAをポイントします:"
#: website/public/get-started/index.html:733
msgctxt "page:get-started/index.html"
msgid "IDA connection · Windows PowerShell"
msgstr "IDA接続•Windows PowerShell"
#. {ph0}: <code>"mode": "headless"</code>
#: website/public/get-started/index.html:748
#, python-brace-format
msgctxt "page:get-started/index.html"
msgid ""
"The attached profile uses upstream legacy 1.4.0 tools with the original "
"binary already open in IDA. The headless profile uses the upstream database-"
"supervisor API and a registration with {ph0}; real verification covers an "
"IDA 9.3 Windows x64 supervisor. Doctor checks the registration without "
"starting IDA."
msgstr ""
"添付されたプロファイルは、IDAで既に開いている元のバイナリを持つアップストリームレガシー1.4.0ツールを使用します。 "
"ヘッドレスプロファイルは、上流のdatabase-supervisor APIを使用し、次のような登録を行います "
"{ph0};実際の検証は、IDA9.3Windows x64スーパーバイザをカバーしています。 医師はIDAを起動せずに登録をチェックします。"
#. {ph0}: <code>--provider ida</code>
#. {ph1}: <code>REA_IDA_MCP_CONFIG</code>
#: website/public/get-started/index.html:757
#, python-brace-format
msgctxt "page:get-started/index.html"
msgid ""
"Give REA the original executable path, with {ph0} in a CLI query. For an "
"agent, include {ph1} in the REA registration's environment and select IDA "
"when opening the binary."
msgstr ""
"REAに元の実行可能ファイルパスを与え、次のようにします {ph0} CLIクエリで。 エージェントの場合は、次のものが含まれます。 {ph1} "
"REA登録の環境で、バイナリを開くときにIDAを選択します。"
#: website/public/get-started/index.html:769
msgctxt "page:get-started/index.html"
msgid "For an existing Ghidra setup, inspect a function with:"
msgstr "既存のGhidraセットアップでは、次のような関数を検査します:"
#: website/public/get-started/index.html:774
msgctxt "page:get-started/index.html"
msgid "Function analysis"
msgstr "関数解析"
#. {ph0}: <code>main</code>
#: website/public/get-started/index.html:787
#, python-brace-format
msgctxt "page:get-started/index.html"
msgid "Replace {ph0} with the function name or address you want to inspect."
msgstr "置換 {ph0} 検査する関数名またはアドレスを指定します。"
#: website/public/get-started/index.html:792
msgctxt "page:get-started/index.html"
msgid "How native analysis sessions work"
msgstr "マシンコード-プログラム-セッションの分析の仕組み"
#: website/public/get-started/index.html:793
msgctxt "page:get-started/index.html"
msgid ""
"Each CLI command imports and analyzes the binary, then closes its session. "
"Your agent's MCP queries reuse the imported binary while that session is "
"open."
msgstr ""
"各CLIコマンドはバイナリをインポートして分析し、そのセッションを閉じます。 "
"エージェントのMCPクエリは、セッションが開いている間にインポートされたバイナリを再利用します。"
#. {ph0}: <a href="../guides/native/">
#. {ph1}: </a>
#: website/public/get-started/index.html:799
#, python-brace-format
msgctxt "page:get-started/index.html"
msgid ""
"{ph0}Follow a native analysis example{ph1} to see how the function result "
"leads to a recovered calculation."
msgstr "{ph0}マシンコードプログラムの分析の例に従ってください{ph1} 関数の結果がどのように回復された計算につながるかを確認します。"
#: website/public/get-started/index.html:806
msgctxt "page:get-started/index.html"
msgid "Getting help"
msgstr "助けを得る"
#: website/public/get-started/index.html:807
msgctxt "page:get-started/index.html"
msgid "If your agent doesn't see REA"
msgstr "エージェントにREAが表示されない場合"
#. {ph0}: <code>doctor</code>
#: website/public/get-started/index.html:808
#, python-brace-format
msgctxt "page:get-started/index.html"
msgid ""
"Restart or reconnect the client after setup. Check its REA connection with "
"{ph0}; for Codex:"
msgstr "セットアップ後にクライアントを再起動または再接続します。 とのREA接続を確認してください {ph0};Codexのため :"
#: website/public/get-started/index.html:814
msgctxt "page:get-started/index.html"
msgid "Check one client"
msgstr "一つのクライアントをチェック"
#: website/public/get-started/index.html:826
msgctxt "page:get-started/index.html"
msgid "If a provider needs attention"
msgstr "プロバイダが注意を必要とする場合"
#: website/public/get-started/index.html:827
msgctxt "page:get-started/index.html"
msgid "Check the provider you're using. For Ghidra:"
msgstr "使用しているプロバイダーを確認してください。 Ghidraのため :"
#: website/public/get-started/index.html:830
msgctxt "page:get-started/index.html"
msgid "Check one provider"
msgstr "一つのプロバイダを確認してください"
#: website/public/get-started/index.html:842
msgctxt "page:get-started/index.html"
msgid "The report gives the failed check and a suggested next step."
msgstr "レポートには、失敗したチェックと推奨される次のステップが表示されます。"
#. {ph0}: <a href="../faq/">
#. {ph1}: </a >
#. {ph2}: <span>
#. {ph3}: </span>
#: website/public/get-started/index.html:844
#, python-brace-format
msgctxt "page:get-started/index.html"
msgid ""
"{ph0}REA FAQ{ph1}{ph2}Quick answers on updates, agents and analysis.{ph3}"
msgstr "{ph0} REAよくある質問{ph1}{ph2}更新、エージェント、分析に関する迅速な回答。{ph3}"
#. {ph0}: <a href="../guides/">
#. {ph1}: </a >
#. {ph2}: <span >
#. {ph3}: </span >
#: website/public/get-started/index.html:848
#, python-brace-format
msgctxt "page:get-started/index.html"
msgid ""
"{ph0}Choose an investigation guide{ph1}{ph2}Worked examples for a binary, an"
" Electron app and a browser.{ph3}"
msgstr "{ph0}調査ガイドを選ぶ{ph1}{ph2}バイナリ、Electronアプリ、およびブラウザの例を使用しました。{ph3}"
#. {ph0}: <a href="https://github.com/morluto/rea/issues">
#. {ph1}: </a >
#. {ph2}: <span>
#. {ph3}: </span>
#: website/public/get-started/index.html:855
#, python-brace-format
msgctxt "page:get-started/index.html"
msgid ""
"{ph0}GitHub issues{ph1}{ph2}Report a problem with the command and "
"diagnostics.{ph3}"
msgstr "{ph0} GitHubの問題{ph1}{ph2}コマンドと診断に関する問題を報告します。{ph3}"
#. {ph0}: <a href="https://discord.gg/GkcryMnJDM">
#. {ph1}: </a >
#. {ph2}: <span>
#. {ph3}: </span>
#: website/public/get-started/index.html:859
#, python-brace-format
msgctxt "page:get-started/index.html"
msgid ""
"{ph0}REA community{ph1}{ph2}Questions, investigations and work in "
"progress.{ph3}"
msgstr "{ph0} REAコミュニティ{ph1}{ph2}質問、調査、進行中の作業。{ph3}"
#: website/public/get-started/index.html:6
msgctxt "page:get-started/index.html"
msgid "Install REA and Set Up Your Coding Agent"
msgstr "REAをインストールし、コーディングエージェントを設定します"
#: website/public/get-started/index.html:7
msgctxt "page:get-started/index.html"
msgid ""
"Connect REA to your coding agent or inspect a local JavaScript or Electron "
"app from the terminal. Setup, first questions and native provider guides."
msgstr ""
"REAをコーディングエージェントに接続するか、ターミナルからローカルのJavaScriptまたはElectronアプリを検査します。 "
"セットアップ、最初の質問とネイティブプロバイダガイド。"
#: website/public/get-started/index.html:212
msgctxt "page:get-started/index.html"
msgid "Copy Node.js version check"
msgstr "コピー Node.jsバージョンチェック"
#: website/public/get-started/index.html:233
msgctxt "page:get-started/index.html"
msgid "Copy Node.js installation command for Windows"
msgstr "コピー Node.js のインストールコマンド Windows"
#: website/public/get-started/index.html:256
msgctxt "page:get-started/index.html"
msgid "Copy PowerShell execution policy command"
msgstr "PowerShell実行ポリシーコマンドのコピー"
#: website/public/get-started/index.html:272
msgctxt "page:get-started/index.html"
msgid "Copy Homebrew Node.js installation command"
msgstr "コピー Homebrew Node.jsインストールコマンド"
#: website/public/get-started/index.html:287
msgctxt "page:get-started/index.html"
msgid "Copy fnm installation command for macOS"
msgstr "macOSのfnmインストールコマンドのコピー"
#: website/public/get-started/index.html:302
msgctxt "page:get-started/index.html"
msgid "Copy Node.js 24 commands for macOS"
msgstr "Node.js24コマンドをmacOSにコピーする"
#: website/public/get-started/index.html:318
msgctxt "page:get-started/index.html"
msgid "Copy fnm installation command for Linux"
msgstr "Linuxのfnmインストールコマンドのコピー"
#: website/public/get-started/index.html:337
msgctxt "page:get-started/index.html"
msgid "Copy Node.js 24 commands for Linux"
msgstr "Node.js24コマンドをLinuxにコピーする"
#: website/public/get-started/index.html:360
msgctxt "page:get-started/index.html"
msgid "On this page"
msgstr "このページでは"
#: website/public/get-started/index.html:369
msgctxt "page:get-started/index.html"
msgid "REA getting started guide"
msgstr "REA入門ガイド"
#: website/public/get-started/index.html:423
msgctxt "page:get-started/index.html"
msgid "Copy REA installation prompt"
msgstr "コピー REAインストールプロンプト"
#: website/public/get-started/index.html:469
msgctxt "page:get-started/index.html"
msgid "Copy agent setup command"
msgstr "Copy agent setupコマンド"
#: website/public/get-started/index.html:545
msgctxt "page:get-started/index.html"
msgid "Copy JavaScript analysis command"
msgstr "Copy JavaScript解析コマンド"
#: website/public/get-started/index.html:604
msgctxt "page:get-started/index.html"
msgid "Copy CLI installation command"
msgstr "Copy CLIインストールコマンド"
#: website/public/get-started/index.html:645
msgctxt "page:get-started/index.html"
msgid "Copy Ghidra connection for macOS and Linux"
msgstr "macOS・Linux 用の Ghidra 接続コマンドをコピー"
#: website/public/get-started/index.html:677
msgctxt "page:get-started/index.html"
msgid "Copy Ghidra connection for Windows PowerShell"
msgstr "Windows PowerShell用のGhidra接続のコピー"
#: website/public/get-started/index.html:734
msgctxt "page:get-started/index.html"
msgid "Copy IDA connection for Windows PowerShell"
msgstr "Windows PowerShell用のIDA接続のコピー"
#: website/public/get-started/index.html:775
msgctxt "page:get-started/index.html"
msgid "Copy native function analysis command"
msgstr "ネイティブ関数解析コマンドのコピー"
#: website/public/get-started/index.html:815
msgctxt "page:get-started/index.html"
msgid "Copy client diagnosis command"
msgstr "クライアント診断コマンドのコピー"
#: website/public/get-started/index.html:831
msgctxt "page:get-started/index.html"
msgid "Copy provider diagnosis command"
msgstr "プロバイダ診断コマンドのコピー"
#: website/public/get-started/index.html:882
msgctxt "page:get-started/index.html"
msgid "Back to top"
msgstr "ページ上部へ"
#: website/public/guides/browser/index.html:103
msgctxt "page:guides/browser/index.html"
msgid "Skip to content"
msgstr "コンテンツにスキップ"
#. {ph0}: <a href="../../">
#. {ph1}: </a>
#. {ph2}: <a href="../">
#. {ph3}: </a>
#: website/public/guides/browser/index.html:194
#, python-brace-format
msgctxt "page:guides/browser/index.html"
msgid "{ph0}Home{ph1} / {ph2}Guides{ph3} / Browser observation"
msgstr "{ph0}ホーム{ph1} / {ph2}ガイド{ph3} /ブラウザ観察"
#. {ph0}: <br />
#: website/public/guides/browser/index.html:198
#, python-brace-format
msgctxt "page:guides/browser/index.html"
msgid "See what happens{ph0}when you click."
msgstr "何が起こるか見てください{ph0}あなたがクリックすると。"
#: website/public/guides/browser/index.html:199
msgctxt "page:guides/browser/index.html"
msgid ""
"Use a small browser app to connect an action, its network request and the "
"JavaScript that builds a download."
msgstr "小さなブラウザアプリを使用して、アクション、そのネットワーク要求、およびダウンロードを構築するJavaScriptを接続します。"
#: website/public/guides/browser/index.html:206
msgctxt "page:guides/browser/index.html"
msgid "In this guide"
msgstr "このガイドの内容"
#. {ph0}: <a href="#example">
#. {ph1}: </a>
#: website/public/guides/browser/index.html:208
#, python-brace-format
msgctxt "page:guides/browser/index.html"
msgid "{ph0}The example{ph1}"
msgstr "{ph0}この例は次のとおりです{ph1}"
#. {ph0}: <a href="#prepare">
#. {ph1}: </a>
#: website/public/guides/browser/index.html:209
#, python-brace-format
msgctxt "page:guides/browser/index.html"
msgid "{ph0}Open the browser{ph1}"
msgstr "{ph0}ブラウザを開く{ph1}"
#. {ph0}: <a href="#ask">
#. {ph1}: </a>
#: website/public/guides/browser/index.html:210
#, python-brace-format
msgctxt "page:guides/browser/index.html"
msgid "{ph0}Ask your agent{ph1}"
msgstr "{ph0}あなたの代理店に尋ねる{ph1}"
#. {ph0}: <a href="#capture">
#. {ph1}: </a>
#: website/public/guides/browser/index.html:211
#, python-brace-format
msgctxt "page:guides/browser/index.html"
msgid "{ph0}Capture from CLI{ph1}"
msgstr "{ph0}CLIからのキャプチャ {ph1}"
#. {ph0}: <a href="#result">
#. {ph1}: </a>
#: website/public/guides/browser/index.html:212
#, python-brace-format
msgctxt "page:guides/browser/index.html"
msgid "{ph0}Read the request and script{ph1}"
msgstr "{ph0}リクエストとスクリプトを読む{ph1}"
#: website/public/guides/browser/index.html:217
msgctxt "page:guides/browser/index.html"
msgid "What happens when you click Export?"
msgstr "[エクスポート]をクリックするとどうなりますか?"
#. {ph0}: <a href="../../examples/notes-web/">
#. {ph1}: </a>
#. {ph2}: <strong>
#. {ph3}: </strong>
#. {ph4}: <code>notes.json</code>
#: website/public/guides/browser/index.html:218
#, python-brace-format
msgctxt "page:guides/browser/index.html"
msgid ""
"The {ph0}Notes browser example{ph1} has an {ph2}Export notes{ph3} button. "
"Clicking it loads {ph4}, formats the two notes as CSV, and starts a "
"download."
msgstr ""
"ザ- {ph0}ノートブラウザの例{ph1} を持っている {ph2}ノートのエクスポート{ph3} ボタン。 それをクリックするとロードされます "
"{ph4}、CSVとして二つのノートをフォーマットし、ダウンロードを開始します。"
#: website/public/guides/browser/index.html:226
msgctxt "page:guides/browser/index.html"
msgid "From the click to the CSV download"
msgstr "クリックからCSVダウンロードへ"
#. {ph0}: <span class="flow-label">
#. {ph1}: </span >
#. {ph2}: <span class="flow-node">
#. {ph3}: </span >
#. {ph4}: <span class="flow-note" >
#. {ph5}: </span >
#: website/public/guides/browser/index.html:228
#, python-brace-format
msgctxt "page:guides/browser/index.html"
msgid ""
"{ph0}01 · You{ph1}{ph2}Click Export notes{ph3}{ph4}Perform the action in "
"your browser while the capture is running.{ph5}"
msgstr ""
"{ph0}01*あなた{ph1}{ph2}[メモのエクスポート]をクリックします{ph3}{ph4}キャプチャの実行中にブラウザでアクションを実行します。{ph5}"
#. {ph0}: <span class="flow-label">
#. {ph1}: </span >
#. {ph2}: <span class="flow-node">
#. {ph3}: </span >
#. {ph4}: <span class="flow-note" >
#. {ph5}: </span >
#: website/public/guides/browser/index.html:236
#, python-brace-format
msgctxt "page:guides/browser/index.html"
msgid ""
"{ph0}02 · REA{ph1}{ph2}Record the request{ph3}{ph4}Capture the request URL, "
"response status and JSON structure from the selected page.{ph5}"
msgstr ""
"{ph0}02*REA "
"{ph1}{ph2}要求を記録する{ph3}{ph4}選択したページから要求URL、応答ステータス、JSON構造をキャプチャします。{ph5}"
#. {ph0}: <span class="flow-label">
#. {ph1}: </span >
#. {ph2}: <span class="flow-node">
#. {ph3}: </span >
#. {ph4}: <span class="flow-note" >
#. {ph5}: <code>fetch("./notes.json")</code>
#. {ph6}: <code>export.js</code>
#. {ph7}: </span >
#: website/public/guides/browser/index.html:244
#, python-brace-format
msgctxt "page:guides/browser/index.html"
msgid ""
"{ph0}03 · Your agent{ph1}{ph2}Read the export code{ph3}{ph4}Connect the "
"observed request to {ph5} in {ph6}.{ph7}"
msgstr ""
"{ph0}03*あなたの代理店{ph1}{ph2}エクスポートコードを読む{ph3}{ph4}監視された要求をに接続して下さい {ph5} で "
"{ph6}.{ph7}"
#: website/public/guides/browser/index.html:257
msgctxt "page:guides/browser/index.html"
msgid "Start the capture before clicking Export notes."
msgstr "[ノートのエクスポート]をクリックする前に、キャプチャを開始します。"
#: website/public/guides/browser/index.html:263
msgctxt "page:guides/browser/index.html"
msgid "Open Chrome with remote debugging"
msgstr "リモートデバッグでChromeを開く"
#: website/public/guides/browser/index.html:264
msgctxt "page:guides/browser/index.html"
msgid ""
"Open the hosted Notes example with a separate browser profile and a local "
"debugging port. On Linux:"
msgstr "別のブラウザプロファイルとローカルデバッグポートを使用して、ホストされたNotesの例を開きます。 Linuxについて :"
#: website/public/guides/browser/index.html:270
msgctxt "page:guides/browser/index.html"
msgid "Start the example browser"
msgstr "例のブラウザを起動します"
#: website/public/guides/browser/index.html:271
#: website/public/guides/browser/index.html:303
#: website/public/guides/browser/index.html:337
#: website/public/guides/browser/index.html:356
#: website/public/guides/browser/index.html:421
msgctxt "page:guides/browser/index.html"
msgid "Copy"
msgstr "コピー"
#: website/public/guides/browser/index.html:285
msgctxt "page:guides/browser/index.html"
msgid ""
"Use your installed browser's executable path on macOS or Windows. You can "
"replace the page URL with another page you want to inspect."
msgstr ""
"インストールされているブラウザの実行可能パスをmacOSまたはWindowsに使用します。 "
"ページのURLを検査する別のページに置き換えることができます。"
#: website/public/guides/browser/index.html:290
msgctxt "page:guides/browser/index.html"
msgid ""
"REA connects to this existing browser. You keep control of the page, perform"
" the action, and close the browser when finished."
msgstr "REAは、この既存のブラウザに接続します。 ページの制御を維持し、アクションを実行し、終了したらブラウザを閉じます。"
#: website/public/guides/browser/index.html:296
msgctxt "page:guides/browser/index.html"
msgid "Ask your agent to watch one action"
msgstr "一つのアクションを見るためにあなたのエージェ"
#. {ph0}: <span class="terminal-dots" aria-hidden="true" >
#. {ph1}: <i>
#. {ph2}: </i>
#. {ph3}: <i>
#. {ph4}: </i>
#. {ph5}: <i>
#. {ph6}: </i>
#. {ph7}: </span >
#: website/public/guides/browser/index.html:299
#, python-brace-format
msgctxt "page:guides/browser/index.html"
msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent"
msgstr "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}あなたのコーディングエージェント"
#. {ph0}: <span class="prompt-symbol" aria-hidden="true">
#. {ph1}: </span >
#. {ph2}: <span id="browser-prompt" >
#. {ph3}: </span >
#. {ph4}: <span class="terminal-cursor" aria-hidden="true">
#. {ph5}: </span>
#: website/public/guides/browser/index.html:312
#, python-brace-format
msgctxt "page:guides/browser/index.html"
msgid ""
"{ph0}›{ph1}{ph2}Use REA to inspect this page while I click Export notes. "
"What request does it make, and how is the CSV built?{ph3}{ph4}{ph5}"
msgstr ""
"{ph0}›{ph1}{ph2}REAを使用して、ノートのエクスポートをクリックしながらこのページを検査します。 "
"それはどのような要求を行い、CSVはどのように構築されていますか?{ph3}{ph4}{ph5}"
#. {ph0}: <code>http://127.0.0.1:9222</code>
#: website/public/guides/browser/index.html:320
#, python-brace-format
msgctxt "page:guides/browser/index.html"
msgid ""
"Example prompt. Give your agent the debugging endpoint, {ph0}, and the page "
"URL. Let it start the capture before you click."
msgstr ""
"プロンプトの例。 エージェントにデバッグエンドポイントを与える, {ph0}、およびページのURL。 クリックする前にキャプチャを開始しましょう。"
#: website/public/guides/browser/index.html:325
msgctxt "page:guides/browser/index.html"
msgid ""
"Your agent discovers the page target, starts an observation window, and "
"reads the resulting evidence. It can then inspect the script behind the "
"export."
msgstr ""
"エージェントはページターゲットを検出し、観察ウィンドウを開始し、結果の証拠を読み取ります。 その後、エクスポートの背後にあるスクリプトを検査できます。"
#: website/public/guides/browser/index.html:332
msgctxt "page:guides/browser/index.html"
msgid "Or capture from the terminal"
msgstr "または端末からキャプチャします"
#: website/public/guides/browser/index.html:333
msgctxt "page:guides/browser/index.html"
msgid "Find the page's target ID:"
msgstr "ページのターゲットIDを検索する:"
#: website/public/guides/browser/index.html:336
msgctxt "page:guides/browser/index.html"
msgid "Find the page"
msgstr "ページを探す"
#. {ph0}: <code>TARGET_ID</code>
#: website/public/guides/browser/index.html:349
#, python-brace-format
msgctxt "page:guides/browser/index.html"
msgid ""
"Choose the target with the Notes example URL. Replace {ph0} below with its "
"ID, then run:"
msgstr "Notesの例のURLでターゲットを選択します。 置換 {ph0} そのIDで以下を実行し、次に実行します:"
#: website/public/guides/browser/index.html:355
msgctxt "page:guides/browser/index.html"
msgid "Capture the next ten seconds"
msgstr "次の10秒をキャプチャします"
#. {ph0}: <strong>
#. {ph1}: </strong>
#: website/public/guides/browser/index.html:371
#, python-brace-format
msgctxt "page:guides/browser/index.html"
msgid ""
"Let the command connect for a few seconds, then click {ph0}Export notes{ph1}"
" in that browser. The result arrives after the observation window ends."
msgstr ""
"コマンドを数秒間接続してから、をクリックします {ph0}ノートのエクスポート{ph1} そのブラウザで。 "
"結果は、観測ウィンドウが終了した後に到着します。"
#: website/public/guides/browser/index.html:376
msgctxt "page:guides/browser/index.html"
msgid ""
"The captured result includes the selected page, network activity during that"
" window, and the shape of the JSON response. Earlier requests are outside "
"this capture."
msgstr ""
"キャプチャされた結果には、選択されたページ、そのウィンドウ中のネットワークアクティビティ、およびJSON応答の形状が含まれます。 "
"以前の要求はこのキャプチャの外にあります。"
#: website/public/guides/browser/index.html:383
msgctxt "page:guides/browser/index.html"
msgid "Read the request and export script"
msgstr "リクエストとエクスポートスクリプトを読む"
#: website/public/guides/browser/index.html:386
msgctxt "page:guides/browser/index.html"
msgid "Recorded with REA 4.1.0 on the local Notes example"
msgstr "ローカルノートの例でREA4.1.0で記録されました"
#: website/public/guides/browser/index.html:391
msgctxt "page:guides/browser/index.html"
msgid "Captured fact"
msgstr "捕獲された事実"
#: website/public/guides/browser/index.html:392
msgctxt "page:guides/browser/index.html"
msgid "Value"
msgstr "値"
#: website/public/guides/browser/index.html:397
msgctxt "page:guides/browser/index.html"
msgid "Request"
msgstr "リクエスト"
#: website/public/guides/browser/index.html:401
msgctxt "page:guides/browser/index.html"
msgid "Response"
msgstr "応答"
#: website/public/guides/browser/index.html:405
msgctxt "page:guides/browser/index.html"
msgid "Request initiator"
msgstr "リクエストイニシエータ"
#. {ph0}: <code>export.js</code>
#: website/public/guides/browser/index.html:406
#, python-brace-format
msgctxt "page:guides/browser/index.html"
msgid "{ph0} · script"
msgstr "{ph0} •スクリプト"
#: website/public/guides/browser/index.html:409
msgctxt "page:guides/browser/index.html"
msgid "Response structure"
msgstr "応答構造"
#. {ph0}: <code>notes[]</code>
#. {ph1}: <code>id</code>
#. {ph2}: <code>title</code>
#: website/public/guides/browser/index.html:410
#, python-brace-format
msgctxt "page:guides/browser/index.html"
msgid "{ph0} with {ph1} and {ph2} fields"
msgstr "{ph0} と {ph1} と {ph2} フィールド"
#: website/public/guides/browser/index.html:420
msgctxt "page:guides/browser/index.html"
msgid "Read the loaded scripts"
msgstr "ロードされたスクリプトを読む"
#. {ph0}: <code>export.js</code>
#: website/public/guides/browser/index.html:434
#, python-brace-format
msgctxt "page:guides/browser/index.html"
msgid ""
"The request identifies the data source, and REA records {ph0} as its "
"initiator. Read the captured script source to see how the data is used:"
msgstr ""
"要求はデータソースを識別し、REAレコードを識別します {ph0} その創始者として。 "
"キャプチャされたスクリプトソースを読んで、データの使用方法を確認します:"
#. {ph0}: <code>notes.json</code>
#: website/public/guides/browser/index.html:454
#, python-brace-format
msgctxt "page:guides/browser/index.html"
msgid ""
"The download is constructed in the page using the JSON response. The CSV "
"formatting step comes from the script; the network capture establishes that "
"this click requested {ph0}."
msgstr "ダウンロードは、JSON応答を使用してページで構築されます。 CSV書式設定ステップはスクリプトから取得されます。 {ph0}."
#. {ph0}: <code>notes.json</code>
#: website/public/guides/browser/index.html:470
#, python-brace-format
msgctxt "page:guides/browser/index.html"
msgid ""
"Find the script that requests {ph0}. How does it escape titles containing "
"commas or quotation marks?"
msgstr "要求するスクリプトを見つけます {ph0}. カンマや引用符を含むタイトルはどのようにエスケープされますか?"
#. {ph0}: <a href="../javascript/">
#. {ph1}: </a>
#: website/public/guides/browser/index.html:475
#, python-brace-format
msgctxt "page:guides/browser/index.html"
msgid ""
"For an installed JavaScript or Electron app, continue with the "
"{ph0}application workflow{ph1} to follow files and process boundaries."
msgstr ""
"インストールされているJavaScriptまたはElectronアプリの場合は、次の手順を続行します。 {ph0}アプリケーションワークフロー{ph1}"
" ファイルとプロセスの境界に従う。"
#: website/public/guides/browser/index.html:6
msgctxt "page:guides/browser/index.html"
msgid "Browser and Network Analysis — REA"
msgstr "ブラウザとネットワーク分析-REA"
#: website/public/guides/browser/index.html:7
msgctxt "page:guides/browser/index.html"
msgid ""
"Observe a Notes export with REA: select a browser page, capture a click, "
"inspect the request and follow the export script."
msgstr ""
"REAを使用してノートのエクスポートを観察する:ブラウザページを選択し、クリックをキャプチャし、要求を検査し、エクスポートスクリプトに従います。"
#: website/public/guides/browser/index.html:205
msgctxt "page:guides/browser/index.html"
msgid "On this page"
msgstr "このページでは"
#: website/public/guides/browser/index.html:215
msgctxt "page:guides/browser/index.html"
msgid "Browser observation"
msgstr "ブラウザ観察"
#: website/public/guides/browser/index.html:271
msgctxt "page:guides/browser/index.html"
msgid "Copy start the example browser"
msgstr "例のブラウザをコピーして起動します"
#: website/public/guides/browser/index.html:303
msgctxt "page:guides/browser/index.html"
msgid "Copy example prompt"
msgstr "プロンプトの例をコピーする"
#: website/public/guides/browser/index.html:337
msgctxt "page:guides/browser/index.html"
msgid "Copy find the page"
msgstr "コピーページを探す"
#: website/public/guides/browser/index.html:356
msgctxt "page:guides/browser/index.html"
msgid "Copy capture the next ten seconds"
msgstr "次の10秒をキャプチャしてコピーします"
#: website/public/guides/browser/index.html:421
msgctxt "page:guides/browser/index.html"
msgid "Copy read the loaded scripts"
msgstr "ロードされたスクリプトをコピーして読みます"
#: website/public/guides/browser/index.html:507
msgctxt "page:guides/browser/index.html"
msgid "Back to top"
msgstr "ページ上部へ"
#: website/public/guides/index.html:103
msgctxt "page:guides/index.html"
msgid "Skip to content"
msgstr "コンテンツにスキップ"
#. {ph0}: <a href="../">
#. {ph1}: </a>
#: website/public/guides/index.html:194
#, python-brace-format
msgctxt "page:guides/index.html"
msgid "{ph0}Home{ph1} / Guides"
msgstr "{ph0}ホーム{ph1} /ガイド"
#: website/public/guides/index.html:195
msgctxt "page:guides/index.html"
msgid "REA guides."
msgstr "REAガイド."
#: website/public/guides/index.html:196
msgctxt "page:guides/index.html"
msgid ""
"Analyze a native function, an Electron export or a browser request. Each "
"guide includes a prompt, code and results."
msgstr ""
"ネイティブ関数、Electronエクスポート、またはブラウザ要求を分析します。 各ガイドには、プロンプト、コード、および結果が含まれています。"
#: website/public/guides/index.html:203
msgctxt "page:guides/index.html"
msgid "First investigation"
msgstr "最初の調査"
#: website/public/guides/index.html:205
msgctxt "page:guides/index.html"
msgid "Set up REA"
msgstr "REAのセットアップ"
#: website/public/guides/index.html:206
msgctxt "page:guides/index.html"
msgid "Connect your coding agent or use REA from the terminal."
msgstr "コーディングエージェントを接続するか、端末からREAを使用します。"
#: website/public/guides/index.html:207
msgctxt "page:guides/index.html"
msgid "Get started with REA"
msgstr "REAを始める"
#: website/public/guides/index.html:211
msgctxt "page:guides/index.html"
msgid "Native binaries"
msgstr "マシンコードプログラム"
#: website/public/guides/index.html:213
msgctxt "page:guides/index.html"
msgid "Recover a sound-pan calculation"
msgstr "左/右の音の位置の計算を回復します"
#: website/public/guides/index.html:214
msgctxt "page:guides/index.html"
msgid ""
"Start with a Windows game executable. Inspect instructions, follow a caller,"
" read numeric constants and check the recovered C."
msgstr "Windowsゲーム実行可能ファイルから始めます。 命令を検査し、呼び出し元に従って、数値定数を読み取り、回復されたCを確認します。"
#: website/public/guides/index.html:224
msgctxt "page:guides/index.html"
msgid "Native analysis guide"
msgstr "機械コードの解析プログラムガイド"
#: website/public/guides/index.html:228
msgctxt "page:guides/index.html"
msgid "JavaScript & Electron"
msgstr "JavaScript&Electron"
#: website/public/guides/index.html:230
msgctxt "page:guides/index.html"
msgid "Follow a CSV export"
msgstr "CSVエクスポートに従ってください"
#: website/public/guides/index.html:231
msgctxt "page:guides/index.html"
msgid ""
"A small Notes app spreads one feature across the renderer, preload and main "
"process. Use REA to connect the API, IPC channel and file writer."
msgstr ""
"小さなNotesアプリは、レンダラー、プリロード、メインプロセス全体に一つの機能を広げます。 "
"REAを使用して、API、IPCチャネル、およびファイルライターを接続します。"
#: website/public/guides/index.html:241
msgctxt "page:guides/index.html"
msgid "JavaScript & Electron guide"
msgstr "JavaScript&Electronガイド"
#. {ph0}: <a href="../showcase/notion/">
#. {ph1}: </a>
#: website/public/guides/index.html:244
#, python-brace-format
msgctxt "page:guides/index.html"
msgid "For a larger packaged app, follow {ph0}Notion's clipboard bridge{ph1}."
msgstr "大規模なパッケージ化されたアプリの場合は、次の {ph0} Notionのクリップボードブリッジ{ph1}."
#: website/public/guides/index.html:251
msgctxt "page:guides/index.html"
msgid "Browser behavior"
msgstr "ブラウザの動作"
#: website/public/guides/index.html:253
msgctxt "page:guides/index.html"
msgid "Observe a click"
msgstr "クリックを観察する"
#: website/public/guides/index.html:254
msgctxt "page:guides/index.html"
msgid ""
"Open a working Notes example, capture an export request and find the code "
"that turns its response into a download."
msgstr "作業ノートの例を開き、エクスポート要求をキャプチャして、その応答をダウンロードに変換するコードを見つけます。"
#: website/public/guides/index.html:263
msgctxt "page:guides/index.html"
msgid "Browser observation guide"
msgstr "ブラウザ観察ガイド"
#: website/public/guides/index.html:6
msgctxt "page:guides/index.html"
msgid "Reverse Engineering Guides — REA"
msgstr "リバースエンジニアリングガイド-REA"
#: website/public/guides/index.html:7
msgctxt "page:guides/index.html"
msgid ""
"Learn REA through short worked examples: a native calculation, an Electron "
"CSV export and a browser request."
msgstr "ネイティブ計算、Electron CSVエクスポートとブラウザ要求:短い働いた例を通してREAを学びます。"
#: website/public/guides/index.html:282
msgctxt "page:guides/index.html"
msgid "Back to top"
msgstr "ページ上部へ"
#: website/public/guides/javascript/index.html:103
msgctxt "page:guides/javascript/index.html"
msgid "Skip to content"
msgstr "コンテンツにスキップ"
#. {ph0}: <a href="../../">
#. {ph1}: </a>
#. {ph2}: <a href="../">
#. {ph3}: </a>
#: website/public/guides/javascript/index.html:194
#, python-brace-format
msgctxt "page:guides/javascript/index.html"
msgid "{ph0}Home{ph1} / {ph2}Guides{ph3} / JavaScript & Electron"
msgstr "{ph0}ホーム{ph1} / {ph2}ガイド{ph3} /JavaScript&Electron"
#. {ph0}: <br />
#: website/public/guides/javascript/index.html:198
#, python-brace-format
msgctxt "page:guides/javascript/index.html"
msgid "Trace an Electron{ph0}CSV export."
msgstr "Electronをトレースする {ph0} CSV輸出。"
#: website/public/guides/javascript/index.html:199
msgctxt "page:guides/javascript/index.html"
msgid ""
"Follow a button click from the page API, through Electron IPC, to the CSV "
"file writer."
msgstr "ページAPIからElectron IPCを介して、CSVファイルライターにボタンをクリックします。"
#: website/public/guides/javascript/index.html:206
msgctxt "page:guides/javascript/index.html"
msgid "In this guide"
msgstr "このガイドの内容"
#. {ph0}: <a href="#example">
#. {ph1}: </a>
#: website/public/guides/javascript/index.html:208
#, python-brace-format
msgctxt "page:guides/javascript/index.html"
msgid "{ph0}The example{ph1}"
msgstr "{ph0}この例は次のとおりです{ph1}"
#. {ph0}: <a href="#ask">
#. {ph1}: </a>
#: website/public/guides/javascript/index.html:209
#, python-brace-format
msgctxt "page:guides/javascript/index.html"
msgid "{ph0}Ask your agent{ph1}"
msgstr "{ph0}あなたの代理店に尋ねる{ph1}"
#. {ph0}: <a href="#follow">
#. {ph1}: </a>
#: website/public/guides/javascript/index.html:210
#, python-brace-format
msgctxt "page:guides/javascript/index.html"
msgid "{ph0}Trace the export code{ph1}"
msgstr "{ph0}エクスポートコードのトレース{ph1}"
#. {ph0}: <a href="#try">
#. {ph1}: </a>
#: website/public/guides/javascript/index.html:211
#, python-brace-format
msgctxt "page:guides/javascript/index.html"
msgid "{ph0}Try the example{ph1}"
msgstr "{ph0}例を試してみてください{ph1}"
#. {ph0}: <a href="#next">
#. {ph1}: </a>
#: website/public/guides/javascript/index.html:212
#, python-brace-format
msgctxt "page:guides/javascript/index.html"
msgid "{ph0}Inspect the CSV writer{ph1}"
msgstr "{ph0}CSVライターを検査する{ph1}"
#: website/public/guides/javascript/index.html:217
msgctxt "page:guides/javascript/index.html"
msgid "Where does “Export notes” go?"
msgstr "\"エクスポートノート\"はどこに行くのですか?"
#. {ph0}: <strong>
#. {ph1}: </strong>
#: website/public/guides/javascript/index.html:218
#, python-brace-format
msgctxt "page:guides/javascript/index.html"
msgid ""
"This guide uses a small Electron app. Clicking {ph0}Export notes{ph1} calls "
"an API in the page, crosses into the main process, and writes a CSV. The "
"behavior is spread across several files."
msgstr ""
"このガイドでは、小さなElectronアプリを使用しています。 クリック {ph0}ノートのエクスポート{ph1} "
"ページ内のAPIを呼び出し、メインプロセスに交差し、CSVを書き込みます。 動作は複数のファイルに分散されます。"
#: website/public/guides/javascript/index.html:225
msgctxt "page:guides/javascript/index.html"
msgid "The CSV export across Electron processes"
msgstr "CSVは、Electronプロセス間でエクスポートします"
#. {ph0}: <span class="flow-label">
#. {ph1}: </span >
#. {ph2}: <span class="flow-node">
#. {ph3}: <code>notes.exportCsv()</code>
#. {ph4}: </span >
#. {ph5}: <span class="flow-note" >
#. {ph6}: <code>renderer.js</code>
#. {ph7}: <code>preload.js</code>
#. {ph8}: </span >
#: website/public/guides/javascript/index.html:229
#, python-brace-format
msgctxt "page:guides/javascript/index.html"
msgid ""
"{ph0}Renderer → preload{ph1}{ph2}{ph3}{ph4}{ph5}{ph6} calls the API exposed "
"by {ph7}.{ph8}"
msgstr ""
"{ph0}レンダラー→プリロード{ph1}{ph2}{ph3}{ph4}{ph5}{ph6} によって公開されるAPIを呼び出します "
"{ph7}.{ph8}"
#. {ph0}: <span class="flow-label">
#. {ph1}: </span >
#. {ph2}: <span class="flow-node">
#. {ph3}: <code>notes:export</code>
#. {ph4}: </span >
#. {ph5}: <span class="flow-note" >
#. {ph6}: </span >
#: website/public/guides/javascript/index.html:237
#, python-brace-format
msgctxt "page:guides/javascript/index.html"
msgid ""
"{ph0}Between processes{ph1}{ph2}{ph3}{ph4}{ph5}The preload invokes an IPC "
"channel: a named message to the main process.{ph6}"
msgstr ""
"{ph0}プロセス間{ph1}{ph2}{ph3}{ph4}{ph5}プリロードはIPCチャネルを起動します。これは、メインプロセスへの名前付きメッセージです。{ph6}"
#. {ph0}: <span class="flow-label">
#. {ph1}: </span >
#. {ph2}: <span class="flow-node">
#. {ph3}: </span >
#. {ph4}: <span class="flow-note" >
#. {ph5}: <code>main.js</code>
#. {ph6}: </span >
#: website/public/guides/javascript/index.html:245
#, python-brace-format
msgctxt "page:guides/javascript/index.html"
msgid ""
"{ph0}Main process{ph1}{ph2}An export handler{ph3}{ph4}{ph5} handles that "
"channel and calls the CSV writer.{ph6}"
msgstr ""
"{ph0}主なプロセス{ph1}{ph2}エクスポートハンドラー{ph3}{ph4}{ph5} "
"そのチャネルを処理し、CSVライタを呼び出します。{ph6}"
#. {ph0}: <code>csv.js</code>
#. {ph1}: <code>main.js</code>
#. {ph2}: <code>downloads/notes.csv</code>
#: website/public/guides/javascript/index.html:254
#, python-brace-format
msgctxt "page:guides/javascript/index.html"
msgid "{ph0} formats the notes → {ph1} writes {ph2}."
msgstr "{ph0} メモの書式設定→ {ph1} 書き込み {ph2}."
#: website/public/guides/javascript/index.html:258
msgctxt "page:guides/javascript/index.html"
msgid ""
"REA matches the literal IPC call to its handler and identifies the exposed "
"API. The path is inferred from code; a runtime capture can check what "
"executes."
msgstr ""
"REAは、そのハンドラーへのリテラルIPC呼び出しと一致し、公開されたAPIを識別します。 "
"パスはコードから推測され、ランタイムキャプチャは何が実行されるかを確認できます。"
#: website/public/guides/javascript/index.html:266
msgctxt "page:guides/javascript/index.html"
msgid "Ask about the CSV export"
msgstr "CSV輸出について尋ねる"
#. {ph0}: <a href="../../get-started/#agent">
#. {ph1}: </a>
#: website/public/guides/javascript/index.html:267
#, python-brace-format
msgctxt "page:guides/javascript/index.html"
msgid ""
"{ph0}Connect your agent to REA{ph1} and give it the app directory or ASAR "
"file:"
msgstr "{ph0}エージェントをREAに接続します {ph1} そして、それにappディレクトリまたはASARファイルを与えます:"
#. {ph0}: <span class="terminal-dots" aria-hidden="true" >
#. {ph1}: <i>
#. {ph2}: </i>
#. {ph3}: <i>
#. {ph4}: </i>
#. {ph5}: <i>
#. {ph6}: </i>
#. {ph7}: </span >
#: website/public/guides/javascript/index.html:273
#, python-brace-format
msgctxt "page:guides/javascript/index.html"
msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent"
msgstr "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}あなたのコーディングエージェント"
#: website/public/guides/javascript/index.html:277
#: website/public/guides/javascript/index.html:426
msgctxt "page:guides/javascript/index.html"
msgid "Copy"
msgstr "コピー"
#. {ph0}: <span class="prompt-symbol" aria-hidden="true">
#. {ph1}: </span >
#. {ph2}: <span id="javascript-prompt" >
#. {ph3}: </span >
#. {ph4}: <span class="terminal-cursor" aria-hidden="true">
#. {ph5}: </span>
#: website/public/guides/javascript/index.html:286
#, python-brace-format
msgctxt "page:guides/javascript/index.html"
msgid ""
"{ph0}›{ph1}{ph2}Use REA to find what happens when I export notes in this "
"app. Where is the CSV created?{ph3}{ph4}{ph5}"
msgstr ""
"{ph0}›{ph1}{ph2}私はこのアプリでノートをエクスポートするときに何が起こるかを見つけるためにREAを使用し "
"CSVはどこで作成されますか?{ph3}{ph4}{ph5}"
#. {ph0}: <code>app.asar</code>
#: website/public/guides/javascript/index.html:294
#, python-brace-format
msgctxt "page:guides/javascript/index.html"
msgid ""
"Example prompt. Include the absolute path to the application folder or "
"{ph0}."
msgstr "プロンプトの例。 アプリケーションフォルダへの絶対パスを含めるか、 {ph0}."
#: website/public/guides/javascript/index.html:298
msgctxt "page:guides/javascript/index.html"
msgid ""
"REA reads the application files and builds a map of entrypoints, modules and"
" process boundaries. Your agent uses that map to narrow the investigation to"
" the export feature."
msgstr ""
"REAはアプリケーションファイルを読み取り、エントリポイント、モジュール、およびプロセス境界のマップを構築します。 "
"エージェントはそのマップを使用して、調査をエクスポート機能に絞り込みます。"
#: website/public/guides/javascript/index.html:305
msgctxt "page:guides/javascript/index.html"
msgid "Trace the export code"
msgstr "エクスポートコードのトレース"
#: website/public/guides/javascript/index.html:306
msgctxt "page:guides/javascript/index.html"
msgid "The page calls a small API"
msgstr "ページは小さなAPIを呼び出します"
#: website/public/guides/javascript/index.html:319
msgctxt "page:guides/javascript/index.html"
msgid ""
"The page knows the method name. The implementation lives in the preload, "
"which exposes it to the renderer."
msgstr "ページはメソッド名を知っています。 実装はプリロード内に存在し、レンダラーに公開されます。"
#. {ph0}: <code>notes.exportCsv</code>
#. {ph1}: <code>notes:export</code>
#: website/public/guides/javascript/index.html:333
#, python-brace-format
msgctxt "page:guides/javascript/index.html"
msgid ""
"REA records {ph0} and the literal channel {ph1}. It pairs that invocation "
"with the single matching handler in the main process."
msgstr "REAレコード {ph0} とリテラルチャンネル {ph1}. その呼び出しをメインプロセスの単一の一致ハンドラーとペアにします。"
#. {ph0}: <code>csv.js</code>
#. {ph1}: <code>notes.csv</code>
#: website/public/guides/javascript/index.html:350
#, python-brace-format
msgctxt "page:guides/javascript/index.html"
msgid ""
"Reading the handler answers the original question: {ph0} formats the notes, "
"and the main process writes {ph1} into the user's Downloads folder."
msgstr ""
"ハンドラーを読むことは元の質問に答えます: {ph0} メモをフォーマットし、メインプロセスは書き込みます {ph1} "
"ユーザーのダウンロードフォルダに移動します。"
#: website/public/guides/javascript/index.html:367
msgctxt "page:guides/javascript/index.html"
msgid ""
"Recorded by REA 4.1.0 on the downloadable example below. Source locations "
"accompany the API, channel and handler findings."
msgstr ""
"以下のダウンロード可能な例でREA4.1.0によって記録されました。 ソースの場所は、API、チャネル、およびハンドラーの調査結果に伴います。"
#: website/public/guides/javascript/index.html:373
msgctxt "page:guides/javascript/index.html"
msgid "Analyze the example yourself"
msgstr "自分で例を分析してください"
#. {ph0}: <a class="button" href="../../examples/notes-example.zip"
#. download="notes-example.zip" >
#. {ph1}: </a >
#: website/public/guides/javascript/index.html:380
#, python-brace-format
msgctxt "page:guides/javascript/index.html"
msgid "{ph0}Download example ZIP{ph1}"
msgstr "{ph0}ダウンロード例ZIP{ph1}"
#: website/public/guides/javascript/index.html:389
msgctxt "page:guides/javascript/index.html"
msgid "Browse the six source files"
msgstr "6つのソースファイルを参照します。"
#: website/public/guides/javascript/index.html:425
msgctxt "page:guides/javascript/index.html"
msgid "Static application analysis"
msgstr "静的アプリケーション分析"
#. {ph0}: <code>normalized_result.summary.ipc</code>
#. {ph1}: <code>normalized_result.graph</code>
#: website/public/guides/javascript/index.html:438
#, python-brace-format
msgctxt "page:guides/javascript/index.html"
msgid ""
"Replace the path with the folder you unzipped. You should find one IPC "
"channel and one matching handler in {ph0}. Source locations are in {ph1}."
msgstr ""
"パスを解凍したフォルダに置き換えます。 あなたは1つのIPCチャネルと1つの一致するハンドラを見つける必要があります {ph0}. "
"ソースの場所は次のとおりです {ph1}."
#: website/public/guides/javascript/index.html:444
msgctxt "page:guides/javascript/index.html"
msgid ""
"For your own app, use the same command with its directory or ASAR path. An "
"agent can follow a literal string, API name or IPC channel with REA's "
"feature tracing tools."
msgstr ""
"独自のアプリの場合は、そのディレクトリまたはASARパスで同じコマンドを使用します。 "
"エージェントは、REAの機能トレースツールを使用して、リテラル文字列、API名、またはIPCチャネルを追跡できます。"
#: website/public/guides/javascript/index.html:451
msgctxt "page:guides/javascript/index.html"
msgid "Inspect the CSV writer"
msgstr "CSVライターを検査する"
#. {ph0}: <code>notes:export</code>
#: website/public/guides/javascript/index.html:453
#, python-brace-format
msgctxt "page:guides/javascript/index.html"
msgid ""
"Follow {ph0} to its handler. Which inputs reach the CSV writer, and what "
"happens if writing the file fails?"
msgstr "フォロー {ph0} そのハンドラに。 どの入力がCSVライターに到達し、ファイルの書き込みに失敗した場合はどうなりますか?"
#: website/public/guides/javascript/index.html:459
msgctxt "page:guides/javascript/index.html"
msgid ""
"Use the source locations to inspect those details. Computed channel names "
"and ambiguous handlers can remain unresolved; runtime observations give you "
"another way to investigate them."
msgstr "これらの詳細を検査するには、ソースの場所を使用します。 計算されたチャネル名とあいまいなハンドラーは未解決のままである可能性があります。"
#. {ph0}: <a href="../../showcase/notion/" >
#. {ph1}: </a >
#. {ph2}: <span>
#. {ph3}: </span>
#: website/public/guides/javascript/index.html:465
#, python-brace-format
msgctxt "page:guides/javascript/index.html"
msgid ""
"{ph0}Follow Notion's clipboard bridge{ph1} {ph2}Apply the same approach to a"
" packaged Electron app.{ph3}"
msgstr ""
"{ph0}Notionのクリップボードブリッジに従ってください{ph1} "
"{ph2}パッケージ化されたElectronアプリにも同じアプローチを適用します。{ph3}"
#. {ph0}: <a href="../browser/">
#. {ph1}: </a >
#. {ph2}: <span >
#. {ph3}: </span >
#: website/public/guides/javascript/index.html:471
#, python-brace-format
msgctxt "page:guides/javascript/index.html"
msgid ""
"{ph0}Observe a browser export{ph1}{ph2}Capture a real click and see which "
"request it makes.{ph3}"
msgstr "{ph0}ブラウザのエクスポートを観察する{ph1}{ph2}実際のクリックをキャプチャし、それが作る要求を参照してください。{ph3}"
#. {ph0}: <a href="../native/">
#. {ph1}: </a >
#. {ph2}: <span >
#. {ph3}: </span >
#: website/public/guides/javascript/index.html:477
#, python-brace-format
msgctxt "page:guides/javascript/index.html"
msgid ""
"{ph0}Follow a native function{ph1}{ph2}Continue into a binary when a feature"
" depends on native code.{ph3}"
msgstr "{ph0}ネイティブ関数に従う{ph1}{ph2}機能がネイティブコードに依存している場合は、バイナリに進みます。{ph3}"
#: website/public/guides/javascript/index.html:6
msgctxt "page:guides/javascript/index.html"
msgid "JavaScript and Electron Analysis — REA"
msgstr "JavaScriptおよびElectron分析-REA"
#: website/public/guides/javascript/index.html:7
msgctxt "page:guides/javascript/index.html"
msgid ""
"Trace a Notes CSV export through a renderer API, preload and IPC handler "
"with REA. Includes downloadable example files and a verified analysis "
"result."
msgstr ""
"トレースAノートCSVレンダラー API、プリロード、およびREAを使用したIPCハンドラーを介してエクスポートします。 "
"ダウンロード可能なサンプルファイルと検証済みの分析結果が含まれています。"
#: website/public/guides/javascript/index.html:205
msgctxt "page:guides/javascript/index.html"
msgid "On this page"
msgstr "このページでは"
#: website/public/guides/javascript/index.html:215
msgctxt "page:guides/javascript/index.html"
msgid "JavaScript & Electron"
msgstr "JavaScript&Electron"
#: website/public/guides/javascript/index.html:277
msgctxt "page:guides/javascript/index.html"
msgid "Copy example prompt"
msgstr "プロンプトの例をコピーする"
#: website/public/guides/javascript/index.html:426
msgctxt "page:guides/javascript/index.html"
msgid "Copy static application analysis"
msgstr "静的アプリケーション分析のコピー"
#: website/public/guides/javascript/index.html:503
msgctxt "page:guides/javascript/index.html"
msgid "Back to top"
msgstr "ページ上部へ"
#: website/public/guides/native/index.html:103
msgctxt "page:guides/native/index.html"
msgid "Skip to content"
msgstr "コンテンツにスキップ"
#. {ph0}: <a href="../../">
#. {ph1}: </a>
#. {ph2}: <a href="../">
#. {ph3}: </a>
#: website/public/guides/native/index.html:194
#, python-brace-format
msgctxt "page:guides/native/index.html"
msgid "{ph0}Home{ph1} / {ph2}Guides{ph3} / Native analysis"
msgstr "{ph0}ホーム{ph1} / {ph2}ガイド{ph3} /機械コードプログラムの解析"
#. {ph0}: <br />
#: website/public/guides/native/index.html:197
#, python-brace-format
msgctxt "page:guides/native/index.html"
msgid "Recover DX-Ball's{ph0}sound-pan calculation."
msgstr "回復DX-Ballの{ph0}左/右の音の位置の計算。"
#: website/public/guides/native/index.html:198
msgctxt "page:guides/native/index.html"
msgid ""
"Inspect the original instructions, identify the input and constants, then "
"check the recovered C."
msgstr "元の命令を調べ、入力と定数を特定してから、復元されたCを確認します。"
#: website/public/guides/native/index.html:205
msgctxt "page:guides/native/index.html"
msgid "In this guide"
msgstr "このガイドの内容"
#. {ph0}: <a href="#example">
#. {ph1}: </a>
#: website/public/guides/native/index.html:207
#, python-brace-format
msgctxt "page:guides/native/index.html"
msgid "{ph0}The example{ph1}"
msgstr "{ph0}この例は次のとおりです{ph1}"
#. {ph0}: <a href="#ask">
#. {ph1}: </a>
#: website/public/guides/native/index.html:208
#, python-brace-format
msgctxt "page:guides/native/index.html"
msgid "{ph0}Ask your agent{ph1}"
msgstr "{ph0}あなたの代理店に尋ねる{ph1}"
#. {ph0}: <a href="#follow">
#. {ph1}: </a>
#: website/public/guides/native/index.html:209
#, python-brace-format
msgctxt "page:guides/native/index.html"
msgid "{ph0}Read the REA results{ph1}"
msgstr "{ph0}REAの結果を読む{ph1}"
#. {ph0}: <a href="#result">
#. {ph1}: </a>
#: website/public/guides/native/index.html:210
#, python-brace-format
msgctxt "page:guides/native/index.html"
msgid "{ph0}Recover and check{ph1}"
msgstr "{ph0}回復とチェック{ph1}"
#. {ph0}: <a href="#try">
#. {ph1}: </a>
#: website/public/guides/native/index.html:211
#, python-brace-format
msgctxt "page:guides/native/index.html"
msgid "{ph0}Use your own binary{ph1}"
msgstr "{ph0}独自のバイナリを使用する{ph1}"
#: website/public/guides/native/index.html:216
msgctxt "page:guides/native/index.html"
msgid "Calculate left/right sound panning"
msgstr "左/右のステレオサウンドの位置を計算する"
#: website/public/guides/native/index.html:217
msgctxt "page:guides/native/index.html"
msgid ""
"In DX-Ball, a brick hit supplies a horizontal screen position. The sound "
"code turns it into a left/right panning value."
msgstr "DX-Ballでは、レンガのヒットが水平画面の位置を供給します。 サウンドコードは、それを左/右パン値に変換します。"
#. {ph0}: <code>0x00406400</code>
#. {ph1}: <code>__ftol()</code>
#: website/public/guides/native/index.html:221
#, python-brace-format
msgctxt "page:guides/native/index.html"
msgid ""
"The starting function, {ph0}, has a short decompiler result: a call to "
"{ph1}. REA also returns its instructions and callers, which give the agent a"
" way to investigate the missing arithmetic."
msgstr ""
"開始機能, {ph0}、短い逆コンパイラの結果を持っています:への呼び出し {ph1}. "
"REAはまた、エージェントに不足している算術を調査する方法を与えるその命令と呼び出し元を返します。"
#: website/public/guides/native/index.html:228
msgctxt "page:guides/native/index.html"
msgid "New to these terms?"
msgstr "これらの条件に新しいですか?"
#. {ph0}: <strong>
#. {ph1}: </strong>
#. {ph2}: <code>MOV</code>
#. {ph3}: <code>ADD</code>
#: website/public/guides/native/index.html:230
#, python-brace-format
msgctxt "page:guides/native/index.html"
msgid ""
"{ph0}Instructions:{ph1} the steps the processor runs, shown in readable form"
" such as {ph2} or {ph3}."
msgstr "{ph0}説明書:{ph1} プロセッサが実行する手順は、次のような読み取り可能な形式で示されています {ph2} または {ph3}."
#. {ph0}: <strong>
#. {ph1}: </strong>
#: website/public/guides/native/index.html:235
#, python-brace-format
msgctxt "page:guides/native/index.html"
msgid ""
"{ph0}Decompiler result / pseudocode:{ph1} an analysis tool's attempt to turn"
" instructions back into C-like code. It can miss parts, as in this example."
msgstr ""
"{ph0}逆コンパイラの結果/擬似コード:{ph1} 命令をCのようなコードに戻そうとする分析ツールの試み。 "
"この例のように、部品が欠落する可能性があります。"
#. {ph0}: <strong>
#. {ph1}: </strong>
#: website/public/guides/native/index.html:240
#, python-brace-format
msgctxt "page:guides/native/index.html"
msgid ""
"{ph0}Caller:{ph1} a function that calls this one. It shows which values are "
"passed in."
msgstr "{ph0}発信者:{ph1} これを呼び出す関数。 どの値が渡されるかを示します。"
#. {ph0}: <strong>
#. {ph1}: </strong>
#. {ph2}: <code>0x00406400</code>
#: website/public/guides/native/index.html:244
#, python-brace-format
msgctxt "page:guides/native/index.html"
msgid ""
"{ph0}Address:{ph1} a location in the program, written in hexadecimal, such "
"as {ph2}."
msgstr "{ph0}住所:{ph1} プログラム内の場所で、次のような16進数で記述されています {ph2}."
#. {ph0}: <strong>
#. {ph1}: </strong>
#: website/public/guides/native/index.html:248
#, python-brace-format
msgctxt "page:guides/native/index.html"
msgid ""
"{ph0}Constants:{ph1} fixed numbers stored in the program, read as raw bytes "
"and decoded."
msgstr "{ph0}定数:{ph1} プログラムに格納されている固定番号は、生のバイトとして読み取られ、デコードされます。"
#: website/public/guides/native/index.html:255
msgctxt "page:guides/native/index.html"
msgid "Three pieces of evidence, one calculation"
msgstr "証拠の三つの部分、一つの計算"
#. {ph0}: <span class="flow-label">
#. {ph1}: </span >
#. {ph2}: <span class="flow-node">
#. {ph3}: </span >
#. {ph4}: <span class="flow-note" >
#. {ph5}: </span >
#: website/public/guides/native/index.html:259
#, python-brace-format
msgctxt "page:guides/native/index.html"
msgid ""
"{ph0}01 · Instructions{ph1}{ph2}An integer input{ph3}{ph4}A stack read "
"supplies the value used by the floating-point instructions.{ph5}"
msgstr ""
"{ph0}01*説明書{ph1}{ph2}整数入力{ph3}{ph4}スタック読み取りは、浮動小数点命令で使用される値を提供します。{ph5}"
#. {ph0}: <span class="flow-label">
#. {ph1}: </span >
#. {ph2}: <span class="flow-node">
#. {ph3}: </span >
#. {ph4}: <span class="flow-note" >
#. {ph5}: <code>20 + 30 × tile_x</code>
#. {ph6}: </span >
#: website/public/guides/native/index.html:267
#, python-brace-format
msgctxt "page:guides/native/index.html"
msgid ""
"{ph0}02 · Caller{ph1}{ph2}A screen coordinate{ph3}{ph4}The brick-hit caller "
"passes {ph5}.{ph6}"
msgstr "{ph0}02*発信者{ph1}{ph2}画面座標{ph3}{ph4}ブリックヒットの発信者が通過します {ph5}.{ph6}"
#. {ph0}: <span class="flow-label">
#. {ph1}: </span >
#. {ph2}: <span class="flow-node">
#. {ph3}: </span >
#. {ph4}: <span class="flow-note" >
#. {ph5}: <code>1.5625</code>
#. {ph6}: <code>500.0</code>
#. {ph7}: </span >
#: website/public/guides/native/index.html:275
#, python-brace-format
msgctxt "page:guides/native/index.html"
msgid ""
"{ph0}03 · Data bytes{ph1}{ph2}The numeric constants{ph3}{ph4}Referenced "
"bytes decode to {ph5}, {ph6} and a scale value.{ph7}"
msgstr ""
"{ph0}03*データバイト{ph1}{ph2}数値定数{ph3}{ph4}参照されたバイトはに解読します {ph5}, {ph6} "
"とスケール値。{ph7}"
#: website/public/guides/native/index.html:287
msgctxt "page:guides/native/index.html"
msgid ""
"REA supplies the instructions, call relationship and bytes. The agent "
"interprets them together."
msgstr "REAは、命令、関数呼び出しの関係、およびバイトを提供します。 エージェントはそれらを一緒に解釈します。"
#: website/public/guides/native/index.html:294
msgctxt "page:guides/native/index.html"
msgid "Ask about the behavior"
msgstr "行動について尋ねる"
#. {ph0}: <a href="../../get-started/#agent" >
#. {ph1}: </a >
#. {ph2}: <a href="../../get-started/#native" >
#. {ph3}: </a >
#: website/public/guides/native/index.html:295
#, python-brace-format
msgctxt "page:guides/native/index.html"
msgid ""
"After {ph0}connecting REA to your agent{ph1} and {ph2}setting up a native "
"analysis tool{ph3}, provide the local executable and a question:"
msgstr ""
"後 {ph0}REAをエージェントに接続する{ph1} と "
"{ph2}マシンコードプログラムの解析ツールの設定{ph3}、ローカル実行可能ファイルと質問を提供します:"
#: website/public/guides/native/index.html:306
msgctxt "page:guides/native/index.html"
msgid "Which analysis tool should I use?"
msgstr "どの分析ツールを使うべきですか?"
#: website/public/guides/native/index.html:307
msgctxt "page:guides/native/index.html"
msgid "REA needs one of these to read native programs:"
msgstr "REAは、ネイティブプログラムを読むためにこれらのいずれかが必要です:"
#. {ph0}: <strong>
#. {ph1}: </strong>
#: website/public/guides/native/index.html:309
#, python-brace-format
msgctxt "page:guides/native/index.html"
msgid ""
"{ph0}Hopper{ph1} (macOS or Linux): REA's setup detects it or offers to "
"install it. On macOS, open Hopper once and choose demo mode or activate a "
"license before your first analysis."
msgstr ""
"{ph0} Hopper {ph1} (macOSまたはLinux):REAのセットアップがそれを検出するか、それをインストールすることを提案します。 "
"macOSでは、Hopperを一度開き、デモモードを選択するか、最初の分析の前にライセンスをアクティブにします。"
#. {ph0}: <strong>
#. {ph1}: </strong>
#: website/public/guides/native/index.html:315
#, python-brace-format
msgctxt "page:guides/native/index.html"
msgid ""
"{ph0}Ghidra{ph1} (macOS or Linux; experimental on Windows): free, but needs "
"an existing Ghidra 12.1.x installation and a 64-bit JDK 21 or newer."
msgstr ""
"{ph0} Ghidra {ph1} "
"(macOSまたはLinux;Windowsで実験):無料ですが、既存のGhidra12.1が必要です。Xのインストールおよび64ビットJDK21以降。"
#. {ph0}: <strong>
#. {ph1}: </strong>
#: website/public/guides/native/index.html:320
#, python-brace-format
msgctxt "page:guides/native/index.html"
msgid ""
"{ph0}IDA{ph1} (Windows): for an existing IDA setup with an MCP registration."
msgstr "{ph0} IDA {ph1} (Windows):MCP登録を持つ既存のIDAセットアップの場合。"
#. {ph0}: <a href="../../get-started/#native">
#. {ph1}: </a>
#: website/public/guides/native/index.html:325
#, python-brace-format
msgctxt "page:guides/native/index.html"
msgid "See {ph0}Set up native analysis{ph1} for the steps."
msgstr "見る {ph0}マシンコードプログラムの解析の設定{ph1} ステップのために。"
#. {ph0}: <span class="terminal-dots" aria-hidden="true" >
#. {ph1}: <i>
#. {ph2}: </i>
#. {ph3}: <i>
#. {ph4}: </i>
#. {ph5}: <i>
#. {ph6}: </i>
#. {ph7}: </span >
#: website/public/guides/native/index.html:333
#, python-brace-format
msgctxt "page:guides/native/index.html"
msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent"
msgstr "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}あなたのコーディングエージェント"
#: website/public/guides/native/index.html:337
#: website/public/guides/native/index.html:468
msgctxt "page:guides/native/index.html"
msgid "Copy"
msgstr "コピー"
#. {ph0}: <span class="prompt-symbol" aria-hidden="true">
#. {ph1}: </span >
#. {ph2}: <span id="native-prompt" >
#. {ph3}: </span >
#. {ph4}: <span class="terminal-cursor" aria-hidden="true">
#. {ph5}: </span>
#: website/public/guides/native/index.html:346
#, python-brace-format
msgctxt "page:guides/native/index.html"
msgid ""
"{ph0}›{ph1}{ph2}Use REA to find how DX-Ball calculates sound panning. "
"Explain the calculation and show the code.{ph3}{ph4}{ph5}"
msgstr ""
"{ph0}›{ph1}{ph2}REAを使用して、DX-Ballがステレオサウンドの位置を計算する方法を見つけます。 "
"計算を説明し、コードを表示します。{ph3}{ph4}{ph5}"
#: website/public/guides/native/index.html:354
msgctxt "page:guides/native/index.html"
msgid ""
"Example prompt. Give your agent the path to your local DX-Ball 1.07 "
"executable. REA doesn't include DX-Ball, so use your own copy, or ask the "
"same kind of question about another small Windows program you have."
msgstr ""
"プロンプトの例。 エージェントにローカルのDX-Ball1.07実行可能ファイルへのパスを指定します。 REAにはDX-"
"Ballが含まれていないため、独自のコピーを使用するか、持っている別の小さなWindowsプログラムについて同じ種類の質問をしてください。"
#: website/public/guides/native/index.html:361
msgctxt "page:guides/native/index.html"
msgid "How do I get a file's full path?"
msgstr "ファイルのフルパスを取得するにはどうすればよいですか?"
#. {ph0}: <strong>
#. {ph1}: </strong>
#. {ph2}: <em>
#. {ph3}: </em>
#: website/public/guides/native/index.html:363
#, python-brace-format
msgctxt "page:guides/native/index.html"
msgid ""
"{ph0}Windows:{ph1} in File Explorer, right-click the file and choose "
"{ph2}Copy as path{ph3}. On Windows 10, hold Shift while right-clicking."
msgstr ""
"{ph0} Windows :{ph1} ファイルエクスプローラーで、ファイルを右クリックして選択します {ph2}パスとしてコピー{ph3}. "
"Windows10で、Shiftキーを押しながら右クリックします。"
#. {ph0}: <strong>
#. {ph1}: </strong>
#. {ph2}: <em>
#. {ph3}: </em>
#: website/public/guides/native/index.html:368
#, python-brace-format
msgctxt "page:guides/native/index.html"
msgid ""
"{ph0}macOS:{ph1} in Finder, right-click the file, hold Option and choose "
"{ph2}Copy \"…\" as Pathname{ph3}."
msgstr ""
"{ph0} macOS :{ph1} Finderで、ファイルを右クリックし、オプションを押したまま、を選択します "
"{ph2}パス名として\"...\"をコピーします{ph3}."
#. {ph0}: <strong>
#. {ph1}: </strong>
#: website/public/guides/native/index.html:372
#, python-brace-format
msgctxt "page:guides/native/index.html"
msgid ""
"{ph0}Any system:{ph1} drag the file into a terminal window and its path "
"appears."
msgstr "{ph0}任意のシステム:{ph1} ファイルをターミナルウィンドウにドラッグすると、そのパスが表示されます。"
#: website/public/guides/native/index.html:380
msgctxt "page:guides/native/index.html"
msgid "Read the REA results"
msgstr "REAの結果を読む"
#: website/public/guides/native/index.html:381
msgctxt "page:guides/native/index.html"
msgid "Read the input"
msgstr "入力を読む"
#: website/public/guides/native/index.html:390
msgctxt "page:guides/native/index.html"
msgid ""
"The instructions load an integer argument and convert it for floating-point "
"arithmetic. This is the input absent from the first pseudocode view."
msgstr "命令は整数引数をロードし、浮動小数点演算用に変換します。 これは、最初の擬似コードビューに存在しない入力です。"
#: website/public/guides/native/index.html:395
msgctxt "page:guides/native/index.html"
msgid "Follow the caller"
msgstr "発信者に従ってください"
#. {ph0}: <code>0x14</code>
#: website/public/guides/native/index.html:404
#, python-brace-format
msgctxt "page:guides/native/index.html"
msgid ""
"REA identifies the brick-hit caller. Its earlier instructions multiply the "
"tile coordinate by 30; adding {ph0} (20) gives the brick's screen position."
msgstr ""
"REAは、ブリックヒット呼び出し元を識別します。 以前の手順では、タイル座標に30を掛けます。 {ph0} (20)は、レンガの画面位置を与えます。"
#: website/public/guides/native/index.html:409
msgctxt "page:guides/native/index.html"
msgid "Read the referenced constants"
msgstr "参照される定数の読み取り"
#: website/public/guides/native/index.html:420
msgctxt "page:guides/native/index.html"
msgid ""
"The arithmetic references these addresses. Reading the bytes supplies the "
"actual values; the instruction order tells the agent how they are used."
msgstr "算術はこれらのアドレスを参照します。 命令の順序は、それらがどのように使用されているかをエージェントに伝えます。"
#: website/public/guides/native/index.html:427
msgctxt "page:guides/native/index.html"
msgid "Write and check the recovered function"
msgstr "復元された機能の書き込みと確認"
#: website/public/guides/native/index.html:436
msgctxt "page:guides/native/index.html"
msgid ""
"With a scale of 1.0, screen positions 0, 320 and 640 map to −500, 0 and 500 "
"before integer conversion. The calculation puts the center of the screen at "
"the center of the stereo field."
msgstr ""
"縮尺が1.0の場合、画面の位置0、320、640は整数変換の前に-500、0、500にマップされます。 "
"この計算では、画面の中心がステレオフィールドの中心に置かれます。"
#: website/public/guides/native/index.html:441
msgctxt "page:guides/native/index.html"
msgid ""
"The agent used REA's findings to write the C. Separate checks compared 3,205"
" inputs against the original x86 function and reproduced all 63 compiled "
"bytes of the complete function."
msgstr ""
"エージェントはREAの調査結果を使用してC.Separate "
"checkを記述し、3,205個の入力を元のx86関数と比較し、完全な関数のコンパイルされた63バイトすべてを再現しました。"
#. {ph0}: <a href="../../showcase/dx-ball/#sound-pan" >
#. {ph1}: </a >
#: website/public/guides/native/index.html:446
#, python-brace-format
msgctxt "page:guides/native/index.html"
msgid "{ph0}See the full investigation and assembly-to-C comparison{ph1}"
msgstr "{ph0}完全な調査とアセンブリとCの比較を参照してください{ph1}"
#: website/public/guides/native/index.html:453
msgctxt "page:guides/native/index.html"
msgid "Try it with your own binary"
msgstr "独自のバイナリで試してみてください"
#. {ph0}: <a href="../../get-started/#native" >
#. {ph1}: </a >
#: website/public/guides/native/index.html:454
#, python-brace-format
msgctxt "page:guides/native/index.html"
msgid ""
"{ph0}Connect a native analysis provider{ph1}, then give your agent a local "
"executable or library and a feature to investigate. Useful starting "
"questions include “How is this file parsed?” or “Which function handles this"
" menu action?”"
msgstr ""
"{ph0}マシンコードの解析プログラムのプロバイダを接続します。{ph1} "
"次に、エージェントにローカルの実行可能ファイルまたはライブラリと調査する機能を提供します。 "
"有用な開始質問には、\"このファイルはどのように解析されますか?\"または\"このメニューアクションを処理する関数はどれですか?”"
#: website/public/guides/native/index.html:461
msgctxt "page:guides/native/index.html"
msgid ""
"If you already know a function name or address, you can query it from the "
"terminal. For a configured Ghidra installation:"
msgstr "関数名またはアドレスがすでにわかっている場合は、端末からクエリできます。 構成されたGhidraインストールの場合:"
#: website/public/guides/native/index.html:467
msgctxt "page:guides/native/index.html"
msgid "Function analysis"
msgstr "関数解析"
#. {ph0}: <code>main</code>
#: website/public/guides/native/index.html:480
#, python-brace-format
msgctxt "page:guides/native/index.html"
msgid ""
"Replace the target path and {ph0} with your own function name or address. "
"Each CLI invocation imports and analyzes the binary, then closes its "
"session. Your agent's MCP queries reuse the imported binary while that "
"session is open."
msgstr ""
"ターゲットパスを置き換え、 {ph0} 独自の関数名またはアドレスを使用します。 "
"各CLI呼び出しは、バイナリをインポートして分析し、そのセッションを閉じます。 "
"エージェントのMCPクエリは、セッションが開いている間にインポートされたバイナリを再利用します。"
#: website/public/guides/native/index.html:486
msgctxt "page:guides/native/index.html"
msgid ""
"Read the pseudocode alongside instructions and references. When a result "
"leaves a call or value unresolved, use that location as the next question."
msgstr "擬似コードを指示と参照と一緒に読んでください。 結果がコールまたは値を未解決のままにした場合は、その場所を次の質問として使用します。"
#: website/public/guides/native/index.html:6
msgctxt "page:guides/native/index.html"
msgid "Native Binary Analysis — REA"
msgstr "ネイティブバイナリ解析-REA"
#: website/public/guides/native/index.html:7
msgctxt "page:guides/native/index.html"
msgid ""
"Recover a native calculation with REA: inspect instructions, follow a "
"caller, read constants and check reconstructed C."
msgstr "REAでネイティブ計算を復元する:命令を検査し、呼び出し元に従って、定数を読み取り、再構成されたCを確認します。"
#: website/public/guides/native/index.html:204
msgctxt "page:guides/native/index.html"
msgid "On this page"
msgstr "このページでは"
#: website/public/guides/native/index.html:214
msgctxt "page:guides/native/index.html"
msgid "Native analysis"
msgstr "機械コードプログラムの解析"
#: website/public/guides/native/index.html:337
msgctxt "page:guides/native/index.html"
msgid "Copy example prompt"
msgstr "プロンプトの例をコピーする"
#: website/public/guides/native/index.html:468
msgctxt "page:guides/native/index.html"
msgid "Copy function analysis"
msgstr "コピー関数解析"
#: website/public/guides/native/index.html:509
msgctxt "page:guides/native/index.html"
msgid "Back to top"
msgstr "ページ上部へ"
#: website/public/index.html:105
msgctxt "page:index.html"
msgid "Skip to content"
msgstr "コンテンツにスキップ"
#: website/public/index.html:196 website/public/index.html:206
#: website/public/index.html:204
msgctxt "page:index.html"
msgid "On this page"
msgstr "このページでは"
#: website/public/index.html:197 website/public/index.html:251
msgctxt "page:index.html"
msgid "Set up REA"
msgstr "REAのセットアップ"
#. {ph0}: <a href="#setup" aria-current="location">
#. {ph1}: </a>
#: website/public/index.html:208
#, python-brace-format
msgctxt "page:index.html"
msgid "{ph0}Set up REA{ph1}"
msgstr "{ph0}REAのセットアップ {ph1}"
#. {ph0}: <a href="#what-is-re">
#. {ph1}: </a>
#: website/public/index.html:209
#, python-brace-format
msgctxt "page:index.html"
msgid "{ph0}What is RE?{ph1}"
msgstr "{ph0}REとは何ですか?{ph1}"
#. {ph0}: <a href="#how-rea-helps">
#. {ph1}: </a>
#: website/public/index.html:210
#, python-brace-format
msgctxt "page:index.html"
msgid "{ph0}How REA helps{ph1}"
msgstr "{ph0}REA がどう役立つか{ph1}"
#. {ph0}: <a href="#dinosaur">
#. {ph1}: </a>
#: website/public/index.html:211
#, python-brace-format
msgctxt "page:index.html"
msgid "{ph0}Dinosaur game{ph1}"
msgstr "{ph0}恐竜ゲーム{ph1}"
#. {ph0}: <a href="#calculator">
#. {ph1}: </a>
#: website/public/index.html:212
#, python-brace-format
msgctxt "page:index.html"
msgid "{ph0}Calculator{ph1}"
msgstr "{ph0}電卓{ph1}"
#. {ph0}: <a href="#try-rea">
#. {ph1}: </a>
#: website/public/index.html:213
#, python-brace-format
msgctxt "page:index.html"
msgid "{ph0}Try REA{ph1}"
msgstr "{ph0}REAを試してみてください {ph1}"
#. {ph0}: <a href="#analyze">
#. {ph1}: </a>
#: website/public/index.html:214
#, python-brace-format
msgctxt "page:index.html"
msgid "{ph0}Go deeper{ph1}"
msgstr "{ph0}さらに詳しく{ph1}"
#. {ph0}: <a href="#questions">
#. {ph1}: </a>
#: website/public/index.html:215
#, python-brace-format
msgctxt "page:index.html"
msgid "{ph0}Help & feedback{ph1}"
msgstr "{ph0}ヘルプとフィードバック{ph1}"
#. {ph0}: <a href="#community">
#. {ph1}: </a>
#: website/public/index.html:216
#, python-brace-format
msgctxt "page:index.html"
msgid "{ph0}Community{ph1}"
msgstr "{ph0}コミュニティ{ph1}"
#: website/public/index.html:225
msgctxt "page:index.html"
msgid "Reverse engineering, with your coding agent"
msgstr "コーディングエージェントとのリバースエンジニアリング"
#. {ph0}: <br />
#: website/public/index.html:226
#, python-brace-format
msgctxt "page:index.html"
msgid "Find out how{ph0}software works."
msgstr "ソフトウェアの{ph0}仕組みを知ろう。"
#: website/public/index.html:227
msgctxt "page:index.html"
msgid ""
"REA gives your agent the tools to inspect a program and explain what it "
"does."
msgstr "REA は、プログラムを調べて動作を説明するためのツールをコーディングエージェントに提供します。"
#. {ph0}: <a href="#analysis-guides">
#. {ph1}: </a>
#: website/public/index.html:241
#, python-brace-format
msgctxt "page:index.html"
msgid "Already know RE? {ph0}Skip to analysis guides →{ph1}"
msgstr "すでに再を知っていますか? {ph0}分析ガイドへスキップ→{ph1}"
#. {ph0}: <a href="blog/">
#. {ph1}: </a>
#: website/public/index.html:245
#, python-brace-format
msgctxt "page:index.html"
msgid "Want to go deeper? {ph0}Read the Blog →{ph1}"
msgstr "もっと深く行きたいですか? {ph0}ブログを読む→{ph1}"
#: website/public/index.html:252
msgctxt "page:index.html"
msgid "Copy this into your coding agent:"
msgstr "このプロンプトをコーディングエージェントに貼り付けてください:"
#. {ph0}: <span class="terminal-dots" aria-hidden="true" >
#. {ph1}: <i>
#. {ph2}: </i>
#. {ph3}: <i>
#. {ph4}: </i>
#. {ph5}: <i>
#. {ph6}: </i>
#. {ph7}: </span >
#: website/public/index.html:255
#, python-brace-format
msgctxt "page:index.html"
msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent"
msgstr "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}あなたのコーディングエージェント"
#: website/public/index.html:260 website/public/index.html:282
#: website/public/index.html:497 website/public/index.html:665
#: website/public/index.html:901 website/public/index.html:1063
#: website/public/index.html:1091
msgctxt "page:index.html"
msgid "Copy"
msgstr "コピー"
#: website/public/index.html:279
msgctxt "page:index.html"
msgid "Or run this in your terminal:"
msgstr "ターミナルから実行することもできます:"
#: website/public/index.html:291
msgctxt "page:index.html"
msgid "Approve the setup plan, then restart your agent."
msgstr "設定の変更内容を確認して承認したら、エージェントを再起動します。"
#: website/public/index.html:306
msgctxt "page:index.html"
msgid "What is reverse engineering?"
msgstr "リバースエンジニアリングとは?"
#. {ph0}: <strong>
#. {ph1}: </strong>
#: website/public/index.html:307
#, python-brace-format
msgctxt "page:index.html"
msgid ""
"Finding out how software works by {ph0}examining the program itself.{ph1}"
msgstr "{ph0}プログラムそのものを調べて{ph1}、ソフトウェアの仕組みを理解することです。"
#. {ph0}: <mark class="prose-highlight">
#. {ph1}: </mark>
#. {ph2}: <mark class="prose-highlight">
#. {ph3}: </mark>
#. {ph4}: <mark class="prose-highlight">
#. {ph5}: </mark>
#: website/public/index.html:312
#, python-brace-format
msgctxt "page:index.html"
msgid ""
"The goal: understand a feature well enough to {ph0}explain it{ph1}, "
"{ph2}change it{ph3} or {ph4}rebuild it.{ph5}"
msgstr ""
"目標:機能を十分に理解する {ph0}それを説明してください{ph1}, {ph2}それを変更します{ph3} または "
"{ph4}それを再構築します。{ph5}"
#. {ph0}: <strong class="prose-highlight">
#. {ph1}: </strong>
#: website/public/index.html:330
#, python-brace-format
msgctxt "page:index.html"
msgid "Before REA · You investigate it {ph0}yourself{ph1}"
msgstr "REA を使う前 · {ph0}自分で{ph1}調べる"
#. {ph0}: <span>
#. {ph1}: </span>
#: website/public/index.html:339
#, python-brace-format
msgctxt "page:index.html"
msgid "{ph0}01{ph1} Decode branches"
msgstr "{ph0}01{ph1} 枝をデコードする"
#. {ph0}: <span>
#. {ph1}: </span>
#: website/public/index.html:347
#, python-brace-format
msgctxt "page:index.html"
msgid "{ph0}02{ph1} Trace calls"
msgstr "{ph0}02{ph1} トレース呼び出し"
#. {ph0}: <span>
#. {ph1}: </span>
#: website/public/index.html:355
#, python-brace-format
msgctxt "page:index.html"
msgid "{ph0}03{ph1} Recover the rule"
msgstr "{ph0}03{ph1} ルールを回復する"
#. {ph0}: <span>
#. {ph1}: </span>
#. {ph2}: <span class="assembly-disclosure" aria-hidden="true">
#. {ph3}: </span>
#: website/public/index.html:370
#, python-brace-format
msgctxt "page:index.html"
msgid "{ph0}Original x64 · selected instructions{ph1} {ph2}{ph3}"
msgstr "{ph0}オリジナルx64·選択された指示{ph1} {ph2}{ph3}"
#: website/public/index.html:409
msgctxt "page:index.html"
msgid "01 · Which branch?"
msgstr "01*どの支店?"
#. {ph0}: <strong>
#. {ph1}: </strong>
#: website/public/index.html:410
#, python-brace-format
msgctxt "page:index.html"
msgid ""
"“{ph0}0x5b? 0x5c?{ph1} Two jumps to the same place. Which operators are "
"these?”"
msgstr "“{ph0}0x5b? 0x5c?{ph1} 同じ場所に2つのジャンプ。 これらはどの演算子ですか?”"
#: website/public/index.html:414
msgctxt "page:index.html"
msgid "Look up the command IDs, then label the branch."
msgstr "コマンドIdを検索し、ブランチにラベルを付けます。"
#: website/public/index.html:420
msgctxt "page:index.html"
msgid "Divide ÷"
msgstr "ディバイド÷"
#: website/public/index.html:424
msgctxt "page:index.html"
msgid "Multiply ×"
msgstr "乗算×"
#: website/public/index.html:429
msgctxt "page:index.html"
msgid "02 · What do the calls do?"
msgstr "02 · 呼び出された関数は何をする?"
#. {ph0}: <strong>
#. {ph1}: </strong >
#: website/public/index.html:430
#, python-brace-format
msgctxt "page:index.html"
msgid ""
"“100 is clear. The calls are just addresses. {ph0}Which one divides? Which "
"value goes in?{ph1}”"
msgstr "「100は明らかです。 呼び出しは単なるアドレスです。 {ph0}どちらが分かれていますか? どの値が入りますか?{ph1}”"
#: website/public/index.html:435
msgctxt "page:index.html"
msgid "Inspect the helpers and trace the stored values."
msgstr "ヘルパー関数を検査し、格納されている値をトレースします。"
#: website/public/index.html:445
msgctxt "page:index.html"
msgid "Divide"
msgstr "ディバイド"
#: website/public/index.html:450
msgctxt "page:index.html"
msgid "03 · What is the rule?"
msgstr "03·ルールとは何ですか?"
#. {ph0}: <strong>
#. {ph1}: </strong>
#: website/public/index.html:451
#, python-brace-format
msgctxt "page:index.html"
msgid ""
"“This path multiplies by the other input. So {ph0}10% means 10% of 200{ph1} "
"after +.”"
msgstr "\"このパスは、他の入力によって乗算されます。 だから {ph0}10%は200の10%を意味します{ph1} +の後。”"
#: website/public/index.html:455
msgctxt "page:index.html"
msgid "Name the operands and check both operator paths."
msgstr "オペランドに名前を付け、両方の演算子パスを確認します。"
#: website/public/index.html:471 website/public/index.html:399
msgctxt "page:index.html"
msgid "Illustrative expert reasoning"
msgstr "図解専門家の推論"
#. {ph0}: <strong >
#. {ph1}: </strong >
#: website/public/index.html:474
#, python-brace-format
msgctxt "page:index.html"
msgid ""
"{ph0}You decode the instructions, follow the calls and reconstruct the "
"calculation.{ph1}"
msgstr "{ph0}命令をデコードし、関数呼び出しに従って計算を再構築します。{ph1}"
#. {ph0}: <strong class="prose-highlight">
#. {ph1}: </strong>
#: website/public/index.html:482
#, python-brace-format
msgctxt "page:index.html"
msgid "With REA · You ask {ph0}your agent{ph1}"
msgstr "REA を使うと · {ph0}エージェント{ph1}に聞く"
#: website/public/index.html:486
msgctxt "page:index.html"
msgid "One prompt."
msgstr "プロンプトは一つだけ。"
#. {ph0}: <strong>
#. {ph1}: </strong>
#: website/public/index.html:487
#, python-brace-format
msgctxt "page:index.html"
msgid "Ask your agent {ph0}in plain English.{ph1}"
msgstr "{ph0}普段の言葉で{ph1}エージェントに質問します。"
#. {ph0}: <span class="terminal-dots" aria-hidden="true" >
#. {ph1}: <i>
#. {ph2}: </i>
#. {ph3}: <i>
#. {ph4}: </i>
#. {ph5}: <i>
#. {ph6}: </i>
#. {ph7}: </span >
#: website/public/index.html:492
#, python-brace-format
msgctxt "page:index.html"
msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Example prompt · Calculator"
msgstr "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}プロンプトの例*電卓"
#: website/public/index.html:514
msgctxt "page:index.html"
msgid "Example answer · based on the findings"
msgstr "回答例*調査結果に基づく"
#. {ph0}: <strong>
#. {ph1}: </strong>
#: website/public/index.html:517
#, python-brace-format
msgctxt "page:index.html"
msgid ""
"After +, the % button takes {ph0}a percentage of the first number.{ph1}"
msgstr "+の後に、%ボタンがかかります {ph0}最初の数の割合。{ph1}"
#: website/public/index.html:529
msgctxt "page:index.html"
msgid "REA supplies"
msgstr "REA が提供する情報"
#: website/public/index.html:530
msgctxt "page:index.html"
msgid "The handler’s instructions, decompiled code and calls."
msgstr "ハンドラーの命令、逆コンパイルされたコード、および呼び出し。"
#: website/public/index.html:535
msgctxt "page:index.html"
msgid "Your agent explains"
msgstr "エージェントが説明すること"
#: website/public/index.html:536
msgctxt "page:index.html"
msgid "Which branch applies, what it calculates and how to rebuild it."
msgstr "どのブランチが適用され、何が計算され、どのように再構築するか。"
#. {ph0}: <a href="#calculator">
#. {ph1}: </a>
#: website/public/index.html:543
#, python-brace-format
msgctxt "page:index.html"
msgid ""
"Selected assembly from the installed Calculator DLL. The thoughts and reply "
"illustrate the findings. {ph0}Continue with the Calculator example ↓{ph1}"
msgstr ""
"インストールされている電卓DLLから選択されたアセンブリ。 考えと返信は、調査結果を示しています。 {ph0}電卓の例に続きます↓{ph1}"
#. {ph0}: <strong>
#. {ph1}: </strong>
#: website/public/index.html:554
#, python-brace-format
msgctxt "page:index.html"
msgid ""
"{ph0}Let's try two examples.{ph1} Change a game's speed, then return to "
"Calculator and rebuild its % button."
msgstr "{ph0}2つの例を試してみましょう。{ph1} ゲームの速度を変更し、電卓に戻り、その%ボタンを再構築します。"
#: website/public/index.html:560
msgctxt "page:index.html"
msgid "Example 01 · Chrome’s dinosaur game"
msgstr "例01•Chromeの恐竜ゲーム"
#: website/public/index.html:561
msgctxt "page:index.html"
msgid "Why does the dinosaur get faster?"
msgstr "恐竜はなぜ速くなる?"
#: website/public/index.html:565 website/public/index.html:803
msgctxt "page:index.html"
msgid "Goal"
msgstr "ゴール"
#. {ph0}: <mark class="prose-highlight">
#. {ph1}: </mark>
#: website/public/index.html:566
#, python-brace-format
msgctxt "page:index.html"
msgid "Rebuild the game with {ph0}adjustable speed.{ph1}"
msgstr "でゲームを再構築する {ph0}調節可能な速度。{ph1}"
#: website/public/index.html:572 website/public/index.html:810
msgctxt "page:index.html"
msgid "Why reverse engineer it?"
msgstr "なぜそれをリバースエンジニアリング?"
#. {ph0}: <strong>
#. {ph1}: </strong>
#: website/public/index.html:573
#, python-brace-format
msgctxt "page:index.html"
msgid ""
"To reproduce its acceleration, we need {ph0}the rule in the running "
"game{ph1}: how fast it starts, how much it increases and when it stops."
msgstr ""
"その加速を再現するには、次のものが必要です "
"{ph0}実行中のゲームのルール{ph1}:どのくらいの速、それが増加し、それが停止したときに、それが開始されます。"
#: website/public/index.html:582
msgctxt "page:index.html"
msgid "Play the reconstruction"
msgstr "再構築したゲームで遊ぶ"
#: website/public/index.html:614
msgctxt "page:index.html"
msgid "Play"
msgstr "スタート"
#: website/public/index.html:617
msgctxt "page:index.html"
msgid "Jump ↑"
msgstr "ジャンプ ↑"
#: website/public/index.html:618
msgctxt "page:index.html"
msgid "Restart"
msgstr "リスタート"
#: website/public/index.html:621
msgctxt "page:index.html"
msgid "Speed"
msgstr "速度"
#: website/public/index.html:631
msgctxt "page:index.html"
msgid "Use the recovered acceleration rule"
msgstr "回復された加速ルールを使用する"
#: website/public/index.html:635
msgctxt "page:index.html"
msgid "Original rule: start at 6, then increase toward 13."
msgstr "元のルール:6から開始し、13に向かって増加します。"
#: website/public/index.html:638
msgctxt "page:index.html"
msgid "Move the slider to set your own speed. Space or Jump clears a cactus."
msgstr "スライダーを動かして独自の速度を設定します。 スペースまたはジャンプはサボテンをクリアします。"
#: website/public/index.html:643
msgctxt "page:index.html"
msgid ""
"Enable JavaScript to play the reconstruction. The code and explanation above"
" remain readable."
msgstr "再構成を再生するには、JavaScriptを有効にします。 上記のコードと説明は読みやすいままです。"
#: website/public/index.html:651 website/public/index.html:881
msgctxt "page:index.html"
msgid "REA returned"
msgstr "REA が返した結果"
#. {ph0}: <strong>
#. {ph1}: </strong>
#: website/public/index.html:652
#, python-brace-format
msgctxt "page:index.html"
msgid ""
"{ph0}The script actually running in the page.{ph1} The agent reads its "
"update function and speed settings, then uses that rule in a new game."
msgstr ""
"{ph0}ページ内で実際に実行されているスクリプト。{ph1} エージェントは更新機能と速度設定を読み取り、新しいゲームでそのルールを使用します。"
#. {ph0}: <span class="terminal-dots" aria-hidden="true" >
#. {ph1}: <i>
#. {ph2}: </i>
#. {ph3}: <i>
#. {ph4}: </i>
#. {ph5}: <i>
#. {ph6}: </i>
#. {ph7}: </span >
#: website/public/index.html:660
#, python-brace-format
msgctxt "page:index.html"
msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Example prompt · Dinosaur game"
msgstr "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}例プロンプト*恐竜ゲーム"
#. {ph0}: <span class="prompt-symbol" aria-hidden="true">
#. {ph1}: </span >
#. {ph2}: <span id="dino-analysis-prompt" >
#. {ph3}: </span >
#. {ph4}: <span class="terminal-cursor" aria-hidden="true">
#. {ph5}: </span>
#: website/public/index.html:674
#, python-brace-format
msgctxt "page:index.html"
msgid ""
"{ph0}›{ph1}{ph2}Use REA to inspect this dinosaur game. Why does it get "
"faster? Show the speed rule, then build a small version with an adjustable "
"speed.{ph3}{ph4}{ph5}"
msgstr ""
"{ph0}›{ph1}{ph2}この恐竜のゲームを検査するためにREAを使用してください。 なぜそれは速くなるのですか? "
"速度ルールを表示し、調整可能な速度で小さなバージョンを構築します。{ph3}{ph4}{ph5}"
#. {ph0}: <a href="https://wayou.github.io/t-rex-runner/" >
#. {ph1}: </a >
#: website/public/index.html:683
#, python-brace-format
msgctxt "page:index.html"
msgid "Inspected target: {ph0}wayou’s Chromium-derived browser edition{ph1}."
msgstr "検査対象: {ph0}wayouのChromium派生ブラウザ版{ph1}."
#. {ph0}: <strong>
#. {ph1}: </strong>
#. {ph2}: <strong>
#. {ph3}: </strong>
#. {ph4}: <strong>
#. {ph5}: </strong>
#: website/public/index.html:700
#, python-brace-format
msgctxt "page:index.html"
msgid ""
"{ph0}Start at 6.{ph1} Add {ph2}0.001{ph3} each update without a collision, "
"while speed is below {ph4}13{ph5}."
msgstr ""
"{ph0}6時からスタート。{ph1} 追加 {ph2}0.001{ph3} 速度は以下のとおりですが、衝突のない各更新 {ph4}13{ph5}."
#: website/public/index.html:705
msgctxt "page:index.html"
msgid "Open the speed lab →"
msgstr "スピードラボを開く→"
#: website/public/index.html:711
msgctxt "page:index.html"
msgid "What each part does"
msgstr "各部分が何をするか"
#. {ph0}: <span class="flow-label">
#. {ph1}: </span >
#. {ph2}: <span class="flow-node">
#. {ph3}: </span >
#. {ph4}: <span class="flow-note" >
#. {ph5}: </span >
#: website/public/index.html:713
#, python-brace-format
msgctxt "page:index.html"
msgid ""
"{ph0}01 · REA{ph1}{ph2}Read the running game’s script{ph3}{ph4}Return its "
"actual code and settings to the agent.{ph5}"
msgstr ""
"{ph0}01*REA {ph1}{ph2}実行中のゲームのスクリプトを読む{ph3}{ph4}実際のコードと設定をエージェントに返します。{ph5}"
#. {ph0}: <span class="flow-label">
#. {ph1}: </span >
#. {ph2}: <span class="flow-node">
#. {ph3}: </span >
#. {ph4}: <span class="flow-note" >
#. {ph5}: </span >
#: website/public/index.html:720
#, python-brace-format
msgctxt "page:index.html"
msgid ""
"{ph0}02 · Your agent{ph1}{ph2}Rebuild the rule, add a control{ph3}{ph4}Use "
"the recovered acceleration in a small game with a speed slider.{ph5}"
msgstr ""
"{ph0}02*あなたの代理店{ph1}{ph2}ルールを再構築し、コントロールを追加します{ph3}{ph4}スピードスライダーで小さなゲームで回収された加速を使用してください。{ph5}"
#. {ph0}: <span class="flow-label">
#. {ph1}: </span >
#. {ph2}: <span class="flow-node">
#. {ph3}: </span >
#. {ph4}: <span class="flow-note" >
#. {ph5}: </span >
#: website/public/index.html:728
#, python-brace-format
msgctxt "page:index.html"
msgid ""
"{ph0}03 · You{ph1}{ph2}Change the speed and play{ph3}{ph4}Try the original "
"acceleration, then choose your own pace.{ph5}"
msgstr ""
"{ph0}03*あなた{ph1}{ph2}スピードとプレイを変更します{ph3}{ph4}元の加速を試してから、自分のペースを選択してください。{ph5}"
#: website/public/index.html:739
msgctxt "page:index.html"
msgid "See the script, checks and how to try the analysis"
msgstr "スクリプト、チェック、および分析を試す方法を参照してください"
#. {ph0}: <code>index.js</code>
#: website/public/index.html:742
#, python-brace-format
msgctxt "page:index.html"
msgid ""
"REA inspected the HTTP browser edition through a local debugging connection "
"and returned the loaded {ph0}, including its source and digest."
msgstr ""
"REAは、ローカルデバッグ接続を介してHTTP browser editionを検査し、ロードされたものを返しました "
"{ph0}、そのソースとダイジェストを含みます。"
#: website/public/index.html:755
msgctxt "page:index.html"
msgid ""
"We called the original game’s update function in a controlled browser check,"
" with obstacles and automatic scheduling disabled. After 4,000 updates, "
"speed was 10.0; after 10,000, it was 13.0, rounded to one decimal."
msgstr ""
"私たちは、障害物や自動スケジューリングを無効にして、制御されたブラウザチェックで元のゲームの更新機能を呼びました。 "
"4,000回の更新後の速度は10.0、10,000回の更新後は13.0で、小数点以下1桁に四捨五入されていました。"
#. {ph0}: <a href="examples/dino-lab/">
#. {ph1}: </a>
#: website/public/index.html:761
#, python-brace-format
msgctxt "page:index.html"
msgid ""
"The new mini-game keeps that speed rule. Its drawing, jumping and collision "
"code are a small teaching implementation. {ph0}Open the lab{ph1} to see the "
"new code and run the same speed check."
msgstr ""
"新しいミニゲームは、その速度ルールを保持します。 その描画、ジャンプ、および衝突コードは、小さな教育の実装です。 {ph0}ラボを開く{ph1} "
"新しいコードを表示し、同じ速度チェックを実行するには。"
#. {ph0}: <a href="guides/browser/#prepare">
#. {ph1}: </a>
#. {ph2}: <a href="https://wayou.github.io/t-rex-runner/" >
#. {ph3}: </a >
#: website/public/index.html:767
#, python-brace-format
msgctxt "page:index.html"
msgid ""
"To inspect the target yourself, follow the {ph0}browser connection "
"steps{ph1} using {ph2}the dinosaur page{ph3}. Give your agent that page URL "
"and your local debugging endpoint, then copy the prompt above."
msgstr ""
"ターゲットを自分で検査するには、次の手順に従います {ph0}ブラウザ接続手順{ph1} を使用して {ph2}恐竜のページ{ph3}. "
"エージェントにページURLとローカルデバッグエンドポイントを指定し、上記のプロンプトをコピーします。"
#. {ph0}: <a href="https://github.com/wayou/t-rex-
#. runner/blob/5455bfa408ec6b707c7300ff194b7390733a766d/index.js#L565-L571" >
#. {ph1}: </a >
#. {ph2}: <a href="assets/licenses/dinosaur.txt" >
#. {ph3}: </a >
#: website/public/index.html:776
#, python-brace-format
msgctxt "page:index.html"
msgid ""
"{ph0}Inspected speed code{ph1} · {ph2}Chromium Authors · BSD license{ph3}"
msgstr "{ph0}検査された速度コード{ph1} · {ph2} Chromium著者·BSDライセンス{ph3}"
#: website/public/index.html:793
msgctxt "page:index.html"
msgid "Example 02 · Windows Calculator"
msgstr "例02•Windows計算機"
#: website/public/index.html:794
msgctxt "page:index.html"
msgid "Rebuild Calculator’s % button."
msgstr "電卓の % ボタンを再現する。"
#. {ph0}: <mark class="prose-highlight">
#. {ph1}: </mark>
#: website/public/index.html:804
#, python-brace-format
msgctxt "page:index.html"
msgid ""
"Build a small calculator that handles {ph0}both + and × correctly.{ph1}"
msgstr "処理する小さな電卓を構築する {ph0}+と×の両方が正しく。{ph1}"
#. {ph0}: <strong>
#. {ph1}: </strong>
#: website/public/index.html:811
#, python-brace-format
msgctxt "page:index.html"
msgid ""
"The same button uses {ph0}different rules after + and ×.{ph1} We inspect the"
" installed app to find which number the percentage is applied to."
msgstr ""
"同じボタンを使用します {ph0}+と×の後の異なるルール。{ph1} "
"インストールされているアプリを調べて、パーセンテージが適用されている数を見つけます。"
#: website/public/index.html:820
msgctxt "page:index.html"
msgid "Try the calculation"
msgstr "計算を試してみてください"
#: website/public/index.html:864
msgctxt "page:index.html"
msgid "Reset"
msgstr "リセット"
#: website/public/index.html:872
msgctxt "page:index.html"
msgid "10% of 200 = 20. Then 200 + 20 = 220."
msgstr "10%の200=20. 次に、200+20=220。"
#: website/public/index.html:875
msgctxt "page:index.html"
msgid "Interactive illustration of the inspected percentage rule."
msgstr "検査されたパーセンテージルールのインタラクティブなイラスト。"
#. {ph0}: <strong >
#. {ph1}: </strong >
#: website/public/index.html:882
#, python-brace-format
msgctxt "page:index.html"
msgid ""
"{ph0}One branch divides by 100. The other also multiplies by the first "
"number.{ph1} The agent uses both to recreate the % button."
msgstr "{ph0}1つの枝は100で割ります。 もう1つは、最初の数で乗算します。{ph1} エージェントは両方を使用して%ボタンを再作成します。"
#. {ph0}: <code>previous = 200</code>
#. {ph1}: <code>current = 10</code>
#: website/public/index.html:890
#, python-brace-format
msgctxt "page:index.html"
msgid "For this example, {ph0} and {ph1}."
msgstr "この例では, {ph0} と {ph1}."
#. {ph0}: <span class="terminal-dots" aria-hidden="true" >
#. {ph1}: <i>
#. {ph2}: </i>
#. {ph3}: <i>
#. {ph4}: </i>
#. {ph5}: <i>
#. {ph6}: </i>
#. {ph7}: </span >
#: website/public/index.html:896
#, python-brace-format
msgctxt "page:index.html"
msgid ""
"{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Example prompt · Rebuild the % "
"button"
msgstr "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}プロンプトの例*%ボタンを再構築する"
#. {ph0}: <span class="prompt-symbol" aria-hidden="true">
#. {ph1}: </span >
#. {ph2}: <span id="calculator-analysis-prompt" >
#. {ph3}: </span >
#. {ph4}: <span class="terminal-cursor" aria-hidden="true">
#. {ph5}: </span>
#: website/public/index.html:910
#, python-brace-format
msgctxt "page:index.html"
msgid ""
"{ph0}›{ph1}{ph2}Use REA to inspect Windows Calculator’s % button. Recover "
"the rules after + and ×, then build a small calculator that uses "
"both.{ph3}{ph4}{ph5}"
msgstr ""
"{ph0}›{ph1}{ph2}REAを使用して、Windows計算機の%ボタンを検査します。 "
"+と×の後にルールを回復し、両方を使用する小さな電卓を作成します。{ph3}{ph4}{ph5}"
#: website/public/index.html:931
msgctxt "page:index.html"
msgid "With +"
msgstr "と+"
#. {ph0}: <strong>
#. {ph1}: </strong >
#. {ph2}: <code>10% of 200 = 20 → 200 + 20 = 220</code>
#: website/public/index.html:932
#, python-brace-format
msgctxt "page:index.html"
msgid "{ph0}Take 10% of the first number.{ph1}{ph2}"
msgstr "{ph0}最初の数の10%を取ります。{ph1}{ph2}"
#: website/public/index.html:938
msgctxt "page:index.html"
msgid "With ×"
msgstr "×付き"
#. {ph0}: <strong>
#. {ph1}: </strong >
#. {ph2}: <code>200 × 0.1 = 20</code>
#: website/public/index.html:939
#, python-brace-format
msgctxt "page:index.html"
msgid "{ph0}Turn 10% into 0.1.{ph1}{ph2}"
msgstr "{ph0}10%を0.1に変えます。{ph1}{ph2}"
#: website/public/index.html:948
msgctxt "page:index.html"
msgid "From the installed app to a working % button"
msgstr "インストールされているアプリから作業中の%ボタンへ"
#. {ph0}: <span class="flow-label">
#. {ph1}: </span >
#. {ph2}: <span class="flow-node">
#. {ph3}: </span >
#. {ph4}: <span class="flow-note" >
#. {ph5}: <code>100</code>
#. {ph6}: </span >
#: website/public/index.html:961
#, python-brace-format
msgctxt "page:index.html"
msgid ""
"{ph0}02 · REA reads the library{ph1}{ph2}Return the % handler’s "
"code{ph3}{ph4}The function checks the operator and uses the constant "
"{ph5}.{ph6}"
msgstr ""
"{ph0}02*REAはライブラリを読み込みます{ph1}{ph2}%ハンドラーのコードを返します{ph3}{ph4}関数は演算子をチェックし、定数を使用します"
" {ph5}.{ph6}"
#. {ph0}: <span class="flow-label">
#. {ph1}: </span >
#. {ph2}: <span class="flow-node">
#. {ph3}: </span >
#. {ph4}: <span class="flow-note" >
#. {ph5}: </span >
#: website/public/index.html:969
#, python-brace-format
msgctxt "page:index.html"
msgid ""
"{ph0}03 · Your agent interprets it{ph1}{ph2}Explain and reproduce the "
"rules{ph3}{ph4}Crosscheck the branch with Microsoft’s source, then try + and"
" × above.{ph5}"
msgstr ""
"{ph0}03*あなたのエージェントはそれを解釈します{ph1}{ph2}ルールの説明と再現{ph3}{ph4}ブランチをMicrosoftのソースと照合してから、上記の+と×を試してください。{ph5}"
#: website/public/index.html:980
msgctxt "page:index.html"
msgid "See the real code and how the answer was checked"
msgstr "実際のコードと答えがどのようにチェックされたかを参照してください"
#: website/public/index.html:1006
msgctxt "page:index.html"
msgid ""
"Inspected with REA 4.1.0: Windows Calculator 11.2508.4.0, x64. The readable "
"summary uses names from Microsoft’s public source to explain the recovered "
"branch."
msgstr ""
"REA4.1.0で検査:Windows電卓11.2508.4.0、x64。 "
"読み取り可能な概要は、回復されたブランチを説明するために、Microsoftの公開ソースからの名前を使用しています。"
#. {ph0}: <a
#. href="https://github.com/microsoft/calculator/blob/d125246a4e19842ce1332e6c7839cf0e110027d8/src/CalcManager/CEngine/scifunc.cpp#L98-L111"
#. >
#. {ph1}: </a >
#. {ph2}: <a
#. href="https://github.com/microsoft/calculator/blob/d125246a4e19842ce1332e6c7839cf0e110027d8/src/CalculatorUnitTests/CalculatorManagerTest.cpp#L350-L370"
#. >
#. {ph3}: </a >
#. {ph4}: <a href="guides/native/">
#. {ph5}: </a>
#: website/public/index.html:1011
#, python-brace-format
msgctxt "page:index.html"
msgid ""
"{ph0}Percentage implementation{ph1} · {ph2}Microsoft’s test cases{ph3} · "
"{ph4}Native setup guide{ph5}"
msgstr "{ph0}割合の実装{ph1} · {ph2}マイクロソフトのテストケース{ph3} · {ph4}ネイティブセットアップガイド{ph5}"
#: website/public/index.html:1030
msgctxt "page:index.html"
msgid "Your first investigation"
msgstr "あなたの最初の調査"
#: website/public/index.html:1031
msgctxt "page:index.html"
msgid "Try REA on a small app."
msgstr "小さなアプリでREAを試してみてください。"
#: website/public/index.html:1032
msgctxt "page:index.html"
msgid ""
"Download our Notes example, trace its CSV export, and check one changed "
"input."
msgstr "私たちのノートの例をダウンロードし、そのCSVエクスポートをトレースし、一つの変更された入力を確認してください。"
#: website/public/index.html:1037
msgctxt "page:index.html"
msgid "Try the guided example"
msgstr "ガイド付きの例を試してください"
#: website/public/index.html:1046
msgctxt "page:index.html"
msgid "Want to go deeper?"
msgstr "もっと詳しく知りたい?"
#. {ph0}: <strong>
#. {ph1}: </strong>
#. {ph2}: <strong>
#. {ph3}: </strong>
#: website/public/index.html:1047
#, python-brace-format
msgctxt "page:index.html"
msgid ""
"Tell your agent what you want to understand or build. With REA, you can work"
" together on anything from {ph0}cloning this website{ph1} to "
"{ph2}reconstructing a game from its executable.{ph3}"
msgstr ""
"理解したいことや構築したいことをエージェントに伝えます。 REAを使うと、何でもからの一緒に働くことができます "
"{ph0}このウェブサイトを複製する{ph1} に {ph2}その実行可能ファイルからゲームを再構築します。{ph3}"
#. {ph0}: <span class="terminal-dots" aria-hidden="true" >
#. {ph1}: <i>
#. {ph2}: </i>
#. {ph3}: <i>
#. {ph4}: </i>
#. {ph5}: <i>
#. {ph6}: </i>
#. {ph7}: </span >
#: website/public/index.html:1058
#, python-brace-format
msgctxt "page:index.html"
msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Example prompt · Website"
msgstr "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}プロンプトの例·ウェブサイト"
#: website/public/index.html:1081
msgctxt "page:index.html"
msgid "Yes, this one."
msgstr "はい、これ。"
#. {ph0}: <span class="terminal-dots" aria-hidden="true" >
#. {ph1}: <i>
#. {ph2}: </i>
#. {ph3}: <i>
#. {ph4}: </i>
#. {ph5}: <i>
#. {ph6}: </i>
#. {ph7}: </span >
#: website/public/index.html:1086
#, python-brace-format
msgctxt "page:index.html"
msgid ""
"{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Example prompt · Game reconstruction"
msgstr "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}例プロンプト·ゲームの再構築"
#. {ph0}: <span class="prompt-symbol" aria-hidden="true">
#. {ph1}: </span >
#. {ph2}: <span id="game-project-prompt" >
#. {ph3}: </span >
#. {ph4}: <span class="terminal-cursor" aria-hidden="true">
#. {ph5}: </span>
#: website/public/index.html:1100
#, python-brace-format
msgctxt "page:index.html"
msgid ""
"{ph0}›{ph1}{ph2}Use REA to reconstruct this game from its executable. "
"Recover the gameplay logic in C and test it against the "
"original.{ph3}{ph4}{ph5}"
msgstr ""
"{ph0}›{ph1}{ph2}実行可能ファイルからこのゲームを再構築するには、REAを使用します。 "
"Cでゲームプレイロジックを回復し、オリジナルに対してテストします。{ph3}{ph4}{ph5}"
#. {ph0}: <a href="showcase/dx-ball/">
#. {ph1}: </a>
#: website/public/index.html:1109
#, python-brace-format
msgctxt "page:index.html"
msgid "{ph0}See the DX-Ball case study →{ph1}"
msgstr "{ph0}DX-Ballのケーススタディを見る→{ph1}"
#: website/public/index.html:1114
msgctxt "page:index.html"
msgid "For setup and analysis steps, choose your target:"
msgstr "設定と分析の手順については、ターゲットを選択します:"
#: website/public/index.html:1119
msgctxt "page:index.html"
msgid "Native binaries"
msgstr "マシンコードプログラム"
#: website/public/index.html:1120
msgctxt "page:index.html"
msgid ""
"Inspect functions, strings, references and call relationships in executables"
" and libraries."
msgstr "実行可能ファイルおよびライブラリ内の関数、文字列、参照、および関数呼び出しの関係を検査します。"
#: website/public/index.html:1124
msgctxt "page:index.html"
msgid "Native analysis guide"
msgstr "機械コードの解析プログラムガイド"
#: website/public/index.html:1127
msgctxt "page:index.html"
msgid "JavaScript & Electron"
msgstr "JavaScript&Electron"
#: website/public/index.html:1128
msgctxt "page:index.html"
msgid ""
"Map modules, routes, IPC and native dependencies from an application folder "
"or ASAR archive."
msgstr "アプリケーションフォルダまたはASARアーカイブからモジュール、ルート、IPCおよびネイティブ依存関係をマップします。"
#: website/public/index.html:1132
msgctxt "page:index.html"
msgid "Application workflows"
msgstr "アプリケーションワークフロー"
#: website/public/index.html:1135
msgctxt "page:index.html"
msgid "Browser & runtime activity"
msgstr "ブラウザとランタイムアクティビティ"
#: website/public/index.html:1136
msgctxt "page:index.html"
msgid ""
"Capture selected browser or process activity, then compare the results "
"across runs."
msgstr "選択したブラウザまたはプロセスアクティビティをキャプチャし、実行間で結果を比較します。"
#: website/public/index.html:1140
msgctxt "page:index.html"
msgid "Browser observation guide"
msgstr "ブラウザ観察ガイド"
#: website/public/index.html:1147
msgctxt "page:index.html"
msgid "Any questions?"
msgstr "質問がありますか?"
#. {ph0}: <a href="faq/">
#. {ph1}: </a>
#. {ph2}: <a href="https://discord.gg/GkcryMnJDM">
#. {ph3}: </a>
#. {ph4}: <a href="https://github.com/morluto/rea/issues/new/choose" >
#. {ph5}: </a >
#: website/public/index.html:1148
#, python-brace-format
msgctxt "page:index.html"
msgid ""
"{ph0}Read the FAQ{ph1}, {ph2}chat with us on Discord{ph3}, or {ph4}open a "
"GitHub issue{ph5} for bugs and feature requests."
msgstr ""
"{ph0}よくある質問を読む{ph1}, {ph2}Discordで私たちとチャット {ph3}、または {ph4}GitHubの問題を開く{ph5} "
"バグや機能要求のために。"
#: website/public/index.html:1161 website/public/index.html:1167
msgctxt "page:index.html"
msgid "Join the community"
msgstr "コミュニティに参加"
#: website/public/index.html:1162
msgctxt "page:index.html"
msgid ""
"Share investigations and get help from other REA users on Discord. Follow "
"REA on X for project updates."
msgstr "調査を共有し、Discord上の他のREAユーザーからの助けを得る。 プロジェクトの更新については、X上のREAに従ってください。"
#: website/public/index.html:6
msgctxt "page:index.html"
msgid "REA — Reverse Engineering for Your Coding Agent"
msgstr "REA-コーディングエージェントのリバースエンジニアリング"
#: website/public/index.html:7
msgctxt "page:index.html"
msgid ""
"Reverse engineer apps, binaries and browser behavior with your coding agent."
" Follow clear guides and try interactive examples with REA."
msgstr ""
"コーディングエージェントを使用して、アプリ、バイナリ、ブラウザの動作をリバースエンジニアリングします。 "
"明確なガイドに従って、REAを使用してインタラクティブな例を試してください。"
#: website/public/index.html:260
msgctxt "page:index.html"
msgid "Copy REA installation prompt"
msgstr "コピー REAインストールプロンプト"
#: website/public/index.html:282
msgctxt "page:index.html"
msgid "Copy setup command"
msgstr "Copy setupコマンド"
#: website/public/index.html:334
msgctxt "page:index.html"
msgid "Follow the manual Calculator analysis"
msgstr "手動計算機の分析に従ってください"
#: website/public/index.html:497
msgctxt "page:index.html"
msgid "Copy Calculator percentage question"
msgstr "コピー電卓パーセントの質問"
#: website/public/index.html:604
msgctxt "page:index.html"
msgid ""
"Dinosaur mini-game. Use the Jump button or press Space while the game is "
"focused."
msgstr "恐竜ミニゲーム。 ゲームがフォーカスされている間にジャンプボタンを使用するか、スペースを押します。"
#: website/public/index.html:665
msgctxt "page:index.html"
msgid "Copy dinosaur analysis prompt"
msgstr "コピー恐竜解析プロンプト"
#: website/public/index.html:821
msgctxt "page:index.html"
msgid "Choose the calculation"
msgstr "計算を選択する"
#: website/public/index.html:901
msgctxt "page:index.html"
msgid "Copy Calculator analysis prompt"
msgstr "コピー電卓分析プロンプト"
#: website/public/index.html:1063
msgctxt "page:index.html"
msgid "Copy website project prompt"
msgstr "ウェブサイトプロジェクトプロンプトをコピーする"
#: website/public/index.html:1091
msgctxt "page:index.html"
msgid "Copy game reconstruction prompt"
msgstr "コピーゲーム再構築プロンプト"
#: website/public/index.html:1191
msgctxt "page:index.html"
msgid "Back to top"
msgstr "ページ上部へ"
#: website/public/showcase/aegis/index.html:104
msgctxt "page:showcase/aegis/index.html"
msgid "Skip to content"
msgstr "コンテンツにスキップ"
#. {ph0}: <a href="../../">
#. {ph1}: </a>
#. {ph2}: <a href="../">
#. {ph3}: </a>
#: website/public/showcase/aegis/index.html:195
#, python-brace-format
msgctxt "page:showcase/aegis/index.html"
msgid "{ph0}Home{ph1} / {ph2}Showcases{ph3} / Android"
msgstr "{ph0}ホーム{ph1} / {ph2}展示会のご案内{ph3} /アンドロイド"
#: website/public/showcase/aegis/index.html:198
msgctxt "page:showcase/aegis/index.html"
msgid "Case study · Aegis Authenticator"
msgstr "ケーススタディ·Aegis認証器"
#. {ph0}: <br />
#: website/public/showcase/aegis/index.html:199
#, python-brace-format
msgctxt "page:showcase/aegis/index.html"
msgid "How does an authenticator{ph0}generate a login code?"
msgstr "オーセンティケータはどのようにしていますか{ph0}ログインコードを生成しますか?"
#: website/public/showcase/aegis/index.html:200
msgctxt "page:showcase/aegis/index.html"
msgid ""
"A six-digit code changes every 30 seconds. Use REA to find the calculation "
"in an Android APK, then rebuild it with a clock you can control."
msgstr "6桁のコードは30秒ごとに変更されます。 REAを使用してAndroid APKで計算を見つけ、制御できる時計で再構築します。"
#: website/public/showcase/aegis/index.html:205
msgctxt "page:showcase/aegis/index.html"
msgid "Aegis 3.4.3 · Android · Official release APK · 6.9 MB"
msgstr "Aegis3.4.3·アンドロイド·公式リリースAPK*6.9MB"
#: website/public/showcase/aegis/index.html:208
msgctxt "page:showcase/aegis/index.html"
msgid "View Aegis on GitHub"
msgstr "AegisをGitHubに表示する"
#: website/public/showcase/aegis/index.html:214
msgctxt "page:showcase/aegis/index.html"
msgid "From an APK to a code you can reproduce"
msgstr "APKから再現できるコードへ"
#. {ph0}: <span class="flow-label">
#. {ph1}: </span >
#. {ph2}: <strong class="flow-node" >
#. {ph3}: </strong >
#. {ph4}: <span class="flow-note" >
#. {ph5}: </span >
#: website/public/showcase/aegis/index.html:216
#, python-brace-format
msgctxt "page:showcase/aegis/index.html"
msgid ""
"{ph0}01 · Locate the feature{ph1}{ph2}3,077 classes → generating "
"methods{ph3}{ph4}REA searches the package and traces the code used by the "
"display and copy actions.{ph5}"
msgstr ""
"{ph0}01*機能を見つける{ph1}{ph2}3,077クラス→生成メソッド{ph3}{ph4} "
"REAはパッケージを検索し、表示アクションとコピーアクションで使用されるコードをトレースします。{ph5}"
#. {ph0}: <span class="flow-label">
#. {ph1}: </span >
#. {ph2}: <strong class="flow-node">
#. {ph3}: </strong >
#. {ph4}: <span class="flow-note" >
#. {ph5}: </span >
#: website/public/showcase/aegis/index.html:225
#, python-brace-format
msgctxt "page:showcase/aegis/index.html"
msgid ""
"{ph0}02 · Read the calculation{ph1}{ph2}Time + account key → six "
"digits{ph3}{ph4}REA returns the methods and defaults. The agent explains how"
" they fit together.{ph5}"
msgstr ""
"{ph0}02*計算を読む{ph1}{ph2}時間+アカウントキー→6桁{ph3}{ph4} REAは、メソッドとデフォルトを返します。 "
"エージェントは、それらがどのように一緒に収まるかを説明します。{ph5}"
#. {ph0}: <span class="flow-label">
#. {ph1}: </span >
#. {ph2}: <strong class="flow-node">
#. {ph3}: </strong >
#. {ph4}: <span class="flow-note" >
#. {ph5}: </span >
#: website/public/showcase/aegis/index.html:233
#, python-brace-format
msgctxt "page:showcase/aegis/index.html"
msgid ""
"{ph0}03 · Rebuild and check{ph1}{ph2}Change the clock. Watch the "
"code.{ph3}{ph4}A new browser demo reproduces the rule and checks it against "
"public reference cases.{ph5}"
msgstr ""
"{ph0}03*再構築とチェック{ph1}{ph2}クロックを変更します。 "
"コードを見てください。{ph3}{ph4}新しいブラウザのデモでは、ルールを再現し、公開されている参照ケースと照合します。{ph5}"
#: website/public/showcase/aegis/index.html:246
msgctxt "page:showcase/aegis/index.html"
msgid "In this case study"
msgstr "このケーススタディでは"
#. {ph0}: <a href="#ask">
#. {ph1}: </a>
#: website/public/showcase/aegis/index.html:248
#, python-brace-format
msgctxt "page:showcase/aegis/index.html"
msgid "{ph0}Ask your agent{ph1}"
msgstr "{ph0}あなたの代理店に尋ねる{ph1}"
#. {ph0}: <a href="#demo">
#. {ph1}: </a>
#: website/public/showcase/aegis/index.html:249
#, python-brace-format
msgctxt "page:showcase/aegis/index.html"
msgid "{ph0}Try the code generator{ph1}"
msgstr "{ph0}コードジェネレータを試してみてください{ph1}"
#. {ph0}: <a href="#find">
#. {ph1}: </a>
#: website/public/showcase/aegis/index.html:250
#, python-brace-format
msgctxt "page:showcase/aegis/index.html"
msgid "{ph0}Find the code with REA{ph1}"
msgstr "{ph0}REAでコードを見つける {ph1}"
#. {ph0}: <a href="#calculation">
#. {ph1}: </a>
#: website/public/showcase/aegis/index.html:251
#, python-brace-format
msgctxt "page:showcase/aegis/index.html"
msgid "{ph0}Read the calculation{ph1}"
msgstr "{ph0}計算を読む{ph1}"
#. {ph0}: <a href="#verify">
#. {ph1}: </a>
#: website/public/showcase/aegis/index.html:252
#, python-brace-format
msgctxt "page:showcase/aegis/index.html"
msgid "{ph0}Check the reconstruction{ph1}"
msgstr "{ph0}再構築を確認する{ph1}"
#. {ph0}: <a href="#try">
#. {ph1}: </a>
#: website/public/showcase/aegis/index.html:253
#, python-brace-format
msgctxt "page:showcase/aegis/index.html"
msgid "{ph0}Inspect the APK yourself{ph1}"
msgstr "{ph0}APKを自分で調べてください{ph1}"
#: website/public/showcase/aegis/index.html:258
msgctxt "page:showcase/aegis/index.html"
msgid "Ask your agent"
msgstr "あなたの代理店に尋ねる"
#. {ph0}: <strong>
#. {ph1}: </strong>
#: website/public/showcase/aegis/index.html:259
#, python-brace-format
msgctxt "page:showcase/aegis/index.html"
msgid ""
"The app shows a changing login code. We want to find {ph0}what makes it "
"change{ph1} and reproduce that behavior."
msgstr ""
"アプリは変更されたログインコードを示しています。 私たちは見つけたい {ph0}何がそれを変えるのですか{ph1} そしてその行動を再現します。"
#. {ph0}: <span class="terminal-dots" aria-hidden="true" >
#. {ph1}: <i>
#. {ph2}: </i>
#. {ph3}: <i>
#. {ph4}: </i>
#. {ph5}: <i>
#. {ph6}: </i>
#. {ph7}: </span >
#: website/public/showcase/aegis/index.html:265
#, python-brace-format
msgctxt "page:showcase/aegis/index.html"
msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent"
msgstr "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}あなたのコーディングエージェント"
#: website/public/showcase/aegis/index.html:269
#: website/public/showcase/aegis/index.html:732
msgctxt "page:showcase/aegis/index.html"
msgid "Copy"
msgstr "コピー"
#. {ph0}: <a href="#try">
#. {ph1}: </a>
#: website/public/showcase/aegis/index.html:289
#, python-brace-format
msgctxt "page:showcase/aegis/index.html"
msgid ""
"An example prompt for the downloaded APK, with REA's Android analysis "
"configured. {ph0}Get the APK and analysis setup ↓{ph1}"
msgstr ""
"ダウンロードしたAPKのプロンプトの例で、REAのAndroid分析が構成されています。 {ph0}APKと解析セットアップを入手↓{ph1}"
#: website/public/showcase/aegis/index.html:297
msgctxt "page:showcase/aegis/index.html"
msgid "Try the code generator"
msgstr "コードジェネレータを試してみてください"
#. {ph0}: <mark class="prose-highlight">
#. {ph1}: </mark>
#: website/public/showcase/aegis/index.html:298
#, python-brace-format
msgctxt "page:showcase/aegis/index.html"
msgid ""
"The app groups time into {ph0}30-second blocks.{ph1} It combines the block "
"number with the account key to generate a code. The same key and block "
"produce the same code."
msgstr ""
"アプリは時間を次のようにグループ化します {ph0}30秒のブロック。{ph1} ブロック番号とアカウントキーを組み合わせてコードを生成します。 "
"同じキーとブロックは同じコードを生成します。"
#: website/public/showcase/aegis/index.html:305
msgctxt "page:showcase/aegis/index.html"
msgid "Move the clock across 60 seconds"
msgstr "時計を60秒に移動する"
#: website/public/showcase/aegis/index.html:308
msgctxt "page:showcase/aegis/index.html"
msgid "Time"
msgstr "時間"
#: website/public/showcase/aegis/index.html:310
msgctxt "page:showcase/aegis/index.html"
msgid "seconds"
msgstr "秒"
#: website/public/showcase/aegis/index.html:311
msgctxt "page:showcase/aegis/index.html"
msgid "Our adjustable example clock"
msgstr "私達の調節可能な例の時計"
#: website/public/showcase/aegis/index.html:314
msgctxt "page:showcase/aegis/index.html"
msgid "30-second block"
msgstr "30秒ブロック"
#: website/public/showcase/aegis/index.html:316
#: website/public/showcase/aegis/index.html:643
msgctxt "page:showcase/aegis/index.html"
msgid "Block"
msgstr "ブロック"
#. {ph0}: <code data-aegis-division>floor(59 / 30)</code>
#. {ph1}: <br />
#. {ph2}: <span data-aegis-window >
#. {ph3}: </span >
#: website/public/showcase/aegis/index.html:317
#, python-brace-format
msgctxt "page:showcase/aegis/index.html"
msgid "{ph0}{ph1}{ph2}30–59 seconds{ph3}"
msgstr "{ph0}{ph1}{ph2}30-59秒{ph3}"
#: website/public/showcase/aegis/index.html:325
msgctxt "page:showcase/aegis/index.html"
msgid "Generated code"
msgstr "生成されたコード"
#: website/public/showcase/aegis/index.html:333
msgctxt "page:showcase/aegis/index.html"
msgid "Account key + block → six digits"
msgstr "アカウントキー+ブロック→6桁"
#: website/public/showcase/aegis/index.html:339
msgctxt "page:showcase/aegis/index.html"
msgid "Example time, in seconds"
msgstr "時間の例(秒単位)"
#: website/public/showcase/aegis/index.html:354
#: website/public/showcase/aegis/index.html:654
msgctxt "page:showcase/aegis/index.html"
msgid "59 seconds"
msgstr "59秒"
#: website/public/showcase/aegis/index.html:361
#: website/public/showcase/aegis/index.html:659
msgctxt "page:showcase/aegis/index.html"
msgid "60 seconds"
msgstr "60秒"
#. {ph0}: <strong>
#. {ph1}: </strong>
#. {ph2}: <strong>
#. {ph3}: </strong>
#: website/public/showcase/aegis/index.html:370
#, python-brace-format
msgctxt "page:showcase/aegis/index.html"
msgid ""
"At 59 seconds: {ph0}287082.{ph1} At 60 seconds: {ph2}359152.{ph3} Moving "
"within one block leaves the code unchanged."
msgstr ""
"時59秒): {ph0}287082.{ph1} 60秒で: {ph2}359152.{ph3} 1つのブロック内を移動すると、コードは変更されません。"
#. {ph0}: <a href="https://www.rfc-editor.org/rfc/rfc6238.html#appendix-B" >
#. {ph1}: </a >
#: website/public/showcase/aegis/index.html:377
#, python-brace-format
msgctxt "page:showcase/aegis/index.html"
msgid ""
"The key is fixed, public {ph0}RFC 6238 test data{ph1}. The demo implements "
"the calculation recovered from the APK."
msgstr ""
"キーは固定されており、公開されています {ph0}RFC6238テストデータ{ph1}. このデモでは、APKから回収された計算を実装しています。"
#: website/public/showcase/aegis/index.html:384
msgctxt "page:showcase/aegis/index.html"
msgid ""
"The diagram shows the result at 59 seconds. Enable JavaScript to change the "
"clock."
msgstr "この図は、59秒での結果を示しています。 クロックを変更するには、JavaScriptを有効にします。"
#: website/public/showcase/aegis/index.html:393
msgctxt "page:showcase/aegis/index.html"
msgid "Find the code with REA"
msgstr "REAでコードを見つける"
#: website/public/showcase/aegis/index.html:396
msgctxt "page:showcase/aegis/index.html"
msgid "Narrow the APK to three classes"
msgstr "APKを3つのクラスに絞り込みます"
#. {ph0}: <code>TotpInfo</code>
#: website/public/showcase/aegis/index.html:421
#, python-brace-format
msgctxt "page:showcase/aegis/index.html"
msgid ""
"{ph0} is the calculation candidate; the other two concern the progress bar "
"and imported accounts. TOTP means a time-based one-time password."
msgstr ""
"{ph0} 他の2つは、プログレスバーとインポートされたアカウントに関するものです。 TOTPは、時間ベースのワンタイムパスワードを意味します。"
#: website/public/showcase/aegis/index.html:428
msgctxt "page:showcase/aegis/index.html"
msgid "Connect the generator to the app's display"
msgstr "ジェネレータをアプリのディスプレイに接続します"
#. {ph0}: <code>EntryHolder.getOtp</code>
#. {ph1}: <code>TotpInfo.getOtp(timestamp)</code>
#: website/public/showcase/aegis/index.html:456
#, python-brace-format
msgctxt "page:showcase/aegis/index.html"
msgid ""
"REA identifies the timestamp overload and finds the base method's callers. "
"Inspecting {ph0} then shows the display calling {ph1}."
msgstr ""
"REAはタイムスタンプオーバーロードを識別し、基本メソッドの呼び出し元を検索します。 検査 {ph0} 次に、表示呼び出しを表示します {ph1}."
#. {ph0}: <code>com.beemdevelopment.aegis</code>
#: website/public/showcase/aegis/index.html:464
#, python-brace-format
msgctxt "page:showcase/aegis/index.html"
msgid ""
"Requests show a shortened input path. Result class names omit the common "
"{ph0} prefix."
msgstr "要求には、入力パスが短縮されて表示されます。 結果クラス名は共通を省略します {ph0} プレフィクス..."
#: website/public/showcase/aegis/index.html:471
msgctxt "page:showcase/aegis/index.html"
msgid "Read the calculation"
msgstr "計算を読む"
#. {ph0}: <strong >
#. {ph1}: </strong >
#: website/public/showcase/aegis/index.html:472
#, python-brace-format
msgctxt "page:showcase/aegis/index.html"
msgid ""
"REA returns {ph0}the clock conversion, default settings and generating "
"methods.{ph1} The constructors set a 30-second interval and six digits; the "
"timestamp method turns seconds into a block number."
msgstr ""
"REAを返します {ph0}クロック変換、デフォルト設定、および生成方法。{ph1} "
"コンストラクターは30秒の間隔と6桁を設定します。timestampメソッドは秒をブロック番号に変換します。"
#. {ph0}: <span>
#. {ph1}: </span>
#: website/public/showcase/aegis/index.html:487
#, python-brace-format
msgctxt "page:showcase/aegis/index.html"
msgid "{ph0}01{ph1} Time block"
msgstr "{ph0}01{ph1} タイムブロック"
#. {ph0}: <span>
#. {ph1}: </span>
#: website/public/showcase/aegis/index.html:495
#, python-brace-format
msgctxt "page:showcase/aegis/index.html"
msgid "{ph0}02{ph1} Key + block"
msgstr "{ph0}02{ph1} キー+ブロック"
#. {ph0}: <span>
#. {ph1}: </span>
#: website/public/showcase/aegis/index.html:503
#, python-brace-format
msgctxt "page:showcase/aegis/index.html"
msgid "{ph0}03{ph1} Six digits"
msgstr "{ph0}03{ph1} 六桁"
#. {ph0}: <strong>
#. {ph1}: </strong>
#: website/public/showcase/aegis/index.html:562
#, python-brace-format
msgctxt "page:showcase/aegis/index.html"
msgid ""
"{ph0}Time chooses the block.{ph1} Seconds 30 through 59 all give block 1. At"
" 60 seconds, the block becomes 2."
msgstr "{ph0}時間はブロックを選択します。{ph1} 秒30から59までのすべてのブロックを与えます1. 60秒で、ブロックは2になります。"
#. {ph0}: <strong>
#. {ph1}: </strong>
#: website/public/showcase/aegis/index.html:568
#, python-brace-format
msgctxt "page:showcase/aegis/index.html"
msgid ""
"{ph0}The key matters too.{ph1} The generator combines the account key with "
"the block. An account with a different key can show a different code at the "
"same time."
msgstr ""
"{ph0}重要なことも重要です。{ph1} ジェネレータは、アカウントキーとブロックを組み合わせます。 "
"別のキーを持つアカウントは、同時に別のコードを表示できます。"
#. {ph0}: <strong>
#. {ph1}: </strong>
#: website/public/showcase/aegis/index.html:575
#, python-brace-format
msgctxt "page:showcase/aegis/index.html"
msgid ""
"{ph0}Keep six digits.{ph1} The remainder after division by 1,000,000 is "
"padded with zeroes when needed, so a code can begin with 0."
msgstr ""
"{ph0}六桁を維持します。{ph1} "
"1,000,000で除算した後の残りの部分は、必要に応じてゼロで埋められるため、コードは0で始めることができます。"
#. {ph0}: <a
#. href="https://github.com/beemdevelopment/Aegis/blob/d6f4e5925a97e4e91593f1542085eae03432a759/LICENSE"
#. >
#. {ph1}: </a >
#: website/public/showcase/aegis/index.html:582
#, python-brace-format
msgctxt "page:showcase/aegis/index.html"
msgid ""
"Excerpts from several inspected methods, with line wrapping for display. The"
" right panel is an explanatory summary. {ph0}Aegis code is GPL-3.0.{ph1}"
msgstr ""
"いくつかの検査方法からの抜粋、表示のためのラインラッピング。 右のパネルは説明的な要約です。 {ph0} "
"AegisコードはGPL-3.0です。{ph1}"
#: website/public/showcase/aegis/index.html:591
msgctxt "page:showcase/aegis/index.html"
msgid "Inside the generator"
msgstr "発電機の中"
#. {ph0}: <code>generateOTP</code>
#. {ph1}: <code>kotlin.ExceptionsKt</code>
#. {ph2}: <code>TotpInfo</code>
#. {ph3}: <code>HOTP</code>
#: website/public/showcase/aegis/index.html:592
#, python-brace-format
msgctxt "page:showcase/aegis/index.html"
msgid ""
"The released APK puts {ph0} in {ph1}. REA follows the call from {ph2} and "
"returns this body; the original source calls the helper {ph3}."
msgstr ""
"リリースされたAPKは {ph0} で {ph1}. REAはからの呼び出しに従います {ph2} 元のソースはヘルパーを呼び出します {ph3}."
#: website/public/showcase/aegis/index.html:614
msgctxt "page:showcase/aegis/index.html"
msgid ""
"The last hash byte selects a position. Four bytes at that position provide a"
" positive 31-bit number; formatting reduces it to the requested number of "
"digits. The constructor's last argument selects the code-formatting branch "
"introduced by compilation."
msgstr ""
"最後のハッシュバイトが位置を選択します。 その位置にある4バイトは、正の31ビット数を提供します。フォーマットすると、要求された桁数に減少します。 "
"コンストラクタの最後の引数は、コンパイルによって導入されたコード書式分岐を選択します。"
#. {ph0}: <a
#. href="https://github.com/beemdevelopment/Aegis/blob/d6f4e5925a97e4e91593f1542085eae03432a759/app/src/main/java/com/beemdevelopment/aegis/crypto/otp/HOTP.java"
#. >
#. {ph1}: </a >
#: website/public/showcase/aegis/index.html:621
#, python-brace-format
msgctxt "page:showcase/aegis/index.html"
msgid "{ph0}Compare with the matching release source{ph1}."
msgstr "{ph0}一致するリリースソースとの比較{ph1}."
#: website/public/showcase/aegis/index.html:631
msgctxt "page:showcase/aegis/index.html"
msgid "Check the reconstruction"
msgstr "再構築を確認する"
#. {ph0}: <strong>
#. {ph1}: </strong>
#: website/public/showcase/aegis/index.html:632
#, python-brace-format
msgctxt "page:showcase/aegis/index.html"
msgid ""
"We assembled the selected REA-returned Java methods in a small test program."
" Their output matched an independent reconstruction on {ph0}133 test "
"cases{ph1}, including time-block boundaries and codes beginning with zero."
msgstr ""
"選択したREA-返されたJavaメソッドを小さなテストプログラムで組み立てました。 彼らの出力は、上の独立した再構成に一致しました "
"{ph0}133件のテストケース{ph1}、タイムブロック境界とゼロで始まるコードを含みます。"
#: website/public/showcase/aegis/index.html:642
msgctxt "page:showcase/aegis/index.html"
msgid "Example time"
msgstr "時間例"
#: website/public/showcase/aegis/index.html:644
msgctxt "page:showcase/aegis/index.html"
msgid "Six-digit code"
msgstr "6桁のコード"
#: website/public/showcase/aegis/index.html:649
msgctxt "page:showcase/aegis/index.html"
msgid "30 seconds"
msgstr "30秒"
#: website/public/showcase/aegis/index.html:664
msgctxt "page:showcase/aegis/index.html"
msgid "1,111,111,109 seconds"
msgstr "1,111,111,109秒"
#. {ph0}: <a href="https://www.rfc-editor.org/rfc/rfc6238.html#appendix-B" >
#. {ph1}: </a >
#: website/public/showcase/aegis/index.html:671
#, python-brace-format
msgctxt "page:showcase/aegis/index.html"
msgid ""
"The generator also matches the six published SHA-1 reference cases in "
"{ph0}RFC 6238{ph1}. Check the browser implementation against them:"
msgstr ""
"ジェネレータは、公開されている六つのSHA-1リファレンスケースにも一致します {ph0}6238{ph1}. "
"それらに対するブラウザの実装を確認してください:"
#: website/public/showcase/aegis/index.html:679
msgctxt "page:showcase/aegis/index.html"
msgid "Run reference checks"
msgstr "参照チェックの実行"
#: website/public/showcase/aegis/index.html:686
msgctxt "page:showcase/aegis/index.html"
msgid "Read the demo's calculation"
msgstr "デモの計算を読む"
#: website/public/showcase/aegis/index.html:690
msgctxt "page:showcase/aegis/index.html"
msgid ""
"The reference cases use eight digits. The check also verifies their six-"
"digit results."
msgstr "参照ケースは8桁を使用します。 このチェックでは、6桁の結果も確認されます。"
#: website/public/showcase/aegis/index.html:699
msgctxt "page:showcase/aegis/index.html"
msgid ""
"Verification runs extracted Java methods and the new demo. The Android APK "
"was inspected statically."
msgstr "検証は、抽出されたJavaメソッドと新しいデモを実行します。 Android APKは静的に検査されました。"
#: website/public/showcase/aegis/index.html:706
msgctxt "page:showcase/aegis/index.html"
msgid "Inspect the APK yourself"
msgstr "APKを自分で調べてください"
#. {ph0}: <a href="../../get-started/">
#. {ph1}: </a>
#: website/public/showcase/aegis/index.html:707
#, python-brace-format
msgctxt "page:showcase/aegis/index.html"
msgid ""
"{ph0}Set up REA{ph1} on macOS or Linux, then download these two files into "
"the same folder. On Windows, use a Linux environment such as WSL."
msgstr ""
"{ph0}REAのセットアップ {ph1} macOSまたはLinuxで、これら2つのファイルを同じフォルダーにダウンロードします。 "
"Windowsでは、WSLなどのLinux環境を使用します。"
#. {ph0}: <code>JAVA_HOME</code>
#. {ph1}: <code>PATH</code>
#: website/public/showcase/aegis/index.html:712
#, python-brace-format
msgctxt "page:showcase/aegis/index.html"
msgid ""
"Android analysis needs a full JDK 17 or later. Select it with {ph0} or "
"{ph1}. This case used JDK 21."
msgstr ""
"Android analysisには完全なJDK17以降が必要です。 で選択します。 {ph0} または {ph1}. "
"このケースはJDK21を使用していました。"
#: website/public/showcase/aegis/index.html:728
msgctxt "page:showcase/aegis/index.html"
msgid "Point REA at the provider file and inspect the APK:"
msgstr "プロバイダーファイルでREAをポイントし、APKを検査します :"
#: website/public/showcase/aegis/index.html:731
msgctxt "page:showcase/aegis/index.html"
msgid "macOS / Linux"
msgstr "macOS/Linux"
#. {ph0}: <code>REA_JADX_MCP_JAR</code>
#: website/public/showcase/aegis/index.html:745
#, python-brace-format
msgctxt "page:showcase/aegis/index.html"
msgid ""
"Your agent can continue through REA's CLI using the prompt above. For MCP, "
"add {ph0} to the REA server's environment and reconnect it."
msgstr ""
"エージェントは、上記のプロンプトを使用してREAのCLIを続行できます。 MCPのために、加えて下さい {ph0} "
"REAサーバーの環境に接続し、再接続します。"
#. {ph0}: <strong >
#. {ph1}: </strong >
#: website/public/showcase/aegis/index.html:750
#, python-brace-format
msgctxt "page:showcase/aegis/index.html"
msgid ""
"A next question: {ph0}what happens when an account uses eight digits or a "
"different time interval?{ph1}"
msgstr "次の質問: {ph0}アカウントが8桁または異なる時間間隔を使用するとどうなりますか?{ph1}"
#: website/public/showcase/aegis/index.html:760
msgctxt "page:showcase/aegis/index.html"
msgid "Sources"
msgstr "ソース"
#. {ph0}: <a
#. href="https://github.com/beemdevelopment/Aegis/releases/tag/v3.4.3" >
#. {ph1}: </a >
#. {ph2}: <a
#. href="https://github.com/beemdevelopment/Aegis/tree/d6f4e5925a97e4e91593f1542085eae03432a759"
#. >
#. {ph3}: </a >
#. {ph4}: <a
#. href="https://github.com/beemdevelopment/Aegis/blob/d6f4e5925a97e4e91593f1542085eae03432a759/LICENSE"
#. >
#. {ph5}: </a >
#: website/public/showcase/aegis/index.html:762
#, python-brace-format
msgctxt "page:showcase/aegis/index.html"
msgid ""
"{ph0}Official Aegis 3.4.3 release{ph1} · {ph2}Matching source commit{ph3} · "
"{ph4}GPL-3.0 license{ph5}"
msgstr ""
"{ph0}公式Aegis3.4.3リリース{ph1} · {ph2}ソースコミットの一致{ph3} · {ph4}GPL-3.0ライセンス{ph5}"
#. {ph0}: <a href="https://www.rfc-editor.org/rfc/rfc6238.html#appendix-B" >
#. {ph1}: </a >
#. {ph2}: <a href="test-vectors.json">
#. {ph3}: </a>
#: website/public/showcase/aegis/index.html:778
#, python-brace-format
msgctxt "page:showcase/aegis/index.html"
msgid "{ph0}RFC 6238 reference cases{ph1} · {ph2}Demo test data{ph3}"
msgstr "{ph0}RFC6238参照ケース{ph1} · {ph2}デモテストデータ{ph3}"
#: website/public/showcase/aegis/index.html:785
msgctxt "page:showcase/aegis/index.html"
msgid ""
"Inspected with REA 6.1.0 on 9 October 2026. Decompiled excerpts are credited"
" to Aegis; the diagram, readable summary and browser reconstruction are new "
"teaching material."
msgstr ""
"2026年10月9日にREA6.1.0で検査されました。 "
"逆コンパイルされた抜粋はAegisにクレジットされています;図,読みやすい要約とブラウザの再構成は、新しい教材です."
#: website/public/showcase/aegis/index.html:6
msgctxt "page:showcase/aegis/index.html"
msgid "Aegis APK Reverse Engineering: Login Codes — REA"
msgstr "Aegis APKリバースエンジニアリング:ログインコード-REA"
#: website/public/showcase/aegis/index.html:7
msgctxt "page:showcase/aegis/index.html"
msgid ""
"Inspect the Aegis Android APK with REA, recover its six-digit login-code "
"calculation and try a reconstruction with an adjustable clock."
msgstr "Aegis Android APKをREAで検査し、その六桁のログインコード計算を回復し、調整可能なクロックで再構築を試してください。"
#: website/public/showcase/aegis/index.html:245
msgctxt "page:showcase/aegis/index.html"
msgid "On this page"
msgstr "このページでは"
#: website/public/showcase/aegis/index.html:256
msgctxt "page:showcase/aegis/index.html"
msgid "Aegis APK case study"
msgstr "Aegis APKケーススタディ"
#: website/public/showcase/aegis/index.html:269
msgctxt "page:showcase/aegis/index.html"
msgid "Copy Aegis example prompt"
msgstr "コピー Aegisプロンプトの例"
#: website/public/showcase/aegis/index.html:482
msgctxt "page:showcase/aegis/index.html"
msgid "Follow the login-code calculation"
msgstr "ログインコードの計算に従ってください"
#: website/public/showcase/aegis/index.html:732
msgctxt "page:showcase/aegis/index.html"
msgid "Copy APK inspection command"
msgstr "コピー APK検査コマンド"
#: website/public/showcase/aegis/index.html:808
msgctxt "page:showcase/aegis/index.html"
msgid "Back to top"
msgstr "ページ上部へ"
#: website/public/showcase/ctf/index.html:103
msgctxt "page:showcase/ctf/index.html"
msgid "Skip to content"
msgstr "コンテンツにスキップ"
#. {ph0}: <a href="../../">
#. {ph1}: </a>
#. {ph2}: <a href="../">
#. {ph3}: </a>
#: website/public/showcase/ctf/index.html:194
#, python-brace-format
msgctxt "page:showcase/ctf/index.html"
msgid "{ph0}Home{ph1} / {ph2}Showcases{ph3} / CTF"
msgstr "{ph0}ホーム{ph1} / {ph2}展示会のご案内{ph3} /CTF"
#: website/public/showcase/ctf/index.html:197
msgctxt "page:showcase/ctf/index.html"
msgid "Case study · DownUnderCTF 2023"
msgstr "ケーススタディ·DownUnderCTF2023"
#. {ph0}: <br />
#: website/public/showcase/ctf/index.html:198
#, python-brace-format
msgctxt "page:showcase/ctf/index.html"
msgid "Find the flag in{ph0}a CTF binary."
msgstr "で旗を見つける{ph0}CTFバイナリ。"
#. {ph0}: <code>Correct!</code>
#: website/public/showcase/ctf/index.html:199
#, python-brace-format
msgctxt "page:showcase/ctf/index.html"
msgid ""
"Use REA to inspect a small flag checker, turn its rules into equations and "
"find an input that makes the original program print {ph0}."
msgstr "REAを使用して、小さなフラグチェッカーを検査し、そのルールを方程式に変換し、元のプログラムを印刷する入力を見つけます {ph0}."
#: website/public/showcase/ctf/index.html:204
msgctxt "page:showcase/ctf/index.html"
msgid "masked squares flag checker · Easy · Linux x86-64"
msgstr "マスクされた正方形の旗チェッカー*簡単·Linux x86-64"
#: website/public/showcase/ctf/index.html:207
msgctxt "page:showcase/ctf/index.html"
msgid "View the original challenge"
msgstr "オリジナルのチャレンジを見る"
#: website/public/showcase/ctf/index.html:215
msgctxt "page:showcase/ctf/index.html"
msgid "From a binary to a checked answer"
msgstr "バイナリからチェックされた答えへ"
#. {ph0}: <span class="flow-label">
#. {ph1}: </span >
#. {ph2}: <strong class="flow-node">
#. {ph3}: </strong >
#. {ph4}: <span class="flow-note" >
#. {ph5}: </span >
#: website/public/showcase/ctf/index.html:217
#, python-brace-format
msgctxt "page:showcase/ctf/index.html"
msgid ""
"{ph0}01 · Find the check{ph1}{ph2}Strings → checking functions{ph3}{ph4}REA "
"finds the prompt, its references and the code that accepts or rejects an "
"input.{ph5}"
msgstr ""
"{ph0}01*チェックを見つける{ph1}{ph2}文字列→関数のチェック{ph3}{ph4} "
"REAは、プロンプト、その参照、および入力を受け入れるか拒否するコードを検索します。{ph5}"
#. {ph0}: <span class="flow-label">
#. {ph1}: </span >
#. {ph2}: <strong class="flow-node">
#. {ph3}: </strong >
#. {ph4}: <span class="flow-note" >
#. {ph5}: </span >
#: website/public/showcase/ctf/index.html:225
#, python-brace-format
msgctxt "page:showcase/ctf/index.html"
msgid ""
"{ph0}02 · Extract the rules{ph1}{ph2}36 characters · 26 sums{ph3}{ph4}REA "
"returns the instructions and data behind each check. The agent turns them "
"into equations.{ph5}"
msgstr ""
"{ph0}02*ルールを抽出する{ph1}{ph2}36文字·26和{ph3}{ph4} REAは、各チェックの背後にある命令とデータを返します。 "
"エージェントはそれらを方程式に変えます。{ph5}"
#. {ph0}: <span class="flow-label">
#. {ph1}: </span >
#. {ph2}: <strong class="flow-node">
#. {ph3}: </strong >
#. {ph4}: <span class="flow-note" >
#. {ph5}: </span >
#: website/public/showcase/ctf/index.html:233
#, python-brace-format
msgctxt "page:showcase/ctf/index.html"
msgid ""
"{ph0}03 · Solve and run{ph1}{ph2}Recovered flag → Correct!{ph3}{ph4}A Python"
" script solves the equations. REA captures the original program accepting "
"the result.{ph5}"
msgstr ""
"{ph0}03*解決して実行する{ph1}{ph2}回収フラグ→正解!{ph3}{ph4}Pythonスクリプトは方程式を解きます。 "
"REAは、結果を受け入れる元のプログラムをキャプチャします。{ph5}"
#: website/public/showcase/ctf/index.html:242
msgctxt "page:showcase/ctf/index.html"
msgid ""
"The challenge is by joseph, published in DownUnderCTF's official repository."
msgstr "課題はjosephによるもので、DownUnderCTFの公式リポジトリに掲載されています。"
#: website/public/showcase/ctf/index.html:250
msgctxt "page:showcase/ctf/index.html"
msgid "In this case study"
msgstr "このケーススタディでは"
#. {ph0}: <a href="#find">
#. {ph1}: </a>
#: website/public/showcase/ctf/index.html:252
#, python-brace-format
msgctxt "page:showcase/ctf/index.html"
msgid "{ph0}Find the checking code{ph1}"
msgstr "{ph0}チェックコードを見つける{ph1}"
#. {ph0}: <a href="#mask">
#. {ph1}: </a>
#: website/public/showcase/ctf/index.html:253
#, python-brace-format
msgctxt "page:showcase/ctf/index.html"
msgid "{ph0}Read one mask{ph1}"
msgstr "{ph0}1つのマスクを読む{ph1}"
#. {ph0}: <a href="#code">
#. {ph1}: </a>
#: website/public/showcase/ctf/index.html:254
#, python-brace-format
msgctxt "page:showcase/ctf/index.html"
msgid "{ph0}Assembly to readable code{ph1}"
msgstr "{ph0}読み取り可能なコードへのアセンブリ{ph1}"
#. {ph0}: <a href="#solve">
#. {ph1}: </a>
#: website/public/showcase/ctf/index.html:255
#, python-brace-format
msgctxt "page:showcase/ctf/index.html"
msgid "{ph0}Solve the equations{ph1}"
msgstr "{ph0}方程式を解く{ph1}"
#. {ph0}: <a href="#verify">
#. {ph1}: </a>
#: website/public/showcase/ctf/index.html:256
#, python-brace-format
msgctxt "page:showcase/ctf/index.html"
msgid "{ph0}Check the answer{ph1}"
msgstr "{ph0}答えを確認してください{ph1}"
#. {ph0}: <a href="#try">
#. {ph1}: </a>
#: website/public/showcase/ctf/index.html:257
#, python-brace-format
msgctxt "page:showcase/ctf/index.html"
msgid "{ph0}Try it yourself{ph1}"
msgstr "{ph0}自分で試してみてください{ph1}"
#: website/public/showcase/ctf/index.html:262
msgctxt "page:showcase/ctf/index.html"
msgid "Find the checking code"
msgstr "チェックコードを見つける"
#. {ph0}: <code>Correct!</code>
#. {ph1}: <code>Incorrect!</code>
#: website/public/showcase/ctf/index.html:263
#, python-brace-format
msgctxt "page:showcase/ctf/index.html"
msgid ""
"The handout is a 15 KB executable. It asks for a flag, then prints {ph0} or "
"{ph1}. Start with a simple request to your agent."
msgstr ""
"配布資料は15KBの実行可能ファイルです。 それはフラグを要求し、次に印刷します {ph0} または {ph1}. "
"あなたの代理店への簡単な要求から始めなさい。"
#. {ph0}: <span class="terminal-dots" aria-hidden="true" >
#. {ph1}: <i>
#. {ph2}: </i>
#. {ph3}: <i>
#. {ph4}: </i>
#. {ph5}: <i>
#. {ph6}: </i>
#. {ph7}: </span >
#: website/public/showcase/ctf/index.html:270
#, python-brace-format
msgctxt "page:showcase/ctf/index.html"
msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent"
msgstr "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}あなたのコーディングエージェント"
#: website/public/showcase/ctf/index.html:275
#: website/public/showcase/ctf/index.html:494
#: website/public/showcase/ctf/index.html:518
#: website/public/showcase/ctf/index.html:588
#: website/public/showcase/ctf/index.html:735
msgctxt "page:showcase/ctf/index.html"
msgid "Copy"
msgstr "コピー"
#. {ph0}: <span class="prompt-symbol" aria-hidden="true">
#. {ph1}: </span >
#. {ph2}: <span id="ctf-prompt" >
#. {ph3}: </span >
#. {ph4}: <span class="terminal-cursor" aria-hidden="true">
#. {ph5}: </span>
#: website/public/showcase/ctf/index.html:284
#, python-brace-format
msgctxt "page:showcase/ctf/index.html"
msgid ""
"{ph0}›{ph1}{ph2}Use REA to analyze ms_flag_checker and find the flag. "
"Explain how the checks work, then verify the answer with the original "
"program.{ph3}{ph4}{ph5}"
msgstr ""
"{ph0}›{ph1}{ph2}REAを使用してms_flag_checkerを分析し、フラグを見つけます。 "
"チェックがどのように機能するかを説明し、元のプログラムで答えを確認します。{ph3}{ph4}{ph5}"
#: website/public/showcase/ctf/index.html:293
msgctxt "page:showcase/ctf/index.html"
msgid ""
"An example prompt, with the downloaded challenge available locally and a "
"native analysis provider connected."
msgstr "ローカルで利用可能なダウンロードされたチャレンジと接続されているマシンコードのプログラムプロバイダーの分析との例のプロンプト、。"
#: website/public/showcase/ctf/index.html:299
msgctxt "page:showcase/ctf/index.html"
msgid "Follow the input prompt to its function"
msgstr "その機能に入力プロンプトに従ってください"
#: website/public/showcase/ctf/index.html:328
msgctxt "page:showcase/ctf/index.html"
msgid ""
"The reference gives the agent a place to investigate, even though the "
"executable's original function names have been removed."
msgstr "この参照は、実行可能ファイルの元の関数名が削除されていても、エージェントに調査する場所を提供します。"
#: website/public/showcase/ctf/index.html:335
msgctxt "page:showcase/ctf/index.html"
msgid "Read the checker and its two helpers"
msgstr "チェッカーとその2つのヘルパーを読む"
#. {ph0}: <code>0x18</code>
#. {ph1}: <code>0x270</code>
#: website/public/showcase/ctf/index.html:363
#, python-brace-format
msgctxt "page:showcase/ctf/index.html"
msgid ""
"The first loop copies 36 character codes. The checking loop decodes a mask, "
"sums the selected codes and compares the result with a stored number. Its "
"{ph0}-byte steps across {ph1} bytes give 26 masks."
msgstr ""
"最初のループは36文字コードをコピーします。 チェックループはマスクをデコードし、選択したコードを合計し、結果を格納された番号と比較します。 その "
"{ph0}-バイト-ステップ-アクロス {ph1} バイトは26個のマスクを与えます。"
#: website/public/showcase/ctf/index.html:371
msgctxt "page:showcase/ctf/index.html"
msgid ""
"These are selected results from a fresh REA analysis. The local target path "
"is shortened for display; addresses refer to REA's imported image."
msgstr "これらは、新鮮なREA分析から選択された結果です。 アドレスはREAのインポートされたイメージを参照します。"
#: website/public/showcase/ctf/index.html:379
msgctxt "page:showcase/ctf/index.html"
msgid "One check reveals one character"
msgstr "一つのチェックは、一つの文字を明らかに"
#: website/public/showcase/ctf/index.html:380
msgctxt "page:showcase/ctf/index.html"
msgid ""
"The checker arranges the input in a 6×6 grid. A mask chooses which cells "
"contribute to a sum. Its compact encoding uses negative numbers to skip "
"cells and positive numbers to select them."
msgstr ""
"チェッカーは入力を6×6グリッドに配置します。 マスクは、どのセルが合計に寄与するかを選択します。 "
"そのコンパクトなエンコーディングは、負の数を使用してセルをスキップし、正の数を使用してセルを選択します。"
#. {ph0}: <a href="../../assets/figures/ctf-mask-equation.svg" >
#. {ph1}: </a >
#: website/public/showcase/ctf/index.html:400
#, python-brace-format
msgctxt "page:showcase/ctf/index.html"
msgid "The seventh check selects just one position. {ph0}Open figure{ph1}."
msgstr "7番目のチェックでは、1つの位置のみが選択されます。 {ph0}オープンフィギュア{ph1}."
#: website/public/showcase/ctf/index.html:407
msgctxt "page:showcase/ctf/index.html"
msgid "Read the mask and its target from the binary"
msgstr "バイナリからマスクとそのターゲットを読み取ります"
#. {ph0}: <code>MOVSX</code>
#. {ph1}: <code>eb</code>
#. {ph2}: <code>code[21] = 55</code>
#. {ph3}: <code>7</code>
#: website/public/showcase/ctf/index.html:429
#, python-brace-format
msgctxt "page:showcase/ctf/index.html"
msgid ""
"The instruction {ph0} reads mask bytes as signed values. This is why {ph1} "
"means −21. The target is a little-endian integer. Together, these bytes tell"
" the agent that {ph2}, so that character is {ph3}."
msgstr ""
"命令 {ph0} マスクバイトを符号付き値として読み取ります。 これが理由です {ph1} -21を意味します。 "
"ターゲットはリトルエンディアンの整数です。 一緒に、これらのバイトはエージェントに次のことを伝えます {ph2}、その文字は {ph3}."
#: website/public/showcase/ctf/index.html:438
msgctxt "page:showcase/ctf/index.html"
msgid "From instructions to a readable check"
msgstr "指示から読み取り可能なチェックまで"
#: website/public/showcase/ctf/index.html:439
msgctxt "page:showcase/ctf/index.html"
msgid ""
"Select a step to connect the summing helper and its caller to the same rule "
"in C."
msgstr "加算ヘルパーとその呼び出し元をCの同じルールに接続するステップを選択します。"
#. {ph0}: <span>
#. {ph1}: </span>
#: website/public/showcase/ctf/index.html:449
#, python-brace-format
msgctxt "page:showcase/ctf/index.html"
msgid "{ph0}01{ph1} Start"
msgstr "{ph0}01{ph1} スタート"
#. {ph0}: <span>
#. {ph1}: </span>
#: website/public/showcase/ctf/index.html:457
#, python-brace-format
msgctxt "page:showcase/ctf/index.html"
msgid "{ph0}02{ph1} Select"
msgstr "{ph0}02{ph1} 選択"
#. {ph0}: <span>
#. {ph1}: </span>
#: website/public/showcase/ctf/index.html:465
#, python-brace-format
msgctxt "page:showcase/ctf/index.html"
msgid "{ph0}03{ph1} Add"
msgstr "{ph0}03{ph1} 追加"
#. {ph0}: <span>
#. {ph1}: </span>
#: website/public/showcase/ctf/index.html:473
#, python-brace-format
msgctxt "page:showcase/ctf/index.html"
msgid "{ph0}04{ph1} Advance"
msgstr "{ph0}04{ph1} アドバンス"
#. {ph0}: <span>
#. {ph1}: </span>
#: website/public/showcase/ctf/index.html:481
#, python-brace-format
msgctxt "page:showcase/ctf/index.html"
msgid "{ph0}05{ph1} Compare"
msgstr "{ph0}05{ph1} 比較"
#: website/public/showcase/ctf/index.html:493
msgctxt "page:showcase/ctf/index.html"
msgid "REA · selected original instructions"
msgstr "REA*選択されたオリジナルの指示"
#: website/public/showcase/ctf/index.html:517
msgctxt "page:showcase/ctf/index.html"
msgid "Readable C · one-check summary"
msgstr "読み取り可能なC*ワンチェックの概要"
#. {ph0}: <strong>
#. {ph1}: </strong>
#. {ph2}: <code>ECX</code>
#: website/public/showcase/ctf/index.html:546
#, python-brace-format
msgctxt "page:showcase/ctf/index.html"
msgid "{ph0}01 · Start at zero.{ph1} {ph2} holds the running sum."
msgstr "{ph0}01*ゼロから開始します。{ph1} {ph2} 実行中の合計を保持します。"
#. {ph0}: <strong>
#. {ph1}: </strong>
#: website/public/showcase/ctf/index.html:550
#, python-brace-format
msgctxt "page:showcase/ctf/index.html"
msgid ""
"{ph0}02 · Check the mask cell.{ph1} A zero value skips the character; a "
"nonzero value includes it."
msgstr "{ph0}02*マスクセルを確認します。{ph1} ゼロ値は文字をスキップし、ゼロ以外の値には文字が含まれます。"
#. {ph0}: <strong>
#. {ph1}: </strong>
#: website/public/showcase/ctf/index.html:554
#, python-brace-format
msgctxt "page:showcase/ctf/index.html"
msgid ""
"{ph0}03 · Add a character code.{ph1} The input's integer at the same offset "
"is added to the sum."
msgstr "{ph0}03*文字コードを追加します。{ph1} 同じオフセットの入力の整数が合計に追加されます。"
#. {ph0}: <strong>
#. {ph1}: </strong>
#: website/public/showcase/ctf/index.html:558
#, python-brace-format
msgctxt "page:showcase/ctf/index.html"
msgid ""
"{ph0}04 · Move to the next cell.{ph1} The original loop advances four bytes "
"per integer and visits six rows of six cells."
msgstr "{ph0}04*次のセルに移動します。{ph1} 元のループは整数ごとに4バイト進み、6つのセルの6行を訪問します。"
#. {ph0}: <strong>
#. {ph1}: </strong>
#. {ph2}: <code>EAX</code>
#. {ph3}: <code>Incorrect!</code>
#: website/public/showcase/ctf/index.html:563
#, python-brace-format
msgctxt "page:showcase/ctf/index.html"
msgid ""
"{ph0}05 · Compare with the stored target.{ph1} The caller receives the sum "
"in {ph2}. A mismatch jumps to {ph3}."
msgstr ""
"{ph0}05*保存されたターゲットと比較します。{ph1} 呼び出し元は、合計を受信します {ph2}. ミスマッチがジャンプします {ph3}."
#: website/public/showcase/ctf/index.html:570
msgctxt "page:showcase/ctf/index.html"
msgid ""
"The instructions come from the summing helper and its caller. The C is an "
"explanatory summary with descriptive names and a flattened 36-cell loop."
msgstr "命令は、加算ヘルパーとその呼び出し元から来ています。 Cは、説明的な名前と平坦化された36セルループを持つ説明的な要約です。"
#: website/public/showcase/ctf/index.html:578
msgctxt "page:showcase/ctf/index.html"
msgid "Solve the 26 equations"
msgstr "26の方程式を解く"
#: website/public/showcase/ctf/index.html:579
msgctxt "page:showcase/ctf/index.html"
msgid ""
"Most masks select several cells. For example, the first check adds 16 "
"character codes and requires a total of 1441. The overlapping selections "
"give equations that a small Python script can solve together."
msgstr ""
"ほとんどのマスクは複数のセルを選択します。 たとえば、最初のチェックでは16個の文字コードが追加され、合計1441個が必要です。 "
"重複する選択は、小さなPythonスクリプトが一緒に解くことができる方程式を与えます。"
#: website/public/showcase/ctf/index.html:587
msgctxt "page:showcase/ctf/index.html"
msgid "Python · solver excerpt"
msgstr "Python*ソルバーの抜粋"
#. {ph0}: <code>DUCTF{…}</code>
#: website/public/showcase/ctf/index.html:615
#, python-brace-format
msgctxt "page:showcase/ctf/index.html"
msgid ""
"Z3 is a solver that finds values satisfying these equations. This excerpt "
"uses the extracted checks and assumes a {ph0} flag with letters, digits, "
"underscores and braces. The complete download includes all 26 masks and "
"targets."
msgstr ""
"Z3は、これらの方程式を満たす値を見つけるソルバーです。 この抜粋は、抽出されたチェックを使用し、aを前提としています {ph0} "
"文字、数字、アンダースコアと中括弧を持つフラグ。 完全なダウンロードには、26個のマスクとターゲットすべてが含まれています。"
#: website/public/showcase/ctf/index.html:621
msgctxt "page:showcase/ctf/index.html"
msgid "Download the complete solver"
msgstr "完全なソルバーをダウンロードする"
#: website/public/showcase/ctf/index.html:627
msgctxt "page:showcase/ctf/index.html"
msgid "Check the answer with the original program"
msgstr "元のプログラムで答えを確認してください"
#. {ph0}: <code>z</code>
#. {ph1}: <code>y</code>
#: website/public/showcase/ctf/index.html:628
#, python-brace-format
msgctxt "page:showcase/ctf/index.html"
msgid ""
"REA's process capture records the original executable accepting the solved "
"flag. Changing one selected character from {ph0} to {ph1} makes the first "
"sum 1440 instead of 1441, and the program rejects it."
msgstr ""
"REAのプロセスキャプチャは、解決されたフラグを受け入れる元の実行可能ファイルを記録します。 から選択した文字を変更する {ph0} に {ph1} "
"最初の合計を1441ではなく1440にし、プログラムはそれを拒否します。"
#: website/public/showcase/ctf/index.html:638
msgctxt "page:showcase/ctf/index.html"
msgid "Input"
msgstr "入力"
#: website/public/showcase/ctf/index.html:639
msgctxt "page:showcase/ctf/index.html"
msgid "Observed output"
msgstr "観測された出力"
#: website/public/showcase/ctf/index.html:640
msgctxt "page:showcase/ctf/index.html"
msgid "Exit code"
msgstr "終了コード"
#: website/public/showcase/ctf/index.html:645
msgctxt "page:showcase/ctf/index.html"
msgid "Solver's flag"
msgstr "ソルバーの旗"
#: website/public/showcase/ctf/index.html:650
msgctxt "page:showcase/ctf/index.html"
msgid "One character changed"
msgstr "一つの文字が変更されました"
#: website/public/showcase/ctf/index.html:658
msgctxt "page:showcase/ctf/index.html"
msgid "Show the recovered flag and captured output"
msgstr "回収されたフラグとキャプチャされた出力を表示する"
#: website/public/showcase/ctf/index.html:661
msgctxt "page:showcase/ctf/index.html"
msgid "REA · original program output"
msgstr "REA•オリジナルプログラム出力"
#: website/public/showcase/ctf/index.html:662
msgctxt "page:showcase/ctf/index.html"
msgid "Copy flag"
msgstr "フラグのコピー"
#: website/public/showcase/ctf/index.html:674
msgctxt "page:showcase/ctf/index.html"
msgid ""
"The recovered value also matches the flag in the organizers' published "
"challenge metadata, checked after solving the binary."
msgstr "回復された値は、バイナリを解決した後にチェックされた、主催者の公開されたチャレンジメタデータのフラグとも一致します。"
#: website/public/showcase/ctf/index.html:680
msgctxt "page:showcase/ctf/index.html"
msgid "Source, target identity and analysis details"
msgstr "ソース、ターゲットの識別情報および分析の詳細"
#: website/public/showcase/ctf/index.html:681
msgctxt "page:showcase/ctf/index.html"
msgid ""
"Fresh analysis and two process captures on 8 October 2026, using REA 4.1.0 "
"with Ghidra 12.1.4 on Linux x64. The binary is a stripped x86-64 ELF, 15,248"
" bytes."
msgstr ""
"2026年10月8日に、REA4.1.0とGhidra12.1.4をLinux x64で使用して、新鮮な分析と2つのプロセスキャプチャを行いました。 "
"バイナリは削除されたx86-64ELF、15,248バイトです。"
#: website/public/showcase/ctf/index.html:692
msgctxt "page:showcase/ctf/index.html"
msgid ""
"The string references, functions and constants were inspected before reading"
" the organizers' source or solution. The Python solver and the diagram were "
"built from those REA results."
msgstr ""
"文字列参照、関数、定数は、主催者のソースまたはソリューションを読み取る前に検査されました。 "
"Pythonソルバーとダイアグラムは、これらのREA結果から構築されました。"
#. {ph0}: <a
#. href="https://github.com/DownUnderCTF/Challenges_2023_Public/blob/b48f83db2984bc7fa2ec7879a32d7efb1be8d333/rev/masked-
#. squares-flag-checker/src/ms_flag_checker.c" >
#. {ph1}: </a >
#. {ph2}: <a
#. href="https://github.com/DownUnderCTF/Challenges_2023_Public/blob/b48f83db2984bc7fa2ec7879a32d7efb1be8d333/rev/masked-
#. squares-flag-checker/ctfcli.yaml" >
#. {ph3}: </a >
#. {ph4}: <a
#. href="https://github.com/morluto/rea/blob/main/website/evidence/ctf-masked-
#. squares.md" >
#. {ph5}: </a >
#: website/public/showcase/ctf/index.html:697
#, python-brace-format
msgctxt "page:showcase/ctf/index.html"
msgid ""
"{ph0}Compare with the organizers' source{ph1} · {ph2}Challenge metadata and "
"flag{ph3} · {ph4}REA evidence notes{ph5}"
msgstr ""
"{ph0}主催者のソースと比較する{ph1} · {ph2}チャレンジメタデータとフラグ{ph3} · {ph4} REA証拠ノート{ph5}"
#: website/public/showcase/ctf/index.html:717
msgctxt "page:showcase/ctf/index.html"
msgid "Try it yourself"
msgstr "自分で試してみてください"
#: website/public/showcase/ctf/index.html:718
msgctxt "page:showcase/ctf/index.html"
msgid ""
"Download the original challenge and the solver into one folder. Use the "
"prompt above to investigate with your agent, or run the included script."
msgstr ""
"元のチャレンジとソルバーを1つのフォルダにダウンロードします。 上記のプロンプトを使用してエージェントに調査するか、含まれているスクリプトを実行します。"
#: website/public/showcase/ctf/index.html:734
msgctxt "page:showcase/ctf/index.html"
msgid "Terminal · solve and run"
msgstr "ターミナル*解決して実行"
#. {ph0}: <code>z3-solver</code>
#: website/public/showcase/ctf/index.html:751
#, python-brace-format
msgctxt "page:showcase/ctf/index.html"
msgid ""
"The script prints a candidate flag; paste it at the program's prompt. "
"Solving needs Python and {ph0}. Running the original executable needs Linux "
"x86-64."
msgstr ""
"スクリプトは候補フラグを出力します。プログラムのプロンプトに貼り付けます。 ニーズを解決するPythonと {ph0}. "
"元の実行可能ファイルを実行するには、Linux x86-64が必要です。"
#: website/public/showcase/ctf/index.html:756
msgctxt "page:showcase/ctf/index.html"
msgid "Set up REA with your coding agent"
msgstr "コーディングエージェントでREAをセットアップする"
#: website/public/showcase/ctf/index.html:6
msgctxt "page:showcase/ctf/index.html"
msgid "CTF Reverse Engineering: DownUnderCTF Flag Checker — REA"
msgstr "CTFリバースエンジニアリング:DownUnderCTFフラグチェッカー-REA"
#: website/public/showcase/ctf/index.html:7
msgctxt "page:showcase/ctf/index.html"
msgid ""
"Use REA to solve DownUnderCTF's masked squares flag checker. Find the "
"checking functions, extract the masks and compare a recovered flag with the "
"original program."
msgstr ""
"REAを使用して、DownUnderCTFのマスクされた正方形のフラグチェッカーを解決します。 "
"チェック機能を見つけ、マスクを抽出し、復元されたフラグを元のプログラムと比較します。"
#: website/public/showcase/ctf/index.html:249
msgctxt "page:showcase/ctf/index.html"
msgid "On this page"
msgstr "このページでは"
#: website/public/showcase/ctf/index.html:260
msgctxt "page:showcase/ctf/index.html"
msgid "CTF flag-checker case study"
msgstr "CTFフラグチェッカーのケーススタディ"
#: website/public/showcase/ctf/index.html:275
msgctxt "page:showcase/ctf/index.html"
msgid "Copy CTF example prompt"
msgstr "CTFの例をコピーするプロンプト"
#: website/public/showcase/ctf/index.html:386
msgctxt "page:showcase/ctf/index.html"
msgid "CTF mask equation; scroll horizontally on smaller screens"
msgstr "CTFマスク方程式;小さな画面で水平にスクロール"
#: website/public/showcase/ctf/index.html:392
msgctxt "page:showcase/ctf/index.html"
msgid ""
"The seventh mask skips 21 cells, selects position 21, then skips 14. Only "
"that cell contributes to the sum. Its required character code is 55, which "
"means the character is 7."
msgstr ""
"第七のマスクは、21個のセルをスキップし、位置21を選択し、次に14をスキップします。 そのセルだけが合計に貢献します。 "
"必要な文字コードは55で、文字が7であることを意味します。"
#: website/public/showcase/ctf/index.html:444
msgctxt "page:showcase/ctf/index.html"
msgid "Follow the CTF check"
msgstr "CTFチェックに従ってください"
#: website/public/showcase/ctf/index.html:494
msgctxt "page:showcase/ctf/index.html"
msgid "Copy CTF assembly"
msgstr "CTFアセンブリのコピー"
#: website/public/showcase/ctf/index.html:518
msgctxt "page:showcase/ctf/index.html"
msgid "Copy readable CTF check"
msgstr "読み取り可能なCTFチェックのコピー"
#: website/public/showcase/ctf/index.html:588
msgctxt "page:showcase/ctf/index.html"
msgid "Copy CTF solver excerpt"
msgstr "CTFソルバーの抜粋をコピー"
#: website/public/showcase/ctf/index.html:662
msgctxt "page:showcase/ctf/index.html"
msgid "Copy recovered flag"
msgstr "回収フラグのコピー"
#: website/public/showcase/ctf/index.html:735
msgctxt "page:showcase/ctf/index.html"
msgid "Copy CTF solver commands"
msgstr "CTFソルバーコマンドのコピー"
#: website/public/showcase/ctf/index.html:777
msgctxt "page:showcase/ctf/index.html"
msgid "Back to top"
msgstr "ページ上部へ"
#: website/public/showcase/dx-ball/index.html:103
msgctxt "page:showcase/dx-ball/index.html"
msgid "Skip to content"
msgstr "コンテンツにスキップ"
#. {ph0}: <a href="../../">
#. {ph1}: </a>
#. {ph2}: <a href="../">
#. {ph3}: </a>
#: website/public/showcase/dx-ball/index.html:194
#, python-brace-format
msgctxt "page:showcase/dx-ball/index.html"
msgid "{ph0}Home{ph1} / {ph2}Showcases{ph3} / DX-Ball"
msgstr "{ph0}ホーム{ph1} / {ph2}展示会のご案内{ph3} /DX-Ball"
#: website/public/showcase/dx-ball/index.html:197
msgctxt "page:showcase/dx-ball/index.html"
msgid "Case study · DX-Ball 1.07"
msgstr "ケーススタディ•DX-Ball1.07"
#. {ph0}: <br />
#: website/public/showcase/dx-ball/index.html:198
#, python-brace-format
msgctxt "page:showcase/dx-ball/index.html"
msgid "Rebuilding DX-Ball{ph0}from its executable."
msgstr "DX-Ballの再構築 {ph0}その実行可能ファイルから。"
#: website/public/showcase/dx-ball/index.html:199
msgctxt "page:showcase/dx-ball/index.html"
msgid ""
"The goal is a maintainable C version of the 1996 Windows game. REA helps the"
" agent inspect the original, one function at a time."
msgstr "目標は、1996年のWindowsゲームの保守可能なCバージョンです。 REAは、エージェントが元の機能を一度に検査するのに役立ちます。"
#: website/public/showcase/dx-ball/index.html:203
msgctxt "page:showcase/dx-ball/index.html"
msgid "Windows i386 · C · REA"
msgstr "Windows i386*C·REA"
#. {ph0}: <a href="../../assets/figures/dx-ball-sound-pan-investigation.svg" >
#. {ph1}: </a >
#: website/public/showcase/dx-ball/index.html:220
#, python-brace-format
msgctxt "page:showcase/dx-ball/index.html"
msgid ""
"One function, from executable to checked C. REA supplies the instructions, "
"callers and data reads; the reconstruction project implements and tests the "
"result. {ph0}Open figure{ph1}"
msgstr ""
"実行可能ファイルからチェックされたC.REAまでの一つの関数は、命令、呼び出し元、およびデータ読み取りを提供します。 "
"{ph0}オープンフィギュア{ph1}"
#: website/public/showcase/dx-ball/index.html:231
msgctxt "page:showcase/dx-ball/index.html"
msgid "In this case study"
msgstr "このケーススタディでは"
#. {ph0}: <a href="#progress">
#. {ph1}: </a>
#: website/public/showcase/dx-ball/index.html:233
#, python-brace-format
msgctxt "page:showcase/dx-ball/index.html"
msgid "{ph0}The project{ph1}"
msgstr "{ph0}プロジェクト{ph1}"
#. {ph0}: <a href="#sound-pan">
#. {ph1}: </a>
#: website/public/showcase/dx-ball/index.html:234
#, python-brace-format
msgctxt "page:showcase/dx-ball/index.html"
msgid "{ph0}Sound pan{ph1}"
msgstr "{ph0}サウンドパン{ph1}"
#. {ph0}: <a href="#checking">
#. {ph1}: </a>
#: website/public/showcase/dx-ball/index.html:235
#, python-brace-format
msgctxt "page:showcase/dx-ball/index.html"
msgid "{ph0}Checking the result{ph1}"
msgstr "{ph0}結果の確認{ph1}"
#. {ph0}: <a href="#continue">
#. {ph1}: </a>
#: website/public/showcase/dx-ball/index.html:236
#, python-brace-format
msgctxt "page:showcase/dx-ball/index.html"
msgid "{ph0}Continue the work{ph1}"
msgstr "{ph0}仕事を続ける{ph1}"
#: website/public/showcase/dx-ball/index.html:244
msgctxt "page:showcase/dx-ball/index.html"
msgid "maintained C functions"
msgstr "維持されたC関数"
#: website/public/showcase/dx-ball/index.html:248
msgctxt "page:showcase/dx-ball/index.html"
msgid "comparisons with original code"
msgstr "元のコードとの比較"
#: website/public/showcase/dx-ball/index.html:252
msgctxt "page:showcase/dx-ball/index.html"
msgid "functions with matching compiled bytes"
msgstr "コンパイルされたバイトに一致する関数"
#. {ph0}: <a href="https://github.com/N0zoM1z0/dx-
#. ball/blob/a55dca27ec0a07018c1b2c95ae2be027f7d8c3c4/docs/PROGRESS.md" >
#. {ph1}: </a >
#. {ph2}: <a href="https://github.com/N0zoM1z0/dx-
#. ball/blob/a55dca27ec0a07018c1b2c95ae2be027f7d8c3c4/docs/ORACLES.md" >
#. {ph3}: </a >
#: website/public/showcase/dx-ball/index.html:255
#, python-brace-format
msgctxt "page:showcase/dx-ball/index.html"
msgid ""
"Project checkpoint: 7 October 2026. {ph0}Progress ledger{ph1} · {ph2}Test "
"coverage{ph3}"
msgstr "プロジェクトチェックポイント:2026年10月7日。 {ph0}進捗台帳{ph1} · {ph2}テストカバレッジ{ph3}"
#: website/public/showcase/dx-ball/index.html:267
msgctxt "page:showcase/dx-ball/index.html"
msgid "The project so far"
msgstr "これまでのプロジェクト"
#: website/public/showcase/dx-ball/index.html:268
msgctxt "page:showcase/dx-ball/index.html"
msgid ""
"The recovered code covers board and resource handling, brick hits, "
"animations, particles and bonus production. Current builds provide "
"inspection utilities and an analysis library. Work on the playable game "
"continues with ball and paddle physics, power-up handling and Windows "
"integration."
msgstr ""
"回収されたコードは、ボードとリソースの処理、レンガのヒット、アニメーション、パーティクル、ボーナスの生産をカバーしています。 "
"現在のビルドには、検査ユーティリティと分析ライブラリが用意されています。 "
"プレイ可能なゲームの作業は、ボールとパドルの物理学、パワーアップハンドリングとWindowsの統合を続けています。"
#: website/public/showcase/dx-ball/index.html:278
msgctxt "page:showcase/dx-ball/index.html"
msgid "Finding the sound-pan calculation"
msgstr "左/右の音の位置の計算を見つける"
#: website/public/showcase/dx-ball/index.html:279
msgctxt "page:showcase/dx-ball/index.html"
msgid ""
"When a brick is hit, its horizontal position is passed to the sound code. "
"The investigation needed to recover how that screen coordinate becomes a "
"left/right panning value."
msgstr ""
"レンガがヒットすると、その水平位置がサウンドコードに渡されます。 調査は、その画面座標がどのように左/右パン値になるかを回復するために必要でした。"
#. {ph0}: <span class="terminal-dots" aria-hidden="true" >
#. {ph1}: <i>
#. {ph2}: </i>
#. {ph3}: <i>
#. {ph4}: </i>
#. {ph5}: <i>
#. {ph6}: </i>
#. {ph7}: </span >
#: website/public/showcase/dx-ball/index.html:286
#, python-brace-format
msgctxt "page:showcase/dx-ball/index.html"
msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent"
msgstr "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}あなたのコーディングエージェント"
#: website/public/showcase/dx-ball/index.html:290
#: website/public/showcase/dx-ball/index.html:481
#: website/public/showcase/dx-ball/index.html:502
#: website/public/showcase/dx-ball/index.html:573
#: website/public/showcase/dx-ball/index.html:727
msgctxt "page:showcase/dx-ball/index.html"
msgid "Copy"
msgstr "コピー"
#. {ph0}: <span class="prompt-symbol" aria-hidden="true">
#. {ph1}: </span >
#. {ph2}: <span id="dxball-prompt" >
#. {ph3}: </span >
#. {ph4}: <span class="terminal-cursor" aria-hidden="true">
#. {ph5}: </span>
#: website/public/showcase/dx-ball/index.html:299
#, python-brace-format
msgctxt "page:showcase/dx-ball/index.html"
msgid ""
"{ph0}›{ph1}{ph2}Use REA to find how DX-Ball calculates sound panning. "
"Explain the calculation and show the code.{ph3}{ph4}{ph5}"
msgstr ""
"{ph0}›{ph1}{ph2}REAを使用して、DX-Ballがステレオサウンドの位置を計算する方法を見つけます。 "
"計算を説明し、コードを表示します。{ph3}{ph4}{ph5}"
#: website/public/showcase/dx-ball/index.html:307
msgctxt "page:showcase/dx-ball/index.html"
msgid ""
"An example prompt for your coding agent, with the local executable "
"available. The investigation below shows the REA queries and evidence behind"
" the answer."
msgstr ""
"ローカルの実行可能ファイルを使用して、コーディングエージェントのプロンプトの例を示します。 "
"以下の調査は、REAクエリと答えの背後にある証拠を示しています。"
#: website/public/showcase/dx-ball/index.html:312
msgctxt "page:showcase/dx-ball/index.html"
msgid ""
"The agent used REA to inspect the function, follow its brick-hit caller and "
"read the constants from the executable. Those results supplied the input and"
" arithmetic needed to write the C function below."
msgstr ""
"エージェントはREAを使用して関数を検査し、ブリックヒット呼び出し元に従って実行可能ファイルから定数を読み取りました。 "
"これらの結果は、以下のC関数を書くのに必要な入力と算術を提供しました。"
#. {ph0}: <code>0x406400</code>
#. {ph1}: <code>FUN_00406400(void)</code>
#. {ph2}: <code>__ftol()</code>
#: website/public/showcase/dx-ball/index.html:318
#, python-brace-format
msgctxt "page:showcase/dx-ball/index.html"
msgid ""
"The first function result for {ph0} included pseudocode declaring {ph1} and "
"calling {ph2}. Its instruction view showed a stack input and floating-point "
"operations. That discrepancy gave the agent a concrete reason to keep "
"investigating."
msgstr ""
"の最初の関数の結果 {ph0} 擬似コード宣言が含まれています {ph1} と呼び出し {ph2}. "
"その命令ビューは、スタック入力と浮動小数点演算を示しました。 その不一致は、エージェントに調査を続ける具体的な理由を与えました。"
#: website/public/showcase/dx-ball/index.html:326
msgctxt "page:showcase/dx-ball/index.html"
msgid "The first decompiler view"
msgstr "最初の逆コンパイラビュー"
#: website/public/showcase/dx-ball/index.html:339
msgctxt "page:showcase/dx-ball/index.html"
msgid ""
"The output shows a conversion call. Reading the instructions below reveals "
"the input and the calculation feeding that call."
msgstr "出力に変換呼び出しが表示されます。 以下の手順を読むと、入力とその呼び出しを供給する計算が明らかになります。"
#: website/public/showcase/dx-ball/index.html:345
msgctxt "page:showcase/dx-ball/index.html"
msgid "Three questions answered through REA"
msgstr "REAを通じて答えた三つの質問"
#: website/public/showcase/dx-ball/index.html:348
msgctxt "page:showcase/dx-ball/index.html"
msgid "Recover the missing input"
msgstr "不足している入力を回復する"
#. {ph0}: <code>[EBP+8]</code>
#: website/public/showcase/dx-ball/index.html:365
#, python-brace-format
msgctxt "page:showcase/dx-ball/index.html"
msgid ""
"The function result includes instructions alongside pseudocode and callers. "
"Here, {ph0} exposes the integer input missing from the decompiler view."
msgstr ""
"関数の結果には、擬似コードと呼び出し元と一緒に命令が含まれます。 ここに, {ph0} 逆コンパイラビューから欠落している整数入力を公開します。"
#: website/public/showcase/dx-ball/index.html:372
msgctxt "page:showcase/dx-ball/index.html"
msgid "Follow the caller to understand the input"
msgstr "入力を理解するために発信者に従ってください"
#. {ph0}: <code>tile_x</code>
#. {ph1}: <code>20 + 30 × tile_x</code>
#: website/public/showcase/dx-ball/index.html:389
#, python-brace-format
msgctxt "page:showcase/dx-ball/index.html"
msgid ""
"REA identified this caller in the first result. Its preceding instructions "
"scale {ph0} by 30; adding 20 gives the brick's screen coordinate, {ph1}."
msgstr ""
"REAは、最初の結果でこの呼び出し元を識別しました。 その前の指示はスケールします {ph0} 30で、20を追加すると、レンガの画面座標が得られます,"
" {ph1}."
#: website/public/showcase/dx-ball/index.html:396
msgctxt "page:showcase/dx-ball/index.html"
msgid "Read the values behind the memory addresses"
msgstr "メモリアドレスの背後にある値を読み取る"
#: website/public/showcase/dx-ball/index.html:417
msgctxt "page:showcase/dx-ball/index.html"
msgid ""
"The returned bytes establish the two arithmetic constants and initial pan "
"scale. The agent now has the values needed for the C expression."
msgstr "返されるバイトは、2つの算術定数と初期パンスケールを確立します。 エージェントは、C式に必要な値を持つようになりました。"
#: website/public/showcase/dx-ball/index.html:425
msgctxt "page:showcase/dx-ball/index.html"
msgid "From REA's findings to C"
msgstr "REAの調査結果からCへ"
#: website/public/showcase/dx-ball/index.html:426
msgctxt "page:showcase/dx-ball/index.html"
msgid ""
"Follow the five steps below. Each selection highlights the original "
"instructions and the C lines they informed."
msgstr "以下の5つの手順に従ってください。 各選択は、元の指示と彼らが通知したC行を強調表示します。"
#. {ph0}: <span>
#. {ph1}: </span>
#: website/public/showcase/dx-ball/index.html:436
#, python-brace-format
msgctxt "page:showcase/dx-ball/index.html"
msgid "{ph0}01{ph1} Input"
msgstr "{ph0}01{ph1} 入力"
#. {ph0}: <span>
#. {ph1}: </span>
#: website/public/showcase/dx-ball/index.html:444
#, python-brace-format
msgctxt "page:showcase/dx-ball/index.html"
msgid "{ph0}02{ph1} Multiply"
msgstr "{ph0}02{ph1} 乗算"
#. {ph0}: <span>
#. {ph1}: </span>
#: website/public/showcase/dx-ball/index.html:452
#, python-brace-format
msgctxt "page:showcase/dx-ball/index.html"
msgid "{ph0}03{ph1} Subtract"
msgstr "{ph0}03{ph1} 減算"
#. {ph0}: <span>
#. {ph1}: </span>
#: website/public/showcase/dx-ball/index.html:460
#, python-brace-format
msgctxt "page:showcase/dx-ball/index.html"
msgid "{ph0}04{ph1} Scale"
msgstr "{ph0}04{ph1} スケール"
#. {ph0}: <span>
#. {ph1}: </span>
#: website/public/showcase/dx-ball/index.html:468
#, python-brace-format
msgctxt "page:showcase/dx-ball/index.html"
msgid "{ph0}05{ph1} Return"
msgstr "{ph0}05{ph1} 戻る"
#: website/public/showcase/dx-ball/index.html:480
msgctxt "page:showcase/dx-ball/index.html"
msgid "Original x86 · excerpt"
msgstr "オリジナルx86*抜粋"
#: website/public/showcase/dx-ball/index.html:501
msgctxt "page:showcase/dx-ball/index.html"
msgid "Reconstructed C"
msgstr "再構築されたC"
#. {ph0}: <strong>
#. {ph1}: </strong>
#. {ph2}: <code>[EBP+8]</code>
#. {ph3}: <code>FILD</code>
#. {ph4}: <code>x</code>
#: website/public/showcase/dx-ball/index.html:528
#, python-brace-format
msgctxt "page:showcase/dx-ball/index.html"
msgid ""
"{ph0}01 · Read the input.{ph1} The instruction view in REA's function result"
" reads {ph2} and uses {ph3} to load the integer. Following its caller "
"through REA establishes the screen-coordinate meaning of the C parameter "
"{ph4}."
msgstr ""
"{ph0}01*入力を読みます。{ph1} REAの関数結果の命令ビューは次のようになります {ph2} と使用 {ph3} 整数をロードする。 "
"REAを介して呼び出し元に続いて、Cパラメータの画面座標の意味を確立します {ph4}."
#. {ph0}: <strong>
#. {ph1}: </strong>
#. {ph2}: <code>FMUL</code>
#. {ph3}: <code>0x420068</code>
#. {ph4}: <code>read_bytes</code>
#. {ph5}: <code>1.5625</code>
#: website/public/showcase/dx-ball/index.html:535
#, python-brace-format
msgctxt "page:showcase/dx-ball/index.html"
msgid ""
"{ph0}02 · Multiply by 1.5625.{ph1} {ph2} reads the double at {ph3}. The "
"bytes returned by REA's {ph4} decode to {ph5}; the C uses the same constant."
msgstr ""
"{ph0}02·1.5625を掛けます。{ph1} {ph2} でダブルを読み込みます {ph3}. REAによって返されるバイト数 {ph4} "
"にデコード {ph5};Cは同じ定数を使用します。"
#. {ph0}: <strong>
#. {ph1}: </strong>
#. {ph2}: <code>FSUB</code>
#. {ph3}: <code>0x420070</code>
#. {ph4}: <code>500.0</code>
#. {ph5}: <code>320</code>
#: website/public/showcase/dx-ball/index.html:541
#, python-brace-format
msgctxt "page:showcase/dx-ball/index.html"
msgid ""
"{ph0}03 · Subtract 500.0.{ph1} {ph2} reads the double at {ph3}. REA's byte "
"result decodes to {ph4}, shifting the calculation's center to screen "
"coordinate {ph5}."
msgstr ""
"{ph0}03·500.0{ph1} {ph2} でダブルを読み込みます {ph3}. REAのバイト結果は次のようにデコードされます "
"{ph4}、計算の中心を画面座標にシフトする {ph5}."
#. {ph0}: <strong>
#. {ph1}: </strong>
#. {ph2}: <code>FMUL</code>
#. {ph3}: <code>0x4210a0</code>
#. {ph4}: <code>dxball_pan_scale</code>
#. {ph5}: <code>1.0</code>
#: website/public/showcase/dx-ball/index.html:547
#, python-brace-format
msgctxt "page:showcase/dx-ball/index.html"
msgid ""
"{ph0}04 · Apply the stored scale.{ph1} The second {ph2} reads {ph3}. That "
"global is named {ph4} in the maintained source. REA's second byte read "
"establishes its initial value of {ph5}."
msgstr ""
"{ph0}04*保存されたスケールを適用します。{ph1} 第二の {ph2} 読みます {ph3}. そのグローバルは名前が付けられています "
"{ph4} 維持されたソースで。 REAの第二バイトの読み取りは、その初期値を確立します {ph5}."
#. {ph0}: <strong>
#. {ph1}: </strong>
#. {ph2}: <code>0x406430</code>
#. {ph3}: <code>__ftol</code>
#. {ph4}: <code>DxBallInt</code>
#: website/public/showcase/dx-ball/index.html:554
#, python-brace-format
msgctxt "page:showcase/dx-ball/index.html"
msgid ""
"{ph0}05 · Return an integer.{ph1} The call at {ph2} reaches {ph3}, "
"identified in REA's callee results. The C casts the result to {ph4}; "
"original-x86 comparisons check the returned value."
msgstr ""
"{ph0}05*整数を返します。{ph1} での呼び出し {ph2} リーチ {ph3}、REAの呼び出し先の結果で識別されます。 "
"Cは結果を次のようにキャストします {ph4};original-x86比較は戻り値をチェックします。"
#: website/public/showcase/dx-ball/index.html:563
msgctxt "page:showcase/dx-ball/index.html"
msgid ""
"The assembly excerpt selects the input, arithmetic and return instructions. "
"The full listing below also includes the intervening stores and function "
"setup and cleanup."
msgstr ""
"アセンブリの抜粋では、入力命令、算術命令、および戻り命令が選択されます。 "
"以下の完全なリストには、介入する店舗と機能のセットアップとクリーンアップも含まれています。"
#: website/public/showcase/dx-ball/index.html:569
msgctxt "page:showcase/dx-ball/index.html"
msgid "Full assembly and supporting evidence"
msgstr "完全なアセンブリおよび支持の証拠"
#: website/public/showcase/dx-ball/index.html:572
msgctxt "page:showcase/dx-ball/index.html"
msgid "REA result · 0x406400–0x40643e"
msgstr "REA結果·0x406400-0x40643e"
#: website/public/showcase/dx-ball/index.html:606
msgctxt "page:showcase/dx-ball/index.html"
msgid "What the caller supplies"
msgstr "発信者が供給するもの"
#. {ph0}: <code>0x411f40</code>
#: website/public/showcase/dx-ball/index.html:607
#, python-brace-format
msgctxt "page:showcase/dx-ball/index.html"
msgid ""
"The brick-hit function at {ph0} scales its tile coordinate by 30, adds 20, "
"then pushes it before the call:"
msgstr "でのブリックヒット機能 {ph0} タイル座標を30でスケーリングし、20を加算してから、呼び出しの前にプッシュします:"
#: website/public/showcase/dx-ball/index.html:621
msgctxt "page:showcase/dx-ball/index.html"
msgid "What the data reads establish"
msgstr "データが読み取るものが確立するもの"
#: website/public/showcase/dx-ball/index.html:624
msgctxt "page:showcase/dx-ball/index.html"
msgid "REA byte reads, decoded as little-endian doubles"
msgstr "REAバイト読み取り、リトルエンディアン倍精度としてデコード"
#: website/public/showcase/dx-ball/index.html:629
msgctxt "page:showcase/dx-ball/index.html"
msgid "Address"
msgstr "住所"
#: website/public/showcase/dx-ball/index.html:630
msgctxt "page:showcase/dx-ball/index.html"
msgid "Value"
msgstr "値"
#: website/public/showcase/dx-ball/index.html:631
msgctxt "page:showcase/dx-ball/index.html"
msgid "Used for"
msgstr "のために使用される"
#: website/public/showcase/dx-ball/index.html:638
msgctxt "page:showcase/dx-ball/index.html"
msgid "First multiplication"
msgstr "最初の乗算"
#: website/public/showcase/dx-ball/index.html:643
msgctxt "page:showcase/dx-ball/index.html"
msgid "Subtraction"
msgstr "引き算"
#. {ph0}: <code>1.0</code>
#: website/public/showcase/dx-ball/index.html:647
#, python-brace-format
msgctxt "page:showcase/dx-ball/index.html"
msgid "{ph0} initially"
msgstr "{ph0} 最初は"
#: website/public/showcase/dx-ball/index.html:648
msgctxt "page:showcase/dx-ball/index.html"
msgid "Stored pan scale"
msgstr "保存されたパンスケール"
#: website/public/showcase/dx-ball/index.html:653
msgctxt "page:showcase/dx-ball/index.html"
msgid ""
"Recorded with REA 4.1.0 for the hash-pinned DX-Ball 1.07 target. The linked "
"investigation notes retain the Evidence IDs."
msgstr "ハッシュピン付きDX-Ball1.07ターゲット用にREA4.1.0で記録されました。 リンクされた調査ノートには証拠Idが保持されます。"
#. {ph0}: <a href="https://github.com/N0zoM1z0/dx-
#. ball/blob/a55dca27ec0a07018c1b2c95ae2be027f7d8c3c4/src/gameplay.c#L41" >
#. {ph1}: </a >
#. {ph2}: <a href="https://github.com/N0zoM1z0/dx-
#. ball/blob/a55dca27ec0a07018c1b2c95ae2be027f7d8c3c4/docs/GAMEPLAY_OWNER.md"
#. >
#. {ph3}: </a >
#: website/public/showcase/dx-ball/index.html:658
#, python-brace-format
msgctxt "page:showcase/dx-ball/index.html"
msgid ""
"{ph0}Maintained source{ph1} · {ph2}Investigation notes and evidence "
"references{ph3}"
msgstr "{ph0}維持されたソース{ph1} · {ph2}調査ノートおよび証拠の参照{ph3}"
#: website/public/showcase/dx-ball/index.html:672
msgctxt "page:showcase/dx-ball/index.html"
msgid "Checking the recovered function"
msgstr "復元された機能を確認する"
#: website/public/showcase/dx-ball/index.html:673
msgctxt "page:showcase/dx-ball/index.html"
msgid ""
"The recovered function passes two checks: its return values match the "
"original, and its compiled bytes match the executable."
msgstr "復元された関数は、戻り値が元のものと一致し、コンパイルされたバイトが実行可能ファイルと一致するという2つのチェックを渡します。"
#: website/public/showcase/dx-ball/index.html:679
msgctxt "page:showcase/dx-ball/index.html"
msgid "3,205 behavior cases"
msgstr "3,205件"
#: website/public/showcase/dx-ball/index.html:680
msgctxt "page:showcase/dx-ball/index.html"
msgid ""
"The tests execute the original x86 function and compare its return value "
"with the maintained C. They cover every integer position from 0 to 640 at "
"five pan scales: 0, 0.5, 1, 20 and −1."
msgstr ""
"テストでは、元のx86関数を実行し、その戻り値を維持されたCと比較します。0、0.5、1、20、-1の5つのパンスケールで、0から640までのすべての整数位置をカバーします。"
#: website/public/showcase/dx-ball/index.html:688
msgctxt "page:showcase/dx-ball/index.html"
msgid "63 matching bytes"
msgstr "63一致するバイト"
#: website/public/showcase/dx-ball/index.html:689
msgctxt "page:showcase/dx-ball/index.html"
msgid ""
"The C function is compiled with the pinned VC4.0 toolchain. Compiler replay "
"matches the complete function after applying the reviewed relocations and "
"checking the referenced constants."
msgstr ""
"C関数は、ピン留めされたVC4.0ツールチェーンでコンパイルされます。 "
"コンパイラの再生は、レビューされた再配置を適用し、参照された定数を確認した後、完全な関数と一致します。"
#: website/public/showcase/dx-ball/index.html:697
msgctxt "page:showcase/dx-ball/index.html"
msgid ""
"At a scale of 1, the recovered calculation returns −500 at the left edge, 0 "
"at the center and 500 at the right edge. The next part of the audio work is "
"integrating that value with the game's sound backend."
msgstr ""
"スケールが1の場合、復元された計算では、左端に-500、中央に0、右端に500が返されます。 "
"オーディオ作業の次の部分は、その値をゲームのサウンドバックエンドと統合することです。"
#. {ph0}: <a href="https://github.com/N0zoM1z0/dx-
#. ball/blob/a55dca27ec0a07018c1b2c95ae2be027f7d8c3c4/docs/BUILD_MATCHING.md"
#. >
#. {ph1}: </a >
#: website/public/showcase/dx-ball/index.html:703
#, python-brace-format
msgctxt "page:showcase/dx-ball/index.html"
msgid "{ph0}Read the compiler replay details{ph1}"
msgstr "{ph0}コンパイラのリプレイの詳細を読む{ph1}"
#: website/public/showcase/dx-ball/index.html:712
msgctxt "page:showcase/dx-ball/index.html"
msgid "Continue the investigation"
msgstr "調査を続ける"
#: website/public/showcase/dx-ball/index.html:713
msgctxt "page:showcase/dx-ball/index.html"
msgid ""
"The same approach is being used for particle updates, explosion queues and "
"bonus generation: inspect the relevant functions, recover their state and "
"dependencies, then compare the implementation with the original."
msgstr ""
"パーティクルの更新、爆発キュー、ボーナスの生成にも同じアプローチが使用されています。関連する関数を検査し、それらの状態と依存関係を回復し、実装を元のものと比較します。"
#: website/public/showcase/dx-ball/index.html:719
msgctxt "page:showcase/dx-ball/index.html"
msgid ""
"To inspect the sound-pan function yourself, follow the DX-Ball project's "
"setup instructions and supply its matching original target. Then run:"
msgstr ""
"サウンドパン機能を自分で検査するには、DX-Ballプロジェクトのセットアップ手順に従って、一致する元のターゲットを指定します。 次に実行します:"
#: website/public/showcase/dx-ball/index.html:726
msgctxt "page:showcase/dx-ball/index.html"
msgid "In the DX-Ball checkout"
msgstr "DX-Ballチェックアウトで"
#. {ph0}: <a href="https://github.com/N0zoM1z0/dx-ball" >
#. {ph1}: </a >
#. {ph2}: <span>
#. {ph3}: </span>
#: website/public/showcase/dx-ball/index.html:740
#, python-brace-format
msgctxt "page:showcase/dx-ball/index.html"
msgid ""
"{ph0}DX-Ball repository{ph1}{ph2}Current source, progress and local "
"setup.{ph3}"
msgstr "{ph0} DX-Ballリポジトリ{ph1}{ph2}現在のソース、進行状況、およびローカル設定。{ph3}"
#. {ph0}: <a href="../../guides/native/">
#. {ph1}: </a >
#. {ph2}: <span >
#. {ph3}: </span >
#: website/public/showcase/dx-ball/index.html:745
#, python-brace-format
msgctxt "page:showcase/dx-ball/index.html"
msgid ""
"{ph0}REA analysis workflow{ph1}{ph2}Follow the calculation, then use the "
"same approach with your own binary.{ph3}"
msgstr "{ph0} REA分析ワークフロー{ph1}{ph2}計算に従ってから、独自のバイナリで同じアプローチを使用します。{ph3}"
#. {ph0}: <a href="https://github.com/N0zoM1z0/dx-
#. ball/blob/a55dca27ec0a07018c1b2c95ae2be027f7d8c3c4/docs/ENTITIES_OWNER.md"
#. >
#. {ph1}: </a >
#. {ph2}: <span >
#. {ph3}: </span >
#: website/public/showcase/dx-ball/index.html:752
#, python-brace-format
msgctxt "page:showcase/dx-ball/index.html"
msgid ""
"{ph0}Particles and bonus production{ph1}{ph2}A larger investigation into "
"state, queues and pixel writes.{ph3}"
msgstr "{ph0}パーティクルとボーナス生産{ph1}{ph2}状態、キュー、ピクセル書き込みに関するより大きな調査。{ph3}"
#: website/public/showcase/dx-ball/index.html:6
msgctxt "page:showcase/dx-ball/index.html"
msgid "DX-Ball Reverse Engineering: Sound Panning — REA"
msgstr "DX-Ballリバースエンジニアリング:サウンドパン—REA"
#: website/public/showcase/dx-ball/index.html:7
msgctxt "page:showcase/dx-ball/index.html"
msgid ""
"Follow a DX-Ball reconstruction from binary analysis through REA to "
"maintained C, original-x86 tests and matching compiled function bytes."
msgstr ""
"バイナリ解析からDX-Ball再構成をREAまで、維持されたC、元の-x86テスト、およびコンパイルされた関数バイトのマッチングに従ってください。"
#: website/public/showcase/dx-ball/index.html:206
msgctxt "page:showcase/dx-ball/index.html"
msgid ""
"DX-Ball sound-pan investigation; scroll horizontally on smaller screens"
msgstr "DX-Ballサウンドパン調査;小さな画面で水平にスクロール"
#: website/public/showcase/dx-ball/index.html:212
msgctxt "page:showcase/dx-ball/index.html"
msgid ""
"DXBALL.EXE function 0x00406400 is inspected with REA. A brick-hit caller "
"supplies 20 plus 30 times tile_x. Instructions load x, multiply by 1.5625, "
"subtract 500.0, apply pan_scale and return an integer. The maintained C is "
"checked independently against the original x86 in 3,205 cases and by VC4.0 "
"compiler replay matching 63 bytes."
msgstr ""
"DXBALL。EXE関数0x00406400はREAで検査されます。 "
"命令はxをロードし、1.5625を乗算し、500.0を減算し、pan_scaleを適用して整数を返します。 "
"維持されているCは、元のx86に対して3,205ケースで独立してチェックされ、VC4.0コンパイラによって63バイトに一致します。"
#: website/public/showcase/dx-ball/index.html:230
msgctxt "page:showcase/dx-ball/index.html"
msgid "On this page"
msgstr "このページでは"
#: website/public/showcase/dx-ball/index.html:239
msgctxt "page:showcase/dx-ball/index.html"
msgid "DX-Ball reconstruction case study"
msgstr "DX-Ball再構築ケーススタディ"
#: website/public/showcase/dx-ball/index.html:290
msgctxt "page:showcase/dx-ball/index.html"
msgid "Copy example prompt"
msgstr "プロンプトの例をコピーする"
#: website/public/showcase/dx-ball/index.html:431
msgctxt "page:showcase/dx-ball/index.html"
msgid "Follow the sound-pan calculation"
msgstr "左/右の音の位置の計算に従ってください"
#: website/public/showcase/dx-ball/index.html:481
msgctxt "page:showcase/dx-ball/index.html"
msgid "Copy original assembly excerpt"
msgstr "元のアセンブリの抜粋をコピーする"
#: website/public/showcase/dx-ball/index.html:502
msgctxt "page:showcase/dx-ball/index.html"
msgid "Copy sound-pan function"
msgstr "コピー音-パン機能"
#: website/public/showcase/dx-ball/index.html:573
msgctxt "page:showcase/dx-ball/index.html"
msgid "Copy complete sound-pan assembly"
msgstr "完全な音パンアセンブリをコピーします。"
#: website/public/showcase/dx-ball/index.html:727
msgctxt "page:showcase/dx-ball/index.html"
msgid "Copy DX-Ball analysis command"
msgstr "Copy DX-Ball解析コマンド"
#: website/public/showcase/dx-ball/index.html:785
msgctxt "page:showcase/dx-ball/index.html"
msgid "Back to top"
msgstr "ページ上部へ"
#: website/public/showcase/index.html:103
msgctxt "page:showcase/index.html"
msgid "Skip to content"
msgstr "コンテンツにスキップ"
#. {ph0}: <a href="../">
#. {ph1}: </a>
#: website/public/showcase/index.html:194
#, python-brace-format
msgctxt "page:showcase/index.html"
msgid "{ph0}Home{ph1} / Showcases"
msgstr "{ph0}ホーム{ph1} /ショーケース"
#: website/public/showcase/index.html:195
msgctxt "page:showcase/index.html"
msgid "REA case studies."
msgstr "REAケーススタディ."
#: website/public/showcase/index.html:196
msgctxt "page:showcase/index.html"
msgid ""
"Android, games, Electron and a CTF challenge, with code, figures and checked"
" results."
msgstr "アンドロイド、ゲーム、ElectronとCTFの挑戦、コード、数字とチェックされた結果と。"
#: website/public/showcase/index.html:203
msgctxt "page:showcase/index.html"
msgid "Android · APK analysis"
msgstr "アンドロイド*APK分析"
#: website/public/showcase/index.html:205
msgctxt "page:showcase/index.html"
msgid "How an authenticator generates a login code"
msgstr "認証者がログインコードを生成する方法"
#: website/public/showcase/index.html:206
msgctxt "page:showcase/index.html"
msgid ""
"Find Aegis's six-digit code calculation in its released APK. Trace the "
"generating methods with REA, then move a demo clock to see why the code "
"changes every 30 seconds."
msgstr ""
"リリースされたAPKでAegisの6桁のコード計算を見つけます。 "
"REAを使用して生成メソッドをトレースし、デモクロックを移動して、コードが30秒ごとに変更される理由を確認します。"
#: website/public/showcase/index.html:217
msgctxt "page:showcase/index.html"
msgid "Read the Android case study"
msgstr "Androidのケーススタディを読む"
#: website/public/showcase/index.html:221
msgctxt "page:showcase/index.html"
msgid "CTF · Native analysis"
msgstr "CTF•マシンコードプログラムの分析"
#: website/public/showcase/index.html:223
msgctxt "page:showcase/index.html"
msgid "Solve a CTF flag checker"
msgstr "CTFフラグチェッカーを解決する"
#: website/public/showcase/index.html:224
msgctxt "page:showcase/index.html"
msgid ""
"Inspect an easy DownUnderCTF challenge with REA. Find its checking "
"functions, turn masks and sums into equations, then verify the solved flag "
"with the original program."
msgstr ""
"REAで簡単なダウンアンダーの挑戦を点検します。 "
"そのチェック機能を見つけ、マスクと合計を方程式に変換してから、元のプログラムで解決されたフラグを確認します。"
#: website/public/showcase/index.html:235
msgctxt "page:showcase/index.html"
msgid "Read the CTF case study"
msgstr "CTFのケーススタディを読む"
#: website/public/showcase/index.html:239
msgctxt "page:showcase/index.html"
msgid "Native · Reconstruction"
msgstr "ネイティブ-リコンストラクション"
#: website/public/showcase/index.html:241
msgctxt "page:showcase/index.html"
msgid "DX-Ball's sound-pan calculation"
msgstr "DX-Ballの左/右の音の位置の計算"
#: website/public/showcase/index.html:242
msgctxt "page:showcase/index.html"
msgid ""
"Recover a sound-pan calculation from a 1996 Windows game. REA's "
"instructions, caller references and numeric constants lead to a small C "
"function, checked against the original behavior and all 63 compiled bytes."
msgstr ""
"1996年のWindowsゲームから左/右の音の位置の計算を回復します。 "
"REAの命令、呼び出し元の参照、数値定数は小さなC関数につながり、元の動作と63のコンパイルされたすべてのバイトに対してチェックされます。"
#: website/public/showcase/index.html:254
msgctxt "page:showcase/index.html"
msgid "Read the DX-Ball case study"
msgstr "DX-Ballのケーススタディを読む"
#: website/public/showcase/index.html:258
msgctxt "page:showcase/index.html"
msgid "Electron · Feature tracing"
msgstr "Electron•機能トレース"
#: website/public/showcase/index.html:260
msgctxt "page:showcase/index.html"
msgid "How Notion copies text and HTML"
msgstr "NotionがテキストとHTMLをどのようにコピーするか"
#: website/public/showcase/index.html:261
msgctxt "page:showcase/index.html"
msgid ""
"Trace a page-facing API through Notion's packaged JavaScript. Follow its IPC"
" wrappers to the system clipboard, then see how a small HTML marker keeps "
"rich block data connected to a copy."
msgstr ""
"Notionのパッケージ化されたJavaScriptを介してページに面したAPIをトレースします。 "
"そのIPCラッパーに従ってシステムクリップボードに移動し、小さなHTMLマーカーが豊富なブロックデータをコピーに接続する方法を確認します。"
#: website/public/showcase/index.html:272
msgctxt "page:showcase/index.html"
msgid "Read the Notion case study"
msgstr "Notionのケーススタディを読む"
#: website/public/showcase/index.html:276
msgctxt "page:showcase/index.html"
msgid "PC-98 DOS · Reconstruction"
msgstr "PC-98 DOS*再構成"
#: website/public/showcase/index.html:278
msgctxt "page:showcase/index.html"
msgid "How TH04 aims a ring of bullets"
msgstr "どのようにTH04は弾丸のリングを目指していますか"
#: website/public/showcase/index.html:279
msgctxt "page:showcase/index.html"
msgid ""
"Inspect the original 16-bit angle helper with REA. Match its multiply, "
"divide and coordinate operations to readable C++, then see how they produce "
"a ring aimed at the player."
msgstr ""
"REAを使用して元の16ビット角度ヘルパーを検査します。 "
"その乗算、除算、座標演算を読み取り可能なC++に一致させ、プレイヤーに向けたリングをどのように生成するかを確認します。"
#: website/public/showcase/index.html:290
msgctxt "page:showcase/index.html"
msgid "Read the TH04 case study"
msgstr "TH04のケーススタディを読む"
#: website/public/showcase/index.html:295
msgctxt "page:showcase/index.html"
msgid "Step-by-step guides"
msgstr "ステップバイステップガイド"
#: website/public/showcase/index.html:296
msgctxt "page:showcase/index.html"
msgid ""
"The guides walk through a native calculation, an Electron export and a "
"browser request. Each starts with a prompt and a concrete target."
msgstr ""
"ガイドは、ネイティブ計算、Electronエクスポート、およびブラウザ要求を順を追って説明します。 "
"それぞれがプロンプトと具体的なターゲットで始まります。"
#: website/public/showcase/index.html:300
msgctxt "page:showcase/index.html"
msgid "Read the guides"
msgstr "ガイドを読む"
#: website/public/showcase/index.html:6
msgctxt "page:showcase/index.html"
msgid "Reverse Engineering Case Studies — REA"
msgstr "リバースエンジニアリングのケーススタディ-REA"
#: website/public/showcase/index.html:7
msgctxt "page:showcase/index.html"
msgid ""
"Follow REA investigations through code, figures and demos: an Android "
"authenticator, DX-Ball, Notion, TH04 and a DownUnderCTF flag checker."
msgstr ""
"コード、数字、デモを通じてREA調査に従ってください:Android認証器、DX-"
"Ball、Notion、TH04、およびDownUnderCTFフラグチェッカー。"
#: website/public/showcase/index.html:317
msgctxt "page:showcase/index.html"
msgid "Back to top"
msgstr "ページ上部へ"
#: website/public/showcase/notion/index.html:103
msgctxt "page:showcase/notion/index.html"
msgid "Skip to content"
msgstr "コンテンツにスキップ"
#. {ph0}: <a href="../../">
#. {ph1}: </a>
#. {ph2}: <a href="../">
#. {ph3}: </a>
#: website/public/showcase/notion/index.html:194
#, python-brace-format
msgctxt "page:showcase/notion/index.html"
msgid "{ph0}Home{ph1} / {ph2}Showcases{ph3} / Notion"
msgstr "{ph0}ホーム{ph1} / {ph2}展示会のご案内{ph3} /Notion"
#: website/public/showcase/notion/index.html:197
msgctxt "page:showcase/notion/index.html"
msgid "Case study · Electron"
msgstr "ケーススタディ·Electron"
#. {ph0}: <br />
#: website/public/showcase/notion/index.html:198
#, python-brace-format
msgctxt "page:showcase/notion/index.html"
msgid "How Notion copies{ph0}text and HTML."
msgstr "どのようにNotionコピー{ph0}テキストとHTML。"
#: website/public/showcase/notion/index.html:199
msgctxt "page:showcase/notion/index.html"
msgid ""
"Trace a clipboard call from Notion's page API, through the preload and main "
"process, to Electron's clipboard writer."
msgstr ""
"NotionのページAPIから、プリロードとメインプロセスを介してElectronのクリップボードライターにクリップボード呼び出しをトレースします。"
#: website/public/showcase/notion/index.html:203
msgctxt "page:showcase/notion/index.html"
msgid "Notion Desktop 7.6.1 · JavaScript · REA"
msgstr "Notionデスクトップ7.6.1·JavaScript*REA"
#: website/public/showcase/notion/index.html:207
msgctxt "page:showcase/notion/index.html"
msgid "The bridge inside Notion's desktop package"
msgstr "Notionのデスクトップパッケージ内のブリッジ"
#. {ph0}: <span class="flow-label">
#. {ph1}: </span>
#. {ph2}: <span class="flow-node">
#. {ph3}: <code>clipboard.write(data)</code>
#. {ph4}: </span>
#. {ph5}: <span class="flow-note" >
#. {ph6}: </span >
#: website/public/showcase/notion/index.html:209
#, python-brace-format
msgctxt "page:showcase/notion/index.html"
msgid ""
"{ph0}01 · Page-facing API{ph1} {ph2}{ph3}{ph4} {ph5}The preload exposes a "
"callable method.{ph6}"
msgstr ""
"{ph0}01*ページに直面するAPI{ph1} {ph2}{ph3}{ph4} {ph5}プリロードは呼び出し可能なメソッドを公開します。{ph6}"
#. {ph0}: <span class="flow-label">
#. {ph1}: </span>
#. {ph2}: <span class="flow-node">
#. {ph3}: <code>ipcRenderer.invoke</code>
#. {ph4}: </span>
#. {ph5}: <span class="flow-note" >
#. {ph6}: </span >
#: website/public/showcase/notion/index.html:216
#, python-brace-format
msgctxt "page:showcase/notion/index.html"
msgid ""
"{ph0}02 · Preload wrapper{ph1} {ph2}{ph3}{ph4} {ph5}The wrapper sends the "
"channel and arguments.{ph6}"
msgstr ""
"{ph0}02*プリロードラッパー{ph1} {ph2}{ph3}{ph4} {ph5}Wrapperはチャンネルと引数を送信します。{ph6}"
#. {ph0}: <span class="flow-label">
#. {ph1}: </span>
#. {ph2}: <span class="flow-node">
#. {ph3}: <code>ipcMain.handle</code>
#. {ph4}: </span>
#. {ph5}: <span class="flow-note" >
#. {ph6}: </span >
#: website/public/showcase/notion/index.html:223
#, python-brace-format
msgctxt "page:showcase/notion/index.html"
msgid ""
"{ph0}03 · Main-process handler{ph1} {ph2}{ph3}{ph4} {ph5}The receiver checks"
" which page sent it.{ph6}"
msgstr ""
"{ph0}03*メインプロセスハンドラー{ph1} {ph2}{ph3}{ph4} {ph5}受信者は、どのページが送信されたかを確認します。{ph6}"
#. {ph0}: <span class="flow-label">
#. {ph1}: </span>
#. {ph2}: <span class="flow-node">
#. {ph3}: <code>clipboard.write(data)</code>
#. {ph4}: </span>
#. {ph5}: <span class="flow-note" >
#. {ph6}: </span >
#: website/public/showcase/notion/index.html:230
#, python-brace-format
msgctxt "page:showcase/notion/index.html"
msgid ""
"{ph0}04 · System clipboard{ph1} {ph2}{ph3}{ph4} {ph5}Electron writes the "
"supplied text and HTML.{ph6}"
msgstr ""
"{ph0}04*システムクリップボード{ph1} {ph2}{ph3}{ph4} {ph5} "
"Electronは、指定されたテキストとHTMLを書き込みます。{ph6}"
#. {ph0}: <code class="notion-channel">notion:clipboard:write</code>
#: website/public/showcase/notion/index.html:238
#, python-brace-format
msgctxt "page:showcase/notion/index.html"
msgid "One channel joins the two sides: {ph0}"
msgstr "一つのチャネルは、二つの側面を結合します: {ph0}"
#: website/public/showcase/notion/index.html:242
msgctxt "page:showcase/notion/index.html"
msgid ""
"The packaged code uses the same channel in the preload and main process. "
"Resolving the wrappers reveals the Electron calls behind those names."
msgstr ""
"パッケージ化されたコードは、プリロードプロセスとメインプロセスで同じチャネルを使用します。 "
"ラッパーを解決すると、これらの名前の背後にあるElectron呼び出しが明らかになります。"
#: website/public/showcase/notion/index.html:251
msgctxt "page:showcase/notion/index.html"
msgid "In this case study"
msgstr "このケーススタディでは"
#. {ph0}: <a href="#clipboard">
#. {ph1}: </a>
#: website/public/showcase/notion/index.html:253
#, python-brace-format
msgctxt "page:showcase/notion/index.html"
msgid "{ph0}Follow the clipboard bridge{ph1}"
msgstr "{ph0}クリップボードブリッジに従ってください{ph1}"
#. {ph0}: <a href="#rich-clipboard">
#. {ph1}: </a>
#: website/public/showcase/notion/index.html:254
#, python-brace-format
msgctxt "page:showcase/notion/index.html"
msgid "{ph0}Keeping a block's structure{ph1}"
msgstr "{ph0}ブロックの構造を維持する{ph1}"
#. {ph0}: <a href="#continue">
#. {ph1}: </a>
#: website/public/showcase/notion/index.html:255
#, python-brace-format
msgctxt "page:showcase/notion/index.html"
msgid "{ph0}More examples and sources{ph1}"
msgstr "{ph0}より多くの例とソース{ph1}"
#: website/public/showcase/notion/index.html:260
msgctxt "page:showcase/notion/index.html"
msgid "Where does the copy operation go?"
msgstr "コピー操作はどこに行きますか?"
#. {ph0}: <code>clipboard.write</code>
#: website/public/showcase/notion/index.html:261
#, python-brace-format
msgctxt "page:showcase/notion/index.html"
msgid ""
"The page sees a method called {ph0}. Its implementation in the preload is a "
"wrapper. The useful question is what that wrapper sends, and which code "
"receives it."
msgstr ""
"ページには、次のようなメソッドが表示されます {ph0}. プリロードでの実装はラッパーです。 "
"有用な質問は、そのラッパーが何を送信し、どのコードがそれを受信するかです。"
#. {ph0}: <span class="terminal-dots" aria-hidden="true" >
#. {ph1}: <i>
#. {ph2}: </i>
#. {ph3}: <i>
#. {ph4}: </i>
#. {ph5}: <i>
#. {ph6}: </i>
#. {ph7}: </span >
#: website/public/showcase/notion/index.html:268
#, python-brace-format
msgctxt "page:showcase/notion/index.html"
msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent"
msgstr "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}あなたのコーディングエージェント"
#: website/public/showcase/notion/index.html:272
#: website/public/showcase/notion/index.html:345
#: website/public/showcase/notion/index.html:374
#: website/public/showcase/notion/index.html:405
#: website/public/showcase/notion/index.html:433
msgctxt "page:showcase/notion/index.html"
msgid "Copy"
msgstr "コピー"
#. {ph0}: <span class="prompt-symbol" aria-hidden="true">
#. {ph1}: </span >
#. {ph2}: <span id="notion-prompt" >
#. {ph3}: </span >
#. {ph4}: <span class="terminal-cursor" aria-hidden="true">
#. {ph5}: </span>
#: website/public/showcase/notion/index.html:281
#, python-brace-format
msgctxt "page:showcase/notion/index.html"
msgid ""
"{ph0}›{ph1}{ph2}Use REA to trace how Notion copies text and HTML to the "
"system clipboard. Show the code at each step.{ph3}{ph4}{ph5}"
msgstr ""
"{ph0}›{ph1}{ph2}REAを使用して、NotionがテキストとHTMLをシステムクリップボードにコピーする方法を追跡します。 "
"各ステップでコードを表示します。{ph3}{ph4}{ph5}"
#: website/public/showcase/notion/index.html:289
msgctxt "page:showcase/notion/index.html"
msgid ""
"An example prompt with Notion's local application package available to your "
"coding agent."
msgstr "コーディングエージェントが使用できるNotionのローカルアプリケーションパッケージを使用した例のプロンプト。"
#: website/public/showcase/notion/index.html:294
msgctxt "page:showcase/notion/index.html"
msgid "REA finds where to start reading"
msgstr "REAは、読み取りを開始する場所を検索します"
#: website/public/showcase/notion/index.html:295
msgctxt "page:showcase/notion/index.html"
msgid ""
"Analyzing the tab preload with REA locates the API exposed to the page and "
"the call that sends an IPC request. Both findings come with source ranges in"
" the minified bundle:"
msgstr ""
"REAを使用してタブプリロードを分析すると、ページに公開されているAPIとIPC要求を送信する呼び出しが検索されます。 "
"どちらの調査結果も、縮小されたバンドルのソース範囲が付属しています:"
#: website/public/showcase/notion/index.html:301
msgctxt "page:showcase/notion/index.html"
msgid "REA findings → two places to open"
msgstr "REA調査結果→二つの場所を開く"
#. {ph0}: <code>analyze_javascript_application</code>
#: website/public/showcase/notion/index.html:316
#, python-brace-format
msgctxt "page:showcase/notion/index.html"
msgid ""
"Selected fields from a fresh {ph0} result on Notion's tab preload, recorded "
"with REA 4.1.0. Positions use the original bundle's line and zero-based "
"column."
msgstr ""
"新鮮なから選択されたフィールド {ph0} Notionのタブプリロードの結果、REA4.1.0で記録されました。 "
"ポジションは、元のバンドルのラインとゼロベースの列を使用します。"
#. {ph0}: <code>invokerInMain</code>
#. {ph1}: <code class="notion-channel">notion:clipboard:write</code>
#: website/public/showcase/notion/index.html:323
#, python-brace-format
msgctxt "page:showcase/notion/index.html"
msgid ""
"The agent opens those locations, finds the clipboard member in the assembled"
" API, and reads {ph0}. Its call site supplies {ph1}. That name gives the "
"agent something precise to look for in the main bundle. The four excerpts "
"below show the route it connects."
msgstr ""
"エージェントはこれらの場所を開き、組み立てられたAPIでclipboardメンバーを見つけて、次のように {ph0}. そのコールサイトの供給 "
"{ph1}. この名前は、エージェントにメインバンドルで探すための正確な何かを与えます。 以下の4つの抜粋は、それが接続するルートを示しています。"
#: website/public/showcase/notion/index.html:332
msgctxt "page:showcase/notion/index.html"
msgid "Four short pieces of code"
msgstr "コードの4つの短い部分"
#: website/public/showcase/notion/index.html:333
msgctxt "page:showcase/notion/index.html"
msgid ""
"Simplified from the packaged JavaScript, with readable variable names. "
"Unrelated members are omitted."
msgstr "パッケージ化されたJavaScriptから簡略化され、可読な変数名が付いています。 無関係なメンバーは省略されます。"
#: website/public/showcase/notion/index.html:339
msgctxt "page:showcase/notion/index.html"
msgid "Start at the API exposed to the page"
msgstr "ページに公開されているAPIから開始します"
#. {ph0}: <code>invokerInMain</code>
#: website/public/showcase/notion/index.html:361
#, python-brace-format
msgctxt "page:showcase/notion/index.html"
msgid ""
"This member supplies the channel name. The implementation of {ph0} tells us "
"how the request leaves the page's process."
msgstr "このメンバーは、チャネル名を指定します。 の実装 {ph0} リクエストがページのプロセスからどのように離れるかを示します。"
#: website/public/showcase/notion/index.html:368
msgctxt "page:showcase/notion/index.html"
msgid "Resolve the preload's wrapper"
msgstr "プリロードのラッパーを解決する"
#. {ph0}: <code class="notion-channel">notion:clipboard:write</code>
#: website/public/showcase/notion/index.html:391
#, python-brace-format
msgctxt "page:showcase/notion/index.html"
msgid ""
"The returned function forwards the arguments through Electron's request-and-"
"response IPC. We can now look for {ph0} on the main-process side."
msgstr ""
"返された関数は、Electronの要求と応答IPCを介して引数を転送します。 私たちは今、探すことができます {ph0} メインプロセス側。"
#: website/public/showcase/notion/index.html:399
msgctxt "page:showcase/notion/index.html"
msgid "Check how the receiver is registered"
msgstr "受信機の登録方法を確認する"
#. {ph0}: <code>addListener</code>
#. {ph1}: <code>ipcMain.handle</code>
#: website/public/showcase/notion/index.html:420
#, python-brace-format
msgctxt "page:showcase/notion/index.html"
msgid ""
"The main process uses another wrapper. Its {ph0} method registers an {ph1} "
"receiver for that channel."
msgstr "メインプロセスは別のラッパーを使用します。 その {ph0} メソッドを登録します。 {ph1} そのチャンネルの受信機。"
#: website/public/showcase/notion/index.html:427
msgctxt "page:showcase/notion/index.html"
msgid "Find the write and its sender check"
msgstr "書き込みとその送信者チェックを見つけます"
#: website/public/showcase/notion/index.html:450
msgctxt "page:showcase/notion/index.html"
msgid ""
"This is the destination. After checking the sender, the handler passes the "
"supplied data to Electron's clipboard API. The channel and the two resolved "
"wrappers connect the exposed method to this call."
msgstr ""
"これが目的地です。 送信者を確認した後、ハンドラーは提供されたデータをElectronのクリップボードAPIに渡します。 "
"チャネルと2つの解決されたラッパーは、公開されたメソッドをこの呼び出しに接続します。"
#: website/public/showcase/notion/index.html:461
msgctxt "page:showcase/notion/index.html"
msgid "How does a copied block keep its structure?"
msgstr "コピーされたブロックはどのようにその構造を保持しますか?"
#. {ph0}: <code>electronApi.clipboard.write</code>
#: website/public/showcase/notion/index.html:462
#, python-brace-format
msgctxt "page:showcase/notion/index.html"
msgid ""
"Notion's web editor sends text and HTML through {ph0}. It keeps the block "
"data locally and puts an ID in the copied HTML to connect them."
msgstr ""
"Notionのwebエディタは、テキストとHTMLを介して送信します {ph0}. "
"ブロックデータをローカルに保持し、コピーされたHTMLにIDを入れて接続します。"
#: website/public/showcase/notion/index.html:468
msgctxt "page:showcase/notion/index.html"
msgid "HTML links to saved block data"
msgstr "保存されたブロックデータへのHTMLリンク"
#: website/public/showcase/notion/index.html:492
msgctxt "page:showcase/notion/index.html"
msgid "Read the HTML ID"
msgstr "HTML IDを読み取る"
#: website/public/showcase/notion/index.html:493
msgctxt "page:showcase/notion/index.html"
msgid "Find the same local ID"
msgstr "同じローカルIDを検索する"
#: website/public/showcase/notion/index.html:494
msgctxt "page:showcase/notion/index.html"
msgid "Restore Notion block data"
msgstr "Notionブロックデータの復元"
#: website/public/showcase/notion/index.html:496
msgctxt "page:showcase/notion/index.html"
msgid ""
"Illustrative text and ID. The recorded module test restores the block data "
"when IDs match; a stale entry returns only text and HTML."
msgstr "例示的なテキストとID。 記録されたモジュールテストでは、Idが一致するとブロックデータが復元されます。"
#: website/public/showcase/notion/index.html:502
msgctxt "page:showcase/notion/index.html"
msgid ""
"On paste, Notion looks for the HTML ID and checks it against the saved copy."
" Matching IDs restore the block data."
msgstr "貼り付け時に、NotionはHTML IDを探し、保存されたコピーと照合します。 一致するIdは、ブロックデータを復元します。"
#: website/public/showcase/notion/index.html:506
msgctxt "page:showcase/notion/index.html"
msgid "Clipboard format recorded from web assets cached on July 13, 2026."
msgstr "2026年7月13日にキャッシュされたwebアセットから記録されたクリップボード形式。"
#: website/public/showcase/notion/index.html:512
msgctxt "page:showcase/notion/index.html"
msgid "More examples and sources"
msgstr "より多くの例とソース"
#: website/public/showcase/notion/index.html:514
msgctxt "page:showcase/notion/index.html"
msgid "Another example: Markdown tables"
msgstr "別の例:Markdownテーブル"
#: website/public/showcase/notion/index.html:515
msgctxt "page:showcase/notion/index.html"
msgid ""
"Notion parses Markdown into block data. This example shows how a table "
"becomes header and data rows."
msgstr "NotionはMarkdownをブロックデータに解析します。 この例では、テーブルがヘッダー行とデータ行になる方法を示します。"
#: website/public/showcase/notion/index.html:520
msgctxt "page:showcase/notion/index.html"
msgid "A table through Notion's Markdown parser"
msgstr "NotionのMarkdownパーサーを介したテーブル"
#: website/public/showcase/notion/index.html:541
msgctxt "page:showcase/notion/index.html"
msgid ""
"Recorded output from an extracted Markdown parser. The table becomes rows "
"and cells."
msgstr "抽出されたMarkdownパーサーからの出力を記録しました。 テーブルは行とセルになります。"
#: website/public/showcase/notion/index.html:548
msgctxt "page:showcase/notion/index.html"
msgid "Another path: the offline SQLite connection"
msgstr "別のパス:オフラインSQLite接続"
#. {ph0}: <code>getSqliteMeta</code>
#: website/public/showcase/notion/index.html:549
#, python-brace-format
msgctxt "page:showcase/notion/index.html"
msgid ""
"Notion's renderer requests {ph0} through IPC. The main process creates a "
"message channel and gives one port to the renderer and the other to a SQLite"
" utility process. Subsequent statement batches and results travel over that "
"port."
msgstr ""
"Notionのレンダラリクエスト {ph0} IPCを介して。 "
"メインプロセスはメッセージチャネルを作成し、1つのポートをレンダラーに、もう1つのポートをSQLiteユーティリティプロセスに提供します。 "
"後続のステートメントのバッチと結果は、そのポート上を移動します。"
#: website/public/showcase/notion/index.html:555
msgctxt "page:showcase/notion/index.html"
msgid ""
"Following this handoff explains where the database work runs, and why "
"tracing only the initial IPC request misses the later conversation."
msgstr ""
"このハンドオフに続いて、データベース作業がどこで実行されるか、および最初のIPC要求のみをトレースすると後の会話が失敗する理由を説明します。"
#: website/public/showcase/notion/index.html:562
msgctxt "page:showcase/notion/index.html"
msgid "Sources and how to read the excerpts"
msgstr "出典と抜粋の読み方"
#. {ph0}: <code>app.asar</code>
#. {ph1}: <code>main/index.js</code>
#. {ph2}: <code>isNotionWebContents</code>
#: website/public/showcase/notion/index.html:563
#, python-brace-format
msgctxt "page:showcase/notion/index.html"
msgid ""
"The clipboard bridge comes from Notion Desktop 7.6.1's {ph0}: the tab "
"preload and {ph1}. The excerpts expand minified variable names and omit "
"unrelated code; the sender-check helper is shown with its underlying {ph2} "
"call."
msgstr ""
"クリップボードブリッジはNotionデスクトップ7.6.1から来ています {ph0}:タブのプリロードと {ph1}. "
"抜粋は、縮小された変数名を展開し、無関係なコードを省略します。sender-checkヘルパーは、その基礎となるもので表示されます {ph2} "
"呼び出します。"
#. {ph0}: <code>747001</code>
#. {ph1}: <code>58169</code>
#. {ph2}: <code>736810</code>
#. {ph3}: <code>422457</code>
#: website/public/showcase/notion/index.html:571
#, python-brace-format
msgctxt "page:showcase/notion/index.html"
msgid ""
"The virtual clipboard and Markdown examples come from web assets cached on "
"July 13, 2026, including modules {ph0}, {ph1}, {ph2} and {ph3}. Those assets"
" have their own version. Saved probes executed extracted modules and small "
"harnesses; their outputs describe those probes rather than a captured "
"desktop UI session."
msgstr ""
"仮想クリップボードとMarkdownの例は、モジュールを含む2026年7月13日にキャッシュされたwebアセットからのものです {ph0}, "
"{ph1}, {ph2} と {ph3}. これらのアセットには独自のバージョンがあります。 "
"保存されたプローブは、抽出されたモジュールと小さなハーネスを実行しました。"
#: website/public/showcase/notion/index.html:579
msgctxt "page:showcase/notion/index.html"
msgid ""
"The REA result shown here is a focused analysis of the saved tab preload, "
"recorded with the published REA 4.1.0 package. It locates the API and invoke"
" operation. The clipboard member and matching receiver are connected by "
"reading their wrapper implementations in the package."
msgstr ""
"ここに示されているREAの結果は、公開されたREA4.1.0パッケージで記録された、保存されたタブプリロードの集中分析です。 "
"これは、APIを検索し、操作を呼び出します。 クリップボードメンバーと一致する受信機は、パッケージ内のラッパー実装を読み取ることによって接続されます。"
#. {ph0}: <code>422457</code>
#: website/public/showcase/notion/index.html:586
#, python-brace-format
msgctxt "page:showcase/notion/index.html"
msgid ""
"The Markdown example uses parser module {ph0}. Saved module tests show that "
"both page and chat filters preserve this table. The paste/import, structured"
" Markdown and AI/chat parsers have separate entry points and intermediate "
"formats."
msgstr ""
"Markdownの例では、パーサーモジュールを使用しています {ph0}. "
"保存されたモジュールのテストでは、ページフィルタとチャットフィルタの両方がこのテーブルを保持することが示されています。 "
"Paste/import、structured Markdown、AI/chatパーサーには、別々のエントリポイントと中間形式があります。"
#. {ph0}: <a href="../../guides/javascript/" >
#. {ph1}: </a >
#. {ph2}: <span >
#. {ph3}: </span >
#: website/public/showcase/notion/index.html:594
#, python-brace-format
msgctxt "page:showcase/notion/index.html"
msgid ""
"{ph0}JavaScript application guide{ph1}{ph2}Follow a small Electron "
"application's export feature.{ph3}"
msgstr ""
"{ph0} "
"JavaScriptアプリケーションガイド{ph1}{ph2}小さなElectronアプリケーションのエクスポート機能に従ってください。{ph3}"
#. {ph0}: <a href="../dx-ball/">
#. {ph1}: </a >
#. {ph2}: <span >
#. {ph3}: </span >
#: website/public/showcase/notion/index.html:601
#, python-brace-format
msgctxt "page:showcase/notion/index.html"
msgid ""
"{ph0}DX-Ball reconstruction{ph1}{ph2}Follow native instructions to a checked"
" C function.{ph3}"
msgstr "{ph0} DX-Ball再構成{ph1}{ph2}チェックされたC関数へのネイティブの指示に従ってください。{ph3}"
#: website/public/showcase/notion/index.html:6
msgctxt "page:showcase/notion/index.html"
msgid "Notion Electron Reverse Engineering: Clipboard — REA"
msgstr "Notion Electronリバースエンジニアリング:クリップボード-REA"
#: website/public/showcase/notion/index.html:7
msgctxt "page:showcase/notion/index.html"
msgid ""
"Follow Notion's clipboard API through Electron's preload, IPC wrappers and "
"main process, with short code excerpts and a look at its rich clipboard "
"format."
msgstr ""
"短いコードの抜粋とその豊富なクリップボード形式を見て、Electronのプリロード、IPCラッパーとメインプロセスを通じてNotionのクリップボードAPIに従ってください。"
#: website/public/showcase/notion/index.html:250
msgctxt "page:showcase/notion/index.html"
msgid "On this page"
msgstr "このページでは"
#: website/public/showcase/notion/index.html:258
msgctxt "page:showcase/notion/index.html"
msgid "Notion Electron case study"
msgstr "Notion Electronケーススタディ"
#: website/public/showcase/notion/index.html:272
msgctxt "page:showcase/notion/index.html"
msgid "Copy Notion analysis prompt"
msgstr "Notion分析プロンプトのコピー"
#: website/public/showcase/notion/index.html:345
msgctxt "page:showcase/notion/index.html"
msgid "Copy Notion preload excerpt"
msgstr "コピー Notionプリロード抜粋"
#: website/public/showcase/notion/index.html:374
msgctxt "page:showcase/notion/index.html"
msgid "Copy Notion invoke wrapper excerpt"
msgstr "コピー Notion呼び出しラッパーの抜粋"
#: website/public/showcase/notion/index.html:405
msgctxt "page:showcase/notion/index.html"
msgid "Copy Notion handler wrapper excerpt"
msgstr "Notionハンドラーラッパーの抜粋をコピーする"
#: website/public/showcase/notion/index.html:433
msgctxt "page:showcase/notion/index.html"
msgid "Copy Notion clipboard receiver excerpt"
msgstr "コピー Notionクリップボードレシーバー抜粋"
#: website/public/showcase/notion/index.html:488
msgctxt "page:showcase/notion/index.html"
msgid "Restoring rich clipboard data on paste"
msgstr "貼り付け時に豊富なクリップボードデータを復元する"
#: website/public/showcase/notion/index.html:631
msgctxt "page:showcase/notion/index.html"
msgid "Back to top"
msgstr "ページ上部へ"
#: website/public/showcase/th04/index.html:103
msgctxt "page:showcase/th04/index.html"
msgid "Skip to content"
msgstr "コンテンツにスキップ"
#. {ph0}: <a href="../../">
#. {ph1}: </a>
#. {ph2}: <a href="../">
#. {ph3}: </a>
#: website/public/showcase/th04/index.html:194
#, python-brace-format
msgctxt "page:showcase/th04/index.html"
msgid "{ph0}Home{ph1} / {ph2}Showcases{ph3} / TH04"
msgstr "{ph0}ホーム{ph1} / {ph2}展示会のご案内{ph3} /TH04"
#: website/public/showcase/th04/index.html:197
msgctxt "page:showcase/th04/index.html"
msgid "Case study · Touhou 4: Lotus Land Story"
msgstr "ケーススタディ*東方4:蓮の国物語"
#. {ph0}: <br />
#: website/public/showcase/th04/index.html:198
#, python-brace-format
msgctxt "page:showcase/th04/index.html"
msgid "Reconstructing TH04's{ph0}bullet patterns."
msgstr "TH04の再構築{ph0}弾丸のパターン。"
#: website/public/showcase/th04/index.html:199
msgctxt "page:showcase/th04/index.html"
msgid ""
"A ring of bullets starts with a short angle calculation. Use REA to inspect "
"the original DOS function, then follow its instructions into readable C++."
msgstr "弾丸のリングは、短い角度の計算で始まります。 REAを使用して元のDOS関数を検査し、その指示に従って読み取り可能なC++に従います。"
#: website/public/showcase/th04/index.html:204
msgctxt "page:showcase/th04/index.html"
msgid "PC-98 · 16-bit DOS · C++ and assembly"
msgstr "PC-98*16ビットDOS·C++およびアセンブリ"
#: website/public/showcase/th04/index.html:205
msgctxt "page:showcase/th04/index.html"
msgid "View the TH04 reconstruction"
msgstr "TH04再構成を見る"
#: website/public/showcase/th04/index.html:211
msgctxt "page:showcase/th04/index.html"
msgid "From original instructions to checked source"
msgstr "元の指示からチェックされたソースへ"
#. {ph0}: <span class="flow-label">
#. {ph1}: </span >
#. {ph2}: <strong class="flow-node">
#. {ph3}: </strong >
#. {ph4}: <span class="flow-note" >
#. {ph5}: </span >
#: website/public/showcase/th04/index.html:213
#, python-brace-format
msgctxt "page:showcase/th04/index.html"
msgid ""
"{ph0}01 · Original game{ph1}{ph2}MAIN.EXE{ph3}{ph4}The PC-98 executable and "
"its bullet-angle helper.{ph5}"
msgstr ""
"{ph0}01*オリジナルゲーム{ph1}{ph2}メイン...EXE{ph3}{ph4}PC-98実行可能ファイルとそのbullet-"
"angleヘルパー。{ph5}"
#. {ph0}: <span class="flow-label">
#. {ph1}: </span >
#. {ph2}: <strong class="flow-node">
#. {ph3}: </strong >
#. {ph4}: <span class="flow-note" >
#. {ph5}: </span >
#: website/public/showcase/th04/index.html:220
#, python-brace-format
msgctxt "page:showcase/th04/index.html"
msgid ""
"{ph0}02 · Inspect with REA{ph1}{ph2}Instructions + "
"references{ph3}{ph4}Verify the loaded DOS code and read the angle "
"calculation from the executable.{ph5}"
msgstr ""
"{ph0}02*REAと点検して下さい "
"{ph1}{ph2}説明書+参考文献{ph3}{ph4}ロードされたDOSコードを確認し、実行可能ファイルから角度計算を読み取ります。{ph5}"
#. {ph0}: <span class="flow-label">
#. {ph1}: </span >
#. {ph2}: <strong class="flow-node">
#. {ph3}: </strong >
#. {ph4}: <span class="flow-note" >
#. {ph5}: </span >
#: website/public/showcase/th04/index.html:228
#, python-brace-format
msgctxt "page:showcase/th04/index.html"
msgid ""
"{ph0}03 · Read the C++{ph1}{ph2}Space → aim → rotate{ph3}{ph4}Connect each "
"operation to the maintained reconstruction.{ph5}"
msgstr "{ph0}03*C++を読む{ph1}{ph2}スペース→狙い→回転{ph3}{ph4}各操作を維持された再構成に接続します。{ph5}"
#. {ph0}: <span class="flow-label">
#. {ph1}: </span >
#. {ph2}: <strong class="flow-node">
#. {ph3}: </strong >
#. {ph4}: <span class="flow-note" >
#. {ph5}: </span >
#: website/public/showcase/th04/index.html:235
#, python-brace-format
msgctxt "page:showcase/th04/index.html"
msgid ""
"{ph0}04 · Check the source{ph1}{ph2}2,139 matching bytes{ph3}{ph4}Recorded "
"compiler checks cover the bullet-generation code that contains this "
"helper.{ph5}"
msgstr ""
"{ph0}04*ソースを確認する{ph1}{ph2}一致するバイト数2,139件{ph3}{ph4}記録されたコンパイラチェックは、このヘルパーを含む箇条書き生成コードをカバーします。{ph5}"
#: website/public/showcase/th04/index.html:244
msgctxt "page:showcase/th04/index.html"
msgid ""
"REA returns the original code and its analysis evidence. The TH04 project "
"supplies the maintained source and compiler checks."
msgstr "REAは、元のコードとその分析証拠を返します。 TH04プロジェクトは、保守されたソースとコンパイラのチェックを提供します。"
#: website/public/showcase/th04/index.html:252
msgctxt "page:showcase/th04/index.html"
msgid "In this case study"
msgstr "このケーススタディでは"
#. {ph0}: <a href="#ring">
#. {ph1}: </a>
#: website/public/showcase/th04/index.html:254
#, python-brace-format
msgctxt "page:showcase/th04/index.html"
msgid "{ph0}The bullet ring{ph1}"
msgstr "{ph0}弾丸のリング{ph1}"
#. {ph0}: <a href="#rea">
#. {ph1}: </a>
#: website/public/showcase/th04/index.html:255
#, python-brace-format
msgctxt "page:showcase/th04/index.html"
msgid "{ph0}What REA returns{ph1}"
msgstr "{ph0}REAが返すもの{ph1}"
#. {ph0}: <a href="#source">
#. {ph1}: </a>
#: website/public/showcase/th04/index.html:256
#, python-brace-format
msgctxt "page:showcase/th04/index.html"
msgid "{ph0}Assembly to C++{ph1}"
msgstr "{ph0}C++へのアセンブリ{ph1}"
#. {ph0}: <a href="#checking">
#. {ph1}: </a>
#: website/public/showcase/th04/index.html:257
#, python-brace-format
msgctxt "page:showcase/th04/index.html"
msgid "{ph0}Checking the source{ph1}"
msgstr "{ph0}ソースの確認{ph1}"
#. {ph0}: <a href="#project">
#. {ph1}: </a>
#: website/public/showcase/th04/index.html:258
#, python-brace-format
msgctxt "page:showcase/th04/index.html"
msgid "{ph0}The full project{ph1}"
msgstr "{ph0}完全なプロジェクト{ph1}"
#: website/public/showcase/th04/index.html:263
msgctxt "page:showcase/th04/index.html"
msgid "How a ring aims at the player"
msgstr "リングがプレーヤーをどのように狙うか"
#: website/public/showcase/th04/index.html:264
msgctxt "page:showcase/th04/index.html"
msgid ""
"Elly's attack requests an aimed ring with an initial count of 16. One helper"
" calculates the direction of each bullet. The same ring can face a fixed "
"direction or turn toward the player."
msgstr ""
"エリーの攻撃は、最初のカウント16の目的としたリングを要求します。 一つのヘルパーは、各弾丸の方向を計算します。 "
"同じリングは、固定方向に直面したり、プレイヤーに向かって回すことができます。"
#. {ph0}: <span class="terminal-dots" aria-hidden="true" >
#. {ph1}: <i>
#. {ph2}: </i>
#. {ph3}: <i>
#. {ph4}: </i>
#. {ph5}: <i>
#. {ph6}: </i>
#. {ph7}: </span >
#: website/public/showcase/th04/index.html:271
#, python-brace-format
msgctxt "page:showcase/th04/index.html"
msgid "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}Your coding agent"
msgstr "{ph0}{ph1}{ph2}{ph3}{ph4}{ph5}{ph6}{ph7}あなたのコーディングエージェント"
#: website/public/showcase/th04/index.html:276
#: website/public/showcase/th04/index.html:332
#: website/public/showcase/th04/index.html:509
#: website/public/showcase/th04/index.html:543
msgctxt "page:showcase/th04/index.html"
msgid "Copy"
msgstr "コピー"
#. {ph0}: <span class="prompt-symbol" aria-hidden="true">
#. {ph1}: </span >
#. {ph2}: <span id="th04-prompt" >
#. {ph3}: </span >
#. {ph4}: <span class="terminal-cursor" aria-hidden="true">
#. {ph5}: </span>
#: website/public/showcase/th04/index.html:285
#, python-brace-format
msgctxt "page:showcase/th04/index.html"
msgid ""
"{ph0}›{ph1}{ph2}Use REA to find how TH04 creates a ring of bullets and aims "
"it at the player. Explain the calculation and show the code.{ph3}{ph4}{ph5}"
msgstr ""
"{ph0}›{ph1}{ph2}REAを使用して、TH04が弾丸のリングを作成し、プレイヤーにそれを向ける方法を見つけます。 "
"計算を説明し、コードを表示します。{ph3}{ph4}{ph5}"
#: website/public/showcase/th04/index.html:294
msgctxt "page:showcase/th04/index.html"
msgid ""
"An example prompt, with the original executable and reconstruction checkout "
"available locally."
msgstr "元の実行可能ファイルと再構築チェックアウトがローカルで利用可能なプロンプトの例。"
#. {ph0}: <code>0, 16, 32, …, 240</code>
#: website/public/showcase/th04/index.html:298
#, python-brace-format
msgctxt "page:showcase/th04/index.html"
msgid ""
"TH04 stores a full clockwise turn in 256 angle units. For 16 bullets, each "
"index adds 16 units: {ph0}. Adding the player's direction rotates those "
"positions together."
msgstr ""
"TH04は256の角度の単位で完全な右回りの回転を貯える。 16箇条書きの場合、各インデックスには16単位が追加されます: {ph0}. "
"プレイヤーの方向を追加すると、それらの位置が一緒に回転します。"
#. {ph0}: <a href="../../assets/figures/th04-bullet-ring.svg" >
#. {ph1}: </a >
#: website/public/showcase/th04/index.html:318
#, python-brace-format
msgctxt "page:showcase/th04/index.html"
msgid ""
"An illustration of the recovered angle math for count 16, player direction "
"40 and template rotation 0. {ph0}Open figure{ph1}"
msgstr "カウント16、プレイヤーの方向40、およびテンプレートの回転0のための回収された角度の数学の図。 {ph0}オープンフィギュア{ph1}"
#: website/public/showcase/th04/index.html:326
msgctxt "page:showcase/th04/index.html"
msgid "The firing template in the recovered source"
msgstr "回収されたソース内の発射テンプレート"
#: website/public/showcase/th04/index.html:331
msgctxt "page:showcase/th04/index.html"
msgid "Elly's ring attack · source excerpt"
msgstr "エリーのリングアタック·ソース抜粋"
#. {ph0}: <a
#. href="https://github.com/N0zoM1z0/th04/blob/0d72e9801a5c14c10384efcbb6734ceccb74ee63/src/main/boss/elly_phase_ring16.cpp#L26"
#. >
#. {ph1}: </a >
#: website/public/showcase/th04/index.html:346
#, python-brace-format
msgctxt "page:showcase/th04/index.html"
msgid ""
"These lines select the pattern before difficulty and performance tuning. "
"{ph0}Read the attack's source{ph1}."
msgstr "これらの行は、難易度とパフォーマンスチューニングの前にパターンを選択します。 {ph0}攻撃のソースを読む{ph1}."
#: website/public/showcase/th04/index.html:357
msgctxt "page:showcase/th04/index.html"
msgid "What REA returns"
msgstr "REAが返すもの"
#. {ph0}: <code>bullet_velocity_and_angle_set()</code>
#: website/public/showcase/th04/index.html:358
#, python-brace-format
msgctxt "page:showcase/th04/index.html"
msgid ""
"We inspect {ph0}, the function that sets each bullet's velocity and angle. "
"REA returns its instructions, pseudocode and references. Three parts of that"
" result explain the pattern."
msgstr ""
"私達は点検します {ph0}、各弾丸の速度と角度を設定する関数。 REAは、その命令、擬似コード、および参照を返します。 "
"その結果の3つの部分がパターンを説明しています。"
#: website/public/showcase/th04/index.html:366
msgctxt "page:showcase/th04/index.html"
msgid "Check the DOS image before reading its code"
msgstr "コードを読む前にDOSイメージを確認してください"
#: website/public/showcase/th04/index.html:387
msgctxt "page:showcase/th04/index.html"
msgid ""
"The check ties the loaded code and relocation records to the supplied "
"executable. The path above is shortened for display."
msgstr "このチェックは、ロードされたコードと再配置レコードを提供された実行可能ファイルに関連付けます。 上記のパスは表示のために短縮されています。"
#: website/public/showcase/th04/index.html:393
msgctxt "page:showcase/th04/index.html"
msgid "Read the ring's multiply and divide"
msgstr "リングの乗算と除算を読む"
#. {ph0}: <code>SI</code>
#. {ph1}: <code>DS:53AF</code>
#. {ph2}: <code>bullet_template.count</code>
#: website/public/showcase/th04/index.html:411
#, python-brace-format
msgctxt "page:showcase/th04/index.html"
msgid ""
"{ph0} holds the bullet index. The shift multiplies it by 256, then the "
"division uses the count read from {ph1}. The maintained source names that "
"field {ph2}. The complete sequence appears below."
msgstr ""
"{ph0} 箇条書きのインデックスを保持します。 シフトはそれに256を乗算し、除算はから読み取られたカウントを使用します {ph1}. "
"そのフィールドに保持されているソース名 {ph2}. 完全なシーケンスが以下に表示されます。"
#: website/public/showcase/th04/index.html:420
msgctxt "page:showcase/th04/index.html"
msgid "Find where the pattern turns toward the player"
msgstr "パターンがプレイヤーに向かって回転する場所を見つける"
#: website/public/showcase/th04/index.html:441
msgctxt "page:showcase/th04/index.html"
msgid ""
"The instruction operands expose two coordinate differences and a direction "
"helper. Its return value is added to the relative ring angle. Source names "
"make those addresses readable; REA lets the agent check the original "
"operations behind them."
msgstr ""
"命令オペランドは、2つの座標差と方向ヘルパーを公開します。 その戻り値は相対的なリング角度に追加されます。 "
"REAは、エージェントがそれらの背後にある元の操作をチェックすることができます。"
#: website/public/showcase/th04/index.html:452
msgctxt "page:showcase/th04/index.html"
msgid "From assembly to readable C++"
msgstr "アセンブリから読み取り可能なC++へ"
#: website/public/showcase/th04/index.html:453
msgctxt "page:showcase/th04/index.html"
msgid ""
"Select a step to match the original instructions with the angle calculation."
" This summary follows the aimed-ring path; the full source also handles "
"spreads, stacks and random patterns."
msgstr "元の指示と角度の計算に一致するステップを選択します。 完全なソースは、スプレッド、スタック、ランダムパターンも処理します。"
#. {ph0}: <span>
#. {ph1}: </span>
#: website/public/showcase/th04/index.html:464
#, python-brace-format
msgctxt "page:showcase/th04/index.html"
msgid "{ph0}01{ph1} Index"
msgstr "{ph0}01{ph1} インデックス"
#. {ph0}: <span>
#. {ph1}: </span>
#: website/public/showcase/th04/index.html:472
#, python-brace-format
msgctxt "page:showcase/th04/index.html"
msgid "{ph0}02{ph1} Space"
msgstr "{ph0}02{ph1} スペース"
#. {ph0}: <span>
#. {ph1}: </span>
#: website/public/showcase/th04/index.html:480
#, python-brace-format
msgctxt "page:showcase/th04/index.html"
msgid "{ph0}03{ph1} Aim"
msgstr "{ph0}03{ph1} Aim"
#. {ph0}: <span>
#. {ph1}: </span>
#: website/public/showcase/th04/index.html:488
#, python-brace-format
msgctxt "page:showcase/th04/index.html"
msgid "{ph0}04{ph1} Rotate"
msgstr "{ph0}04{ph1} 回転"
#. {ph0}: <span>
#. {ph1}: </span>
#: website/public/showcase/th04/index.html:496
#, python-brace-format
msgctxt "page:showcase/th04/index.html"
msgid "{ph0}05{ph1} Store"
msgstr "{ph0}05{ph1} 店舗"
#: website/public/showcase/th04/index.html:508
msgctxt "page:showcase/th04/index.html"
msgid "REA · original 16-bit instructions"
msgstr "REA•オリジナルの16ビット命令"
#: website/public/showcase/th04/index.html:542
msgctxt "page:showcase/th04/index.html"
msgid "Readable C++ · aimed-ring summary"
msgstr "-----------"
#. {ph0}: <strong>
#. {ph1}: </strong>
#. {ph2}: <code>SI</code>
#: website/public/showcase/th04/index.html:571
#, python-brace-format
msgctxt "page:showcase/th04/index.html"
msgid ""
"{ph0}01 · Read the bullet index.{ph1} The stack argument is loaded into "
"{ph2}. In a 16-bullet ring, this member index runs from 0 through 15."
msgstr ""
"{ph0}01*箇条書きの索引を読みます。{ph1} Stack引数は次の場所にロードされます {ph2}. "
"16箇条書きのリングでは、このメンバーインデックスは0から15まで実行されます。"
#. {ph0}: <strong>
#. {ph1}: </strong>
#. {ph2}: <code>SHL AX,8</code>
#. {ph3}: <code>IDIV</code>
#: website/public/showcase/th04/index.html:576
#, python-brace-format
msgctxt "page:showcase/th04/index.html"
msgid ""
"{ph0}02 · Space the directions around a full turn.{ph1} {ph2} multiplies by "
"256. The count is zero-extended into a word, then {ph3} divides the product "
"by that count. For count 16, each index advances 16 angle units."
msgstr ""
"{ph0}02*フルターンの周りの方向をスペースします。{ph1} {ph2} 256で乗算します。 カウントはゼロです-単語に拡張され、その後 "
"{ph3} 積をその数で除算します。 カウント16の場合、各インデックスは16の角度単位を進めます。"
#. {ph0}: <strong>
#. {ph1}: </strong>
#. {ph2}: <code>AX</code>
#: website/public/showcase/th04/index.html:583
#, python-brace-format
msgctxt "page:showcase/th04/index.html"
msgid ""
"{ph0}03 · Add the player direction.{ph1} The two subtractions form player-"
"minus-origin coordinates. The direction helper returns an angle in {ph2}; "
"adding it turns the whole ring toward the player."
msgstr ""
"{ph0}03*プレイヤーの方向を追加します。{ph1} 2つの減算は、プレーヤーマイナス原点座標を形成します。 方向ヘルパーは、角度を返します "
"{ph2};それを追加すると、リング全体がプレイヤーに向かって変わります。"
#. {ph0}: <strong>
#. {ph1}: </strong>
#. {ph2}: <code>ADD AL,[0x53ad]</code>
#: website/public/showcase/th04/index.html:589
#, python-brace-format
msgctxt "page:showcase/th04/index.html"
msgid ""
"{ph0}04 · Add the pattern's rotation.{ph1} {ph2} adds the template angle. "
"Elly's initial template sets it to zero; other patterns can use the same "
"helper with a rotation."
msgstr ""
"{ph0}04*パターンの回転を追加します。{ph1} {ph2} テンプレートの角度を追加します。 "
"Ellyの初期テンプレートはそれをゼロに設定します;他のパターンは回転で同じヘルパーを使うことができます。"
#. {ph0}: <strong>
#. {ph1}: </strong>
#. {ph2}: <code>AL</code>
#: website/public/showcase/th04/index.html:595
#, python-brace-format
msgctxt "page:showcase/th04/index.html"
msgid ""
"{ph0}05 · Keep the final angle in one byte.{ph1} The store writes {ph2} to "
"the spawn-angle field. Values wrap after 255, just as the unsigned-byte cast"
" does. The surrounding source also converts this angle and speed into "
"velocity."
msgstr ""
"{ph0}05*最終的な角度を1バイトに保ちます。{ph1} 店は書いています {ph2} spawn-angleフィールドに移動します。 "
"値は、符号なしバイトのキャストと同じように、255の後に折り返します。 周囲のソースもこの角度と速度を速度に変換します。"
#: website/public/showcase/th04/index.html:604
msgctxt "page:showcase/th04/index.html"
msgid ""
"The assembly selects the aimed-ring branch, aim calculation and final store."
" The C++ above is a readable summary. Compiler checks below apply to the "
"maintained source in the linked project."
msgstr ""
"アセンブリは目的とされたリング枝、目的の計算および最終的な店を選ぶ。 上記のC++は読みやすい要約です。 "
"以下のコンパイラチェックは、リンクされたプロジェクトの保守されたソースに適用されます。"
#: website/public/showcase/th04/index.html:610
msgctxt "page:showcase/th04/index.html"
msgid "Read the maintained ring and aim source"
msgstr "リングを読み、ソースを目指してください。"
#. {ph0}: <a
#. href="https://github.com/N0zoM1z0/th04/blob/0d72e9801a5c14c10384efcbb6734ceccb74ee63/src/main/bullet/add_impl.hpp#L4"
#. >
#. {ph1}: </a >
#. {ph2}: <a
#. href="https://github.com/N0zoM1z0/th04/blob/0d72e9801a5c14c10384efcbb6734ceccb74ee63/src/main/bullet/add.cpp#L422"
#. >
#. {ph3}: </a >
#. {ph4}: <a
#. href="https://github.com/N0zoM1z0/th04/blob/0d72e9801a5c14c10384efcbb6734ceccb74ee63/src/main/bullet/types.hpp#L6"
#. >
#. {ph5}: </a >
#: website/public/showcase/th04/index.html:639
#, python-brace-format
msgctxt "page:showcase/th04/index.html"
msgid ""
"{ph0}Ring macro{ph1} · {ph2}Aim and velocity source{ph3} · {ph4}Angle "
"representation{ph5}"
msgstr "{ph0}リングマクロ{ph1} · {ph2}目的および速度の源{ph3} · {ph4}角度表現{ph5}"
#: website/public/showcase/th04/index.html:659
msgctxt "page:showcase/th04/index.html"
msgid "Checking the maintained source"
msgstr "保守されたソースの確認"
#: website/public/showcase/th04/index.html:660
msgctxt "page:showcase/th04/index.html"
msgid ""
"The TH04 project's recorded checks compile the bullet-generation code, "
"including this helper, with its pinned Turbo C++ 4.0J toolchain."
msgstr ""
"TH04プロジェクトの記録されたチェックは、このヘルパーを含む箇条書き生成コードを、固定されたTurbo "
"C++4.0Jツールチェーンでコンパイルします。"
#: website/public/showcase/th04/index.html:667
msgctxt "page:showcase/th04/index.html"
msgid "2,139 matching bytes"
msgstr "一致するバイト数2,139件"
#: website/public/showcase/th04/index.html:668
msgctxt "page:showcase/th04/index.html"
msgid ""
"The compiled bullet-generation code matches a 2,139-byte section of the "
"original executable."
msgstr "コンパイルされた箇条書き生成コードは、元の実行可能ファイルの2,139バイトのセクションに一致します。"
#: website/public/showcase/th04/index.html:674
msgctxt "page:showcase/th04/index.html"
msgid "Two clean builds"
msgstr "二つのクリーンビルド"
#: website/public/showcase/th04/index.html:675
msgctxt "page:showcase/th04/index.html"
msgid ""
"Two separate builds produce the same matching bytes. The recorded input "
"hashes match the maintained source shown here."
msgstr "2つの別々のビルドでは、同じ一致するバイトが生成されます。 記録された入力ハッシュは、ここに示されている維持されたソースと一致します。"
#. {ph0}: <a
#. href="https://github.com/N0zoM1z0/th04/blob/0d72e9801a5c14c10384efcbb6734ceccb74ee63/docs/reconstruction/product/TH04_SEMANTIC_BULLET_GENERATION_V1236.md#validation"
#. >
#. {ph1}: </a >
#: website/public/showcase/th04/index.html:681
#, python-brace-format
msgctxt "page:showcase/th04/index.html"
msgid "Recorded on 3 October 2026. {ph0}Read the compiler checks{ph1}."
msgstr "2026年10月3日に録音されました。 {ph0}コンパイラチェックを読む{ph1}."
#: website/public/showcase/th04/index.html:689
msgctxt "page:showcase/th04/index.html"
msgid "Target identity and analysis scope"
msgstr "ターゲットidと分析範囲"
#: website/public/showcase/th04/index.html:694
msgctxt "page:showcase/th04/index.html"
msgid "Original target"
msgstr "元のターゲット"
#. {ph0}: <code>MAIN.EXE</code>
#: website/public/showcase/th04/index.html:695
#, python-brace-format
msgctxt "page:showcase/th04/index.html"
msgid "{ph0}, 156,258 bytes, DOS MZ"
msgstr "{ph0}、156,258バイト、DOS MZ"
#: website/public/showcase/th04/index.html:698
msgctxt "page:showcase/th04/index.html"
msgid "Helper entry"
msgstr "ヘルパーエントリー"
#. {ph0}: <code>0x2cfc8</code>
#: website/public/showcase/th04/index.html:699
#, python-brace-format
msgctxt "page:showcase/th04/index.html"
msgid "{ph0} in REA's loaded image"
msgstr "{ph0} REAのロードされたイメージで"
#: website/public/showcase/th04/index.html:702
msgctxt "page:showcase/th04/index.html"
msgid "Original file offset"
msgstr "元のファイルオフセット"
#. {ph0}: <code>0x1e7c8</code>
#. {ph1}: <code>address_to_file_offset</code>
#: website/public/showcase/th04/index.html:703
#, python-brace-format
msgctxt "page:showcase/th04/index.html"
msgid "{ph0}, returned by {ph1}"
msgstr "{ph0}、によって返される {ph1}"
#: website/public/showcase/th04/index.html:709
msgctxt "page:showcase/th04/index.html"
msgid "Recorded code inspection"
msgstr "記録されたコード検査"
#: website/public/showcase/th04/index.html:710
msgctxt "page:showcase/th04/index.html"
msgid "REA 4.1.0 · 7 October 2026"
msgstr "REA4.1.0•2026年10月7日"
#: website/public/showcase/th04/index.html:715
msgctxt "page:showcase/th04/index.html"
msgid ""
"Compiler checks cover the complete bullet-add code section, including this "
"helper. They also compare its MAP contribution and overlapping relocation."
msgstr ""
"コンパイラチェックは、このヘルパーを含む完全なbullet-add codeセクションをカバーしています。 "
"彼らはまた、そのマップの貢献と重複した再配置を比較します。"
#. {ph0}: <code>0x1000</code>
#: website/public/showcase/th04/index.html:720
#, python-brace-format
msgctxt "page:showcase/th04/index.html"
msgid ""
"REA verified the static DOS load image at load segment {ph0}. Its addresses "
"describe that analysis image. The function result reports 503 body bytes in "
"two ranges across a 517-byte span; the selected instructions above lie in "
"those reported ranges."
msgstr ""
"REAは負荷セグメントで静的DOS負荷イメージを検証しました {ph0}. そのアドレスは、その分析画像を記述します。 "
"関数の結果は、517バイトのスパンにわたって2つの範囲で503のボディバイトを報告します。上記の選択された命令は、それらの報告された範囲にあります。"
#. {ph0}: <code>0d72e980</code>
#: website/public/showcase/th04/index.html:727
#, python-brace-format
msgctxt "page:showcase/th04/index.html"
msgid ""
"The source names and compiler checks come from TH04 checkpoint {ph0}. "
"Earlier reconstruction observations used the project's own analysis scripts;"
" this page adds a fresh REA inspection of the same original target. The "
"supplied game's identity is pinned by its repository manifest, with "
"independent pristine-dump provenance still open."
msgstr ""
"ソース名とコンパイラチェックはTH04チェックポイントから来ています {ph0}. このページでは、同じ元のターゲットの新しいREA検査を追加します。 "
"提供されたゲームのアイデンティティは、リポジトリマニフェストによって固定されており、独立した原始的なダンプの出所はまだ開いています。"
#: website/public/showcase/th04/index.html:735
msgctxt "page:showcase/th04/index.html"
msgid ""
"The figure illustrates the angle calculation. Full-game controls, timing and"
" PC-98 hardware behavior have separate runtime checks in the reconstruction "
"project."
msgstr ""
"図は角度の計算を示しています。 "
"完全なゲームコントロール、タイミング、およびPC-98ハードウェアの動作には、再構築プロジェクトで別々のランタイムチェックがあります。"
#: website/public/showcase/th04/index.html:744
msgctxt "page:showcase/th04/index.html"
msgid "The full TH04 reconstruction"
msgstr "フルTH04の再構成"
#: website/public/showcase/th04/index.html:745
msgctxt "page:showcase/th04/index.html"
msgid ""
"The project builds the game's four DOS products from maintained C++ and "
"assembly. Beyond bullet generation, the source covers stages, bosses, "
"rendering, input, menus, endings and score handling."
msgstr ""
"このプロジェクトは、維持されたC++とアセンブリからゲームの4つのDOS製品を構築します。 "
"弾丸の生成を超えて、ソースはステージ、ボス、レンダリング、入力、メニュー、エンディングとスコアの処理をカバーしています。"
#. {ph0}: <a class="text-link" href="https://github.com/N0zoM1z0/th04" >
#. {ph1}: </a >
#: website/public/showcase/th04/index.html:751
#, python-brace-format
msgctxt "page:showcase/th04/index.html"
msgid "{ph0}Explore the TH04 repository{ph1}"
msgstr "{ph0}TH04リポジトリを探索する{ph1}"
#. {ph0}: <a
#. href="https://github.com/N0zoM1z0/th04/blob/0d72e9801a5c14c10384efcbb6734ceccb74ee63/src/main/bullet/add.cpp#L292"
#. >
#. {ph1}: </a >
#. {ph2}: <span >
#. {ph3}: </span >
#: website/public/showcase/th04/index.html:757
#, python-brace-format
msgctxt "page:showcase/th04/index.html"
msgid ""
"{ph0}Bullet-generation source{ph1}{ph2}The complete helper, other pattern "
"types and template tuning.{ph3}"
msgstr "{ph0}箇条書き生成ソース{ph1}{ph2}完全なヘルパー、他のパターンタイプとテンプレートチューニング。{ph3}"
#. {ph0}: <a
#. href="https://github.com/N0zoM1z0/th04/blob/0d72e9801a5c14c10384efcbb6734ceccb74ee63/docs/DOS_BUILD.md"
#. >
#. {ph1}: </a >
#. {ph2}: <span >
#. {ph3}: </span >
#: website/public/showcase/th04/index.html:766
#, python-brace-format
msgctxt "page:showcase/th04/index.html"
msgid ""
"{ph0}DOS build and run guide{ph1}{ph2}Build the source and test it in the "
"project's PC-98 emulator workflow.{ph3}"
msgstr ""
"{ph0}DOSビルドと実行ガイド{ph1}{ph2}ソースをビルドし、プロジェクトのPC-98エミュレーターのワークフローでテストします。{ph3}"
#. {ph0}: <a
#. href="https://github.com/N0zoM1z0/th04/blob/0d72e9801a5c14c10384efcbb6734ceccb74ee63/docs/RE_HANDOFF.md"
#. >
#. {ph1}: </a >
#. {ph2}: <span>
#. {ph3}: </span>
#: website/public/showcase/th04/index.html:775
#, python-brace-format
msgctxt "page:showcase/th04/index.html"
msgid ""
"{ph0}Current project state{ph1}{ph2}DOS verification and the separate native"
" x64 port.{ph3}"
msgstr "{ph0}現在のプロジェクトの状態{ph1}{ph2}DOS検証と別のネイティブx64ポート。{ph3}"
#: website/public/showcase/th04/index.html:6
msgctxt "page:showcase/th04/index.html"
msgid "TH04 Reverse Engineering: DOS Bullet Patterns — REA"
msgstr "TH04リバースエンジニアリング:DOS弾丸パターン-REA"
#: website/public/showcase/th04/index.html:7
msgctxt "page:showcase/th04/index.html"
msgid ""
"Inspect TH04's original 16-bit DOS code with REA. Follow the assembly and "
"recovered C++ to see how a ring of bullets is spaced and aimed at the "
"player."
msgstr ""
"TH04のREAの元の16ビットDOSコードを点検して下さい。 "
"アセンブリと回収されたC++に従って、弾丸のリングがどのように間隔をあけてプレイヤーに向けられているかを確認します。"
#: website/public/showcase/th04/index.html:251
msgctxt "page:showcase/th04/index.html"
msgid "On this page"
msgstr "このページでは"
#: website/public/showcase/th04/index.html:261
msgctxt "page:showcase/th04/index.html"
msgid "TH04 bullet-pattern case study"
msgstr "TH04弾丸パターンのケーススタディ"
#: website/public/showcase/th04/index.html:276
msgctxt "page:showcase/th04/index.html"
msgid "Copy TH04 example prompt"
msgstr "コピー TH04プロンプトの例"
#: website/public/showcase/th04/index.html:304
msgctxt "page:showcase/th04/index.html"
msgid ""
"TH04 fixed and aimed bullet rings; scroll horizontally on smaller screens"
msgstr "TH04固定および目的とした弾丸リング;小さな画面で水平にスクロールします"
#: website/public/showcase/th04/index.html:310
msgctxt "page:showcase/th04/index.html"
msgid ""
"Two diagrams of a 16-bullet ring. The fixed ring starts at angle zero. "
"Adding a player direction of 40 rotates every direction by the same amount; "
"the highlighted first bullet points toward the player. Both keep a spacing "
"of 16 angle units, or 22.5 degrees."
msgstr ""
"16弾のリングの2つの図。 固定リングは角度ゼロから始まります。 "
"40のプレイヤーの方向を追加すると、すべての方向が同じ量だけ回転します。強調表示された最初の箇条書きは、プレイヤーに向かって指します。 "
"どちらも16角度単位、つまり22.5度の間隔を保ちます。"
#: website/public/showcase/th04/index.html:332
msgctxt "page:showcase/th04/index.html"
msgid "Copy TH04 firing template"
msgstr "コピー TH04発射テンプレート"
#: website/public/showcase/th04/index.html:459
msgctxt "page:showcase/th04/index.html"
msgid "Follow the TH04 aimed-ring calculation"
msgstr "TH04の目的としたリング計算に従ってください"
#: website/public/showcase/th04/index.html:509
msgctxt "page:showcase/th04/index.html"
msgid "Copy TH04 assembly excerpt"
msgstr "コピー TH04アセンブリの抜粋"
#: website/public/showcase/th04/index.html:543
msgctxt "page:showcase/th04/index.html"
msgid "Copy readable aimed-ring calculation"
msgstr "コピー読み取り可能な目的のリング計算"
#: website/public/showcase/th04/index.html:800
msgctxt "page:showcase/th04/index.html"
msgid "Back to top"
msgstr "ページ上部へ"
#: website/public/assets/main.js:21
msgctxt "runtime"
msgid "Copied"
msgstr "コピーされた"
#: website/public/assets/main.js:32
msgctxt "runtime"
msgid "Selected"
msgstr "選択された"
#: website/public/assets/main.js:23
msgctxt "runtime"
msgid "Code copied to clipboard."
msgstr "クリップボードにコピーされたコード。"
#: website/public/assets/main.js:34
msgctxt "runtime"
msgid "Code selected. Use your keyboard to copy it."
msgstr "コードが選択されています。 キーボードを使ってコピーします。"
#: website/public/assets/main.js:148
#, python-brace-format
msgctxt "runtime"
msgid "REA on GitHub ({count})"
msgstr "REA上のGitHub({count})"
#: website/public/assets/dino-demo.js:77
#, python-brace-format
msgctxt "runtime"
msgid "Distance {distance}"
msgstr "距離 {distance}"
#: website/public/assets/dino-demo.js:87
msgctxt "runtime"
msgid "Hit a cactus. Try another speed."
msgstr "サボテンを打つ。 別の速度を試してみてください。"
#: website/public/assets/dino-demo.js:87
msgctxt "runtime"
msgid "Space or Jump ↑"
msgstr "スペースまたはジャンプ¶"
#: website/public/assets/dino-demo.js:97
msgctxt "runtime"
msgid "Play again"
msgstr "再びプレイ"
#: website/public/assets/dino-demo.js:97
#: website/public/assets/dino-demo.js:111
msgctxt "runtime"
msgid "Play"
msgstr "スタート"
#: website/public/assets/dino-demo.js:171
msgctxt "runtime"
msgid "Pause"
msgstr "一時停止"
#: website/public/assets/dino-demo.js:112
msgctxt "runtime"
msgid "Press Play, then jump over the cactus."
msgstr "プレスプレイは、その後、サボテンの上にジャンプします。"
#: website/public/assets/dino-demo.js:147
msgctxt "runtime"
msgid "Hit a cactus. Press Play again, or change the speed and restart."
msgstr "サボテンを打つ。 もう一度再生を押すか、速度を変更して再起動します。"
#: website/public/assets/dino-demo.js:172
msgctxt "runtime"
msgid "Running. Space or Jump clears a cactus."
msgstr "走っている。 スペースまたはジャンプはサボテンをクリアします。"
#: website/public/assets/dino-demo.js:183
#: website/public/assets/dino-demo.js:219
#: website/public/assets/dino-demo.js:224
msgctxt "runtime"
msgid "Paused. Press Play to continue."
msgstr "一時停止しました。 続行するには、[再生]を押します。"
#: website/public/assets/dino-demo.js:203
#, python-brace-format
msgctxt "runtime"
msgid "Fixed speed: {speed}. Space or Jump clears a cactus."
msgstr "固定速度: {speed}. スペースまたはジャンプはサボテンをクリアします。"
#: website/public/assets/dino-demo.js:206
#, python-brace-format
msgctxt "runtime"
msgid "Fixed speed: {speed}. Press Play to try it."
msgstr "固定速度: {speed}. プレイを押して試してみてください。"
#: website/public/assets/dino-demo.js:215
msgctxt "runtime"
msgid "Recovered rule: start at 6, then increase toward 13."
msgstr "回復されたルール:6から開始し、13に向かって増加します。"
#: website/public/assets/dino-demo.js:216
#, python-brace-format
msgctxt "runtime"
msgid "Fixed speed: {speed}."
msgstr "固定速度: {speed}."
#: website/public/assets/dino-demo.js:249
msgctxt "runtime"
msgid ""
"Replayed the recovered rule. All four values match the controlled original-"
"game check when rounded to three decimals."
msgstr "復元されたルールを再生しました。 4つの値はすべて、小数点以下3桁に丸められたときに制御されたオリジナルゲームのチェックと一致します。"
#: website/public/assets/dino-demo.js:252
msgctxt "runtime"
msgid ""
"The replay differs from the recorded original-game values. Compare the speed"
" rule and settings above."
msgstr "リプレイは、記録されたオリジナルゲームの値とは異なります。 上記の速度ルールと設定を比較してください。"
#: website/public/assets/aegis-demo.js:22
#, python-brace-format
msgctxt "runtime"
msgid "{start}–{end} seconds"
msgstr "{start}–{end} 秒"
#: website/public/assets/aegis-demo.js:29
#, python-brace-format
msgctxt "runtime"
msgid "{seconds} seconds, time block {block}"
msgstr "{seconds} 秒、時間ブロック {block}"
#: website/public/assets/aegis-demo.js:35
msgctxt "runtime"
msgid ""
"Interactive calculation is unavailable in this browser. The example shows "
"the code at 59 seconds."
msgstr "このブラウザでは、対話式計算は使用できません。 この例では、59秒のコードを示しています。"
#: website/public/assets/aegis-demo.js:62
msgctxt "runtime"
msgid "Checking…"
msgstr "チェック…"
#: website/public/assets/aegis-demo.js:76
#, python-brace-format
msgctxt "runtime"
msgid ""
"{passed} / {total} checks passed (six reference cases, at six and eight "
"digits)."
msgstr "{passed} / {total} チェックが渡されました(6つの参照ケース、6桁と8桁)。"
#: website/public/assets/aegis-demo.js:81
msgctxt "runtime"
msgid "Could not run the reference checks. Try again."
msgstr "参照チェックを実行できませんでした。 もう一度やり直してください。"
#: website/public/assets/figures/analyst-thinking.svg:2
msgctxt "figure:analyst-thinking.svg"
msgid "An analyst thinking at a computer"
msgstr "コンピュータで考えるアナリスト"
#: website/public/assets/figures/ctf-mask-equation.svg:2
#: website/public/assets/figures/ctf-mask-equation.svg:24
msgctxt "figure:ctf-mask-equation.svg"
msgid "One check reveals one character"
msgstr "一つのチェックは、一つの文字を明らかに"
#: website/public/assets/figures/ctf-mask-equation.svg:3
msgctxt "figure:ctf-mask-equation.svg"
msgid ""
"The seventh mask selects only position 21 in the six by six input grid. Its "
"character code must equal 55, so the character is 7. The other masks select "
"different positions and give further equations."
msgstr ""
"第七のマスクは、six by six入力グリッド内の位置21のみを選択します。 その文字コードは55に等しくなければならないので、文字は7です。 "
"他のマスクは異なる位置を選択し、さらに方程式を与えます。"
#: website/public/assets/figures/ctf-mask-equation.svg:25
msgctxt "figure:ctf-mask-equation.svg"
msgid "The seventh check. Cell labels are input positions, starting at 0."
msgstr "第七のチェック。 セルラベルは0から始まる入力位置です。"
#: website/public/assets/figures/ctf-mask-equation.svg:27
msgctxt "figure:ctf-mask-equation.svg"
msgid "Encoded mask: −21, +1, −14, 0"
msgstr "エンコードされたマスク:-21,+1,-14,0"
#: website/public/assets/figures/ctf-mask-equation.svg:28
msgctxt "figure:ctf-mask-equation.svg"
msgid "Skip 21 cells. Select 1. Skip 14. Stop at 0."
msgstr "21セルをスキップします。 1を選択します。 スキップ14。 0で停止します。"
#: website/public/assets/figures/ctf-mask-equation.svg:32
msgctxt "figure:ctf-mask-equation.svg"
msgid "Only one cell contributes to this sum"
msgstr "この合計に寄与するセルは1つだけです"
#: website/public/assets/figures/ctf-mask-equation.svg:35
msgctxt "figure:ctf-mask-equation.svg"
msgid "Position 21 in the flag must contain 7."
msgstr "旗の位置21には7が含まれている必要があります。"
#: website/public/assets/figures/ctf-mask-equation.svg:37
msgctxt "figure:ctf-mask-equation.svg"
msgid "Selected: one cell"
msgstr "選択された:1つのセル"
#: website/public/assets/figures/ctf-mask-equation.svg:38
msgctxt "figure:ctf-mask-equation.svg"
msgid "26 masks give 26 equations."
msgstr "26個のマスクは26個の方程式を与える。"
#: website/public/assets/figures/ctf-mask-equation.svg:39
msgctxt "figure:ctf-mask-equation.svg"
msgid "Solve them together to find the flag."
msgstr "フラグを見つけるために一緒にそれらを解決します。"
#: website/public/assets/figures/dx-ball-sound-pan-investigation.svg:2
#: website/public/assets/figures/dx-ball-sound-pan-investigation.svg:20
msgctxt "figure:dx-ball-sound-pan-investigation.svg"
msgid "DX-Ball sound-pan investigation"
msgstr "DX-Ballサウンドパン調査"
#: website/public/assets/figures/dx-ball-sound-pan-investigation.svg:3
msgctxt "figure:dx-ball-sound-pan-investigation.svg"
msgid ""
"REA provides the instruction, caller and byte-read evidence for one DX-Ball "
"function. A stack input is multiplied by 1.5625, offset by 500, scaled, and "
"converted to an integer. Maintained C is checked in 3,205 original-x86 cases"
" and a separate 63-byte compiler replay."
msgstr ""
"REAは、1つのDX-Ball関数の命令、呼び出し元、およびバイト読み取りの証拠を提供します。 "
"スタック入力は、1.5625を乗算し、500をオフセットし、スケーリングして整数に変換されます。 "
"Cは3,205個のオリジナル-x86ケースと63バイトのコンパイラ-リプレイでチェックされている。"
# Reviewed for technical meaning and concise diagram labels.
#: website/public/assets/figures/dx-ball-sound-pan-investigation.svg:39
msgctxt "figure:dx-ball-sound-pan-investigation.svg"
msgid "Stack"
msgstr "スタック"
# Reviewed for technical meaning and concise diagram labels.
#: website/public/assets/figures/dx-ball-sound-pan-investigation.svg:40
msgctxt "figure:dx-ball-sound-pan-investigation.svg"
msgid "input x"
msgstr "入力 x"
# Reviewed for technical meaning and concise diagram labels.
#: website/public/assets/figures/dx-ball-sound-pan-investigation.svg:44
msgctxt "figure:dx-ball-sound-pan-investigation.svg"
msgid "Integer"
msgstr "整数"
# Reviewed for technical meaning and concise diagram labels.
#: website/public/assets/figures/dx-ball-sound-pan-investigation.svg:45
msgctxt "figure:dx-ball-sound-pan-investigation.svg"
msgid "return"
msgstr "返す"
# Reviewed for technical meaning and concise diagram labels.
#: website/public/assets/figures/dx-ball-sound-pan-investigation.svg:46
msgctxt "figure:dx-ball-sound-pan-investigation.svg"
msgid "Reconstructed function"
msgstr "復元した関数"
# Reviewed for technical meaning and concise diagram labels.
#: website/public/assets/figures/dx-ball-sound-pan-investigation.svg:47
msgctxt "figure:dx-ball-sound-pan-investigation.svg"
msgid "Maintained C"
msgstr "保守可能な C"
# Reviewed for technical meaning and concise diagram labels.
#: website/public/assets/figures/dx-ball-sound-pan-investigation.svg:48
msgctxt "figure:dx-ball-sound-pan-investigation.svg"
msgid "Brick-hit caller"
msgstr "衝突時の呼び出し"
#: website/public/assets/figures/dx-ball-sound-pan-investigation.svg:49
msgctxt "figure:dx-ball-sound-pan-investigation.svg"
msgid "20 + 30 × tile_x"
msgstr "20 + 30 × tile_x"
# Reviewed for technical meaning and concise diagram labels.
#: website/public/assets/figures/dx-ball-sound-pan-investigation.svg:50
msgctxt "figure:dx-ball-sound-pan-investigation.svg"
msgid "Original code"
msgstr "元のコード"
# Reviewed for technical meaning and concise diagram labels.
#: website/public/assets/figures/dx-ball-sound-pan-investigation.svg:51
#: website/public/assets/figures/dx-ball-sound-pan-investigation.svg:54
msgctxt "figure:dx-ball-sound-pan-investigation.svg"
msgid "comparison"
msgstr "比較"
# Reviewed for technical meaning and concise diagram labels.
#: website/public/assets/figures/dx-ball-sound-pan-investigation.svg:52
msgctxt "figure:dx-ball-sound-pan-investigation.svg"
msgid "3,205 cases"
msgstr "3,205 件"
# Reviewed for technical meaning and concise diagram labels.
#: website/public/assets/figures/dx-ball-sound-pan-investigation.svg:53
msgctxt "figure:dx-ball-sound-pan-investigation.svg"
msgid "VC4.0 build"
msgstr "VC4.0 ビルド"
# Reviewed for technical meaning and concise diagram labels.
#: website/public/assets/figures/dx-ball-sound-pan-investigation.svg:55
msgctxt "figure:dx-ball-sound-pan-investigation.svg"
msgid "63 matching bytes"
msgstr "63 バイト一致"
#: website/public/assets/figures/rea-investigation-flow.svg:2
#: website/public/assets/figures/rea-investigation-flow.svg:22
msgctxt "figure:rea-investigation-flow.svg"
msgid "REA investigation flow"
msgstr "REA調査の流れ"
#: website/public/assets/figures/rea-investigation-flow.svg:3
msgctxt "figure:rea-investigation-flow.svg"
msgid ""
"Ask a question about a local target. REA inspects and traces through local "
"analysis adapters, returns evidence, and supports follow-up questions as "
"your agent explains, implements and tests."
msgstr ""
"ローカルターゲットについて質問します。 "
"REAは、ローカル分析アダプタを介して検査およびトレースし、証拠を返し、エージェントが説明、実装、テストする際にフォローアップの質問をサポートします。"
# Reviewed for technical meaning and concise diagram labels.
#: website/public/assets/figures/rea-investigation-flow.svg:31
msgctxt "figure:rea-investigation-flow.svg"
msgid "1. Ask"
msgstr "1. 質問"
# Reviewed for technical meaning and concise diagram labels.
#: website/public/assets/figures/rea-investigation-flow.svg:32
msgctxt "figure:rea-investigation-flow.svg"
msgid "Your agent + local target"
msgstr "エージェント + 対象"
# Reviewed for technical meaning and concise diagram labels.
#: website/public/assets/figures/rea-investigation-flow.svg:33
msgctxt "figure:rea-investigation-flow.svg"
msgid "App / binary / browser"
msgstr "アプリ / バイナリ / Web"
# Reviewed for technical meaning and concise diagram labels.
#: website/public/assets/figures/rea-investigation-flow.svg:34
msgctxt "figure:rea-investigation-flow.svg"
msgid "2. Inspect & trace"
msgstr "2. 調査と追跡"
#: website/public/assets/figures/rea-investigation-flow.svg:36
msgctxt "figure:rea-investigation-flow.svg"
msgid "CLI / MCP"
msgstr "CLI / MCP"
# Reviewed for technical meaning and concise diagram labels.
#: website/public/assets/figures/rea-investigation-flow.svg:37
msgctxt "figure:rea-investigation-flow.svg"
msgid "3. Read the evidence"
msgstr "3. 根拠を読む"
# Reviewed for technical meaning and concise diagram labels.
#: website/public/assets/figures/rea-investigation-flow.svg:38
msgctxt "figure:rea-investigation-flow.svg"
msgid "Code / references /"
msgstr "コード / 参照 /"
# Reviewed for technical meaning and concise diagram labels.
#: website/public/assets/figures/rea-investigation-flow.svg:39
msgctxt "figure:rea-investigation-flow.svg"
msgid "unknowns"
msgstr "不明点"
# Reviewed for technical meaning and concise diagram labels.
#: website/public/assets/figures/rea-investigation-flow.svg:40
msgctxt "figure:rea-investigation-flow.svg"
msgid "4. Use what you learn"
msgstr "4. 結果を使う"
# Reviewed for technical meaning and concise diagram labels.
#: website/public/assets/figures/rea-investigation-flow.svg:41
msgctxt "figure:rea-investigation-flow.svg"
msgid "Your agent"
msgstr "エージェント"
# Reviewed for technical meaning and concise diagram labels.
#: website/public/assets/figures/rea-investigation-flow.svg:42
msgctxt "figure:rea-investigation-flow.svg"
msgid "Explain / implement / test"
msgstr "説明 / 実装 / テスト"
# Reviewed for technical meaning and concise diagram labels.
#: website/public/assets/figures/rea-investigation-flow.svg:43
msgctxt "figure:rea-investigation-flow.svg"
msgid "Analysis tools"
msgstr "分析ツール"
# Reviewed for technical meaning and concise diagram labels.
#: website/public/assets/figures/rea-investigation-flow.svg:44
msgctxt "figure:rea-investigation-flow.svg"
msgid "Local analysis adapters"
msgstr "ローカル分析アダプター"
# Reviewed for technical meaning and concise diagram labels.
#: website/public/assets/figures/rea-investigation-flow.svg:45
msgctxt "figure:rea-investigation-flow.svg"
msgid "Follow-up question"
msgstr "追加の質問"
#: website/public/assets/figures/th04-bullet-ring.svg:2
msgctxt "figure:th04-bullet-ring.svg"
msgid "TH04: spacing and aiming a ring of bullets"
msgstr "TH04:弾丸のリングの間隔と照準"
#: website/public/assets/figures/th04-bullet-ring.svg:3
msgctxt "figure:th04-bullet-ring.svg"
msgid ""
"A full clockwise turn has 256 angle units. Sixteen bullets start at angles "
"zero, sixteen, thirty-two, through 240. Adding an example player direction "
"of forty turns all sixteen directions together; the first bullet points at "
"the player. Template rotation is zero."
msgstr ""
"完全な右回りの回転に256の角度の単位がある。 十六弾は、240を介して、角度ゼロ、十六、三十から二から始まります。 "
"四十の例のプレイヤーの方向を追加すると、すべての十六方向が一緒になります。 テンプレートの回転はゼロです。"
#: website/public/assets/figures/th04-bullet-ring.svg:24
msgctxt "figure:th04-bullet-ring.svg"
msgid "Fixed ring"
msgstr "固定リング"
#: website/public/assets/figures/th04-bullet-ring.svg:25
msgctxt "figure:th04-bullet-ring.svg"
msgid "First bullet: angle 0"
msgstr "第一弾:アングル0"
#: website/public/assets/figures/th04-bullet-ring.svg:26
msgctxt "figure:th04-bullet-ring.svg"
msgid "Aimed ring"
msgstr "目的としたリング"
#: website/public/assets/figures/th04-bullet-ring.svg:27
msgctxt "figure:th04-bullet-ring.svg"
msgid "First bullet: player direction"
msgstr "第一弾:プレイヤーの方向性"
# Reviewed for technical meaning and concise diagram labels.
#: website/public/assets/figures/th04-bullet-ring.svg:64
#: website/public/assets/figures/th04-bullet-ring.svg:102
msgctxt "figure:th04-bullet-ring.svg"
msgid "Origin"
msgstr "原点"
#: website/public/assets/figures/th04-bullet-ring.svg:105
msgctxt "figure:th04-bullet-ring.svg"
msgid "Player"
msgstr "プレーヤー"
#: website/public/assets/figures/th04-bullet-ring.svg:110
msgctxt "figure:th04-bullet-ring.svg"
msgid "Same spacing: 256 ÷ 16 = 16 angle units = 22.5°"
msgstr "同じ間隔:256÷16=16角度単位=22.5°"
#: website/public/blog/index.html:114
#: website/public/blog/reverse-engineering-models/index.html:114
#: website/public/blog/touhou-reconstruction/index.html:114
#: website/public/examples/dino-lab/index.html:115
#: website/public/faq/index.html:114
#: website/public/first-investigation/index.html:114
#: website/public/get-started/index.html:114
#: website/public/guides/browser/index.html:114
#: website/public/guides/index.html:114
#: website/public/guides/javascript/index.html:114
#: website/public/guides/native/index.html:114 website/public/index.html:116
#: website/public/showcase/aegis/index.html:115
#: website/public/showcase/ctf/index.html:114
#: website/public/showcase/dx-ball/index.html:114
#: website/public/showcase/index.html:114
#: website/public/showcase/notion/index.html:114
#: website/public/showcase/th04/index.html:114
msgctxt "shared"
msgid "Showcases"
msgstr "事例"
#: website/public/blog/index.html:115
#: website/public/blog/reverse-engineering-models/index.html:115
#: website/public/blog/touhou-reconstruction/index.html:115
#: website/public/examples/dino-lab/index.html:116
#: website/public/faq/index.html:115
#: website/public/first-investigation/index.html:115
#: website/public/get-started/index.html:115
#: website/public/guides/browser/index.html:115
#: website/public/guides/index.html:115
#: website/public/guides/javascript/index.html:115
#: website/public/guides/native/index.html:115 website/public/index.html:117
#: website/public/showcase/aegis/index.html:116
#: website/public/showcase/ctf/index.html:115
#: website/public/showcase/dx-ball/index.html:115
#: website/public/showcase/index.html:115
#: website/public/showcase/notion/index.html:115
#: website/public/showcase/th04/index.html:115
msgctxt "shared"
msgid "Blog"
msgstr "ブログ"
#: website/public/blog/index.html:113
#: website/public/blog/reverse-engineering-models/index.html:113
#: website/public/blog/touhou-reconstruction/index.html:113
#: website/public/examples/dino-lab/index.html:114
#: website/public/faq/index.html:113
#: website/public/first-investigation/index.html:113
#: website/public/get-started/index.html:113
#: website/public/guides/browser/index.html:113
#: website/public/guides/index.html:113
#: website/public/guides/javascript/index.html:113
#: website/public/guides/native/index.html:113 website/public/index.html:115
#: website/public/showcase/aegis/index.html:114
#: website/public/showcase/ctf/index.html:113
#: website/public/showcase/dx-ball/index.html:113
#: website/public/showcase/index.html:113
#: website/public/showcase/notion/index.html:113
#: website/public/showcase/th04/index.html:113
msgctxt "shared"
msgid "Get started"
msgstr "はじめる"
#: website/public/blog/index.html:116
#: website/public/blog/reverse-engineering-models/index.html:116
#: website/public/blog/touhou-reconstruction/index.html:116
#: website/public/examples/dino-lab/index.html:117
#: website/public/faq/index.html:116
#: website/public/first-investigation/index.html:116
#: website/public/get-started/index.html:116
#: website/public/guides/browser/index.html:116
#: website/public/guides/index.html:116
#: website/public/guides/javascript/index.html:116
#: website/public/guides/native/index.html:116 website/public/index.html:118
#: website/public/showcase/aegis/index.html:117
#: website/public/showcase/ctf/index.html:116
#: website/public/showcase/dx-ball/index.html:116
#: website/public/showcase/index.html:116
#: website/public/showcase/notion/index.html:116
#: website/public/showcase/th04/index.html:116
msgctxt "shared"
msgid "Guides"
msgstr "ガイド"
#: website/public/blog/index.html:236
#: website/public/blog/reverse-engineering-models/index.html:875
#: website/public/blog/touhou-reconstruction/index.html:1072
#: website/public/examples/dino-lab/index.html:467
#: website/public/faq/index.html:565
#: website/public/first-investigation/index.html:515
#: website/public/get-started/index.html:874
#: website/public/guides/browser/index.html:499
#: website/public/guides/index.html:274
#: website/public/guides/javascript/index.html:495
#: website/public/guides/native/index.html:501 website/public/index.html:1183
#: website/public/showcase/aegis/index.html:800
#: website/public/showcase/ctf/index.html:769
#: website/public/showcase/dx-ball/index.html:777
#: website/public/showcase/index.html:309
#: website/public/showcase/notion/index.html:623
#: website/public/showcase/th04/index.html:792
msgctxt "shared"
msgid "Source"
msgstr "ソースコード"
#: website/public/blog/index.html:237
#: website/public/blog/reverse-engineering-models/index.html:876
#: website/public/blog/touhou-reconstruction/index.html:1073
#: website/public/examples/dino-lab/index.html:468
#: website/public/faq/index.html:566
#: website/public/first-investigation/index.html:516
#: website/public/get-started/index.html:875
#: website/public/guides/browser/index.html:500
#: website/public/guides/index.html:275
#: website/public/guides/javascript/index.html:496
#: website/public/guides/native/index.html:502 website/public/index.html:1184
#: website/public/showcase/aegis/index.html:801
#: website/public/showcase/ctf/index.html:770
#: website/public/showcase/dx-ball/index.html:778
#: website/public/showcase/index.html:310
#: website/public/showcase/notion/index.html:624
#: website/public/showcase/th04/index.html:793
msgctxt "shared"
msgid "MIT license"
msgstr "MIT ライセンス"
#: website/public/blog/index.html:238
#: website/public/blog/reverse-engineering-models/index.html:877
#: website/public/blog/touhou-reconstruction/index.html:1074
#: website/public/examples/dino-lab/index.html:469
#: website/public/faq/index.html:567
#: website/public/first-investigation/index.html:517
#: website/public/get-started/index.html:876
#: website/public/guides/browser/index.html:501
#: website/public/guides/index.html:276
#: website/public/guides/javascript/index.html:497
#: website/public/guides/native/index.html:503 website/public/index.html:1185
#: website/public/showcase/aegis/index.html:802
#: website/public/showcase/ctf/index.html:771
#: website/public/showcase/dx-ball/index.html:779
#: website/public/showcase/index.html:311
#: website/public/showcase/notion/index.html:625
#: website/public/showcase/th04/index.html:794
msgctxt "shared"
msgid "Join the community"
msgstr "コミュニティに参加"
#: website/public/blog/index.html:239
#: website/public/blog/reverse-engineering-models/index.html:878
#: website/public/blog/touhou-reconstruction/index.html:1075
#: website/public/examples/dino-lab/index.html:470
#: website/public/faq/index.html:568
#: website/public/first-investigation/index.html:518
#: website/public/get-started/index.html:877
#: website/public/guides/browser/index.html:502
#: website/public/guides/index.html:277
#: website/public/guides/javascript/index.html:498
#: website/public/guides/native/index.html:504 website/public/index.html:1186
#: website/public/showcase/aegis/index.html:803
#: website/public/showcase/ctf/index.html:772
#: website/public/showcase/dx-ball/index.html:780
#: website/public/showcase/index.html:312
#: website/public/showcase/notion/index.html:626
#: website/public/showcase/th04/index.html:795
msgctxt "shared"
msgid "Follow us on X"
msgstr "X でフォロー"
#: website/public/examples/dino-lab/index.html:306
msgctxt "page:examples/dino-lab/index.html"
msgid "REA · selected script source"
msgstr "REA*選択したスクリプトソース"
#: website/public/first-investigation/index.html:374
msgctxt "page:first-investigation/index.html"
msgid "Source"
msgstr "ソースコード"
#: website/public/first-investigation/index.html:428
msgctxt "page:first-investigation/index.html"
msgid "Expected formatter output"
msgstr "期待されるフォーマッタ出力"
#: website/public/guides/index.html:219
msgctxt "page:guides/index.html"
msgid "Instructions"
msgstr "説明書"
#: website/public/guides/index.html:220
msgctxt "page:guides/index.html"
msgid "Caller"
msgstr "発信者"
#: website/public/guides/index.html:221
msgctxt "page:guides/index.html"
msgid "Constants"
msgstr "定数"
#: website/public/guides/index.html:222
msgctxt "page:guides/index.html"
msgid "C function"
msgstr "C関数"
#: website/public/guides/index.html:237
msgctxt "page:guides/index.html"
msgid "Button"
msgstr "ボタン"
#: website/public/guides/index.html:238
msgctxt "page:guides/index.html"
msgid "Preload API"
msgstr "プリロードAPI"
#: website/public/guides/index.html:239
msgctxt "page:guides/index.html"
msgid "IPC"
msgstr "IPC"
#: website/public/guides/index.html:239
msgctxt "page:guides/index.html"
msgid "CSV file"
msgstr "CSVファイル"
#: website/public/guides/index.html:259
msgctxt "page:guides/index.html"
msgid "Your click"
msgstr "あなたのかちりと言う音"
#: website/public/guides/index.html:260
msgctxt "page:guides/index.html"
msgid "Captured request"
msgstr "キャプチャリクエスト"
#: website/public/guides/index.html:261
msgctxt "page:guides/index.html"
msgid "Export script"
msgstr "エクスポートスクリプト"
#: website/public/guides/javascript/index.html:357
msgctxt "page:guides/javascript/index.html"
msgid "REA result · summary.ipc excerpt"
msgstr "REA結果·概要。ipc抜粋"
#: website/public/guides/native/index.html:384
msgctxt "page:guides/native/index.html"
msgid "REA instruction excerpt · 0x406409"
msgstr "REA命令の抜粋·0x406409"
#: website/public/guides/native/index.html:398
msgctxt "page:guides/native/index.html"
msgid "REA caller excerpt · 0x411f5b"
msgstr "REA発信者の抜粋*0x411f5b"
#: website/public/guides/native/index.html:412
msgctxt "page:guides/native/index.html"
msgid "REA byte results · interpreted as little-endian doubles"
msgstr "REAバイトの結果·リトルエンディアンの倍精度として解釈されます"
#: website/public/guides/native/index.html:429
msgctxt "page:guides/native/index.html"
msgid "Recovered C · excerpt"
msgstr "回収されたC*抜粋"
#: website/public/index.html:232
msgctxt "page:index.html"
msgid "See how REA works ↓"
msgstr "REA の使い方を見る ↓"
#: website/public/index.html:239
msgctxt "page:index.html"
msgid "Showcases →"
msgstr "ショーケース→"
#: website/public/index.html:749
msgctxt "page:index.html"
msgid "Selected settings from the inspected script"
msgstr "検査されたスクリプトから選択された設定"
#: website/public/index.html:921
msgctxt "page:index.html"
msgid "Readable summary of the % handler"
msgstr "%ハンドラーの読み取り可能な要約"
#: website/public/index.html:985
msgctxt "page:index.html"
msgid "REA · selected original instructions"
msgstr "REA*選択されたオリジナルの指示"
#: website/public/index.html:996
msgctxt "page:index.html"
msgid "Operator IDs · Microsoft’s source"
msgstr "オペレーター Id·Microsoftのソース"
#: website/public/index.html:1170
msgctxt "page:index.html"
msgid "Follow @reatools on X"
msgstr "Xの@reatoolsに従ってください"
#: website/public/showcase/aegis/index.html:399
#: website/public/showcase/aegis/index.html:431
msgctxt "page:showcase/aegis/index.html"
msgid "Agent → REA"
msgstr "エージェント→REA"
#: website/public/showcase/aegis/index.html:409
msgctxt "page:showcase/aegis/index.html"
msgid "REA → agent · selected results"
msgstr "REA→エージェント*選択された結果"
#: website/public/showcase/aegis/index.html:445
msgctxt "page:showcase/aegis/index.html"
msgid "REA → agent · methods and callers"
msgstr "REA→エージェント*メソッドと呼び出し元"
#: website/public/showcase/aegis/index.html:515
msgctxt "page:showcase/aegis/index.html"
msgid "REA · selected decompiled Java"
msgstr "REA*選択された逆コンパイルされたJava"
#: website/public/showcase/aegis/index.html:545
msgctxt "page:showcase/aegis/index.html"
msgid "Readable summary · agent's interpretation"
msgstr "読みやすい要約*エージェントの解釈"
#: website/public/showcase/aegis/index.html:600
msgctxt "page:showcase/aegis/index.html"
msgid "REA · generateOTP, complete body"
msgstr "REA*generateOTP、完全なボディ"
#: website/public/showcase/aegis/index.html:718
msgctxt "page:showcase/aegis/index.html"
msgid "Download Aegis APK"
msgstr "ダウンロードAegis APK"
#: website/public/showcase/aegis/index.html:722
msgctxt "page:showcase/aegis/index.html"
msgid "Download Android analysis provider"
msgstr "Android分析プロバイダーをダウンロード"
#: website/public/showcase/ctf/index.html:302
#: website/public/showcase/ctf/index.html:338
msgctxt "page:showcase/ctf/index.html"
msgid "Agent → REA"
msgstr "エージェント→REA"
#: website/public/showcase/ctf/index.html:318
msgctxt "page:showcase/ctf/index.html"
msgid "REA → agent · selected results"
msgstr "REA→エージェント*選択された結果"
#: website/public/showcase/ctf/index.html:350
msgctxt "page:showcase/ctf/index.html"
msgid "REA → agent · selected instructions"
msgstr "REA→エージェント*選択された指示"
#: website/public/showcase/ctf/index.html:413
msgctxt "page:showcase/ctf/index.html"
msgid "Agent → REA · read_bytes"
msgstr "エージェント→REA*read_bytes"
#: website/public/showcase/ctf/index.html:420
msgctxt "page:showcase/ctf/index.html"
msgid "REA → agent · seventh entries"
msgstr "REA→エージェント·セブンスエントリ"
#: website/public/showcase/ctf/index.html:688
msgctxt "page:showcase/ctf/index.html"
msgid "Original executable · SHA-256"
msgstr "オリジナルの実行可能ファイル·SHA-256"
#: website/public/showcase/ctf/index.html:724
msgctxt "page:showcase/ctf/index.html"
msgid "Download the original challenge"
msgstr "オリジナルの挑戦をダウンロード"
#: website/public/showcase/ctf/index.html:728
msgctxt "page:showcase/ctf/index.html"
msgid "Download solver"
msgstr "ソルバーをダウンロード"
#: website/public/showcase/dx-ball/index.html:329
msgctxt "page:showcase/dx-ball/index.html"
msgid "REA result · pseudocode excerpt"
msgstr "REA結果*擬似コードの抜粋"
#. {ph0}: <code>analyze_function</code>
#: website/public/showcase/dx-ball/index.html:352
#: website/public/showcase/dx-ball/index.html:376
#, python-brace-format
msgctxt "page:showcase/dx-ball/index.html"
msgid "Agent → REA · {ph0}"
msgstr "エージェント→REA · {ph0}"
#: website/public/showcase/dx-ball/index.html:358
msgctxt "page:showcase/dx-ball/index.html"
msgid "REA → agent · instruction excerpt"
msgstr "REA→エージェント*命令抜粋"
#: website/public/showcase/dx-ball/index.html:382
msgctxt "page:showcase/dx-ball/index.html"
msgid "REA → agent · caller excerpt"
msgstr "REA→エージェント*発信者の抜粋"
#. {ph0}: <code>read_bytes</code>
#: website/public/showcase/dx-ball/index.html:400
#, python-brace-format
msgctxt "page:showcase/dx-ball/index.html"
msgid "Agent → REA · two {ph0} requests"
msgstr "エージェント→REA·2 {ph0} ご要望-ご要望"
#: website/public/showcase/dx-ball/index.html:410
msgctxt "page:showcase/dx-ball/index.html"
msgid "REA byte results · decoded as doubles"
msgstr "REAバイト結果*ダブルとしてデコード"
#: website/public/showcase/dx-ball/index.html:763
msgctxt "page:showcase/dx-ball/index.html"
msgid "Start with your own target"
msgstr "あなた自身のターゲットから始めて下さい"
#: website/public/showcase/index.html:212
msgctxt "page:showcase/index.html"
msgid "APK"
msgstr "APK"
#: website/public/showcase/index.html:213
msgctxt "page:showcase/index.html"
msgid "Generating code"
msgstr "コードの生成"
#: website/public/showcase/index.html:214
msgctxt "page:showcase/index.html"
msgid "Recovered rule"
msgstr "回復されたルール"
#: website/public/showcase/index.html:215
msgctxt "page:showcase/index.html"
msgid "Adjustable clock"
msgstr "調節可能な時計"
#: website/public/showcase/index.html:230
msgctxt "page:showcase/index.html"
msgid "Binary"
msgstr "バイナリ"
#: website/public/showcase/index.html:231
msgctxt "page:showcase/index.html"
msgid "Checking code"
msgstr "コードの確認"
#: website/public/showcase/index.html:232
msgctxt "page:showcase/index.html"
msgid "Equations"
msgstr "方程式"
#: website/public/showcase/index.html:233
msgctxt "page:showcase/index.html"
msgid "Correct!"
msgstr "正解!"
#: website/public/showcase/index.html:249
msgctxt "page:showcase/index.html"
msgid "Executable"
msgstr "実行可能ファイル"
#: website/public/showcase/index.html:250
msgctxt "page:showcase/index.html"
msgid "REA findings"
msgstr "REA調査結果"
#: website/public/showcase/index.html:251
msgctxt "page:showcase/index.html"
msgid "Recovered C"
msgstr "回収されたC"
#: website/public/showcase/index.html:252
msgctxt "page:showcase/index.html"
msgid "Validation"
msgstr "検証"
#: website/public/showcase/index.html:267
msgctxt "page:showcase/index.html"
msgid "Packaged app"
msgstr "パッケージ化されたアプリ"
#: website/public/showcase/index.html:268
msgctxt "page:showcase/index.html"
msgid "Exposed API"
msgstr "公開されたAPI"
#: website/public/showcase/index.html:269
msgctxt "page:showcase/index.html"
msgid "IPC wrappers"
msgstr "IPCラッパー"
#: website/public/showcase/index.html:270
msgctxt "page:showcase/index.html"
msgid "Clipboard"
msgstr "クリップボード"
#: website/public/showcase/index.html:285
msgctxt "page:showcase/index.html"
msgid "Original DOS code"
msgstr "元のDOSコード"
#: website/public/showcase/index.html:286
msgctxt "page:showcase/index.html"
msgid "REA instructions"
msgstr "REA命令"
#: website/public/showcase/index.html:287
msgctxt "page:showcase/index.html"
msgid "Angle calculation"
msgstr "角度計算"
#: website/public/showcase/index.html:288
msgctxt "page:showcase/index.html"
msgid "Bullet ring"
msgstr "弾丸リング"
#: website/public/showcase/notion/index.html:304
msgctxt "page:showcase/notion/index.html"
msgid "Exposed page API"
msgstr "公開されたページAPI"
#: website/public/showcase/notion/index.html:310
msgctxt "page:showcase/notion/index.html"
msgid "Renderer IPC call"
msgstr "レンダラIPCコール"
#: website/public/showcase/notion/index.html:472
msgctxt "page:showcase/notion/index.html"
msgid "Sent to the system clipboard"
msgstr "システムのクリップボードに送信されます"
#: website/public/showcase/notion/index.html:480
msgctxt "page:showcase/notion/index.html"
msgid "Saved locally by Notion"
msgstr "Notionによってローカルに保存されます"
#: website/public/showcase/notion/index.html:525
msgctxt "page:showcase/notion/index.html"
msgid "Markdown input"
msgstr "マークダウン入力"
#: website/public/showcase/notion/index.html:532
msgctxt "page:showcase/notion/index.html"
msgid "Structured parser output · excerpt"
msgstr "構造化パーサー出力*抜粋"
#: website/public/showcase/notion/index.html:609
msgctxt "page:showcase/notion/index.html"
msgid "Analyze your own app"
msgstr "独自のアプリを分析する"
#: website/public/showcase/th04/index.html:369
msgctxt "page:showcase/th04/index.html"
msgid "Agent → REA"
msgstr "エージェント→REA"
#: website/public/showcase/th04/index.html:378
msgctxt "page:showcase/th04/index.html"
msgid "REA → agent · selected fields"
msgstr "REA→エージェント·選択されたフィールド"
#. {ph0}: <code>analyze_function</code>
#: website/public/showcase/th04/index.html:397
#, python-brace-format
msgctxt "page:showcase/th04/index.html"
msgid "Agent → REA · {ph0}"
msgstr "エージェント→REA · {ph0}"
#: website/public/showcase/th04/index.html:403
msgctxt "page:showcase/th04/index.html"
msgid "REA → agent · instruction excerpt"
msgstr "REA→エージェント*命令抜粋"
#: website/public/showcase/th04/index.html:424
msgctxt "page:showcase/th04/index.html"
msgid "Same function result · aim excerpt"
msgstr "同じ機能結果-目安抜粋"
#: website/public/showcase/th04/index.html:433
msgctxt "page:showcase/th04/index.html"
msgid "Corresponding maintained C++"
msgstr "対応c++"
#: website/public/showcase/th04/index.html:613
msgctxt "page:showcase/th04/index.html"
msgid "Ring macro · TH04 branch, excerpt"
msgstr "リングマクロ·TH04ブランチ、抜粋"
#: website/public/showcase/th04/index.html:623
msgctxt "page:showcase/th04/index.html"
msgid "Angle and velocity · source excerpt"
msgstr "角度と速度·ソース抜粋"
#: website/public/assets/home.js:29
msgctxt "runtime"
msgid "Press % to see what happens to 10."
msgstr "%を押して、10に何が起こるかを確認します。"
#: website/public/assets/home.js:32
msgctxt "runtime"
msgid "10% of 200 is 20. Press = to add it."
msgstr "200の10%は20です。 =を押して追加します。"
#: website/public/assets/home.js:33
msgctxt "runtime"
msgid "For multiplication, 10 becomes 0.1. Press = to multiply."
msgstr "乗算の場合、10は0.1になります。 =を押して乗算します。"
#: scripts/website_i18n.py
msgctxt "runtime"
msgid "Translation is being updated. Read this page in English for now."
msgstr "翻訳が更新されています。 今のところ英語でこのページを読んでください。"
#. {ph0}: <span class="prompt-symbol" aria-hidden="true">
#. {ph1}: </span >
#. {ph2}: <span id="faq-analysis-prompt" >
#. {ph3}: <span translate="no">/absolute/path/to/app</span>
#. {ph4}: </span >
#. {ph5}: <span class="terminal-cursor" aria-hidden="true">
#. {ph6}: </span>
#: website/public/faq/index.html:425
#, python-brace-format
msgctxt "page:faq/index.html"
msgid ""
"{ph0}›{ph1}{ph2}Use REA to analyze {ph3} and explain how it exports data. "
"Show the relevant code and source locations.{ph4}{ph5}{ph6}"
msgstr ""
"{ph0}›{ph1}{ph2}REAを使用して分析する {ph3} データをエクスポートする方法を説明します。 "
"関連するコードとソースの場所を表示します。{ph4}{ph5}{ph6}"
#. {ph0}: <span class="prompt-symbol" aria-hidden="true">
#. {ph1}: </span >
#. {ph2}: <span id="first-install-prompt" >
#. {ph3}: <span translate="no">npx rea-agents@latest setup</span>
#. {ph4}: </span >
#. {ph5}: <span class="terminal-cursor" aria-hidden="true">
#. {ph6}: </span>
#: website/public/first-investigation/index.html:243
#, python-brace-format
msgctxt "page:first-investigation/index.html"
msgid ""
"{ph0}›{ph1}{ph2}Install REA and connect it to this coding agent using {ph3}."
" Show me the setup plan for approval, then verify the "
"installation.{ph4}{ph5}{ph6}"
msgstr ""
"{ph0}›{ph1}{ph2}{ph3} を使って REA "
"をインストールし、このコーディングエージェントに接続してください。まず変更内容を提示し、私が承認してから実行してください。その後、インストールを確認してください。{ph4}{ph5}{ph6}"
#. {ph0}: <span class="prompt-symbol" aria-hidden="true">
#. {ph1}: </span >
#. {ph2}: <span id="first-analysis-prompt" >
#. {ph3}: <span translate="no" >https://rea.tools/examples/notes-
#. example.zip</span >
#. {ph4}: <span translate="no">notes.csv</span>
#. {ph5}: </span >
#. {ph6}: <span class="terminal-cursor" aria-hidden="true">
#. {ph7}: </span>
#: website/public/first-investigation/index.html:293
#, python-brace-format
msgctxt "page:first-investigation/index.html"
msgid ""
"{ph0}›{ph1}{ph2}Download {ph3} into a new example folder and unpack it. Use "
"REA to find what happens when I click Export notes. Show where {ph4} is "
"written, which fields it contains, and the relevant files and "
"lines.{ph5}{ph6}{ph7}"
msgstr ""
"{ph0}›{ph1}{ph2}ダウンロード {ph3} 新しいサンプルフォルダに解凍します。 "
"REAを使用して、[ノートのエクスポート]をクリックしたときに何が起こるかを確認します。 どこに表示しますか {ph4} "
"が書き込まれ、どのフィールドが含まれているか、関連するファイルと行が書き込まれます。{ph5}{ph6}{ph7}"
#. {ph0}: <span class="prompt-symbol" aria-hidden="true">
#. {ph1}: </span >
#. {ph2}: <span id="agent-install-prompt" >
#. {ph3}: <span translate="no">npx rea-agents@latest setup</span>
#. {ph4}: </span >
#. {ph5}: <span class="terminal-cursor" aria-hidden="true">
#. {ph6}: </span>
#: website/public/get-started/index.html:432
#, python-brace-format
msgctxt "page:get-started/index.html"
msgid ""
"{ph0}›{ph1}{ph2}Install REA and connect it to this coding agent using {ph3}."
" Show me the setup plan for approval, then verify the "
"installation.{ph4}{ph5}{ph6}"
msgstr ""
"{ph0}›{ph1}{ph2}{ph3} を使って REA "
"をインストールし、このコーディングエージェントに接続してください。まず変更内容を提示し、私が承認してから実行してください。その後、インストールを確認してください。{ph4}{ph5}{ph6}"
#. {ph0}: <span class="prompt-symbol" aria-hidden="true">
#. {ph1}: </span >
#. {ph2}: <span id="home-install-prompt" >
#. {ph3}: <span translate="no">npx rea-agents@latest setup</span>
#. {ph4}: </span >
#. {ph5}: <span class="terminal-cursor" aria-hidden="true">
#. {ph6}: </span>
#: website/public/index.html:269
#, python-brace-format
msgctxt "page:index.html"
msgid ""
"{ph0}›{ph1}{ph2}Install REA and connect it to this coding agent using {ph3}."
" Show me the setup plan for approval, then verify the "
"installation.{ph4}{ph5}{ph6}"
msgstr ""
"{ph0}›{ph1}{ph2}{ph3} を使って REA "
"をインストールし、このコーディングエージェントに接続してください。まず変更内容を提示し、私が承認してから実行してください。その後、インストールを確認してください。{ph4}{ph5}{ph6}"
#. {ph0}: <span class="prompt-symbol" aria-hidden="true">
#. {ph1}: </span >
#. {ph2}: <span id="website-project-prompt" >
#. {ph3}: <span translate="no">https://rea.tools/</span>
#. {ph4}: </span >
#. {ph5}: <span class="terminal-cursor" aria-hidden="true">
#. {ph6}: </span>
#: website/public/index.html:1072
#, python-brace-format
msgctxt "page:index.html"
msgid ""
"{ph0}›{ph1}{ph2}Use REA to inspect {ph3}. Clone this website for "
"me.{ph4}{ph5}{ph6}"
msgstr ""
"{ph0}›{ph1}{ph2}REAを使用して検査する {ph3}. 私のためにこのウェブサイトを複製します。{ph4}{ph5}{ph6}"
#. {ph0}: <span translate="no">dino-speed.js</span>
#: website/public/examples/dino-lab/index.html:320
#, python-brace-format
msgctxt "page:examples/dino-lab/index.html"
msgid "Reconstruction · {ph0}"
msgstr "復興 · {ph0}"
#. {ph0}: <span translate="no">Node.js</span>
#: website/public/faq/index.html:218
#, python-brace-format
msgctxt "page:faq/index.html"
msgid ""
"With {ph0} and npm available, run setup, choose your coding agent and review"
" the proposed changes."
msgstr "と {ph0} と npm 利用可能で、セットアップを実行し、コーディングエージェントを選択し、提案された変更を確認します。"
#. {ph0}: <span translate="no">Node.js</span>
#: website/public/first-investigation/index.html:202
#, python-brace-format
msgctxt "page:first-investigation/index.html"
msgid "A supplied example · {ph0} and npm · Your coding agent"
msgstr "提供された例*{ph0}とnpm*コーディングエージェント"
#. {ph0}: <span translate="no">Node.js</span>
#. {ph1}: <a href="../get-started/">
#. {ph2}: </a >
#: website/public/first-investigation/index.html:221
#, python-brace-format
msgctxt "page:first-investigation/index.html"
msgid ""
"Use a coding agent such as Claude Code, Codex or Cursor. You’ll need {ph0} "
"and npm; the {ph1}setup guide lists supported versions{ph2}."
msgstr ""
"次のようなコーディングエージェントを使用します Claude Code, Codex または Cursor. あなたが必要になります {ph0} と "
"npm;ザ- {ph1}セットアップガイドサポートされているバージョンの一覧{ph2}."
#. {ph0}: <span class="flow-label" >
#. {ph1}: <span translate="no">renderer.js</span>
#. {ph2}: </span >
#. {ph3}: <span class="flow-node">
#. {ph4}: </span >
#. {ph5}: <span class="flow-note" >
#. {ph6}: <code>notes.exportCsv()</code>
#. {ph7}: </span >
#: website/public/first-investigation/index.html:339
#, python-brace-format
msgctxt "page:first-investigation/index.html"
msgid "{ph0}Page · {ph1}{ph2}{ph3}Export notes{ph4}{ph5}Calls {ph6}.{ph7}"
msgstr "{ph0}ページ · {ph1}{ph2}{ph3}ノートのエクスポート{ph4}{ph5}コール {ph6}.{ph7}"
#. {ph0}: <span class="flow-label" >
#. {ph1}: <span translate="no">preload.js</span>
#. {ph2}: </span >
#. {ph3}: <span class="flow-node">
#. {ph4}: <code>notes:export</code>
#. {ph5}: </span >
#. {ph6}: <span class="flow-note" >
#. {ph7}: </span >
#: website/public/first-investigation/index.html:347
#, python-brace-format
msgctxt "page:first-investigation/index.html"
msgid ""
"{ph0}Bridge · {ph1}{ph2}{ph3}{ph4}{ph5}{ph6}Sends a named message to the "
"main process.{ph7}"
msgstr "{ph0}橋 · {ph1}{ph2}{ph3}{ph4}{ph5}{ph6}名前付きメッセージをメインプロセスに送信します。{ph7}"
#. {ph0}: <span class="flow-label" >
#. {ph1}: <span translate="no">main.js</span>
#. {ph2}: </span >
#. {ph3}: <span class="flow-node" >
#. {ph4}: <span translate="no">notes.csv</span>
#. {ph5}: </span >
#. {ph6}: <span class="flow-note" >
#. {ph7}: <code>csv.js</code>
#. {ph8}: </span >
#: website/public/first-investigation/index.html:355
#, python-brace-format
msgctxt "page:first-investigation/index.html"
msgid ""
"{ph0}Handler · {ph1}{ph2}{ph3}Write {ph4}{ph5}{ph6}Calls the formatter in "
"{ph7} and writes the file.{ph8}"
msgstr ""
"{ph0}ハンドラー · {ph1}{ph2}{ph3}書き込み {ph4}{ph5}{ph6}でフォーマッタを呼び出します {ph7} "
"そして、ファイルを書き込みます。{ph8}"
#. {ph0}: <span translate="no">main.js</span>
#: website/public/first-investigation/index.html:373
#, python-brace-format
msgctxt "page:first-investigation/index.html"
msgid "{ph0} · lines 8–12"
msgstr "{ph0} *8-12行目"
#. {ph0}: <span class="prompt-symbol" aria-hidden="true">
#. {ph1}: </span >
#. {ph2}: <span id="first-check-prompt" >
#. {ph3}: <span translate="no">Hello, "REA"</span>
#. {ph4}: <span translate="no">toCsv</span>
#. {ph5}: <span translate="no">Node.js</span>
#. {ph6}: </span >
#. {ph7}: <span class="terminal-cursor" aria-hidden="true">
#. {ph8}: </span>
#: website/public/first-investigation/index.html:415
#, python-brace-format
msgctxt "page:first-investigation/index.html"
msgid ""
"{ph0}›{ph1}{ph2}Predict the CSV for a note with id 1 and title {ph3}. Then "
"run the example’s {ph4} formatter with {ph5} to check it. Show the "
"prediction and actual output.{ph6}{ph7}{ph8}"
msgstr ""
"{ph0}›{ph1}{ph2}Id1とタイトルを持つノートのCSVを予測します {ph3}. 次に、例を実行します {ph4} とのフォーマッタ "
"{ph5} それを確認する。 予測と実際の出力を表示します。{ph6}{ph7}{ph8}"
#. {ph0}: <span translate="no">Node.js</span>
#: website/public/first-investigation/index.html:433
#, python-brace-format
msgctxt "page:first-investigation/index.html"
msgid ""
"The title stays in one quoted field; each quotation mark is doubled. This "
"checks the formatter directly with {ph0}."
msgstr "タイトルは引用符で囲まれた1つのフィールドにとどまり、各引用符は2倍になります。 これはフォーマッタを直接チェックします {ph0}."
#. {ph0}: <span translate="no">Node.js</span>
#: website/public/first-investigation/index.html:446
#, python-brace-format
msgctxt "page:first-investigation/index.html"
msgid "{ph0} · CSV formatter"
msgstr "{ph0} · CSV フォーマッタ"
#. {ph0}: <span translate="no">Node.js</span>
#. {ph1}: <span translate="no">Node.js</span>
#: website/public/get-started/index.html:200
#, python-brace-format
msgctxt "page:get-started/index.html"
msgid ""
"You'll need {ph0} 22 (22.19+), 24 (24.11+) or 26+. npm comes with {ph1}."
msgstr "あなたが必要になります {ph0} 22 (22.19+), 24 (24.11+) または26+。 npmはと来ます {ph1}."
#. {ph0}: <span translate="no">Node.js</span>
#: website/public/get-started/index.html:205
#, python-brace-format
msgctxt "page:get-started/index.html"
msgid "Don't have {ph0}, or not sure?"
msgstr "持っていない {ph0}、またはわからない?"
#. {ph0}: <code>node -v</code>
#. {ph1}: <span translate="no">Node.js</span>
#: website/public/get-started/index.html:224
#, python-brace-format
msgctxt "page:get-started/index.html"
msgid ""
"If {ph0} prints v22.19+, v24.11+ or v26+, you're ready. If it prints an "
"older version or \"not recognized\" / \"command not found\", install {ph1} "
"24 LTS:"
msgstr ""
"もし {ph0} 印刷v22.19+、v24.11+またはv26+、準備が整いました。 "
"古いバージョンまたは\"認識されません\"/\"コマンドが見つかりません\"を印刷する場合は、インストールします {ph1} 24LTS:"
#. {ph0}: <span translate="no">export.js</span>
#: website/public/guides/browser/index.html:441
#, python-brace-format
msgctxt "page:guides/browser/index.html"
msgid "{ph0} · example source excerpt"
msgstr "{ph0} ·ソースの抜粋の例"
#. {ph0}: <a href="../../examples/notes-web/">
#. {ph1}: </a>
#. {ph2}: <a href="../../examples/notes-web/export.js" download >
#. {ph3}: <span translate="no">export.js</span>
#. {ph4}: </a >
#. {ph5}: <a href="../../examples/notes-web/notes.json" download >
#. {ph6}: <span translate="no">notes.json</span>
#. {ph7}: </a >
#: website/public/guides/browser/index.html:459
#, python-brace-format
msgctxt "page:guides/browser/index.html"
msgid ""
"{ph0}Open the example{ph1} · {ph2}Download {ph3}{ph4} · {ph5}Download "
"{ph6}{ph7}"
msgstr "{ph0}例を開きます{ph1} · {ph2}ダウンロード {ph3}{ph4} · {ph5}ダウンロード {ph6}{ph7}"
#. {ph0}: <span translate="no">renderer.js</span>
#: website/public/guides/javascript/index.html:309
#: website/public/guides/javascript/index.html:325
#: website/public/guides/javascript/index.html:340
#, python-brace-format
msgctxt "page:guides/javascript/index.html"
msgid "{ph0} · example source"
msgstr "{ph0} ·ソースの例"
#. {ph0}: <code>notes-example</code>
#. {ph1}: <span translate="no">Node.js</span>
#: website/public/guides/javascript/index.html:374
#, python-brace-format
msgctxt "page:guides/javascript/index.html"
msgid ""
"Download the example and unzip it. The archive contains the complete {ph0} "
"folder. Analyze it with {ph1} and npm; Electron is not needed for this "
"example."
msgstr ""
"例をダウンロードして解凍します。 アーカイブには完全なものが含まれています {ph0} フォルダ。 それを分析する {ph1} と npm; "
"Electron この例では必要ありません。"
#. {ph0}: <span translate="no">Node.js</span>
#. {ph1}: <a href="get-started/">
#. {ph2}: </a>
#: website/public/index.html:294
#, python-brace-format
msgctxt "page:index.html"
msgid ""
"First time, or missing {ph0} or a coding agent? {ph1}Follow the step-by-step"
" setup guide →{ph2}"
msgstr ""
"初めて、または行方不明 {ph0} またはコーディングエージェント? {ph1}ステップバイステップセットアップガイドに従ってください→{ph2}"
#. {ph0}: <strong >
#. {ph1}: <span translate="no">200 + 10%</span>
#. {ph2}: </strong >
#: website/public/index.html:318
#, python-brace-format
msgctxt "page:index.html"
msgid "One question: {ph0}why does Calculator give 220 for {ph1}?{ph2}"
msgstr "例えば:{ph0}なぜ電卓で {ph1} を計算すると 220 になる?{ph2}"
#. {ph0}: <span class="prompt-symbol" aria-hidden="true">
#. {ph1}: </span >
#. {ph2}: <span id="home-analysis-prompt" >
#. {ph3}: <span translate="no">200 + 10%</span>
#. {ph4}: </span >
#. {ph5}: <span class="terminal-cursor" aria-hidden="true">
#. {ph6}: </span>
#: website/public/index.html:506
#, python-brace-format
msgctxt "page:index.html"
msgid ""
"{ph0}›{ph1}{ph2}Use REA to inspect Windows Calculator. Why does {ph3} give "
"220?{ph4}{ph5}{ph6}"
msgstr ""
"{ph0}›{ph1}{ph2}REAを使用してWindows計算機を検査します。 なぜですか {ph3} "
"220を与えますか?{ph4}{ph5}{ph6}"
#. {ph0}: <span translate="no">index.js</span>
#: website/public/index.html:691
#, python-brace-format
msgctxt "page:index.html"
msgid "REA · loaded {ph0} · selected lines"
msgstr "REA·ロード {ph0} *選択した行"
#. {ph0}: <strong>
#. {ph1}: <span translate="no">200 + 10%</span>
#. {ph2}: </strong>
#: website/public/index.html:795
#, python-brace-format
msgctxt "page:index.html"
msgid ""
"We saw why {ph0}{ph1} gives 220.{ph2} Now let’s recover the rules for both +"
" and ×, and try them."
msgstr ""
"私たちはなぜ見ましたか {ph0}{ph1} 220を与えます。{ph2} それでは、+と×の両方のルールを回復し、それらを試してみましょう。"
#. {ph0}: <span class="flow-label" >
#. {ph1}: <span translate="no">calc.exe</span>
#. {ph2}: </span >
#. {ph3}: <span class="flow-node">
#. {ph4}: </span >
#. {ph5}: <span class="flow-note" >
#. {ph6}: <code>ms-calculator:</code>
#. {ph7}: </span >
#: website/public/index.html:952
#, python-brace-format
msgctxt "page:index.html"
msgid ""
"{ph0}01 · REA reads {ph1}{ph2}{ph3}It launches the Calculator "
"app{ph4}{ph5}The code opens {ph6}. The agent then selects the installed "
"app’s library.{ph7}"
msgstr ""
"{ph0}01*REA読み取り {ph1}{ph2}{ph3}電卓アプリを起動します{ph4}{ph5}コードが開きます {ph6}. "
"次に、エージェントはインストールされているアプリのライブラリを選択します。{ph7}"
#. {ph0}: <span class="prompt-symbol" aria-hidden="true">
#. {ph1}: </span >
#. {ph2}: <span id="aegis-prompt" >
#. {ph3}: <span translate="no">aegis-v3.4.3.apk</span>
#. {ph4}: </span >
#. {ph5}: <span class="terminal-cursor" aria-hidden="true">
#. {ph6}: </span>
#: website/public/showcase/aegis/index.html:278
#, python-brace-format
msgctxt "page:showcase/aegis/index.html"
msgid ""
"{ph0}›{ph1}{ph2}Use REA to inspect {ph3}. Find how it generates the six-"
"digit login code, explain why it changes every 30 seconds, and rebuild a "
"small demo where I can change the time.{ph4}{ph5}{ph6}"
msgstr ""
"{ph0}›{ph1}{ph2}REA で {ph3} を調べてください。6 桁のログインコードの生成方法と、30 "
"秒ごとに変わる理由を説明し、時刻を変更できる小さなデモを作ってください。{ph4}{ph5}{ph6}"
#. {ph0}: <span translate="no">preload.js</span>
#: website/public/showcase/notion/index.html:342
#, python-brace-format
msgctxt "page:showcase/notion/index.html"
msgid "tab_browser_view/{ph0} · API member"
msgstr "tab_browser_view/{ph0}-APIメンバー"
#. {ph0}: <span translate="no">preload.js</span>
#: website/public/showcase/notion/index.html:371
#, python-brace-format
msgctxt "page:showcase/notion/index.html"
msgid "tab_browser_view/{ph0} · IPC helper"
msgstr "tab_browser_view/{ph0}*IPCヘルパー"
#. {ph0}: <span translate="no">index.js</span>
#: website/public/showcase/notion/index.html:402
#, python-brace-format
msgctxt "page:showcase/notion/index.html"
msgid "main/{ph0} · handler helper"
msgstr "メイン/{ph0} *ハンドラーヘルパー"
#. {ph0}: <span translate="no">index.js</span>
#: website/public/showcase/notion/index.html:430
#, python-brace-format
msgctxt "page:showcase/notion/index.html"
msgid "main/{ph0} · clipboard receiver"
msgstr "メイン/{ph0} *クリップボード受信機"
# Use the same label as the Get started navigation link. The arrow is
# decorative.
#. {ph0}: <span class="button-arrow" aria-hidden="true" data-i18n-skip
#. >→</span >
#: website/public/index.html:233
#, python-brace-format
msgctxt "page:index.html"
msgid "Get started {ph0}"
msgstr "はじめる {ph0}"
#: website/public/assets/theme.js:52
msgctxt "runtime"
msgid "Switch to light mode"
msgstr "ライトモードに切り替える"
#: website/public/assets/theme.js:53
msgctxt "runtime"
msgid "Switch to dark mode"
msgstr "ダークモードに切り替える"
#. {ph0}: <a
#. href="https://github.com/morluto/rea/blob/main/docs/guides/web/web-network-
#. captures.md" >
#. {ph1}: </a >
#: website/public/guides/browser/index.html:480
#, python-brace-format
msgctxt "page:guides/browser/index.html"
msgid ""
"For HTTP request and response bodies, use {ph0}Fiddler Everywhere: SAZ "
"captures, MCP and public skills{ph1}. Export SAZ or HAR 1.2 for offline REA "
"capture Evidence, or connect Everywhere's MCP server to inspect captured "
"traffic with your agent."
msgstr ""
"HTTP リクエストとレスポンスの本文を調べるには、{ph0}Fiddler Everywhere:SAZ "
"キャプチャ、MCP、公開スキル{ph1}を利用してください。SAZ ??? HAR 1.2 をエクスポートすれば REA でオフラインのキャプチャ "
"Evidence を取得できます。また、Everywhere の MCP サーバーを接続して、エージェントと一緒に記録済みの通信を調べることもできます。"
#. {ph0}: <br />
#: website/public/blog/index.html:200
#, python-brace-format
msgctxt "page:blog/index.html"
msgid "Model specialization{ph0}Essay"
msgstr "モデルの特化{ph0}エッセイ"
#: website/public/blog/index.html:202
msgctxt "page:blog/index.html"
msgid "Does reverse engineering need a bigger model?"
msgstr "リバースエンジニアリングに、より大きなモデルは必要か?"
#: website/public/blog/index.html:203
msgctxt "page:blog/index.html"
msgid ""
"What Touhou reconstruction suggests about general models, specialist models "
"and learning from compiler feedback."
msgstr "Touhou の再構築を通じて考える、汎用モデル、特化モデル、そしてコンパイラのフィードバックから学ぶ方法。"
#: website/public/blog/index.html:210
msgctxt "page:blog/index.html"
msgid "By N0zoM1z0 · 13 October 2026"
msgstr "N0zoM1z0 著 · 2026 年 10 月 13 日"
#: website/public/blog/reverse-engineering-models/index.html:103
msgctxt "page:blog/reverse-engineering-models/index.html"
msgid "Skip to content"
msgstr "コンテンツにスキップ"
#. {ph0}: <a href="../../">
#. {ph1}: </a>
#. {ph2}: <a href="../">
#. {ph3}: </a>
#: website/public/blog/reverse-engineering-models/index.html:194
#, python-brace-format
msgctxt "page:blog/reverse-engineering-models/index.html"
msgid "{ph0}Home{ph1} / {ph2}Blog{ph3} / Models and RE"
msgstr "{ph0}ホーム{ph1} / {ph2}ブログ{ph3} / モデルとリバース エンジニアリング"
#: website/public/blog/reverse-engineering-models/index.html:197
msgctxt "page:blog/reverse-engineering-models/index.html"
msgid "Essay"
msgstr "エッセイ"
# Reviewed for technical meaning and readability; preserve the distinction
# between historical evidence and proposed experiments.
#: website/public/blog/reverse-engineering-models/index.html:198
msgctxt "page:blog/reverse-engineering-models/index.html"
msgid "Does reverse engineering need a bigger model?"
msgstr "リバースエンジニアリングに、より大きなモデルは必要か?"
#: website/public/blog/reverse-engineering-models/index.html:199
msgctxt "page:blog/reverse-engineering-models/index.html"
msgid "By N0zoM1z0 · 13 October 2026"
msgstr "N0zoM1z0 著 · 2026 年 10 月 13 日"
#: website/public/blog/reverse-engineering-models/index.html:201
msgctxt "page:blog/reverse-engineering-models/index.html"
msgid "Takeaway"
msgstr "要点"
#. {ph0}: <strong >
#. {ph1}: </strong >
#: website/public/blog/reverse-engineering-models/index.html:203
#, python-brace-format
msgctxt "page:blog/reverse-engineering-models/index.html"
msgid ""
"{ph0}Model capability changes the hypotheses an agent can find.{ph1} Later "
"sessions have solved problems that earlier work left unresolved."
msgstr ""
"{ph0}モデルの能力によって、エージェントが見つけられる仮説は変わる。{ph1} 後の作業では、それまで解決できなかった問題が解決された。"
#. {ph0}: <strong >
#. {ph1}: </strong >
#: website/public/blog/reverse-engineering-models/index.html:211
#, python-brace-format
msgctxt "page:blog/reverse-engineering-models/index.html"
msgid ""
"{ph0}A familiar compiler gives specialization something concrete to "
"learn.{ph1} Some exact matches depend on narrow, reusable source patterns."
msgstr ""
"{ph0}使い慣れたコンパイラには、特化モデルが学べる具体的なパターンがある。{ph1} "
"完全一致の中には、細かな、再利用可能なソースコードのパターンに依存するものもある。"
#. {ph0}: <strong>
#. {ph1}: </strong>
#: website/public/blog/reverse-engineering-models/index.html:218
#, python-brace-format
msgctxt "page:blog/reverse-engineering-models/index.html"
msgid ""
"{ph0}Give repository knowledge a fair comparison.{ph1} A smaller model with "
"good retrieval may already know enough to make progress."
msgstr ""
"{ph0}リポジトリに蓄積した知識も、公平に比較したい。{ph1} 小さなモデルでも、適切に知識を検索できれば、作業を進めるのに十分かもしれない。"
#. {ph0}: <strong >
#. {ph1}: </strong >
#: website/public/blog/reverse-engineering-models/index.html:223
#, python-brace-format
msgctxt "page:blog/reverse-engineering-models/index.html"
msgid ""
"{ph0}Train the next useful experiment, and test its oracle.{ph1} The value "
"of feedback depends on what the checker actually verifies."
msgstr ""
"{ph0}次の有用な実験を選ぶ力を学習させ、その検証器も確かめる。{ph1} フィードバックの価値は、検証器が実際に何を確認しているかで決まる。"
#. {ph0}: <strong >
#. {ph1}: </strong >
#: website/public/blog/reverse-engineering-models/index.html:230
#, python-brace-format
msgctxt "page:blog/reverse-engineering-models/index.html"
msgid ""
"{ph0}Measure accepted reconstruction against time and cost.{ph1} That is the"
" result I want from the whole agent."
msgstr ""
"{ph0}検証を通った再構築の成果を、時間とコストと合わせて評価する。{ph1} エージェントのワークフロー全体で測りたいのは、その結果だ。"
#: website/public/blog/reverse-engineering-models/index.html:241
msgctxt "page:blog/reverse-engineering-models/index.html"
msgid "In this article"
msgstr "この記事の内容"
#. {ph0}: <a href="#model-capability">
#. {ph1}: </a>
#: website/public/blog/reverse-engineering-models/index.html:243
#, python-brace-format
msgctxt "page:blog/reverse-engineering-models/index.html"
msgid "{ph0}What better models changed{ph1}"
msgstr "{ph0}強いモデルで何が変わったか{ph1}"
#. {ph0}: <a href="#specialization">
#. {ph1}: </a>
#: website/public/blog/reverse-engineering-models/index.html:244
#, python-brace-format
msgctxt "page:blog/reverse-engineering-models/index.html"
msgid "{ph0}Why specialize?{ph1}"
msgstr "{ph0}なぜ特化を考えるのか{ph1}"
#. {ph0}: <a href="#repository-knowledge">
#. {ph1}: </a>
#: website/public/blog/reverse-engineering-models/index.html:245
#, python-brace-format
msgctxt "page:blog/reverse-engineering-models/index.html"
msgid "{ph0}Where experience lives{ph1}"
msgstr "{ph0}その経験はどこに蓄積すべきか?{ph1}"
#. {ph0}: <a href="#learning-search">
#. {ph1}: </a>
#: website/public/blog/reverse-engineering-models/index.html:246
#, python-brace-format
msgctxt "page:blog/reverse-engineering-models/index.html"
msgid "{ph0}Learning the next experiment{ph1}"
msgstr "{ph0}次の有用な実験を選ぶ力を学ぶ{ph1}"
#. {ph0}: <a href="#re-and-rl">
#. {ph1}: </a>
#: website/public/blog/reverse-engineering-models/index.html:247
#, python-brace-format
msgctxt "page:blog/reverse-engineering-models/index.html"
msgid "{ph0}RE and reinforcement learning{ph1}"
msgstr "{ph0}リバース エンジニアリングと強化学習{ph1}"
#. {ph0}: <a href="#oracle">
#. {ph1}: </a>
#: website/public/blog/reverse-engineering-models/index.html:248
#, python-brace-format
msgctxt "page:blog/reverse-engineering-models/index.html"
msgid "{ph0}When the oracle is wrong{ph1}"
msgstr "{ph0}検証器が間違っていたら{ph1}"
#. {ph0}: <a href="#comparison">
#. {ph1}: </a>
#: website/public/blog/reverse-engineering-models/index.html:249
#, python-brace-format
msgctxt "page:blog/reverse-engineering-models/index.html"
msgid "{ph0}A comparison worth running{ph1}"
msgstr "{ph0}実行する価値のある比較{ph1}"
#. {ph0}: <a href="#future-agent">
#. {ph1}: </a>
#: website/public/blog/reverse-engineering-models/index.html:250
#, python-brace-format
msgctxt "page:blog/reverse-engineering-models/index.html"
msgid "{ph0}What kind of agent?{ph1}"
msgstr "{ph0}どんなエージェントが必要なのか?{ph1}"
#: website/public/blog/reverse-engineering-models/index.html:258
msgctxt "page:blog/reverse-engineering-models/index.html"
msgid "What better models changed"
msgstr "強いモデルで何が変わったか"
#: website/public/blog/reverse-engineering-models/index.html:259
msgctxt "page:blog/reverse-engineering-models/index.html"
msgid ""
"Since August 2026, I have been exploring how much reverse engineering an "
"agent can carry out with access to a program and a way to check its work. "
"Most of my experience comes from reconstructing games, especially Touhou. As"
" I have changed models, the repositories have kept a record of what each "
"session managed to recover."
msgstr ""
"2026年8月から、プログラムにアクセスし、自分の作業を検証できるエージェントが、どこまでリバースエンジニアリングを進められるかを探ってきた。私の経験は主にゲーム、特に"
" Touhou(東方)の再構築から得たものだ。モデルを変えるたびに、各セッションで何を復元できたかがリポジトリに残った。"
#: website/public/blog/reverse-engineering-models/index.html:267
msgctxt "page:blog/reverse-engineering-models/index.html"
msgid ""
"Much of that work aims at exact reconstruction: we compile the maintained "
"source under a pinned historical toolchain and check whether it reproduces "
"the target function. When a later model succeeds where earlier work stalled,"
" the source changes show what made that progress possible."
msgstr ""
"その多くは完全一致を目指す再構築だ。バージョンを固定した当時のツールチェーンで、保守しているソースをコンパイルし、対象の関数を再現できるか確かめる。後のモデルが以前の行き詰まりを解消したとき、ソースの変更を見ると、何が進歩を可能にしたかがわかる。"
#: website/public/blog/reverse-engineering-models/index.html:274
msgctxt "page:blog/reverse-engineering-models/index.html"
msgid "The temporary values had to stay alive together"
msgstr "一時的な値を同時に有効にしておく必要があった"
#: website/public/blog/reverse-engineering-models/index.html:275
msgctxt "page:blog/reverse-engineering-models/index.html"
msgid ""
"Much of a TH09 attack function's logic had already been reconstructed, but "
"the compiler still stored temporary results differently from the original. "
"The remaining problem was how long those results needed to stay alive and "
"when their storage could be reused."
msgstr ""
"TH09 "
"のある攻撃関数は、ロジックの大部分が復元済みだった。それでも、コンパイラが一時的な結果を格納する方法は原版と違っていた。残る問題は、その結果がいつまで有効であるべきか、そして格納領域をいつ再利用できるかだった。"
#. {ph0}: <a
#. href="https://github.com/N0zoM1z0/th09/commit/de63c0f9121963f3a6b1ab5471c4878625fd3425"
#. >
#. {ph1}: </a >
#. {ph2}: <a
#. href="https://github.com/N0zoM1z0/th09/commit/52929ed7c299f1a5f29cc13964e22510145fd616"
#. >
#. {ph3}: </a >
#: website/public/blog/reverse-engineering-models/index.html:282
#, python-brace-format
msgctxt "page:blog/reverse-engineering-models/index.html"
msgid ""
"A {ph0}GPT-6-Sol checkpoint{ph1} recorded this mismatch after testing "
"several ordinary source arrangements. When {ph2}GPT-6.1-Sol returned to the "
"problem{ph3}, it found a useful hypothesis about how long those temporary "
"values needed to stay alive."
msgstr ""
"いくつかの通常のソースコード配置をテストした後、{ph0}GPT-6-Sol セッション レコード{ph1} でこの不一致が報告されました。 "
"{ph2}GPT-6.1-Sol がこの問題を再度調査したとき{ph3}、これらの一時変数の存続期間に関する有用な仮説が提案されました。"
#: website/public/blog/reverse-engineering-models/index.html:296
msgctxt "page:blog/reverse-engineering-models/index.html"
msgid ""
"The function produced temporary results and copied them into animation "
"positions. In C++, a temporary result stays alive until the expression using"
" it finishes. Grouping the real operations into one expression kept those "
"results alive together, so the compiler could no longer reuse the same "
"storage for all of them."
msgstr ""
"この関数は一時的な結果を作り、アニメーションの位置にコピーする。C++ "
"の一時的な結果は、それを使う式が終わるまで生存する。実際の処理を一つの式にまとめると、結果の生存期間が重なり、コンパイラはすべての結果に同じ格納領域を使い回せなくなる。"
#. {ph0}: <strong >
#. {ph1}: </strong >
#: website/public/blog/reverse-engineering-models/index.html:303
#, python-brace-format
msgctxt "page:blog/reverse-engineering-models/index.html"
msgid ""
"One result still shared storage with a value used later for collision "
"checks. Giving that value its own lifetime resolved the remaining overlap. "
"After several targeted experiments, {ph0}a clean rebuild confirmed that the "
"full function matched{ph1}."
msgstr ""
"一つの結果だけは、後の衝突判定に使う値と領域を共有していた。その値に独立した生存期間を与えると、最後の重なりも解消された。いくつかの絞り込んだ実験の後、{ph0}クリーンビルドで関数全体の一致が確認された{ph1}。"
#: website/public/blog/reverse-engineering-models/index.html:312
msgctxt "page:blog/reverse-engineering-models/index.html"
msgid ""
"What interests me is how the discovery and the tests worked together. The "
"lifetime hypothesis gave the agent a new direction; compiler feedback helped"
" it refine that hypothesis into a source arrangement that matched."
msgstr ""
"発見とテストがどのように相互にサポートし合っていたのかに興味があります。一時オブジェクトの存続期間に関する仮説は、AI "
"エージェントに新しい方向性を与えました。コンパイラーからのフィードバックにより、その仮説を改良して、一致するソースコードの配置を実現することができました。"
#: website/public/blog/reverse-engineering-models/index.html:318
msgctxt "page:blog/reverse-engineering-models/index.html"
msgid "A different control-flow graph"
msgstr "別の制御フロー グラフ"
#. {ph0}: <a
#. href="https://github.com/N0zoM1z0/th09/commit/f8d12d72aaf02212ee1b585a8f3f86d7ed000269"
#. >
#. {ph1}: </a >
#: website/public/blog/reverse-engineering-models/index.html:319
#, python-brace-format
msgctxt "page:blog/reverse-engineering-models/index.html"
msgid ""
"A second TH09 function shows why that new direction can matter. Here, the "
"obstacle was how several branches shared their final work. "
"{ph0}GPT-6.1-Sol's earlier work{ph1} got parts of the function to match, but"
" the branches still joined up differently from the original."
msgstr ""
"2 番目の TH09 関数は、その新しい方向が重要である理由を示しています。ここでの障害は、複数のブランチが最終的な作業をどのように共有するかでした。 "
"{ph0}GPT-6.1-Sol の以前の作業{ph1} "
"では、関数の一部が一致していましたが、分岐の結合方法は依然としてオリジナルとは異なっていました。"
#. {ph0}: <a
#. href="https://github.com/N0zoM1z0/th09/commit/da33a646221198ceb7f3df2b96e2ca0e9b2f705f"
#. >
#. {ph1}: </a >
#. {ph2}: <a
#. href="https://github.com/N0zoM1z0/th09/commit/5f825b28a862f8e1a6d4aea2f78a42f04c09a1c0"
#. >
#. {ph3}: </a >
#: website/public/blog/reverse-engineering-models/index.html:330
#, python-brace-format
msgctxt "page:blog/reverse-engineering-models/index.html"
msgid ""
"{ph0}GPT-6-Astra changed the surrounding control-flow graph{ph1}. The main "
"paths now led to a shared final update and return. In that source structure,"
" the compiler combined the branches in the same way as the original. The "
"complete function matched, and a {ph2}separate rebuild check confirmed "
"it{ph3}."
msgstr ""
"{ph0}GPT-6-Astra が周囲の制御フロー グラフを変更しました{ph1}。メイン "
"パスは共有された最終更新と復帰につながりました。そのソース構造では、コンパイラはオリジナルと同じ方法でブランチを結合しました。完全な関数は一致しており、{ph2}別のリビルド"
" チェックでそれが確認されました{ph3}。"
#. {ph0}: <strong >
#. {ph1}: </strong >
#: website/public/blog/reverse-engineering-models/index.html:342
#, python-brace-format
msgctxt "page:blog/reverse-engineering-models/index.html"
msgid ""
"{ph0}Changing the representation opened a more productive search space.{ph1}"
" Both cases give me a reason to take general model capability seriously: an "
"agent can keep trying local variations for a long time before finding a "
"better way to express the surrounding work."
msgstr ""
"{ph0}表現を変えたことで、より有望な探索空間が開けた。{ph1} "
"この二つの例から、汎用モデルの能力は重要だと感じる。エージェントは局所的な変更を長く試した末に、周囲の処理を表すもっとよい方法を見つけることがある。"
#: website/public/blog/reverse-engineering-models/index.html:351
msgctxt "page:blog/reverse-engineering-models/index.html"
msgid ""
"At the same time, the later sessions started with earlier source and "
"recorded failures. That accumulated work was part of their advantage. The "
"history lets us inspect the discoveries and their checks; a controlled "
"comparison would help separate the effect of the model from the experience "
"it inherited."
msgstr ""
"ただし、後のセッションは、それまでのソースと失敗の記録を引き継いでいる。その蓄積も有利に働いた。履歴から発見と検証の過程は調べられるが、モデルの効果と引き継いだ経験の効果を分けるには、条件をそろえた比較が必要だ。"
#: website/public/blog/reverse-engineering-models/index.html:358
msgctxt "page:blog/reverse-engineering-models/index.html"
msgid ""
"This is where the question becomes interesting to me. Some of the progress "
"came from finding a new representation, while much of the remaining work "
"involved testing source forms against a familiar compiler. How much needs "
"broad reasoning ability, and how much could a model learn through repeated "
"experience with that compiler and code?"
msgstr ""
"これが私にとってこの質問が興味深い理由です。新しい表現を見つけることである程度の進歩が得られました。残りの作業の多くには、使い慣れたコンパイラに対してさまざまなソース"
" "
"コードの配置をテストすることが含まれていました。このうちどの程度の範囲で幅広い推論能力が必要でしょうか?モデルはそのコンパイラーとコードを繰り返し操作することでどれだけ学習できるでしょうか?"
#: website/public/blog/reverse-engineering-models/index.html:368
msgctxt "page:blog/reverse-engineering-models/index.html"
msgid "Why might a specialist do well?"
msgstr "特化モデルがうまく働く可能性は?"
#: website/public/blog/reverse-engineering-models/index.html:369
msgctxt "page:blog/reverse-engineering-models/index.html"
msgid ""
"Touhou gives us a concrete reason to expect that experience to help. Much of"
" the game code comes from the same author, ZUN, so recurring habits are a "
"reasonable starting assumption. The repositories back that up with useful "
"examples: related loops and helper arrangements have supplied hypotheses "
"across games."
msgstr ""
"Touhou には、経験の蓄積が役立つと考える具体的な理由がある。多くのゲームコードを ZUN "
"一人が書いているため、繰り返し現れる書き方を最初の仮説にできる。実際、リポジトリには、似たループや補助関数の構成が別のゲームの仮説につながった例がある。"
#: website/public/blog/reverse-engineering-models/index.html:376
msgctxt "page:blog/reverse-engineering-models/index.html"
msgid ""
"Those source patterns become more specific when we include the compiler. "
"Under a particular version and set of options, small changes in source can "
"produce repeatable differences in machine code. Some of those differences "
"are surprisingly obscure."
msgstr ""
"コンパイラを含めると、これらのソース "
"パターンがより具体的になります。特定のバージョンとオプションのセットでは、ソースに小さな変更を加えると、マシンコードに再現性のある差異が生じる可能性があります。これらの違いの中には、驚くほどわかりにくいものもあります。"
#. {ph0}: <strong >
#. {ph1}: </strong >
#. {ph2}: <a
#. href="https://github.com/N0zoM1z0/th095/commit/26bb64bdb093a13f73abd0ee8ae7ce199ee4658f"
#. >
#. {ph3}: <code>Supervisor::LoadDat</code>
#. {ph4}: </a >
#: website/public/blog/reverse-engineering-models/index.html:382
#, python-brace-format
msgctxt "page:blog/reverse-engineering-models/index.html"
msgid ""
"In TH095, for example, {ph0}even the name used for a local variable could "
"change where VC7.1 stored it{ph1}. Moving the declaration alone did not "
"solve the layout, but an earlier background function had revealed a naming "
"pattern that affected the compiler's choice. That gave us a more promising "
"hypothesis for {ph2}the reconstruction of {ph3}{ph4}."
msgstr ""
"たとえば、TH095 では、{ph0}ローカル変数の名前であっても、VC7.1 "
"がそれを格納する場所に影響を与える可能性があります{ph1}。その宣言を移動してもストレージ "
"レイアウトは解決されませんでした。ただし、以前のバックグラウンド関数では、コンパイラの選択に影響を与える名前付けパターンが明らかになっていました。これは、{ph2}{ph3}{ph4}"
" を再構築するためのより有望な仮説を示唆しました。"
#: website/public/blog/reverse-engineering-models/index.html:396
msgctxt "page:blog/reverse-engineering-models/index.html"
msgid ""
"Reusing that pattern for the file-size variable produced the required layout"
" without adding storage. The full function then matched."
msgstr "そのパターンをファイルサイズの変数に使うと、格納領域を増やさずに必要な配置が得られた。続いて関数全体が一致した。"
#: website/public/blog/reverse-engineering-models/index.html:401
msgctxt "page:blog/reverse-engineering-models/index.html"
msgid ""
"This is the sort of narrow detail a general model may not know when it "
"arrives. A specialist trained on this compiler could encounter many such "
"cases and learn which source variations are worth testing first."
msgstr ""
"これは非常に具体的な詳細であり、汎用 AI "
"モデルが最初に問題に遭遇したときには認識できない可能性があります。このコンパイラに特化したモデルは、そのようなケースを多数確認し、どのソース "
"コードのバリエーションが最初にテストする価値があるかを学習できます。"
#: website/public/blog/reverse-engineering-models/index.html:407
msgctxt "page:blog/reverse-engineering-models/index.html"
msgid ""
"The opportunity is especially clear in final matching problems where we "
"already understand the behavior. We are then asking which ordinary source "
"form this compiler turns into the observed instructions. Specialization "
"could help the model propose those forms more efficiently, while the target "
"still determines which hypotheses survive."
msgstr ""
"動作を理解したうえで最後の差分を詰める場面では、この可能性が特にはっきりする。問うのは、このコンパイラがどの通常の書き方を観測された命令に変換するかだ。特化した学習によって候補を効率よく出せるかもしれないが、どの仮説が正しいかは対象のプログラムが決める。"
#. {ph0}: <a
#. href="https://github.com/N0zoM1z0/th04/commit/6dce0a79d5b931f0e2a08475b90e0c33d2321b98"
#. >
#. {ph1}: </a >
#: website/public/blog/reverse-engineering-models/index.html:415
#, python-brace-format
msgctxt "page:blog/reverse-engineering-models/index.html"
msgid ""
"The useful patterns would have to retain their context, though. TH08 uses an"
" earlier Visual C++ version than TH095 and TH09. TH04 uses a different DOS-"
"era compiler, and its {ph0}player reconstruction{ph1} needed different "
"hypotheses about source patterns and how the compiled code was combined into"
" an executable. Shared authorship gives us a prior, but each target tells us"
" whether it applies. Distinguishing those contexts is part of what a "
"specialist would need to learn."
msgstr ""
"ただし、パターンには適用条件を残す必要がある。TH08 は TH095 や TH09 より古い Visual C++ を使う。TH04 は DOS "
"時代の別のコンパイラを使い、{ph0}プレイヤーのコードの再構築{ph1}では、書き方や実行ファイルへのリンク順序について別の仮説が必要だった。同じ作者であることは手がかりになるが、適用できるかは各対象で確かめる。その区別も特化モデルが学ぶべきことだ。"
#: website/public/blog/reverse-engineering-models/index.html:431
msgctxt "page:blog/reverse-engineering-models/index.html"
msgid "Where should that experience live?"
msgstr "その経験はどこに蓄積すべきか?"
#. {ph0}: <a href="../touhou-reconstruction/">
#. {ph1}: </a>
#: website/public/blog/reverse-engineering-models/index.html:432
#, python-brace-format
msgctxt "page:blog/reverse-engineering-models/index.html"
msgid ""
"Before deciding to teach those patterns through model training, I would look"
" at the knowledge we already keep in the repository. In the {ph0}previous "
"essay{ph1}, I wrote about it becoming the project's working memory. That "
"memory includes compiler lessons, along with the source and failed "
"experiments that made them useful."
msgstr ""
"モデルの学習でこうしたパターンを覚えさせる前に、まずリポジトリに保存している知識を見たい。{ph0}前のエッセイ{ph1}では、リポジトリがプロジェクトの作業記憶になっていると書いた。そこにはコンパイラから学んだことと、それを裏付けるソースや失敗した実験が残っている。"
#: website/public/blog/reverse-engineering-models/index.html:441
msgctxt "page:blog/reverse-engineering-models/index.html"
msgid ""
"By retrieving that record, an agent can start with a known result and "
"inspect how we reached it. It can also avoid alternatives that have already "
"failed in the same context. The starting point improves without changing the"
" model's weights."
msgstr ""
"そのレコードを取得することで、エージェントは既知の結果から開始し、どのようにしてその結果に到達したかを検査できます。また、同じコンテキストですでに失敗した代替案を回避することもできます。モデルのトレーニング済みパラメーターを変更することなく、開始点が改善されます。"
#. {ph0}: <a
#. href="https://github.com/N0zoM1z0/th09/commit/1eb843383941d00065622a9e353146c4bb96979e"
#. >
#. {ph1}: </a >
#: website/public/blog/reverse-engineering-models/index.html:447
#, python-brace-format
msgctxt "page:blog/reverse-engineering-models/index.html"
msgid ""
"When reconstructing TH09's enemy-spawn function, a {ph0}GPT-6-Luna-max "
"session{ph1} drew a hypothesis from TH08's corresponding source family. That"
" earlier source suggested how to structure the loop and handle failures "
"within it. TH09's own evidence supplied the game-specific details, and clean"
" rebuilds confirmed the complete match."
msgstr ""
"TH09 の敵生成関数を再構築した{ph0}GPT-6-Luna-max のセッション{ph1}は、TH08 "
"の関連するソースから仮説を得た。以前のコードが、ループの構成と失敗時の処理の手がかりになった。TH09 "
"自体の証拠でゲーム固有の細部を補い、クリーンビルドで関数全体の一致を確認した。"
#. {ph0}: <strong >
#. {ph1}: </strong >
#: website/public/blog/reverse-engineering-models/index.html:458
#, python-brace-format
msgctxt "page:blog/reverse-engineering-models/index.html"
msgid ""
"{ph0}\"The model did not know that compiler quirk\" and \"the model could "
"not use it\" are different problems.{ph1} Retrieval may solve the first, but"
" turning that fact into a useful candidate still takes work. And if the "
"candidate fails, the model must decide what the result means for its next "
"attempt. Knowing the relevant pattern is only the beginning of that process."
msgstr ""
"{ph0}「モデルがそのコンパイラの癖を知らない」と「知っていても使えない」は別の問題だ。{ph1} "
"検索で前者を解決できても、知識を有用な候補にするには能力がいる。候補が失敗すれば、その結果が次の試みに何を意味するかも判断しなければならない。関連するパターンを知るのは、出発点にすぎない。"
#: website/public/blog/reverse-engineering-models/index.html:468
msgctxt "page:blog/reverse-engineering-models/index.html"
msgid ""
"For that reason, I would include a smaller general model with good retrieval"
" in any comparison. Giving it the same library of experience would help us "
"identify what training adds: better candidate generation, better decisions "
"after feedback, or both."
msgstr ""
"だから比較には、知識を適切に検索できる小さな汎用モデルも加えたい。同じ経験のライブラリを与えれば、学習が何を加えるかを調べられる。候補を作る力なのか、フィードバック後の判断なのか、それとも両方なのか。"
#: website/public/blog/reverse-engineering-models/index.html:476
msgctxt "page:blog/reverse-engineering-models/index.html"
msgid "Learning the next useful experiment"
msgstr "次の有用な実験を選ぶ力を学ぶ"
#: website/public/blog/reverse-engineering-models/index.html:477
msgctxt "page:blog/reverse-engineering-models/index.html"
msgid ""
"Those decisions after feedback are what I would most like to study. In "
"agentic reconstruction, the model proposes an explanation and tests it "
"against the program. Even when the candidate fails, the result can narrow "
"the remaining possibilities and suggest a more useful next experiment."
msgstr ""
"私が最も研究したいのは、フィードバック後の判断だ。エージェントによる再構築では、モデルが説明を提案し、プログラムに照らして検証する。候補が失敗しても、可能性を絞り、次の有用な実験を考える材料になる。"
#: website/public/blog/reverse-engineering-models/index.html:484
msgctxt "page:blog/reverse-engineering-models/index.html"
msgid ""
"Consider the temporary-results example again. Its final source shows the "
"arrangement that worked, but the route to that source contains more "
"information. Each of the following experiments helped identify what still "
"needed to change."
msgstr ""
"一時的な結果の例をもう一度考えてみましょう。最終的なソースには、機能した配置が示されていますが、そのソースへのルートにはさらに多くの情報が含まれています。以下の各実験は、まだ変更する必要があるものを特定するのに役立ちました。"
#: website/public/blog/reverse-engineering-models/index.html:497
msgctxt "page:blog/reverse-engineering-models/index.html"
msgid "Experiment"
msgstr "実験"
#: website/public/blog/reverse-engineering-models/index.html:498
msgctxt "page:blog/reverse-engineering-models/index.html"
msgid "What its result taught us"
msgstr "その結果が私たちに教えてくれたこと"
#: website/public/blog/reverse-engineering-models/index.html:503
msgctxt "page:blog/reverse-engineering-models/index.html"
msgid "Try a different way to copy the results"
msgstr "別の方法で結果をコピーしてみてください"
#: website/public/blog/reverse-engineering-models/index.html:504
msgctxt "page:blog/reverse-engineering-models/index.html"
msgid "The copy code changes, but the function still differs."
msgstr "コピーのコードは変わったが、関数にはまだ差分がある。"
#: website/public/blog/reverse-engineering-models/index.html:509
msgctxt "page:blog/reverse-engineering-models/index.html"
msgid "Use the returned values directly"
msgstr "戻り値を直接使用する"
#: website/public/blog/reverse-engineering-models/index.html:510
msgctxt "page:blog/reverse-engineering-models/index.html"
msgid ""
"Copying follows the original pattern, but temporary storage still differs."
msgstr "コピーは元のパターンに従いますが、一時ストレージは依然として異なります。"
#: website/public/blog/reverse-engineering-models/index.html:516
msgctxt "page:blog/reverse-engineering-models/index.html"
msgid "Keep the temporary results alive together"
msgstr "一時的な結果を同時に有効にしておく"
#: website/public/blog/reverse-engineering-models/index.html:517
msgctxt "page:blog/reverse-engineering-models/index.html"
msgid ""
"They get separate storage, but one still overlaps a value used later for "
"collision checks."
msgstr "これらは別々のストレージを取得しますが、1 つは、後で衝突チェックに使用される値と依然として重複します。"
#: website/public/blog/reverse-engineering-models/index.html:523
msgctxt "page:blog/reverse-engineering-models/index.html"
msgid "Keep the collision-check value separate"
msgstr "衝突判定の値を独立させる"
#: website/public/blog/reverse-engineering-models/index.html:524
msgctxt "page:blog/reverse-engineering-models/index.html"
msgid "A clean rebuild confirms the complete match."
msgstr "ソースからクリーンに再コンパイルすると、完全に一致していることが確認されます。"
#: website/public/blog/reverse-engineering-models/index.html:529
msgctxt "page:blog/reverse-engineering-models/index.html"
msgid ""
"Selected experiments from the attack-function reconstruction above, grouped "
"by what they taught us."
msgstr "上記の攻撃関数の再構築から選択した実験を、教えられた内容ごとにグループ化しました。"
#: website/public/blog/reverse-engineering-models/index.html:533
msgctxt "page:blog/reverse-engineering-models/index.html"
msgid ""
"A training record that keeps this sequence can teach more than the final "
"source alone. It connects each proposed change to an observed result and the"
" next decision. Keeping ineffective variations matters too: they tell a "
"later agent which hypotheses have already been tested in that context."
msgstr ""
"この順序を維持したトレーニング記録は、最終的なソースだけよりも多くのことを教えることができます。提案された各変更を観察された結果と次の決定に結び付けます。効果のないバリエーションを維持することも重要です。バリエーションは、後のエージェントに、そのコンテキストでどの仮説がすでにテストされているかを伝えます。"
#. {ph0}: <strong >
#. {ph1}: </strong >
#: website/public/blog/reverse-engineering-models/index.html:540
#, python-brace-format
msgctxt "page:blog/reverse-engineering-models/index.html"
msgid ""
"{ph0}I would want the model to learn how to use feedback.{ph1} A neutral "
"result is a reason to reconsider the variation; a changed mismatch may point"
" to another cause. When local edits stop being informative, the agent should"
" be able to revisit the source representation or inspect the evidence again."
msgstr ""
"{ph0}モデルにはフィードバックの使い方を学んでほしい。{ph1} "
"結果が変わらなければ、その変更を考え直す理由になる。差分が変われば、別の原因が見えてくるかもしれない。局所的な編集から情報が得られなくなったら、全体の書き方を見直したり、証拠を再確認したりできるべきだ。"
#: website/public/blog/reverse-engineering-models/index.html:549
msgctxt "page:blog/reverse-engineering-models/index.html"
msgid ""
"Learning to make those choices requires autonomy. Sometimes the useful next "
"step is inspecting another caller rather than compiling another edit. A "
"rigid sequence of required rewrites would remove that choice, along with "
"part of the behavior we want the model to learn."
msgstr ""
"これらの選択を行うことを学ぶには自主性が必要です。場合によっては、別の編集をコンパイルするのではなく、別の呼び出し元を検査することが次のステップとして役立つ場合があります。必要な書き換えを厳密に繰り返すと、モデルに学習させたい動作の一部とともに、その選択肢が削除されてしまいます。"
#: website/public/blog/reverse-engineering-models/index.html:558
msgctxt "page:blog/reverse-engineering-models/index.html"
msgid "Why RE is interesting for reinforcement learning"
msgstr "リバースエンジニアリングが強化学習にとって興味深い理由"
#: website/public/blog/reverse-engineering-models/index.html:559
msgctxt "page:blog/reverse-engineering-models/index.html"
msgid ""
"Bounded reconstruction gives us a practical environment for studying these "
"choices. Once the target and compiler are pinned, many source experiments "
"produce quick, repeatable feedback. The agent can compile a candidate, "
"inspect the mismatch and use that observation to choose its next step."
msgstr ""
"範囲を定めた再構築は、こうした判断を研究するための実用的な環境になる。対象とコンパイラのバージョンを固定すれば、多くのソースの実験で素早く再現可能なフィードバックを得られる。エージェントは候補をコンパイルし、差分を調べ、次の行動を選べる。"
#: website/public/blog/reverse-engineering-models/index.html:566
msgctxt "page:blog/reverse-engineering-models/index.html"
msgid ""
"Reinforcement learning could train that decision-making process through the "
"feedback it receives. A candidate accepted by a defined check gives us a "
"concrete outcome, while the sequence of attempts lets us observe how much "
"work it took to reach it."
msgstr ""
"強化学習なら、得られたフィードバックからこの判断を学習できるかもしれない。定義された検証を通った候補は具体的な成果になり、試行の記録から、そこに至るまでの労力も調べられる。"
#. {ph0}: <a href="https://aclanthology.org/2024.emnlp-main.203/" >
#. {ph1}: </a >
#. {ph2}: <a href="https://arxiv.org/html/2606.16162v1">
#. {ph3}: </a>
#: website/public/blog/reverse-engineering-models/index.html:572
#, python-brace-format
msgctxt "page:blog/reverse-engineering-models/index.html"
msgid ""
"There is already research supporting this direction. {ph0}LLM4Decompile{ph1}"
" studies models specialized for decompilation. {ph2}AutoDecompiler{ph3} "
"trains multi-turn refinement using compiler and execution feedback. Their "
"studies focus on functional recovery. For this work, I would use them as a "
"starting point for the related task of finding source that matches a "
"historical compiler's output."
msgstr ""
"この方向を支える研究はすでにある。{ph0}LLM4Decompile{ph1}は逆コンパイルに特化したモデルを研究している。{ph2}AutoDecompiler{ph3}はコンパイルと実行のフィードバックを使って複数ターンの改善を学習する。両者が扱うのは機能の復元だ。私はそこを出発点に、当時のコンパイラの出力に一致するソースを探すという関連した課題を研究したい。"
#. {ph0}: <a
#. href="https://github.com/N0zoM1z0/th08/commit/af9cb1d3e839b15a78b47ac1701506083cc82847"
#. >
#. {ph1}: </a >
#: website/public/blog/reverse-engineering-models/index.html:584
#, python-brace-format
msgctxt "page:blog/reverse-engineering-models/index.html"
msgid ""
"To reach such a well-defined task, though, we may first need to establish "
"what a function owns or devise a new runtime measurement. In TH08, for "
"example, a {ph0}collision difference led back to how the original program "
"handled floating-point calculations{ph1}. Before the agent could test a "
"useful correction, it had to work out what to measure."
msgstr ""
"ただし、このように明確に定義されたタスクに到達するには、まず関数が所有するリソースを確立するか、実行中のプログラムの状態や振る舞いを観測する新しい方法を考案する必要があるかもしれません。たとえば、TH08"
" "
"では、{ph0}衝突の違いにより、元のプログラムでの浮動小数点計算の処理方法が問題になりました{ph1}。エージェントが有用な補正をテストする前に、何を測定するかを決定する必要がありました。"
#: website/public/blog/reverse-engineering-models/index.html:595
msgctxt "page:blog/reverse-engineering-models/index.html"
msgid ""
"This suggests another role for a broadly capable model: helping make the "
"problem checkable in the first place. Once that check exists, we can "
"investigate how far a learned search policy can get with it."
msgstr ""
"ここから、幅広い能力を持つモデルのもう一つの役割が見える。まず問題を検証可能にすることだ。検証方法ができて初めて、学習した探索方針がどこまで進めるかを調べられる。"
#: website/public/blog/reverse-engineering-models/index.html:603
msgctxt "page:blog/reverse-engineering-models/index.html"
msgid "When the oracle is wrong"
msgstr "検証器が間違っていたら"
#: website/public/blog/reverse-engineering-models/index.html:604
msgctxt "page:blog/reverse-engineering-models/index.html"
msgid ""
"Once we train against that check, its coverage becomes part of what the "
"model learns. I call the reference or checker an oracle. Even if it gives a "
"repeatable answer, we still need to understand what that answer covers."
msgstr ""
"その検証を使って学習すると、検証範囲も学習環境の一部になる。私はこうした参照基準や検証器を oracle "
"と呼んでいる。答えが再現可能でも、それが何を確認した答えなのかを理解する必要がある。"
#: website/public/blog/reverse-engineering-models/index.html:610
msgctxt "page:blog/reverse-engineering-models/index.html"
msgid ""
"TH08 showed how much can hide outside that coverage. Some reconstructed "
"functions passed their exact comparisons with wrong floating constants. The "
"comparator adjusted relocated addresses before checking instructions, but it"
" checked the values behind those addresses only when they had been "
"explicitly recorded for verification. Other literal references could pass "
"without their values being examined."
msgstr ""
"TH08 "
"では、検証範囲の外に問題が隠れていた。誤った浮動小数点定数を使っていても、完全一致の比較を通る関数があった。比較器は命令を確認する前に再配置されたアドレスを調整するが、そのアドレスが指す値まで確認するのは、検証対象として明示的に登録された場合だけだった。ほかの定数への参照は、値を調べずに通ってしまう可能性があった。"
#. {ph0}: <a
#. href="https://github.com/N0zoM1z0/th08/commit/a393f400786e4cc6cbb1000af0dad3276da12c78"
#. >
#. {ph1}: </a >
#. {ph2}: <code>1.0f</code>
#. {ph3}: <code>32.0f</code>
#: website/public/blog/reverse-engineering-models/index.html:619
#, python-brace-format
msgctxt "page:blog/reverse-engineering-models/index.html"
msgid ""
"To close that gap, a {ph0}wider audit{ph1} found incorrect constants in "
"functions that had already been accepted. In one calculation, the "
"reconstructed source added {ph2} where the original added {ph3}."
msgstr ""
"このギャップに対処するために、{ph0}広範な監査{ph1}により、すでに検証に合格した関数内に不正な定数が見つかりました。ある計算では、再構成されたソース"
" コードでは {ph2} が追加されましたが、元のコードでは {ph3} が追加されました。"
#. {ph0}: <strong >
#. {ph1}: </strong >
#: website/public/blog/reverse-engineering-models/index.html:629
#, python-brace-format
msgctxt "page:blog/reverse-engineering-models/index.html"
msgid ""
"{ph0}A learner rewarded by the old check could learn to produce the wrong "
"reconstruction.{ph1} We had not trained an RL model against this oracle; the"
" observed failure was in the check itself. But using that check as a reward "
"would have made the same blind spot part of the learning environment."
msgstr ""
"{ph0}古い検証結果で報酬を与えれば、モデルは誤った再構築を学習してしまうかもしれない。{ph1} この検証器で RL "
"モデルを訓練したわけではない。観測したのは検証そのものの不具合だ。ただ、それを報酬に使えば、同じ盲点が学習環境に入ることになる。"
#. {ph0}: <a href="https://arxiv.org/html/2609.05370v1" >
#. {ph1}: </a >
#: website/public/blog/reverse-engineering-models/index.html:639
#, python-brace-format
msgctxt "page:blog/reverse-engineering-models/index.html"
msgid ""
"A functional test can have a similar blind spot. {ph0}Differential-fuzzing "
"research on LLM decompilers{ph1} has found behavior differences beyond the "
"supplied tests. Passing those tests therefore needs to be read in terms of "
"the cases they exercise, just as an instruction match needs to be read in "
"terms of the bytes and data it checks."
msgstr ""
"機能テストにも同様の盲点がある可能性があります。 {ph0}LLM "
"デコンパイラで差分ファジングを使用した研究{ph1}では、提供されたテスト以外の動作の違いが見つかりました。したがって、合格したテストを、実行されるケースの観点から理解する必要があります。同様に、命令の一致は、検証されるバイトとデータの観点から理解する必要があります。"
#: website/public/blog/reverse-engineering-models/index.html:649
msgctxt "page:blog/reverse-engineering-models/index.html"
msgid ""
"Before using either kind of check as a reward, I would test it with "
"deliberate failures. I would also keep final acceptance outside the "
"candidate's editable source, so the model has to satisfy the check through "
"its reconstruction. Otherwise, something like a byte array copied from the "
"target could satisfy a naive score without recovering useful source."
msgstr ""
"どちらの種類の検証チェックも報酬として使用する前に、意図的に間違った結果でテストします。また、最終的な承認は、AI エージェントが編集できるソース "
"コードとは別にしておきます。モデルはプログラムを正しく再構築することで検証に合格する必要があります。そうしないと、ターゲットからバイト配列をコピーするだけで、有用なソース"
" コードを回復せずに、単純なスコアリング システムを騙してしまう可能性があります。"
#. {ph0}: <strong >
#. {ph1}: </strong >
#: website/public/blog/reverse-engineering-models/index.html:657
#, python-brace-format
msgctxt "page:blog/reverse-engineering-models/index.html"
msgid ""
"{ph0}Improving the learner and improving its oracle belong to the same "
"research problem.{ph1} As the learner gets better at optimizing the feedback"
" we give it, understanding that feedback becomes more important too."
msgstr ""
"{ph0}学習するモデルの改善と、その検証器の改善は同じ研究課題だ。{ph1} "
"モデルが与えられたフィードバックを上手に最適化するほど、そのフィードバックを理解することも重要になる。"
#: website/public/blog/reverse-engineering-models/index.html:667
msgctxt "page:blog/reverse-engineering-models/index.html"
msgid "A comparison worth running"
msgstr "実行する価値のある比較"
#: website/public/blog/reverse-engineering-models/index.html:668
msgctxt "page:blog/reverse-engineering-models/index.html"
msgid ""
"With those checks in place, I would start the comparison on a fixed VC7.1 "
"task family. First, I would establish baselines for a strong general model "
"and a smaller one. Adding repository knowledge to the smaller model would "
"show what retrieval changes. From there, supervised specialization and an "
"RL-trained version would let us examine what training adds."
msgstr ""
"これらのチェックを実施したら、固定の VC7.1 タスク ファミリで比較を開始します。まず、強力な汎用 AI モデルと小規模な AI "
"モデルのベースラインを確立します。リポジトリの知識をより小さなモデルに追加すると、取得によってどのような変化が生じるのかがわかります。そこから、教師付き特殊化と"
" RL でトレーニングされたバージョンを使用して、トレーニングによって追加される内容を検証できるようになります。"
#: website/public/blog/reverse-engineering-models/index.html:676
msgctxt "page:blog/reverse-engineering-models/index.html"
msgid ""
"To make those comparisons informative, each model would receive the same "
"target evidence and tools. For the training-specific comparisons, I would "
"keep the base model and available knowledge fixed as well. Repeated trials "
"would help distinguish a reliable search strategy from a lucky candidate."
msgstr ""
"これらの比較を有益なものにするために、各モデルは同じターゲットの証拠とツールを受け取ります。トレーニング固有の比較の場合、基本モデルと利用可能な知識も固定したままにします。試行を繰り返すことは、信頼できる検索戦略と偶然成功した候補ソリューションを区別するのに役立ちます。"
#: website/public/blog/reverse-engineering-models/index.html:683
msgctxt "page:blog/reverse-engineering-models/index.html"
msgid ""
"I would then separate two starting conditions: reconstructing a function "
"from its instructions, and closing the last few differences in maintained "
"source. A specialist might be excellent at the second task while a general "
"model does much of the work needed to reach it. Measuring them separately "
"would reveal that division of work."
msgstr ""
"二つの出発点も分けたい。命令から関数を再構築する場合と、保守しているソースの最後の差分を詰める場合だ。特化モデルが後者に優れていても、そこまでの作業の多くは汎用モデルが担っているかもしれない。別々に測れば、その分担が見える。"
#: website/public/blog/reverse-engineering-models/index.html:691
msgctxt "page:blog/reverse-engineering-models/index.html"
msgid ""
"Both tasks need genuinely held-out examples. Because related Touhou games "
"share engine code, holding out a game's name would still allow nearly "
"identical functions to appear in training. I would instead hold out source "
"families and keep their accepted answers out of both training and retrieval."
msgstr ""
"どちらのタスクも、トレーニングと取得から除外されたテスト例が必要です。関連する Touhou ゲームはエンジン コードを共有します。トレーニングから 1"
" つのゲームを除外しても、トレーニング セットにほぼ同じ機能が残る可能性があります。代わりに、関連するソース "
"コードのグループ全体を除外し、検証済みの回答をトレーニング データと検索ライブラリの両方から除外します。"
#: website/public/blog/reverse-engineering-models/index.html:698
msgctxt "page:blog/reverse-engineering-models/index.html"
msgid ""
"On those examples, the outcome would be complete, independently validated "
"matches. Giving each model the same candidate or compile budget would help "
"compare search quality. Measuring elapsed time and total cost, including "
"compilation, would tell us whether that quality produces an efficient "
"workflow. Training costs would need their own accounting too."
msgstr ""
"測る成果は、関数全体が独立した検証を通って一致したことだ。候補数やコンパイル回数の予算をそろえれば探索の質を比べられる。コンパイルを含む総時間と総費用を測れば、それが効率的なワークフローにつながるかがわかる。学習費用は別に計上したい。"
#: website/public/blog/reverse-engineering-models/index.html:706
msgctxt "page:blog/reverse-engineering-models/index.html"
msgid ""
"Both views matter because a cheaper proposal can become an expensive "
"workflow if it causes more uninformative compiles. Conversely, a slower "
"model may pay for itself by finding a useful experiment sooner. The "
"comparison should capture those costs."
msgstr ""
"どちらの測定値も重要です。安価な提案により、有用な情報を提供しないコンパイルが増加すると、ワークフローが高価になる可能性があります。逆に、有用な実験がすぐに見つかった場合、遅いモデルの方が経済的になる可能性があります。比較にはこれらのコストも含める必要があります。"
#. {ph0}: <a
#. href="https://github.com/N0zoM1z0/th09/commit/ab72fd77728293fc0beacfc656ca701b0e266016"
#. >
#. {ph1}: </a >
#: website/public/blog/reverse-engineering-models/index.html:712
#, python-brace-format
msgctxt "page:blog/reverse-engineering-models/index.html"
msgid ""
"Counting accepted results also keeps intermediate progress in perspective. "
"One TH09 {ph0}replay-save candidate{ph1} looked promising because the "
"compiled function had the expected size, but a full comparison still found "
"substantial differences. Changes in how the compiler arranges instructions "
"can also make a candidate look closer without resolving the underlying "
"problem. Such diagnostics can guide the next experiment, but I would "
"validate any reward for \"getting closer\" against the full acceptance "
"check."
msgstr ""
"受け入れられた結果をカウントすることで、中間の進捗状況も把握できます。 1 つの TH09 "
"{ph0}再生保存候補{ph1}は、コンパイルされた関数が予想どおりのサイズを持っていたため有望に見えましたが、完全な比較では依然として大きな違いが見つかりました。コンパイラが命令を配置する方法を変更すると、根本的な問題が解決されずに、候補がより近くに見える可能性もあります。このような診断は次の実験を導くことができますが、私は「近づく」ことに対する報酬を完全な受け入れチェックと照らし合わせて検証します。"
#: website/public/blog/reverse-engineering-models/index.html:727
msgctxt "page:blog/reverse-engineering-models/index.html"
msgid ""
"I would be interested in the pattern across these results. If a specialist "
"does well within a familiar compiler family, does that advantage survive a "
"toolchain change? And once both models have good retrieval, how much does "
"training still add? The answers would help us decide where each kind of "
"model is most useful."
msgstr ""
"結果全体にどんな傾向があるかを知りたい。特化モデルが使い慣れたコンパイラで優れていても、ツールチェーンを変えた後にその強みは残るだろうか。両方が十分に知識を検索できるとき、学習はどれだけ価値を加えるのか。答えは、各モデルをどこで使うべきかを考える助けになる。"
#: website/public/blog/reverse-engineering-models/index.html:736
msgctxt "page:blog/reverse-engineering-models/index.html"
msgid "What kind of agent does this suggest?"
msgstr "どんなエージェントが必要なのか?"
#: website/public/blog/reverse-engineering-models/index.html:737
msgctxt "page:blog/reverse-engineering-models/index.html"
msgid ""
"If the models turn out to help at different stages, a useful arrangement "
"might be a broad agent with access to a specialist. Once a task becomes a "
"familiar compiler search, it could ask the specialist for candidates. If the"
" results stop making sense, the broader agent could return to the target "
"evidence or investigate the measurement itself."
msgstr ""
"モデルが段階ごとに違う強みを持つなら、汎用エージェントが特化モデルを呼び出せる構成が役立つかもしれない。問題が慣れたコンパイラでの探索になったら、特化モデルに候補を求める。結果が納得できなくなったら、汎用エージェントが対象の証拠や測定そのものを調べ直す。"
#: website/public/blog/reverse-engineering-models/index.html:745
msgctxt "page:blog/reverse-engineering-models/index.html"
msgid ""
"In that arrangement, specialization becomes a tool the agent can choose as "
"the investigation develops. The agent keeps the freedom to change direction "
"that made the earlier breakthroughs possible."
msgstr "この構成では、特化モデルは調査の進み方に応じて選べる道具になる。エージェントには、以前の突破口を可能にした方向転換の自由が残る。"
#: website/public/blog/reverse-engineering-models/index.html:750
msgctxt "page:blog/reverse-engineering-models/index.html"
msgid ""
"This follows naturally from the industrial shift I described in the previous"
" essay. Being able to run many more experiments changes how we organize the "
"work. It also gives us a reason to ask which decisions need broad judgment "
"and which improve through repeated experience with a particular craft."
msgstr ""
"これは、前回のエッセイで説明した産業の変化から自然に生じます。さらに多くの実験を実行できるようになると、作業の組織化の方法が変わります。また、どの決定には広範な判断が必要なのか、どの決定は特定の技術での繰り返しの経験によって改善されるのかを尋ねる理由も得られます。"
#: website/public/blog/reverse-engineering-models/index.html:757
msgctxt "page:blog/reverse-engineering-models/index.html"
msgid ""
"For now, the strongest general model has earned its place in my workflow by "
"opening problems I had left unresolved. Those successes are what make me "
"want to examine the work more closely: how much depended on the model's "
"breadth, and how much could be handled by a model trained in this particular"
" kind of reconstruction?"
msgstr ""
"今のところ、未解決のまま残されていた問題を解決することで、最強の汎用 AI "
"モデルが私のワークフローにその地位を獲得しました。これらの成功により、私はこの作業をさらに詳しく調べてみたいと思うようになりました。どの程度がモデルの範囲に依存しているのか、また、この特定の種類の再構成でトレーニングされたモデルでどの程度の処理が可能でしょうか?"
#. {ph0}: <strong >
#. {ph1}: </strong >
#: website/public/blog/reverse-engineering-models/index.html:765
#, python-brace-format
msgctxt "page:blog/reverse-engineering-models/index.html"
msgid ""
"{ph0}The repositories give us a way to test the question.{ph1} I would like "
"to use that record to build the comparison and see what we learn."
msgstr "{ph0}リポジトリは、質問をテストする方法を提供します。{ph1}その記録を使用して比較を構築し、何が分かるかを確認したいと思います。"
#: website/public/blog/reverse-engineering-models/index.html:775
msgctxt "page:blog/reverse-engineering-models/index.html"
msgid "Evidence and model attribution"
msgstr "証拠とモデルの帰属"
#: website/public/blog/reverse-engineering-models/index.html:783
msgctxt "page:blog/reverse-engineering-models/index.html"
msgid ""
"The examples describe historical function-level comparisons recorded in the "
"linked commits. Whole-game runtime checks are separate milestones. Source "
"and matching records were reviewed on 13 October 2026."
msgstr ""
"この例では、リンクされたコミットに記録された関数レベルの比較の履歴について説明します。ゲーム全体のランタイム "
"チェックは別のマイルストーンです。ソースと一致する記録は 2026 年 10 月 13 日に確認されました。"
#. {ph0}: <code>gpt-dots</code>
#. {ph1}: <code>gpt-web</code>
#: website/public/blog/reverse-engineering-models/index.html:789
#, python-brace-format
msgctxt "page:blog/reverse-engineering-models/index.html"
msgid ""
"The TH09 label {ph0} identifies GPT-6-Astra. {ph1} changed with the model "
"used at the time, so that label alone does not identify an individual run. "
"Explicit model names in the other cited commits establish their recorded "
"attribution; the histories do not contain uniform per-run cost or effort "
"measurements."
msgstr ""
"TH09 ラベル {ph0} は GPT-6-Astra を意味します。 {ph1} "
"に関連付けられたモデルは時間の経過とともに変化したため、ラベルだけでは特定の実行で使用されたモデルを識別できません。他の引用されたコミット内の明示的なモデル名は、記録された帰属を示します。これらの履歴には、実行ごとのコストや労力の一貫した測定値は含まれていません。"
#. {ph0}: <strong>
#. {ph1}: </strong>
#. {ph2}: <a
#. href="https://github.com/N0zoM1z0/th09/commit/de63c0f9121963f3a6b1ab5471c4878625fd3425"
#. >
#. {ph3}: </a >
#. {ph4}: <a
#. href="https://github.com/N0zoM1z0/th09/commit/52929ed7c299f1a5f29cc13964e22510145fd616"
#. >
#. {ph5}: </a >
#: website/public/blog/reverse-engineering-models/index.html:798
#, python-brace-format
msgctxt "page:blog/reverse-engineering-models/index.html"
msgid ""
"{ph0}TH09 temporary lifetimes:{ph1} the {ph2}earlier context review{ph3} and"
" {ph4}complete cold reconstruction{ph5}."
msgstr ""
"{ph0}TH09 一時オブジェクトの有効期間:{ph1} {ph2}以前のコンテキスト "
"レビュー{ph3}と、{ph4}ソースからのクリーンな再コンパイルによって検証された完全な再構築{ph5}。"
#. {ph0}: <strong>
#. {ph1}: </strong>
#. {ph2}: <a
#. href="https://github.com/N0zoM1z0/th09/commit/f8d12d72aaf02212ee1b585a8f3f86d7ed000269"
#. >
#. {ph3}: </a >
#. {ph4}: <a
#. href="https://github.com/N0zoM1z0/th09/commit/da33a646221198ceb7f3df2b96e2ca0e9b2f705f"
#. >
#. {ph5}: </a >
#. {ph6}: <a
#. href="https://github.com/N0zoM1z0/th09/commit/5f825b28a862f8e1a6d4aea2f78a42f04c09a1c0"
#. >
#. {ph7}: </a >
#: website/public/blog/reverse-engineering-models/index.html:810
#, python-brace-format
msgctxt "page:blog/reverse-engineering-models/index.html"
msgid ""
"{ph0}TH09 Front callback:{ph1} {ph2}non-exact diagnostic regions{ph3}, "
"{ph4}Astra's new graph{ph5} and its {ph6}accepted recompile replay{ph7}."
msgstr ""
"{ph0}TH09 Front コールバック:{ph1} {ph2}一致しなかった診断領域{ph3}、{ph4}Astra の新しい制御フロー "
"グラフ{ph5}、およびその {ph6}受け入れられた再コンパイル チェック{ph7}。"
#. {ph0}: <strong>
#. {ph1}: </strong>
#. {ph2}: <a
#. href="https://github.com/N0zoM1z0/th095/commit/26bb64bdb093a13f73abd0ee8ae7ce199ee4658f"
#. >
#. {ph3}: </a >
#. {ph4}: <a
#. href="https://github.com/N0zoM1z0/th04/commit/6dce0a79d5b931f0e2a08475b90e0c33d2321b98"
#. >
#. {ph5}: </a >
#. {ph6}: <a
#. href="https://github.com/N0zoM1z0/th09/commit/1eb843383941d00065622a9e353146c4bb96979e"
#. >
#. {ph7}: </a >
#: website/public/blog/reverse-engineering-models/index.html:826
#, python-brace-format
msgctxt "page:blog/reverse-engineering-models/index.html"
msgid ""
"{ph0}Compiler knowledge:{ph1} {ph2}TH095 identifier-bucket reuse{ph3}, "
"{ph4}TH04 player source and linker order{ph5} and {ph6}Luna's TH09 enemy-"
"spawn closure{ph7}."
msgstr ""
"{ph0}コンパイラーの知識:{ph1} {ph2}TH095 識別子バケットの動作の再利用{ph3}、{ph4}TH04 プレーヤーのソース "
"コードとリンカーの順序{ph5}、および {ph6}Luna による TH09 の敵作成関数の完全な再構築{ph7}。"
#. {ph0}: <strong>
#. {ph1}: </strong>
#. {ph2}: <a
#. href="https://github.com/N0zoM1z0/th08/commit/a393f400786e4cc6cbb1000af0dad3276da12c78"
#. >
#. {ph3}: </a >
#. {ph4}: <a
#. href="https://github.com/N0zoM1z0/th08/commit/af9cb1d3e839b15a78b47ac1701506083cc82847"
#. >
#. {ph5}: </a >
#. {ph6}: <a
#. href="https://github.com/N0zoM1z0/th09/commit/ab72fd77728293fc0beacfc656ca701b0e266016"
#. >
#. {ph7}: </a >
#: website/public/blog/reverse-engineering-models/index.html:842
#, python-brace-format
msgctxt "page:blog/reverse-engineering-models/index.html"
msgid ""
"{ph0}Checks and diagnostics:{ph1} {ph2}TH08 floating-literal audit{ph3}, "
"{ph4}TH08 numerical investigation{ph5} and {ph6}TH09 replay-save "
"reconstruction{ph7}."
msgstr ""
"{ph0}チェックと診断:{ph1} {ph2}TH08 浮動小数点定数監査{ph3}、{ph4}TH08 数値調査{ph5}、および "
"{ph6}TH09 リプレイ保存再構築{ph7}。"
#: website/public/blog/reverse-engineering-models/index.html:859
msgctxt "page:blog/reverse-engineering-models/index.html"
msgid ""
"The proposed specialist and RL comparisons are future experiments. The "
"project histories motivate them; no trained specialist was evaluated for "
"this essay."
msgstr ""
"特化モデルと RL "
"の比較は、これから行いたい実験だ。プロジェクトの履歴がその動機になっているが、このエッセイで学習済みの特化モデルを評価したわけではない。"
#: website/public/blog/reverse-engineering-models/index.html:6
msgctxt "page:blog/reverse-engineering-models/index.html"
msgid "Does reverse engineering need a bigger model? | REA"
msgstr "リバースエンジニアリングに、より大きなモデルは必要か? | REA"
#: website/public/blog/reverse-engineering-models/index.html:7
msgctxt "page:blog/reverse-engineering-models/index.html"
msgid ""
"What Touhou reconstruction taught me about general models, specialist models"
" and learning to propose better hypotheses from compiler feedback."
msgstr "Touhou の再構築から考える、汎用モデルと特化モデル、そしてコンパイラのフィードバックからよりよい仮説を学ぶ可能性。"
#: website/public/blog/reverse-engineering-models/index.html:240
msgctxt "page:blog/reverse-engineering-models/index.html"
msgid "On this page"
msgstr "このページでは"
#: website/public/blog/reverse-engineering-models/index.html:253
msgctxt "page:blog/reverse-engineering-models/index.html"
msgid "Models and reverse engineering essay"
msgstr "モデルとリバース エンジニアリングのエッセイ"
#: website/public/blog/reverse-engineering-models/index.html:491
msgctxt "page:blog/reverse-engineering-models/index.html"
msgid "Selected reconstruction experiments"
msgstr "厳選された復元実験"
#: website/public/blog/reverse-engineering-models/index.html:883
msgctxt "page:blog/reverse-engineering-models/index.html"
msgid "Back to top"
msgstr "ページ上部へ"
#. {ph0}: <a
#. href="https://github.com/morluto/rea/blob/main/website/evidence/reverse-
#. engineering-models.md" >
#. {ph1}: </a >
#: website/public/blog/reverse-engineering-models/index.html:776
#, python-brace-format
msgctxt "page:blog/reverse-engineering-models/index.html"
msgid ""
"{ph0}Detailed evidence notes{ph1} include the recorded comparisons and "
"experiment context."
msgstr "{ph0}詳しい証拠の記録{ph1}には、比較結果と実験の背景をまとめている。"
#~ msgctxt "page:blog/index.html"
#~ msgid "By N0zoM1z0 · 13 October 2026 · Draft for review"
#~ msgstr "N0zoM1z0 著 · 2026年10月13日 · レビュー用草稿"
#~ msgctxt "page:index.html"
#~ msgid "Setup guide"
#~ msgstr "セットアップガイド"
#~ msgctxt "page:get-started/index.html"
#~ msgid "Windows PowerShell"
#~ msgstr "Windows PowerShell"
#~ msgctxt "page:get-started/index.html"
#~ msgid "macOS · Homebrew"
#~ msgstr "macOS*Homebrew"
#~ msgctxt "runtime"
#~ msgid "Copy"
#~ msgstr "コピー"
#~ msgctxt "figure:dx-ball-sound-pan-investigation.svg"
#~ msgid "DXBALL.EXE"
#~ msgstr "DXBALL.EXE"
#~ msgctxt "page:examples/dino-lab/index.html"
#~ msgid "Reconstruction · dino-speed.js"
#~ msgstr "再構築·ディノ-スピード.js"
#~ msgctxt "page:faq/index.html"
#~ msgid ""
#~ "With Node.js and npm available, run setup, choose your coding agent and "
#~ "review the proposed changes."
#~ msgstr "と Node.js と npm 利用可能で、セットアップを実行し、コーディングエージェントを選択し、提案された変更を確認します。"
#~ msgctxt "page:first-investigation/index.html"
#~ msgid "A supplied example · Node.js and npm · Your coding agent"
#~ msgstr "提供された例*Node.jsとnpm*コーディングエージェント"
#, python-brace-format
#~ msgctxt "page:first-investigation/index.html"
#~ msgid ""
#~ "Use a coding agent such as Claude Code, Codex or Cursor. You’ll need Node.js"
#~ " and npm; the {ph0}setup guide lists supported versions{ph1}."
#~ msgstr ""
#~ "次のようなコーディングエージェントを使用します Claude Code, Codex または Cursor. あなたが必要になります Node.js と"
#~ " npm;ザ- {ph0}セットアップガイドサポートされているバージョンの一覧{ph1}."
#, python-brace-format
#~ msgctxt "page:first-investigation/index.html"
#~ msgid ""
#~ "{ph0}Page · renderer.js{ph1}{ph2}Export notes{ph3}{ph4}Calls {ph5}.{ph6}"
#~ msgstr "{ph0}ページ*レンダラー。js{ph1}{ph2}ノートのエクスポート{ph3}{ph4}コール {ph5}.{ph6}"
#, python-brace-format
#~ msgctxt "page:first-investigation/index.html"
#~ msgid ""
#~ "{ph0}Bridge · preload.js{ph1}{ph2}{ph3}{ph4}{ph5}Sends a named message to "
#~ "the main process.{ph6}"
#~ msgstr "{ph0}橋*前荷。js{ph1}{ph2}{ph3}{ph4}{ph5}名前付きメッセージをメインプロセスに送信します。{ph6}"
#, python-brace-format
#~ msgctxt "page:first-investigation/index.html"
#~ msgid ""
#~ "{ph0}Handler · main.js{ph1}{ph2}Write notes.csv{ph3}{ph4}Calls the formatter"
#~ " in {ph5} and writes the file.{ph6}"
#~ msgstr ""
#~ "{ph0}ハンドラー*メイン。js{ph1}{ph2}メモを書きます。csv{ph3}{ph4}でフォーマッタを呼び出します {ph5} "
#~ "そして、ファイルを書き込みます。{ph6}"
#, python-brace-format
#~ msgctxt "page:first-investigation/index.html"
#~ msgid ""
#~ "{ph0}›{ph1}{ph2}Predict the CSV for a note with id 1 and title Hello, "
#~ "\"REA\". Then run the example’s toCsv formatter with Node.js to check it. "
#~ "Show the prediction and actual output.{ph3}{ph4}{ph5}"
#~ msgstr ""
#~ "{ph0}›{ph1}{ph2}を予測する CSV ノ身分を証明するものの提示が必要1名こんにちは,\"REA\". "
#~ "次に、例のtoCsvフォーマッタを次のように実行します Node.js それを確認する。 予測と実際の出力を表示します。{ph3}{ph4}{ph5}"
#~ msgctxt "page:first-investigation/index.html"
#~ msgid ""
#~ "The title stays in one quoted field; each quotation mark is doubled. This "
#~ "checks the formatter directly with Node.js."
#~ msgstr "タイトルは引用符で囲まれた1つのフィールドにとどまり、各引用符は2倍になります。 これはフォーマッタを直接チェックします Node.js."
#~ msgctxt "page:first-investigation/index.html"
#~ msgid "Node.js · CSV formatter"
#~ msgstr "Node.js · CSV フォーマッタ"
#~ msgctxt "page:get-started/index.html"
#~ msgid ""
#~ "You'll need Node.js 22 (22.19+), 24 (24.11+) or 26+. npm comes with Node.js."
#~ msgstr ""
#~ "あなたが必要になります Node.js 22 (22.19+), 24 (24.11+) または26+。 npm が付属しています Node.js."
#~ msgctxt "page:get-started/index.html"
#~ msgid "Don't have Node.js, or not sure?"
#~ msgstr "持っていない Node.js、またはわからない?"
#, python-brace-format
#~ msgctxt "page:get-started/index.html"
#~ msgid ""
#~ "If {ph0} prints v22.19+, v24.11+ or v26+, you're ready. If it prints an "
#~ "older version or \"not recognized\" / \"command not found\", install Node.js"
#~ " 24 LTS:"
#~ msgstr ""
#~ "もし {ph0} 印刷v22.19+、v24.11+またはv26+、準備が整いました。 "
#~ "古いバージョンまたは\"認識されません\"/\"コマンドが見つかりません\"を印刷する場合は、インストールします Node.js 24LTS:"
#, python-brace-format
#~ msgctxt "page:guides/browser/index.html"
#~ msgid ""
#~ "{ph0}Open the example{ph1} · {ph2}Download export.js{ph3} · {ph4}Download "
#~ "notes.json{ph5}"
#~ msgstr ""
#~ "{ph0}例を開きます{ph1} · {ph2}エクスポートをダウンロードします。js{ph3} · "
#~ "{ph4}ノートをダウンロードします。json{ph5}"
#, python-brace-format
#~ msgctxt "page:guides/javascript/index.html"
#~ msgid ""
#~ "Download the example and unzip it. The archive contains the complete {ph0} "
#~ "folder. Analyze it with Node.js and npm; Electron is not needed for this "
#~ "example."
#~ msgstr ""
#~ "例をダウンロードして解凍します。 アーカイブには完全なものが含まれています {ph0} フォルダ。 それを分析する Node.js と npm; "
#~ "Electron この例では必要ありません。"
#, python-brace-format
#~ msgctxt "page:index.html"
#~ msgid ""
#~ "First time, or missing Node.js or a coding agent? {ph0}Follow the step-by-"
#~ "step setup guide →{ph1}"
#~ msgstr ""
#~ "初めて、または行方不明 Node.js またはコーディングエージェント? {ph0}ステップバイステップセットアップガイドに従ってください→{ph1}"
#, python-brace-format
#~ msgctxt "page:index.html"
#~ msgid "One question: {ph0}why does Calculator give 220 for 200 + 10%?{ph1}"
#~ msgstr "例えば:{ph0}なぜ電卓で 200 + 10% を計算すると 220 になる?{ph1}"
#, python-brace-format
#~ msgctxt "page:index.html"
#~ msgid ""
#~ "{ph0}›{ph1}{ph2}Use REA to inspect Windows Calculator. Why does 200 + 10% "
#~ "give 220?{ph3}{ph4}{ph5}"
#~ msgstr ""
#~ "{ph0}›{ph1}{ph2}使用 REA 検査するには Windows 電卓。 "
#~ "なぜ200+10%が220を与えるのですか?{ph3}{ph4}{ph5}"
#, python-brace-format
#~ msgctxt "page:index.html"
#~ msgid ""
#~ "We saw why {ph0}200 + 10% gives 220.{ph1} Now let’s recover the rules for "
#~ "both + and ×, and try them."
#~ msgstr ""
#~ "私たちはなぜ見ましたか {ph0}200+10%与えます220.{ph1} それでは、+と×の両方のルールを回復し、それらを試してみましょう。"
#, python-brace-format
#~ msgctxt "page:index.html"
#~ msgid ""
#~ "{ph0}01 · REA reads calc.exe{ph1}{ph2}It launches the Calculator "
#~ "app{ph3}{ph4}The code opens {ph5}. The agent then selects the installed "
#~ "app’s library.{ph6}"
#~ msgstr ""
#~ "{ph0}01 · REA calcを読み込みます。exe{ph1}{ph2}電卓アプリを起動します{ph3}{ph4}コードが開きます {ph5}. "
#~ "次に、エージェントはインストールされているアプリのライブラリを選択します。{ph6}"
#, python-brace-format
#~ msgctxt "page:showcase/aegis/index.html"
#~ msgid ""
#~ "{ph0}›{ph1}{ph2}Use REA to inspect aegis-v3.4.3.apk. Find how it generates "
#~ "the six-digit login code, explain why it changes every 30 seconds, and "
#~ "rebuild a small demo where I can change the time.{ph3}{ph4}{ph5}"
#~ msgstr ""
#~ "{ph0}›{ph1}{ph2}使用 REA aegis-v3.4.3を検査する。------- "
#~ "6桁のログインコードを生成する方法を見つけ、30秒ごとに変更する理由を説明し、時間を変更できる小さなデモを再構築します。{ph3}{ph4}{ph5}"
#~ msgctxt "page:showcase/notion/index.html"
#~ msgid "tab_browser_view/preload.js · API member"
#~ msgstr "tab_browser_view/preload.js-APIメンバー"
#~ msgctxt "page:showcase/notion/index.html"
#~ msgid "tab_browser_view/preload.js · IPC helper"
#~ msgstr "tab_browser_view/preload.js*IPCヘルパー"
#~ msgctxt "page:showcase/notion/index.html"
#~ msgid "main/index.js · handler helper"
#~ msgstr "メイン/インデックス。js*ハンドラーヘルパー"
#~ msgctxt "page:showcase/notion/index.html"
#~ msgid "main/index.js · clipboard receiver"
#~ msgstr "メイン/インデックス。js*クリップボードレシーバー"
#~ msgctxt "page:first-investigation/index.html"
#~ msgid "main.js · lines 8–12"
#~ msgstr "メイン...js·8-12行目"
#~ msgctxt "page:guides/browser/index.html"
#~ msgid "export.js · example source excerpt"
#~ msgstr "輸出します。js·ソースの例の抜粋"
#~ msgctxt "page:guides/javascript/index.html"
#~ msgid "renderer.js · example source"
#~ msgstr "レンダラーjs·ソースの例"
#~ msgctxt "page:guides/javascript/index.html"
#~ msgid "preload.js · example source"
#~ msgstr "プリロードjs·ソースの例"
#~ msgctxt "page:guides/javascript/index.html"
#~ msgid "main.js · example source"
#~ msgstr "メイン...js·ソースの例"
#~ msgctxt "page:index.html"
#~ msgid "REA · loaded index.js · selected lines"
#~ msgstr "REA·ロードされたインデックス。js*選択した行"
#, python-brace-format
#~ msgctxt "page:faq/index.html"
#~ msgid ""
#~ "{ph0}›{ph1}{ph2}Use REA to analyze /absolute/path/to/app and explain how it "
#~ "exports data. Show the relevant code and source locations.{ph3}{ph4}{ph5}"
#~ msgstr ""
#~ "{ph0}›{ph1}{ph2}使用 REA /absolute/path/to/appを分析し、データをエクスポートする方法を説明します。 "
#~ "関連するコードとソースの場所を表示します。{ph3}{ph4}{ph5}"
#, python-brace-format
#~ msgctxt "page:first-investigation/index.html"
#~ msgid ""
#~ "{ph0}›{ph1}{ph2}Install REA and connect it to this coding agent using npx "
#~ "rea-agents@latest setup. Show me the setup plan for approval, then verify "
#~ "the installation.{ph3}{ph4}{ph5}"
#~ msgstr ""
#~ "{ph0}›{ph1}{ph2}インストール REA を使ってこのコーディングエージェントに接続し、 npx rea-エージェント@最新のセットアップ."
#~ " 承認のためのセットアップ計画を表示し、インストールを確認します。{ph3}{ph4}{ph5}"
#, python-brace-format
#~ msgctxt "page:first-investigation/index.html"
#~ msgid ""
#~ "{ph0}›{ph1}{ph2}Download https://rea.tools/examples/notes-example.zip into a"
#~ " new example folder and unpack it. Use REA to find what happens when I click"
#~ " Export notes. Show where notes.csv is written, which fields it contains, "
#~ "and the relevant files and lines.{ph3}{ph4}{ph5}"
#~ msgstr ""
#~ "{ph0}›{ph1}{ph2}ダウンロード https://rea.tools/examples/notes-example.zip "
#~ "新しいサンプルフォルダに解凍します。 使用 REA 私はエクスポートノートをクリックしたときに何が起こるかを見つけるために。 "
#~ "どこにノートを表示します。csvが書き込まれ、それに含まれるフィールド、および関連するファイルと行が書き込まれます。{ph3}{ph4}{ph5}"
#, python-brace-format
#~ msgctxt "page:get-started/index.html"
#~ msgid ""
#~ "{ph0}›{ph1}{ph2}Install REA and connect it to this coding agent using npx "
#~ "rea-agents@latest setup. Show me the setup plan for approval, then verify "
#~ "the installation.{ph3}{ph4}{ph5}"
#~ msgstr ""
#~ "{ph0}›{ph1}{ph2}インストール REA を使ってこのコーディングエージェントに接続し、 npx rea-エージェント@最新のセットアップ."
#~ " 承認のためのセットアップ計画を表示し、インストールを確認します。{ph3}{ph4}{ph5}"
#, python-brace-format
#~ msgctxt "page:index.html"
#~ msgid ""
#~ "{ph0}›{ph1}{ph2}Install REA and connect it to this coding agent using npx "
#~ "rea-agents@latest setup. Show me the setup plan for approval, then verify "
#~ "the installation.{ph3}{ph4}{ph5}"
#~ msgstr ""
#~ "{ph0}›{ph1}{ph2}インストール REA を使ってこのコーディングエージェントに接続し、 npx rea-エージェント@最新のセットアップ."
#~ " 承認のためのセットアップ計画を表示し、インストールを確認します。{ph3}{ph4}{ph5}"
#~ msgctxt "page:index.html"
#~ msgid "0x5b"
#~ msgstr "0x5b"
#~ msgctxt "page:index.html"
#~ msgid "0x5c"
#~ msgstr "0x5c"
#~ msgctxt "page:index.html"
#~ msgid "0x64"
#~ msgstr "0x64"
#, python-brace-format
#~ msgctxt "page:index.html"
#~ msgid ""
#~ "{ph0}›{ph1}{ph2}Use REA to inspect https://rea.tools/. Clone this website "
#~ "for me.{ph3}{ph4}{ph5}"
#~ msgstr ""
#~ "{ph0}›{ph1}{ph2}使用 REA 検査するには https://rea.tools/. "
#~ "私のためにこのウェブサイトを複製します。{ph3}{ph4}{ph5}"
#~ msgctxt "figure:ctf-mask-equation.svg"
#~ msgid "code[21] = 55"
#~ msgstr "コード[21]=55"
#~ msgctxt "figure:dx-ball-sound-pan-investigation.svg"
#~ msgid "0x00406400"
#~ msgstr "00406400"
#~ msgctxt "figure:dx-ball-sound-pan-investigation.svg"
#~ msgid "× pan_scale"
#~ msgstr "×パンスケール"
#, python-brace-format
#~ msgctxt "shared"
#~ msgid "{ph0}REA{ph1}{ph2}Reverse Engineer Anything{ph3}"
#~ msgstr "{ph0}REA{ph1}{ph2}リバースエンジニアリング何でも{ph3}"
#, python-brace-format
#~ msgctxt "shared"
#~ msgid ""
#~ "{ph0}Showcases{ph1} {ph2}Blog{ph3} {ph4}Get started{ph5} {ph6}Guides{ph7} "
#~ "{ph8}FAQ{ph9}"
#~ msgstr ""
#, python-brace-format
#~ msgctxt "shared"
#~ msgid ""
#~ "{ph0}Source{ph1}{ph2}MIT license{ph3}{ph4}Join the community{ph5}{ph6}Follow"
#~ " us on X{ph7}"
#~ msgstr ""
#, python-brace-format
#~ msgctxt "page:blog/touhou-reconstruction/index.html"
#~ msgid "{ph0}TH08{ph1}{ph2}→{ph3}{ph4}TH095{ph5}{ph6}→{ph7}{ph8}TH04{ph9}"
#~ msgstr ""
#, python-brace-format
#~ msgctxt "page:examples/dino-lab/index.html"
#~ msgid "{ph0}REA · selected script source{ph1}"
#~ msgstr ""
#, python-brace-format
#~ msgctxt "page:first-investigation/index.html"
#~ msgid "{ph0}main.js · lines 8–12{ph1}{ph2}Source{ph3}"
#~ msgstr ""
#, python-brace-format
#~ msgctxt "page:first-investigation/index.html"
#~ msgid "{ph0}Expected formatter output{ph1}"
#~ msgstr ""
#, python-brace-format
#~ msgctxt "page:guides/browser/index.html"
#~ msgid "{ph0}export.js · example source excerpt{ph1}"
#~ msgstr ""
#, python-brace-format
#~ msgctxt "page:guides/index.html"
#~ msgid ""
#~ "{ph0}Instructions{ph1} {ph2}→{ph3} {ph4}Caller{ph5} {ph6}→{ph7} "
#~ "{ph8}Constants{ph9} {ph10}→{ph11} {ph12}C function{ph13}"
#~ msgstr ""
#, python-brace-format
#~ msgctxt "page:guides/index.html"
#~ msgid ""
#~ "{ph0}Button{ph1} {ph2}→{ph3} {ph4}Preload API{ph5} {ph6}→{ph7} {ph8}IPC{ph9}"
#~ " {ph10}→{ph11} {ph12}CSV file{ph13}"
#~ msgstr ""
#, python-brace-format
#~ msgctxt "page:guides/index.html"
#~ msgid ""
#~ "{ph0}Your click{ph1} {ph2}→{ph3} {ph4}Captured request{ph5} {ph6}→{ph7} "
#~ "{ph8}Export script{ph9}"
#~ msgstr ""
#, python-brace-format
#~ msgctxt "page:guides/javascript/index.html"
#~ msgid "{ph0}renderer.js · example source{ph1}"
#~ msgstr ""
#, python-brace-format
#~ msgctxt "page:guides/javascript/index.html"
#~ msgid "{ph0}preload.js · example source{ph1}"
#~ msgstr ""
#, python-brace-format
#~ msgctxt "page:guides/javascript/index.html"
#~ msgid "{ph0}main.js · example source{ph1}"
#~ msgstr ""
#, python-brace-format
#~ msgctxt "page:guides/javascript/index.html"
#~ msgid "{ph0}REA result · summary.ipc excerpt{ph1}"
#~ msgstr ""
#, python-brace-format
#~ msgctxt "page:guides/native/index.html"
#~ msgid "{ph0}REA instruction excerpt · 0x406409{ph1}"
#~ msgstr ""
#, python-brace-format
#~ msgctxt "page:guides/native/index.html"
#~ msgid "{ph0}REA caller excerpt · 0x411f5b{ph1}"
#~ msgstr ""
#, python-brace-format
#~ msgctxt "page:guides/native/index.html"
#~ msgid "{ph0}REA byte results · interpreted as little-endian doubles{ph1}"
#~ msgstr ""
#, python-brace-format
#~ msgctxt "page:guides/native/index.html"
#~ msgid "{ph0}Recovered C · excerpt{ph1}"
#~ msgstr ""
#, python-brace-format
#~ msgctxt "page:index.html"
#~ msgid ""
#~ "{ph0}See how REA works ↓{ph1} {ph2}Setup guide{ph3} {ph4}Showcases →{ph5}"
#~ msgstr ""
#, python-brace-format
#~ msgctxt "page:index.html"
#~ msgid "{ph0}REA · loaded index.js · selected lines{ph1}"
#~ msgstr ""
#, python-brace-format
#~ msgctxt "page:index.html"
#~ msgid "{ph0}Selected settings from the inspected script{ph1}"
#~ msgstr ""
#, python-brace-format
#~ msgctxt "page:index.html"
#~ msgid "{ph0}Readable summary of the % handler{ph1}"
#~ msgstr ""
#, python-brace-format
#~ msgctxt "page:index.html"
#~ msgid "{ph0}REA · selected original instructions{ph1}"
#~ msgstr ""
#, python-brace-format
#~ msgctxt "page:index.html"
#~ msgid "{ph0}Operator IDs · Microsoft’s source{ph1}"
#~ msgstr ""
#, python-brace-format
#~ msgctxt "page:index.html"
#~ msgid "{ph0}Join the community{ph1} {ph2}Follow @reatools on X{ph3}"
#~ msgstr ""
#, python-brace-format
#~ msgctxt "page:showcase/aegis/index.html"
#~ msgid "{ph0}Agent → REA{ph1}"
#~ msgstr ""
#, python-brace-format
#~ msgctxt "page:showcase/aegis/index.html"
#~ msgid "{ph0}REA → agent · selected results{ph1}"
#~ msgstr ""
#, python-brace-format
#~ msgctxt "page:showcase/aegis/index.html"
#~ msgid "{ph0}REA → agent · methods and callers{ph1}"
#~ msgstr ""
#, python-brace-format
#~ msgctxt "page:showcase/aegis/index.html"
#~ msgid "{ph0}REA · selected decompiled Java{ph1}"
#~ msgstr ""
#, python-brace-format
#~ msgctxt "page:showcase/aegis/index.html"
#~ msgid "{ph0}Readable summary · agent's interpretation{ph1}"
#~ msgstr ""
#, python-brace-format
#~ msgctxt "page:showcase/aegis/index.html"
#~ msgid "{ph0}REA · generateOTP, complete body{ph1}"
#~ msgstr ""
#, python-brace-format
#~ msgctxt "page:showcase/aegis/index.html"
#~ msgid ""
#~ "{ph0}Download Aegis APK{ph1}{ph2}Download Android analysis provider{ph3}"
#~ msgstr ""
#, python-brace-format
#~ msgctxt "page:showcase/ctf/index.html"
#~ msgid "{ph0}Agent → REA{ph1}"
#~ msgstr ""
#, python-brace-format
#~ msgctxt "page:showcase/ctf/index.html"
#~ msgid "{ph0}REA → agent · selected results{ph1}"
#~ msgstr ""
#, python-brace-format
#~ msgctxt "page:showcase/ctf/index.html"
#~ msgid "{ph0}REA → agent · selected instructions{ph1}"
#~ msgstr ""
#, python-brace-format
#~ msgctxt "page:showcase/ctf/index.html"
#~ msgid "{ph0}Agent → REA · read_bytes{ph1}"
#~ msgstr ""
#, python-brace-format
#~ msgctxt "page:showcase/ctf/index.html"
#~ msgid "{ph0}REA → agent · seventh entries{ph1}"
#~ msgstr ""
#, python-brace-format
#~ msgctxt "page:showcase/ctf/index.html"
#~ msgid "{ph0}Original executable · SHA-256{ph1}"
#~ msgstr ""
#, python-brace-format
#~ msgctxt "page:showcase/ctf/index.html"
#~ msgid "{ph0}Download the original challenge{ph1}{ph2}Download solver{ph3}"
#~ msgstr ""
#, python-brace-format
#~ msgctxt "page:showcase/dx-ball/index.html"
#~ msgid "{ph0}REA result · pseudocode excerpt{ph1}"
#~ msgstr ""
#, python-brace-format
#~ msgctxt "page:showcase/dx-ball/index.html"
#~ msgid "{ph0}Agent → REA · {ph1}{ph2}"
#~ msgstr ""
#, python-brace-format
#~ msgctxt "page:showcase/dx-ball/index.html"
#~ msgid "{ph0}REA → agent · instruction excerpt{ph1}"
#~ msgstr ""
#, python-brace-format
#~ msgctxt "page:showcase/dx-ball/index.html"
#~ msgid "{ph0}REA → agent · caller excerpt{ph1}"
#~ msgstr ""
#, python-brace-format
#~ msgctxt "page:showcase/dx-ball/index.html"
#~ msgid "{ph0}Agent → REA · two {ph1} requests{ph2}"
#~ msgstr ""
#, python-brace-format
#~ msgctxt "page:showcase/dx-ball/index.html"
#~ msgid "{ph0}REA byte results · decoded as doubles{ph1}"
#~ msgstr ""
#, python-brace-format
#~ msgctxt "page:showcase/dx-ball/index.html"
#~ msgid "{ph0}Start with your own target{ph1}"
#~ msgstr ""
#, python-brace-format
#~ msgctxt "page:showcase/index.html"
#~ msgid ""
#~ "{ph0}APK{ph1} {ph2}→{ph3} {ph4}Generating code{ph5} {ph6}→{ph7} "
#~ "{ph8}Recovered rule{ph9} {ph10}→{ph11} {ph12}Adjustable clock{ph13}"
#~ msgstr ""
#, python-brace-format
#~ msgctxt "page:showcase/index.html"
#~ msgid ""
#~ "{ph0}Binary{ph1} {ph2}→{ph3} {ph4}Checking code{ph5} {ph6}→{ph7} "
#~ "{ph8}Equations{ph9} {ph10}→{ph11} {ph12}Correct!{ph13}"
#~ msgstr ""
#, python-brace-format
#~ msgctxt "page:showcase/index.html"
#~ msgid ""
#~ "{ph0}Executable{ph1} {ph2}→{ph3} {ph4}REA findings{ph5} {ph6}→{ph7} "
#~ "{ph8}Recovered C{ph9} {ph10}→{ph11} {ph12}Validation{ph13}"
#~ msgstr ""
#, python-brace-format
#~ msgctxt "page:showcase/index.html"
#~ msgid ""
#~ "{ph0}Packaged app{ph1} {ph2}→{ph3} {ph4}Exposed API{ph5} {ph6}→{ph7} "
#~ "{ph8}IPC wrappers{ph9} {ph10}→{ph11} {ph12}Clipboard{ph13}"
#~ msgstr ""
#, python-brace-format
#~ msgctxt "page:showcase/index.html"
#~ msgid ""
#~ "{ph0}Original DOS code{ph1} {ph2}→{ph3} {ph4}REA instructions{ph5} "
#~ "{ph6}→{ph7} {ph8}Angle calculation{ph9} {ph10}→{ph11} {ph12}Bullet "
#~ "ring{ph13}"
#~ msgstr ""
#, python-brace-format
#~ msgctxt "page:showcase/notion/index.html"
#~ msgid "{ph0}Exposed page API{ph1}"
#~ msgstr ""
#, python-brace-format
#~ msgctxt "page:showcase/notion/index.html"
#~ msgid "{ph0}Renderer IPC call{ph1}"
#~ msgstr ""
#, python-brace-format
#~ msgctxt "page:showcase/notion/index.html"
#~ msgid "{ph0}Sent to the system clipboard{ph1}"
#~ msgstr ""
#, python-brace-format
#~ msgctxt "page:showcase/notion/index.html"
#~ msgid "{ph0}Saved locally by Notion{ph1}"
#~ msgstr ""
#, python-brace-format
#~ msgctxt "page:showcase/notion/index.html"
#~ msgid "{ph0}Markdown input{ph1}"
#~ msgstr ""
#, python-brace-format
#~ msgctxt "page:showcase/notion/index.html"
#~ msgid "{ph0}Structured parser output · excerpt{ph1}"
#~ msgstr ""
#, python-brace-format
#~ msgctxt "page:showcase/notion/index.html"
#~ msgid "{ph0}Analyze your own app{ph1}"
#~ msgstr ""
#, python-brace-format
#~ msgctxt "page:showcase/th04/index.html"
#~ msgid "{ph0}Agent → REA{ph1}"
#~ msgstr ""
#, python-brace-format
#~ msgctxt "page:showcase/th04/index.html"
#~ msgid "{ph0}REA → agent · selected fields{ph1}"
#~ msgstr ""
#, python-brace-format
#~ msgctxt "page:showcase/th04/index.html"
#~ msgid "{ph0}Agent → REA · {ph1}{ph2}"
#~ msgstr ""
#, python-brace-format
#~ msgctxt "page:showcase/th04/index.html"
#~ msgid "{ph0}REA → agent · instruction excerpt{ph1}"
#~ msgstr ""
#, python-brace-format
#~ msgctxt "page:showcase/th04/index.html"
#~ msgid "{ph0}Same function result · aim excerpt{ph1}"
#~ msgstr ""
#, python-brace-format
#~ msgctxt "page:showcase/th04/index.html"
#~ msgid "{ph0}Corresponding maintained C++{ph1}"
#~ msgstr ""
#, python-brace-format
#~ msgctxt "page:showcase/th04/index.html"
#~ msgid "{ph0}Ring macro · TH04 branch, excerpt{ph1}"
#~ msgstr ""
#, python-brace-format
#~ msgctxt "page:showcase/th04/index.html"
#~ msgid "{ph0}Angle and velocity · source excerpt{ph1}"
#~ msgstr ""