13595 lines
492 KiB
Plaintext
13595 lines
492 KiB
Plaintext
#
|
||
msgid ""
|
||
msgstr ""
|
||
"Project-Id-Version: REA website\n"
|
||
"Language: de\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:99
|
||
msgctxt "page:blog/index.html"
|
||
msgid "Skip to content"
|
||
msgstr "Zum Inhalt springen"
|
||
|
||
#. {ph0}: <a href="../">
|
||
#. {ph1}: </a>
|
||
#: website/public/blog/index.html:181
|
||
#, python-brace-format
|
||
msgctxt "page:blog/index.html"
|
||
msgid "{ph0}Home{ph1} / Blog"
|
||
msgstr "{ph0}Startseite{ph1} / Blog"
|
||
|
||
#: website/public/blog/index.html:182
|
||
msgctxt "page:blog/index.html"
|
||
msgid "Blog."
|
||
msgstr "Blog."
|
||
|
||
#: website/public/blog/index.html:183
|
||
msgctxt "page:blog/index.html"
|
||
msgid "Thoughts on reverse engineering."
|
||
msgstr "Gedanken zum Reverse Engineering."
|
||
|
||
#. {ph0}: <br />
|
||
#: website/public/blog/index.html:187
|
||
#, python-brace-format
|
||
msgctxt "page:blog/index.html"
|
||
msgid "Game reconstruction{ph0}Essay"
|
||
msgstr "Spielrekonstruktion{ph0}Essay"
|
||
|
||
#: website/public/blog/index.html:189
|
||
msgctxt "page:blog/index.html"
|
||
msgid "The industrial revolution in reverse engineering"
|
||
msgstr "Die industrielle Revolution im Reverse Engineering"
|
||
|
||
#: website/public/blog/index.html:190
|
||
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 ""
|
||
"Welches Handbuch RE und Rekonstruktion TH08 , TH095 und TH04 hat mich "
|
||
"gelehrt, über Agenten, Überprüfung und Wissen, dass Verbindungen über "
|
||
"Projekte hinweg."
|
||
|
||
#: website/public/blog/index.html:195
|
||
msgctxt "page:blog/index.html"
|
||
msgid "Read the article"
|
||
msgstr "Lesen Sie den Artikel"
|
||
|
||
#: website/public/blog/index.html:198
|
||
msgctxt "page:blog/index.html"
|
||
msgid "By N0zoM1z0 · 10 October 2026"
|
||
msgstr "Von N0zoM1z0 · 10. Oktober 2026"
|
||
|
||
#. {ph0}: <span aria-hidden="true">
|
||
#. {ph1}: </span>
|
||
#: website/public/blog/index.html:217
|
||
#: website/public/blog/touhou-reconstruction/index.html:1067
|
||
#: website/public/examples/dino-lab/index.html:462
|
||
#: website/public/faq/index.html:560
|
||
#: website/public/first-investigation/index.html:510
|
||
#: website/public/get-started/index.html:869
|
||
#: website/public/guides/browser/index.html:485
|
||
#: website/public/guides/index.html:269
|
||
#: website/public/guides/javascript/index.html:490
|
||
#: website/public/guides/native/index.html:496 website/public/index.html:1173
|
||
#: website/public/showcase/aegis/index.html:795
|
||
#: website/public/showcase/ctf/index.html:764
|
||
#: website/public/showcase/dx-ball/index.html:772
|
||
#: website/public/showcase/index.html:304
|
||
#: website/public/showcase/notion/index.html:618
|
||
#: website/public/showcase/th04/index.html:787
|
||
#, python-brace-format
|
||
msgctxt "shared"
|
||
msgid "{ph0}↑{ph1} Top"
|
||
msgstr "{ph0}↑{ph1} Oberen"
|
||
|
||
#: website/public/blog/index.html:6
|
||
msgctxt "page:blog/index.html"
|
||
msgid "REA Blog — Thoughts on Reverse Engineering"
|
||
msgstr "REA Blog - Gedanken zum Reverse Engineering"
|
||
|
||
#: 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 ""
|
||
"Gedanken zum Reverse Engineering, gestützt auf praktische Erfahrungen mit "
|
||
"REA und KI-Agenten."
|
||
|
||
#: website/public/blog/index.html:75 website/public/blog/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 - Finden Sie heraus, wie Software funktioniert. Reverse Engineering mit "
|
||
"Ihrem Codierungsagenten."
|
||
|
||
#: website/public/blog/index.html:104
|
||
#: website/public/blog/touhou-reconstruction/index.html:104
|
||
#: website/public/examples/dino-lab/index.html:105
|
||
#: website/public/faq/index.html:104
|
||
#: website/public/first-investigation/index.html:104
|
||
#: website/public/get-started/index.html:104
|
||
#: website/public/guides/browser/index.html:104
|
||
#: website/public/guides/index.html:104
|
||
#: website/public/guides/javascript/index.html:104
|
||
#: website/public/guides/native/index.html:104 website/public/index.html:106
|
||
#: website/public/showcase/aegis/index.html:105
|
||
#: website/public/showcase/ctf/index.html:104
|
||
#: website/public/showcase/dx-ball/index.html:104
|
||
#: website/public/showcase/index.html:104
|
||
#: website/public/showcase/notion/index.html:104
|
||
#: website/public/showcase/th04/index.html:104
|
||
msgctxt "shared"
|
||
msgid "REA home"
|
||
msgstr "REA-Startseite"
|
||
|
||
#: website/public/blog/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 "Main navigation"
|
||
msgstr "Hauptnavigation"
|
||
|
||
#: website/public/blog/index.html:117
|
||
#: website/public/blog/touhou-reconstruction/index.html:117
|
||
#: website/public/examples/dino-lab/index.html:118
|
||
#: website/public/faq/index.html:117
|
||
#: website/public/first-investigation/index.html:117
|
||
#: website/public/get-started/index.html:117
|
||
#: website/public/guides/browser/index.html:117
|
||
#: website/public/guides/index.html:117
|
||
#: website/public/guides/javascript/index.html:117
|
||
#: website/public/guides/native/index.html:117 website/public/index.html:119
|
||
#: website/public/showcase/aegis/index.html:118
|
||
#: website/public/showcase/ctf/index.html:117
|
||
#: website/public/showcase/dx-ball/index.html:117
|
||
#: website/public/showcase/index.html:117
|
||
#: website/public/showcase/notion/index.html:117
|
||
#: website/public/showcase/th04/index.html:117
|
||
msgctxt "shared"
|
||
msgid "REA on GitHub"
|
||
msgstr "REA auf GitHub"
|
||
|
||
#: website/public/blog/index.html:137
|
||
#: website/public/blog/touhou-reconstruction/index.html:137
|
||
#: website/public/examples/dino-lab/index.html:138
|
||
#: website/public/faq/index.html:137
|
||
#: website/public/first-investigation/index.html:137
|
||
#: website/public/get-started/index.html:137
|
||
#: website/public/guides/browser/index.html:137
|
||
#: website/public/guides/index.html:137
|
||
#: website/public/guides/javascript/index.html:137
|
||
#: website/public/guides/native/index.html:137 website/public/index.html:139
|
||
#: website/public/showcase/aegis/index.html:138
|
||
#: website/public/showcase/ctf/index.html:137
|
||
#: website/public/showcase/dx-ball/index.html:137
|
||
#: website/public/showcase/index.html:137
|
||
#: website/public/showcase/notion/index.html:137
|
||
#: website/public/showcase/th04/index.html:137
|
||
msgctxt "shared"
|
||
msgid "Join REA on Discord"
|
||
msgstr "REA auf Discord beitreten"
|
||
|
||
#: website/public/blog/index.html:156
|
||
#: website/public/blog/touhou-reconstruction/index.html:156
|
||
#: website/public/examples/dino-lab/index.html:157
|
||
#: website/public/faq/index.html:156
|
||
#: website/public/first-investigation/index.html:156
|
||
#: website/public/get-started/index.html:156
|
||
#: website/public/guides/browser/index.html:156
|
||
#: website/public/guides/index.html:156
|
||
#: website/public/guides/javascript/index.html:156
|
||
#: website/public/guides/native/index.html:156 website/public/index.html:158
|
||
#: website/public/showcase/aegis/index.html:157
|
||
#: website/public/showcase/ctf/index.html:156
|
||
#: website/public/showcase/dx-ball/index.html:156
|
||
#: website/public/showcase/index.html:156
|
||
#: website/public/showcase/notion/index.html:156
|
||
#: website/public/showcase/th04/index.html:156
|
||
msgctxt "shared"
|
||
msgid "Follow REA on X"
|
||
msgstr "REA auf X folgen"
|
||
|
||
#: website/public/blog/index.html:217
|
||
msgctxt "page:blog/index.html"
|
||
msgid "Back to top"
|
||
msgstr "Nach oben"
|
||
|
||
#: website/public/blog/touhou-reconstruction/index.html:99
|
||
msgctxt "page:blog/touhou-reconstruction/index.html"
|
||
msgid "Skip to content"
|
||
msgstr "Zum Inhalt springen"
|
||
|
||
#. {ph0}: <a href="../../">
|
||
#. {ph1}: </a>
|
||
#. {ph2}: <a href="../">
|
||
#. {ph3}: </a>
|
||
#: website/public/blog/touhou-reconstruction/index.html:181
|
||
#, python-brace-format
|
||
msgctxt "page:blog/touhou-reconstruction/index.html"
|
||
msgid "{ph0}Home{ph1} / {ph2}Blog{ph3} / Touhou reconstruction"
|
||
msgstr "{ph0}Startseite{ph1} / {ph2}Blog{ph3} / Touhou Wiederaufbau"
|
||
|
||
#: website/public/blog/touhou-reconstruction/index.html:185
|
||
msgctxt "page:blog/touhou-reconstruction/index.html"
|
||
msgid "Essay · Touhou reconstruction"
|
||
msgstr "Essay * Touhou-Rekonstruktion"
|
||
|
||
#: website/public/blog/touhou-reconstruction/index.html:186
|
||
msgctxt "page:blog/touhou-reconstruction/index.html"
|
||
msgid "The industrial revolution in reverse engineering."
|
||
msgstr "Die industrielle Revolution im Reverse Engineering."
|
||
|
||
#: website/public/blog/touhou-reconstruction/index.html:187
|
||
msgctxt "page:blog/touhou-reconstruction/index.html"
|
||
msgid "By N0zoM1z0 · 10 October 2026"
|
||
msgstr "Von N0zoM1z0 · 10. Oktober 2026"
|
||
|
||
#: website/public/blog/touhou-reconstruction/index.html:189
|
||
msgctxt "page:blog/touhou-reconstruction/index.html"
|
||
msgid "Takeaway"
|
||
msgstr "Das Wichtigste"
|
||
|
||
#. {ph0}: <strong>
|
||
#. {ph1}: </strong>
|
||
#: website/public/blog/touhou-reconstruction/index.html:191
|
||
#, 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}Geben Sie den Agenten Autonomie über die Ermittlungen.{ph1} Legen Sie "
|
||
"ein klares Ziel und Akzeptanzkriterien fest und lassen Sie den Agenten "
|
||
"entscheiden, was er als nächstes versuchen möchte."
|
||
|
||
#. {ph0}: <strong>
|
||
#. {ph1}: </strong>
|
||
#: website/public/blog/touhou-reconstruction/index.html:196
|
||
#, 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}Verwenden Sie das Repository und Git als Arbeitsspeicher.{ph1} Behalten"
|
||
" Sie die Argumentation mit dem Code bei. Git Checkpoints lassen die nächste "
|
||
"Sitzung nach Beendigung der Konversation fortgesetzt werden."
|
||
|
||
#. {ph0}: <strong>
|
||
#. {ph1}: </strong>
|
||
#: website/public/blog/touhou-reconstruction/index.html:201
|
||
#, 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}Lassen Sie Beweise entscheiden, was Sie behaupten.{ph1} Eine sichere "
|
||
"Erklärung muss noch getestet werden. \"Unbekannt\" ist eine gültige Antwort,"
|
||
" wenn die Beweise unvollständig sind."
|
||
|
||
#. {ph0}: <strong>
|
||
#. {ph1}: </strong>
|
||
#: website/public/blog/touhou-reconstruction/index.html:206
|
||
#, 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}Testen Sie auch die Verifizierungsreferenz (Oracle).{ph1} Versuchen Sie"
|
||
" Fälle, die es ablehnen sollte. Wenn ein Fehler übersehen wird, besuchen Sie"
|
||
" die früheren Ergebnisse, die davon abhingen, erneut."
|
||
|
||
#. {ph0}: <strong >
|
||
#. {ph1}: </strong >
|
||
#: website/public/blog/touhou-reconstruction/index.html:211
|
||
#, 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}Wir befinden uns in den frühen Tagen der industriellen Revolution von "
|
||
"RE.{ph1} Die Methoden nehmen immer noch Gestalt an. Es gibt noch viel zu "
|
||
"entdecken."
|
||
|
||
#: website/public/blog/touhou-reconstruction/index.html:223
|
||
msgctxt "page:blog/touhou-reconstruction/index.html"
|
||
msgid "How experience compounds"
|
||
msgstr "Wie erleben Sie Verbindungen"
|
||
|
||
#. {ph0}: <strong>
|
||
#. {ph1}: </strong>
|
||
#: website/public/blog/touhou-reconstruction/index.html:224
|
||
#, python-brace-format
|
||
msgctxt "page:blog/touhou-reconstruction/index.html"
|
||
msgid "{ph0}Human direction{ph1} · Goal and acceptance criteria"
|
||
msgstr "{ph0}Menschliche Richtung{ph1} * Ziel und Akzeptanzkriterien"
|
||
|
||
#: website/public/blog/touhou-reconstruction/index.html:312
|
||
msgctxt "page:blog/touhou-reconstruction/index.html"
|
||
msgid "Autonomy"
|
||
msgstr "Autonomie"
|
||
|
||
#: website/public/blog/touhou-reconstruction/index.html:313
|
||
msgctxt "page:blog/touhou-reconstruction/index.html"
|
||
msgid "Agent"
|
||
msgstr "Agent"
|
||
|
||
#. {ph0}: <br />
|
||
#: website/public/blog/touhou-reconstruction/index.html:314
|
||
#, python-brace-format
|
||
msgctxt "page:blog/touhou-reconstruction/index.html"
|
||
msgid "Choose an experiment.{ph0}Propose a hypothesis."
|
||
msgstr "Wähle ein Experiment.{ph0}Schlage eine Hypothese vor."
|
||
|
||
#: website/public/blog/touhou-reconstruction/index.html:317
|
||
msgctxt "page:blog/touhou-reconstruction/index.html"
|
||
msgid "Verification"
|
||
msgstr "Prüfung"
|
||
|
||
#: website/public/blog/touhou-reconstruction/index.html:318
|
||
msgctxt "page:blog/touhou-reconstruction/index.html"
|
||
msgid "Oracle"
|
||
msgstr "Prüfreferenz"
|
||
|
||
#. {ph0}: <br />
|
||
#: website/public/blog/touhou-reconstruction/index.html:319
|
||
#, python-brace-format
|
||
msgctxt "page:blog/touhou-reconstruction/index.html"
|
||
msgid "Test against a{ph0}concrete reference."
|
||
msgstr "Test gegen eine{ph0}konkreter Hinweis."
|
||
|
||
#: website/public/blog/touhou-reconstruction/index.html:322
|
||
msgctxt "page:blog/touhou-reconstruction/index.html"
|
||
msgid "Repository"
|
||
msgstr "Repository"
|
||
|
||
#: website/public/blog/touhou-reconstruction/index.html:323
|
||
msgctxt "page:blog/touhou-reconstruction/index.html"
|
||
msgid "Working memory"
|
||
msgstr "Arbeitsgedächtnis"
|
||
|
||
#. {ph0}: <br />
|
||
#: website/public/blog/touhou-reconstruction/index.html:324
|
||
#, python-brace-format
|
||
msgctxt "page:blog/touhou-reconstruction/index.html"
|
||
msgid "Code, evidence,{ph0}checks and lessons."
|
||
msgstr "Code, Beweise,{ph0}kontrollen und Unterricht."
|
||
|
||
#. {ph0}: <br />
|
||
#. {ph1}: <strong>
|
||
#. {ph2}: </strong>
|
||
#: website/public/blog/touhou-reconstruction/index.html:326
|
||
#, python-brace-format
|
||
msgctxt "page:blog/touhou-reconstruction/index.html"
|
||
msgid "Mismatch{ph0}{ph1}Revise the hypothesis{ph2}"
|
||
msgstr "Mismatch{ph0}{ph1}Überarbeiten Sie die Hypothese{ph2}"
|
||
|
||
#. {ph0}: <br />
|
||
#. {ph1}: <strong>
|
||
#. {ph2}: </strong>
|
||
#: website/public/blog/touhou-reconstruction/index.html:329
|
||
#, python-brace-format
|
||
msgctxt "page:blog/touhou-reconstruction/index.html"
|
||
msgid "A better{ph0}{ph1}starting point{ph2}"
|
||
msgstr "Best{ph0}{ph1}Ausgangspunkt{ph2}"
|
||
|
||
#: website/public/blog/touhou-reconstruction/index.html:332
|
||
msgctxt "page:blog/touhou-reconstruction/index.html"
|
||
msgid "Reuse"
|
||
msgstr "Wiederverwendung"
|
||
|
||
#. {ph0}: <strong>
|
||
#. {ph1}: </strong>
|
||
#: website/public/blog/touhou-reconstruction/index.html:333
|
||
#, python-brace-format
|
||
msgctxt "page:blog/touhou-reconstruction/index.html"
|
||
msgid "{ph0}Pass{ph1} · Keep the result and its evidence"
|
||
msgstr "{ph0}Übergeben{ph1} * Bewahren Sie das Ergebnis und seine Beweise auf"
|
||
|
||
#: website/public/blog/touhou-reconstruction/index.html:345
|
||
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 ""
|
||
"Jedes Projekt verlässt das nächste mit einem besseren Ausgangspunkt. Dazu "
|
||
"gehört auch, die Prüfungen zu korrigieren, wenn wir eine Lücke entdecken."
|
||
|
||
#: website/public/blog/touhou-reconstruction/index.html:352
|
||
msgctxt "page:blog/touhou-reconstruction/index.html"
|
||
msgid "In this article"
|
||
msgstr "In diesem Artikel"
|
||
|
||
#. {ph0}: <a href="#august">
|
||
#. {ph1}: </a>
|
||
#: website/public/blog/touhou-reconstruction/index.html:354
|
||
#, python-brace-format
|
||
msgctxt "page:blog/touhou-reconstruction/index.html"
|
||
msgid "{ph0}August 2026{ph1}"
|
||
msgstr "{ph0}Februar 2026{ph1}"
|
||
|
||
#. {ph0}: <a href="#th08">
|
||
#. {ph1}: </a>
|
||
#: website/public/blog/touhou-reconstruction/index.html:355
|
||
#, python-brace-format
|
||
msgctxt "page:blog/touhou-reconstruction/index.html"
|
||
msgid "{ph0}TH08: the continuation{ph1}"
|
||
msgstr "{ph0} TH08 : die Fortsetzung{ph1}"
|
||
|
||
#. {ph0}: <a href="#different-approaches">
|
||
#. {ph1}: </a>
|
||
#: website/public/blog/touhou-reconstruction/index.html:356
|
||
#, python-brace-format
|
||
msgctxt "page:blog/touhou-reconstruction/index.html"
|
||
msgid "{ph0}Two approaches{ph1}"
|
||
msgstr "{ph0}Zwei Ansätze{ph1}"
|
||
|
||
#. {ph0}: <a href="#th095">
|
||
#. {ph1}: </a>
|
||
#: website/public/blog/touhou-reconstruction/index.html:357
|
||
#, python-brace-format
|
||
msgctxt "page:blog/touhou-reconstruction/index.html"
|
||
msgid "{ph0}TH095: compounding{ph1}"
|
||
msgstr "{ph0} TH095 : Aufbereitung{ph1}"
|
||
|
||
#. {ph0}: <a href="#th04">
|
||
#. {ph1}: </a>
|
||
#: website/public/blog/touhou-reconstruction/index.html:358
|
||
#, python-brace-format
|
||
msgctxt "page:blog/touhou-reconstruction/index.html"
|
||
msgid "{ph0}TH04: across architectures{ph1}"
|
||
msgstr "{ph0} TH04 : architekturübergreifend{ph1}"
|
||
|
||
#. {ph0}: <a href="#semantic-reconstruction">
|
||
#. {ph1}: </a>
|
||
#: website/public/blog/touhou-reconstruction/index.html:359
|
||
#, python-brace-format
|
||
msgctxt "page:blog/touhou-reconstruction/index.html"
|
||
msgid "{ph0}From exact to readable{ph1}"
|
||
msgstr "{ph0}Von exakt zu lesbar{ph1}"
|
||
|
||
#. {ph0}: <a href="#industrial-shift">
|
||
#. {ph1}: </a>
|
||
#: website/public/blog/touhou-reconstruction/index.html:362
|
||
#, python-brace-format
|
||
msgctxt "page:blog/touhou-reconstruction/index.html"
|
||
msgid "{ph0}The industrial shift{ph1}"
|
||
msgstr "{ph0}Der industrielle Wandel{ph1}"
|
||
|
||
#. {ph0}: <a href="#possibilities">
|
||
#. {ph1}: </a>
|
||
#: website/public/blog/touhou-reconstruction/index.html:363
|
||
#, python-brace-format
|
||
msgctxt "page:blog/touhou-reconstruction/index.html"
|
||
msgid "{ph0}What becomes possible{ph1}"
|
||
msgstr "{ph0}Was möglich wird{ph1}"
|
||
|
||
#: website/public/blog/touhou-reconstruction/index.html:368
|
||
msgctxt "page:blog/touhou-reconstruction/index.html"
|
||
msgid "What changed in August 2026"
|
||
msgstr "Was hat sich im August 2026 geändert"
|
||
|
||
#: website/public/blog/touhou-reconstruction/index.html:369
|
||
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 ""
|
||
"Vor dieser Arbeit hatte ich viel manuelles Reverse Engineering gemacht. Ich "
|
||
"würde eine Funktion inspizieren, bis ich eine Erklärung hatte, und diese "
|
||
"Erklärung dann gegen das Programm testen. Weiter zu kommen bedeutete, mehr "
|
||
"Zeit mit der nächsten Funktion zu verbringen. Es bedeutete auch, ein immer "
|
||
"größeres Bild in meinem Kopf zu behalten."
|
||
|
||
#: website/public/blog/touhou-reconstruction/index.html:376
|
||
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 ""
|
||
"Der größte Teil meiner Arbeit dreht sich um Spiele. Ich rekonstruiere sie, "
|
||
"damit ihr Verhalten verstanden und schließlich in einen Softwareport oder "
|
||
"einen Mod übertragen werden kann. Das ist die Erfahrung hinter diesem "
|
||
"Artikel. Die Methode kann an anderer Stelle nützlich sein, aber jedes Feld "
|
||
"muss festlegen, was es anhand einer zuverlässigen Referenz überprüfen kann."
|
||
|
||
#: website/public/blog/touhou-reconstruction/index.html:383
|
||
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 ""
|
||
"Im August 2026 begann ich, agentengesteuerte RE ernsthaft zu erforschen. Ich"
|
||
" wollte sehen, wie weit ein Agent mit Zugriff auf das Programm und "
|
||
"gewöhnliche Entwicklungstools kommen kann. Touhou Reconstruction gab mir ein"
|
||
" umfangreiches Projekt, in dem ich es herausfinden konnte."
|
||
|
||
#: website/public/blog/touhou-reconstruction/index.html:389
|
||
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 ""
|
||
"Der frühe Fortschritt war verblüffend. Eine Untersuchung könnte weitergehen,"
|
||
" ohne dass ich jeden einzelnen Schritt auswähle. Bei einem fehlgeschlagenen "
|
||
"Vergleich wird der Agent möglicherweise an einen anderen Anrufer gesendet. "
|
||
"Es könnte eine kleine Diagnose schreiben und anhand des Ergebnisses "
|
||
"entscheiden, was als nächstes versucht werden soll. Ihm diese Freiheit zu "
|
||
"geben, machte einen Unterschied: Ich konnte mehr Aufmerksamkeit auf die "
|
||
"Richtung des Projekts richten und darauf, ob seine Überprüfungen "
|
||
"vertrauenswürdig waren."
|
||
|
||
#: website/public/blog/touhou-reconstruction/index.html:398
|
||
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 ""
|
||
"Das Tempo erregte zuerst meine Aufmerksamkeit. Dann begann ich mich zu "
|
||
"fragen, was über das aktuelle Projekt hinaus überleben würde. Würde das "
|
||
"nächste Spiel von allem profitieren, was wir gerade gelernt hatten?"
|
||
|
||
#: website/public/blog/touhou-reconstruction/index.html:405
|
||
msgctxt "page:blog/touhou-reconstruction/index.html"
|
||
msgid "TH08: building on human work"
|
||
msgstr "TH08 : auf menschlicher Arbeit aufbauen"
|
||
|
||
#. {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:406
|
||
#, 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} MODELL: TH08 {ph1}, Unvergängliche Nacht, begann als Fortsetzung von "
|
||
"{ph2} Die Rekonstruktion von GensokyoClub{ph3}. Ihre öffentliche Quelle gab "
|
||
"mir eine substanzielle Grundlage. Es kam mit Kenntnis des Builds und einer "
|
||
"Geschichte von Beiträgen, die ich in der Fortsetzung aufbewahrt habe."
|
||
|
||
#: website/public/blog/touhou-reconstruction/index.html:415
|
||
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 ""
|
||
"Die importierte Historie endet am öffentlichen Kontrollpunkt am 10.August. "
|
||
"Meine selbständige Fortsetzung begann am 13.August. Bis zum 19.August "
|
||
"zeichnete das Ledger die Quelle für alle 1.107 identifizierten "
|
||
"Spielfunktionen auf."
|
||
|
||
#: website/public/blog/touhou-reconstruction/index.html:420
|
||
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 ""
|
||
"Ein spielbarer Linux-Rekonstruktionsport wurde am 24.August, ungefähr elf "
|
||
"Tage nach Beginn der Fortsetzung, festgelegt. Eine Webausgabe folgte. Die "
|
||
"native 64-Bit-Version Linux ist am 30.August eingetroffen."
|
||
|
||
#: website/public/blog/touhou-reconstruction/index.html:425
|
||
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 ""
|
||
"Was mir auffiel, war, dass die Arbeit ein Programm erreicht hatte, das die "
|
||
"Leute ausführen konnten. Der Weg dorthin erforderte folgende Probleme, die "
|
||
"über eine einzelne Funktion hinausgingen. Selbst wenn zwei Funktionen "
|
||
"isoliert richtig aussahen, konnten sie versehentlich separate Kopien des "
|
||
"Status verwenden, die gemeinsam genutzt werden sollten."
|
||
|
||
#. {ph0}: <strong>
|
||
#. {ph1}: </strong>
|
||
#: website/public/blog/touhou-reconstruction/index.html:432
|
||
#, 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 ""
|
||
"Dies machte Referenzprüfungen zu einem zentralen Bestandteil der Arbeit. Ich"
|
||
" nenne sie {ph0}Verifikationsreferenzen (Orakel){ph1}. Ein Codevergleich "
|
||
"kann uns sagen, ob eine rekonstruierte Funktion die ursprünglichen "
|
||
"Anweisungen reproduziert. Eine Laufzeitprüfung kann uns sagen, ob eine "
|
||
"ausgeübte Route den erwarteten Zustand erreicht. Der Agent schlägt eine "
|
||
"Erklärung vor und testet sie; Eine Nichtübereinstimmung gibt ihm etwas "
|
||
"Spezifisches zu untersuchen."
|
||
|
||
#: website/public/blog/touhou-reconstruction/index.html:440
|
||
msgctxt "page:blog/touhou-reconstruction/index.html"
|
||
msgid "An exact match with the wrong constant"
|
||
msgstr "Eine exakte Übereinstimmung mit der falschen Konstante"
|
||
|
||
#: website/public/blog/touhou-reconstruction/index.html:441
|
||
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 ""
|
||
"Eine Verifizierungsreferenz (Oracle) ist Software, die jemand geschrieben "
|
||
"hat. TH08 hat mich deutlich daran erinnert, wie viel von dieser Software "
|
||
"abhängen kann."
|
||
|
||
#. {ph0}: <code>0.0</code>
|
||
#. {ph1}: <code>128.0</code>
|
||
#: website/public/blog/touhou-reconstruction/index.html:445
|
||
#, 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 ""
|
||
"Im September führte ein Fehler, der von einem nachgeschalteten Switch-Port "
|
||
"gemeldet wurde, zur automatischen Erfassung von Elementen zurück. Die "
|
||
"rekonstruierte Quelle überprüfte die Leistung des Spielers gegen {ph0}. Das "
|
||
"Original verwendet {ph1}, der Schwellenwert für die maximale Leistung."
|
||
|
||
#: website/public/blog/touhou-reconstruction/index.html:451
|
||
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 ""
|
||
"Die normale Leistung ist nicht negativ, so dass die rekonstruierte "
|
||
"Leistungsprüfung effektiv immer erfüllt wurde. Oberhalb der Sammellinie "
|
||
"könnte das Spiel Gegenstände anziehen, ohne maximale Kraft zu benötigen. Die"
|
||
" anderen Ausnahmen in der Bedingung waren korrekt. Diese eine Konstante "
|
||
"veränderte das Verhalten."
|
||
|
||
#. {ph0}: <strong >
|
||
#. {ph1}: </strong >
|
||
#: website/public/blog/touhou-reconstruction/index.html:458
|
||
#, python-brace-format
|
||
msgctxt "page:blog/touhou-reconstruction/index.html"
|
||
msgid "{ph0}Yet the function had already passed the exact comparison.{ph1}"
|
||
msgstr ""
|
||
"{ph0}Doch die Funktion hatte den genauen Vergleich bereits bestanden.{ph1}"
|
||
|
||
#: website/public/blog/touhou-reconstruction/index.html:464
|
||
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 ""
|
||
"Eine Neuerstellung kann eine Konstante an eine andere Adresse setzen. Das "
|
||
"Vergleichstool berücksichtigte dies, indem es die Adressen in den "
|
||
"kompilierten Anweisungen anpasste, bevor es sie mit dem Original verglich. "
|
||
"Der Gleitkommawert, der an der referenzierten Adresse gespeichert ist, wurde"
|
||
" jedoch nie überprüft."
|
||
|
||
#. {ph0}: <code>128.0</code>
|
||
#. {ph1}: <code>0.0</code>
|
||
#: website/public/blog/touhou-reconstruction/index.html:471
|
||
#, 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 ""
|
||
"Das hinterließ ein Loch im Scheck. Es könnte die rekonstruierte Anweisung "
|
||
"auf die des Originals verweisen {ph0} während die Quelle noch sagte {ph1}. "
|
||
"Die Befehlsbytes stimmten überein. Die Quelle meinte etwas anderes."
|
||
|
||
#. {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:477
|
||
#, 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 ""
|
||
"Der {ph0}2. September behoben{ph1} korrigierte die Quelle und ließ den "
|
||
"Vergleich die tatsächlichen Bytes der referenzierten Konstante überprüfen. A"
|
||
" {ph2}umfassendere Prüfung{ph3} dann wurden 1.548 Gleitkommakonstanten-"
|
||
"Referenzen untersucht. Es wurden weitere zwölf falsche Referenzen für fünf "
|
||
"akzeptierte Funktionen gefunden."
|
||
|
||
#: website/public/blog/touhou-reconstruction/index.html:488
|
||
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 ""
|
||
"Der Vergleich überprüft nun jede solche Gleitkommakonstante. Seine Tests "
|
||
"enthalten absichtlich falsche Werte, um sicherzustellen, dass sie abgelehnt "
|
||
"werden. Wir mussten auch Ergebnisse überprüfen, die die schwächere Prüfung "
|
||
"bestanden hatten."
|
||
|
||
#. {ph0}: <strong>
|
||
#. {ph1}: </strong>
|
||
#: website/public/blog/touhou-reconstruction/index.html:493
|
||
#, 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}Die Verifikationsreferenz (Oracle) musste ebenfalls rekonstruiert "
|
||
"werden.{ph1} Das Reparieren war Teil der Reparatur des Spiels."
|
||
|
||
#: website/public/blog/touhou-reconstruction/index.html:497
|
||
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 ""
|
||
"Das ist wichtig, wenn das Team hauptsächlich aus einer Person besteht, die "
|
||
"mit Agenten arbeitet. Ich kann nicht jede Linie, die sie produzieren, "
|
||
"persönlich inspizieren, daher ruht ein Großteil meines Vertrauens auf ihren "
|
||
"Kontrollen. Der blinde Fleck einer gemeinsamen Verifizierungsreferenz "
|
||
"(Oracle) kann viele Untersuchungen beeinflussen, bevor ich es bemerke. Ich "
|
||
"muss verstehen, was der Prüfer tatsächlich überprüft, und es anhand von "
|
||
"Fällen testen, die fehlschlagen sollten."
|
||
|
||
#. {ph0}: <strong >
|
||
#. {ph1}: </strong >
|
||
#: website/public/blog/touhou-reconstruction/index.html:505
|
||
#, 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 ""
|
||
"Im weiteren Verlauf der Arbeit wurden diese Überprüfungen Teil des "
|
||
"Repositorys. Ebenso die Gründe für Quelländerungen und Notizen, die eine "
|
||
"spätere Sitzung dort aufnehmen ließen, wo eine frühere aufgehört hatte. "
|
||
"{ph0}Das Quellcode-Repository wurde zum Arbeitsspeicher des Projekts.{ph1}"
|
||
|
||
#. {ph0}: <strong >
|
||
#. {ph1}: </strong >
|
||
#: website/public/blog/touhou-reconstruction/index.html:514
|
||
#, 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}Ein erfolgreicher Batch gab uns sowohl wiederhergestellten Code als "
|
||
"auch eine bessere Umgebung für den nächsten Batch.{ph1}"
|
||
|
||
#: website/public/blog/touhou-reconstruction/index.html:522
|
||
msgctxt "page:blog/touhou-reconstruction/index.html"
|
||
msgid "Two different ideas of reconstruction"
|
||
msgstr "Zwei verschiedene Rekonstruktionsideen"
|
||
|
||
#. {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:523
|
||
#, 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 ""
|
||
"Von GensokyoClub {ph0}öffentliche README-DATEI{ph1} macht seine Ablehnung "
|
||
"dieser Art von Arbeit deutlich. In der Bekanntmachung wird angekündigt, dass"
|
||
" die weitere Entwicklung bis zur Fertigstellung privat erfolgen wird. Eine "
|
||
"Passage lautet:"
|
||
|
||
#: website/public/blog/touhou-reconstruction/index.html:534
|
||
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 ""
|
||
"Der Aufstieg von Griftern (KI-Dekompilierungen und -portierungen) in diesem "
|
||
"Bereich, die aus unserer Arbeit stammen, zeichnet ein schlechtes Bild für "
|
||
"zukünftige Dekompilierungsbemühungen…"
|
||
|
||
#: website/public/blog/touhou-reconstruction/index.html:540
|
||
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 ""
|
||
"Der Hinweis beschreibt auch die psychologische Belastung der Betreuer. Ihre "
|
||
"Beitragsrichtlinie schließt Pull-Anfragen aus, die hauptsächlich mit KI "
|
||
"erstellt wurden. Sie haben ihre Freizeit in schwierige Arbeit gesteckt, und "
|
||
"diese Arbeit hat dazu beigetragen, dass ich weitermachen konnte. Ich "
|
||
"respektiere den Aufwand, der dahinter steckt. Die Meinungsverschiedenheit, "
|
||
"die ich diskutieren möchte, betrifft die Frage, wie der Wiederaufbau "
|
||
"ablaufen soll und wie ein Beitrag zu bewerten ist."
|
||
|
||
#: website/public/blog/touhou-reconstruction/index.html:549
|
||
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 ""
|
||
"Im manuellen Workflow, den ich kannte, fiel das Entwickeln eines "
|
||
"Funktionsverständnisses und das Rekonstruieren in der Regel derselben Person"
|
||
" zu. Ein Projekt stützte sich stark auf das Fachwissen dieser Person. Das "
|
||
"Vertrauen in den Mitwirkenden war wichtig, weil so viele Überlegungen "
|
||
"während der Arbeit stattfanden."
|
||
|
||
#: website/public/blog/touhou-reconstruction/index.html:556
|
||
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 ""
|
||
"Bestehende Projekte bewahren bereits Wissen in ihrer Quelle und bauen "
|
||
"Werkzeuge. Was sich für mich geändert hat, war, dass ein Agent dieses Wissen"
|
||
" nutzen konnte, um die nächste Untersuchung selbstständig durchzuführen."
|
||
|
||
#: website/public/blog/touhou-reconstruction/index.html:561
|
||
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 ""
|
||
"In meiner Fortsetzung entscheide ich das Ziel und den Standard für die "
|
||
"Annahme eines Ergebnisses. Der Agent hat große Freiheit zu untersuchen. Der "
|
||
"vorgeschlagene Wiederaufbau muss dann die entsprechenden Kontrollen "
|
||
"überstehen. Ich möchte, dass eine andere Person untersuchen kann, warum wir "
|
||
"uns für eine Implementierung entschieden haben, auch wenn ein Agent die "
|
||
"meiste Arbeit erledigt hat."
|
||
|
||
#: website/public/blog/touhou-reconstruction/index.html:568
|
||
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 ""
|
||
"Dies kann ein schwieriger Übergang sein. Jahrelange sorgfältige Arbeit kann "
|
||
"die Grundlage für eine Fortsetzung werden, die sich viel schneller bewegt. "
|
||
"Das wirft echte Fragen zum Kredit auf. Es ändert auch, was Betreuer wissen "
|
||
"müssen, bevor sie einen Beitrag annehmen."
|
||
|
||
#: website/public/blog/touhou-reconstruction/index.html:574
|
||
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 ""
|
||
"Die industrielle Analogie hilft mir, darüber nachzudenken. In einem Handwerk"
|
||
" hängt ein Großteil des Prozesses von den Fähigkeiten der Person ab, die ihn"
|
||
" ausführt. Maschinen ändern sich dort, wo diese Fähigkeit benötigt wird. "
|
||
"Jemand muss den Prozess noch entwerfen und erkennen, wenn seine Ausgabe "
|
||
"falsch ist. Verschiedene Gemeinschaften können wählen, wie viel von dieser "
|
||
"Veränderung sie übernehmen möchten."
|
||
|
||
#: website/public/blog/touhou-reconstruction/index.html:582
|
||
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 ""
|
||
"Meine Entscheidung ist es, offen fortzufahren, wobei das ererbte Werk "
|
||
"gutgeschrieben und seine Geschichte bewahrt wird. Ich möchte, dass die neue "
|
||
"Arbeit überprüfbar ist. Das gibt uns die Möglichkeit zu fragen, wie weit "
|
||
"dieser Ansatz gehen kann und aus dem zu lernen, was auf dem Weg schief geht."
|
||
|
||
#. {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:588
|
||
#, 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 ""
|
||
"Quelle: GensokyoClubS {ph0}LIESMICH-Hinweis{ph1}, überprüft am 10. Oktober "
|
||
"2026, und seine {ph2}beitragsrichtlinie{ph3}. Das Zitat ist ein gekürzter "
|
||
"Auszug. Von TH08 {ph4}credits und Provenienz{ph5} notieren Sie die "
|
||
"Fortsetzungsgrenze."
|
||
|
||
#: website/public/blog/touhou-reconstruction/index.html:606
|
||
msgctxt "page:blog/touhou-reconstruction/index.html"
|
||
msgid "TH095: experience starts compounding"
|
||
msgstr "TH095 : Erfahrung beginnt sich zu vermehren"
|
||
|
||
#. {ph0}: <a href="https://github.com/N0zoM1z0/th095">
|
||
#. {ph1}: </a>
|
||
#: website/public/blog/touhou-reconstruction/index.html:607
|
||
#, 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} MODELL: TH095 {ph1}, Schieße auf die Kugel, machte den Wert dieser "
|
||
"Erfahrung viel leichter zu erkennen. Das Repository begann am 29. August mit"
|
||
" null bestätigten Spielfunktionen im Hauptbuch. Wir mussten das Spiel noch "
|
||
"lernen. Aber wir wussten schon viel mehr darüber, wie man einen Wiederaufbau"
|
||
" beginnt und wie man ihn in Bewegung hält."
|
||
|
||
#: website/public/blog/touhou-reconstruction/index.html:615
|
||
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 ""
|
||
"Bis zum 7. September hatten alle 697 identifizierten Spielfunktionen eine "
|
||
"Quelle. Bis zum 8. September waren 696 als exakte Vergleiche akzeptiert "
|
||
"worden. Das gesamte Programm ist am 9. September verlinkt. Die Windows "
|
||
"i386-Rekonstruktion wurde am 10.September, etwa zwölf Tage nach der "
|
||
"Initialisierung, als spielbar markiert."
|
||
|
||
#: website/public/blog/touhou-reconstruction/index.html:622
|
||
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 ""
|
||
"Ich fand das spannender als die Geschwindigkeit des ersten Projekts. Ein "
|
||
"neues Ziel könnte von der Arbeit an einem anderen Spiel profitieren. Die "
|
||
"Erfahrung war bereits in den Tools und in der Organisation des Projekts "
|
||
"vorhanden."
|
||
|
||
#: website/public/blog/touhou-reconstruction/index.html:628
|
||
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 ""
|
||
"Zum Beispiel hatte uns TH08 beigebracht, frühzeitig auf das "
|
||
"zusammengestellte Programm zu achten. Wenn mehrere wiederhergestellte "
|
||
"Funktionen vom selben Zustand abhängen, lassen ihre isolierten Vergleiche "
|
||
"eine wichtige Frage offen. Wir müssen sehen, wie sie zusammenarbeiten. Diese"
|
||
" Lektion hat dazu beigetragen, wie wir uns dem gesamten Programmaufbau von "
|
||
"TH095 näherten."
|
||
|
||
#: website/public/blog/touhou-reconstruction/index.html:635
|
||
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 ""
|
||
"Eine Lektion, die in meinem Kopf bleibt, ist nützlich, während ich dort bin."
|
||
" Sobald überprüft wird, ob eine andere Sitzung ausgeführt werden kann, kann "
|
||
"sie weiterhin helfen, nachdem ich weitergezogen bin. Der nächste Agent kann "
|
||
"das Ergebnis verwenden, ohne die Untersuchung zu wiederholen, die dazu "
|
||
"geführt hat."
|
||
|
||
#: website/public/blog/touhou-reconstruction/index.html:641
|
||
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 ""
|
||
"Der Gleitkommakonstanten-Fehler gehört auch in diesen Speicher. Es erklärt, "
|
||
"warum die Überprüfung einer Referenz auch die Überprüfung der Daten dahinter"
|
||
" erfordert. Wenn diese Korrektur im Code beibehalten wird, können spätere "
|
||
"Projekte vermeiden, dass der blinde Fleck der alten Prüfung vererbt wird."
|
||
|
||
#. {ph0}: <strong >
|
||
#. {ph1}: </strong >
|
||
#: website/public/blog/touhou-reconstruction/index.html:647
|
||
#, 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}Die Methode wird Teil des Ausgangsmaterials für das nächste Spiel.{ph1}"
|
||
" Wir können mehr von den Anstrengungen des nächsten Projekts darauf "
|
||
"verwenden, was an seinem Ziel tatsächlich neu ist."
|
||
|
||
#: website/public/blog/touhou-reconstruction/index.html:655
|
||
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 ""
|
||
"Der gleiche Vorteil steht Personen zur Verfügung, die später beitreten. Sie "
|
||
"können eine Entscheidung einsehen und ihre Prüfung wiederholen, bevor sie "
|
||
"die Arbeit fortsetzen. Sie müssen nicht die gesamte Projektgeschichte "
|
||
"rekonstruieren, um herauszufinden, warum die Quelle so aussieht, wie sie "
|
||
"aussieht."
|
||
|
||
#: website/public/blog/touhou-reconstruction/index.html:663
|
||
msgctxt "page:blog/touhou-reconstruction/index.html"
|
||
msgid "TH04: the workflow survives a different architecture"
|
||
msgstr "TH04 : Der Workflow überlebt eine andere Architektur"
|
||
|
||
#. {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:664
|
||
#, 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} MODELL: TH04 {ph1}, Lotus Land Story, nahm diese Arbeit in die PC-98 "
|
||
"DOS-Ära auf. Das Ziel war nun eine 16-Bit-Umgebung mit vier kooperierenden "
|
||
"Programmen. Um das Hardwareverhalten zu verstehen, waren andere Beweise als "
|
||
"bei den Windows-Spielen erforderlich. Bestehenden {ph2}ReC98 Arbeit{ph3} gab"
|
||
" uns auch hier wertvolles Wissen und Quellenmaterial."
|
||
|
||
#: website/public/blog/touhou-reconstruction/index.html:673
|
||
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 ""
|
||
"Die DOS-Rekonstruktion funktioniert jetzt. In meinen manuellen Tests habe "
|
||
"ich komplette normale Routen durch ihre Enden gespielt und Speicherstände "
|
||
"überprüft. Die aktuelle Arbeit ist eine native 64-Bit-Portierung. Das "
|
||
"Einrichten einer funktionierenden DOS-Version gibt diesem Port zuerst eine "
|
||
"Referenz."
|
||
|
||
#: website/public/blog/touhou-reconstruction/index.html:679
|
||
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 ""
|
||
"Die Architektur veränderte das, was wir untersuchen mussten. Es hat auch den"
|
||
" Compiler und die Laufzeit geändert, mit denen wir unsere Arbeit überprüft "
|
||
"haben. Aber der Agent könnte immer noch einer Frage bis zu einem Ergebnis "
|
||
"folgen und dieses Ergebnis das nächste Experiment leiten lassen."
|
||
|
||
#: website/public/blog/touhou-reconstruction/index.html:685
|
||
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 ""
|
||
"Betrachten Sie den Übergang vom Gameplay zu einem Ende. Wir müssen wissen, "
|
||
"welcher Staat diese Grenze überschreitet und welches Programm dafür "
|
||
"verantwortlich ist. Das können wir gegen das DOS-Produkt untersuchen. Sobald"
|
||
" die Beweise und Überprüfungen verfügbar sind, kann ein Agent die Frage "
|
||
"ähnlich wie bei einem Windows-Titel bearbeiten."
|
||
|
||
#: website/public/blog/touhou-reconstruction/index.html:693
|
||
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 ""
|
||
"Aus diesem Grund ist TH04 für das Argument von Bedeutung. Ein wesentlicher "
|
||
"Plattformwechsel hat uns nicht gezwungen, mit einer neuen Arbeitsweise von "
|
||
"vorne zu beginnen. Die Architektur definierte das Problem; Der Workflow gab "
|
||
"uns immer noch einen Weg, es zu lösen."
|
||
|
||
#: website/public/blog/touhou-reconstruction/index.html:699
|
||
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 ""
|
||
"Für den 64-Bit-Port können wir jetzt die neue Implementierung anhand des "
|
||
"Verhaltens untersuchen, das bereits unter DOS wiederhergestellt wurde. Das "
|
||
"Wissen aus dem Wiederaufbau gibt dem Hafen etwas, auf dem er aufbauen kann."
|
||
|
||
#. {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:704
|
||
#, 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 ""
|
||
"Projektstand per 10.Oktober 2026: {ph0}DOS-Rekonstruktion und manuelles "
|
||
"Testen{ph1} · {ph2}64-bit-Anschluss{ph3}. Der Hafen bleibt in der "
|
||
"Entwicklung."
|
||
|
||
#: website/public/blog/touhou-reconstruction/index.html:717
|
||
msgctxt "page:blog/touhou-reconstruction/index.html"
|
||
msgid "From exact code to readable code"
|
||
msgstr "Vom exakten Code zum lesbaren Code"
|
||
|
||
#: website/public/blog/touhou-reconstruction/index.html:718
|
||
msgctxt "page:blog/touhou-reconstruction/index.html"
|
||
msgid ""
|
||
"Once a reconstruction works, I want someone else to be able to understand "
|
||
"it."
|
||
msgstr ""
|
||
"Sobald eine Rekonstruktion funktioniert, möchte ich, dass jemand anderes sie"
|
||
" verstehen kann."
|
||
|
||
#: website/public/blog/touhou-reconstruction/index.html:722
|
||
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 ""
|
||
"Montage und Rohversatz können sich für mich wie alte Freunde anfühlen. Mir "
|
||
"ist klar, dass dies eine etwas ungewöhnliche Definition von “lesbar\" ist.\""
|
||
" Die meisten Leute würden es vorziehen, der Logik des Spiels zu folgen, ohne"
|
||
" das Speicherlayout der ausführbaren Datei im Kopf zu behalten."
|
||
|
||
#. {ph0}: <strong>
|
||
#. {ph1}: </strong>
|
||
#: website/public/blog/touhou-reconstruction/index.html:728
|
||
#, 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 ""
|
||
"Das ist wo {ph0}semantische Rekonstruktion{ph1} hereinkommen. Ein "
|
||
"wiederhergestelltes Feld kann immer noch hauptsächlich durch seinen Offset "
|
||
"bekannt sein. Wir verfolgen, wie das Spiel es verwendet, bis wir seine Rolle"
|
||
" erklären können. Dann können wir ihm einen aussagekräftigen Namen und einen"
|
||
" Typ geben, der zu den Beweisen passt. Wir behalten die Begründung bei der "
|
||
"Quelle, damit die nächste Person sehen kann, woher diese Interpretation "
|
||
"stammt."
|
||
|
||
#: website/public/blog/touhou-reconstruction/index.html:736
|
||
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 ""
|
||
"Dies wird besonders wichtig für einen Software-Port. Eine absolute Adresse "
|
||
"sagt mir, wo etwas in der alten ausführbaren Datei gelebt hat. Es gibt einer"
|
||
" 64-Bit-Implementierung wenig Hilfe bei der Entscheidung, welches Objekt "
|
||
"diesen Status besitzen soll. Um das Verhalten sicher zu verschieben, müssen "
|
||
"wir die Beziehung hinter dem alten Speicherzugriff wiederherstellen."
|
||
|
||
#: website/public/blog/touhou-reconstruction/index.html:743
|
||
msgctxt "page:blog/touhou-reconstruction/index.html"
|
||
msgid "The order I now use is:"
|
||
msgstr "Die Reihenfolge, die ich jetzt benutze, ist:"
|
||
|
||
#. {ph0}: <strong>
|
||
#. {ph1}: </strong>
|
||
#: website/public/blog/touhou-reconstruction/index.html:745
|
||
#, 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}Stellen Sie eine genaue Basislinie wieder her.{ph1} Kompilieren Sie die"
|
||
" rekonstruierten Stücke mit dem historischen Compiler. Vergleichen Sie den "
|
||
"relevanten Code und die relevanten Daten mit der ursprünglichen ausführbaren"
|
||
" Datei. Zeichnen Sie ungelöste Differenzen auf, damit die nächste Phase "
|
||
"einen klaren Ausgangspunkt hat."
|
||
|
||
#. {ph0}: <strong>
|
||
#. {ph1}: </strong>
|
||
#: website/public/blog/touhou-reconstruction/index.html:752
|
||
#, 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}Baue und spiele es auf der ursprünglichen Plattform.{ph1} Verknüpfen "
|
||
"Sie diese Teile mit der ursprünglichen Architektur und dem ursprünglichen "
|
||
"Compiler mit dem realen Programm. Übe wichtige Spielpfade aus. Hier können "
|
||
"wir Probleme mit dem gemeinsamen Status oder der Initialisierung finden, die"
|
||
" ein isolierter Funktionsvergleich übersehen hat."
|
||
|
||
#. {ph0}: <strong >
|
||
#. {ph1}: </strong >
|
||
#: website/public/blog/touhou-reconstruction/index.html:759
|
||
#, 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}Rekonstruieren Sie die Semantik anhand beider Referenzen.{ph1} Nehmen "
|
||
"Sie jeweils einen zusammenhängenden Teil des Spiels und stellen Sie fest, "
|
||
"was die wiederhergestellte Quelle bedeutet. Verbessere seine Darstellung "
|
||
"unter Beibehaltung der genauen Vergleiche und des spielbaren historischen "
|
||
"Builds."
|
||
|
||
#. {ph0}: <strong>
|
||
#. {ph1}: </strong>
|
||
#: website/public/blog/touhou-reconstruction/index.html:768
|
||
#, 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}Machen Sie den modernen Hafen.{ph1} Verschieben Sie das etablierte "
|
||
"Verhalten in die neue Umgebung, z. B. einen nativen 64-Bit-Build. Das "
|
||
"rekonstruierte Original-Plattformspiel bleibt eine Referenz für den "
|
||
"Vergleich des Verhaltens des Ports."
|
||
|
||
#. {ph0}: <strong>
|
||
#. {ph1}: </strong>
|
||
#: website/public/blog/touhou-reconstruction/index.html:775
|
||
#, 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 ""
|
||
"Der spielbare Build aus der zweiten Stufe wird zu einem {ph0}zweite "
|
||
"Verifizierungsreferenz (Oracle){ph1} während der dritten. Die erste "
|
||
"Verifikationsreferenz (Oracle) prüft, ob unsere geänderte Quelle noch den "
|
||
"relevanten Originalcode und die entsprechenden Originaldaten reproduziert. "
|
||
"Die zweite überprüft, ob das rekonstruierte Programm auf den von uns "
|
||
"ausgeübten Pfaden noch korrekt aufgebaut ist und sich korrekt verhält."
|
||
|
||
#: website/public/blog/touhou-reconstruction/index.html:783
|
||
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 ""
|
||
"Sie fangen verschiedene Fehler. Eine Typänderung kann die generierten "
|
||
"Anweisungen ändern. Ein Eigentümerwechsel kann dazu führen, dass zwei Teile "
|
||
"des Spiels unterschiedliche Kopien des Zustands verwenden. Wenn Sie beide "
|
||
"Überprüfungen verfügbar halten, muss der Agent dies konkret untersuchen, "
|
||
"bevor er einen Refactor weiterführt."
|
||
|
||
#: website/public/blog/touhou-reconstruction/index.html:790
|
||
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 ""
|
||
"Ein Name braucht einen eigenen Beweis. Ein genauer Vergleich kann uns nicht "
|
||
"sagen, ob ein Feld wirklich “Unverwundbarkeitszeit\" bedeutet.\" Wir müssen "
|
||
"das anhand der Art und Weise feststellen, wie das Spiel es schreibt und "
|
||
"verwendet. Bleibt die Bedeutung ungewiss, ist ein neutraler Name für den "
|
||
"nächsten Leser hilfreicher als eine sichere Vermutung."
|
||
|
||
#. {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:797
|
||
#, 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 ""
|
||
"Diese Reihenfolge haben wir durch die Projekte gelernt. TH08 hatte bereits "
|
||
"vor einigen seiner späteren Audits für historische Plattformen spielbare "
|
||
"Ports. Das machte es schwieriger, bestimmte Mängel zu erkennen. Der "
|
||
"{ph0}Aktueller Workflow der Fabrik{ph1} stellt den ursprünglichen Plattform-"
|
||
"Build an die erste Stelle, damit die semantische Arbeit ihn als Referenz "
|
||
"verwenden kann, bevor die Portierung beginnt."
|
||
|
||
#. {ph0}: <strong >
|
||
#. {ph1}: </strong >
|
||
#: website/public/blog/touhou-reconstruction/index.html:808
|
||
#, 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}Die genaue Rekonstruktion gibt uns einen Hinweis. Die semantische "
|
||
"Rekonstruktion macht das gewonnene Wissen nutzbar.{ph1} Ein Port kann dann "
|
||
"auf beiden aufbauen."
|
||
|
||
#: website/public/blog/touhou-reconstruction/index.html:817
|
||
msgctxt "page:blog/touhou-reconstruction/index.html"
|
||
msgid "What makes this an industrial shift"
|
||
msgstr "Was macht diesen industriellen Wandel aus"
|
||
|
||
#: website/public/blog/touhou-reconstruction/index.html:818
|
||
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 ""
|
||
"Diese Projekte haben sich verändert, wo ich meine Aufmerksamkeit aufgewendet"
|
||
" habe. Sobald Agenten einen Großteil einer Untersuchung vorantreiben "
|
||
"konnten, wurde die Verbesserung ihres Arbeitsumfelds zu einem der "
|
||
"nützlichsten Dinge, die ich tun konnte. Ein besseres Werkzeug könnte bei "
|
||
"jeder späteren Funktion helfen, die es benötigt."
|
||
|
||
#: website/public/blog/touhou-reconstruction/index.html:825
|
||
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 ""
|
||
"Autonomie ist hier wichtig. Der sinnvolle nächste Schritt wird oft erst nach"
|
||
" einem gescheiterten Experiment klar. Ein Agent braucht genug Freiheit, um "
|
||
"diesem Ergebnis irgendwo unerwartet zu folgen. Wenn es darauf warten muss, "
|
||
"dass ich jeden Schritt vorschreibe, bleibt ein Großteil der Arbeit an meine "
|
||
"Aufmerksamkeit gebunden."
|
||
|
||
#: website/public/blog/touhou-reconstruction/index.html:832
|
||
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 ""
|
||
"Ich erwarte, dass der Agent falsche Hypothesen aufstellt. Entscheidend ist, "
|
||
"ob wir sie testen und aus dem Ergebnis lernen können. Eine fehlgeschlagene "
|
||
"Überprüfung sollte ihm helfen, den Fehler gut genug zu verstehen, um es "
|
||
"erneut zu versuchen. Ich muss noch entscheiden, ob die gesammelten Beweise "
|
||
"einen Projektmeilenstein unterstützen."
|
||
|
||
#: website/public/blog/touhou-reconstruction/index.html:839
|
||
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 gibt dem Agenten Zugriff auf Analysetools. Eine Frage zum Aufrufer einer"
|
||
" Funktion kann direkt zur Überprüfung dieses Aufrufers führen. Das "
|
||
"Rekonstruktionsprojekt liefert den Compiler und seine eigenen "
|
||
"Referenzprüfungen. Der Agent kann diese verwenden, um die von ihm "
|
||
"vorgeschlagene Quelle zu testen und zu sehen, wo seine Erklärung steht."
|
||
|
||
#: website/public/blog/touhou-reconstruction/index.html:846
|
||
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 ""
|
||
"Der Fehler TH08 zeigt, warum diese Überprüfungen eigene technische "
|
||
"Aufmerksamkeit verdienen. Wenn derselbe Vergleich über Hunderte von "
|
||
"Funktionen hinweg verwendet wird, kann sich eine Lücke darin viel weiter "
|
||
"ausbreiten als ein Fehler in einer Implementierung. Das Testen des Prüfers "
|
||
"verbessert das Feedback, das für alle späteren Arbeiten verfügbar ist."
|
||
|
||
#. {ph0}: <a
|
||
#. href="https://collection.sciencemuseumgroup.org.uk/objects/co51439/watts-
|
||
#. steam-engine-indicator" >
|
||
#. {ph1}: </a >
|
||
#: website/public/blog/touhou-reconstruction/index.html:853
|
||
#, 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 ""
|
||
"Die industrielle Analogie hat hier ein nützliches historisches Beispiel. "
|
||
"Boulton und Watt führten ein {ph0}dampfmaschinenanzeige im Jahr 1796{ph1} um"
|
||
" die Einstellung der Motorventile zu erleichtern. Eine Aufzeichnungsversion "
|
||
"zeichnete den Druck über den Kolbenhub auf. Es stellte das interne Verhalten"
|
||
" des Motors zur Inspektion zur Verfügung. Unsere Vergleichstools dienen "
|
||
"einem ähnlichen Zweck: Sie lassen uns untersuchen, was die Maschinen tun, "
|
||
"während wir sie verbessern."
|
||
|
||
#. {ph0}: <strong >
|
||
#. {ph1}: </strong >
|
||
#: website/public/blog/touhou-reconstruction/index.html:866
|
||
#, 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}Wir befinden uns in einem frühen Stadium dieses industriellen "
|
||
"Wandels.{ph1} Ein Großteil der Infrastruktur ist noch unausgereift. Agenten "
|
||
"können sich schneller bewegen, als unsere Prüfungen unterstützen sollen, "
|
||
"daher muss sich der Prozess neben ihnen entwickeln. Wenn wir einen Defekt in"
|
||
" einem gemeinsam genutzten Tool finden, müssen wir ihn reparieren und die "
|
||
"betroffenen Ergebnisse erneut überprüfen. Das nächste Projekt kann dann ein "
|
||
"stärkeres Werkzeug erben."
|
||
|
||
#: website/public/blog/touhou-reconstruction/index.html:876
|
||
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 ""
|
||
"Es gibt auch eine praktische Grenze für jedes einzelne Gespräch. Es wird "
|
||
"enden, bevor eine große Rekonstruktion abgeschlossen ist. Das Quellcode-"
|
||
"Repository muss es ermöglichen, dass eine weitere Sitzung fortgesetzt werden"
|
||
" kann, ohne den Grund für die letzte Entscheidung zu verlieren."
|
||
|
||
#. {ph0}: <a href="https://github.com/N0zoM1z0/touhou-reconstruction-factory"
|
||
#. >
|
||
#. {ph1}: </a >
|
||
#: website/public/blog/touhou-reconstruction/index.html:882
|
||
#, 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 ""
|
||
"Der {ph0}Touhou-Wiederaufbaufabrik{ph1} wuchs aus diesem Bedürfnis heraus. "
|
||
"Es gibt Projekten eine gemeinsame Möglichkeit, ihre Prüfungen und Lektionen "
|
||
"voranzutreiben. Die Arbeit an einem Spiel kann die Startbedingungen für ein "
|
||
"anderes verbessern."
|
||
|
||
#: website/public/blog/touhou-reconstruction/index.html:892
|
||
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 ""
|
||
"Das macht die industrielle Analogie für mich sinnvoll. Erfahrung wird Teil "
|
||
"von Werkzeugen, die andere nutzen können. Die Verbesserung dieser Tools "
|
||
"ändert, wie viel die nächste Person — oder der nächste Agent - erledigen "
|
||
"kann."
|
||
|
||
#: website/public/blog/touhou-reconstruction/index.html:900
|
||
msgctxt "page:blog/touhou-reconstruction/index.html"
|
||
msgid "The projects we can now consider"
|
||
msgstr "Die Projekte, die wir jetzt in Betracht ziehen können"
|
||
|
||
#: website/public/blog/touhou-reconstruction/index.html:901
|
||
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 ""
|
||
"Das Tempo ist wichtig, weil es die Entscheidung ändert, zu beginnen. Ein "
|
||
"Spiel könnte faszinierend zu rekonstruieren sein und trotzdem mehr von "
|
||
"meiner eigenen Aufmerksamkeit verlangen, als ich es realistisch geben "
|
||
"könnte. Viele Projekte würden Ideen bleiben."
|
||
|
||
#: website/public/blog/touhou-reconstruction/index.html:907
|
||
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 ""
|
||
"Jetzt sehe ich einen Weg, ein solches Projekt durch wiederholte "
|
||
"Untersuchungen am Laufen zu halten. Eine funktionierende Rekonstruktion "
|
||
"macht einen Software-Port praktischer. Das Wiederherstellen lesbarer "
|
||
"Semantik erleichtert es anderen, einen Mod zu erkunden. Der Aufwand, das "
|
||
"Spiel zu verstehen, kann sich nach dem Start der ersten Version weiter "
|
||
"auszahlen."
|
||
|
||
#. {ph0}: <strong >
|
||
#. {ph1}: </strong >
|
||
#: website/public/blog/touhou-reconstruction/index.html:914
|
||
#, 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 ""
|
||
"Ich schaue mir jetzt ein unbekanntes Programm an und frage: {ph0}welcher "
|
||
"Zugang, welches Feedback und welches gesammelte Wissen würden einen Agenten "
|
||
"zuverlässig daran arbeiten lassen?{ph1}"
|
||
|
||
#: website/public/blog/touhou-reconstruction/index.html:921
|
||
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 ""
|
||
"Diese Frage lässt mich über Projekte nachdenken, die ich vorher in Ruhe "
|
||
"gelassen hätte. Jeder kann die Art und Weise verbessern, wie wir uns dem "
|
||
"nächsten nähern. Ich möchte weiter erforschen, wie weit uns das bringen "
|
||
"kann."
|
||
|
||
#: website/public/blog/touhou-reconstruction/index.html:929
|
||
msgctxt "page:blog/touhou-reconstruction/index.html"
|
||
msgid "Project milestones and sources"
|
||
msgstr "Projektmeilensteine und Quellen"
|
||
|
||
#: website/public/blog/touhou-reconstruction/index.html:930
|
||
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 ""
|
||
"Die Daten beschreiben aufgezeichnete Projektprüfpunkte, die am 10.Oktober "
|
||
"2026 mit der öffentlichen GitHub-Historie abgeglichen wurden. Die "
|
||
"verstrichene Zeit ist die Kalenderzeit zwischen den Commits. Quellenpräsenz,"
|
||
" genaue Vergleiche, ein Build- und ein Laufzeitergebnis nennen jeweils einen"
|
||
" anderen Meilenstein."
|
||
|
||
#. {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:938
|
||
#, 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} MODELL: TH08 :{ph1} {ph2}13. August Fortsetzung{ph3}, {ph4}19. August "
|
||
"Quellenbuch{ph5}, {ph6}24. August Linux Hafen{ph7}, {ph8}Webausgabe vom 26. "
|
||
"August{ph9}, und {ph10}30. August Veröffentlichung der 64-Bit-Version "
|
||
"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:961
|
||
#, 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} MODELL: TH095 :{ph1} {ph2}29. August erstes Hauptbuch{ph3}, {ph4}7. "
|
||
"September Quellenbuch{ph5}, {ph6}8. September Vergleiche{ph7}, {ph8}9. "
|
||
"September Verknüpfung{ph9}, und {ph10}10. September spielbar-Rekord "
|
||
"erstellen{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:984
|
||
#, 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} MODELL: TH04 :{ph1} {ph2}Übergabe am 10. Oktober{ph3} zeichnet die "
|
||
"funktionierende DOS-Rekonstruktion, den vollständigen Normalroutentest des "
|
||
"Betreuers und die aktuelle 64-Bit-Phase auf."
|
||
|
||
#. {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:993
|
||
#, 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 Verifizierungsreferenz (Oracle) Korrektur:{ph1} {ph2}der "
|
||
"gemeldete Fehler bei der automatischen Erfassung{ph3}, {ph4}der Quell- und "
|
||
"Vergleichs-Fix{ph5}, und {ph6}das vollständige Gleitkommakonstanten-"
|
||
"Audit{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:1007
|
||
#, 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}Semantische Rekonstruktion:{ph1} {ph2} TH08S Lesbarkeits-Playbook{ph3} "
|
||
"und {ph4}Phasenreihenfolge der Fabrik und zwei Validierungspfade{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:1019
|
||
#, 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}Industriegeschichte:{ph1} {ph2}rekord für Dampfmaschinenindikatoren der"
|
||
" Science Museum Group{ph3} beschreibt die Einführung von 1796 und den "
|
||
"Druckaufzeichnungsmechanismus."
|
||
|
||
#. {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:1028
|
||
#, 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}Methode:{ph1} Fabrik {ph2}agenten-Autonomie{ph3} und "
|
||
"{ph4}spielübergreifendes Wissen{ph5} dokumente behalten die "
|
||
"Arbeitsprinzipien und Lektionen bei."
|
||
|
||
#. {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:1043
|
||
#, python-brace-format
|
||
msgctxt "page:blog/touhou-reconstruction/index.html"
|
||
msgid "{ph0}More articles{ph1} · {ph2}Explore a TH04 investigation{ph3}"
|
||
msgstr ""
|
||
"{ph0}Weitere Artikel{ph1} · {ph2}Erkunden Sie eine TH04-Untersuchung{ph3}"
|
||
|
||
#: website/public/blog/touhou-reconstruction/index.html:6
|
||
msgctxt "page:blog/touhou-reconstruction/index.html"
|
||
msgid "Reverse Engineering’s Industrial Revolution — REA"
|
||
msgstr "Die industrielle Revolution des Reverse Engineerings - 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 reflektiert das manuelle Reverse Engineering, die Touhou-"
|
||
"Rekonstruktion mit KI-Agenten und wie sich das Wissen in TH08 , TH095 und "
|
||
"PC-98 TH04 zusammenfügt ."
|
||
|
||
#: website/public/blog/touhou-reconstruction/index.html:337
|
||
msgctxt "page:blog/touhou-reconstruction/index.html"
|
||
msgid "Experience carried between projects"
|
||
msgstr "Erfahrungsaustausch zwischen Projekten"
|
||
|
||
#: website/public/blog/touhou-reconstruction/index.html:351
|
||
msgctxt "page:blog/touhou-reconstruction/index.html"
|
||
msgid "On this page"
|
||
msgstr "Auf dieser Seite"
|
||
|
||
#: website/public/blog/touhou-reconstruction/index.html:366
|
||
msgctxt "page:blog/touhou-reconstruction/index.html"
|
||
msgid "Touhou reconstruction essay"
|
||
msgstr "Touhou Wiederaufbau Essay"
|
||
|
||
#: website/public/blog/touhou-reconstruction/index.html:1067
|
||
msgctxt "page:blog/touhou-reconstruction/index.html"
|
||
msgid "Back to top"
|
||
msgstr "Nach oben"
|
||
|
||
#: website/public/examples/dino-lab/index.html:100
|
||
msgctxt "page:examples/dino-lab/index.html"
|
||
msgid "Skip to content"
|
||
msgstr "Zum Inhalt springen"
|
||
|
||
#. {ph0}: <a href="../../">
|
||
#. {ph1}: </a>
|
||
#. {ph2}: <span>
|
||
#. {ph3}: </span>
|
||
#: website/public/examples/dino-lab/index.html:182
|
||
#, python-brace-format
|
||
msgctxt "page:examples/dino-lab/index.html"
|
||
msgid "{ph0}Home{ph1}{ph2}/{ph3}Dinosaur speed lab"
|
||
msgstr "{ph0}Startseite{ph1}{ph2}/{ph3}Dinosaurier-Geschwindigkeitslabor"
|
||
|
||
#: website/public/examples/dino-lab/index.html:185
|
||
msgctxt "page:examples/dino-lab/index.html"
|
||
msgid "Inspect → rebuild → change"
|
||
msgstr "Inspizieren → Neu erstellen → Ändern"
|
||
|
||
#: website/public/examples/dino-lab/index.html:186
|
||
msgctxt "page:examples/dino-lab/index.html"
|
||
msgid "Rebuild the dinosaur’s speed rule."
|
||
msgstr "Baue die Geschwindigkeitsregel des Dinosauriers wieder auf."
|
||
|
||
#. {ph0}: <strong>
|
||
#. {ph1}: </strong>
|
||
#. {ph2}: <mark class="prose-highlight">
|
||
#. {ph3}: </mark>
|
||
#: website/public/examples/dino-lab/index.html:187
|
||
#, 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 ""
|
||
"Um die Beschleunigung des Spiels wiederherzustellen, suchen Sie zuerst die "
|
||
"Regel, die seine Geschwindigkeit steuert. {ph0} REA hat das laufende Skript "
|
||
"zurückgegeben;{ph1} wir haben seine Regel verwendet, um dieses Minispiel mit"
|
||
" zu bauen {ph2}einstellbare Geschwindigkeit.{ph3}"
|
||
|
||
#: website/public/examples/dino-lab/index.html:196
|
||
#: website/public/examples/dino-lab/index.html:195
|
||
msgctxt "page:examples/dino-lab/index.html"
|
||
msgid "On this page"
|
||
msgstr "Auf dieser Seite"
|
||
|
||
#. {ph0}: <a href="#play">
|
||
#. {ph1}: </a>
|
||
#: website/public/examples/dino-lab/index.html:198
|
||
#, python-brace-format
|
||
msgctxt "page:examples/dino-lab/index.html"
|
||
msgid "{ph0}Play and change the speed{ph1}"
|
||
msgstr "{ph0}Spielen und die Geschwindigkeit ändern{ph1}"
|
||
|
||
#. {ph0}: <a href="#rule">
|
||
#. {ph1}: </a>
|
||
#: website/public/examples/dino-lab/index.html:199
|
||
#, python-brace-format
|
||
msgctxt "page:examples/dino-lab/index.html"
|
||
msgid "{ph0}Read the recovered rule{ph1}"
|
||
msgstr "{ph0}Lesen Sie die wiederhergestellte Regel{ph1}"
|
||
|
||
#. {ph0}: <a href="#check">
|
||
#. {ph1}: </a>
|
||
#: website/public/examples/dino-lab/index.html:200
|
||
#, python-brace-format
|
||
msgctxt "page:examples/dino-lab/index.html"
|
||
msgid "{ph0}Check the reconstruction{ph1}"
|
||
msgstr "{ph0}Überprüfen Sie die Rekonstruktion{ph1}"
|
||
|
||
#. {ph0}: <a href="#inspect">
|
||
#. {ph1}: </a>
|
||
#: website/public/examples/dino-lab/index.html:201
|
||
#, python-brace-format
|
||
msgctxt "page:examples/dino-lab/index.html"
|
||
msgid "{ph0}Try the analysis{ph1}"
|
||
msgstr "{ph0}Probieren Sie die Analyse aus{ph1}"
|
||
|
||
#: website/public/examples/dino-lab/index.html:206
|
||
msgctxt "page:examples/dino-lab/index.html"
|
||
msgid "Play and change the speed"
|
||
msgstr "Spielen und die Geschwindigkeit ändern"
|
||
|
||
#: website/public/examples/dino-lab/index.html:207
|
||
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 ""
|
||
"Drücke Play und springe dann über den Kaktus. Bewegen Sie den "
|
||
"Geschwindigkeitsregler, um ein langsameres oder schnelleres Spiel zu "
|
||
"versuchen. es schaltet auf eine feste Geschwindigkeit um. Wählen Sie die "
|
||
"wiederhergestellte Regel aus, um bei 6 zu beginnen und schrittweise wieder "
|
||
"zu beschleunigen."
|
||
|
||
#: website/public/examples/dino-lab/index.html:213
|
||
msgctxt "page:examples/dino-lab/index.html"
|
||
msgid "Play the reconstruction"
|
||
msgstr "Den Nachbau spielen"
|
||
|
||
#: website/public/examples/dino-lab/index.html:245
|
||
msgctxt "page:examples/dino-lab/index.html"
|
||
msgid "Play"
|
||
msgstr "Spielen"
|
||
|
||
#: website/public/examples/dino-lab/index.html:248
|
||
msgctxt "page:examples/dino-lab/index.html"
|
||
msgid "Jump ↑"
|
||
msgstr "Springen ↑"
|
||
|
||
#: website/public/examples/dino-lab/index.html:249
|
||
msgctxt "page:examples/dino-lab/index.html"
|
||
msgid "Restart"
|
||
msgstr "Neustart"
|
||
|
||
#: website/public/examples/dino-lab/index.html:252
|
||
msgctxt "page:examples/dino-lab/index.html"
|
||
msgid "Speed"
|
||
msgstr "Geschwindigkeit"
|
||
|
||
#: website/public/examples/dino-lab/index.html:262
|
||
msgctxt "page:examples/dino-lab/index.html"
|
||
msgid "Use the recovered acceleration rule"
|
||
msgstr "Verwenden Sie die wiederhergestellte Beschleunigungsregel"
|
||
|
||
#: website/public/examples/dino-lab/index.html:266
|
||
msgctxt "page:examples/dino-lab/index.html"
|
||
msgid "Original rule: start at 6, then increase toward 13."
|
||
msgstr ""
|
||
"Ursprüngliche Regel: Beginnen Sie bei 6 und erhöhen Sie sich dann in "
|
||
"Richtung 13."
|
||
|
||
#: website/public/examples/dino-lab/index.html:269
|
||
msgctxt "page:examples/dino-lab/index.html"
|
||
msgid "Move the slider to set your own speed. Space or Jump clears a cactus."
|
||
msgstr ""
|
||
"Bewegen Sie den Schieberegler, um Ihre eigene Geschwindigkeit einzustellen. "
|
||
"Leertaste oder Sprung löscht einen Kaktus."
|
||
|
||
#: website/public/examples/dino-lab/index.html:274
|
||
msgctxt "page:examples/dino-lab/index.html"
|
||
msgid ""
|
||
"Enable JavaScript to play the reconstruction. The code and explanation above"
|
||
" remain readable."
|
||
msgstr ""
|
||
"Aktivieren Sie JavaScript, um die Rekonstruktion abzuspielen. Der Code und "
|
||
"die obige Erklärung bleiben lesbar."
|
||
|
||
#: website/public/examples/dino-lab/index.html:282
|
||
msgctxt "page:examples/dino-lab/index.html"
|
||
msgid "Read the script REA returned"
|
||
msgstr "Lesen Sie das zurückgegebene Skript 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:283
|
||
#, 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 ""
|
||
"Wir inspizierten {ph0}wayous von Chromium abgeleitete Browser-Edition{ph1} "
|
||
"mit REA. Es gab das geladene zurück {ph2}, einschließlich dieses Zweigs in "
|
||
"der Update-Funktion des Spiels:"
|
||
|
||
#. {ph0}: <code>SPEED: 6</code>
|
||
#. {ph1}: <code>ACCELERATION: 0.001</code>
|
||
#. {ph2}: <code>MAX_SPEED: 13</code>
|
||
#: website/public/examples/dino-lab/index.html:299
|
||
#, 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 ""
|
||
"Die Einstellungen sind {ph0}, {ph1} und {ph2}. Das Spiel führt diesen Zweig "
|
||
"bei einem Update ohne Kollision aus."
|
||
|
||
#: website/public/examples/dino-lab/index.html:304
|
||
msgctxt "page:examples/dino-lab/index.html"
|
||
msgid "Use the same rule in the new game"
|
||
msgstr "Verwenden Sie die gleiche Regel im neuen Spiel"
|
||
|
||
#: website/public/examples/dino-lab/index.html:310
|
||
#: website/public/examples/dino-lab/index.html:409
|
||
msgctxt "page:examples/dino-lab/index.html"
|
||
msgid "Copy"
|
||
msgstr "Kopieren"
|
||
|
||
#: website/public/examples/dino-lab/index.html:323
|
||
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 ""
|
||
"Das Minispiel nutzt diese Funktion zur automatischen Beschleunigung. Das "
|
||
"Bewegen des Schiebers liefert stattdessen eine feste Geschwindigkeit. "
|
||
"Zeichnen, Sprungphysik und Rechteckkollisionsprüfungen sind neuer Code für "
|
||
"dieses Lehrspiel; Seine Simulation schreitet mit 60 Aktualisierungen pro "
|
||
"Sekunde voran."
|
||
|
||
#. {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:329
|
||
#, 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}Laden Sie die Geschwindigkeitsregel herunter{ph1} · {ph2}Lesen Sie den "
|
||
"Spielcode{ph3}"
|
||
|
||
#: website/public/examples/dino-lab/index.html:337
|
||
msgctxt "page:examples/dino-lab/index.html"
|
||
msgid "Check the reconstruction"
|
||
msgstr "Überprüfen Sie die Rekonstruktion"
|
||
|
||
#: website/public/examples/dino-lab/index.html:338
|
||
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 ""
|
||
"Wir haben die Update-Funktion des Originalspiels mit deaktivierten "
|
||
"Hindernissen und automatischer Zeitplanung aufgerufen. Vergleichen Sie diese"
|
||
" aufgezeichneten Geschwindigkeiten mit einer Wiedergabe der "
|
||
"wiederhergestellten Regel."
|
||
|
||
#: website/public/examples/dino-lab/index.html:347
|
||
msgctxt "page:examples/dino-lab/index.html"
|
||
msgid "Updates"
|
||
msgstr "Aktualisierungen"
|
||
|
||
#: website/public/examples/dino-lab/index.html:348
|
||
msgctxt "page:examples/dino-lab/index.html"
|
||
msgid "Original game"
|
||
msgstr "Originalspiel"
|
||
|
||
#: website/public/examples/dino-lab/index.html:349
|
||
msgctxt "page:examples/dino-lab/index.html"
|
||
msgid "Reconstructed rule"
|
||
msgstr "Rekonstruierte Herrschaft"
|
||
|
||
#: website/public/examples/dino-lab/index.html:376
|
||
msgctxt "page:examples/dino-lab/index.html"
|
||
msgid "Run the speed check"
|
||
msgstr "Führen Sie den Geschwindigkeitscheck durch"
|
||
|
||
#: website/public/examples/dino-lab/index.html:379
|
||
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 ""
|
||
"Werte auf drei Dezimalstellen gerundet. Der Zweig prüft vor dem Hinzufügen, "
|
||
"sodass das letzte Inkrement eine Geschwindigkeit von knapp über 13 annehmen "
|
||
"kann."
|
||
|
||
#: website/public/examples/dino-lab/index.html:385
|
||
msgctxt "page:examples/dino-lab/index.html"
|
||
msgid "Try the analysis yourself"
|
||
msgstr "Probieren Sie die Analyse selbst aus"
|
||
|
||
#. {ph0}: <a href="../../get-started/">
|
||
#. {ph1}: </a>
|
||
#: website/public/examples/dino-lab/index.html:387
|
||
#, python-brace-format
|
||
msgctxt "page:examples/dino-lab/index.html"
|
||
msgid "{ph0}Set up REA{ph1} with your coding agent."
|
||
msgstr "{ph0}Einrichten von REA {ph1} mit Ihrem Codierungsagenten."
|
||
|
||
#. {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:391
|
||
#, 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 ""
|
||
"Folgen Sie dem {ph0}schritte zur Browser-Verbindung{ph1}, wobei {ph2} wie "
|
||
"die Seiten-URL."
|
||
|
||
#: website/public/examples/dino-lab/index.html:398
|
||
msgctxt "page:examples/dino-lab/index.html"
|
||
msgid ""
|
||
"Give your agent the page URL and local debugging endpoint, then copy this "
|
||
"prompt."
|
||
msgstr ""
|
||
"Geben Sie Ihrem Agenten die Seiten-URL und den lokalen Debugging-Endpunkt "
|
||
"und kopieren Sie diese Eingabeaufforderung."
|
||
|
||
#. {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:405
|
||
#, 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}Ihr Codierungsagent"
|
||
|
||
#. {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:418
|
||
#, 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}Verwenden Sie REA, um dieses Dinosaurierspiel zu "
|
||
"inspizieren. Warum wird es schneller? Zeigen Sie die Geschwindigkeitsregel "
|
||
"an und bauen Sie dann eine kleine Version mit einstellbarer "
|
||
"Geschwindigkeit.{ph3}{ph4}{ph5}"
|
||
|
||
#. {ph0}: <strong >
|
||
#. {ph1}: </strong >
|
||
#: website/public/examples/dino-lab/index.html:427
|
||
#, 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 ""
|
||
"Fragen Sie ein Follow-up: {ph0}“Wo wird die Sprunghöhe berechnet? Fügen Sie "
|
||
"der neuen Version eine Sprunghöhensteuerung hinzu.”{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:434
|
||
#, 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 ""
|
||
"Quelle: {ph0}geprüfter Geschwindigkeitscode{ph1}, Chromium Autoren. "
|
||
"{ph2}Urheberrecht und BSD-Lizenz{ph3}. REA 4.1.0 hat die laufende HTTP-"
|
||
"Edition in Chrome 150 überprüft."
|
||
|
||
#: 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 Dinosaurier-Spiel: Bauen Sie seine Geschwindigkeitsregel wieder auf -"
|
||
" 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 ""
|
||
"Lies die Geschwindigkeitsregel des Dinosaurierspiels mit REA, baue sie neu "
|
||
"auf, ändere dann die Geschwindigkeit und spiele."
|
||
|
||
#: website/public/examples/dino-lab/index.html:204
|
||
msgctxt "page:examples/dino-lab/index.html"
|
||
msgid "Dinosaur speed reconstruction"
|
||
msgstr "Geschwindigkeitsrekonstruktion von Dinosauriern"
|
||
|
||
#: website/public/examples/dino-lab/index.html:235
|
||
msgctxt "page:examples/dino-lab/index.html"
|
||
msgid ""
|
||
"Dinosaur mini-game. Use the Jump button or press Space while the game is "
|
||
"focused."
|
||
msgstr ""
|
||
"Dinosaurier-Minispiel. Verwenden Sie die Sprungtaste oder drücken Sie die "
|
||
"Leertaste, während das Spiel fokussiert ist."
|
||
|
||
#: website/public/examples/dino-lab/index.html:310
|
||
msgctxt "page:examples/dino-lab/index.html"
|
||
msgid "Copy reconstructed speed rule"
|
||
msgstr "Rekonstruierte Geschwindigkeitsregel kopieren"
|
||
|
||
#: website/public/examples/dino-lab/index.html:409
|
||
msgctxt "page:examples/dino-lab/index.html"
|
||
msgid "Copy dinosaur analysis prompt"
|
||
msgstr "Aufforderung zur Dinosaurieranalyse kopieren"
|
||
|
||
#: website/public/examples/dino-lab/index.html:462
|
||
msgctxt "page:examples/dino-lab/index.html"
|
||
msgid "Back to top"
|
||
msgstr "Nach oben"
|
||
|
||
#: website/public/faq/index.html:99
|
||
msgctxt "page:faq/index.html"
|
||
msgid "Skip to content"
|
||
msgstr "Zum Inhalt springen"
|
||
|
||
#. {ph0}: <a href="../">
|
||
#. {ph1}: </a>
|
||
#: website/public/faq/index.html:181
|
||
#, python-brace-format
|
||
msgctxt "page:faq/index.html"
|
||
msgid "{ph0}Home{ph1} / FAQ"
|
||
msgstr "{ph0}Startseite{ph1} / HÄUFIG GESTELLTE FRAGEN"
|
||
|
||
#: website/public/faq/index.html:182
|
||
msgctxt "page:faq/index.html"
|
||
msgid "REA FAQ."
|
||
msgstr "REA HÄUFIG GESTELLTE FRAGEN."
|
||
|
||
#: website/public/faq/index.html:183
|
||
msgctxt "page:faq/index.html"
|
||
msgid "Setup, updates, analysis and troubleshooting."
|
||
msgstr "Einrichtung, Updates, Analyse und Fehlerbehebung."
|
||
|
||
#: website/public/faq/index.html:187
|
||
msgctxt "page:faq/index.html"
|
||
msgid "Topics"
|
||
msgstr "Themen"
|
||
|
||
#. {ph0}: <a href="#setup">
|
||
#. {ph1}: </a>
|
||
#: website/public/faq/index.html:189
|
||
#, python-brace-format
|
||
msgctxt "page:faq/index.html"
|
||
msgid "{ph0}Setup and updates{ph1}"
|
||
msgstr "{ph0}Einrichtung und Updates{ph1}"
|
||
|
||
#. {ph0}: <a href="#analysis">
|
||
#. {ph1}: </a>
|
||
#: website/public/faq/index.html:190
|
||
#, python-brace-format
|
||
msgctxt "page:faq/index.html"
|
||
msgid "{ph0}Analysis{ph1}"
|
||
msgstr "{ph0}Analyse{ph1}"
|
||
|
||
#. {ph0}: <a href="#troubleshooting">
|
||
#. {ph1}: </a>
|
||
#: website/public/faq/index.html:191
|
||
#, python-brace-format
|
||
msgctxt "page:faq/index.html"
|
||
msgid "{ph0}Troubleshooting{ph1}"
|
||
msgstr "{ph0}Fehlerbehebung{ph1}"
|
||
|
||
#. {ph0}: <a href="#sharing">
|
||
#. {ph1}: </a>
|
||
#: website/public/faq/index.html:192
|
||
#, python-brace-format
|
||
msgctxt "page:faq/index.html"
|
||
msgid "{ph0}Data and sharing{ph1}"
|
||
msgstr "{ph0}Daten und Weitergabe{ph1}"
|
||
|
||
#: website/public/faq/index.html:201
|
||
msgctxt "page:faq/index.html"
|
||
msgid "Setup and updates"
|
||
msgstr "Einrichtung und Updates"
|
||
|
||
#: website/public/faq/index.html:204
|
||
msgctxt "page:faq/index.html"
|
||
msgid "How do I install REA?"
|
||
msgstr "Wie installiere ich REA?"
|
||
|
||
#: website/public/faq/index.html:212
|
||
msgctxt "page:faq/index.html"
|
||
msgid "Terminal · agent setup"
|
||
msgstr "Terminal * Agenten-Einrichtung"
|
||
|
||
#: website/public/faq/index.html:213 website/public/faq/index.html:254
|
||
#: website/public/faq/index.html:272 website/public/faq/index.html:356
|
||
#: website/public/faq/index.html:403 website/public/faq/index.html:443
|
||
#: website/public/faq/index.html:463
|
||
msgctxt "page:faq/index.html"
|
||
msgid "Copy"
|
||
msgstr "Kopieren"
|
||
|
||
# Reviewed for readable setup and analysis terminology.
|
||
#. {ph0}: <a href="../get-started/">
|
||
#. {ph1}: </a>
|
||
#: website/public/faq/index.html:224
|
||
#, 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 ""
|
||
"Die Einrichtung registriert die MCP-Verbindung von REA und installiert den "
|
||
"zugehörigen Analyse-Skill. Starten Sie anschließend Ihren Agenten neu und "
|
||
"geben Sie ihm einen Dateipfad und eine Frage. Die "
|
||
"{ph0}Einrichtungsanleitung{ph1} erklärt die Voraussetzungen und die erste "
|
||
"Analyse."
|
||
|
||
#: website/public/faq/index.html:233
|
||
msgctxt "page:faq/index.html"
|
||
msgid "Which coding agents can use REA?"
|
||
msgstr "Welche Codierungsmittel können REA verwenden?"
|
||
|
||
#: website/public/faq/index.html:234
|
||
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 ""
|
||
"Jeder Agent, der lokale MCP-Server unterstützt. Die Einrichtung umfasst "
|
||
"Claude Code, Claude Desktop, Codex, Cursor, Gemini CLI, Windsurf, Devin, "
|
||
"OpenCode, Antigravity, GitHub Copilot CLI, Command Code, Grok Build, OMP und"
|
||
" VS Code . Der Connector von Grok Bot wird aus seinem Chat hinzugefügt."
|
||
|
||
#. {ph0}: <a href="../get-started/#agent">
|
||
#. {ph1}: </a>
|
||
#: website/public/faq/index.html:241
|
||
#, python-brace-format
|
||
msgctxt "page:faq/index.html"
|
||
msgid "{ph0}Connect your coding agent{ph1}."
|
||
msgstr "{ph0}Verbinden Sie Ihren Codierungsagenten{ph1}."
|
||
|
||
#: website/public/faq/index.html:246
|
||
msgctxt "page:faq/index.html"
|
||
msgid "How do I update REA?"
|
||
msgstr "Wie aktualisiere ich REA?"
|
||
|
||
#: website/public/faq/index.html:247
|
||
msgctxt "page:faq/index.html"
|
||
msgid ""
|
||
"REA releases frequently, including bug fixes. If you installed the CLI with "
|
||
"npm:"
|
||
msgstr ""
|
||
"REA wird häufig veröffentlicht, einschließlich Fehlerkorrekturen. Wenn Sie "
|
||
"den CLI mit npm installiert haben :"
|
||
|
||
#: website/public/faq/index.html:253
|
||
msgctxt "page:faq/index.html"
|
||
msgid "Terminal · installed CLI"
|
||
msgstr "Terminal * installiert CLI"
|
||
|
||
#. {ph0}: <code>npx</code>
|
||
#: website/public/faq/index.html:265
|
||
#, 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 ""
|
||
"Befolgen Sie den Befehl Setup Refresh, der vom Update gedruckt wird. Wenn "
|
||
"Sie Ihren Agenten über einrichten {ph0}, laufen:"
|
||
|
||
#: website/public/faq/index.html:271
|
||
msgctxt "page:faq/index.html"
|
||
msgid "Terminal · refresh agent setup"
|
||
msgstr "Terminal * Einrichtung des Aktualisierungsagenten"
|
||
|
||
# Reviewed for readable setup and analysis terminology.
|
||
#. {ph0}: <code>npx -y rea-agents@latest</code>
|
||
#: website/public/faq/index.html:283
|
||
#, 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 ""
|
||
"Prüfen Sie die Änderungen und starten Sie Ihren Agenten neu. Seine REA-"
|
||
"Verbindung verwendet eine festgelegte Paketversion. Führen Sie die "
|
||
"Einrichtung erneut aus, damit er die neue Version nutzt. Für einen einzelnen"
|
||
" CLI-Aufruf hängen Sie den Befehl an {ph0} an."
|
||
|
||
#: website/public/faq/index.html:291
|
||
msgctxt "page:faq/index.html"
|
||
msgid "Is installing the skill from skills.sh enough?"
|
||
msgstr "Installiert den Skill von skills.sh genug?"
|
||
|
||
#. {ph0}: <a href="#install">
|
||
#. {ph1}: </a>
|
||
#: website/public/faq/index.html:294
|
||
#, 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 ""
|
||
"Der Skill gibt Ihrem Agenten Anweisungen zur Untersuchung. Laufen {ph0} REA "
|
||
"Einrichtung{ph1} um den MCP-Server zu verbinden und den passenden Skill zu "
|
||
"installieren, starten Sie Ihren Agenten neu, damit er die Tools aufrufen "
|
||
"kann."
|
||
|
||
#: website/public/faq/index.html:305
|
||
msgctxt "page:faq/index.html"
|
||
msgid "Analysis"
|
||
msgstr "Analyse"
|
||
|
||
#: website/public/faq/index.html:308
|
||
msgctxt "page:faq/index.html"
|
||
msgid "What can I analyze with REA?"
|
||
msgstr "Was kann ich mit REA analysieren?"
|
||
|
||
#: website/public/faq/index.html:309
|
||
msgctxt "page:faq/index.html"
|
||
msgid "Start with the kind of software you have:"
|
||
msgstr "Beginnen Sie mit der Art von Software, die Sie haben:"
|
||
|
||
#. {ph0}: <a href="../guides/native/" >
|
||
#. {ph1}: </a >
|
||
#: website/public/faq/index.html:311
|
||
#, python-brace-format
|
||
msgctxt "page:faq/index.html"
|
||
msgid ""
|
||
"{ph0}Native executables and libraries{ph1}: functions, assembly, pseudocode "
|
||
"and references."
|
||
msgstr ""
|
||
"{ph0}Native ausführbare Dateien und Bibliotheken{ph1}: Funktionen, "
|
||
"Assemblierung, Pseudocode und Referenzen."
|
||
|
||
#. {ph0}: <a href="../guides/javascript/" >
|
||
#. {ph1}: </a >
|
||
#: website/public/faq/index.html:316
|
||
#, python-brace-format
|
||
msgctxt "page:faq/index.html"
|
||
msgid ""
|
||
"{ph0}JavaScript and Electron apps{ph1}: modules, imports, IPC and source "
|
||
"locations."
|
||
msgstr ""
|
||
"{ph0} Apps für JavaScript und Electron{ph1}: Module, Importe, IPC- und "
|
||
"Quellspeicherorte."
|
||
|
||
#. {ph0}: <a href="../guides/browser/">
|
||
#. {ph1}: </a>
|
||
#: website/public/faq/index.html:321
|
||
#, python-brace-format
|
||
msgctxt "page:faq/index.html"
|
||
msgid "{ph0}Browser pages{ph1}: scripts, requests and runtime observations."
|
||
msgstr ""
|
||
"{ph0}Browser-Seiten{ph1}: Skripte, Anfragen und Laufzeitbeobachtungen."
|
||
|
||
#. {ph0}: <a href="../showcase/">
|
||
#. {ph1}: </a>
|
||
#: website/public/faq/index.html:326
|
||
#, 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 verfügt auch über Workflows für verwaltete Assemblys, Android-APKs, "
|
||
"Firmware und gepackte Ressourcen. {ph0}Sehen Sie sich die Fallstudien "
|
||
"an{ph1} für durchgeführte Untersuchungen."
|
||
|
||
#: website/public/faq/index.html:334
|
||
msgctxt "page:faq/index.html"
|
||
msgid "Do I need Hopper, Ghidra or IDA?"
|
||
msgstr "Benötige ich Hopper, Ghidra oder IDA?"
|
||
|
||
#: website/public/faq/index.html:335
|
||
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 ""
|
||
"Eine gründliche Analyse von Maschinencodeprogrammen verwendet eine davon. "
|
||
"Statische JavaScript- und .NET-Inspektionen arbeiten mit den mitgelieferten "
|
||
"Dateien und benötigen keine Analyse der Maschinencode-Programm-Engine."
|
||
|
||
#. {ph0}: <a href="../get-started/#native">
|
||
#. {ph1}: </a>
|
||
#: website/public/faq/index.html:340
|
||
#, 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 ""
|
||
"Verbinden Sie Ihre vorhandene Ghidra- oder IDA-Installation oder lassen Sie "
|
||
"das Setup Hopper erkennen und eine Installation vorschlagen. Ihr Host und "
|
||
"Ihr Ziel bestimmen, welcher Anbieter verwendet werden kann. {ph0}Analyse von"
|
||
" Maschinencode-Programmen einrichten{ph1}."
|
||
|
||
#: website/public/faq/index.html:348
|
||
msgctxt "page:faq/index.html"
|
||
msgid "Can I use REA without a coding agent?"
|
||
msgstr "Kann ich REA ohne Codierungsmittel verwenden?"
|
||
|
||
#: website/public/faq/index.html:349
|
||
msgctxt "page:faq/index.html"
|
||
msgid ""
|
||
"Yes. The CLI uses the same analysis workflows. For a local JavaScript or "
|
||
"Electron app:"
|
||
msgstr ""
|
||
"Ja. Der CLI verwendet die gleichen Analyse-Workflows. Für eine lokale "
|
||
"JavaScript- oder Electron-App:"
|
||
|
||
#: website/public/faq/index.html:355
|
||
msgctxt "page:faq/index.html"
|
||
msgid "Terminal · static application analysis"
|
||
msgstr "Terminal * statische Anwendungsanalyse"
|
||
|
||
#. {ph0}: <a href="../get-started/#terminal">
|
||
#. {ph1}: </a>
|
||
#: website/public/faq/index.html:368
|
||
#, 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 ""
|
||
"Ersetzen Sie den Pfad durch einen extrahierten Anwendungsordner oder eine "
|
||
"ASAR-Datei. {ph0}Verwenden Sie den CLI {ph1} für Installationsoptionen."
|
||
|
||
# Reviewed for readable setup and analysis terminology.
|
||
#: website/public/faq/index.html:375
|
||
msgctxt "page:faq/index.html"
|
||
msgid "What code does REA return?"
|
||
msgstr "Welchen Code liefert REA?"
|
||
|
||
# Reviewed for readable setup and analysis terminology.
|
||
#: website/public/faq/index.html:376
|
||
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 ""
|
||
"Die Analyse nativer Programme liefert Assembler und Pseudocode sowie "
|
||
"Funktionsaufrufe, Verweise und relevante Konstanten. Die JavaScript-Analyse "
|
||
"liefert Module, ihre Beziehungen und die Stellen im Quellcode."
|
||
|
||
#. {ph0}: <a href="../showcase/dx-ball/#sound-pan" >
|
||
#. {ph1}: </a >
|
||
#. {ph2}: <a href="../showcase/ctf/">
|
||
#. {ph3}: </a>
|
||
#: website/public/faq/index.html:381
|
||
#, 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 ""
|
||
"Ihr Agent verwendet diese Erkenntnisse, um das Verhalten zu erklären oder "
|
||
"eine Implementierung zu schreiben und zu testen. Der {ph0} DX-Ball "
|
||
"Berechnung{ph1} und {ph2}CTF-Flaggenprüfer{ph3} zeigen Sie, wie dieser "
|
||
"Prozess funktioniert."
|
||
|
||
#: website/public/faq/index.html:392
|
||
msgctxt "page:faq/index.html"
|
||
msgid "What should I ask my agent?"
|
||
msgstr "Was soll ich meinen Agent fragen?"
|
||
|
||
#: website/public/faq/index.html:393
|
||
msgctxt "page:faq/index.html"
|
||
msgid ""
|
||
"Give it a local target and one behavior to investigate. For a JavaScript or "
|
||
"Electron app:"
|
||
msgstr ""
|
||
"Geben Sie ihm ein lokales Ziel und ein zu untersuchendes Verhalten. Für eine"
|
||
" JavaScript- oder Electron-App:"
|
||
|
||
#. {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:399
|
||
#, 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}Ihr Codierungsagent"
|
||
|
||
#. {ph0}: <a href="../guides/">
|
||
#. {ph1}: </a>
|
||
#: website/public/faq/index.html:422
|
||
#, 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 ""
|
||
"Ersetzen Sie den Pfad durch Ihr Ziel. Der {ph0}Hilfslinien{ph1} geben Sie "
|
||
"Eingabeaufforderungen für native, Electron- und Browserbeispiele an."
|
||
|
||
#: website/public/faq/index.html:432
|
||
msgctxt "page:faq/index.html"
|
||
msgid "Troubleshooting"
|
||
msgstr "Fehlerbehebung"
|
||
|
||
#: website/public/faq/index.html:435
|
||
msgctxt "page:faq/index.html"
|
||
msgid "Why can't my agent see the REA tools?"
|
||
msgstr "Warum kann mein Agent die REA-Tools nicht sehen?"
|
||
|
||
#. {ph0}: <code>doctor</code>
|
||
#: website/public/faq/index.html:436
|
||
#, 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 ""
|
||
"Starten Sie Ihren Agenten nach der Einrichtung neu oder verbinden Sie ihn "
|
||
"erneut. Überprüfen Sie die REA-Registrierung mit {ph0}; für Codex :"
|
||
|
||
#: website/public/faq/index.html:442
|
||
msgctxt "page:faq/index.html"
|
||
msgid "Terminal · check one client"
|
||
msgstr "Terminal * Überprüfen Sie einen Client"
|
||
|
||
#. {ph0}: <code>codex</code>
|
||
#. {ph1}: <code>claude_code</code>
|
||
#. {ph2}: <code>cursor</code>
|
||
#: website/public/faq/index.html:454
|
||
#, 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 ""
|
||
"Ersetzen {ph0} mit Ihrer Kundennummer, wie zum Beispiel {ph1} oder {ph2}. "
|
||
"Wenn der Bericht eine fehlende oder veraltete Registrierung anzeigt, führen "
|
||
"Sie Setup für diesen Client aus:"
|
||
|
||
#: website/public/faq/index.html:462
|
||
msgctxt "page:faq/index.html"
|
||
msgid "Terminal · repair one client's setup"
|
||
msgstr "Terminal * Reparieren Sie das Setup eines Clients"
|
||
|
||
#. {ph0}: <a href="../get-started/#help">
|
||
#. {ph1}: </a>
|
||
#: website/public/faq/index.html:474
|
||
#, 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 ""
|
||
"Überprüfen Sie den Plan und starten Sie den Client neu. Wenn die "
|
||
"Registrierung fehlerfrei ist, aber keine Tools vorhanden sind, überprüfen "
|
||
"Sie den Verbindungsfehler MCP des Clients. {ph0}Weitere Setup-"
|
||
"Diagnosen{ph1}."
|
||
|
||
#: website/public/faq/index.html:482
|
||
msgctxt "page:faq/index.html"
|
||
msgid "Do I need to start Hopper first?"
|
||
msgstr "Muss ich Hopper zuerst starten?"
|
||
|
||
#. {ph0}: <a href="../get-started/#native">
|
||
#. {ph1}: </a >
|
||
#: website/public/faq/index.html:483
|
||
#, 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 startet Hopper, wenn eine Operation dies benötigt. Schließen Sie beim "
|
||
"macOS die erste Auswahl zwischen Demo-Modus oder Lizenzaktivierung vor der "
|
||
"unbeaufsichtigten Analyse ab. {ph0}Siehe Einrichtung des nativen "
|
||
"Anbieters{ph1}."
|
||
|
||
#: website/public/faq/index.html:492
|
||
msgctxt "page:faq/index.html"
|
||
msgid "What should I do if I hit a bug?"
|
||
msgstr "Was mache ich bei einem Fehler?"
|
||
|
||
#. {ph0}: <a href="#update">
|
||
#. {ph1}: </a>
|
||
#: website/public/faq/index.html:493
|
||
#, 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}Aktualisieren Sie REA {ph1}, starten Sie Ihren Agenten neu und "
|
||
"wiederholen Sie die gleiche Aufgabe. Eine aktuelle Version behebt das "
|
||
"Problem möglicherweise bereits."
|
||
|
||
#. {ph0}: <a href="https://github.com/morluto/rea/issues/new/choose" >
|
||
#. {ph1}: </a >
|
||
#: website/public/faq/index.html:497
|
||
#, 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 ""
|
||
"Wenn es anhält, {ph0}öffnen Sie eine Ausgabe{ph1} mit Ihrer REA-Version, "
|
||
"Betriebssystem, Zieltyp, zu reproduzierenden Schritten und Fehlerausgabe. "
|
||
"Geben Sie den Anbieternamen an, wenn das Problem die Analyse von "
|
||
"Maschinencodeprogrammen betrifft."
|
||
|
||
#: website/public/faq/index.html:511
|
||
msgctxt "page:faq/index.html"
|
||
msgid "Data and sharing"
|
||
msgstr "Daten und Weitergabe"
|
||
|
||
#: website/public/faq/index.html:514
|
||
msgctxt "page:faq/index.html"
|
||
msgid "Does REA upload my app?"
|
||
msgstr "Lädt REA meine App hoch?"
|
||
|
||
#: website/public/faq/index.html:515
|
||
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 analysiert Ziele auf Ihrem Computer. Ihr Agent erhält die Ergebnisse, "
|
||
"und die Datenrichtlinie seines Modellanbieters gilt für diese Ergebnisse."
|
||
|
||
#: website/public/faq/index.html:522
|
||
msgctxt "page:faq/index.html"
|
||
msgid "How can I share an example or contribute?"
|
||
msgstr "Wie kann ich ein Beispiel teilen oder einen Beitrag leisten?"
|
||
|
||
#. {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:523
|
||
#, 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 ""
|
||
"Haben Sie ein nützliches REA-Beispiel? Wir würden es gerne sehen. Teilen Sie"
|
||
" das Ziel, Ihre Frage, die Ergebnisse und wie Sie sie überprüft haben in "
|
||
"einem {ph0}Problem{ph1} oder {ph2}pull-Anfrage{ph3}. Kurze Codeauszüge und "
|
||
"Zahlen helfen anderen, die Untersuchung zu verfolgen."
|
||
|
||
#. {ph0}: <a href="https://discord.gg/GkcryMnJDM">
|
||
#. {ph1}: </a>
|
||
#: website/public/faq/index.html:535
|
||
#, 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 ""
|
||
"Fehlerberichte, Funktionswünsche, Dokumentation und Codeverbesserungen sind "
|
||
"ebenfalls willkommen. Sie können auch ein Beispiel in der diskutieren "
|
||
"{ph0}Gemeinschaft{ph1}."
|
||
|
||
#: website/public/faq/index.html:6
|
||
msgctxt "page:faq/index.html"
|
||
msgid "REA FAQ: Setup, Updates and Troubleshooting"
|
||
msgstr "REA FAQ: Einrichtung, Updates und Fehlerbehebung"
|
||
|
||
#: 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 ""
|
||
"Antworten auf häufig gestellte Fragen zum REA: Installation, Updates, "
|
||
"Analysetools, Codierungsagenten, Fehlerbehebung und Beispiele zum Teilen."
|
||
|
||
#: website/public/faq/index.html:186
|
||
msgctxt "page:faq/index.html"
|
||
msgid "On this page"
|
||
msgstr "Auf dieser Seite"
|
||
|
||
#: website/public/faq/index.html:195
|
||
msgctxt "page:faq/index.html"
|
||
msgid "Frequently asked questions about REA"
|
||
msgstr "Häufig gestellte Fragen zu REA"
|
||
|
||
#: website/public/faq/index.html:213
|
||
msgctxt "page:faq/index.html"
|
||
msgid "Copy REA setup command"
|
||
msgstr "REA Setup-Befehl kopieren"
|
||
|
||
#: website/public/faq/index.html:254
|
||
msgctxt "page:faq/index.html"
|
||
msgid "Copy REA update command"
|
||
msgstr "Kopieren Sie den Aktualisierungsbefehl REA"
|
||
|
||
#: website/public/faq/index.html:272
|
||
msgctxt "page:faq/index.html"
|
||
msgid "Copy agent setup refresh command"
|
||
msgstr "Befehl zum Aktualisieren des Agenten-Setups kopieren"
|
||
|
||
#: website/public/faq/index.html:356
|
||
msgctxt "page:faq/index.html"
|
||
msgid "Copy REA CLI analysis command"
|
||
msgstr "Kopieren Sie den REA CLI-Analysebefehl"
|
||
|
||
#: website/public/faq/index.html:403
|
||
msgctxt "page:faq/index.html"
|
||
msgid "Copy example analysis prompt"
|
||
msgstr "Beispielanalyse-Eingabeaufforderung kopieren"
|
||
|
||
#: website/public/faq/index.html:443
|
||
msgctxt "page:faq/index.html"
|
||
msgid "Copy client diagnosis command"
|
||
msgstr "Clientdiagnosebefehl kopieren"
|
||
|
||
#: website/public/faq/index.html:463
|
||
msgctxt "page:faq/index.html"
|
||
msgid "Copy scoped setup command"
|
||
msgstr "Befehl zum Kopieren des bereichsbezogenen Setups"
|
||
|
||
#: website/public/faq/index.html:560
|
||
msgctxt "page:faq/index.html"
|
||
msgid "Back to top"
|
||
msgstr "Nach oben"
|
||
|
||
#: website/public/first-investigation/index.html:99
|
||
msgctxt "page:first-investigation/index.html"
|
||
msgid "Skip to content"
|
||
msgstr "Zum Inhalt springen"
|
||
|
||
#. {ph0}: <a href="../">
|
||
#. {ph1}: </a>
|
||
#: website/public/first-investigation/index.html:181
|
||
#, python-brace-format
|
||
msgctxt "page:first-investigation/index.html"
|
||
msgid "{ph0}Home{ph1} / Your first investigation"
|
||
msgstr "{ph0}Startseite{ph1} / Ihre erste Untersuchung"
|
||
|
||
#. {ph0}: <br />
|
||
#: website/public/first-investigation/index.html:184
|
||
#, python-brace-format
|
||
msgctxt "page:first-investigation/index.html"
|
||
msgid "Find out where{ph0}exported notes go."
|
||
msgstr "Finden Sie heraus, wo{ph0}exportierte Notizen gehen."
|
||
|
||
#: website/public/first-investigation/index.html:185
|
||
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 ""
|
||
"Verwenden Sie REA, um eine kleine App zu überprüfen, folgen Sie der "
|
||
"Schaltfläche Notizen exportieren und überprüfen Sie ein Detail selbst."
|
||
|
||
#: website/public/first-investigation/index.html:196
|
||
msgctxt "page:first-investigation/index.html"
|
||
msgid "In this exercise"
|
||
msgstr "In dieser Übung"
|
||
|
||
#. {ph0}: <a href="#setup">
|
||
#. {ph1}: </a>
|
||
#: website/public/first-investigation/index.html:198
|
||
#, python-brace-format
|
||
msgctxt "page:first-investigation/index.html"
|
||
msgid "{ph0}1. Set up{ph1}"
|
||
msgstr "{ph0}1. Einrichten{ph1}"
|
||
|
||
#. {ph0}: <a href="#ask">
|
||
#. {ph1}: </a>
|
||
#: website/public/first-investigation/index.html:199
|
||
#, python-brace-format
|
||
msgctxt "page:first-investigation/index.html"
|
||
msgid "{ph0}2. Ask about export{ph1}"
|
||
msgstr "{ph0}2. Fragen Sie nach Export{ph1}"
|
||
|
||
#. {ph0}: <a href="#answer">
|
||
#. {ph1}: </a>
|
||
#: website/public/first-investigation/index.html:200
|
||
#, python-brace-format
|
||
msgctxt "page:first-investigation/index.html"
|
||
msgid "{ph0}3. Follow the answer{ph1}"
|
||
msgstr "{ph0}3. Folge der Antwort{ph1}"
|
||
|
||
#. {ph0}: <a href="#check">
|
||
#. {ph1}: </a>
|
||
#: website/public/first-investigation/index.html:201
|
||
#, python-brace-format
|
||
msgctxt "page:first-investigation/index.html"
|
||
msgid "{ph0}4. Check a prediction{ph1}"
|
||
msgstr "{ph0}4. Überprüfen Sie eine Vorhersage{ph1}"
|
||
|
||
#. {ph0}: <a href="#next">
|
||
#. {ph1}: </a>
|
||
#: website/public/first-investigation/index.html:202
|
||
#, python-brace-format
|
||
msgctxt "page:first-investigation/index.html"
|
||
msgid "{ph0}5. Ask another question{ph1}"
|
||
msgstr "{ph0}5. Stellen Sie eine andere Frage{ph1}"
|
||
|
||
#: website/public/first-investigation/index.html:207
|
||
msgctxt "page:first-investigation/index.html"
|
||
msgid "1. Connect your agent to REA"
|
||
msgstr "1. Verbinden Sie Ihren Agenten mit 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:216
|
||
#: website/public/first-investigation/index.html:266
|
||
#: website/public/first-investigation/index.html:388
|
||
#, 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}Ihr Codierungsagent"
|
||
|
||
#: website/public/first-investigation/index.html:221
|
||
#: website/public/first-investigation/index.html:243
|
||
#: website/public/first-investigation/index.html:271
|
||
#: website/public/first-investigation/index.html:393
|
||
#: website/public/first-investigation/index.html:435
|
||
msgctxt "page:first-investigation/index.html"
|
||
msgid "Copy"
|
||
msgstr "Kopieren"
|
||
|
||
#: website/public/first-investigation/index.html:240
|
||
msgctxt "page:first-investigation/index.html"
|
||
msgid "Or run this command in your terminal:"
|
||
msgstr "Oder führen Sie diesen Befehl in Ihrem Terminal aus:"
|
||
|
||
#: website/public/first-investigation/index.html:252
|
||
msgctxt "page:first-investigation/index.html"
|
||
msgid ""
|
||
"Review the plan, approve the setup, then restart your agent. Already "
|
||
"connected? Continue below."
|
||
msgstr ""
|
||
"Überprüfen Sie den Plan, genehmigen Sie die Einrichtung und starten Sie dann"
|
||
" Ihren Agenten neu. Bereits verbunden? Weiter unten."
|
||
|
||
#: website/public/first-investigation/index.html:258
|
||
msgctxt "page:first-investigation/index.html"
|
||
msgid "2. Ask where the CSV is written"
|
||
msgstr "2. Fragen Sie, wo der CSV geschrieben ist"
|
||
|
||
#. {ph0}: <strong>
|
||
#. {ph1}: </strong>
|
||
#: website/public/first-investigation/index.html:259
|
||
#, 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 ""
|
||
"Das Beispiel ist eine Electron-App mit sechs Dateien und einem {ph0}Notizen "
|
||
"exportieren{ph1} Schaltfläche. Ihr Agent kann seinen Code überprüfen, ohne "
|
||
"Electron zu installieren oder zu starten."
|
||
|
||
#: website/public/first-investigation/index.html:294
|
||
msgctxt "page:first-investigation/index.html"
|
||
msgid ""
|
||
"Your agent downloads the files and gives the unpacked folder to REA for "
|
||
"inspection."
|
||
msgstr ""
|
||
"Ihr Agent lädt die Dateien herunter und gibt den entpackten Ordner zur "
|
||
"Überprüfung an REA weiter."
|
||
|
||
#. {ph0}: <a class="button" href="../examples/notes-example.zip"
|
||
#. download="notes-example.zip" >
|
||
#. {ph1}: </a >
|
||
#: website/public/first-investigation/index.html:298
|
||
#, python-brace-format
|
||
msgctxt "page:first-investigation/index.html"
|
||
msgid "{ph0}Download example ZIP{ph1}"
|
||
msgstr "{ph0}Beispiel-ZIP herunterladen{ph1}"
|
||
|
||
#. {ph0}: <code>notes-example</code>
|
||
#: website/public/first-investigation/index.html:306
|
||
#, 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 ""
|
||
"Wenn Ihr Agent keine Dateien herunterladen kann, entpacken Sie dieses Archiv"
|
||
" selbst. Gib ihm den Weg zum {ph0} ordner und die gleiche Exportfrage."
|
||
|
||
#: website/public/first-investigation/index.html:313
|
||
msgctxt "page:first-investigation/index.html"
|
||
msgid "3. Follow the answer back to the code"
|
||
msgstr "3. Folgen Sie der Antwort zurück zum Code"
|
||
|
||
#: website/public/first-investigation/index.html:314
|
||
msgctxt "page:first-investigation/index.html"
|
||
msgid "Look for a short explanation with file and line references:"
|
||
msgstr ""
|
||
"Suchen Sie nach einer kurzen Erklärung mit Datei- und Zeilenreferenzen:"
|
||
|
||
#. {ph0}: <code>notes:export</code>
|
||
#. {ph1}: <code>notes.csv</code>
|
||
#. {ph2}: <code>id</code>
|
||
#. {ph3}: <code>title</code>
|
||
#: website/public/first-investigation/index.html:316
|
||
#, 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 ""
|
||
"Die Schaltfläche sendet eine {ph0} Nachricht. Der Hauptprozess formatiert "
|
||
"die Notizen als CSV und schreibt {ph1} im Download-Ordner des Benutzers. Die"
|
||
" Spalten sind {ph2} und {ph3}."
|
||
|
||
#: website/public/first-investigation/index.html:324
|
||
msgctxt "page:first-investigation/index.html"
|
||
msgid "From the button to the file writer"
|
||
msgstr "Von der Schaltfläche zum Dateischreiber"
|
||
|
||
#: website/public/first-investigation/index.html:353
|
||
msgctxt "page:first-investigation/index.html"
|
||
msgid ""
|
||
"REA’s static analysis pairs the message with its handler. The destination is"
|
||
" read from code."
|
||
msgstr ""
|
||
"Die statische Analyse von REA koppelt die Nachricht mit ihrem Handler. Das "
|
||
"Ziel wird aus dem Code gelesen."
|
||
|
||
#: website/public/first-investigation/index.html:369
|
||
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 ""
|
||
"Der Dateipfad, der Formatierer und der Schreibaufruf sind in diesem Handler "
|
||
"zusammen. Bitten Sie Ihren Agenten, diese Zeilen zu zeigen, wenn die Antwort"
|
||
" sie auslässt."
|
||
|
||
#. {ph0}: <a href="../guides/javascript/#follow" >
|
||
#. {ph1}: </a >
|
||
#: website/public/first-investigation/index.html:374
|
||
#, python-brace-format
|
||
msgctxt "page:first-investigation/index.html"
|
||
msgid "{ph0}See the full code trace and recorded REA result{ph1}."
|
||
msgstr ""
|
||
"{ph0}Sehen Sie sich den vollständigen Code-Trace und das aufgezeichnete REA-"
|
||
"Ergebnis an{ph1}."
|
||
|
||
#: website/public/first-investigation/index.html:381
|
||
msgctxt "page:first-investigation/index.html"
|
||
msgid "4. Check a prediction"
|
||
msgstr "4. Überprüfen Sie eine Vorhersage"
|
||
|
||
#: website/public/first-investigation/index.html:382
|
||
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 ""
|
||
"Die Spalten CSV werden durch ein Komma getrennt. Was passiert, wenn ein "
|
||
"Notiztitel selbst ein Komma oder Anführungszeichen enthält?"
|
||
|
||
#: website/public/first-investigation/index.html:426
|
||
msgctxt "page:first-investigation/index.html"
|
||
msgid "Run the check yourself"
|
||
msgstr "Führen Sie den Check selbst durch"
|
||
|
||
#. {ph0}: <code>notes-example</code>
|
||
#: website/public/first-investigation/index.html:427
|
||
#, python-brace-format
|
||
msgctxt "page:first-investigation/index.html"
|
||
msgid "Open a terminal in the unpacked {ph0} folder:"
|
||
msgstr "Öffnen Sie ein Terminal im entpackten {ph0} Ordner:"
|
||
|
||
#: website/public/first-investigation/index.html:449
|
||
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 ""
|
||
"Dieser Befehl verwendet eine Shell mit here-Document-Unterstützung, z. B. "
|
||
"Bash oder Zsh. Ihr Agent kann denselben JavaScript in der Shell Ihrer "
|
||
"Plattform ausführen."
|
||
|
||
#: website/public/first-investigation/index.html:457
|
||
msgctxt "page:first-investigation/index.html"
|
||
msgid "5. Ask another question"
|
||
msgstr "5. Stellen Sie eine andere Frage"
|
||
|
||
#: website/public/first-investigation/index.html:458
|
||
msgctxt "page:first-investigation/index.html"
|
||
msgid "Try a follow-up in the same conversation:"
|
||
msgstr "Versuchen Sie ein Follow-up im selben Gespräch:"
|
||
|
||
#: website/public/first-investigation/index.html:460
|
||
msgctxt "page:first-investigation/index.html"
|
||
msgid ""
|
||
"What happens if the file can’t be written? Follow the error back to the "
|
||
"page."
|
||
msgstr ""
|
||
"Was passiert, wenn die Datei nicht geschrieben werden kann? Folgen Sie dem "
|
||
"Fehler zurück zur Seite."
|
||
|
||
#: website/public/first-investigation/index.html:465
|
||
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 ""
|
||
"Oder geben Sie Ihrem Agenten eine eigene App und fragen Sie nach einer "
|
||
"Schaltfläche, Datei oder einem Verhalten."
|
||
|
||
#. {ph0}: <a href="../showcase/notion/">
|
||
#. {ph1}: </a >
|
||
#. {ph2}: <span >
|
||
#. {ph3}: </span >
|
||
#: website/public/first-investigation/index.html:470
|
||
#, 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}Wie Notion Text und HTML kopiert{ph1}{ph2}Folgen Sie einer "
|
||
"Zwischenablage-Funktion in einer gepackten Electron-App.{ph3}"
|
||
|
||
#. {ph0}: <a href="../showcase/dx-ball/" >
|
||
#. {ph1}: </a >
|
||
#. {ph2}: <span >
|
||
#. {ph3}: </span >
|
||
#: website/public/first-investigation/index.html:476
|
||
#, 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}Wie DX-Ball die Stereoklangpositionierung berechnet{ph1}{ph2}Lesen Sie "
|
||
"die Originalanleitung und die Überprüfungen der Rekonstruktion.{ph3}"
|
||
|
||
#. {ph0}: <a href="../faq/#troubleshooting" >
|
||
#. {ph1}: </a >
|
||
#. {ph2}: <span >
|
||
#. {ph3}: </span >
|
||
#: website/public/first-investigation/index.html:484
|
||
#, 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}Fehlerbehebung bei der Einrichtung oder Analyse{ph1}{ph2}Aktualisieren "
|
||
"Sie REA und überprüfen Sie die Verbindung, wenn Sie nicht weiterkommen.{ph3}"
|
||
|
||
#: website/public/first-investigation/index.html:6
|
||
msgctxt "page:first-investigation/index.html"
|
||
msgid "Your First Reverse Engineering Investigation — REA"
|
||
msgstr "Ihre erste Reverse Engineering Untersuchung - 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 ""
|
||
"Probieren Sie REA in einer kleinen Notizen-App aus. Richten Sie Ihren "
|
||
"Agenten ein, fragen Sie, wohin exportierte Notizen gehen, und überprüfen Sie"
|
||
" den Formatierer CSV mit einem Beispieltitel."
|
||
|
||
#: website/public/first-investigation/index.html:195
|
||
msgctxt "page:first-investigation/index.html"
|
||
msgid "On this page"
|
||
msgstr "Auf dieser Seite"
|
||
|
||
#: website/public/first-investigation/index.html:205
|
||
msgctxt "page:first-investigation/index.html"
|
||
msgid "Your first REA investigation"
|
||
msgstr "Ihre erste REA-Untersuchung"
|
||
|
||
#: website/public/first-investigation/index.html:221
|
||
msgctxt "page:first-investigation/index.html"
|
||
msgid "Copy REA installation prompt"
|
||
msgstr "Installationsaufforderung für REA kopieren"
|
||
|
||
#: website/public/first-investigation/index.html:243
|
||
msgctxt "page:first-investigation/index.html"
|
||
msgid "Copy setup command"
|
||
msgstr "Setup-Befehl kopieren"
|
||
|
||
#: website/public/first-investigation/index.html:271
|
||
msgctxt "page:first-investigation/index.html"
|
||
msgid "Copy Notes investigation prompt"
|
||
msgstr "Aufforderung zur Untersuchung von Notizen kopieren"
|
||
|
||
#: website/public/first-investigation/index.html:393
|
||
msgctxt "page:first-investigation/index.html"
|
||
msgid "Copy CSV check prompt"
|
||
msgstr "Kopiere CSV Eingabeaufforderung prüfen"
|
||
|
||
#: website/public/first-investigation/index.html:435
|
||
msgctxt "page:first-investigation/index.html"
|
||
msgid "Copy formatter check command"
|
||
msgstr "Befehl Formatierungsprüfung kopieren"
|
||
|
||
#: website/public/first-investigation/index.html:510
|
||
msgctxt "page:first-investigation/index.html"
|
||
msgid "Back to top"
|
||
msgstr "Nach oben"
|
||
|
||
#: website/public/get-started/index.html:99
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "Skip to content"
|
||
msgstr "Zum Inhalt springen"
|
||
|
||
#. {ph0}: <a href="../">
|
||
#. {ph1}: </a>
|
||
#: website/public/get-started/index.html:181
|
||
#, python-brace-format
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "{ph0}Home{ph1} / Get started"
|
||
msgstr "{ph0}Startseite{ph1} / Erste Schritte"
|
||
|
||
#: website/public/get-started/index.html:182
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "Set up REA."
|
||
msgstr "Richten Sie REA ein ."
|
||
|
||
#: website/public/get-started/index.html:183
|
||
msgctxt "page:get-started/index.html"
|
||
msgid ""
|
||
"Connect REA to your coding agent, or inspect a local app from your terminal."
|
||
msgstr ""
|
||
"Verbinden Sie REA mit Ihrem Codierungsagenten oder überprüfen Sie eine "
|
||
"lokale App von Ihrem Terminal aus."
|
||
|
||
#: website/public/get-started/index.html:195
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "Open a terminal and check:"
|
||
msgstr "Öffnen Sie ein Terminal und überprüfen Sie:"
|
||
|
||
#: website/public/get-started/index.html:198
|
||
#: website/public/get-started/index.html:455
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "Terminal"
|
||
msgstr "Terminal"
|
||
|
||
#: website/public/get-started/index.html:199
|
||
#: website/public/get-started/index.html:220
|
||
#: website/public/get-started/index.html:243
|
||
#: website/public/get-started/index.html:259
|
||
#: website/public/get-started/index.html:274
|
||
#: website/public/get-started/index.html:289
|
||
#: website/public/get-started/index.html:305
|
||
#: website/public/get-started/index.html:324
|
||
#: website/public/get-started/index.html:410
|
||
#: website/public/get-started/index.html:456
|
||
#: website/public/get-started/index.html:532
|
||
#: website/public/get-started/index.html:591
|
||
#: website/public/get-started/index.html:632
|
||
#: website/public/get-started/index.html:664
|
||
#: website/public/get-started/index.html:721
|
||
#: website/public/get-started/index.html:762
|
||
#: website/public/get-started/index.html:802
|
||
#: website/public/get-started/index.html:818
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "Copy"
|
||
msgstr "Kopieren"
|
||
|
||
#. {ph0}: <strong>
|
||
#. {ph1}: </strong>
|
||
#: website/public/get-started/index.html:216
|
||
#, python-brace-format
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "{ph0}Windows (PowerShell){ph1}"
|
||
msgstr "{ph0} Windows (Datenblatt){ph1}"
|
||
|
||
#: website/public/get-started/index.html:219
|
||
#: website/public/get-started/index.html:242
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "Windows PowerShell"
|
||
msgstr "Windows Datenblatt"
|
||
|
||
#. {ph0}: <code>node -v</code>
|
||
#: website/public/get-started/index.html:231
|
||
#, 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 ""
|
||
"Geben Sie Y ein, wenn Sie aufgefordert werden, die Bedingungen zu "
|
||
"akzeptieren. Schließen Sie PowerShell, öffnen Sie es erneut und führen Sie "
|
||
"es dann aus {ph0}."
|
||
|
||
#. {ph0}: <em>
|
||
#. {ph1}: </em>
|
||
#. {ph2}: <code>npx</code>
|
||
#: website/public/get-started/index.html:235
|
||
#, 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 ""
|
||
"Wenn PowerShell später sagt {ph0}\"das Ausführen von Skripten ist auf diesem"
|
||
" System deaktiviert.\"{ph1} wenn du rennst {ph2}, führen Sie dies einmal aus"
|
||
" und versuchen Sie es erneut:"
|
||
|
||
#: website/public/get-started/index.html:255
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "If you use Homebrew:"
|
||
msgstr "Wenn Sie Homebrew verwenden :"
|
||
|
||
#: website/public/get-started/index.html:258
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "macOS · Homebrew"
|
||
msgstr "MODELL: macOS · Homebrew"
|
||
|
||
#: website/public/get-started/index.html:270
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "Otherwise:"
|
||
msgstr "Sonst:"
|
||
|
||
#: website/public/get-started/index.html:285
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "Close Terminal, open it again, then:"
|
||
msgstr "Terminal schließen, wieder öffnen, dann:"
|
||
|
||
#. {ph0}: <code>curl</code>
|
||
#. {ph1}: <code>unzip</code>
|
||
#. {ph2}: <code>sudo apt install curl unzip</code>
|
||
#: website/public/get-started/index.html:316
|
||
#, 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 ""
|
||
"Der Installateur benötigt {ph0} und {ph1} (auf Debian / Ubuntu: {ph2}). "
|
||
"Schließen Sie das Terminal, öffnen Sie es erneut und dann:"
|
||
|
||
#. {ph0}: <code>nodejs</code>
|
||
#. {ph1}: <code>node -v</code>
|
||
#: website/public/get-started/index.html:336
|
||
#, 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 ""
|
||
"Ihre eigene Distribution {ph0} paket ist oft älter als 22.19, also "
|
||
"überprüfen Sie {ph1} wenn Sie es stattdessen verwenden."
|
||
|
||
#. {ph0}: <a href="https://nodejs.org/en/download">
|
||
#. {ph1}: </a>
|
||
#: website/public/get-started/index.html:340
|
||
#, python-brace-format
|
||
msgctxt "page:get-started/index.html"
|
||
msgid ""
|
||
"Prefer a regular installer? Download the LTS version from "
|
||
"{ph0}nodejs.org{ph1}."
|
||
msgstr ""
|
||
"Bevorzugen Sie einen regulären Installer? Laden Sie die LTS-Version herunter"
|
||
" von {ph0}nodejs.org{ph1}."
|
||
|
||
#: website/public/get-started/index.html:348
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "Setup options"
|
||
msgstr "Setup-Optionen"
|
||
|
||
#. {ph0}: <a href="#agent">
|
||
#. {ph1}: </a>
|
||
#: website/public/get-started/index.html:350
|
||
#, python-brace-format
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "{ph0}Connect your coding agent{ph1}"
|
||
msgstr "{ph0}Verbinden Sie Ihren Codierungsagenten{ph1}"
|
||
|
||
#. {ph0}: <a href="#terminal">
|
||
#. {ph1}: </a>
|
||
#: website/public/get-started/index.html:351
|
||
#, python-brace-format
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "{ph0}Use the CLI{ph1}"
|
||
msgstr "{ph0}Verwenden Sie den CLI {ph1}"
|
||
|
||
#. {ph0}: <a href="#native">
|
||
#. {ph1}: </a>
|
||
#: website/public/get-started/index.html:352
|
||
#, python-brace-format
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "{ph0}Set up native analysis{ph1}"
|
||
msgstr "{ph0}Analyse von Maschinencode-Programmen einrichten{ph1}"
|
||
|
||
#. {ph0}: <a href="#help">
|
||
#. {ph1}: </a>
|
||
#: website/public/get-started/index.html:353
|
||
#, python-brace-format
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "{ph0}Getting help{ph1}"
|
||
msgstr "{ph0}Hilfe bekommen{ph1}"
|
||
|
||
#: website/public/get-started/index.html:358
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "Connect your coding agent"
|
||
msgstr "Verbinden Sie Ihren Codierungsagenten"
|
||
|
||
#: website/public/get-started/index.html:359
|
||
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 ""
|
||
"Führen Sie Setup aus, um REA mit Ihrem Codierungsagenten zu verbinden. Zu "
|
||
"den Clientoptionen gehören Claude Code, Codex, Cursor, Gemini CLI, Windsurf,"
|
||
" Grok Build und andere unterstützte MCP-Clients. Der Connector von Grok Bot "
|
||
"wird aus seinem Chat hinzugefügt."
|
||
|
||
#: website/public/get-started/index.html:366
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "New to coding agents?"
|
||
msgstr "Neu bei Codierungsagenten?"
|
||
|
||
#: website/public/get-started/index.html:367
|
||
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 ""
|
||
"Ein Codierungsagent ist ein KI-Assistent, der auf Ihrem Computer statt in "
|
||
"einem Browser-Tab funktioniert. Es kann Dateien lesen und Befehle ausführen "
|
||
"und fragt, bevor Änderungen vorgenommen werden. REA gibt es Werkzeuge für "
|
||
"das Reverse Engineering."
|
||
|
||
#: website/public/get-started/index.html:373
|
||
msgctxt "page:get-started/index.html"
|
||
msgid ""
|
||
"If you don't have one yet, pick one, follow its install page and sign in:"
|
||
msgstr ""
|
||
"Wenn Sie noch keine haben, wählen Sie eine aus, folgen Sie der "
|
||
"Installationsseite und melden Sie sich an:"
|
||
|
||
#. {ph0}: <strong >
|
||
#. {ph1}: <a href="https://code.claude.com/docs/en/setup" >
|
||
#. {ph2}: </a >
|
||
#. {ph3}: </strong >
|
||
#: website/public/get-started/index.html:378
|
||
#, 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} MODELL: Claude Code {ph2}{ph3} von Anthropic . Benötigt einen "
|
||
"kostenpflichtigen Claude-Plan."
|
||
|
||
#. {ph0}: <strong >
|
||
#. {ph1}: <a href="https://github.com/openai/codex">
|
||
#. {ph2}: </a>
|
||
#. {ph3}: </strong >
|
||
#: website/public/get-started/index.html:386
|
||
#, 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} MODELL: Codex {ph2}{ph3} von OpenAI . Melden Sie sich mit Ihrem "
|
||
"ChatGPT-Konto an."
|
||
|
||
#. {ph0}: <strong >
|
||
#. {ph1}: <a href="https://opencode.ai/docs">
|
||
#. {ph2}: </a>
|
||
#. {ph3}: </strong >
|
||
#: website/public/get-started/index.html:392
|
||
#, 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} MODELL: OpenCode {ph2}{ph3}, OpenSource. Verbinden Sie den "
|
||
"Modellanbieter Ihrer Wahl."
|
||
|
||
#: website/public/get-started/index.html:398
|
||
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 ""
|
||
"Öffnen Sie es dann und kopieren Sie die folgende Eingabeaufforderung hinein."
|
||
" Der Agent führt das Setup von REA aus und zeigt Ihnen den Plan an, bevor "
|
||
"Sie etwas ändern."
|
||
|
||
#. {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:405
|
||
#, 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}Ihr Codierungsagent"
|
||
|
||
#: website/public/get-started/index.html:430
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "Or run setup yourself"
|
||
msgstr "Oder führen Sie das Setup selbst aus"
|
||
|
||
#: website/public/get-started/index.html:432
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "How do I open a terminal?"
|
||
msgstr "Wie öffne ich ein Terminal?"
|
||
|
||
#. {ph0}: <strong>
|
||
#. {ph1}: </strong>
|
||
#. {ph2}: <em>
|
||
#. {ph3}: </em>
|
||
#: website/public/get-started/index.html:434
|
||
#, 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} MODELL: Windows :{ph1} öffnen Sie das Startmenü, geben Sie ein "
|
||
"{ph2}PowerShell{ph3} und drücken Sie die Eingabetaste."
|
||
|
||
#. {ph0}: <strong>
|
||
#. {ph1}: </strong>
|
||
#. {ph2}: <kbd>⌘</kbd>
|
||
#. {ph3}: <kbd>Space</kbd>
|
||
#. {ph4}: <em>
|
||
#. {ph5}: </em>
|
||
#: website/public/get-started/index.html:438
|
||
#, 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} MODELL: macOS :{ph1} drücken {ph2} {ph3}, Art {ph4}Terminal{ph5} und "
|
||
"drücken Sie die Eingabetaste."
|
||
|
||
#. {ph0}: <strong>
|
||
#. {ph1}: </strong>
|
||
#. {ph2}: <kbd>Ctrl</kbd>
|
||
#. {ph3}: <kbd>Alt</kbd>
|
||
#. {ph4}: <kbd>T</kbd>
|
||
#: website/public/get-started/index.html:442
|
||
#, python-brace-format
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "{ph0}Linux:{ph1} press {ph2} {ph3} {ph4} on most desktops."
|
||
msgstr ""
|
||
"{ph0} MODELL: Linux :{ph1} drücken {ph2} {ph3} {ph4} auf den meisten "
|
||
"Desktops."
|
||
|
||
#. {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:447
|
||
#, 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 ""
|
||
"Fügen Sie einen Befehl mit ein {ph0} {ph1} ( macOS ) : {ph2} {ph3}; Linux "
|
||
"Anschlussklemmen: {ph4} {ph5} {ph6}), und drücken Sie dann die Eingabetaste."
|
||
|
||
#: website/public/get-started/index.html:468
|
||
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 ""
|
||
"Wählen Sie Ihren Kunden und überprüfen Sie den Einrichtungsplan. REA fügt "
|
||
"seine MCP-Verbindung und die passende Ermittlungsfähigkeit hinzu und sichert"
|
||
" die vorhandene Konfiguration. Es fragt nach, bevor die Änderungen "
|
||
"übernommen werden."
|
||
|
||
#: website/public/get-started/index.html:473
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "Restart your client when setup finishes."
|
||
msgstr "Starten Sie Ihren Client neu, wenn das Setup abgeschlossen ist."
|
||
|
||
#: website/public/get-started/index.html:475
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "How do I restart my client?"
|
||
msgstr "Wie starte ich meinen Client neu?"
|
||
|
||
#. {ph0}: <strong>
|
||
#. {ph1}: </strong>
|
||
#. {ph2}: <kbd>⌘</kbd>
|
||
#. {ph3}: <kbd>Q</kbd>
|
||
#: website/public/get-started/index.html:476
|
||
#, 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}Desktop-Anwendungen{ph1} (Claude Desktop, Cursor , Windsurf , VS Code):"
|
||
" Beenden Sie die App vollständig und öffnen Sie sie erneut. Das Fenster zu "
|
||
"schließen reicht nicht aus. Auf macOS drücken Sie {ph2} {ph3}; auf Windows "
|
||
"beenden Sie auch das Taskleistensymbol, falls vorhanden."
|
||
|
||
#. {ph0}: <strong>
|
||
#. {ph1}: </strong>
|
||
#: website/public/get-started/index.html:483
|
||
#, 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}Terminalagenten{ph1} ( Claude Code , Codex , Gemini CLI ): Beenden Sie "
|
||
"die Sitzung und starten Sie sie erneut."
|
||
|
||
#: website/public/get-started/index.html:488
|
||
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 ""
|
||
"Geben Sie Ihrem Agenten einen Zielpfad und eine spezifische Frage. Für eine "
|
||
"JavaScript- oder Electron-App können Sie mit beginnen:"
|
||
|
||
#. {ph0}: <code>/absolute/path/to/app</code>
|
||
#: website/public/get-started/index.html:493
|
||
#, 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 ""
|
||
"Schau dir an {ph0} und finden Sie heraus, wie es Daten exportiert. Zeigen "
|
||
"Sie die Einstiegspunkte, Aufrufe und Abhängigkeiten mit den "
|
||
"Quellspeicherorten für Ihre Ergebnisse an."
|
||
|
||
#: website/public/get-started/index.html:499
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "Replace the path with your local target."
|
||
msgstr "Ersetzen Sie den Pfad durch Ihr lokales Ziel."
|
||
|
||
#: website/public/get-started/index.html:501
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "How do I get a folder's full path?"
|
||
msgstr "Wie erhalte ich den vollständigen Pfad eines Ordners?"
|
||
|
||
#. {ph0}: <strong>
|
||
#. {ph1}: </strong>
|
||
#. {ph2}: <em>
|
||
#. {ph3}: </em>
|
||
#: website/public/get-started/index.html:503
|
||
#, 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} MODELL: Windows :{ph1} klicken Sie im Datei-Explorer mit der rechten "
|
||
"Maustaste auf den Ordner und wählen Sie {ph2}Als Pfad kopieren{ph3}. Halten "
|
||
"Sie bei Windows 10 die Umschalttaste gedrückt, während Sie mit der rechten "
|
||
"Maustaste klicken."
|
||
|
||
#. {ph0}: <strong>
|
||
#. {ph1}: </strong>
|
||
#. {ph2}: <em>
|
||
#. {ph3}: </em>
|
||
#: website/public/get-started/index.html:508
|
||
#, 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} MODELL: macOS :{ph1} klicken Sie im Finder mit der rechten Maustaste "
|
||
"auf den Ordner, halten Sie die Option gedrückt und wählen Sie {ph2}Kopiere "
|
||
"\"...\" als Pfadnamen{ph3}."
|
||
|
||
#. {ph0}: <strong>
|
||
#. {ph1}: </strong>
|
||
#: website/public/get-started/index.html:512
|
||
#, 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}Jedes System:{ph1} ziehen Sie den Ordner in ein Terminalfenster und "
|
||
"sein Pfad wird angezeigt."
|
||
|
||
#: website/public/get-started/index.html:517
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "In a terminal, put quotes around a path that contains spaces."
|
||
msgstr ""
|
||
"Setzen Sie in einem Terminal Anführungszeichen um einen Pfad, der "
|
||
"Leerzeichen enthält."
|
||
|
||
#: website/public/get-started/index.html:524
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "Use the CLI"
|
||
msgstr "Verwenden Sie den CLI"
|
||
|
||
#: website/public/get-started/index.html:525
|
||
msgctxt "page:get-started/index.html"
|
||
msgid ""
|
||
"Analyze a JavaScript or Electron application folder or ASAR archive without "
|
||
"running the app:"
|
||
msgstr ""
|
||
"Analysieren Sie einen JavaScript- oder Electron-Anwendungsordner oder ein "
|
||
"ASAR-Archiv, ohne die App auszuführen:"
|
||
|
||
#: website/public/get-started/index.html:531
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "Static application analysis"
|
||
msgstr "Statische Anwendungsanalyse"
|
||
|
||
#. {ph0}: <code>.asar</code>
|
||
#. {ph1}: <code>"D:/apps/example"</code>
|
||
#: website/public/get-started/index.html:544
|
||
#, 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 ""
|
||
"Ersetzen Sie den Pfad durch Ihr extrahiertes App-Verzeichnis oder {ph0} "
|
||
"Datei. Auf Windows ein Pfad wie {ph1} arbeitet hier."
|
||
|
||
#: website/public/get-started/index.html:550
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "Where do I find an app's .asar file?"
|
||
msgstr "Wo finde ich eine App .asar-Datei?"
|
||
|
||
#. {ph0}: <code>resources</code>
|
||
#: website/public/get-started/index.html:551
|
||
#, python-brace-format
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "Electron apps usually keep it in a {ph0} folder:"
|
||
msgstr "Electron Apps halten es normalerweise in einem {ph0} Ordner:"
|
||
|
||
#. {ph0}: <strong>
|
||
#. {ph1}: </strong>
|
||
#. {ph2}: <code
|
||
#. >C:\Users\<you>\AppData\Local\Programs\<App>\resources\app.asar</code
|
||
#. >
|
||
#: website/public/get-started/index.html:556
|
||
#, python-brace-format
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "{ph0}Windows:{ph1} {ph2}"
|
||
msgstr "{ph0} MODELL: Windows :{ph1} {ph2}"
|
||
|
||
#. {ph0}: <strong>
|
||
#. {ph1}: </strong>
|
||
#. {ph2}: <code
|
||
#. >/Applications/<App>.app/Contents/Resources/app.asar</code >
|
||
#. {ph3}: <em>
|
||
#. {ph4}: </em>
|
||
#: website/public/get-started/index.html:562
|
||
#, 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} MODELL: macOS :{ph1} {ph2} (klicken Sie mit der rechten Maustaste auf "
|
||
"die App und wählen Sie {ph3}Packungsinhalt anzeigen{ph4})"
|
||
|
||
#. {ph0}: <strong>
|
||
#. {ph1}: </strong>
|
||
#. {ph2}: <code>/opt/<App>/resources/app.asar</code>
|
||
#: website/public/get-started/index.html:570
|
||
#, python-brace-format
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "{ph0}Linux:{ph1} often {ph2}"
|
||
msgstr "{ph0} MODELL: Linux :{ph1} oft {ph2}"
|
||
|
||
#. {ph0}: <code>app.asar</code>
|
||
#: website/public/get-started/index.html:575
|
||
#, python-brace-format
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "Some apps install elsewhere. Search the app's folder for {ph0}."
|
||
msgstr ""
|
||
"Einige Apps werden an anderer Stelle installiert. Durchsuchen Sie den Ordner"
|
||
" der App nach {ph0}."
|
||
|
||
#: website/public/get-started/index.html:580
|
||
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 ""
|
||
"Das Ergebnis identifiziert die App, zeigt Verbindungen zwischen Modulen und "
|
||
"gibt deren Quellorte an. Verbindungen, die REA nicht auflösen kann, sind im "
|
||
"Ergebnis markiert."
|
||
|
||
#. {ph0}: <code>rea</code>
|
||
#: website/public/get-started/index.html:585
|
||
#, python-brace-format
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "If you'd like a permanent {ph0} command in your shell:"
|
||
msgstr "Wenn Sie eine dauerhafte {ph0} befehl in Ihrer Shell:"
|
||
|
||
#: website/public/get-started/index.html:590
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "Install the CLI"
|
||
msgstr "Installieren Sie den CLI"
|
||
|
||
#. {ph0}: <a href="../guides/javascript/" >
|
||
#. {ph1}: </a >
|
||
#: website/public/get-started/index.html:602
|
||
#, python-brace-format
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "{ph0}Continue with the JavaScript application guide{ph1}"
|
||
msgstr "{ph0}Fahren Sie mit dem JavaScript-Anwendungshandbuch fort{ph1}"
|
||
|
||
#: website/public/get-started/index.html:610
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "Set up native analysis"
|
||
msgstr "Analyse von Maschinencode-Programmen einrichten"
|
||
|
||
#: website/public/get-started/index.html:611
|
||
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 ""
|
||
"Maschinencodeprogramme benötigen ein lokales Analysewerkzeug. Wählen und "
|
||
"konfigurieren Sie eine unten, dann geben Sie REA Ihre ausführbare Datei oder"
|
||
" Bibliothek."
|
||
|
||
#: website/public/get-started/index.html:616
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "Choose a tool: Ghidra, Hopper or IDA"
|
||
msgstr "Wählen Sie ein Werkzeug: Ghidra , Hopper oder IDA"
|
||
|
||
#: website/public/get-started/index.html:621
|
||
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 ""
|
||
"Verwenden Sie einen vorhandenen Ghidra 12.1.x-Installation und ein 64-Bit-"
|
||
"JDK 21 oder neuer auf Linux oder macOS, auf x64 oder arm64. Ihre Ghidra-"
|
||
"Installation benötigt einen nativen Dekompiler für Ihre Host-Architektur. "
|
||
"Legen Sie die Pfade fest, bevor Sie Setup ausführen:"
|
||
|
||
#: website/public/get-started/index.html:628
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "Connect your Ghidra installation"
|
||
msgstr "Verbinden Sie Ihre Ghidra-Installation"
|
||
|
||
#: website/public/get-started/index.html:631
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "Ghidra connection · macOS / Linux"
|
||
msgstr "Ghidra-Anschluss · macOS / Linux-Anschluss"
|
||
|
||
#: website/public/get-started/index.html:646
|
||
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 ""
|
||
"Ersetzen Sie beide Pfade durch Ihre vorhandenen Installationen. Setup "
|
||
"überprüft sie und zeichnet gültige Einstellungen für Ihren ausgewählten "
|
||
"Client auf. Auf Linux arm64 müssen Sie möglicherweise den nativen Dekompiler"
|
||
" von Ghidra separat erstellen."
|
||
|
||
#: website/public/get-started/index.html:654
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "Connect Ghidra on Windows"
|
||
msgstr "Verbinden Sie Ghidra mit Windows"
|
||
|
||
#: website/public/get-started/index.html:655
|
||
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 bietet experimentelle schreibgeschützte Unterstützung für native"
|
||
" x86- und x64-PE-Anwendungen und DLLs auf festen lokalen NTFS-Laufwerken. "
|
||
"Verwenden Sie einen vorhandenen Ghidra 12.1.x-Installation und ein 64-Bit-"
|
||
"JDK 21 oder neuer:"
|
||
|
||
#: website/public/get-started/index.html:663
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "Ghidra connection · Windows PowerShell"
|
||
msgstr "Ghidra-Verbindung * Windows-PowerShell"
|
||
|
||
#: website/public/get-started/index.html:678
|
||
msgctxt "page:get-started/index.html"
|
||
msgid ""
|
||
"Replace the two paths with your installations, then review setup's plan."
|
||
msgstr ""
|
||
"Ersetzen Sie die beiden Pfade durch Ihre Installationen und überprüfen Sie "
|
||
"dann den Setup-Plan."
|
||
|
||
#: website/public/get-started/index.html:688
|
||
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 ""
|
||
"Verbinden Sie Hopper mit macOS oder Linux. Führen Sie den obigen Setup-"
|
||
"Befehl aus. Es erkennt eine vorhandene Installation oder bietet einen "
|
||
"Installationsplan zur Genehmigung an."
|
||
|
||
#: website/public/get-started/index.html:693
|
||
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 ""
|
||
"Führen Sie auf dem macOS die erste Auswahl des Demo-Modus oder der "
|
||
"Lizenzaktivierung des Hopper aus, bevor Sie eine unbeaufsichtigte Analyse "
|
||
"durchführen."
|
||
|
||
#: website/public/get-started/index.html:702
|
||
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 ""
|
||
"Die verifizierten IDA-Setups verwenden Windows mit einer vorhandenen MCP-"
|
||
"Registrierung für eine angehängte GUI oder eine Headless-Datenbank. Die "
|
||
"kopflose Analyse von Linux und macOS bleibt ungeprüft."
|
||
|
||
#: website/public/get-started/index.html:708
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "Connect an existing IDA MCP registration"
|
||
msgstr "Verbinden Sie ein vorhandenes IDA MCP Registrierung"
|
||
|
||
#. {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:711
|
||
#, 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 ""
|
||
"Halten Sie den Upstream-Server am Laufen {ph0}, {ph1} und optional {ph2} in "
|
||
"einer JSON-Datei. Eine bestehende {ph3} objekt mit einem {ph4} der Eintritt "
|
||
"wird ebenfalls akzeptiert. Zeigen Sie vor dem Einrichten mit REA auf diese "
|
||
"Datei:"
|
||
|
||
#: website/public/get-started/index.html:720
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "IDA connection · Windows PowerShell"
|
||
msgstr "IDA-Verbindung * Windows-PowerShell"
|
||
|
||
#. {ph0}: <code>"mode": "headless"</code>
|
||
#: website/public/get-started/index.html:735
|
||
#, 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 ""
|
||
"Das angehängte Profil verwendet Upstream-Legacy-1.4.0-Tools, wobei die "
|
||
"ursprüngliche Binärdatei bereits in IDA geöffnet ist. Das Headless-Profil "
|
||
"verwendet die vorgeschaltete Datenbank-Supervisor-API und eine Registrierung"
|
||
" bei {ph0}; die echte Überprüfung umfasst einen IDA 9.3 Windows "
|
||
"x64-Supervisor. Der Arzt überprüft die Registrierung, ohne IDA zu starten."
|
||
|
||
#. {ph0}: <code>--provider ida</code>
|
||
#. {ph1}: <code>REA_IDA_MCP_CONFIG</code>
|
||
#: website/public/get-started/index.html:744
|
||
#, 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 ""
|
||
"Geben Sie REA den ursprünglichen ausführbaren Pfad mit {ph0} in einer CLI-"
|
||
"Abfrage. Für einen Agenten, einschließen {ph1} in der Umgebung der REA-"
|
||
"Registrierung und wählen Sie IDA beim Öffnen der Binärdatei."
|
||
|
||
#: website/public/get-started/index.html:756
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "For an existing Ghidra setup, inspect a function with:"
|
||
msgstr "Überprüfen Sie für ein vorhandenes Ghidra-Setup eine Funktion mit:"
|
||
|
||
#: website/public/get-started/index.html:761
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "Function analysis"
|
||
msgstr "Funktionsanalyse"
|
||
|
||
#. {ph0}: <code>main</code>
|
||
#: website/public/get-started/index.html:774
|
||
#, python-brace-format
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "Replace {ph0} with the function name or address you want to inspect."
|
||
msgstr ""
|
||
"Ersetzen {ph0} mit dem Funktionsnamen oder der Adresse, die Sie überprüfen "
|
||
"möchten."
|
||
|
||
#: website/public/get-started/index.html:779
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "How native analysis sessions work"
|
||
msgstr "Wie die Analyse von Maschinencode-Programmsitzungen funktioniert"
|
||
|
||
#: website/public/get-started/index.html:780
|
||
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 ""
|
||
"Jeder Befehl CLI importiert und analysiert die Binärdatei und schließt dann "
|
||
"seine Sitzung. Die MCP-Abfragen Ihres Agenten verwenden die importierte "
|
||
"Binärdatei wieder, während diese Sitzung geöffnet ist."
|
||
|
||
#. {ph0}: <a href="../guides/native/">
|
||
#. {ph1}: </a>
|
||
#: website/public/get-started/index.html:786
|
||
#, 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}Folgen Sie einer Analyse von Maschinencode-Programmen Beispiel{ph1} um "
|
||
"zu sehen, wie das Funktionsergebnis zu einer wiederhergestellten Berechnung "
|
||
"führt."
|
||
|
||
#: website/public/get-started/index.html:793
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "Getting help"
|
||
msgstr "Hilfe bekommen"
|
||
|
||
#: website/public/get-started/index.html:794
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "If your agent doesn't see REA"
|
||
msgstr "Wenn Ihr Agent REA nicht sieht"
|
||
|
||
#. {ph0}: <code>doctor</code>
|
||
#: website/public/get-started/index.html:795
|
||
#, 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 ""
|
||
"Starten Sie den Client nach dem Setup neu oder verbinden Sie ihn erneut. "
|
||
"Überprüfen Sie die REA-Verbindung mit {ph0}; für Codex :"
|
||
|
||
#: website/public/get-started/index.html:801
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "Check one client"
|
||
msgstr "Überprüfen Sie einen Client"
|
||
|
||
#: website/public/get-started/index.html:813
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "If a provider needs attention"
|
||
msgstr "Wenn ein Anbieter Aufmerksamkeit braucht"
|
||
|
||
#: website/public/get-started/index.html:814
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "Check the provider you're using. For Ghidra:"
|
||
msgstr "Überprüfen Sie den Anbieter, den Sie verwenden. Für Ghidra :"
|
||
|
||
#: website/public/get-started/index.html:817
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "Check one provider"
|
||
msgstr "Überprüfen Sie einen Anbieter"
|
||
|
||
#: website/public/get-started/index.html:829
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "The report gives the failed check and a suggested next step."
|
||
msgstr ""
|
||
"Der Bericht enthält die fehlgeschlagene Prüfung und einen Vorschlag für den "
|
||
"nächsten Schritt."
|
||
|
||
#. {ph0}: <a href="../faq/">
|
||
#. {ph1}: </a >
|
||
#. {ph2}: <span>
|
||
#. {ph3}: </span>
|
||
#: website/public/get-started/index.html:831
|
||
#, 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 HÄUFIG GESTELLTE FRAGEN{ph1}{ph2}Schnelle Antworten auf Updates, "
|
||
"Agenten und Analysen.{ph3}"
|
||
|
||
#. {ph0}: <a href="../guides/">
|
||
#. {ph1}: </a >
|
||
#. {ph2}: <span >
|
||
#. {ph3}: </span >
|
||
#: website/public/get-started/index.html:835
|
||
#, 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}Wählen Sie einen Untersuchungsleitfaden{ph1}{ph2}Arbeitsbeispiele für "
|
||
"eine Binärdatei, eine Electron-App und einen Browser.{ph3}"
|
||
|
||
#. {ph0}: <a href="https://github.com/morluto/rea/issues">
|
||
#. {ph1}: </a >
|
||
#. {ph2}: <span>
|
||
#. {ph3}: </span>
|
||
#: website/public/get-started/index.html:842
|
||
#, 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} Probleme mit GitHub{ph1}{ph2}Melden Sie ein Problem mit dem Befehl und"
|
||
" der Diagnose.{ph3}"
|
||
|
||
#. {ph0}: <a href="https://discord.gg/GkcryMnJDM">
|
||
#. {ph1}: </a >
|
||
#. {ph2}: <span>
|
||
#. {ph3}: </span>
|
||
#: website/public/get-started/index.html:846
|
||
#, 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 Gemeinschaft{ph1}{ph2}Fragen, Untersuchungen und laufende "
|
||
"Arbeiten.{ph3}"
|
||
|
||
#: website/public/get-started/index.html:6
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "Install REA and Set Up Your Coding Agent"
|
||
msgstr "Installieren Sie REA und richten Sie Ihren Codierungsagenten ein"
|
||
|
||
#: 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 ""
|
||
"Verbinden Sie REA mit Ihrem Codierungsagenten oder überprüfen Sie eine "
|
||
"lokale JavaScript- oder Electron-App vom Terminal aus. Einrichtung, erste "
|
||
"Fragen und Anleitungen für native Anbieter."
|
||
|
||
#: website/public/get-started/index.html:199
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "Copy Node.js version check"
|
||
msgstr "Node.js Versionsprüfung kopieren"
|
||
|
||
#: website/public/get-started/index.html:220
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "Copy Node.js installation command for Windows"
|
||
msgstr "Kopieren Sie den Node.js-Installationsbefehl für Windows"
|
||
|
||
#: website/public/get-started/index.html:243
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "Copy PowerShell execution policy command"
|
||
msgstr "Befehl zum Kopieren der PowerShell-Ausführungsrichtlinie"
|
||
|
||
#: website/public/get-started/index.html:259
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "Copy Homebrew Node.js installation command"
|
||
msgstr "Kopieren Homebrew Node.js Installationsbefehl"
|
||
|
||
#: website/public/get-started/index.html:274
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "Copy fnm installation command for macOS"
|
||
msgstr "Kopieren Sie den fnm-Installationsbefehl für macOS"
|
||
|
||
#: website/public/get-started/index.html:289
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "Copy Node.js 24 commands for macOS"
|
||
msgstr "Kopieren Sie Node.js 24 Befehle für macOS"
|
||
|
||
#: website/public/get-started/index.html:305
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "Copy fnm installation command for Linux"
|
||
msgstr "Kopieren Sie den fnm-Installationsbefehl für Linux"
|
||
|
||
#: website/public/get-started/index.html:324
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "Copy Node.js 24 commands for Linux"
|
||
msgstr "Kopieren Sie Node.js 24 Befehle für Linux"
|
||
|
||
#: website/public/get-started/index.html:347
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "On this page"
|
||
msgstr "Auf dieser Seite"
|
||
|
||
#: website/public/get-started/index.html:356
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "REA getting started guide"
|
||
msgstr "REA Anleitung für die ersten Schritte"
|
||
|
||
#: website/public/get-started/index.html:410
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "Copy REA installation prompt"
|
||
msgstr "Installationsaufforderung für REA kopieren"
|
||
|
||
#: website/public/get-started/index.html:456
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "Copy agent setup command"
|
||
msgstr "Befehl Agent-Setup kopieren"
|
||
|
||
#: website/public/get-started/index.html:532
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "Copy JavaScript analysis command"
|
||
msgstr "Kopieren Sie den JavaScript-Analysebefehl"
|
||
|
||
#: website/public/get-started/index.html:591
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "Copy CLI installation command"
|
||
msgstr "Kopieren Sie den Installationsbefehl CLI"
|
||
|
||
#: website/public/get-started/index.html:632
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "Copy ghidra connection · macos / linux"
|
||
msgstr "Ghidra-Verbindung kopieren * macos / linux"
|
||
|
||
#: website/public/get-started/index.html:664
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "Copy Ghidra connection for Windows PowerShell"
|
||
msgstr "Kopieren Sie die Ghidra-Verbindung für die Windows-PowerShell"
|
||
|
||
#: website/public/get-started/index.html:721
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "Copy IDA connection for Windows PowerShell"
|
||
msgstr "Kopieren Sie die IDA-Verbindung für die Windows-PowerShell"
|
||
|
||
#: website/public/get-started/index.html:762
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "Copy native function analysis command"
|
||
msgstr "Befehl zur Analyse der nativen Funktion kopieren"
|
||
|
||
#: website/public/get-started/index.html:802
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "Copy client diagnosis command"
|
||
msgstr "Clientdiagnosebefehl kopieren"
|
||
|
||
#: website/public/get-started/index.html:818
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "Copy provider diagnosis command"
|
||
msgstr "Provider-Diagnosebefehl kopieren"
|
||
|
||
#: website/public/get-started/index.html:869
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "Back to top"
|
||
msgstr "Nach oben"
|
||
|
||
#: website/public/guides/browser/index.html:99
|
||
msgctxt "page:guides/browser/index.html"
|
||
msgid "Skip to content"
|
||
msgstr "Zum Inhalt springen"
|
||
|
||
#. {ph0}: <a href="../../">
|
||
#. {ph1}: </a>
|
||
#. {ph2}: <a href="../">
|
||
#. {ph3}: </a>
|
||
#: website/public/guides/browser/index.html:181
|
||
#, python-brace-format
|
||
msgctxt "page:guides/browser/index.html"
|
||
msgid "{ph0}Home{ph1} / {ph2}Guides{ph3} / Browser observation"
|
||
msgstr "{ph0}Startseite{ph1} / {ph2}Hilfslinien{ph3} / Browser-Beobachtung"
|
||
|
||
#. {ph0}: <br />
|
||
#: website/public/guides/browser/index.html:185
|
||
#, python-brace-format
|
||
msgctxt "page:guides/browser/index.html"
|
||
msgid "See what happens{ph0}when you click."
|
||
msgstr "Sehen Sie, was passiert{ph0}wenn Sie klicken."
|
||
|
||
#: website/public/guides/browser/index.html:186
|
||
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 ""
|
||
"Verwenden Sie eine kleine Browser-App, um eine Aktion, ihre "
|
||
"Netzwerkanforderung und den JavaScript, der einen Download erstellt, zu "
|
||
"verbinden."
|
||
|
||
#: website/public/guides/browser/index.html:193
|
||
msgctxt "page:guides/browser/index.html"
|
||
msgid "In this guide"
|
||
msgstr "In diesem Handbuch"
|
||
|
||
#. {ph0}: <a href="#example">
|
||
#. {ph1}: </a>
|
||
#: website/public/guides/browser/index.html:195
|
||
#, python-brace-format
|
||
msgctxt "page:guides/browser/index.html"
|
||
msgid "{ph0}The example{ph1}"
|
||
msgstr "{ph0}Beispiel{ph1}"
|
||
|
||
#. {ph0}: <a href="#prepare">
|
||
#. {ph1}: </a>
|
||
#: website/public/guides/browser/index.html:196
|
||
#, python-brace-format
|
||
msgctxt "page:guides/browser/index.html"
|
||
msgid "{ph0}Open the browser{ph1}"
|
||
msgstr "{ph0}Öffnen Sie den Browser{ph1}"
|
||
|
||
#. {ph0}: <a href="#ask">
|
||
#. {ph1}: </a>
|
||
#: website/public/guides/browser/index.html:197
|
||
#, python-brace-format
|
||
msgctxt "page:guides/browser/index.html"
|
||
msgid "{ph0}Ask your agent{ph1}"
|
||
msgstr "{ph0}Fragen Sie Ihren Agenten{ph1}"
|
||
|
||
#. {ph0}: <a href="#capture">
|
||
#. {ph1}: </a>
|
||
#: website/public/guides/browser/index.html:198
|
||
#, python-brace-format
|
||
msgctxt "page:guides/browser/index.html"
|
||
msgid "{ph0}Capture from CLI{ph1}"
|
||
msgstr "{ph0}Aufnahme von CLI {ph1}"
|
||
|
||
#. {ph0}: <a href="#result">
|
||
#. {ph1}: </a>
|
||
#: website/public/guides/browser/index.html:199
|
||
#, python-brace-format
|
||
msgctxt "page:guides/browser/index.html"
|
||
msgid "{ph0}Read the request and script{ph1}"
|
||
msgstr "{ph0}Lesen Sie die Anfrage und das Skript{ph1}"
|
||
|
||
#: website/public/guides/browser/index.html:204
|
||
msgctxt "page:guides/browser/index.html"
|
||
msgid "What happens when you click Export?"
|
||
msgstr "Was passiert, wenn Sie auf Exportieren klicken?"
|
||
|
||
#. {ph0}: <a href="../../examples/notes-web/">
|
||
#. {ph1}: </a>
|
||
#. {ph2}: <strong>
|
||
#. {ph3}: </strong>
|
||
#. {ph4}: <code>notes.json</code>
|
||
#: website/public/guides/browser/index.html:205
|
||
#, 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 ""
|
||
"Der {ph0}Beispiel für einen Notes-Browser{ph1} hat eine {ph2}Notizen "
|
||
"exportieren{ph3} Schaltfläche. Wenn Sie darauf klicken, wird geladen {ph4}, "
|
||
"formatiert die beiden Notizen als CSV und startet einen Download."
|
||
|
||
#: website/public/guides/browser/index.html:213
|
||
msgctxt "page:guides/browser/index.html"
|
||
msgid "From the click to the CSV download"
|
||
msgstr "Vom Klick zum CSV Download"
|
||
|
||
#. {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:215
|
||
#, 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 · Sie{ph1}{ph2}Klicken Sie auf Notizen exportieren{ph3}{ph4}Führen "
|
||
"Sie die Aktion in Ihrem Browser aus, während das Capture ausgeführt "
|
||
"wird.{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:223
|
||
#, 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}Notieren Sie die Anfrage{ph3}{ph4}Erfassen Sie die "
|
||
"Anforderungs-URL, den Antwortstatus und die JSON-Struktur von der "
|
||
"ausgewählten Seite.{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:231
|
||
#, 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 · Ihr Agent{ph1}{ph2}Lesen Sie den Exportcode{ph3}{ph4}Verbinden Sie"
|
||
" die beobachtete Anforderung mit {ph5} in {ph6}.{ph7}"
|
||
|
||
#: website/public/guides/browser/index.html:244
|
||
msgctxt "page:guides/browser/index.html"
|
||
msgid "Start the capture before clicking Export notes."
|
||
msgstr "Starten Sie die Aufnahme, bevor Sie auf Notizen exportieren klicken."
|
||
|
||
#: website/public/guides/browser/index.html:250
|
||
msgctxt "page:guides/browser/index.html"
|
||
msgid "Open Chrome with remote debugging"
|
||
msgstr "Öffnen Sie Chrome mit Remote-Debugging"
|
||
|
||
#: website/public/guides/browser/index.html:251
|
||
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 ""
|
||
"Öffnen Sie das gehostete Notes-Beispiel mit einem separaten Browserprofil "
|
||
"und einem lokalen Debugging-Port. Auf Linux :"
|
||
|
||
#: website/public/guides/browser/index.html:257
|
||
msgctxt "page:guides/browser/index.html"
|
||
msgid "Start the example browser"
|
||
msgstr "Starten Sie den Beispielbrowser"
|
||
|
||
#: website/public/guides/browser/index.html:258
|
||
#: website/public/guides/browser/index.html:290
|
||
#: website/public/guides/browser/index.html:324
|
||
#: website/public/guides/browser/index.html:343
|
||
#: website/public/guides/browser/index.html:408
|
||
msgctxt "page:guides/browser/index.html"
|
||
msgid "Copy"
|
||
msgstr "Kopieren"
|
||
|
||
#: website/public/guides/browser/index.html:272
|
||
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 ""
|
||
"Verwenden Sie den ausführbaren Pfad Ihres installierten Browsers auf macOS "
|
||
"oder Windows . Sie können die Seiten-URL durch eine andere Seite ersetzen, "
|
||
"die Sie überprüfen möchten."
|
||
|
||
#: website/public/guides/browser/index.html:277
|
||
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 stellt eine Verbindung zu diesem vorhandenen Browser her. Sie behalten "
|
||
"die Kontrolle über die Seite, führen die Aktion aus und schließen den "
|
||
"Browser, wenn Sie fertig sind."
|
||
|
||
#: website/public/guides/browser/index.html:283
|
||
msgctxt "page:guides/browser/index.html"
|
||
msgid "Ask your agent to watch one action"
|
||
msgstr "Bitten Sie Ihren Agenten, eine Aktion zu sehen"
|
||
|
||
#. {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:286
|
||
#, 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}Ihr Codierungsagent"
|
||
|
||
#. {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:299
|
||
#, 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}Verwenden Sie REA, um diese Seite zu überprüfen, während ich"
|
||
" auf Notizen exportieren klicke. Welche Anfrage stellt es und wie ist der "
|
||
"CSV aufgebaut?{ph3}{ph4}{ph5}"
|
||
|
||
#. {ph0}: <code>http://127.0.0.1:9222</code>
|
||
#: website/public/guides/browser/index.html:307
|
||
#, 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 ""
|
||
"Beispiel Eingabeaufforderung. Geben Sie Ihrem Agenten den Debugging-"
|
||
"Endpunkt, {ph0} und die Seiten-URL. Lassen Sie die Aufnahme starten, bevor "
|
||
"Sie klicken."
|
||
|
||
#: website/public/guides/browser/index.html:312
|
||
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 ""
|
||
"Ihr Agent entdeckt das Seitenziel, startet ein Beobachtungsfenster und liest"
|
||
" die resultierenden Beweise. Es kann dann das Skript hinter dem Export "
|
||
"überprüfen."
|
||
|
||
#: website/public/guides/browser/index.html:319
|
||
msgctxt "page:guides/browser/index.html"
|
||
msgid "Or capture from the terminal"
|
||
msgstr "Oder vom Terminal aus erfassen"
|
||
|
||
#: website/public/guides/browser/index.html:320
|
||
msgctxt "page:guides/browser/index.html"
|
||
msgid "Find the page's target ID:"
|
||
msgstr "Suchen Sie die Ziel-ID der Seite:"
|
||
|
||
#: website/public/guides/browser/index.html:323
|
||
msgctxt "page:guides/browser/index.html"
|
||
msgid "Find the page"
|
||
msgstr "Finden Sie die Seite"
|
||
|
||
#. {ph0}: <code>TARGET_ID</code>
|
||
#: website/public/guides/browser/index.html:336
|
||
#, 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 ""
|
||
"Wählen Sie das Ziel mit der Beispiel-URL für Notizen aus. Ersetzen {ph0} "
|
||
"unten mit seiner ID, dann lauf:"
|
||
|
||
#: website/public/guides/browser/index.html:342
|
||
msgctxt "page:guides/browser/index.html"
|
||
msgid "Capture the next ten seconds"
|
||
msgstr "Erfassen Sie die nächsten zehn Sekunden"
|
||
|
||
#. {ph0}: <strong>
|
||
#. {ph1}: </strong>
|
||
#: website/public/guides/browser/index.html:358
|
||
#, 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 ""
|
||
"Lassen Sie den Befehl einige Sekunden lang verbinden und klicken Sie dann "
|
||
"auf {ph0}Notizen exportieren{ph1} in diesem Browser. Das Ergebnis kommt nach"
|
||
" dem Ende des Beobachtungsfensters an."
|
||
|
||
#: website/public/guides/browser/index.html:363
|
||
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 ""
|
||
"Das erfasste Ergebnis enthält die ausgewählte Seite, die Netzwerkaktivität "
|
||
"während dieses Fensters und die Form der JSON-Antwort. Frühere Anfragen "
|
||
"liegen außerhalb dieser Erfassung."
|
||
|
||
#: website/public/guides/browser/index.html:370
|
||
msgctxt "page:guides/browser/index.html"
|
||
msgid "Read the request and export script"
|
||
msgstr "Lesen Sie das Anforderungs- und Exportskript"
|
||
|
||
#: website/public/guides/browser/index.html:373
|
||
msgctxt "page:guides/browser/index.html"
|
||
msgid "Recorded with REA 4.1.0 on the local Notes example"
|
||
msgstr "Aufgenommen mit REA 4.1.0 am Beispiel lokaler Notizen"
|
||
|
||
#: website/public/guides/browser/index.html:378
|
||
msgctxt "page:guides/browser/index.html"
|
||
msgid "Captured fact"
|
||
msgstr "Erfasste Tatsache"
|
||
|
||
#: website/public/guides/browser/index.html:379
|
||
msgctxt "page:guides/browser/index.html"
|
||
msgid "Value"
|
||
msgstr "Wert"
|
||
|
||
#: website/public/guides/browser/index.html:384
|
||
msgctxt "page:guides/browser/index.html"
|
||
msgid "Request"
|
||
msgstr "Anfrage"
|
||
|
||
#: website/public/guides/browser/index.html:388
|
||
msgctxt "page:guides/browser/index.html"
|
||
msgid "Response"
|
||
msgstr "Antwort"
|
||
|
||
#: website/public/guides/browser/index.html:392
|
||
msgctxt "page:guides/browser/index.html"
|
||
msgid "Request initiator"
|
||
msgstr "Initiator der Anfrage"
|
||
|
||
#. {ph0}: <code>export.js</code>
|
||
#: website/public/guides/browser/index.html:393
|
||
#, python-brace-format
|
||
msgctxt "page:guides/browser/index.html"
|
||
msgid "{ph0} · script"
|
||
msgstr "{ph0} · Skript"
|
||
|
||
#: website/public/guides/browser/index.html:396
|
||
msgctxt "page:guides/browser/index.html"
|
||
msgid "Response structure"
|
||
msgstr "Antwortstruktur"
|
||
|
||
#. {ph0}: <code>notes[]</code>
|
||
#. {ph1}: <code>id</code>
|
||
#. {ph2}: <code>title</code>
|
||
#: website/public/guides/browser/index.html:397
|
||
#, python-brace-format
|
||
msgctxt "page:guides/browser/index.html"
|
||
msgid "{ph0} with {ph1} and {ph2} fields"
|
||
msgstr "{ph0} mit {ph1} und {ph2} Datenfelder"
|
||
|
||
#: website/public/guides/browser/index.html:407
|
||
msgctxt "page:guides/browser/index.html"
|
||
msgid "Read the loaded scripts"
|
||
msgstr "Lesen Sie die geladenen Skripte"
|
||
|
||
#. {ph0}: <code>export.js</code>
|
||
#: website/public/guides/browser/index.html:421
|
||
#, 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 ""
|
||
"Die Anforderung identifiziert die Datenquelle und REA-Datensätze {ph0} als "
|
||
"sein Initiator. Lesen Sie die erfasste Skriptquelle, um zu sehen, wie die "
|
||
"Daten verwendet werden:"
|
||
|
||
#. {ph0}: <code>notes.json</code>
|
||
#: website/public/guides/browser/index.html:441
|
||
#, 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 ""
|
||
"Der Download wird auf der Seite mithilfe der JSON-Antwort erstellt. Der "
|
||
"Formatierungsschritt CSV stammt aus dem Skript; Die Netzwerkerfassung stellt"
|
||
" fest, dass dieser Klick angefordert wurde {ph0}."
|
||
|
||
#. {ph0}: <code>notes.json</code>
|
||
#: website/public/guides/browser/index.html:457
|
||
#, 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 ""
|
||
"Suchen Sie das Skript, das anfordert {ph0}. Wie werden Titel mit Kommas oder"
|
||
" Anführungszeichen vermieden?"
|
||
|
||
#. {ph0}: <a href="../javascript/">
|
||
#. {ph1}: </a>
|
||
#: website/public/guides/browser/index.html:462
|
||
#, 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 ""
|
||
"Fahren Sie bei einer installierten JavaScript- oder Electron-App mit der "
|
||
"{ph0}anwendungs-Workflow{ph1} dateien und Prozessgrenzen zu folgen."
|
||
|
||
#: website/public/guides/browser/index.html:6
|
||
msgctxt "page:guides/browser/index.html"
|
||
msgid "Browser and Network Analysis — REA"
|
||
msgstr "Browser- und Netzwerkanalyse - 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 ""
|
||
"Beobachten Sie einen Notizexport mit REA: Wählen Sie eine Browserseite aus, "
|
||
"erfassen Sie einen Klick, überprüfen Sie die Anforderung und folgen Sie dem "
|
||
"Exportskript."
|
||
|
||
#: website/public/guides/browser/index.html:192
|
||
msgctxt "page:guides/browser/index.html"
|
||
msgid "On this page"
|
||
msgstr "Auf dieser Seite"
|
||
|
||
#: website/public/guides/browser/index.html:202
|
||
msgctxt "page:guides/browser/index.html"
|
||
msgid "Browser observation"
|
||
msgstr "Browser-Beobachtung"
|
||
|
||
#: website/public/guides/browser/index.html:258
|
||
msgctxt "page:guides/browser/index.html"
|
||
msgid "Copy start the example browser"
|
||
msgstr "Kopieren Starten Sie den Beispielbrowser"
|
||
|
||
#: website/public/guides/browser/index.html:290
|
||
msgctxt "page:guides/browser/index.html"
|
||
msgid "Copy example prompt"
|
||
msgstr "Beispiel-Eingabeaufforderung kopieren"
|
||
|
||
#: website/public/guides/browser/index.html:324
|
||
msgctxt "page:guides/browser/index.html"
|
||
msgid "Copy find the page"
|
||
msgstr "Kopieren finden Sie die Seite"
|
||
|
||
#: website/public/guides/browser/index.html:343
|
||
msgctxt "page:guides/browser/index.html"
|
||
msgid "Copy capture the next ten seconds"
|
||
msgstr "Kopieren Erfassen Sie die nächsten zehn Sekunden"
|
||
|
||
#: website/public/guides/browser/index.html:408
|
||
msgctxt "page:guides/browser/index.html"
|
||
msgid "Copy read the loaded scripts"
|
||
msgstr "Kopieren Lesen Sie die geladenen Skripte"
|
||
|
||
#: website/public/guides/browser/index.html:485
|
||
msgctxt "page:guides/browser/index.html"
|
||
msgid "Back to top"
|
||
msgstr "Nach oben"
|
||
|
||
#: website/public/guides/index.html:99
|
||
msgctxt "page:guides/index.html"
|
||
msgid "Skip to content"
|
||
msgstr "Zum Inhalt springen"
|
||
|
||
#. {ph0}: <a href="../">
|
||
#. {ph1}: </a>
|
||
#: website/public/guides/index.html:181
|
||
#, python-brace-format
|
||
msgctxt "page:guides/index.html"
|
||
msgid "{ph0}Home{ph1} / Guides"
|
||
msgstr "{ph0}Startseite{ph1} / Hilfslinien"
|
||
|
||
#: website/public/guides/index.html:182
|
||
msgctxt "page:guides/index.html"
|
||
msgid "REA guides."
|
||
msgstr "REA Anleitungen."
|
||
|
||
#: website/public/guides/index.html:183
|
||
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 ""
|
||
"Analysieren Sie eine native Funktion, einen Electron-Export oder eine "
|
||
"Browseranforderung. Jede Anleitung enthält eine Eingabeaufforderung, einen "
|
||
"Code und Ergebnisse."
|
||
|
||
#: website/public/guides/index.html:190
|
||
msgctxt "page:guides/index.html"
|
||
msgid "First investigation"
|
||
msgstr "Erste Untersuchung"
|
||
|
||
#: website/public/guides/index.html:192
|
||
msgctxt "page:guides/index.html"
|
||
msgid "Set up REA"
|
||
msgstr "Einrichten von REA"
|
||
|
||
#: website/public/guides/index.html:193
|
||
msgctxt "page:guides/index.html"
|
||
msgid "Connect your coding agent or use REA from the terminal."
|
||
msgstr ""
|
||
"Schließen Sie Ihren Codierungsagenten an oder verwenden Sie REA vom Terminal"
|
||
" aus."
|
||
|
||
#: website/public/guides/index.html:194
|
||
msgctxt "page:guides/index.html"
|
||
msgid "Get started with REA"
|
||
msgstr "Erste Schritte mit REA"
|
||
|
||
#: website/public/guides/index.html:198
|
||
msgctxt "page:guides/index.html"
|
||
msgid "Native binaries"
|
||
msgstr "Maschinencode-Programme"
|
||
|
||
#: website/public/guides/index.html:200
|
||
msgctxt "page:guides/index.html"
|
||
msgid "Recover a sound-pan calculation"
|
||
msgstr ""
|
||
"Stellen Sie eine Berechnung der linken / rechten Klangposition wieder her"
|
||
|
||
#: website/public/guides/index.html:201
|
||
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 ""
|
||
"Beginnen Sie mit einer ausführbaren Datei für das Windows-Spiel. Überprüfen "
|
||
"Sie die Anweisungen, folgen Sie einem Aufrufer, lesen Sie numerische "
|
||
"Konstanten und überprüfen Sie das wiederhergestellte C."
|
||
|
||
#: website/public/guides/index.html:211
|
||
msgctxt "page:guides/index.html"
|
||
msgid "Native analysis guide"
|
||
msgstr "Handbuch zur Analyse von Maschinencode-Programmen"
|
||
|
||
#: website/public/guides/index.html:215
|
||
msgctxt "page:guides/index.html"
|
||
msgid "JavaScript & Electron"
|
||
msgstr "Modell: JavaScript und Electron"
|
||
|
||
#: website/public/guides/index.html:217
|
||
msgctxt "page:guides/index.html"
|
||
msgid "Follow a CSV export"
|
||
msgstr "Einem CSV-Export folgen"
|
||
|
||
#: website/public/guides/index.html:218
|
||
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 ""
|
||
"Eine kleine Notizen-App verteilt eine Funktion auf den Renderer-, Preload- "
|
||
"und Hauptprozess. Verwenden Sie REA, um die API, den IPC-Kanal und den "
|
||
"Dateischreiber zu verbinden."
|
||
|
||
#: website/public/guides/index.html:228
|
||
msgctxt "page:guides/index.html"
|
||
msgid "JavaScript & Electron guide"
|
||
msgstr "Anleitung für JavaScript und Electron"
|
||
|
||
#. {ph0}: <a href="../showcase/notion/">
|
||
#. {ph1}: </a>
|
||
#: website/public/guides/index.html:231
|
||
#, python-brace-format
|
||
msgctxt "page:guides/index.html"
|
||
msgid "For a larger packaged app, follow {ph0}Notion's clipboard bridge{ph1}."
|
||
msgstr ""
|
||
"Für eine größere gepackte App folgen Sie {ph0} Zwischenablage-Brücke von "
|
||
"Notion{ph1}."
|
||
|
||
#: website/public/guides/index.html:238
|
||
msgctxt "page:guides/index.html"
|
||
msgid "Browser behavior"
|
||
msgstr "Browserverhalten"
|
||
|
||
#: website/public/guides/index.html:240
|
||
msgctxt "page:guides/index.html"
|
||
msgid "Observe a click"
|
||
msgstr "Beobachten Sie einen Klick"
|
||
|
||
#: website/public/guides/index.html:241
|
||
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 ""
|
||
"Öffnen Sie ein Beispiel für Arbeitsnotizen, erfassen Sie eine "
|
||
"Exportanforderung und suchen Sie den Code, der die Antwort in einen Download"
|
||
" umwandelt."
|
||
|
||
#: website/public/guides/index.html:250
|
||
msgctxt "page:guides/index.html"
|
||
msgid "Browser observation guide"
|
||
msgstr "Anleitung zur Browserbeobachtung"
|
||
|
||
#: website/public/guides/index.html:6
|
||
msgctxt "page:guides/index.html"
|
||
msgid "Reverse Engineering Guides — REA"
|
||
msgstr "Anleitungen zum Reverse Engineering - 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 ""
|
||
"Lernen Sie REA anhand kurz gearbeiteter Beispiele: eine native Berechnung, "
|
||
"einen Electron CSV Export und eine Browseranforderung."
|
||
|
||
#: website/public/guides/index.html:269
|
||
msgctxt "page:guides/index.html"
|
||
msgid "Back to top"
|
||
msgstr "Nach oben"
|
||
|
||
#: website/public/guides/javascript/index.html:99
|
||
msgctxt "page:guides/javascript/index.html"
|
||
msgid "Skip to content"
|
||
msgstr "Zum Inhalt springen"
|
||
|
||
#. {ph0}: <a href="../../">
|
||
#. {ph1}: </a>
|
||
#. {ph2}: <a href="../">
|
||
#. {ph3}: </a>
|
||
#: website/public/guides/javascript/index.html:181
|
||
#, python-brace-format
|
||
msgctxt "page:guides/javascript/index.html"
|
||
msgid "{ph0}Home{ph1} / {ph2}Guides{ph3} / JavaScript & Electron"
|
||
msgstr ""
|
||
"{ph0}Startseite{ph1} / {ph2}Hilfslinien{ph3} Modell: JavaScript und "
|
||
"Electron"
|
||
|
||
#. {ph0}: <br />
|
||
#: website/public/guides/javascript/index.html:185
|
||
#, python-brace-format
|
||
msgctxt "page:guides/javascript/index.html"
|
||
msgid "Trace an Electron{ph0}CSV export."
|
||
msgstr "Verfolgen Sie einen Electron {ph0} CSV exportieren."
|
||
|
||
#: website/public/guides/javascript/index.html:186
|
||
msgctxt "page:guides/javascript/index.html"
|
||
msgid ""
|
||
"Follow a button click from the page API, through Electron IPC, to the CSV "
|
||
"file writer."
|
||
msgstr ""
|
||
"Folgen Sie einem Knopfdruck von der Seiten-API über den Electron IPC zum CSV"
|
||
" File Writer."
|
||
|
||
#: website/public/guides/javascript/index.html:193
|
||
msgctxt "page:guides/javascript/index.html"
|
||
msgid "In this guide"
|
||
msgstr "In diesem Handbuch"
|
||
|
||
#. {ph0}: <a href="#example">
|
||
#. {ph1}: </a>
|
||
#: website/public/guides/javascript/index.html:195
|
||
#, python-brace-format
|
||
msgctxt "page:guides/javascript/index.html"
|
||
msgid "{ph0}The example{ph1}"
|
||
msgstr "{ph0}Beispiel{ph1}"
|
||
|
||
#. {ph0}: <a href="#ask">
|
||
#. {ph1}: </a>
|
||
#: website/public/guides/javascript/index.html:196
|
||
#, python-brace-format
|
||
msgctxt "page:guides/javascript/index.html"
|
||
msgid "{ph0}Ask your agent{ph1}"
|
||
msgstr "{ph0}Fragen Sie Ihren Agenten{ph1}"
|
||
|
||
#. {ph0}: <a href="#follow">
|
||
#. {ph1}: </a>
|
||
#: website/public/guides/javascript/index.html:197
|
||
#, python-brace-format
|
||
msgctxt "page:guides/javascript/index.html"
|
||
msgid "{ph0}Trace the export code{ph1}"
|
||
msgstr "{ph0}Verfolgen Sie den Exportcode{ph1}"
|
||
|
||
#. {ph0}: <a href="#try">
|
||
#. {ph1}: </a>
|
||
#: website/public/guides/javascript/index.html:198
|
||
#, python-brace-format
|
||
msgctxt "page:guides/javascript/index.html"
|
||
msgid "{ph0}Try the example{ph1}"
|
||
msgstr "{ph0}Probieren Sie das Beispiel aus{ph1}"
|
||
|
||
#. {ph0}: <a href="#next">
|
||
#. {ph1}: </a>
|
||
#: website/public/guides/javascript/index.html:199
|
||
#, python-brace-format
|
||
msgctxt "page:guides/javascript/index.html"
|
||
msgid "{ph0}Inspect the CSV writer{ph1}"
|
||
msgstr "{ph0}Überprüfen Sie den CSV-Schreiber{ph1}"
|
||
|
||
#: website/public/guides/javascript/index.html:204
|
||
msgctxt "page:guides/javascript/index.html"
|
||
msgid "Where does “Export notes” go?"
|
||
msgstr "Wohin geht \"Notizen exportieren\"?"
|
||
|
||
#. {ph0}: <strong>
|
||
#. {ph1}: </strong>
|
||
#: website/public/guides/javascript/index.html:205
|
||
#, 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 ""
|
||
"Diese Anleitung verwendet eine kleine Electron-App. Klicken {ph0}Notizen "
|
||
"exportieren{ph1} ruft eine API auf der Seite auf, wechselt in den "
|
||
"Hauptprozess und schreibt einen CSV . Das Verhalten ist auf mehrere Dateien "
|
||
"verteilt."
|
||
|
||
#: website/public/guides/javascript/index.html:212
|
||
msgctxt "page:guides/javascript/index.html"
|
||
msgid "The CSV export across Electron processes"
|
||
msgstr "Der CSV-Export über Electron-Prozesse hinweg"
|
||
|
||
#. {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:216
|
||
#, 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}Renderer → Vorladen{ph1}{ph2}{ph3}{ph4}{ph5}{ph6} ruft die API auf, die"
|
||
" von bereitgestellt wird {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:224
|
||
#, 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}Zwischen Prozessen{ph1}{ph2}{ph3}{ph4}{ph5}Der Preload ruft einen IPC-"
|
||
"Kanal auf: eine benannte Nachricht an den Hauptprozess.{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:232
|
||
#, 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}Hauptprozess{ph1}{ph2}Ein Export-Handler{ph3}{ph4}{ph5} behandelt "
|
||
"diesen Kanal und ruft den CSV-Writer auf.{ph6}"
|
||
|
||
#. {ph0}: <code>csv.js</code>
|
||
#. {ph1}: <code>main.js</code>
|
||
#. {ph2}: <code>downloads/notes.csv</code>
|
||
#: website/public/guides/javascript/index.html:241
|
||
#, python-brace-format
|
||
msgctxt "page:guides/javascript/index.html"
|
||
msgid "{ph0} formats the notes → {ph1} writes {ph2}."
|
||
msgstr "{ph0} formatiert die Notizen → {ph1} schreibt {ph2}."
|
||
|
||
#: website/public/guides/javascript/index.html:245
|
||
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 ordnet den literalen IPC-Aufruf seinem Handler zu und identifiziert die "
|
||
"exponierte API. Der Pfad wird aus dem Code abgeleitet; Eine "
|
||
"Laufzeiterfassung kann überprüfen, was ausgeführt wird."
|
||
|
||
#: website/public/guides/javascript/index.html:253
|
||
msgctxt "page:guides/javascript/index.html"
|
||
msgid "Ask about the CSV export"
|
||
msgstr "Fragen Sie nach dem CSV Export"
|
||
|
||
#. {ph0}: <a href="../../get-started/#agent">
|
||
#. {ph1}: </a>
|
||
#: website/public/guides/javascript/index.html:254
|
||
#, 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}Verbinden Sie Ihren Agenten mit REA {ph1} und geben Sie ihm das App-"
|
||
"Verzeichnis oder die ASAR-Datei:"
|
||
|
||
#. {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:260
|
||
#, 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}Ihr Codierungsagent"
|
||
|
||
#: website/public/guides/javascript/index.html:264
|
||
#: website/public/guides/javascript/index.html:413
|
||
msgctxt "page:guides/javascript/index.html"
|
||
msgid "Copy"
|
||
msgstr "Kopieren"
|
||
|
||
#. {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:273
|
||
#, 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}Verwenden Sie REA, um herauszufinden, was passiert, wenn ich"
|
||
" Notizen in diese App exportiere. Wo wird der CSV erstellt?{ph3}{ph4}{ph5}"
|
||
|
||
#. {ph0}: <code>app.asar</code>
|
||
#: website/public/guides/javascript/index.html:281
|
||
#, python-brace-format
|
||
msgctxt "page:guides/javascript/index.html"
|
||
msgid ""
|
||
"Example prompt. Include the absolute path to the application folder or "
|
||
"{ph0}."
|
||
msgstr ""
|
||
"Beispiel Eingabeaufforderung. Geben Sie den absoluten Pfad zum "
|
||
"Anwendungsordner an oder {ph0}."
|
||
|
||
#: website/public/guides/javascript/index.html:285
|
||
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 liest die Anwendungsdateien und erstellt eine Karte mit "
|
||
"Einstiegspunkten, Modulen und Prozessgrenzen. Ihr Agent verwendet diese "
|
||
"Karte, um die Untersuchung auf die Exportfunktion einzugrenzen."
|
||
|
||
#: website/public/guides/javascript/index.html:292
|
||
msgctxt "page:guides/javascript/index.html"
|
||
msgid "Trace the export code"
|
||
msgstr "Verfolgen Sie den Exportcode"
|
||
|
||
#: website/public/guides/javascript/index.html:293
|
||
msgctxt "page:guides/javascript/index.html"
|
||
msgid "The page calls a small API"
|
||
msgstr "Die Seite ruft eine kleine API auf"
|
||
|
||
#: website/public/guides/javascript/index.html:306
|
||
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 ""
|
||
"Die Seite kennt den Methodennamen. Die Implementierung lebt im Preload, "
|
||
"wodurch sie dem Renderer ausgesetzt wird."
|
||
|
||
#. {ph0}: <code>notes.exportCsv</code>
|
||
#. {ph1}: <code>notes:export</code>
|
||
#: website/public/guides/javascript/index.html:320
|
||
#, 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 Aufzeichnungen {ph0} und der wörtliche Kanal {ph1}. Es koppelt diesen "
|
||
"Aufruf mit dem einzelnen übereinstimmenden Handler im Hauptprozess."
|
||
|
||
#. {ph0}: <code>csv.js</code>
|
||
#. {ph1}: <code>notes.csv</code>
|
||
#: website/public/guides/javascript/index.html:337
|
||
#, 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 ""
|
||
"Das Lesen des Handlers beantwortet die ursprüngliche Frage: {ph0} formatiert"
|
||
" die Notizen und der Hauptprozess schreibt {ph1} in den Download-Ordner des "
|
||
"Benutzers."
|
||
|
||
#: website/public/guides/javascript/index.html:354
|
||
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 ""
|
||
"Aufgenommen von REA 4.1.0 im unten stehenden herunterladbaren Beispiel. "
|
||
"Quellorte begleiten die API-, Kanal- und Handler-Ergebnisse."
|
||
|
||
#: website/public/guides/javascript/index.html:360
|
||
msgctxt "page:guides/javascript/index.html"
|
||
msgid "Analyze the example yourself"
|
||
msgstr "Analysieren Sie das Beispiel selbst"
|
||
|
||
#. {ph0}: <a class="button" href="../../examples/notes-example.zip"
|
||
#. download="notes-example.zip" >
|
||
#. {ph1}: </a >
|
||
#: website/public/guides/javascript/index.html:367
|
||
#, python-brace-format
|
||
msgctxt "page:guides/javascript/index.html"
|
||
msgid "{ph0}Download example ZIP{ph1}"
|
||
msgstr "{ph0}Beispiel-ZIP herunterladen{ph1}"
|
||
|
||
#: website/public/guides/javascript/index.html:376
|
||
msgctxt "page:guides/javascript/index.html"
|
||
msgid "Browse the six source files"
|
||
msgstr "Durchsuchen Sie die sechs Quelldateien"
|
||
|
||
#: website/public/guides/javascript/index.html:412
|
||
msgctxt "page:guides/javascript/index.html"
|
||
msgid "Static application analysis"
|
||
msgstr "Statische Anwendungsanalyse"
|
||
|
||
#. {ph0}: <code>normalized_result.summary.ipc</code>
|
||
#. {ph1}: <code>normalized_result.graph</code>
|
||
#: website/public/guides/javascript/index.html:425
|
||
#, 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 ""
|
||
"Ersetzen Sie den Pfad durch den Ordner, den Sie entpackt haben. Sie sollten "
|
||
"einen IPC-Kanal und einen passenden Handler in finden {ph0}. Quellstandorte "
|
||
"sind in {ph1}."
|
||
|
||
#: website/public/guides/javascript/index.html:431
|
||
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 ""
|
||
"Verwenden Sie für Ihre eigene App denselben Befehl mit seinem Verzeichnis "
|
||
"oder ASAR-Pfad. Ein Agent kann mit den Feature-Tracing-Tools von REA einer "
|
||
"Literalzeichenfolge, einem API-Namen oder einem IPC-Kanal folgen."
|
||
|
||
#: website/public/guides/javascript/index.html:438
|
||
msgctxt "page:guides/javascript/index.html"
|
||
msgid "Inspect the CSV writer"
|
||
msgstr "Überprüfen Sie den CSV-Schreiber"
|
||
|
||
#. {ph0}: <code>notes:export</code>
|
||
#: website/public/guides/javascript/index.html:440
|
||
#, 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 ""
|
||
"Folgen {ph0} zu seinem Handler. Welche Eingänge erreichen den CSV Writer und"
|
||
" was passiert, wenn das Schreiben der Datei fehlschlägt?"
|
||
|
||
#: website/public/guides/javascript/index.html:446
|
||
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 ""
|
||
"Verwenden Sie die Quellspeicherorte, um diese Details zu überprüfen. "
|
||
"Berechnete Kanalnamen und mehrdeutige Handler können ungelöst bleiben; "
|
||
"Laufzeitbeobachtungen bieten Ihnen eine andere Möglichkeit, sie zu "
|
||
"untersuchen."
|
||
|
||
#. {ph0}: <a href="../../showcase/notion/" >
|
||
#. {ph1}: </a >
|
||
#. {ph2}: <span>
|
||
#. {ph3}: </span>
|
||
#: website/public/guides/javascript/index.html:452
|
||
#, 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}Folgen Sie der Zwischenablage-Brücke von Notion{ph1} {ph2}Wenden Sie "
|
||
"den gleichen Ansatz auf eine gepackte Electron-App an.{ph3}"
|
||
|
||
#. {ph0}: <a href="../browser/">
|
||
#. {ph1}: </a >
|
||
#. {ph2}: <span >
|
||
#. {ph3}: </span >
|
||
#: website/public/guides/javascript/index.html:458
|
||
#, 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}Beobachten Sie einen Browser-Export{ph1}{ph2}Erfassen Sie einen echten "
|
||
"Klick und sehen Sie, welche Anfrage er stellt.{ph3}"
|
||
|
||
#. {ph0}: <a href="../native/">
|
||
#. {ph1}: </a >
|
||
#. {ph2}: <span >
|
||
#. {ph3}: </span >
|
||
#: website/public/guides/javascript/index.html:464
|
||
#, 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}Einer nativen Funktion folgen{ph1}{ph2}Fahren Sie mit einer Binärdatei "
|
||
"fort, wenn eine Funktion vom systemeigenen Code abhängt.{ph3}"
|
||
|
||
#: website/public/guides/javascript/index.html:6
|
||
msgctxt "page:guides/javascript/index.html"
|
||
msgid "JavaScript and Electron Analysis — REA"
|
||
msgstr "Analyse von JavaScript und 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 ""
|
||
"Verfolgen Sie einen Notes CSV-Export über eine Renderer-API, Preload und "
|
||
"IPC-Handler mit REA. Enthält herunterladbare Beispieldateien und ein "
|
||
"verifiziertes Analyseergebnis."
|
||
|
||
#: website/public/guides/javascript/index.html:192
|
||
msgctxt "page:guides/javascript/index.html"
|
||
msgid "On this page"
|
||
msgstr "Auf dieser Seite"
|
||
|
||
#: website/public/guides/javascript/index.html:202
|
||
msgctxt "page:guides/javascript/index.html"
|
||
msgid "JavaScript & Electron"
|
||
msgstr "Modell: JavaScript und Electron"
|
||
|
||
#: website/public/guides/javascript/index.html:264
|
||
msgctxt "page:guides/javascript/index.html"
|
||
msgid "Copy example prompt"
|
||
msgstr "Beispiel-Eingabeaufforderung kopieren"
|
||
|
||
#: website/public/guides/javascript/index.html:413
|
||
msgctxt "page:guides/javascript/index.html"
|
||
msgid "Copy static application analysis"
|
||
msgstr "Statische Anwendungsanalyse kopieren"
|
||
|
||
#: website/public/guides/javascript/index.html:490
|
||
msgctxt "page:guides/javascript/index.html"
|
||
msgid "Back to top"
|
||
msgstr "Nach oben"
|
||
|
||
#: website/public/guides/native/index.html:99
|
||
msgctxt "page:guides/native/index.html"
|
||
msgid "Skip to content"
|
||
msgstr "Zum Inhalt springen"
|
||
|
||
#. {ph0}: <a href="../../">
|
||
#. {ph1}: </a>
|
||
#. {ph2}: <a href="../">
|
||
#. {ph3}: </a>
|
||
#: website/public/guides/native/index.html:181
|
||
#, python-brace-format
|
||
msgctxt "page:guides/native/index.html"
|
||
msgid "{ph0}Home{ph1} / {ph2}Guides{ph3} / Native analysis"
|
||
msgstr ""
|
||
"{ph0}Startseite{ph1} / {ph2}Hilfslinien{ph3} / Analyse von Maschinencode-"
|
||
"Programmen"
|
||
|
||
#. {ph0}: <br />
|
||
#: website/public/guides/native/index.html:184
|
||
#, python-brace-format
|
||
msgctxt "page:guides/native/index.html"
|
||
msgid "Recover DX-Ball's{ph0}sound-pan calculation."
|
||
msgstr ""
|
||
"Wiederherstellen von DX-BallS{ph0}berechnung der linken / rechten "
|
||
"Klangposition."
|
||
|
||
#: website/public/guides/native/index.html:185
|
||
msgctxt "page:guides/native/index.html"
|
||
msgid ""
|
||
"Inspect the original instructions, identify the input and constants, then "
|
||
"check the recovered C."
|
||
msgstr ""
|
||
"Überprüfen Sie die Originalanweisungen, identifizieren Sie die Eingabe und "
|
||
"die Konstanten und überprüfen Sie dann das wiederhergestellte C."
|
||
|
||
#: website/public/guides/native/index.html:192
|
||
msgctxt "page:guides/native/index.html"
|
||
msgid "In this guide"
|
||
msgstr "In diesem Handbuch"
|
||
|
||
#. {ph0}: <a href="#example">
|
||
#. {ph1}: </a>
|
||
#: website/public/guides/native/index.html:194
|
||
#, python-brace-format
|
||
msgctxt "page:guides/native/index.html"
|
||
msgid "{ph0}The example{ph1}"
|
||
msgstr "{ph0}Beispiel{ph1}"
|
||
|
||
#. {ph0}: <a href="#ask">
|
||
#. {ph1}: </a>
|
||
#: website/public/guides/native/index.html:195
|
||
#, python-brace-format
|
||
msgctxt "page:guides/native/index.html"
|
||
msgid "{ph0}Ask your agent{ph1}"
|
||
msgstr "{ph0}Fragen Sie Ihren Agenten{ph1}"
|
||
|
||
#. {ph0}: <a href="#follow">
|
||
#. {ph1}: </a>
|
||
#: website/public/guides/native/index.html:196
|
||
#, python-brace-format
|
||
msgctxt "page:guides/native/index.html"
|
||
msgid "{ph0}Read the REA results{ph1}"
|
||
msgstr "{ph0}Lesen Sie die REA-Ergebnisse{ph1}"
|
||
|
||
#. {ph0}: <a href="#result">
|
||
#. {ph1}: </a>
|
||
#: website/public/guides/native/index.html:197
|
||
#, python-brace-format
|
||
msgctxt "page:guides/native/index.html"
|
||
msgid "{ph0}Recover and check{ph1}"
|
||
msgstr "{ph0}Wiederherstellen und überprüfen{ph1}"
|
||
|
||
#. {ph0}: <a href="#try">
|
||
#. {ph1}: </a>
|
||
#: website/public/guides/native/index.html:198
|
||
#, python-brace-format
|
||
msgctxt "page:guides/native/index.html"
|
||
msgid "{ph0}Use your own binary{ph1}"
|
||
msgstr "{ph0}Verwenden Sie Ihre eigene Binärdatei{ph1}"
|
||
|
||
#: website/public/guides/native/index.html:203
|
||
msgctxt "page:guides/native/index.html"
|
||
msgid "Calculate left/right sound panning"
|
||
msgstr "Berechnen Sie die linke / rechte Stereoklangpositionierung"
|
||
|
||
#: website/public/guides/native/index.html:204
|
||
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 ""
|
||
"In DX-Ball liefert ein Ziegelsteintreffer eine horizontale "
|
||
"Bildschirmposition. Der Soundcode wandelt ihn in einen Links / Rechts-"
|
||
"Schwenkwert um."
|
||
|
||
#. {ph0}: <code>0x00406400</code>
|
||
#. {ph1}: <code>__ftol()</code>
|
||
#: website/public/guides/native/index.html:208
|
||
#, 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 ""
|
||
"Die Startfunktion, {ph0}, hat ein kurzes Dekompilierergebnis: ein Aufruf an "
|
||
"{ph1}. REA gibt auch seine Anweisungen und Anrufer zurück, die dem Agenten "
|
||
"die Möglichkeit geben, die fehlende Arithmetik zu untersuchen."
|
||
|
||
#: website/public/guides/native/index.html:215
|
||
msgctxt "page:guides/native/index.html"
|
||
msgid "New to these terms?"
|
||
msgstr "Neu bei diesen Bedingungen?"
|
||
|
||
#. {ph0}: <strong>
|
||
#. {ph1}: </strong>
|
||
#. {ph2}: <code>MOV</code>
|
||
#. {ph3}: <code>ADD</code>
|
||
#: website/public/guides/native/index.html:217
|
||
#, 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}Anweisung:{ph1} die Schritte, die der Prozessor ausführt, werden in "
|
||
"lesbarer Form dargestellt, wie z {ph2} oder {ph3}."
|
||
|
||
#. {ph0}: <strong>
|
||
#. {ph1}: </strong>
|
||
#: website/public/guides/native/index.html:222
|
||
#, 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}Dekompiler-Ergebnis / Pseudocode:{ph1} der Versuch eines "
|
||
"Analysewerkzeugs, Anweisungen wieder in C-ähnlichen Code umzuwandeln. Es "
|
||
"kann Teile vermissen, wie in diesem Beispiel."
|
||
|
||
#. {ph0}: <strong>
|
||
#. {ph1}: </strong>
|
||
#: website/public/guides/native/index.html:227
|
||
#, 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}Anrufer:{ph1} eine Funktion, die diese aufruft. Es zeigt an, welche "
|
||
"Werte übergeben werden."
|
||
|
||
#. {ph0}: <strong>
|
||
#. {ph1}: </strong>
|
||
#. {ph2}: <code>0x00406400</code>
|
||
#: website/public/guides/native/index.html:231
|
||
#, 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}Anschrift:{ph1} eine Stelle im Programm, die hexadezimal geschrieben "
|
||
"ist, z. B.: {ph2}."
|
||
|
||
#. {ph0}: <strong>
|
||
#. {ph1}: </strong>
|
||
#: website/public/guides/native/index.html:235
|
||
#, 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}Konstant:{ph1} feste Zahlen, die im Programm gespeichert, als Rohbytes "
|
||
"gelesen und dekodiert werden."
|
||
|
||
#: website/public/guides/native/index.html:242
|
||
msgctxt "page:guides/native/index.html"
|
||
msgid "Three pieces of evidence, one calculation"
|
||
msgstr "Drei Beweise, eine Rechnung"
|
||
|
||
#. {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:246
|
||
#, 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 * Anleitung{ph1}{ph2}Eine ganzzahlige Eingabe{ph3}{ph4}Ein "
|
||
"Stapellesevorgang liefert den Wert, der von den Gleitkommabefehlen verwendet"
|
||
" wird.{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:254
|
||
#, 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 * Anrufer{ph1}{ph2}Eine Bildschirmkoordinate{ph3}{ph4}Der "
|
||
"Ziegelstein-Hit-Anrufer geht vorbei {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:262
|
||
#, 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 * Datenbytes{ph1}{ph2}Die numerischen "
|
||
"Konstanten{ph3}{ph4}Referenzierte Bytes dekodieren zu {ph5}, {ph6} und einen"
|
||
" Skalenwert.{ph7}"
|
||
|
||
#: website/public/guides/native/index.html:274
|
||
msgctxt "page:guides/native/index.html"
|
||
msgid ""
|
||
"REA supplies the instructions, call relationship and bytes. The agent "
|
||
"interprets them together."
|
||
msgstr ""
|
||
"REA liefert die Anweisungen, die Funktionsaufrufbeziehung und die Bytes. Der"
|
||
" Agent interpretiert sie zusammen."
|
||
|
||
#: website/public/guides/native/index.html:281
|
||
msgctxt "page:guides/native/index.html"
|
||
msgid "Ask about the behavior"
|
||
msgstr "Fragen Sie nach dem Verhalten"
|
||
|
||
#. {ph0}: <a href="../../get-started/#agent" >
|
||
#. {ph1}: </a >
|
||
#. {ph2}: <a href="../../get-started/#native" >
|
||
#. {ph3}: </a >
|
||
#: website/public/guides/native/index.html:282
|
||
#, 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 ""
|
||
"Nach {ph0}REA mit Ihrem Agenten verbinden{ph1} und {ph2}einrichten eines "
|
||
"Tools zur Analyse von Maschinencode-Programmen{ph3}, geben Sie die lokale "
|
||
"ausführbare Datei und eine Frage an:"
|
||
|
||
#: website/public/guides/native/index.html:293
|
||
msgctxt "page:guides/native/index.html"
|
||
msgid "Which analysis tool should I use?"
|
||
msgstr "Welches Analysetool soll ich verwenden?"
|
||
|
||
#: website/public/guides/native/index.html:294
|
||
msgctxt "page:guides/native/index.html"
|
||
msgid "REA needs one of these to read native programs:"
|
||
msgstr "REA benötigt eines davon, um native Programme zu lesen:"
|
||
|
||
#. {ph0}: <strong>
|
||
#. {ph1}: </strong>
|
||
#: website/public/guides/native/index.html:296
|
||
#, 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} MODELL: Hopper {ph1} (macOS oder Linux): Das Setup von REA erkennt es "
|
||
"oder bietet an, es zu installieren. Öffnen Sie macOS auf Hopper einmal und "
|
||
"wählen Sie den Demo-Modus oder aktivieren Sie eine Lizenz vor Ihrer ersten "
|
||
"Analyse."
|
||
|
||
#. {ph0}: <strong>
|
||
#. {ph1}: </strong>
|
||
#: website/public/guides/native/index.html:302
|
||
#, 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} MODELL: Ghidra {ph1} (macOS oder Linux; experimentell auf Windows): "
|
||
"kostenlos, benötigt jedoch ein vorhandenes Ghidra 12.1.x-Installation und "
|
||
"ein 64-Bit-JDK 21 oder neuer."
|
||
|
||
#. {ph0}: <strong>
|
||
#. {ph1}: </strong>
|
||
#: website/public/guides/native/index.html:307
|
||
#, 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} MODELL: IDA {ph1} (Windows ): für ein vorhandenes IDA-Setup mit einer "
|
||
"MCP-Registrierung."
|
||
|
||
#. {ph0}: <a href="../../get-started/#native">
|
||
#. {ph1}: </a>
|
||
#: website/public/guides/native/index.html:312
|
||
#, python-brace-format
|
||
msgctxt "page:guides/native/index.html"
|
||
msgid "See {ph0}Set up native analysis{ph1} for the steps."
|
||
msgstr ""
|
||
"Sehen {ph0}Analyse von Maschinencode-Programmen einrichten{ph1} für die "
|
||
"Stufen."
|
||
|
||
#. {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:320
|
||
#, 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}Ihr Codierungsagent"
|
||
|
||
#: website/public/guides/native/index.html:324
|
||
#: website/public/guides/native/index.html:455
|
||
msgctxt "page:guides/native/index.html"
|
||
msgid "Copy"
|
||
msgstr "Kopieren"
|
||
|
||
#. {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:333
|
||
#, 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}Verwenden Sie REA, um herauszufinden, wie DX-Ball die "
|
||
"Stereoklangpositionierung berechnet. Erklären Sie die Berechnung und zeigen "
|
||
"Sie den Code.{ph3}{ph4}{ph5}"
|
||
|
||
#: website/public/guides/native/index.html:341
|
||
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 ""
|
||
"Beispiel Eingabeaufforderung. Geben Sie Ihrem Agenten den Pfad zu Ihrer "
|
||
"lokalen ausführbaren Datei DX-Ball 1.07. REA enthält DX-Ball nicht. "
|
||
"Verwenden Sie also Ihre eigene Kopie oder stellen Sie die gleiche Frage zu "
|
||
"einem anderen kleinen Windows-Programm, das Sie haben."
|
||
|
||
#: website/public/guides/native/index.html:348
|
||
msgctxt "page:guides/native/index.html"
|
||
msgid "How do I get a file's full path?"
|
||
msgstr "Wie erhalte ich den vollständigen Pfad einer Datei?"
|
||
|
||
#. {ph0}: <strong>
|
||
#. {ph1}: </strong>
|
||
#. {ph2}: <em>
|
||
#. {ph3}: </em>
|
||
#: website/public/guides/native/index.html:350
|
||
#, 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} MODELL: Windows :{ph1} klicken Sie im Datei-Explorer mit der rechten "
|
||
"Maustaste auf die Datei und wählen Sie {ph2}Als Pfad kopieren{ph3}. Halten "
|
||
"Sie bei Windows 10 die Umschalttaste gedrückt, während Sie mit der rechten "
|
||
"Maustaste klicken."
|
||
|
||
#. {ph0}: <strong>
|
||
#. {ph1}: </strong>
|
||
#. {ph2}: <em>
|
||
#. {ph3}: </em>
|
||
#: website/public/guides/native/index.html:355
|
||
#, 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} MODELL: macOS :{ph1} klicken Sie im Finder mit der rechten Maustaste "
|
||
"auf die Datei, halten Sie die Option gedrückt und wählen Sie {ph2}Kopiere "
|
||
"\"...\" als Pfadnamen{ph3}."
|
||
|
||
#. {ph0}: <strong>
|
||
#. {ph1}: </strong>
|
||
#: website/public/guides/native/index.html:359
|
||
#, 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}Jedes System:{ph1} ziehen Sie die Datei in ein Terminalfenster und ihr "
|
||
"Pfad wird angezeigt."
|
||
|
||
#: website/public/guides/native/index.html:367
|
||
msgctxt "page:guides/native/index.html"
|
||
msgid "Read the REA results"
|
||
msgstr "Lesen Sie die REA-Ergebnisse"
|
||
|
||
#: website/public/guides/native/index.html:368
|
||
msgctxt "page:guides/native/index.html"
|
||
msgid "Read the input"
|
||
msgstr "Lesen Sie die Eingabe"
|
||
|
||
#: website/public/guides/native/index.html:377
|
||
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 ""
|
||
"Die Anweisungen laden ein ganzzahliges Argument und konvertieren es für "
|
||
"Gleitkomma-Arithmetik. Dies ist die Eingabe, die in der ersten Pseudocode-"
|
||
"Ansicht fehlt."
|
||
|
||
#: website/public/guides/native/index.html:382
|
||
msgctxt "page:guides/native/index.html"
|
||
msgid "Follow the caller"
|
||
msgstr "Folgen Sie dem Anrufer"
|
||
|
||
#. {ph0}: <code>0x14</code>
|
||
#: website/public/guides/native/index.html:391
|
||
#, 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 identifiziert den Brick-Hit-Anrufer. Seine früheren Anweisungen "
|
||
"multiplizieren die Kachelkoordinate mit 30; Hinzufügen {ph0} (20) gibt die "
|
||
"Bildschirmposition des Bausteins an."
|
||
|
||
#: website/public/guides/native/index.html:396
|
||
msgctxt "page:guides/native/index.html"
|
||
msgid "Read the referenced constants"
|
||
msgstr "Lesen Sie die referenzierten Konstanten"
|
||
|
||
#: website/public/guides/native/index.html:407
|
||
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 ""
|
||
"Die Arithmetik referenziert diese Adressen. Das Lesen der Bytes liefert die "
|
||
"tatsächlichen Werte; Die Befehlsreihenfolge teilt dem Agenten mit, wie sie "
|
||
"verwendet werden."
|
||
|
||
#: website/public/guides/native/index.html:414
|
||
msgctxt "page:guides/native/index.html"
|
||
msgid "Write and check the recovered function"
|
||
msgstr "Schreiben und überprüfen Sie die wiederhergestellte Funktion"
|
||
|
||
#: website/public/guides/native/index.html:423
|
||
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 ""
|
||
"Bei einem Maßstab von 1,0 werden die Bildschirmpositionen 0, 320 und 640 vor"
|
||
" der Ganzzahlumwandlung auf -500, 0 und 500 abgebildet. Bei der Berechnung "
|
||
"wird die Bildschirmmitte in die Mitte des Stereofelds gesetzt."
|
||
|
||
#: website/public/guides/native/index.html:428
|
||
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 ""
|
||
"Der Agent verwendete die Ergebnisse von REA, um das C zu schreiben. Separate"
|
||
" Überprüfungen verglichen 3.205 Eingaben mit der ursprünglichen x86-Funktion"
|
||
" und reproduzierten alle 63 kompilierten Bytes der vollständigen Funktion."
|
||
|
||
#. {ph0}: <a href="../../showcase/dx-ball/#sound-pan" >
|
||
#. {ph1}: </a >
|
||
#: website/public/guides/native/index.html:433
|
||
#, python-brace-format
|
||
msgctxt "page:guides/native/index.html"
|
||
msgid "{ph0}See the full investigation and assembly-to-C comparison{ph1}"
|
||
msgstr ""
|
||
"{ph0}Sehen Sie sich die vollständige Untersuchung und den Assembly-to-C-"
|
||
"Vergleich an{ph1}"
|
||
|
||
#: website/public/guides/native/index.html:440
|
||
msgctxt "page:guides/native/index.html"
|
||
msgid "Try it with your own binary"
|
||
msgstr "Probieren Sie es mit Ihrer eigenen Binärdatei aus"
|
||
|
||
#. {ph0}: <a href="../../get-started/#native" >
|
||
#. {ph1}: </a >
|
||
#: website/public/guides/native/index.html:441
|
||
#, 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}Verbinden Sie eine Analyse von Maschinencode-Programmen Anbieter{ph1}, "
|
||
"dann geben Sie Ihrem Agenten eine lokale ausführbare Datei oder Bibliothek "
|
||
"und eine zu untersuchende Funktion. Nützliche Startfragen sind unter anderem"
|
||
" “Wie wird diese Datei analysiert?\" oder \"Welche Funktion behandelt diese "
|
||
"Menüaktion?”"
|
||
|
||
#: website/public/guides/native/index.html:448
|
||
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 ""
|
||
"Wenn Sie bereits einen Funktionsnamen oder eine Adresse kennen, können Sie "
|
||
"diese vom Terminal abfragen. Für eine konfigurierte Ghidra-Installation:"
|
||
|
||
#: website/public/guides/native/index.html:454
|
||
msgctxt "page:guides/native/index.html"
|
||
msgid "Function analysis"
|
||
msgstr "Funktionsanalyse"
|
||
|
||
#. {ph0}: <code>main</code>
|
||
#: website/public/guides/native/index.html:467
|
||
#, 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 ""
|
||
"Ersetzen Sie den Zielpfad und {ph0} mit Ihrem eigenen Funktionsnamen oder "
|
||
"Ihrer eigenen Adresse. Jeder CLI-Aufruf importiert und analysiert die "
|
||
"Binärdatei und schließt dann ihre Sitzung. Die MCP-Abfragen Ihres Agenten "
|
||
"verwenden die importierte Binärdatei wieder, während diese Sitzung geöffnet "
|
||
"ist."
|
||
|
||
#: website/public/guides/native/index.html:473
|
||
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 ""
|
||
"Lesen Sie den Pseudocode zusammen mit Anweisungen und Referenzen. Wenn ein "
|
||
"Ergebnis einen Anruf oder Wert ungelöst lässt, verwenden Sie diesen Ort als "
|
||
"nächste Frage."
|
||
|
||
#: website/public/guides/native/index.html:6
|
||
msgctxt "page:guides/native/index.html"
|
||
msgid "Native Binary Analysis — REA"
|
||
msgstr "Native binäre Analyse - 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 ""
|
||
"Stellen Sie eine native Berechnung mit REA wieder her: Überprüfen Sie "
|
||
"Anweisungen, folgen Sie einem Aufrufer, lesen Sie Konstanten und überprüfen "
|
||
"Sie rekonstruiertes C."
|
||
|
||
#: website/public/guides/native/index.html:191
|
||
msgctxt "page:guides/native/index.html"
|
||
msgid "On this page"
|
||
msgstr "Auf dieser Seite"
|
||
|
||
#: website/public/guides/native/index.html:201
|
||
msgctxt "page:guides/native/index.html"
|
||
msgid "Native analysis"
|
||
msgstr "Analyse von Maschinencode-Programmen"
|
||
|
||
#: website/public/guides/native/index.html:324
|
||
msgctxt "page:guides/native/index.html"
|
||
msgid "Copy example prompt"
|
||
msgstr "Beispiel-Eingabeaufforderung kopieren"
|
||
|
||
#: website/public/guides/native/index.html:455
|
||
msgctxt "page:guides/native/index.html"
|
||
msgid "Copy function analysis"
|
||
msgstr "Analyse der Kopierfunktion"
|
||
|
||
#: website/public/guides/native/index.html:496
|
||
msgctxt "page:guides/native/index.html"
|
||
msgid "Back to top"
|
||
msgstr "Nach oben"
|
||
|
||
#: website/public/index.html:101
|
||
msgctxt "page:index.html"
|
||
msgid "Skip to content"
|
||
msgstr "Zum Inhalt springen"
|
||
|
||
#: website/public/index.html:183 website/public/index.html:193
|
||
#: website/public/index.html:191
|
||
msgctxt "page:index.html"
|
||
msgid "On this page"
|
||
msgstr "Auf dieser Seite"
|
||
|
||
#: website/public/index.html:184 website/public/index.html:233
|
||
msgctxt "page:index.html"
|
||
msgid "Set up REA"
|
||
msgstr "Einrichten von REA"
|
||
|
||
#. {ph0}: <a href="#setup" aria-current="location">
|
||
#. {ph1}: </a>
|
||
#: website/public/index.html:195
|
||
#, python-brace-format
|
||
msgctxt "page:index.html"
|
||
msgid "{ph0}Set up REA{ph1}"
|
||
msgstr "{ph0}Einrichten von REA {ph1}"
|
||
|
||
#. {ph0}: <a href="#what-is-re">
|
||
#. {ph1}: </a>
|
||
#: website/public/index.html:196
|
||
#, python-brace-format
|
||
msgctxt "page:index.html"
|
||
msgid "{ph0}What is RE?{ph1}"
|
||
msgstr "{ph0}Was ist RE?{ph1}"
|
||
|
||
#. {ph0}: <a href="#how-rea-helps">
|
||
#. {ph1}: </a>
|
||
#: website/public/index.html:197
|
||
#, python-brace-format
|
||
msgctxt "page:index.html"
|
||
msgid "{ph0}How REA helps{ph1}"
|
||
msgstr "{ph0}Wie REA hilft{ph1}"
|
||
|
||
#. {ph0}: <a href="#dinosaur">
|
||
#. {ph1}: </a>
|
||
#: website/public/index.html:198
|
||
#, python-brace-format
|
||
msgctxt "page:index.html"
|
||
msgid "{ph0}Dinosaur game{ph1}"
|
||
msgstr "{ph0}Dinosaurier-Spiel{ph1}"
|
||
|
||
#. {ph0}: <a href="#calculator">
|
||
#. {ph1}: </a>
|
||
#: website/public/index.html:199
|
||
#, python-brace-format
|
||
msgctxt "page:index.html"
|
||
msgid "{ph0}Calculator{ph1}"
|
||
msgstr "{ph0}Rechner{ph1}"
|
||
|
||
#. {ph0}: <a href="#try-rea">
|
||
#. {ph1}: </a>
|
||
#: website/public/index.html:200
|
||
#, python-brace-format
|
||
msgctxt "page:index.html"
|
||
msgid "{ph0}Try REA{ph1}"
|
||
msgstr "{ph0}Probieren Sie REA aus {ph1}"
|
||
|
||
#. {ph0}: <a href="#analyze">
|
||
#. {ph1}: </a>
|
||
#: website/public/index.html:201
|
||
#, python-brace-format
|
||
msgctxt "page:index.html"
|
||
msgid "{ph0}Go deeper{ph1}"
|
||
msgstr "{ph0}Tiefer einsteigen{ph1}"
|
||
|
||
#. {ph0}: <a href="#questions">
|
||
#. {ph1}: </a>
|
||
#: website/public/index.html:202
|
||
#, python-brace-format
|
||
msgctxt "page:index.html"
|
||
msgid "{ph0}Help & feedback{ph1}"
|
||
msgstr "{ph0}Hilfe & Feedback{ph1}"
|
||
|
||
#. {ph0}: <a href="#community">
|
||
#. {ph1}: </a>
|
||
#: website/public/index.html:203
|
||
#, python-brace-format
|
||
msgctxt "page:index.html"
|
||
msgid "{ph0}Community{ph1}"
|
||
msgstr "{ph0}Gemeinschaft{ph1}"
|
||
|
||
#: website/public/index.html:212
|
||
msgctxt "page:index.html"
|
||
msgid "Reverse engineering, with your coding agent"
|
||
msgstr "Reverse Engineering mit Ihrem Codierungsagenten"
|
||
|
||
#. {ph0}: <br />
|
||
#: website/public/index.html:213
|
||
#, python-brace-format
|
||
msgctxt "page:index.html"
|
||
msgid "Find out how{ph0}software works."
|
||
msgstr "Finde heraus,{ph0}wie Software funktioniert."
|
||
|
||
#: website/public/index.html:214
|
||
msgctxt "page:index.html"
|
||
msgid ""
|
||
"REA gives your agent the tools to inspect a program and explain what it "
|
||
"does."
|
||
msgstr ""
|
||
"REA gibt deinem Coding-Agent die Werkzeuge, um ein Programm zu untersuchen "
|
||
"und sein Verhalten zu erklären."
|
||
|
||
#. {ph0}: <a href="#analysis-guides">
|
||
#. {ph1}: </a>
|
||
#: website/public/index.html:223
|
||
#, python-brace-format
|
||
msgctxt "page:index.html"
|
||
msgid "Already know RE? {ph0}Skip to analysis guides →{ph1}"
|
||
msgstr "Kennen Sie RE schon? {ph0}Zu den Analysehandbüchern springen →{ph1}"
|
||
|
||
#. {ph0}: <a href="blog/">
|
||
#. {ph1}: </a>
|
||
#: website/public/index.html:227
|
||
#, python-brace-format
|
||
msgctxt "page:index.html"
|
||
msgid "Want to go deeper? {ph0}Read the Blog →{ph1}"
|
||
msgstr "Willst du tiefer gehen? {ph0}Lesen Sie den Blog →{ph1}"
|
||
|
||
#: website/public/index.html:234
|
||
msgctxt "page:index.html"
|
||
msgid "Copy this into your coding agent:"
|
||
msgstr "Kopiere diesen Prompt in deinen Coding-Agent:"
|
||
|
||
#. {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:237
|
||
#, 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}Ihr Codierungsagent"
|
||
|
||
#: website/public/index.html:242 website/public/index.html:264
|
||
#: website/public/index.html:479 website/public/index.html:647
|
||
#: website/public/index.html:883 website/public/index.html:1045
|
||
#: website/public/index.html:1073
|
||
msgctxt "page:index.html"
|
||
msgid "Copy"
|
||
msgstr "Kopieren"
|
||
|
||
#: website/public/index.html:261
|
||
msgctxt "page:index.html"
|
||
msgid "Or run this in your terminal:"
|
||
msgstr "Oder führe diesen Befehl im Terminal aus:"
|
||
|
||
#: website/public/index.html:273
|
||
msgctxt "page:index.html"
|
||
msgid "Approve the setup plan, then restart your agent."
|
||
msgstr ""
|
||
"Prüfe und bestätige die geplanten Änderungen. Starte danach deinen Agent "
|
||
"neu."
|
||
|
||
#: website/public/index.html:288
|
||
msgctxt "page:index.html"
|
||
msgid "What is reverse engineering?"
|
||
msgstr "Was ist Reverse Engineering?"
|
||
|
||
#. {ph0}: <strong>
|
||
#. {ph1}: </strong>
|
||
#: website/public/index.html:289
|
||
#, python-brace-format
|
||
msgctxt "page:index.html"
|
||
msgid ""
|
||
"Finding out how software works by {ph0}examining the program itself.{ph1}"
|
||
msgstr ""
|
||
"Herausfinden, wie Software funktioniert, indem man {ph0}das Programm selbst "
|
||
"untersucht.{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:294
|
||
#, 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 ""
|
||
"Das Ziel: ein Feature gut genug verstehen, um {ph0}erkläre es{ph1}, "
|
||
"{ph2}ändern Sie es{ph3} oder {ph4}bauen Sie es wieder auf.{ph5}"
|
||
|
||
#. {ph0}: <strong class="prose-highlight">
|
||
#. {ph1}: </strong>
|
||
#: website/public/index.html:312
|
||
#, python-brace-format
|
||
msgctxt "page:index.html"
|
||
msgid "Before REA · You investigate it {ph0}yourself{ph1}"
|
||
msgstr "Vor REA · Du untersuchst es {ph0}selbst{ph1}"
|
||
|
||
#. {ph0}: <span>
|
||
#. {ph1}: </span>
|
||
#: website/public/index.html:321
|
||
#, python-brace-format
|
||
msgctxt "page:index.html"
|
||
msgid "{ph0}01{ph1} Decode branches"
|
||
msgstr "{ph0}01{ph1} Zweige dekodieren"
|
||
|
||
#. {ph0}: <span>
|
||
#. {ph1}: </span>
|
||
#: website/public/index.html:329
|
||
#, python-brace-format
|
||
msgctxt "page:index.html"
|
||
msgid "{ph0}02{ph1} Trace calls"
|
||
msgstr "{ph0}02{ph1} Anrufe verfolgen"
|
||
|
||
#. {ph0}: <span>
|
||
#. {ph1}: </span>
|
||
#: website/public/index.html:337
|
||
#, python-brace-format
|
||
msgctxt "page:index.html"
|
||
msgid "{ph0}03{ph1} Recover the rule"
|
||
msgstr "{ph0}03{ph1} Wiederherstellen der Regel"
|
||
|
||
#. {ph0}: <span>
|
||
#. {ph1}: </span>
|
||
#. {ph2}: <span class="assembly-disclosure" aria-hidden="true">
|
||
#. {ph3}: </span>
|
||
#: website/public/index.html:352
|
||
#, python-brace-format
|
||
msgctxt "page:index.html"
|
||
msgid "{ph0}Original x64 · selected instructions{ph1} {ph2}{ph3}"
|
||
msgstr "{ph0}Original x64 * ausgewählte Anleitung{ph1} {ph2}{ph3}"
|
||
|
||
#: website/public/index.html:391
|
||
msgctxt "page:index.html"
|
||
msgid "01 · Which branch?"
|
||
msgstr "01 * Welche Branche?"
|
||
|
||
#. {ph0}: <strong>
|
||
#. {ph1}: </strong>
|
||
#: website/public/index.html:392
|
||
#, 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? 0x5 Grad?{ph1} Zwei Sprünge an die gleiche Stelle. Welche "
|
||
"Betreiber sind das?”"
|
||
|
||
#: website/public/index.html:396
|
||
msgctxt "page:index.html"
|
||
msgid "Look up the command IDs, then label the branch."
|
||
msgstr "Suchen Sie nach den Befehls-IDs und beschriften Sie den Zweig."
|
||
|
||
#: website/public/index.html:402
|
||
msgctxt "page:index.html"
|
||
msgid "Divide ÷"
|
||
msgstr "Teilen ÷"
|
||
|
||
#: website/public/index.html:406
|
||
msgctxt "page:index.html"
|
||
msgid "Multiply ×"
|
||
msgstr "Multiplizieren ×"
|
||
|
||
#: website/public/index.html:411
|
||
msgctxt "page:index.html"
|
||
msgid "02 · What do the calls do?"
|
||
msgstr "02 · Was machen die aufgerufenen Funktionen?"
|
||
|
||
#. {ph0}: <strong>
|
||
#. {ph1}: </strong >
|
||
#: website/public/index.html:412
|
||
#, 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 ist klar. Die Anrufe sind nur Adressen. {ph0}Welcher teilt sich? "
|
||
"Welcher Wert geht ein?{ph1}”"
|
||
|
||
#: website/public/index.html:417
|
||
msgctxt "page:index.html"
|
||
msgid "Inspect the helpers and trace the stored values."
|
||
msgstr ""
|
||
"Überprüfen Sie die Hilfsfunktionen und verfolgen Sie die gespeicherten "
|
||
"Werte."
|
||
|
||
#: website/public/index.html:427
|
||
msgctxt "page:index.html"
|
||
msgid "Divide"
|
||
msgstr "Teilen"
|
||
|
||
#: website/public/index.html:432
|
||
msgctxt "page:index.html"
|
||
msgid "03 · What is the rule?"
|
||
msgstr "03 · Was ist die Regel?"
|
||
|
||
#. {ph0}: <strong>
|
||
#. {ph1}: </strong>
|
||
#: website/public/index.html:433
|
||
#, 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 ""
|
||
"“Dieser Pfad multipliziert sich mit der anderen Eingabe. So {ph0}10% "
|
||
"bedeutet 10% von 200{ph1} nach +.”"
|
||
|
||
#: website/public/index.html:437
|
||
msgctxt "page:index.html"
|
||
msgid "Name the operands and check both operator paths."
|
||
msgstr "Benennen Sie die Operanden und überprüfen Sie beide Operatorpfade."
|
||
|
||
#: website/public/index.html:453 website/public/index.html:381
|
||
msgctxt "page:index.html"
|
||
msgid "Illustrative expert reasoning"
|
||
msgstr "Anschauliche Argumentation von Experten"
|
||
|
||
#. {ph0}: <strong >
|
||
#. {ph1}: </strong >
|
||
#: website/public/index.html:456
|
||
#, python-brace-format
|
||
msgctxt "page:index.html"
|
||
msgid ""
|
||
"{ph0}You decode the instructions, follow the calls and reconstruct the "
|
||
"calculation.{ph1}"
|
||
msgstr ""
|
||
"{ph0}Sie entschlüsseln die Anweisungen, folgen den Funktionsaufrufen und "
|
||
"rekonstruieren die Berechnung.{ph1}"
|
||
|
||
#. {ph0}: <strong class="prose-highlight">
|
||
#. {ph1}: </strong>
|
||
#: website/public/index.html:464
|
||
#, python-brace-format
|
||
msgctxt "page:index.html"
|
||
msgid "With REA · You ask {ph0}your agent{ph1}"
|
||
msgstr "Mit REA · Du fragst {ph0}deinen Agent{ph1}"
|
||
|
||
#: website/public/index.html:468
|
||
msgctxt "page:index.html"
|
||
msgid "One prompt."
|
||
msgstr "Ein einziger Prompt."
|
||
|
||
#. {ph0}: <strong>
|
||
#. {ph1}: </strong>
|
||
#: website/public/index.html:469
|
||
#, python-brace-format
|
||
msgctxt "page:index.html"
|
||
msgid "Ask your agent {ph0}in plain English.{ph1}"
|
||
msgstr "Frag deinen Agent {ph0}in ganz normalen Worten.{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:474
|
||
#, 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}Beispiel Eingabeaufforderung * "
|
||
"Rechner"
|
||
|
||
#: website/public/index.html:496
|
||
msgctxt "page:index.html"
|
||
msgid "Example answer · based on the findings"
|
||
msgstr "Beispielantwort * basierend auf den Ergebnissen"
|
||
|
||
#. {ph0}: <strong>
|
||
#. {ph1}: </strong>
|
||
#: website/public/index.html:499
|
||
#, python-brace-format
|
||
msgctxt "page:index.html"
|
||
msgid ""
|
||
"After +, the % button takes {ph0}a percentage of the first number.{ph1}"
|
||
msgstr "Nach + nimmt die% -Taste {ph0}ein Prozentsatz der ersten Zahl.{ph1}"
|
||
|
||
#: website/public/index.html:511
|
||
msgctxt "page:index.html"
|
||
msgid "REA supplies"
|
||
msgstr "REA liefert"
|
||
|
||
#: website/public/index.html:512
|
||
msgctxt "page:index.html"
|
||
msgid "The handler’s instructions, decompiled code and calls."
|
||
msgstr "Die Anweisungen des Handlers, dekompilierter Code und Aufrufe."
|
||
|
||
#: website/public/index.html:517
|
||
msgctxt "page:index.html"
|
||
msgid "Your agent explains"
|
||
msgstr "Dein Agent erklärt"
|
||
|
||
#: website/public/index.html:518
|
||
msgctxt "page:index.html"
|
||
msgid "Which branch applies, what it calculates and how to rebuild it."
|
||
msgstr "Welcher Zweig gilt, was er berechnet und wie er neu erstellt wird."
|
||
|
||
#. {ph0}: <a href="#calculator">
|
||
#. {ph1}: </a>
|
||
#: website/public/index.html:525
|
||
#, 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 ""
|
||
"Ausgewählte Baugruppe aus der installierten Taschenrechner-DLL. Die Gedanken"
|
||
" und Antworten veranschaulichen die Ergebnisse. {ph0}Fahren Sie mit dem "
|
||
"Taschenrechnerbeispiel fort ↓{ph1}"
|
||
|
||
#. {ph0}: <strong>
|
||
#. {ph1}: </strong>
|
||
#: website/public/index.html:536
|
||
#, 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}Probieren wir zwei Beispiele aus.{ph1} Ändere die Geschwindigkeit eines"
|
||
" Spiels, kehre dann zum Taschenrechner zurück und baue die%-Schaltfläche neu"
|
||
" auf."
|
||
|
||
#: website/public/index.html:542
|
||
msgctxt "page:index.html"
|
||
msgid "Example 01 · Chrome’s dinosaur game"
|
||
msgstr "Beispiel 01 * Dinosaurier-Spiel von Chrome"
|
||
|
||
#: website/public/index.html:543
|
||
msgctxt "page:index.html"
|
||
msgid "Why does the dinosaur get faster?"
|
||
msgstr "Warum wird der Dinosaurier schneller?"
|
||
|
||
#: website/public/index.html:547 website/public/index.html:785
|
||
msgctxt "page:index.html"
|
||
msgid "Goal"
|
||
msgstr "Ziel"
|
||
|
||
#. {ph0}: <mark class="prose-highlight">
|
||
#. {ph1}: </mark>
|
||
#: website/public/index.html:548
|
||
#, python-brace-format
|
||
msgctxt "page:index.html"
|
||
msgid "Rebuild the game with {ph0}adjustable speed.{ph1}"
|
||
msgstr "Baue das Spiel mit neu auf {ph0}einstellbare Geschwindigkeit.{ph1}"
|
||
|
||
#: website/public/index.html:554 website/public/index.html:792
|
||
msgctxt "page:index.html"
|
||
msgid "Why reverse engineer it?"
|
||
msgstr "Warum es zurückentwickeln?"
|
||
|
||
#. {ph0}: <strong>
|
||
#. {ph1}: </strong>
|
||
#: website/public/index.html:555
|
||
#, 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 ""
|
||
"Um seine Beschleunigung zu reproduzieren, brauchen wir {ph0}die Regel im "
|
||
"laufenden Spiel{ph1}: wie schnell es beginnt, wie stark es zunimmt und wann "
|
||
"es aufhört."
|
||
|
||
#: website/public/index.html:564
|
||
msgctxt "page:index.html"
|
||
msgid "Play the reconstruction"
|
||
msgstr "Den Nachbau spielen"
|
||
|
||
#: website/public/index.html:596
|
||
msgctxt "page:index.html"
|
||
msgid "Play"
|
||
msgstr "Spielen"
|
||
|
||
#: website/public/index.html:599
|
||
msgctxt "page:index.html"
|
||
msgid "Jump ↑"
|
||
msgstr "Springen ↑"
|
||
|
||
#: website/public/index.html:600
|
||
msgctxt "page:index.html"
|
||
msgid "Restart"
|
||
msgstr "Neustart"
|
||
|
||
#: website/public/index.html:603
|
||
msgctxt "page:index.html"
|
||
msgid "Speed"
|
||
msgstr "Geschwindigkeit"
|
||
|
||
#: website/public/index.html:613
|
||
msgctxt "page:index.html"
|
||
msgid "Use the recovered acceleration rule"
|
||
msgstr "Verwenden Sie die wiederhergestellte Beschleunigungsregel"
|
||
|
||
#: website/public/index.html:617
|
||
msgctxt "page:index.html"
|
||
msgid "Original rule: start at 6, then increase toward 13."
|
||
msgstr ""
|
||
"Ursprüngliche Regel: Beginnen Sie bei 6 und erhöhen Sie sich dann in "
|
||
"Richtung 13."
|
||
|
||
#: website/public/index.html:620
|
||
msgctxt "page:index.html"
|
||
msgid "Move the slider to set your own speed. Space or Jump clears a cactus."
|
||
msgstr ""
|
||
"Bewegen Sie den Schieberegler, um Ihre eigene Geschwindigkeit einzustellen. "
|
||
"Leertaste oder Sprung löscht einen Kaktus."
|
||
|
||
#: website/public/index.html:625
|
||
msgctxt "page:index.html"
|
||
msgid ""
|
||
"Enable JavaScript to play the reconstruction. The code and explanation above"
|
||
" remain readable."
|
||
msgstr ""
|
||
"Aktivieren Sie JavaScript, um die Rekonstruktion abzuspielen. Der Code und "
|
||
"die obige Erklärung bleiben lesbar."
|
||
|
||
#: website/public/index.html:633 website/public/index.html:863
|
||
msgctxt "page:index.html"
|
||
msgid "REA returned"
|
||
msgstr "REA hat zurückgegeben"
|
||
|
||
#. {ph0}: <strong>
|
||
#. {ph1}: </strong>
|
||
#: website/public/index.html:634
|
||
#, 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}Das Skript, das tatsächlich auf der Seite ausgeführt wird.{ph1} Der "
|
||
"Agent liest seine Aktualisierungsfunktion und Geschwindigkeitseinstellungen "
|
||
"und verwendet diese Regel dann in einem neuen Spiel."
|
||
|
||
#. {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:642
|
||
#, 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}Beispiel Prompt * Dinosaurier-Spiel"
|
||
|
||
#. {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:656
|
||
#, 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}Verwenden Sie REA, um dieses Dinosaurierspiel zu "
|
||
"inspizieren. Warum wird es schneller? Zeigen Sie die Geschwindigkeitsregel "
|
||
"an und bauen Sie dann eine kleine Version mit einstellbarer "
|
||
"Geschwindigkeit.{ph3}{ph4}{ph5}"
|
||
|
||
#. {ph0}: <a href="https://wayou.github.io/t-rex-runner/" >
|
||
#. {ph1}: </a >
|
||
#: website/public/index.html:665
|
||
#, python-brace-format
|
||
msgctxt "page:index.html"
|
||
msgid "Inspected target: {ph0}wayou’s Chromium-derived browser edition{ph1}."
|
||
msgstr ""
|
||
"Untersuchtes Ziel: {ph0}wayous von Chromium abgeleitete Browser-"
|
||
"Edition{ph1}."
|
||
|
||
#. {ph0}: <strong>
|
||
#. {ph1}: </strong>
|
||
#. {ph2}: <strong>
|
||
#. {ph3}: </strong>
|
||
#. {ph4}: <strong>
|
||
#. {ph5}: </strong>
|
||
#: website/public/index.html:682
|
||
#, 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}Beginnen Sie bei 6.{ph1} Hinzufügen {ph2}0.001{ph3} jedes Update ohne "
|
||
"Kollision, während die Geschwindigkeit darunter liegt {ph4}13{ph5}."
|
||
|
||
#: website/public/index.html:687
|
||
msgctxt "page:index.html"
|
||
msgid "Open the speed lab →"
|
||
msgstr "Öffnen Sie das Geschwindigkeitslabor →"
|
||
|
||
#: website/public/index.html:693
|
||
msgctxt "page:index.html"
|
||
msgid "What each part does"
|
||
msgstr "Was jeder Teil tut"
|
||
|
||
#. {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:695
|
||
#, 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}Lesen Sie das Skript des laufenden "
|
||
"Spiels{ph3}{ph4}Geben Sie den tatsächlichen Code und die Einstellungen an "
|
||
"den Agenten zurück.{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:702
|
||
#, 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 · Ihr Agent{ph1}{ph2}Erstellen Sie die Regel neu, fügen Sie ein "
|
||
"Steuerelement hinzu{ph3}{ph4}Verwenden Sie die wiederhergestellte "
|
||
"Beschleunigung in einem kleinen Spiel mit einem Geschwindigkeitsregler.{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:710
|
||
#, 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 · Sie{ph1}{ph2}Ändern Sie die Geschwindigkeit und spielen "
|
||
"Sie{ph3}{ph4}Probieren Sie die ursprüngliche Beschleunigung aus und wählen "
|
||
"Sie dann Ihr eigenes Tempo.{ph5}"
|
||
|
||
#: website/public/index.html:721
|
||
msgctxt "page:index.html"
|
||
msgid "See the script, checks and how to try the analysis"
|
||
msgstr ""
|
||
"Sehen Sie sich das Skript, die Überprüfungen und das Ausprobieren der "
|
||
"Analyse an"
|
||
|
||
#. {ph0}: <code>index.js</code>
|
||
#: website/public/index.html:724
|
||
#, 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 überprüfte die HTTP-Browser-Edition über eine lokale Debugging-"
|
||
"Verbindung und gab das geladene zurück {ph0}, einschließlich seiner Quelle "
|
||
"und Verdauung."
|
||
|
||
#: website/public/index.html:737
|
||
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 ""
|
||
"Wir haben die Update-Funktion des Originalspiels in einem kontrollierten "
|
||
"Browser-Check aufgerufen, bei dem Hindernisse und die automatische "
|
||
"Zeitplanung deaktiviert waren. Nach 4.000 Aktualisierungen betrug die "
|
||
"Geschwindigkeit 10,0; Nach 10.000 war es 13,0, auf eine Dezimalstelle "
|
||
"gerundet."
|
||
|
||
#. {ph0}: <a href="examples/dino-lab/">
|
||
#. {ph1}: </a>
|
||
#: website/public/index.html:743
|
||
#, 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 ""
|
||
"Das neue Minispiel hält diese Geschwindigkeitsregel ein. Sein Zeichen-, "
|
||
"Sprung- und Kollisionscode ist eine kleine Unterrichtsimplementierung. "
|
||
"{ph0}Öffnen Sie das Labor{ph1} um den neuen Code zu sehen und die gleiche "
|
||
"Geschwindigkeitsprüfung durchzuführen."
|
||
|
||
#. {ph0}: <a href="guides/browser/#prepare">
|
||
#. {ph1}: </a>
|
||
#. {ph2}: <a href="https://wayou.github.io/t-rex-runner/" >
|
||
#. {ph3}: </a >
|
||
#: website/public/index.html:749
|
||
#, 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 ""
|
||
"Um das Ziel selbst zu inspizieren, folgen Sie den Anweisungen {ph0}schritte "
|
||
"zur Browser-Verbindung{ph1} wobei {ph2}die Dinosaurier-Seite{ph3}. Geben Sie"
|
||
" Ihrem Agenten die Seiten-URL und Ihren lokalen Debugging-Endpunkt an und "
|
||
"kopieren Sie dann die obige Eingabeaufforderung."
|
||
|
||
#. {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:758
|
||
#, python-brace-format
|
||
msgctxt "page:index.html"
|
||
msgid ""
|
||
"{ph0}Inspected speed code{ph1} · {ph2}Chromium Authors · BSD license{ph3}"
|
||
msgstr ""
|
||
"{ph0}Geprüfter Geschwindigkeitscode{ph1} · {ph2} Chromium Autoren * BSD-"
|
||
"Lizenz{ph3}"
|
||
|
||
#: website/public/index.html:775
|
||
msgctxt "page:index.html"
|
||
msgid "Example 02 · Windows Calculator"
|
||
msgstr "Beispiel 02 * Windows Rechner"
|
||
|
||
#: website/public/index.html:776
|
||
msgctxt "page:index.html"
|
||
msgid "Rebuild Calculator’s % button."
|
||
msgstr "Die %-Taste des Rechners nachbauen."
|
||
|
||
#. {ph0}: <mark class="prose-highlight">
|
||
#. {ph1}: </mark>
|
||
#: website/public/index.html:786
|
||
#, python-brace-format
|
||
msgctxt "page:index.html"
|
||
msgid ""
|
||
"Build a small calculator that handles {ph0}both + and × correctly.{ph1}"
|
||
msgstr ""
|
||
"Erstellen Sie einen kleinen Taschenrechner, der funktioniert {ph0}sowohl + "
|
||
"als auch × korrekt.{ph1}"
|
||
|
||
#. {ph0}: <strong>
|
||
#. {ph1}: </strong>
|
||
#: website/public/index.html:793
|
||
#, 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 ""
|
||
"Die gleiche Schaltfläche verwendet {ph0}unterschiedliche Regeln nach + und "
|
||
"×.{ph1} Wir überprüfen die installierte App, um herauszufinden, auf welche "
|
||
"Zahl der Prozentsatz angewendet wird."
|
||
|
||
#: website/public/index.html:802
|
||
msgctxt "page:index.html"
|
||
msgid "Try the calculation"
|
||
msgstr "Probieren Sie die Berechnung aus"
|
||
|
||
#: website/public/index.html:846
|
||
msgctxt "page:index.html"
|
||
msgid "Reset"
|
||
msgstr "Zurücksetzen"
|
||
|
||
#: website/public/index.html:854
|
||
msgctxt "page:index.html"
|
||
msgid "10% of 200 = 20. Then 200 + 20 = 220."
|
||
msgstr "10% von 200 = 20. Dann ist 200 + 20 = 220."
|
||
|
||
#: website/public/index.html:857
|
||
msgctxt "page:index.html"
|
||
msgid "Interactive illustration of the inspected percentage rule."
|
||
msgstr "Interaktive Darstellung der geprüften Prozentregel."
|
||
|
||
#. {ph0}: <strong >
|
||
#. {ph1}: </strong >
|
||
#: website/public/index.html:864
|
||
#, 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}Ein Zweig teilt sich durch 100. Die andere multipliziert sich auch mit "
|
||
"der ersten Zahl.{ph1} Der Agent verwendet beide, um die% -Schaltfläche neu "
|
||
"zu erstellen."
|
||
|
||
#. {ph0}: <code>previous = 200</code>
|
||
#. {ph1}: <code>current = 10</code>
|
||
#: website/public/index.html:872
|
||
#, python-brace-format
|
||
msgctxt "page:index.html"
|
||
msgid "For this example, {ph0} and {ph1}."
|
||
msgstr "Für dieses Beispiel, {ph0} und {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:878
|
||
#, 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}Beispiel-Eingabeaufforderung * "
|
||
"Erstellen Sie die %-Schaltfläche neu"
|
||
|
||
#. {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:892
|
||
#, 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}Verwenden Sie REA, um die% -Schaltfläche des Windows-"
|
||
"Rechners zu überprüfen. Stellen Sie die Regeln nach + und × wieder her und "
|
||
"erstellen Sie dann einen kleinen Taschenrechner, der beide "
|
||
"verwendet.{ph3}{ph4}{ph5}"
|
||
|
||
#: website/public/index.html:913
|
||
msgctxt "page:index.html"
|
||
msgid "With +"
|
||
msgstr "Mit +"
|
||
|
||
#. {ph0}: <strong>
|
||
#. {ph1}: </strong >
|
||
#. {ph2}: <code>10% of 200 = 20 → 200 + 20 = 220</code>
|
||
#: website/public/index.html:914
|
||
#, python-brace-format
|
||
msgctxt "page:index.html"
|
||
msgid "{ph0}Take 10% of the first number.{ph1}{ph2}"
|
||
msgstr "{ph0}Nimm 10% der ersten Zahl.{ph1}{ph2}"
|
||
|
||
#: website/public/index.html:920
|
||
msgctxt "page:index.html"
|
||
msgid "With ×"
|
||
msgstr "Mit ×"
|
||
|
||
#. {ph0}: <strong>
|
||
#. {ph1}: </strong >
|
||
#. {ph2}: <code>200 × 0.1 = 20</code>
|
||
#: website/public/index.html:921
|
||
#, python-brace-format
|
||
msgctxt "page:index.html"
|
||
msgid "{ph0}Turn 10% into 0.1.{ph1}{ph2}"
|
||
msgstr "{ph0}Verwandle 10% in 0,1.{ph1}{ph2}"
|
||
|
||
#: website/public/index.html:930
|
||
msgctxt "page:index.html"
|
||
msgid "From the installed app to a working % button"
|
||
msgstr "Von der installierten App zu einer funktionierenden% -Schaltfläche"
|
||
|
||
#. {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:943
|
||
#, 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 liest die Bibliothek{ph1}{ph2}Geben Sie den Code des% "
|
||
"-Handlers zurück{ph3}{ph4}Die Funktion überprüft den Operator und verwendet "
|
||
"die Konstante {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:951
|
||
#, 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 · Ihr Agent interpretiert es{ph1}{ph2}Erklären und reproduzieren Sie"
|
||
" die Regeln{ph3}{ph4}Überprüfen Sie den Zweig mit der Quelle von Microsoft "
|
||
"und versuchen Sie dann oben + und ×.{ph5}"
|
||
|
||
#: website/public/index.html:962
|
||
msgctxt "page:index.html"
|
||
msgid "See the real code and how the answer was checked"
|
||
msgstr "Sehen Sie sich den echten Code an und wie die Antwort überprüft wurde"
|
||
|
||
#: website/public/index.html:988
|
||
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 ""
|
||
"Geprüft mit REA 4.1.0: Windows-Rechner 11.2508.4.0, x64. Die lesbare "
|
||
"Zusammenfassung verwendet Namen aus der öffentlichen Quelle von Microsoft, "
|
||
"um den wiederhergestellten Zweig zu erläutern."
|
||
|
||
#. {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:993
|
||
#, 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}Prozentuale Umsetzung{ph1} · {ph2}Testfälle von Microsoft{ph3} · "
|
||
"{ph4}Anleitung zur nativen Einrichtung{ph5}"
|
||
|
||
#: website/public/index.html:1012
|
||
msgctxt "page:index.html"
|
||
msgid "Your first investigation"
|
||
msgstr "Ihre erste Untersuchung"
|
||
|
||
#: website/public/index.html:1013
|
||
msgctxt "page:index.html"
|
||
msgid "Try REA on a small app."
|
||
msgstr "Probieren Sie REA mit einer kleinen App aus."
|
||
|
||
#: website/public/index.html:1014
|
||
msgctxt "page:index.html"
|
||
msgid ""
|
||
"Download our Notes example, trace its CSV export, and check one changed "
|
||
"input."
|
||
msgstr ""
|
||
"Laden Sie unser Notizbeispiel herunter, verfolgen Sie den Export von CSV und"
|
||
" überprüfen Sie eine geänderte Eingabe."
|
||
|
||
#: website/public/index.html:1019
|
||
msgctxt "page:index.html"
|
||
msgid "Try the guided example"
|
||
msgstr "Probieren Sie das geführte Beispiel aus"
|
||
|
||
#: website/public/index.html:1028
|
||
msgctxt "page:index.html"
|
||
msgid "Want to go deeper?"
|
||
msgstr "Möchtest du tiefer einsteigen?"
|
||
|
||
#. {ph0}: <strong>
|
||
#. {ph1}: </strong>
|
||
#. {ph2}: <strong>
|
||
#. {ph3}: </strong>
|
||
#: website/public/index.html:1029
|
||
#, 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 ""
|
||
"Sagen Sie Ihrem Agenten, was Sie verstehen oder bauen möchten. Mit REA "
|
||
"können Sie an allem zusammenarbeiten, von {ph0}klonen dieser Website{ph1} zu"
|
||
" {ph2}rekonstruieren eines Spiels aus seiner ausführbaren Datei.{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:1040
|
||
#, 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}Beispiel Eingabeaufforderung * "
|
||
"Website"
|
||
|
||
#: website/public/index.html:1063
|
||
msgctxt "page:index.html"
|
||
msgid "Yes, this one."
|
||
msgstr "Ja, das hier."
|
||
|
||
#. {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:1068
|
||
#, 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}Beispiel-Eingabeaufforderung * "
|
||
"Spielrekonstruktion"
|
||
|
||
#. {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:1082
|
||
#, 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}Verwenden Sie REA, um dieses Spiel aus seiner ausführbaren "
|
||
"Datei zu rekonstruieren. Stellen Sie die Gameplay-Logik in C wieder her und "
|
||
"testen Sie sie gegen das Original.{ph3}{ph4}{ph5}"
|
||
|
||
#. {ph0}: <a href="showcase/dx-ball/">
|
||
#. {ph1}: </a>
|
||
#: website/public/index.html:1091
|
||
#, python-brace-format
|
||
msgctxt "page:index.html"
|
||
msgid "{ph0}See the DX-Ball case study →{ph1}"
|
||
msgstr "{ph0}Siehe die Fallstudie DX-Ball →{ph1}"
|
||
|
||
#: website/public/index.html:1096
|
||
msgctxt "page:index.html"
|
||
msgid "For setup and analysis steps, choose your target:"
|
||
msgstr "Wählen Sie für Einrichtungs- und Analyseschritte Ihr Ziel aus:"
|
||
|
||
#: website/public/index.html:1101
|
||
msgctxt "page:index.html"
|
||
msgid "Native binaries"
|
||
msgstr "Maschinencode-Programme"
|
||
|
||
#: website/public/index.html:1102
|
||
msgctxt "page:index.html"
|
||
msgid ""
|
||
"Inspect functions, strings, references and call relationships in executables"
|
||
" and libraries."
|
||
msgstr ""
|
||
"Überprüfen Sie Funktionen, Zeichenfolgen, Referenzen und "
|
||
"Funktionsaufrufbeziehungen in ausführbaren Dateien und Bibliotheken."
|
||
|
||
#: website/public/index.html:1106
|
||
msgctxt "page:index.html"
|
||
msgid "Native analysis guide"
|
||
msgstr "Handbuch zur Analyse von Maschinencode-Programmen"
|
||
|
||
#: website/public/index.html:1109
|
||
msgctxt "page:index.html"
|
||
msgid "JavaScript & Electron"
|
||
msgstr "Modell: JavaScript und Electron"
|
||
|
||
#: website/public/index.html:1110
|
||
msgctxt "page:index.html"
|
||
msgid ""
|
||
"Map modules, routes, IPC and native dependencies from an application folder "
|
||
"or ASAR archive."
|
||
msgstr ""
|
||
"Ordnen Sie Module, Routen, IPC und native Abhängigkeiten aus einem "
|
||
"Anwendungsordner oder einem ASAR-Archiv zu."
|
||
|
||
#: website/public/index.html:1114
|
||
msgctxt "page:index.html"
|
||
msgid "Application workflows"
|
||
msgstr "Anwendungs-Workflows"
|
||
|
||
#: website/public/index.html:1117
|
||
msgctxt "page:index.html"
|
||
msgid "Browser & runtime activity"
|
||
msgstr "Browser- & Laufzeit-Aktivität"
|
||
|
||
#: website/public/index.html:1118
|
||
msgctxt "page:index.html"
|
||
msgid ""
|
||
"Capture selected browser or process activity, then compare the results "
|
||
"across runs."
|
||
msgstr ""
|
||
"Erfassen Sie ausgewählte Browser- oder Prozessaktivitäten und vergleichen "
|
||
"Sie dann die Ergebnisse über Läufe hinweg."
|
||
|
||
#: website/public/index.html:1122
|
||
msgctxt "page:index.html"
|
||
msgid "Browser observation guide"
|
||
msgstr "Anleitung zur Browserbeobachtung"
|
||
|
||
#: website/public/index.html:1129
|
||
msgctxt "page:index.html"
|
||
msgid "Any questions?"
|
||
msgstr "Noch Fragen?"
|
||
|
||
#. {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:1130
|
||
#, 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}Lesen Sie die FAQ{ph1}, {ph2}chatten Sie mit uns auf Discord {ph3}, "
|
||
"oder {ph4}öffnen Sie eine GitHub-Ausgabe{ph5} für Fehler und "
|
||
"Funktionswünsche."
|
||
|
||
#: website/public/index.html:1143 website/public/index.html:1149
|
||
msgctxt "page:index.html"
|
||
msgid "Join the community"
|
||
msgstr "Zur Community"
|
||
|
||
#: website/public/index.html:1144
|
||
msgctxt "page:index.html"
|
||
msgid ""
|
||
"Share investigations and get help from other REA users on Discord. Follow "
|
||
"REA on X for project updates."
|
||
msgstr ""
|
||
"Teilen Sie Untersuchungen mit und holen Sie sich Hilfe von anderen REA-"
|
||
"Benutzern auf Discord. Folgen Sie REA auf X für Projektaktualisierungen."
|
||
|
||
#: website/public/index.html:6
|
||
msgctxt "page:index.html"
|
||
msgid "REA — Reverse Engineering for Your Coding Agent"
|
||
msgstr "REA - Reverse Engineering für Ihr Codiermittel"
|
||
|
||
#: 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 ""
|
||
"Reverse Engineering von Apps, Binärdateien und Browserverhalten mit Ihrem "
|
||
"Codierungsagenten. Befolgen Sie klare Anleitungen und probieren Sie "
|
||
"interaktive Beispiele mit REA aus."
|
||
|
||
#: website/public/index.html:242
|
||
msgctxt "page:index.html"
|
||
msgid "Copy REA installation prompt"
|
||
msgstr "Installationsaufforderung für REA kopieren"
|
||
|
||
#: website/public/index.html:264
|
||
msgctxt "page:index.html"
|
||
msgid "Copy setup command"
|
||
msgstr "Setup-Befehl kopieren"
|
||
|
||
#: website/public/index.html:316
|
||
msgctxt "page:index.html"
|
||
msgid "Follow the manual Calculator analysis"
|
||
msgstr "Befolgen Sie die manuelle Taschenrechneranalyse"
|
||
|
||
#: website/public/index.html:479
|
||
msgctxt "page:index.html"
|
||
msgid "Copy Calculator percentage question"
|
||
msgstr "Kopierrechner Prozentfrage"
|
||
|
||
#: website/public/index.html:586
|
||
msgctxt "page:index.html"
|
||
msgid ""
|
||
"Dinosaur mini-game. Use the Jump button or press Space while the game is "
|
||
"focused."
|
||
msgstr ""
|
||
"Dinosaurier-Minispiel. Verwenden Sie die Sprungtaste oder drücken Sie die "
|
||
"Leertaste, während das Spiel fokussiert ist."
|
||
|
||
#: website/public/index.html:647
|
||
msgctxt "page:index.html"
|
||
msgid "Copy dinosaur analysis prompt"
|
||
msgstr "Aufforderung zur Dinosaurieranalyse kopieren"
|
||
|
||
#: website/public/index.html:803
|
||
msgctxt "page:index.html"
|
||
msgid "Choose the calculation"
|
||
msgstr "Wählen Sie die Berechnung"
|
||
|
||
#: website/public/index.html:883
|
||
msgctxt "page:index.html"
|
||
msgid "Copy Calculator analysis prompt"
|
||
msgstr "Aufforderung zur Analyse des Kopierrechners"
|
||
|
||
#: website/public/index.html:1045
|
||
msgctxt "page:index.html"
|
||
msgid "Copy website project prompt"
|
||
msgstr "Aufforderung zum Kopieren des Website-Projekts"
|
||
|
||
#: website/public/index.html:1073
|
||
msgctxt "page:index.html"
|
||
msgid "Copy game reconstruction prompt"
|
||
msgstr "Aufforderung zur Wiederherstellung des Spiels kopieren"
|
||
|
||
#: website/public/index.html:1173
|
||
msgctxt "page:index.html"
|
||
msgid "Back to top"
|
||
msgstr "Nach oben"
|
||
|
||
#: website/public/showcase/aegis/index.html:100
|
||
msgctxt "page:showcase/aegis/index.html"
|
||
msgid "Skip to content"
|
||
msgstr "Zum Inhalt springen"
|
||
|
||
#. {ph0}: <a href="../../">
|
||
#. {ph1}: </a>
|
||
#. {ph2}: <a href="../">
|
||
#. {ph3}: </a>
|
||
#: website/public/showcase/aegis/index.html:182
|
||
#, python-brace-format
|
||
msgctxt "page:showcase/aegis/index.html"
|
||
msgid "{ph0}Home{ph1} / {ph2}Showcases{ph3} / Android"
|
||
msgstr "{ph0}Startseite{ph1} / {ph2}Präsentieren{ph3} / Android"
|
||
|
||
#: website/public/showcase/aegis/index.html:185
|
||
msgctxt "page:showcase/aegis/index.html"
|
||
msgid "Case study · Aegis Authenticator"
|
||
msgstr "Fallstudie * Aegis Authentifikator"
|
||
|
||
#. {ph0}: <br />
|
||
#: website/public/showcase/aegis/index.html:186
|
||
#, python-brace-format
|
||
msgctxt "page:showcase/aegis/index.html"
|
||
msgid "How does an authenticator{ph0}generate a login code?"
|
||
msgstr "Wie funktioniert ein Authentifikator{ph0}einen Login-Code generieren?"
|
||
|
||
#: website/public/showcase/aegis/index.html:187
|
||
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 ""
|
||
"Ein sechsstelliger Code ändert sich alle 30 Sekunden. Verwenden Sie REA, um "
|
||
"die Berechnung in einem Android APK zu finden, und erstellen Sie sie dann "
|
||
"mit einer Uhr neu, die Sie steuern können."
|
||
|
||
#: website/public/showcase/aegis/index.html:192
|
||
msgctxt "page:showcase/aegis/index.html"
|
||
msgid "Aegis 3.4.3 · Android · Official release APK · 6.9 MB"
|
||
msgstr "Aegis 3.4.3 * Android * Offizielle Veröffentlichung APK · 6,9 MB"
|
||
|
||
#: website/public/showcase/aegis/index.html:195
|
||
msgctxt "page:showcase/aegis/index.html"
|
||
msgid "View Aegis on GitHub"
|
||
msgstr "Sehen Sie sich Aegis auf GitHub an"
|
||
|
||
#: website/public/showcase/aegis/index.html:201
|
||
msgctxt "page:showcase/aegis/index.html"
|
||
msgid "From an APK to a code you can reproduce"
|
||
msgstr "Von einem APK zu einem Code, den Sie reproduzieren können"
|
||
|
||
#. {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:203
|
||
#, 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 * Suchen Sie die Funktion{ph1}{ph2}3.077 klassen → Methoden "
|
||
"generieren{ph3}{ph4} REA durchsucht das Paket und verfolgt den von den "
|
||
"Anzeige- und Kopieraktionen verwendeten Code.{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:212
|
||
#, 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 * Lesen Sie die Berechnung{ph1}{ph2}Zeit + Kontoschlüssel → sechs "
|
||
"Ziffern{ph3}{ph4} REA gibt die Methoden und Standardwerte zurück. Der Agent "
|
||
"erklärt, wie sie zusammenpassen.{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:220
|
||
#, 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 * Umbauen und überprüfen{ph1}{ph2}Ändere die Uhr. Beobachten Sie den"
|
||
" Code.{ph3}{ph4}Eine neue Browserdemo reproduziert die Regel und vergleicht "
|
||
"sie mit öffentlichen Referenzfällen.{ph5}"
|
||
|
||
#: website/public/showcase/aegis/index.html:233
|
||
msgctxt "page:showcase/aegis/index.html"
|
||
msgid "In this case study"
|
||
msgstr "In dieser Fallstudie"
|
||
|
||
#. {ph0}: <a href="#ask">
|
||
#. {ph1}: </a>
|
||
#: website/public/showcase/aegis/index.html:235
|
||
#, python-brace-format
|
||
msgctxt "page:showcase/aegis/index.html"
|
||
msgid "{ph0}Ask your agent{ph1}"
|
||
msgstr "{ph0}Fragen Sie Ihren Agenten{ph1}"
|
||
|
||
#. {ph0}: <a href="#demo">
|
||
#. {ph1}: </a>
|
||
#: website/public/showcase/aegis/index.html:236
|
||
#, python-brace-format
|
||
msgctxt "page:showcase/aegis/index.html"
|
||
msgid "{ph0}Try the code generator{ph1}"
|
||
msgstr "{ph0}Probieren Sie den Codegenerator aus{ph1}"
|
||
|
||
#. {ph0}: <a href="#find">
|
||
#. {ph1}: </a>
|
||
#: website/public/showcase/aegis/index.html:237
|
||
#, python-brace-format
|
||
msgctxt "page:showcase/aegis/index.html"
|
||
msgid "{ph0}Find the code with REA{ph1}"
|
||
msgstr "{ph0}Finden Sie den Code mit REA {ph1}"
|
||
|
||
#. {ph0}: <a href="#calculation">
|
||
#. {ph1}: </a>
|
||
#: website/public/showcase/aegis/index.html:238
|
||
#, python-brace-format
|
||
msgctxt "page:showcase/aegis/index.html"
|
||
msgid "{ph0}Read the calculation{ph1}"
|
||
msgstr "{ph0}Lesen Sie die Berechnung{ph1}"
|
||
|
||
#. {ph0}: <a href="#verify">
|
||
#. {ph1}: </a>
|
||
#: website/public/showcase/aegis/index.html:239
|
||
#, python-brace-format
|
||
msgctxt "page:showcase/aegis/index.html"
|
||
msgid "{ph0}Check the reconstruction{ph1}"
|
||
msgstr "{ph0}Überprüfen Sie die Rekonstruktion{ph1}"
|
||
|
||
#. {ph0}: <a href="#try">
|
||
#. {ph1}: </a>
|
||
#: website/public/showcase/aegis/index.html:240
|
||
#, python-brace-format
|
||
msgctxt "page:showcase/aegis/index.html"
|
||
msgid "{ph0}Inspect the APK yourself{ph1}"
|
||
msgstr "{ph0}Überprüfen Sie den APK selbst{ph1}"
|
||
|
||
#: website/public/showcase/aegis/index.html:245
|
||
msgctxt "page:showcase/aegis/index.html"
|
||
msgid "Ask your agent"
|
||
msgstr "Fragen Sie Ihren Agenten"
|
||
|
||
#. {ph0}: <strong>
|
||
#. {ph1}: </strong>
|
||
#: website/public/showcase/aegis/index.html:246
|
||
#, 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 ""
|
||
"Die App zeigt einen sich ändernden Login-Code an. Wir wollen finden {ph0}was"
|
||
" verändert es{ph1} reproduzieren Sie dieses Verhalten."
|
||
|
||
#. {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:252
|
||
#, 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}Ihr Codierungsagent"
|
||
|
||
#: website/public/showcase/aegis/index.html:256
|
||
#: website/public/showcase/aegis/index.html:719
|
||
msgctxt "page:showcase/aegis/index.html"
|
||
msgid "Copy"
|
||
msgstr "Kopieren"
|
||
|
||
#. {ph0}: <a href="#try">
|
||
#. {ph1}: </a>
|
||
#: website/public/showcase/aegis/index.html:276
|
||
#, 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 ""
|
||
"Eine Beispielaufforderung für den heruntergeladenen APK mit konfigurierter "
|
||
"Android-Analyse von REA. {ph0}Holen Sie sich das APK und das Analyse-Setup "
|
||
"↓{ph1}"
|
||
|
||
#: website/public/showcase/aegis/index.html:284
|
||
msgctxt "page:showcase/aegis/index.html"
|
||
msgid "Try the code generator"
|
||
msgstr "Probieren Sie den Codegenerator aus"
|
||
|
||
#. {ph0}: <mark class="prose-highlight">
|
||
#. {ph1}: </mark>
|
||
#: website/public/showcase/aegis/index.html:285
|
||
#, 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 ""
|
||
"Die App gruppiert die Zeit in {ph0}30-sekunden-Blöcke.{ph1} Es kombiniert "
|
||
"die Blocknummer mit dem Kontoschlüssel, um einen Code zu generieren. "
|
||
"Derselbe Schlüssel und derselbe Block erzeugen denselben Code."
|
||
|
||
#: website/public/showcase/aegis/index.html:292
|
||
msgctxt "page:showcase/aegis/index.html"
|
||
msgid "Move the clock across 60 seconds"
|
||
msgstr "Bewegen Sie die Uhr über 60 Sekunden"
|
||
|
||
#: website/public/showcase/aegis/index.html:295
|
||
msgctxt "page:showcase/aegis/index.html"
|
||
msgid "Time"
|
||
msgstr "Zeit"
|
||
|
||
#: website/public/showcase/aegis/index.html:297
|
||
msgctxt "page:showcase/aegis/index.html"
|
||
msgid "seconds"
|
||
msgstr "Sekundenschnelle"
|
||
|
||
#: website/public/showcase/aegis/index.html:298
|
||
msgctxt "page:showcase/aegis/index.html"
|
||
msgid "Our adjustable example clock"
|
||
msgstr "Unsere verstellbare Beispieluhr"
|
||
|
||
#: website/public/showcase/aegis/index.html:301
|
||
msgctxt "page:showcase/aegis/index.html"
|
||
msgid "30-second block"
|
||
msgstr "30-sekunden-Block"
|
||
|
||
#: website/public/showcase/aegis/index.html:303
|
||
#: website/public/showcase/aegis/index.html:630
|
||
msgctxt "page:showcase/aegis/index.html"
|
||
msgid "Block"
|
||
msgstr "Block"
|
||
|
||
#. {ph0}: <code data-aegis-division>floor(59 / 30)</code>
|
||
#. {ph1}: <br />
|
||
#. {ph2}: <span data-aegis-window >
|
||
#. {ph3}: </span >
|
||
#: website/public/showcase/aegis/index.html:304
|
||
#, python-brace-format
|
||
msgctxt "page:showcase/aegis/index.html"
|
||
msgid "{ph0}{ph1}{ph2}30–59 seconds{ph3}"
|
||
msgstr "{ph0}{ph1}{ph2}30-59 sekunden{ph3}"
|
||
|
||
#: website/public/showcase/aegis/index.html:312
|
||
msgctxt "page:showcase/aegis/index.html"
|
||
msgid "Generated code"
|
||
msgstr "Generierter Code"
|
||
|
||
#: website/public/showcase/aegis/index.html:320
|
||
msgctxt "page:showcase/aegis/index.html"
|
||
msgid "Account key + block → six digits"
|
||
msgstr "Kontoschlüssel + Sperre → sechs Ziffern"
|
||
|
||
#: website/public/showcase/aegis/index.html:326
|
||
msgctxt "page:showcase/aegis/index.html"
|
||
msgid "Example time, in seconds"
|
||
msgstr "Beispielzeit in Sekunden"
|
||
|
||
#: website/public/showcase/aegis/index.html:341
|
||
#: website/public/showcase/aegis/index.html:641
|
||
msgctxt "page:showcase/aegis/index.html"
|
||
msgid "59 seconds"
|
||
msgstr "59 sekunden"
|
||
|
||
#: website/public/showcase/aegis/index.html:348
|
||
#: website/public/showcase/aegis/index.html:646
|
||
msgctxt "page:showcase/aegis/index.html"
|
||
msgid "60 seconds"
|
||
msgstr "60 sekunden"
|
||
|
||
#. {ph0}: <strong>
|
||
#. {ph1}: </strong>
|
||
#. {ph2}: <strong>
|
||
#. {ph3}: </strong>
|
||
#: website/public/showcase/aegis/index.html:357
|
||
#, 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 ""
|
||
"Bei 59 Sekunden: {ph0}287082.{ph1} Bei 60 Sekunden: {ph2}359152.{ph3} Wenn "
|
||
"Sie sich innerhalb eines Blocks bewegen, bleibt der Code unverändert."
|
||
|
||
#. {ph0}: <a href="https://www.rfc-editor.org/rfc/rfc6238.html#appendix-B" >
|
||
#. {ph1}: </a >
|
||
#: website/public/showcase/aegis/index.html:364
|
||
#, 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 ""
|
||
"Der Schlüssel ist fest, öffentlich {ph0}RFC 6238-Testdaten{ph1}. Die Demo "
|
||
"implementiert die vom APK wiederhergestellte Berechnung."
|
||
|
||
#: website/public/showcase/aegis/index.html:371
|
||
msgctxt "page:showcase/aegis/index.html"
|
||
msgid ""
|
||
"The diagram shows the result at 59 seconds. Enable JavaScript to change the "
|
||
"clock."
|
||
msgstr ""
|
||
"Das Diagramm zeigt das Ergebnis bei 59 Sekunden. Aktivieren Sie JavaScript, "
|
||
"um die Uhr zu ändern."
|
||
|
||
#: website/public/showcase/aegis/index.html:380
|
||
msgctxt "page:showcase/aegis/index.html"
|
||
msgid "Find the code with REA"
|
||
msgstr "Finden Sie den Code mit REA"
|
||
|
||
#: website/public/showcase/aegis/index.html:383
|
||
msgctxt "page:showcase/aegis/index.html"
|
||
msgid "Narrow the APK to three classes"
|
||
msgstr "Grenzen Sie den APK auf drei Klassen ein"
|
||
|
||
#. {ph0}: <code>TotpInfo</code>
|
||
#: website/public/showcase/aegis/index.html:408
|
||
#, 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} ist der Berechnungskandidat; Die anderen beiden betreffen den "
|
||
"Fortschrittsbalken und importierte Konten. TOTP bedeutet ein zeitbasiertes "
|
||
"Einmalpasswort."
|
||
|
||
#: website/public/showcase/aegis/index.html:415
|
||
msgctxt "page:showcase/aegis/index.html"
|
||
msgid "Connect the generator to the app's display"
|
||
msgstr "Verbinden Sie den Generator mit dem Display der App"
|
||
|
||
#. {ph0}: <code>EntryHolder.getOtp</code>
|
||
#. {ph1}: <code>TotpInfo.getOtp(timestamp)</code>
|
||
#: website/public/showcase/aegis/index.html:443
|
||
#, 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 identifiziert die Zeitstempelüberladung und findet die Aufrufer der "
|
||
"Basismethode. Inspizieren {ph0} zeigt dann das Display an, das anruft {ph1}."
|
||
|
||
#. {ph0}: <code>com.beemdevelopment.aegis</code>
|
||
#: website/public/showcase/aegis/index.html:451
|
||
#, 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 ""
|
||
"Anfragen zeigen einen verkürzten Eingabepfad. Ergebnisklassennamen lassen "
|
||
"das Gemeinsame weg {ph0} Präfix."
|
||
|
||
#: website/public/showcase/aegis/index.html:458
|
||
msgctxt "page:showcase/aegis/index.html"
|
||
msgid "Read the calculation"
|
||
msgstr "Lesen Sie die Berechnung"
|
||
|
||
#. {ph0}: <strong >
|
||
#. {ph1}: </strong >
|
||
#: website/public/showcase/aegis/index.html:459
|
||
#, 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 kehrt zurück {ph0}die Taktumwandlung, Standardeinstellungen und "
|
||
"Generierungsmethoden.{ph1} Die Konstruktoren legen ein Intervall von 30 "
|
||
"Sekunden und sechs Ziffern fest; Die Zeitstempelmethode wandelt Sekunden in "
|
||
"eine Blocknummer um."
|
||
|
||
#. {ph0}: <span>
|
||
#. {ph1}: </span>
|
||
#: website/public/showcase/aegis/index.html:474
|
||
#, python-brace-format
|
||
msgctxt "page:showcase/aegis/index.html"
|
||
msgid "{ph0}01{ph1} Time block"
|
||
msgstr "{ph0}01{ph1} Zeitblock"
|
||
|
||
#. {ph0}: <span>
|
||
#. {ph1}: </span>
|
||
#: website/public/showcase/aegis/index.html:482
|
||
#, python-brace-format
|
||
msgctxt "page:showcase/aegis/index.html"
|
||
msgid "{ph0}02{ph1} Key + block"
|
||
msgstr "{ph0}02{ph1} Schlüssel + Block"
|
||
|
||
#. {ph0}: <span>
|
||
#. {ph1}: </span>
|
||
#: website/public/showcase/aegis/index.html:490
|
||
#, python-brace-format
|
||
msgctxt "page:showcase/aegis/index.html"
|
||
msgid "{ph0}03{ph1} Six digits"
|
||
msgstr "{ph0}03{ph1} Sechs Ziffern"
|
||
|
||
#. {ph0}: <strong>
|
||
#. {ph1}: </strong>
|
||
#: website/public/showcase/aegis/index.html:549
|
||
#, 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}Die Zeit wählt den Block.{ph1} Die Sekunden 30 bis 59 geben alle Block "
|
||
"1 an. Nach 60 Sekunden wird der Block 2."
|
||
|
||
#. {ph0}: <strong>
|
||
#. {ph1}: </strong>
|
||
#: website/public/showcase/aegis/index.html:555
|
||
#, 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}Auch die Schlüsselfragen.{ph1} Der Generator kombiniert den "
|
||
"Kontoschlüssel mit dem Block. Ein Konto mit einem anderen Schlüssel kann "
|
||
"gleichzeitig einen anderen Code anzeigen."
|
||
|
||
#. {ph0}: <strong>
|
||
#. {ph1}: </strong>
|
||
#: website/public/showcase/aegis/index.html:562
|
||
#, 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}Behalte sechs Ziffern bei.{ph1} Der Rest nach der Division durch "
|
||
"1.000.000 wird bei Bedarf mit Nullen aufgefüllt, sodass ein Code mit 0 "
|
||
"beginnen kann."
|
||
|
||
#. {ph0}: <a
|
||
#. href="https://github.com/beemdevelopment/Aegis/blob/d6f4e5925a97e4e91593f1542085eae03432a759/LICENSE"
|
||
#. >
|
||
#. {ph1}: </a >
|
||
#: website/public/showcase/aegis/index.html:569
|
||
#, 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 ""
|
||
"Auszüge aus mehreren geprüften Methoden mit Zeilenumbruch zur Anzeige. Das "
|
||
"rechte Feld ist eine erläuternde Zusammenfassung. {ph0} Der Code von Aegis "
|
||
"ist GPL-3.0.{ph1}"
|
||
|
||
#: website/public/showcase/aegis/index.html:578
|
||
msgctxt "page:showcase/aegis/index.html"
|
||
msgid "Inside the generator"
|
||
msgstr "Im Inneren des Generators"
|
||
|
||
#. {ph0}: <code>generateOTP</code>
|
||
#. {ph1}: <code>kotlin.ExceptionsKt</code>
|
||
#. {ph2}: <code>TotpInfo</code>
|
||
#. {ph3}: <code>HOTP</code>
|
||
#: website/public/showcase/aegis/index.html:579
|
||
#, 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 ""
|
||
"Der freigegebene APK setzt {ph0} in {ph1}. REA folgt dem Anruf von {ph2} "
|
||
"und gibt diesen Körper zurück; Die ursprüngliche Quelle ruft den Helfer auf "
|
||
"{ph3}."
|
||
|
||
#: website/public/showcase/aegis/index.html:601
|
||
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 ""
|
||
"Das letzte Hash-Byte wählt eine Position aus. Vier Bytes an dieser Position "
|
||
"ergeben eine positive 31-Bit-Zahl; Die Formatierung reduziert sie auf die "
|
||
"angeforderte Anzahl von Ziffern. Das letzte Argument des Konstruktors wählt "
|
||
"den durch die Kompilierung eingeführten Codeformatierungszweig aus."
|
||
|
||
#. {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:608
|
||
#, python-brace-format
|
||
msgctxt "page:showcase/aegis/index.html"
|
||
msgid "{ph0}Compare with the matching release source{ph1}."
|
||
msgstr "{ph0}Vergleichen Sie mit der passenden Release-Quelle{ph1}."
|
||
|
||
#: website/public/showcase/aegis/index.html:618
|
||
msgctxt "page:showcase/aegis/index.html"
|
||
msgid "Check the reconstruction"
|
||
msgstr "Überprüfen Sie die Rekonstruktion"
|
||
|
||
#. {ph0}: <strong>
|
||
#. {ph1}: </strong>
|
||
#: website/public/showcase/aegis/index.html:619
|
||
#, 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 ""
|
||
"Wir haben die ausgewählten REA -zurückgegebenen Java-Methoden in einem "
|
||
"kleinen Testprogramm zusammengestellt. Ihre Ausgabe entsprach einer "
|
||
"unabhängigen Rekonstruktion auf {ph0}133 testfälle{ph1}, einschließlich "
|
||
"Zeitblockgrenzen und Codes, die mit Null beginnen."
|
||
|
||
#: website/public/showcase/aegis/index.html:629
|
||
msgctxt "page:showcase/aegis/index.html"
|
||
msgid "Example time"
|
||
msgstr "Beispiel zeit"
|
||
|
||
#: website/public/showcase/aegis/index.html:631
|
||
msgctxt "page:showcase/aegis/index.html"
|
||
msgid "Six-digit code"
|
||
msgstr "Sechsstelliger Code"
|
||
|
||
#: website/public/showcase/aegis/index.html:636
|
||
msgctxt "page:showcase/aegis/index.html"
|
||
msgid "30 seconds"
|
||
msgstr "30 sekunden"
|
||
|
||
#: website/public/showcase/aegis/index.html:651
|
||
msgctxt "page:showcase/aegis/index.html"
|
||
msgid "1,111,111,109 seconds"
|
||
msgstr "1,111,111,109 sekunden"
|
||
|
||
#. {ph0}: <a href="https://www.rfc-editor.org/rfc/rfc6238.html#appendix-B" >
|
||
#. {ph1}: </a >
|
||
#: website/public/showcase/aegis/index.html:658
|
||
#, 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 ""
|
||
"Der Generator entspricht auch den sechs veröffentlichten "
|
||
"SHA-1-Referenzfällen in {ph0}RFC6238{ph1}. Überprüfen Sie die Browser-"
|
||
"Implementierung gegen sie:"
|
||
|
||
#: website/public/showcase/aegis/index.html:666
|
||
msgctxt "page:showcase/aegis/index.html"
|
||
msgid "Run reference checks"
|
||
msgstr "Referenzprüfungen durchführen"
|
||
|
||
#: website/public/showcase/aegis/index.html:673
|
||
msgctxt "page:showcase/aegis/index.html"
|
||
msgid "Read the demo's calculation"
|
||
msgstr "Lesen Sie die Berechnung der Demo"
|
||
|
||
#: website/public/showcase/aegis/index.html:677
|
||
msgctxt "page:showcase/aegis/index.html"
|
||
msgid ""
|
||
"The reference cases use eight digits. The check also verifies their six-"
|
||
"digit results."
|
||
msgstr ""
|
||
"Die Referenzfälle verwenden acht Ziffern. Die Überprüfung überprüft auch "
|
||
"ihre sechsstelligen Ergebnisse."
|
||
|
||
#: website/public/showcase/aegis/index.html:686
|
||
msgctxt "page:showcase/aegis/index.html"
|
||
msgid ""
|
||
"Verification runs extracted Java methods and the new demo. The Android APK "
|
||
"was inspected statically."
|
||
msgstr ""
|
||
"Die Überprüfung führt extrahierte Java-Methoden und die neue Demo aus. Das "
|
||
"Android APK wurde statisch inspiziert."
|
||
|
||
#: website/public/showcase/aegis/index.html:693
|
||
msgctxt "page:showcase/aegis/index.html"
|
||
msgid "Inspect the APK yourself"
|
||
msgstr "Überprüfen Sie den APK selbst"
|
||
|
||
#. {ph0}: <a href="../../get-started/">
|
||
#. {ph1}: </a>
|
||
#: website/public/showcase/aegis/index.html:694
|
||
#, 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}Einrichten von REA {ph1} laden Sie diese beiden Dateien auf macOS oder "
|
||
"Linux in denselben Ordner herunter. Verwenden Sie auf Windows eine Linux-"
|
||
"Umgebung wie WSL."
|
||
|
||
#. {ph0}: <code>JAVA_HOME</code>
|
||
#. {ph1}: <code>PATH</code>
|
||
#: website/public/showcase/aegis/index.html:699
|
||
#, 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 benötigt ein vollständiges JDK 17 oder höher. Wählen Sie es"
|
||
" mit {ph0} oder {ph1}. In diesem Fall wurde JDK 21 verwendet."
|
||
|
||
#: website/public/showcase/aegis/index.html:715
|
||
msgctxt "page:showcase/aegis/index.html"
|
||
msgid "Point REA at the provider file and inspect the APK:"
|
||
msgstr "Zeigen Sie mit REA auf die Providerdatei und überprüfen Sie den APK :"
|
||
|
||
#: website/public/showcase/aegis/index.html:718
|
||
msgctxt "page:showcase/aegis/index.html"
|
||
msgid "macOS / Linux"
|
||
msgstr "MODELL: macOS / Linux"
|
||
|
||
#. {ph0}: <code>REA_JADX_MCP_JAR</code>
|
||
#: website/public/showcase/aegis/index.html:732
|
||
#, 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 ""
|
||
"Ihr Agent kann mit dem CLI von REA über die obige Eingabeaufforderung "
|
||
"fortfahren. Für MCP fügen Sie hinzu {ph0} mit der Umgebung des REA-Servers "
|
||
"und verbinden Sie ihn erneut."
|
||
|
||
#. {ph0}: <strong >
|
||
#. {ph1}: </strong >
|
||
#: website/public/showcase/aegis/index.html:737
|
||
#, 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 ""
|
||
"Eine nächste Frage: {ph0}was passiert, wenn ein Konto acht Ziffern oder ein "
|
||
"anderes Zeitintervall verwendet?{ph1}"
|
||
|
||
#: website/public/showcase/aegis/index.html:747
|
||
msgctxt "page:showcase/aegis/index.html"
|
||
msgid "Sources"
|
||
msgstr "Hauptquellen"
|
||
|
||
#. {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:749
|
||
#, 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}Offizielle Version von Aegis 3.4.3{ph1} · {ph2}Übereinstimmendes Quell-"
|
||
"Commit{ph3} · {ph4}Lizenz 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:765
|
||
#, python-brace-format
|
||
msgctxt "page:showcase/aegis/index.html"
|
||
msgid "{ph0}RFC 6238 reference cases{ph1} · {ph2}Demo test data{ph3}"
|
||
msgstr "{ph0}Referenzfälle zu RFC 6238{ph1} · {ph2}Demo-Testdaten{ph3}"
|
||
|
||
#: website/public/showcase/aegis/index.html:772
|
||
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 ""
|
||
"Am 9. Oktober 2026 mit REA 6.1.0 inspiziert. Dekompilierte Auszüge werden "
|
||
"Aegis gutgeschrieben; Das Diagramm, die lesbare Zusammenfassung und die "
|
||
"Browserrekonstruktion sind neues Lehrmaterial."
|
||
|
||
#: website/public/showcase/aegis/index.html:6
|
||
msgctxt "page:showcase/aegis/index.html"
|
||
msgid "Aegis APK Reverse Engineering: Login Codes — REA"
|
||
msgstr "Aegis APK Rückentwicklung: Anmeldecodes - 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 ""
|
||
"Überprüfen Sie den Aegis Android APK mit REA, stellen Sie die sechsstellige "
|
||
"Login-Code-Berechnung wieder her und versuchen Sie eine Rekonstruktion mit "
|
||
"einer einstellbaren Uhr."
|
||
|
||
#: website/public/showcase/aegis/index.html:232
|
||
msgctxt "page:showcase/aegis/index.html"
|
||
msgid "On this page"
|
||
msgstr "Auf dieser Seite"
|
||
|
||
#: website/public/showcase/aegis/index.html:243
|
||
msgctxt "page:showcase/aegis/index.html"
|
||
msgid "Aegis APK case study"
|
||
msgstr "Aegis APK Fallstudie"
|
||
|
||
#: website/public/showcase/aegis/index.html:256
|
||
msgctxt "page:showcase/aegis/index.html"
|
||
msgid "Copy Aegis example prompt"
|
||
msgstr "Beispiel-Eingabeaufforderung Aegis kopieren"
|
||
|
||
#: website/public/showcase/aegis/index.html:469
|
||
msgctxt "page:showcase/aegis/index.html"
|
||
msgid "Follow the login-code calculation"
|
||
msgstr "Folgen Sie der Login-Code-Berechnung"
|
||
|
||
#: website/public/showcase/aegis/index.html:719
|
||
msgctxt "page:showcase/aegis/index.html"
|
||
msgid "Copy APK inspection command"
|
||
msgstr "Inspektionsbefehl APK kopieren"
|
||
|
||
#: website/public/showcase/aegis/index.html:795
|
||
msgctxt "page:showcase/aegis/index.html"
|
||
msgid "Back to top"
|
||
msgstr "Nach oben"
|
||
|
||
#: website/public/showcase/ctf/index.html:99
|
||
msgctxt "page:showcase/ctf/index.html"
|
||
msgid "Skip to content"
|
||
msgstr "Zum Inhalt springen"
|
||
|
||
#. {ph0}: <a href="../../">
|
||
#. {ph1}: </a>
|
||
#. {ph2}: <a href="../">
|
||
#. {ph3}: </a>
|
||
#: website/public/showcase/ctf/index.html:181
|
||
#, python-brace-format
|
||
msgctxt "page:showcase/ctf/index.html"
|
||
msgid "{ph0}Home{ph1} / {ph2}Showcases{ph3} / CTF"
|
||
msgstr "{ph0}Startseite{ph1} / {ph2}Präsentieren{ph3} / CTF"
|
||
|
||
#: website/public/showcase/ctf/index.html:184
|
||
msgctxt "page:showcase/ctf/index.html"
|
||
msgid "Case study · DownUnderCTF 2023"
|
||
msgstr "Fallstudie * DownUnderCTF 2023"
|
||
|
||
#. {ph0}: <br />
|
||
#: website/public/showcase/ctf/index.html:185
|
||
#, python-brace-format
|
||
msgctxt "page:showcase/ctf/index.html"
|
||
msgid "Find the flag in{ph0}a CTF binary."
|
||
msgstr "Finde die Flagge in{ph0}eine CTF-Binärdatei."
|
||
|
||
#. {ph0}: <code>Correct!</code>
|
||
#: website/public/showcase/ctf/index.html:186
|
||
#, 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 ""
|
||
"Verwenden Sie REA, um einen kleinen Flaggenprüfer zu überprüfen, seine "
|
||
"Regeln in Gleichungen umzuwandeln und eine Eingabe zu finden, die das "
|
||
"ursprüngliche Programm drucken lässt {ph0}."
|
||
|
||
#: website/public/showcase/ctf/index.html:191
|
||
msgctxt "page:showcase/ctf/index.html"
|
||
msgid "masked squares flag checker · Easy · Linux x86-64"
|
||
msgstr "maskierte Quadrate Flaggenprüfer · Einfach · Linux x86-64"
|
||
|
||
#: website/public/showcase/ctf/index.html:194
|
||
msgctxt "page:showcase/ctf/index.html"
|
||
msgid "View the original challenge"
|
||
msgstr "Sehen Sie sich die ursprüngliche Herausforderung an"
|
||
|
||
#: website/public/showcase/ctf/index.html:202
|
||
msgctxt "page:showcase/ctf/index.html"
|
||
msgid "From a binary to a checked answer"
|
||
msgstr "Von einer binären zu einer geprüften Antwort"
|
||
|
||
#. {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:204
|
||
#, 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 * Finden Sie den Scheck{ph1}{ph2}Zeichenketten → Funktionen "
|
||
"prüfen{ph3}{ph4} REA findet die Eingabeaufforderung, ihre Referenzen und den"
|
||
" Code, der eine Eingabe akzeptiert oder ablehnt.{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:212
|
||
#, 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 * Extrahieren Sie die Regeln{ph1}{ph2}36 zeichen · 26 "
|
||
"summen{ph3}{ph4} REA gibt die Anweisungen und Daten hinter jeder Prüfung "
|
||
"zurück. Der Agent wandelt sie in Gleichungen um.{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:220
|
||
#, 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 * Lösen und ausführen{ph1}{ph2}Wiederhergestellte Flagge → "
|
||
"Korrekt!{ph3}{ph4}Ein Python-Skript löst die Gleichungen. REA erfasst das "
|
||
"ursprüngliche Programm, das das Ergebnis akzeptiert.{ph5}"
|
||
|
||
#: website/public/showcase/ctf/index.html:229
|
||
msgctxt "page:showcase/ctf/index.html"
|
||
msgid ""
|
||
"The challenge is by joseph, published in DownUnderCTF's official repository."
|
||
msgstr ""
|
||
"Die Herausforderung stammt von Joseph und wurde im offiziellen Repository "
|
||
"von DownUnderCTF veröffentlicht."
|
||
|
||
#: website/public/showcase/ctf/index.html:237
|
||
msgctxt "page:showcase/ctf/index.html"
|
||
msgid "In this case study"
|
||
msgstr "In dieser Fallstudie"
|
||
|
||
#. {ph0}: <a href="#find">
|
||
#. {ph1}: </a>
|
||
#: website/public/showcase/ctf/index.html:239
|
||
#, python-brace-format
|
||
msgctxt "page:showcase/ctf/index.html"
|
||
msgid "{ph0}Find the checking code{ph1}"
|
||
msgstr "{ph0}Finden Sie den Prüfcode{ph1}"
|
||
|
||
#. {ph0}: <a href="#mask">
|
||
#. {ph1}: </a>
|
||
#: website/public/showcase/ctf/index.html:240
|
||
#, python-brace-format
|
||
msgctxt "page:showcase/ctf/index.html"
|
||
msgid "{ph0}Read one mask{ph1}"
|
||
msgstr "{ph0}Lesen Sie eine Maske{ph1}"
|
||
|
||
#. {ph0}: <a href="#code">
|
||
#. {ph1}: </a>
|
||
#: website/public/showcase/ctf/index.html:241
|
||
#, python-brace-format
|
||
msgctxt "page:showcase/ctf/index.html"
|
||
msgid "{ph0}Assembly to readable code{ph1}"
|
||
msgstr "{ph0}Assemblierung zu lesbarem Code{ph1}"
|
||
|
||
#. {ph0}: <a href="#solve">
|
||
#. {ph1}: </a>
|
||
#: website/public/showcase/ctf/index.html:242
|
||
#, python-brace-format
|
||
msgctxt "page:showcase/ctf/index.html"
|
||
msgid "{ph0}Solve the equations{ph1}"
|
||
msgstr "{ph0}Löse die Gleichungen{ph1}"
|
||
|
||
#. {ph0}: <a href="#verify">
|
||
#. {ph1}: </a>
|
||
#: website/public/showcase/ctf/index.html:243
|
||
#, python-brace-format
|
||
msgctxt "page:showcase/ctf/index.html"
|
||
msgid "{ph0}Check the answer{ph1}"
|
||
msgstr "{ph0}Überprüfen Sie die Antwort{ph1}"
|
||
|
||
#. {ph0}: <a href="#try">
|
||
#. {ph1}: </a>
|
||
#: website/public/showcase/ctf/index.html:244
|
||
#, python-brace-format
|
||
msgctxt "page:showcase/ctf/index.html"
|
||
msgid "{ph0}Try it yourself{ph1}"
|
||
msgstr "{ph0}Probieren Sie es selbst aus{ph1}"
|
||
|
||
#: website/public/showcase/ctf/index.html:249
|
||
msgctxt "page:showcase/ctf/index.html"
|
||
msgid "Find the checking code"
|
||
msgstr "Finden Sie den Prüfcode"
|
||
|
||
#. {ph0}: <code>Correct!</code>
|
||
#. {ph1}: <code>Incorrect!</code>
|
||
#: website/public/showcase/ctf/index.html:250
|
||
#, 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 ""
|
||
"Das Handout ist eine 15 KB große ausführbare Datei. Es fragt nach einer "
|
||
"Flagge und druckt dann {ph0} oder {ph1}. Beginnen Sie mit einer einfachen "
|
||
"Anfrage an Ihren Agenten."
|
||
|
||
#. {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:257
|
||
#, 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}Ihr Codierungsagent"
|
||
|
||
#: website/public/showcase/ctf/index.html:262
|
||
#: website/public/showcase/ctf/index.html:481
|
||
#: website/public/showcase/ctf/index.html:505
|
||
#: website/public/showcase/ctf/index.html:575
|
||
#: website/public/showcase/ctf/index.html:722
|
||
msgctxt "page:showcase/ctf/index.html"
|
||
msgid "Copy"
|
||
msgstr "Kopieren"
|
||
|
||
#. {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:271
|
||
#, 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}Verwenden Sie REA, um ms_flag_checker zu analysieren und das"
|
||
" Flag zu finden. Erklären Sie, wie die Prüfungen funktionieren, und "
|
||
"überprüfen Sie dann die Antwort mit dem Originalprogramm.{ph3}{ph4}{ph5}"
|
||
|
||
#: website/public/showcase/ctf/index.html:280
|
||
msgctxt "page:showcase/ctf/index.html"
|
||
msgid ""
|
||
"An example prompt, with the downloaded challenge available locally and a "
|
||
"native analysis provider connected."
|
||
msgstr ""
|
||
"Eine Beispiel-Eingabeaufforderung, bei der die heruntergeladene "
|
||
"Herausforderung lokal verfügbar ist und eine Analyse des Maschinencode-"
|
||
"Programmanbieters verbunden ist."
|
||
|
||
#: website/public/showcase/ctf/index.html:286
|
||
msgctxt "page:showcase/ctf/index.html"
|
||
msgid "Follow the input prompt to its function"
|
||
msgstr "Folgen Sie der Eingabeaufforderung zu ihrer Funktion"
|
||
|
||
#: website/public/showcase/ctf/index.html:315
|
||
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 ""
|
||
"Die Referenz gibt dem Agenten einen Ort zum Untersuchen, obwohl die "
|
||
"ursprünglichen Funktionsnamen der ausführbaren Datei entfernt wurden."
|
||
|
||
#: website/public/showcase/ctf/index.html:322
|
||
msgctxt "page:showcase/ctf/index.html"
|
||
msgid "Read the checker and its two helpers"
|
||
msgstr "Lesen Sie den Checker und seine beiden Helfer"
|
||
|
||
#. {ph0}: <code>0x18</code>
|
||
#. {ph1}: <code>0x270</code>
|
||
#: website/public/showcase/ctf/index.html:350
|
||
#, 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 ""
|
||
"Die erste Schleife kopiert 36 Zeichencodes. Die Prüfschleife dekodiert eine "
|
||
"Maske, summiert die ausgewählten Codes und vergleicht das Ergebnis mit einer"
|
||
" gespeicherten Nummer. Seiner {ph0}-byte-Schritte über {ph1} bytes ergeben "
|
||
"26 Masken."
|
||
|
||
#: website/public/showcase/ctf/index.html:358
|
||
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 ""
|
||
"Dies sind ausgewählte Ergebnisse einer neuen REA-Analyse. Der lokale "
|
||
"Zielpfad wird für die Anzeige gekürzt; Adressen beziehen sich auf das "
|
||
"importierte Bild von REA."
|
||
|
||
#: website/public/showcase/ctf/index.html:366
|
||
msgctxt "page:showcase/ctf/index.html"
|
||
msgid "One check reveals one character"
|
||
msgstr "Ein Häkchen zeigt einen Charakter"
|
||
|
||
#: website/public/showcase/ctf/index.html:367
|
||
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 ""
|
||
"Der Checker ordnet die Eingabe in einem 6 × 6-Raster an. Eine Maske wählt "
|
||
"aus, welche Zellen zu einer Summe beitragen. Seine kompakte Codierung "
|
||
"verwendet negative Zahlen, um Zellen zu überspringen, und positive Zahlen, "
|
||
"um sie auszuwählen."
|
||
|
||
#. {ph0}: <a href="../../assets/figures/ctf-mask-equation.svg" >
|
||
#. {ph1}: </a >
|
||
#: website/public/showcase/ctf/index.html:387
|
||
#, python-brace-format
|
||
msgctxt "page:showcase/ctf/index.html"
|
||
msgid "The seventh check selects just one position. {ph0}Open figure{ph1}."
|
||
msgstr ""
|
||
"Die siebte Prüfung wählt nur eine Position aus. {ph0}Offene Figur{ph1}."
|
||
|
||
#: website/public/showcase/ctf/index.html:394
|
||
msgctxt "page:showcase/ctf/index.html"
|
||
msgid "Read the mask and its target from the binary"
|
||
msgstr "Lesen Sie die Maske und ihr Ziel aus der Binärdatei"
|
||
|
||
#. {ph0}: <code>MOVSX</code>
|
||
#. {ph1}: <code>eb</code>
|
||
#. {ph2}: <code>code[21] = 55</code>
|
||
#. {ph3}: <code>7</code>
|
||
#: website/public/showcase/ctf/index.html:416
|
||
#, 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 ""
|
||
"Anweisung {ph0} liest Maskenbytes als vorzeichenbehaftete Werte. Das ist der"
|
||
" Grund {ph1} bedeutet -21. Das Ziel ist eine Little-Endian-Ganzzahl. "
|
||
"Zusammen sagen diese Bytes dem Agenten, dass {ph2}, also ist dieser "
|
||
"Charakter {ph3}."
|
||
|
||
#: website/public/showcase/ctf/index.html:425
|
||
msgctxt "page:showcase/ctf/index.html"
|
||
msgid "From instructions to a readable check"
|
||
msgstr "Von der Anleitung zum lesbaren Scheck"
|
||
|
||
#: website/public/showcase/ctf/index.html:426
|
||
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 ""
|
||
"Wählen Sie einen Schritt aus, um den Summierungshelfer und seinen Aufrufer "
|
||
"mit derselben Regel in C zu verbinden."
|
||
|
||
#. {ph0}: <span>
|
||
#. {ph1}: </span>
|
||
#: website/public/showcase/ctf/index.html:436
|
||
#, python-brace-format
|
||
msgctxt "page:showcase/ctf/index.html"
|
||
msgid "{ph0}01{ph1} Start"
|
||
msgstr "{ph0}01{ph1} Beginnen"
|
||
|
||
#. {ph0}: <span>
|
||
#. {ph1}: </span>
|
||
#: website/public/showcase/ctf/index.html:444
|
||
#, python-brace-format
|
||
msgctxt "page:showcase/ctf/index.html"
|
||
msgid "{ph0}02{ph1} Select"
|
||
msgstr "{ph0}02{ph1} Wählen"
|
||
|
||
#. {ph0}: <span>
|
||
#. {ph1}: </span>
|
||
#: website/public/showcase/ctf/index.html:452
|
||
#, python-brace-format
|
||
msgctxt "page:showcase/ctf/index.html"
|
||
msgid "{ph0}03{ph1} Add"
|
||
msgstr "{ph0}03{ph1} Hinzufügen"
|
||
|
||
#. {ph0}: <span>
|
||
#. {ph1}: </span>
|
||
#: website/public/showcase/ctf/index.html:460
|
||
#, python-brace-format
|
||
msgctxt "page:showcase/ctf/index.html"
|
||
msgid "{ph0}04{ph1} Advance"
|
||
msgstr "{ph0}04{ph1} Voraus"
|
||
|
||
#. {ph0}: <span>
|
||
#. {ph1}: </span>
|
||
#: website/public/showcase/ctf/index.html:468
|
||
#, python-brace-format
|
||
msgctxt "page:showcase/ctf/index.html"
|
||
msgid "{ph0}05{ph1} Compare"
|
||
msgstr "{ph0}05{ph1} Vergleichen"
|
||
|
||
#: website/public/showcase/ctf/index.html:480
|
||
msgctxt "page:showcase/ctf/index.html"
|
||
msgid "REA · selected original instructions"
|
||
msgstr "REA * ausgewählte Originalanleitung"
|
||
|
||
#: website/public/showcase/ctf/index.html:504
|
||
msgctxt "page:showcase/ctf/index.html"
|
||
msgid "Readable C · one-check summary"
|
||
msgstr "Lesbare C · One-Check-Zusammenfassung"
|
||
|
||
#. {ph0}: <strong>
|
||
#. {ph1}: </strong>
|
||
#. {ph2}: <code>ECX</code>
|
||
#: website/public/showcase/ctf/index.html:533
|
||
#, python-brace-format
|
||
msgctxt "page:showcase/ctf/index.html"
|
||
msgid "{ph0}01 · Start at zero.{ph1} {ph2} holds the running sum."
|
||
msgstr "{ph0}01 * Bei Null beginnen.{ph1} {ph2} enthält die laufende Summe."
|
||
|
||
#. {ph0}: <strong>
|
||
#. {ph1}: </strong>
|
||
#: website/public/showcase/ctf/index.html:537
|
||
#, 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 · Überprüfen Sie die Maskenzelle.{ph1} Ein Nullwert überspringt das "
|
||
"Zeichen; Ein Wert ungleich Null schließt es ein."
|
||
|
||
#. {ph0}: <strong>
|
||
#. {ph1}: </strong>
|
||
#: website/public/showcase/ctf/index.html:541
|
||
#, 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 * Fügen Sie einen Zeichencode hinzu.{ph1} Die Ganzzahl der Eingabe "
|
||
"am gleichen Offset wird zur Summe addiert."
|
||
|
||
#. {ph0}: <strong>
|
||
#. {ph1}: </strong>
|
||
#: website/public/showcase/ctf/index.html:545
|
||
#, 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 * Gehe zur nächsten Zelle.{ph1} Die ursprüngliche Schleife rückt "
|
||
"vier Bytes pro Ganzzahl vor und besucht sechs Zeilen mit sechs Zellen."
|
||
|
||
#. {ph0}: <strong>
|
||
#. {ph1}: </strong>
|
||
#. {ph2}: <code>EAX</code>
|
||
#. {ph3}: <code>Incorrect!</code>
|
||
#: website/public/showcase/ctf/index.html:550
|
||
#, 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 * Vergleichen Sie mit dem gespeicherten Ziel.{ph1} Der Anrufer "
|
||
"erhält die Summe in {ph2}. Eine Fehlanpassung springt zu {ph3}."
|
||
|
||
#: website/public/showcase/ctf/index.html:557
|
||
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 ""
|
||
"Die Anweisungen stammen vom Summierhelfer und seinem Aufrufer. Das C ist "
|
||
"eine erklärende Zusammenfassung mit beschreibenden Namen und einer "
|
||
"abgeflachten 36-Zellen-Schleife."
|
||
|
||
#: website/public/showcase/ctf/index.html:565
|
||
msgctxt "page:showcase/ctf/index.html"
|
||
msgid "Solve the 26 equations"
|
||
msgstr "Löse die 26 Gleichungen"
|
||
|
||
#: website/public/showcase/ctf/index.html:566
|
||
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 ""
|
||
"Die meisten Masken markieren mehrere Zellen. Zum Beispiel fügt die erste "
|
||
"Prüfung 16 Zeichencodes hinzu und erfordert insgesamt 1441. Die "
|
||
"überlappenden Auswahlen ergeben Gleichungen, die ein kleines Python-Skript "
|
||
"zusammen lösen kann."
|
||
|
||
#: website/public/showcase/ctf/index.html:574
|
||
msgctxt "page:showcase/ctf/index.html"
|
||
msgid "Python · solver excerpt"
|
||
msgstr "Python * Löser Auszug"
|
||
|
||
#. {ph0}: <code>DUCTF{…}</code>
|
||
#: website/public/showcase/ctf/index.html:602
|
||
#, 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 ist ein Löser, der Werte findet, die diese Gleichungen erfüllen. Dieser "
|
||
"Auszug verwendet die extrahierten Prüfungen und geht von einer {ph0} flagge "
|
||
"mit Buchstaben, Ziffern, Unterstrichen und geschweiften Klammern. Der "
|
||
"vollständige Download enthält alle 26 Masken und Ziele."
|
||
|
||
#: website/public/showcase/ctf/index.html:608
|
||
msgctxt "page:showcase/ctf/index.html"
|
||
msgid "Download the complete solver"
|
||
msgstr "Laden Sie den vollständigen Solver herunter"
|
||
|
||
#: website/public/showcase/ctf/index.html:614
|
||
msgctxt "page:showcase/ctf/index.html"
|
||
msgid "Check the answer with the original program"
|
||
msgstr "Überprüfen Sie die Antwort mit dem Originalprogramm"
|
||
|
||
#. {ph0}: <code>z</code>
|
||
#. {ph1}: <code>y</code>
|
||
#: website/public/showcase/ctf/index.html:615
|
||
#, 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 ""
|
||
"Die Prozesserfassung von REA zeichnet die ursprüngliche ausführbare Datei "
|
||
"auf, die das gelöste Flag akzeptiert. Ändern eines ausgewählten Zeichens aus"
|
||
" {ph0} zu {ph1} macht die erste Summe 1440 anstelle von 1441, und das "
|
||
"Programm lehnt sie ab."
|
||
|
||
#: website/public/showcase/ctf/index.html:625
|
||
msgctxt "page:showcase/ctf/index.html"
|
||
msgid "Input"
|
||
msgstr "Eingang"
|
||
|
||
#: website/public/showcase/ctf/index.html:626
|
||
msgctxt "page:showcase/ctf/index.html"
|
||
msgid "Observed output"
|
||
msgstr "Beobachteter Output"
|
||
|
||
#: website/public/showcase/ctf/index.html:627
|
||
msgctxt "page:showcase/ctf/index.html"
|
||
msgid "Exit code"
|
||
msgstr "Ausstiegscode"
|
||
|
||
#: website/public/showcase/ctf/index.html:632
|
||
msgctxt "page:showcase/ctf/index.html"
|
||
msgid "Solver's flag"
|
||
msgstr "Flagge des Lösers"
|
||
|
||
#: website/public/showcase/ctf/index.html:637
|
||
msgctxt "page:showcase/ctf/index.html"
|
||
msgid "One character changed"
|
||
msgstr "Ein Charakter wurde geändert"
|
||
|
||
#: website/public/showcase/ctf/index.html:645
|
||
msgctxt "page:showcase/ctf/index.html"
|
||
msgid "Show the recovered flag and captured output"
|
||
msgstr "Zeigen Sie das wiederhergestellte Flag und die erfasste Ausgabe an"
|
||
|
||
#: website/public/showcase/ctf/index.html:648
|
||
msgctxt "page:showcase/ctf/index.html"
|
||
msgid "REA · original program output"
|
||
msgstr "REA * ursprüngliche Programmausgabe"
|
||
|
||
#: website/public/showcase/ctf/index.html:649
|
||
msgctxt "page:showcase/ctf/index.html"
|
||
msgid "Copy flag"
|
||
msgstr "Flagge kopieren"
|
||
|
||
#: website/public/showcase/ctf/index.html:661
|
||
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 ""
|
||
"Der wiederhergestellte Wert stimmt auch mit dem Flag in den veröffentlichten"
|
||
" Challenge-Metadaten der Organisatoren überein, das nach dem Lösen der "
|
||
"Binärdatei überprüft wurde."
|
||
|
||
#: website/public/showcase/ctf/index.html:667
|
||
msgctxt "page:showcase/ctf/index.html"
|
||
msgid "Source, target identity and analysis details"
|
||
msgstr "Quelle, Zielidentität und Analysedetails"
|
||
|
||
#: website/public/showcase/ctf/index.html:668
|
||
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 ""
|
||
"Neue Analyse und zwei Prozesserfassungen am 8. Oktober 2026 mit REA 4.1.0 "
|
||
"mit Ghidra 12.1.4 auf Linux x64. Die Binärdatei ist eine gestrippte x86-64 "
|
||
"ELF, 15.248 Byte."
|
||
|
||
#: website/public/showcase/ctf/index.html:679
|
||
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 ""
|
||
"Die Zeichenfolgenreferenzen, Funktionen und Konstanten wurden überprüft, "
|
||
"bevor die Quelle oder Lösung des Veranstalters gelesen wurde. Der Python-"
|
||
"Solver und das Diagramm wurden aus diesen REA-Ergebnissen erstellt."
|
||
|
||
#. {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:684
|
||
#, 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}Vergleiche mit der Quelle des Veranstalters{ph1} · {ph2}Metadaten und "
|
||
"Flag abfragen{ph3} · {ph4} REA Hinweise zum Nachweis{ph5}"
|
||
|
||
#: website/public/showcase/ctf/index.html:704
|
||
msgctxt "page:showcase/ctf/index.html"
|
||
msgid "Try it yourself"
|
||
msgstr "Probieren Sie es selbst aus"
|
||
|
||
#: website/public/showcase/ctf/index.html:705
|
||
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 ""
|
||
"Laden Sie die ursprüngliche Herausforderung und den Löser in einen Ordner "
|
||
"herunter. Verwenden Sie die obige Eingabeaufforderung, um mit Ihrem Agenten "
|
||
"Nachforschungen anzustellen, oder führen Sie das mitgelieferte Skript aus."
|
||
|
||
#: website/public/showcase/ctf/index.html:721
|
||
msgctxt "page:showcase/ctf/index.html"
|
||
msgid "Terminal · solve and run"
|
||
msgstr "Terminal * lösen und ausführen"
|
||
|
||
#. {ph0}: <code>z3-solver</code>
|
||
#: website/public/showcase/ctf/index.html:738
|
||
#, 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 ""
|
||
"Das Skript druckt ein Kandidatenflag; Fügen Sie es an der "
|
||
"Eingabeaufforderung des Programms ein. Lösungsbedürfnisse Python und {ph0}. "
|
||
"Zum Ausführen der ursprünglichen ausführbaren Datei ist Linux x86-64 "
|
||
"erforderlich."
|
||
|
||
#: website/public/showcase/ctf/index.html:743
|
||
msgctxt "page:showcase/ctf/index.html"
|
||
msgid "Set up REA with your coding agent"
|
||
msgstr "Richten Sie REA mit Ihrem Codierungsagenten ein"
|
||
|
||
#: website/public/showcase/ctf/index.html:6
|
||
msgctxt "page:showcase/ctf/index.html"
|
||
msgid "CTF Reverse Engineering: DownUnderCTF Flag Checker — REA"
|
||
msgstr "CTF-Rückentwicklung: DownUnderCTF-Flaggenprüfer - 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 ""
|
||
"Verwenden Sie REA, um den Flag-Checker für maskierte Quadrate von "
|
||
"DownUnderCTF zu lösen. Finden Sie die Prüffunktionen, extrahieren Sie die "
|
||
"Masken und vergleichen Sie ein wiederhergestelltes Flag mit dem "
|
||
"Originalprogramm."
|
||
|
||
#: website/public/showcase/ctf/index.html:236
|
||
msgctxt "page:showcase/ctf/index.html"
|
||
msgid "On this page"
|
||
msgstr "Auf dieser Seite"
|
||
|
||
#: website/public/showcase/ctf/index.html:247
|
||
msgctxt "page:showcase/ctf/index.html"
|
||
msgid "CTF flag-checker case study"
|
||
msgstr "CTF flag-checker Fallstudie"
|
||
|
||
#: website/public/showcase/ctf/index.html:262
|
||
msgctxt "page:showcase/ctf/index.html"
|
||
msgid "Copy CTF example prompt"
|
||
msgstr "CTF-Beispiel-Eingabeaufforderung kopieren"
|
||
|
||
#: website/public/showcase/ctf/index.html:373
|
||
msgctxt "page:showcase/ctf/index.html"
|
||
msgid "CTF mask equation; scroll horizontally on smaller screens"
|
||
msgstr "CTF-Maskengleichung; auf kleineren Bildschirmen horizontal scrollen"
|
||
|
||
#: website/public/showcase/ctf/index.html:379
|
||
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 ""
|
||
"Die siebte Maske überspringt 21 Zellen, wählt Position 21 aus und "
|
||
"überspringt dann 14. Nur diese Zelle trägt zur Summe bei. Der erforderliche "
|
||
"Zeichencode ist 55, was bedeutet, dass das Zeichen 7 ist."
|
||
|
||
#: website/public/showcase/ctf/index.html:431
|
||
msgctxt "page:showcase/ctf/index.html"
|
||
msgid "Follow the CTF check"
|
||
msgstr "Befolgen Sie den CTF-Check"
|
||
|
||
#: website/public/showcase/ctf/index.html:481
|
||
msgctxt "page:showcase/ctf/index.html"
|
||
msgid "Copy CTF assembly"
|
||
msgstr "CTF-Baugruppe kopieren"
|
||
|
||
#: website/public/showcase/ctf/index.html:505
|
||
msgctxt "page:showcase/ctf/index.html"
|
||
msgid "Copy readable CTF check"
|
||
msgstr "Kopierlesbare CTF-Prüfung"
|
||
|
||
#: website/public/showcase/ctf/index.html:575
|
||
msgctxt "page:showcase/ctf/index.html"
|
||
msgid "Copy CTF solver excerpt"
|
||
msgstr "Auszug aus dem CTF-Löser kopieren"
|
||
|
||
#: website/public/showcase/ctf/index.html:649
|
||
msgctxt "page:showcase/ctf/index.html"
|
||
msgid "Copy recovered flag"
|
||
msgstr "Wiederhergestelltes Flag kopieren"
|
||
|
||
#: website/public/showcase/ctf/index.html:722
|
||
msgctxt "page:showcase/ctf/index.html"
|
||
msgid "Copy CTF solver commands"
|
||
msgstr "Kopieren von CTF-Solver-Befehlen"
|
||
|
||
#: website/public/showcase/ctf/index.html:764
|
||
msgctxt "page:showcase/ctf/index.html"
|
||
msgid "Back to top"
|
||
msgstr "Nach oben"
|
||
|
||
#: website/public/showcase/dx-ball/index.html:99
|
||
msgctxt "page:showcase/dx-ball/index.html"
|
||
msgid "Skip to content"
|
||
msgstr "Zum Inhalt springen"
|
||
|
||
#. {ph0}: <a href="../../">
|
||
#. {ph1}: </a>
|
||
#. {ph2}: <a href="../">
|
||
#. {ph3}: </a>
|
||
#: website/public/showcase/dx-ball/index.html:181
|
||
#, python-brace-format
|
||
msgctxt "page:showcase/dx-ball/index.html"
|
||
msgid "{ph0}Home{ph1} / {ph2}Showcases{ph3} / DX-Ball"
|
||
msgstr "{ph0}Startseite{ph1} / {ph2}Präsentieren{ph3} Modell: DX-Ball"
|
||
|
||
#: website/public/showcase/dx-ball/index.html:184
|
||
msgctxt "page:showcase/dx-ball/index.html"
|
||
msgid "Case study · DX-Ball 1.07"
|
||
msgstr "Fallstudie * DX-Ball 1.07"
|
||
|
||
#. {ph0}: <br />
|
||
#: website/public/showcase/dx-ball/index.html:185
|
||
#, python-brace-format
|
||
msgctxt "page:showcase/dx-ball/index.html"
|
||
msgid "Rebuilding DX-Ball{ph0}from its executable."
|
||
msgstr "Umbau DX-Ball {ph0}von seiner ausführbaren Datei."
|
||
|
||
#: website/public/showcase/dx-ball/index.html:186
|
||
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 ""
|
||
"Das Ziel ist eine wartbare C-Version des 1996er Windows-Spiels. REA hilft "
|
||
"dem Agenten, das Original Funktion für Funktion zu inspizieren."
|
||
|
||
#: website/public/showcase/dx-ball/index.html:190
|
||
msgctxt "page:showcase/dx-ball/index.html"
|
||
msgid "Windows i386 · C · REA"
|
||
msgstr "Modell: Windows i386 · C · REA"
|
||
|
||
#. {ph0}: <a href="../../assets/figures/dx-ball-sound-pan-investigation.svg" >
|
||
#. {ph1}: </a >
|
||
#: website/public/showcase/dx-ball/index.html:207
|
||
#, 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 ""
|
||
"Eine Funktion, von ausführbar bis geprüft C. REA liefert die Anweisungen, "
|
||
"Aufrufer und Datenlesungen; Das Rekonstruktionsprojekt implementiert und "
|
||
"testet das Ergebnis. {ph0}Offene Figur{ph1}"
|
||
|
||
#: website/public/showcase/dx-ball/index.html:218
|
||
msgctxt "page:showcase/dx-ball/index.html"
|
||
msgid "In this case study"
|
||
msgstr "In dieser Fallstudie"
|
||
|
||
#. {ph0}: <a href="#progress">
|
||
#. {ph1}: </a>
|
||
#: website/public/showcase/dx-ball/index.html:220
|
||
#, python-brace-format
|
||
msgctxt "page:showcase/dx-ball/index.html"
|
||
msgid "{ph0}The project{ph1}"
|
||
msgstr "{ph0}Projekt{ph1}"
|
||
|
||
#. {ph0}: <a href="#sound-pan">
|
||
#. {ph1}: </a>
|
||
#: website/public/showcase/dx-ball/index.html:221
|
||
#, python-brace-format
|
||
msgctxt "page:showcase/dx-ball/index.html"
|
||
msgid "{ph0}Sound pan{ph1}"
|
||
msgstr "{ph0}Ton schwenken{ph1}"
|
||
|
||
#. {ph0}: <a href="#checking">
|
||
#. {ph1}: </a>
|
||
#: website/public/showcase/dx-ball/index.html:222
|
||
#, python-brace-format
|
||
msgctxt "page:showcase/dx-ball/index.html"
|
||
msgid "{ph0}Checking the result{ph1}"
|
||
msgstr "{ph0}Überprüfung des Ergebnisses{ph1}"
|
||
|
||
#. {ph0}: <a href="#continue">
|
||
#. {ph1}: </a>
|
||
#: website/public/showcase/dx-ball/index.html:223
|
||
#, python-brace-format
|
||
msgctxt "page:showcase/dx-ball/index.html"
|
||
msgid "{ph0}Continue the work{ph1}"
|
||
msgstr "{ph0}Setzen Sie die Arbeit fort{ph1}"
|
||
|
||
#: website/public/showcase/dx-ball/index.html:231
|
||
msgctxt "page:showcase/dx-ball/index.html"
|
||
msgid "maintained C functions"
|
||
msgstr "beibehaltene C-Funktionen"
|
||
|
||
#: website/public/showcase/dx-ball/index.html:235
|
||
msgctxt "page:showcase/dx-ball/index.html"
|
||
msgid "comparisons with original code"
|
||
msgstr "vergleiche mit Originalcode"
|
||
|
||
#: website/public/showcase/dx-ball/index.html:239
|
||
msgctxt "page:showcase/dx-ball/index.html"
|
||
msgid "functions with matching compiled bytes"
|
||
msgstr "funktionen mit übereinstimmenden kompilierten Bytes"
|
||
|
||
#. {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:242
|
||
#, 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 ""
|
||
"Projekt-Checkpoint: 7. Oktober 2026. {ph0}Fortschrittsbuch{ph1} · "
|
||
"{ph2}Testabdeckung{ph3}"
|
||
|
||
#: website/public/showcase/dx-ball/index.html:254
|
||
msgctxt "page:showcase/dx-ball/index.html"
|
||
msgid "The project so far"
|
||
msgstr "Das Projekt bisher"
|
||
|
||
#: website/public/showcase/dx-ball/index.html:255
|
||
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 ""
|
||
"Der wiederhergestellte Code umfasst Brett- und Ressourcenhandhabung, "
|
||
"Ziegelsteintreffer, Animationen, Partikel und Bonusproduktion. Aktuelle "
|
||
"Builds bieten Inspektionsprogramme und eine Analysebibliothek. Die Arbeit am"
|
||
" spielbaren Spiel wird mit Ball- und Paddelphysik, Power-Up-Handling und "
|
||
"Windows-Integration fortgesetzt."
|
||
|
||
#: website/public/showcase/dx-ball/index.html:265
|
||
msgctxt "page:showcase/dx-ball/index.html"
|
||
msgid "Finding the sound-pan calculation"
|
||
msgstr "Ermittlung der Berechnung der linken / rechten Schallposition"
|
||
|
||
#: website/public/showcase/dx-ball/index.html:266
|
||
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 ""
|
||
"Wenn ein Stein getroffen wird, wird seine horizontale Position an den "
|
||
"Soundcode übergeben. Die Untersuchung musste wiederhergestellt werden, wie "
|
||
"diese Bildschirmkoordinate zu einem Links / Rechts-Schwenkwert wird."
|
||
|
||
#. {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:273
|
||
#, 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}Ihr Codierungsagent"
|
||
|
||
#: website/public/showcase/dx-ball/index.html:277
|
||
#: website/public/showcase/dx-ball/index.html:468
|
||
#: website/public/showcase/dx-ball/index.html:489
|
||
#: website/public/showcase/dx-ball/index.html:560
|
||
#: website/public/showcase/dx-ball/index.html:714
|
||
msgctxt "page:showcase/dx-ball/index.html"
|
||
msgid "Copy"
|
||
msgstr "Kopieren"
|
||
|
||
#. {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:286
|
||
#, 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}Verwenden Sie REA, um herauszufinden, wie DX-Ball die "
|
||
"Stereoklangpositionierung berechnet. Erklären Sie die Berechnung und zeigen "
|
||
"Sie den Code.{ph3}{ph4}{ph5}"
|
||
|
||
#: website/public/showcase/dx-ball/index.html:294
|
||
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 ""
|
||
"Eine Beispielaufforderung für Ihren Codierungsagenten, wobei die lokale "
|
||
"ausführbare Datei verfügbar ist. Die folgende Untersuchung zeigt die REA-"
|
||
"Abfragen und Beweise hinter der Antwort."
|
||
|
||
#: website/public/showcase/dx-ball/index.html:299
|
||
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 ""
|
||
"Der Agent hat REA verwendet, um die Funktion zu überprüfen, seinem Aufrufer "
|
||
"mit Ziegelsteinen zu folgen und die Konstanten aus der ausführbaren Datei zu"
|
||
" lesen. Diese Ergebnisse lieferten die Eingabe und Arithmetik, die zum "
|
||
"Schreiben der folgenden C-Funktion erforderlich waren."
|
||
|
||
#. {ph0}: <code>0x406400</code>
|
||
#. {ph1}: <code>FUN_00406400(void)</code>
|
||
#. {ph2}: <code>__ftol()</code>
|
||
#: website/public/showcase/dx-ball/index.html:305
|
||
#, 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 ""
|
||
"Das erste Funktionsergebnis für {ph0} enthaltene Pseudocode-Deklaration "
|
||
"{ph1} und ruft {ph2}. Die Anweisungsansicht zeigte eine Stapeleingabe und "
|
||
"Gleitkommaoperationen. Diese Diskrepanz gab dem Agenten einen konkreten "
|
||
"Grund, weiter zu ermitteln."
|
||
|
||
#: website/public/showcase/dx-ball/index.html:313
|
||
msgctxt "page:showcase/dx-ball/index.html"
|
||
msgid "The first decompiler view"
|
||
msgstr "Die erste Decompiler-Ansicht"
|
||
|
||
#: website/public/showcase/dx-ball/index.html:326
|
||
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 ""
|
||
"Die Ausgabe zeigt einen Konvertierungsaufruf. Wenn Sie die folgenden "
|
||
"Anweisungen lesen, werden die Eingabe und die Berechnung angezeigt, die "
|
||
"diesen Aufruf einspeisen."
|
||
|
||
#: website/public/showcase/dx-ball/index.html:332
|
||
msgctxt "page:showcase/dx-ball/index.html"
|
||
msgid "Three questions answered through REA"
|
||
msgstr "Drei Fragen beantwortet durch REA"
|
||
|
||
#: website/public/showcase/dx-ball/index.html:335
|
||
msgctxt "page:showcase/dx-ball/index.html"
|
||
msgid "Recover the missing input"
|
||
msgstr "Stellen Sie die fehlende Eingabe wieder her"
|
||
|
||
#. {ph0}: <code>[EBP+8]</code>
|
||
#: website/public/showcase/dx-ball/index.html:352
|
||
#, 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 ""
|
||
"Das Funktionsergebnis enthält Anweisungen neben Pseudocode und Aufrufern. "
|
||
"Hier, {ph0} macht die Integer-Eingabe verfügbar, die in der "
|
||
"Dekompilierungsansicht fehlt."
|
||
|
||
#: website/public/showcase/dx-ball/index.html:359
|
||
msgctxt "page:showcase/dx-ball/index.html"
|
||
msgid "Follow the caller to understand the input"
|
||
msgstr "Folgen Sie dem Anrufer, um die Eingabe zu verstehen"
|
||
|
||
#. {ph0}: <code>tile_x</code>
|
||
#. {ph1}: <code>20 + 30 × tile_x</code>
|
||
#: website/public/showcase/dx-ball/index.html:376
|
||
#, 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 hat diesen Anrufer im ersten Ergebnis identifiziert. Seine "
|
||
"vorhergehenden Anweisungen skalieren {ph0} um 30; Das Addieren von 20 ergibt"
|
||
" die Bildschirmkoordinate des Bausteins, {ph1}."
|
||
|
||
#: website/public/showcase/dx-ball/index.html:383
|
||
msgctxt "page:showcase/dx-ball/index.html"
|
||
msgid "Read the values behind the memory addresses"
|
||
msgstr "Lesen Sie die Werte hinter den Speicheradressen"
|
||
|
||
#: website/public/showcase/dx-ball/index.html:404
|
||
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 ""
|
||
"Die zurückgegebenen Bytes legen die beiden arithmetischen Konstanten und die"
|
||
" anfängliche Schwenkskala fest. Der Agent hat jetzt die Werte, die für den "
|
||
"C-Ausdruck benötigt werden."
|
||
|
||
#: website/public/showcase/dx-ball/index.html:412
|
||
msgctxt "page:showcase/dx-ball/index.html"
|
||
msgid "From REA's findings to C"
|
||
msgstr "Von den Erkenntnissen von REA zu C"
|
||
|
||
#: website/public/showcase/dx-ball/index.html:413
|
||
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 ""
|
||
"Befolgen Sie die folgenden fünf Schritte. Jede Auswahl hebt die "
|
||
"ursprünglichen Anweisungen und die von ihnen informierten C-Zeilen hervor."
|
||
|
||
#. {ph0}: <span>
|
||
#. {ph1}: </span>
|
||
#: website/public/showcase/dx-ball/index.html:423
|
||
#, python-brace-format
|
||
msgctxt "page:showcase/dx-ball/index.html"
|
||
msgid "{ph0}01{ph1} Input"
|
||
msgstr "{ph0}01{ph1} Eingang"
|
||
|
||
#. {ph0}: <span>
|
||
#. {ph1}: </span>
|
||
#: website/public/showcase/dx-ball/index.html:431
|
||
#, python-brace-format
|
||
msgctxt "page:showcase/dx-ball/index.html"
|
||
msgid "{ph0}02{ph1} Multiply"
|
||
msgstr "{ph0}02{ph1} Multiplizieren"
|
||
|
||
#. {ph0}: <span>
|
||
#. {ph1}: </span>
|
||
#: website/public/showcase/dx-ball/index.html:439
|
||
#, python-brace-format
|
||
msgctxt "page:showcase/dx-ball/index.html"
|
||
msgid "{ph0}03{ph1} Subtract"
|
||
msgstr "{ph0}03{ph1} Subtrahieren"
|
||
|
||
#. {ph0}: <span>
|
||
#. {ph1}: </span>
|
||
#: website/public/showcase/dx-ball/index.html:447
|
||
#, python-brace-format
|
||
msgctxt "page:showcase/dx-ball/index.html"
|
||
msgid "{ph0}04{ph1} Scale"
|
||
msgstr "{ph0}04{ph1} Skala"
|
||
|
||
#. {ph0}: <span>
|
||
#. {ph1}: </span>
|
||
#: website/public/showcase/dx-ball/index.html:455
|
||
#, python-brace-format
|
||
msgctxt "page:showcase/dx-ball/index.html"
|
||
msgid "{ph0}05{ph1} Return"
|
||
msgstr "{ph0}05{ph1} Zurückgeben"
|
||
|
||
#: website/public/showcase/dx-ball/index.html:467
|
||
msgctxt "page:showcase/dx-ball/index.html"
|
||
msgid "Original x86 · excerpt"
|
||
msgstr "Original x86 * Auszug"
|
||
|
||
#: website/public/showcase/dx-ball/index.html:488
|
||
msgctxt "page:showcase/dx-ball/index.html"
|
||
msgid "Reconstructed C"
|
||
msgstr "Rekonstruiertes 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:515
|
||
#, 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 * Lesen Sie die Eingabe.{ph1} Die Anweisungsansicht im "
|
||
"Funktionsergebnis von REA lautet {ph2} und verwendet {ph3} um die Ganzzahl "
|
||
"zu laden. Wenn Sie seinem Aufrufer durch REA folgen, wird die "
|
||
"Bildschirmkoordinatenbedeutung des Parameters C festgelegt {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:522
|
||
#, 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 * Multiplizieren Sie mit 1,5625.{ph1} {ph2} liest das Doppelte bei "
|
||
"{ph3}. Die von REAS zurückgegebenen Bytes {ph4} dekodieren zu {ph5}; das C "
|
||
"verwendet dieselbe Konstante."
|
||
|
||
#. {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:528
|
||
#, 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 * Subtrahieren Sie 500,0.{ph1} {ph2} liest das Doppelte bei {ph3}. "
|
||
"Das Byte-Ergebnis von REA dekodiert zu {ph4}, verschieben des "
|
||
"Berechnungsmittelpunkts auf die Bildschirmkoordinate {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:534
|
||
#, 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 · Wenden Sie die gespeicherte Skala an.{ph1} Zweiten {ph2} lesen "
|
||
"{ph3}. Das Globale heißt {ph4} in der gepflegten Quelle. Das zweite "
|
||
"gelesene Byte von REA legt den Anfangswert von fest {ph5}."
|
||
|
||
#. {ph0}: <strong>
|
||
#. {ph1}: </strong>
|
||
#. {ph2}: <code>0x406430</code>
|
||
#. {ph3}: <code>__ftol</code>
|
||
#. {ph4}: <code>DxBallInt</code>
|
||
#: website/public/showcase/dx-ball/index.html:541
|
||
#, 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 * Gibt eine Ganzzahl zurück.{ph1} Der Anruf bei {ph2} Oberlauf "
|
||
"{ph3}, identifiziert in den angerufenen Ergebnissen von REA. Das C wirft das"
|
||
" Ergebnis auf {ph4}; original-x86-Vergleiche überprüfen den zurückgegebenen "
|
||
"Wert."
|
||
|
||
#: website/public/showcase/dx-ball/index.html:550
|
||
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 ""
|
||
"Der Assemblyauszug wählt die Eingabe-, Arithmetik- und Rückgabeanweisungen "
|
||
"aus. Die vollständige Liste unten enthält auch die dazwischenliegenden "
|
||
"Speicher sowie die Einrichtung und Bereinigung von Funktionen."
|
||
|
||
#: website/public/showcase/dx-ball/index.html:556
|
||
msgctxt "page:showcase/dx-ball/index.html"
|
||
msgid "Full assembly and supporting evidence"
|
||
msgstr "Vollständige Versammlung und unterstützende Beweise"
|
||
|
||
#: website/public/showcase/dx-ball/index.html:559
|
||
msgctxt "page:showcase/dx-ball/index.html"
|
||
msgid "REA result · 0x406400–0x40643e"
|
||
msgstr "REA Ergebnis · 0x406400–0x40643e"
|
||
|
||
#: website/public/showcase/dx-ball/index.html:593
|
||
msgctxt "page:showcase/dx-ball/index.html"
|
||
msgid "What the caller supplies"
|
||
msgstr "Was der Anrufer liefert"
|
||
|
||
#. {ph0}: <code>0x411f40</code>
|
||
#: website/public/showcase/dx-ball/index.html:594
|
||
#, 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 ""
|
||
"Die Brick-Hit-Funktion bei {ph0} skaliert die Kachelkoordinate um 30, "
|
||
"addiert 20 und schiebt sie dann vor den Anruf:"
|
||
|
||
#: website/public/showcase/dx-ball/index.html:608
|
||
msgctxt "page:showcase/dx-ball/index.html"
|
||
msgid "What the data reads establish"
|
||
msgstr "Was die Daten lesen, stellen Sie fest"
|
||
|
||
#: website/public/showcase/dx-ball/index.html:611
|
||
msgctxt "page:showcase/dx-ball/index.html"
|
||
msgid "REA byte reads, decoded as little-endian doubles"
|
||
msgstr "REA Byte liest, dekodiert als Little-Endian-Doubles"
|
||
|
||
#: website/public/showcase/dx-ball/index.html:616
|
||
msgctxt "page:showcase/dx-ball/index.html"
|
||
msgid "Address"
|
||
msgstr "Anschrift"
|
||
|
||
#: website/public/showcase/dx-ball/index.html:617
|
||
msgctxt "page:showcase/dx-ball/index.html"
|
||
msgid "Value"
|
||
msgstr "Wert"
|
||
|
||
#: website/public/showcase/dx-ball/index.html:618
|
||
msgctxt "page:showcase/dx-ball/index.html"
|
||
msgid "Used for"
|
||
msgstr "Verwendet für"
|
||
|
||
#: website/public/showcase/dx-ball/index.html:625
|
||
msgctxt "page:showcase/dx-ball/index.html"
|
||
msgid "First multiplication"
|
||
msgstr "Erste Multiplikation"
|
||
|
||
#: website/public/showcase/dx-ball/index.html:630
|
||
msgctxt "page:showcase/dx-ball/index.html"
|
||
msgid "Subtraction"
|
||
msgstr "Subtraktion"
|
||
|
||
#. {ph0}: <code>1.0</code>
|
||
#: website/public/showcase/dx-ball/index.html:634
|
||
#, python-brace-format
|
||
msgctxt "page:showcase/dx-ball/index.html"
|
||
msgid "{ph0} initially"
|
||
msgstr "{ph0} zunächst"
|
||
|
||
#: website/public/showcase/dx-ball/index.html:635
|
||
msgctxt "page:showcase/dx-ball/index.html"
|
||
msgid "Stored pan scale"
|
||
msgstr "Gespeicherte Pfannenwaage"
|
||
|
||
#: website/public/showcase/dx-ball/index.html:640
|
||
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 ""
|
||
"Aufgezeichnet mit REA 4.1.0 für das Hash-angeheftete DX-Ball 1.07-Ziel. Die "
|
||
"verknüpften Ermittlungsnotizen behalten die Beweismittel-IDs bei."
|
||
|
||
#. {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:645
|
||
#, python-brace-format
|
||
msgctxt "page:showcase/dx-ball/index.html"
|
||
msgid ""
|
||
"{ph0}Maintained source{ph1} · {ph2}Investigation notes and evidence "
|
||
"references{ph3}"
|
||
msgstr ""
|
||
"{ph0}Gepflegte Quelle{ph1} · {ph2}Ermittlungsnotizen und "
|
||
"Beweisreferenzen{ph3}"
|
||
|
||
#: website/public/showcase/dx-ball/index.html:659
|
||
msgctxt "page:showcase/dx-ball/index.html"
|
||
msgid "Checking the recovered function"
|
||
msgstr "Überprüfen der wiederhergestellten Funktion"
|
||
|
||
#: website/public/showcase/dx-ball/index.html:660
|
||
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 ""
|
||
"Die wiederhergestellte Funktion besteht zwei Prüfungen: Ihre Rückgabewerte "
|
||
"stimmen mit dem Original überein und ihre kompilierten Bytes stimmen mit der"
|
||
" ausführbaren Datei überein."
|
||
|
||
#: website/public/showcase/dx-ball/index.html:666
|
||
msgctxt "page:showcase/dx-ball/index.html"
|
||
msgid "3,205 behavior cases"
|
||
msgstr "3.205 Verhaltensfälle"
|
||
|
||
#: website/public/showcase/dx-ball/index.html:667
|
||
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 ""
|
||
"Die Tests führen die ursprüngliche x86-Funktion aus und vergleichen ihren "
|
||
"Rückgabewert mit dem gepflegten C. Sie decken jede ganzzahlige Position von "
|
||
"0 bis 640 auf fünf Pan-Skalen ab: 0, 0,5, 1, 20 und -1."
|
||
|
||
#: website/public/showcase/dx-ball/index.html:675
|
||
msgctxt "page:showcase/dx-ball/index.html"
|
||
msgid "63 matching bytes"
|
||
msgstr "63 übereinstimmende Bytes"
|
||
|
||
#: website/public/showcase/dx-ball/index.html:676
|
||
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 ""
|
||
"Die C-Funktion wird mit der angehefteten VC4.0-Toolchain kompiliert. Die "
|
||
"Compiler-Wiedergabe stimmt mit der vollständigen Funktion überein, nachdem "
|
||
"die überprüften Verschiebungen angewendet und die referenzierten Konstanten "
|
||
"überprüft wurden."
|
||
|
||
#: website/public/showcase/dx-ball/index.html:684
|
||
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 ""
|
||
"Bei einer Skala von 1 gibt die wiederhergestellte Berechnung -500 am linken "
|
||
"Rand, 0 in der Mitte und 500 am rechten Rand zurück. Der nächste Teil der "
|
||
"Audioarbeit besteht darin, diesen Wert in das Sound-Backend des Spiels zu "
|
||
"integrieren."
|
||
|
||
#. {ph0}: <a href="https://github.com/N0zoM1z0/dx-
|
||
#. ball/blob/a55dca27ec0a07018c1b2c95ae2be027f7d8c3c4/docs/BUILD_MATCHING.md"
|
||
#. >
|
||
#. {ph1}: </a >
|
||
#: website/public/showcase/dx-ball/index.html:690
|
||
#, python-brace-format
|
||
msgctxt "page:showcase/dx-ball/index.html"
|
||
msgid "{ph0}Read the compiler replay details{ph1}"
|
||
msgstr "{ph0}Lesen Sie die Compiler-Wiedergabedetails{ph1}"
|
||
|
||
#: website/public/showcase/dx-ball/index.html:699
|
||
msgctxt "page:showcase/dx-ball/index.html"
|
||
msgid "Continue the investigation"
|
||
msgstr "Setzen Sie die Untersuchung fort"
|
||
|
||
#: website/public/showcase/dx-ball/index.html:700
|
||
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 ""
|
||
"Der gleiche Ansatz wird für Partikelaktualisierungen, "
|
||
"Explosionswarteschlangen und Bonusgenerierung verwendet: Überprüfen Sie die "
|
||
"relevanten Funktionen, stellen Sie ihren Zustand und ihre Abhängigkeiten "
|
||
"wieder her und vergleichen Sie dann die Implementierung mit dem Original."
|
||
|
||
#: website/public/showcase/dx-ball/index.html:706
|
||
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 ""
|
||
"Um die Sound-Pan-Funktion selbst zu überprüfen, befolgen Sie die "
|
||
"Einrichtungsanweisungen des DX-Ball-Projekts und geben Sie das passende "
|
||
"Originalziel an. Dann lauf:"
|
||
|
||
#: website/public/showcase/dx-ball/index.html:713
|
||
msgctxt "page:showcase/dx-ball/index.html"
|
||
msgid "In the DX-Ball checkout"
|
||
msgstr "In der Kasse des DX-Ball"
|
||
|
||
#. {ph0}: <a href="https://github.com/N0zoM1z0/dx-ball" >
|
||
#. {ph1}: </a >
|
||
#. {ph2}: <span>
|
||
#. {ph3}: </span>
|
||
#: website/public/showcase/dx-ball/index.html:727
|
||
#, 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 Archiv{ph1}{ph2}Aktuelle Quelle, Fortschritt und lokale "
|
||
"Einrichtung.{ph3}"
|
||
|
||
#. {ph0}: <a href="../../guides/native/">
|
||
#. {ph1}: </a >
|
||
#. {ph2}: <span >
|
||
#. {ph3}: </span >
|
||
#: website/public/showcase/dx-ball/index.html:732
|
||
#, 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 Analyse-Arbeitsablauf{ph1}{ph2}Befolgen Sie die Berechnung und "
|
||
"verwenden Sie dann den gleichen Ansatz mit Ihrer eigenen Binärdatei.{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:739
|
||
#, 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}Partikel- und Bonusproduktion{ph1}{ph2}Eine größere Untersuchung zu "
|
||
"Status, Warteschlangen und Pixelschreibvorgängen.{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 Rückentwicklung: Tonschwenken - 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 ""
|
||
"Folgen Sie einer DX-Ball-Rekonstruktion von der Binäranalyse über REA zu "
|
||
"gepflegten C-, Original-x86-Tests und passenden kompilierten Funktionsbytes."
|
||
|
||
#: website/public/showcase/dx-ball/index.html:193
|
||
msgctxt "page:showcase/dx-ball/index.html"
|
||
msgid ""
|
||
"DX-Ball sound-pan investigation; scroll horizontally on smaller screens"
|
||
msgstr ""
|
||
"DX-Ball Sound-Pan-Untersuchung; auf kleineren Bildschirmen horizontal "
|
||
"scrollen"
|
||
|
||
#: website/public/showcase/dx-ball/index.html:199
|
||
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.Die EXE-Funktion 0x00406400 wird mit REA überprüft. Ein Brick-Hit-"
|
||
"Aufrufer liefert 20 plus 30 mal tile_x. Anweisungen laden x, multiplizieren "
|
||
"mit 1,5625, subtrahieren 500,0, wenden pan_scale an und geben eine Ganzzahl "
|
||
"zurück. Das gepflegte C wird in 3.205 Fällen unabhängig gegen das "
|
||
"ursprüngliche x86 und durch VC4.0-Compiler-Wiedergabe mit 63 Bytes "
|
||
"überprüft."
|
||
|
||
#: website/public/showcase/dx-ball/index.html:217
|
||
msgctxt "page:showcase/dx-ball/index.html"
|
||
msgid "On this page"
|
||
msgstr "Auf dieser Seite"
|
||
|
||
#: website/public/showcase/dx-ball/index.html:226
|
||
msgctxt "page:showcase/dx-ball/index.html"
|
||
msgid "DX-Ball reconstruction case study"
|
||
msgstr "DX-Ball Rekonstruktion Fallstudie"
|
||
|
||
#: website/public/showcase/dx-ball/index.html:277
|
||
msgctxt "page:showcase/dx-ball/index.html"
|
||
msgid "Copy example prompt"
|
||
msgstr "Beispiel-Eingabeaufforderung kopieren"
|
||
|
||
#: website/public/showcase/dx-ball/index.html:418
|
||
msgctxt "page:showcase/dx-ball/index.html"
|
||
msgid "Follow the sound-pan calculation"
|
||
msgstr "Befolgen Sie die Berechnung der linken / rechten Klangposition"
|
||
|
||
#: website/public/showcase/dx-ball/index.html:468
|
||
msgctxt "page:showcase/dx-ball/index.html"
|
||
msgid "Copy original assembly excerpt"
|
||
msgstr "Original-Montageauszug kopieren"
|
||
|
||
#: website/public/showcase/dx-ball/index.html:489
|
||
msgctxt "page:showcase/dx-ball/index.html"
|
||
msgid "Copy sound-pan function"
|
||
msgstr "Ton kopieren-Pan-Funktion"
|
||
|
||
#: website/public/showcase/dx-ball/index.html:560
|
||
msgctxt "page:showcase/dx-ball/index.html"
|
||
msgid "Copy complete sound-pan assembly"
|
||
msgstr "Komplette Sound-Pan-Baugruppe kopieren"
|
||
|
||
#: website/public/showcase/dx-ball/index.html:714
|
||
msgctxt "page:showcase/dx-ball/index.html"
|
||
msgid "Copy DX-Ball analysis command"
|
||
msgstr "Kopieren Sie den DX-Ball-Analysebefehl"
|
||
|
||
#: website/public/showcase/dx-ball/index.html:772
|
||
msgctxt "page:showcase/dx-ball/index.html"
|
||
msgid "Back to top"
|
||
msgstr "Nach oben"
|
||
|
||
#: website/public/showcase/index.html:99
|
||
msgctxt "page:showcase/index.html"
|
||
msgid "Skip to content"
|
||
msgstr "Zum Inhalt springen"
|
||
|
||
#. {ph0}: <a href="../">
|
||
#. {ph1}: </a>
|
||
#: website/public/showcase/index.html:181
|
||
#, python-brace-format
|
||
msgctxt "page:showcase/index.html"
|
||
msgid "{ph0}Home{ph1} / Showcases"
|
||
msgstr "{ph0}Startseite{ph1} / Präsentieren"
|
||
|
||
#: website/public/showcase/index.html:182
|
||
msgctxt "page:showcase/index.html"
|
||
msgid "REA case studies."
|
||
msgstr "REA Fallstudien."
|
||
|
||
#: website/public/showcase/index.html:183
|
||
msgctxt "page:showcase/index.html"
|
||
msgid ""
|
||
"Android, games, Electron and a CTF challenge, with code, figures and checked"
|
||
" results."
|
||
msgstr ""
|
||
"Android, Spiele, Electron und eine CTF-Herausforderung mit Code, Zahlen und "
|
||
"geprüften Ergebnissen."
|
||
|
||
#: website/public/showcase/index.html:190
|
||
msgctxt "page:showcase/index.html"
|
||
msgid "Android · APK analysis"
|
||
msgstr "Androide * APK Analyse"
|
||
|
||
#: website/public/showcase/index.html:192
|
||
msgctxt "page:showcase/index.html"
|
||
msgid "How an authenticator generates a login code"
|
||
msgstr "Wie ein Authentifikator einen Anmeldecode generiert"
|
||
|
||
#: website/public/showcase/index.html:193
|
||
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 ""
|
||
"Die sechsstellige Code-Berechnung von Aegis finden Sie in der "
|
||
"veröffentlichten APK . Verfolgen Sie die Generierungsmethoden mit REA und "
|
||
"bewegen Sie dann eine Demo-Uhr, um zu sehen, warum sich der Code alle 30 "
|
||
"Sekunden ändert."
|
||
|
||
#: website/public/showcase/index.html:204
|
||
msgctxt "page:showcase/index.html"
|
||
msgid "Read the Android case study"
|
||
msgstr "Lesen Sie die Android-Fallstudie"
|
||
|
||
#: website/public/showcase/index.html:208
|
||
msgctxt "page:showcase/index.html"
|
||
msgid "CTF · Native analysis"
|
||
msgstr "CTF * Analyse von Maschinencode-Programmen"
|
||
|
||
#: website/public/showcase/index.html:210
|
||
msgctxt "page:showcase/index.html"
|
||
msgid "Solve a CTF flag checker"
|
||
msgstr "Lösen Sie einen CTF-Flag-Checker"
|
||
|
||
#: website/public/showcase/index.html:211
|
||
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 ""
|
||
"Inspizieren Sie eine einfache DownUnderCTF-Herausforderung mit REA . Finden "
|
||
"Sie die Prüffunktionen, verwandeln Sie Masken und Summen in Gleichungen und "
|
||
"überprüfen Sie dann das gelöste Flag mit dem Originalprogramm."
|
||
|
||
#: website/public/showcase/index.html:222
|
||
msgctxt "page:showcase/index.html"
|
||
msgid "Read the CTF case study"
|
||
msgstr "Lesen Sie die CTF-Fallstudie"
|
||
|
||
#: website/public/showcase/index.html:226
|
||
msgctxt "page:showcase/index.html"
|
||
msgid "Native · Reconstruction"
|
||
msgstr "Einheimische * Rekonstruktion"
|
||
|
||
#: website/public/showcase/index.html:228
|
||
msgctxt "page:showcase/index.html"
|
||
msgid "DX-Ball's sound-pan calculation"
|
||
msgstr "DX-BallS Berechnung der linken / rechten Klangposition"
|
||
|
||
#: website/public/showcase/index.html:229
|
||
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 ""
|
||
"Stellen Sie eine Berechnung der linken / rechten Klangposition aus einem "
|
||
"Windows-Spiel von 1996 wieder her. REAS Anweisungen, Aufruferreferenzen und"
|
||
" numerische Konstanten führen zu einer kleinen C-Funktion, die mit dem "
|
||
"ursprünglichen Verhalten und allen 63 kompilierten Bytes verglichen wird."
|
||
|
||
#: website/public/showcase/index.html:241
|
||
msgctxt "page:showcase/index.html"
|
||
msgid "Read the DX-Ball case study"
|
||
msgstr "Lesen Sie die DX-Ball-Fallstudie"
|
||
|
||
#: website/public/showcase/index.html:245
|
||
msgctxt "page:showcase/index.html"
|
||
msgid "Electron · Feature tracing"
|
||
msgstr "Electron * Merkmalsverfolgung"
|
||
|
||
#: website/public/showcase/index.html:247
|
||
msgctxt "page:showcase/index.html"
|
||
msgid "How Notion copies text and HTML"
|
||
msgstr "Wie Notion Text und HTML kopiert"
|
||
|
||
#: website/public/showcase/index.html:248
|
||
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 ""
|
||
"Verfolgen Sie eine seitenseitige API durch das verpackte JavaScript von "
|
||
"Notion . Folgen Sie den IPC-Wrappern in die Systemzwischenablage und sehen "
|
||
"Sie dann, wie ein kleiner HTML-Marker umfangreiche Blockdaten mit einer "
|
||
"Kopie verknüpft."
|
||
|
||
#: website/public/showcase/index.html:259
|
||
msgctxt "page:showcase/index.html"
|
||
msgid "Read the Notion case study"
|
||
msgstr "Lesen Sie die Notion-Fallstudie"
|
||
|
||
#: website/public/showcase/index.html:263
|
||
msgctxt "page:showcase/index.html"
|
||
msgid "PC-98 DOS · Reconstruction"
|
||
msgstr "PC-98 DOS * Rekonstruktion"
|
||
|
||
#: website/public/showcase/index.html:265
|
||
msgctxt "page:showcase/index.html"
|
||
msgid "How TH04 aims a ring of bullets"
|
||
msgstr "Wie TH04 einen Kugelring zielt"
|
||
|
||
#: website/public/showcase/index.html:266
|
||
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 ""
|
||
"Überprüfen Sie den ursprünglichen 16-Bit-Winkelhelfer mit REA . Ordnen Sie "
|
||
"die Multiplikations-, Divisions- und Koordinatenoperationen lesbarem C ++ zu"
|
||
" und sehen Sie dann, wie sie einen auf den Spieler gerichteten Ring "
|
||
"erzeugen."
|
||
|
||
#: website/public/showcase/index.html:277
|
||
msgctxt "page:showcase/index.html"
|
||
msgid "Read the TH04 case study"
|
||
msgstr "Lesen Sie die TH04-Fallstudie"
|
||
|
||
#: website/public/showcase/index.html:282
|
||
msgctxt "page:showcase/index.html"
|
||
msgid "Step-by-step guides"
|
||
msgstr "Schritt-für-Schritt-Anleitungen"
|
||
|
||
#: website/public/showcase/index.html:283
|
||
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 ""
|
||
"Die Anleitungen führen durch eine native Berechnung, einen Electron-Export "
|
||
"und eine Browseranforderung. Jeder beginnt mit einer Aufforderung und einem "
|
||
"konkreten Ziel."
|
||
|
||
#: website/public/showcase/index.html:287
|
||
msgctxt "page:showcase/index.html"
|
||
msgid "Read the guides"
|
||
msgstr "Lesen Sie die Anleitungen"
|
||
|
||
#: website/public/showcase/index.html:6
|
||
msgctxt "page:showcase/index.html"
|
||
msgid "Reverse Engineering Case Studies — REA"
|
||
msgstr "Fallstudien zum Reverse Engineering - 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 ""
|
||
"Verfolgen Sie REA-Untersuchungen anhand von Code, Abbildungen und Demos: "
|
||
"einem Android-Authentifikator, DX-Ball, Notion, TH04 und einem DownUnderCTF-"
|
||
"Flag-Checker."
|
||
|
||
#: website/public/showcase/index.html:304
|
||
msgctxt "page:showcase/index.html"
|
||
msgid "Back to top"
|
||
msgstr "Nach oben"
|
||
|
||
#: website/public/showcase/notion/index.html:99
|
||
msgctxt "page:showcase/notion/index.html"
|
||
msgid "Skip to content"
|
||
msgstr "Zum Inhalt springen"
|
||
|
||
#. {ph0}: <a href="../../">
|
||
#. {ph1}: </a>
|
||
#. {ph2}: <a href="../">
|
||
#. {ph3}: </a>
|
||
#: website/public/showcase/notion/index.html:181
|
||
#, python-brace-format
|
||
msgctxt "page:showcase/notion/index.html"
|
||
msgid "{ph0}Home{ph1} / {ph2}Showcases{ph3} / Notion"
|
||
msgstr "{ph0}Startseite{ph1} / {ph2}Präsentieren{ph3} Modell: Notion"
|
||
|
||
#: website/public/showcase/notion/index.html:184
|
||
msgctxt "page:showcase/notion/index.html"
|
||
msgid "Case study · Electron"
|
||
msgstr "Fallstudie * Electron"
|
||
|
||
#. {ph0}: <br />
|
||
#: website/public/showcase/notion/index.html:185
|
||
#, python-brace-format
|
||
msgctxt "page:showcase/notion/index.html"
|
||
msgid "How Notion copies{ph0}text and HTML."
|
||
msgstr "Wie Notion kopiert{ph0}text und HTML."
|
||
|
||
#: website/public/showcase/notion/index.html:186
|
||
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 ""
|
||
"Verfolgen Sie einen Aufruf der Zwischenablage von der Seiten-API von Notion "
|
||
"über den Preload- und den Hauptprozess zum Clipboard Writer von Electron."
|
||
|
||
#: website/public/showcase/notion/index.html:190
|
||
msgctxt "page:showcase/notion/index.html"
|
||
msgid "Notion Desktop 7.6.1 · JavaScript · REA"
|
||
msgstr "Notion Arbeitsfläche 7.6.1 * JavaScript · REA"
|
||
|
||
#: website/public/showcase/notion/index.html:194
|
||
msgctxt "page:showcase/notion/index.html"
|
||
msgid "The bridge inside Notion's desktop package"
|
||
msgstr "Die Brücke im Desktop-Paket des 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:196
|
||
#, 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 * Seitenseitige API{ph1} {ph2}{ph3}{ph4} {ph5}Das Preload macht eine"
|
||
" aufrufbare Methode verfügbar.{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:203
|
||
#, 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 * Wickler vorladen{ph1} {ph2}{ph3}{ph4} {ph5}Der Wrapper sendet den "
|
||
"Kanal und die Argumente.{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:210
|
||
#, 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 * Haupt-Prozess-Handler{ph1} {ph2}{ph3}{ph4} {ph5}Der Empfänger "
|
||
"überprüft, welche Seite es gesendet hat.{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:217
|
||
#, 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 * System-Zwischenablage{ph1} {ph2}{ph3}{ph4} {ph5} Electron schreibt"
|
||
" den mitgelieferten Text und HTML.{ph6}"
|
||
|
||
#. {ph0}: <code class="notion-channel">notion:clipboard:write</code>
|
||
#: website/public/showcase/notion/index.html:225
|
||
#, python-brace-format
|
||
msgctxt "page:showcase/notion/index.html"
|
||
msgid "One channel joins the two sides: {ph0}"
|
||
msgstr "Ein Kanal verbindet die beiden Seiten: {ph0}"
|
||
|
||
#: website/public/showcase/notion/index.html:229
|
||
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 ""
|
||
"Der gepackte Code verwendet denselben Kanal im Preload- und im Hauptprozess."
|
||
" Beim Auflösen der Wrapper werden die Electron-Aufrufe hinter diesen Namen "
|
||
"angezeigt."
|
||
|
||
#: website/public/showcase/notion/index.html:238
|
||
msgctxt "page:showcase/notion/index.html"
|
||
msgid "In this case study"
|
||
msgstr "In dieser Fallstudie"
|
||
|
||
#. {ph0}: <a href="#clipboard">
|
||
#. {ph1}: </a>
|
||
#: website/public/showcase/notion/index.html:240
|
||
#, python-brace-format
|
||
msgctxt "page:showcase/notion/index.html"
|
||
msgid "{ph0}Follow the clipboard bridge{ph1}"
|
||
msgstr "{ph0}Folgen Sie der Klemmbrett-Brücke{ph1}"
|
||
|
||
#. {ph0}: <a href="#rich-clipboard">
|
||
#. {ph1}: </a>
|
||
#: website/public/showcase/notion/index.html:241
|
||
#, python-brace-format
|
||
msgctxt "page:showcase/notion/index.html"
|
||
msgid "{ph0}Keeping a block's structure{ph1}"
|
||
msgstr "{ph0}Die Struktur eines Blocks beibehalten{ph1}"
|
||
|
||
#. {ph0}: <a href="#continue">
|
||
#. {ph1}: </a>
|
||
#: website/public/showcase/notion/index.html:242
|
||
#, python-brace-format
|
||
msgctxt "page:showcase/notion/index.html"
|
||
msgid "{ph0}More examples and sources{ph1}"
|
||
msgstr "{ph0}Weitere Beispiele und Quellen{ph1}"
|
||
|
||
#: website/public/showcase/notion/index.html:247
|
||
msgctxt "page:showcase/notion/index.html"
|
||
msgid "Where does the copy operation go?"
|
||
msgstr "Wohin geht der Kopiervorgang?"
|
||
|
||
#. {ph0}: <code>clipboard.write</code>
|
||
#: website/public/showcase/notion/index.html:248
|
||
#, 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 ""
|
||
"Die Seite sieht eine Methode namens {ph0}. Seine Implementierung im Preload "
|
||
"ist ein Wrapper. Die nützliche Frage ist, was dieser Wrapper sendet und "
|
||
"welcher Code ihn empfängt."
|
||
|
||
#. {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:255
|
||
#, 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}Ihr Codierungsagent"
|
||
|
||
#: website/public/showcase/notion/index.html:259
|
||
#: website/public/showcase/notion/index.html:332
|
||
#: website/public/showcase/notion/index.html:361
|
||
#: website/public/showcase/notion/index.html:392
|
||
#: website/public/showcase/notion/index.html:420
|
||
msgctxt "page:showcase/notion/index.html"
|
||
msgid "Copy"
|
||
msgstr "Kopieren"
|
||
|
||
#. {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:268
|
||
#, 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}Verwenden Sie REA, um zu verfolgen, wie Notion Text und HTML"
|
||
" in die Systemzwischenablage kopiert. Zeigen Sie den Code bei jedem Schritt "
|
||
"an.{ph3}{ph4}{ph5}"
|
||
|
||
#: website/public/showcase/notion/index.html:276
|
||
msgctxt "page:showcase/notion/index.html"
|
||
msgid ""
|
||
"An example prompt with Notion's local application package available to your "
|
||
"coding agent."
|
||
msgstr ""
|
||
"Eine Beispiel-Eingabeaufforderung mit dem lokalen Anwendungspaket von "
|
||
"Notion, das Ihrem Codierungsagenten zur Verfügung steht."
|
||
|
||
#: website/public/showcase/notion/index.html:281
|
||
msgctxt "page:showcase/notion/index.html"
|
||
msgid "REA finds where to start reading"
|
||
msgstr "REA findet, wo mit dem Lesen begonnen werden soll"
|
||
|
||
#: website/public/showcase/notion/index.html:282
|
||
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 ""
|
||
"Die Analyse des Tab-Preloads mit REA lokalisiert die API, die für die Seite "
|
||
"verfügbar ist, und den Aufruf, der eine IPC-Anforderung sendet. Beide "
|
||
"Befunde werden mit Quellbereichen im minimierten Bündel geliefert:"
|
||
|
||
#: website/public/showcase/notion/index.html:288
|
||
msgctxt "page:showcase/notion/index.html"
|
||
msgid "REA findings → two places to open"
|
||
msgstr "REA Erkenntnisse → zwei Orte zum Öffnen"
|
||
|
||
#. {ph0}: <code>analyze_javascript_application</code>
|
||
#: website/public/showcase/notion/index.html:303
|
||
#, 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 ""
|
||
"Ausgewählte Felder aus einer frischen {ph0} ergebnis auf der Registerkarte "
|
||
"Vorspannung von Notion, aufgezeichnet mit REA 4.1.0. Positionen verwenden "
|
||
"die Linie und die nullbasierte Spalte des ursprünglichen Bündels."
|
||
|
||
#. {ph0}: <code>invokerInMain</code>
|
||
#. {ph1}: <code class="notion-channel">notion:clipboard:write</code>
|
||
#: website/public/showcase/notion/index.html:310
|
||
#, 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 ""
|
||
"Der Agent öffnet diese Speicherorte, sucht das Mitglied der Zwischenablage "
|
||
"in der zusammengestellten API und liest {ph0}. Seine Call-Site liefert "
|
||
"{ph1}. Dieser Name gibt dem Agenten etwas Genaues, nach dem er im Hauptpaket"
|
||
" suchen kann. Die vier folgenden Auszüge zeigen die Route, die es verbindet."
|
||
|
||
#: website/public/showcase/notion/index.html:319
|
||
msgctxt "page:showcase/notion/index.html"
|
||
msgid "Four short pieces of code"
|
||
msgstr "Vier kurze Code-Stücke"
|
||
|
||
#: website/public/showcase/notion/index.html:320
|
||
msgctxt "page:showcase/notion/index.html"
|
||
msgid ""
|
||
"Simplified from the packaged JavaScript, with readable variable names. "
|
||
"Unrelated members are omitted."
|
||
msgstr ""
|
||
"Vereinfacht aus dem verpackten JavaScript mit lesbaren Variablennamen. Nicht"
|
||
" verwandte Mitglieder werden weggelassen."
|
||
|
||
#: website/public/showcase/notion/index.html:326
|
||
msgctxt "page:showcase/notion/index.html"
|
||
msgid "Start at the API exposed to the page"
|
||
msgstr "Beginnen Sie bei der API, die der Seite angezeigt wird"
|
||
|
||
#. {ph0}: <code>invokerInMain</code>
|
||
#: website/public/showcase/notion/index.html:348
|
||
#, 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 ""
|
||
"Dieses Mitglied liefert den Kanalnamen. Die Umsetzung von {ph0} sagt uns, "
|
||
"wie die Anfrage den Prozess der Seite verlässt."
|
||
|
||
#: website/public/showcase/notion/index.html:355
|
||
msgctxt "page:showcase/notion/index.html"
|
||
msgid "Resolve the preload's wrapper"
|
||
msgstr "Lösen Sie den Wrapper des Preloads auf"
|
||
|
||
#. {ph0}: <code class="notion-channel">notion:clipboard:write</code>
|
||
#: website/public/showcase/notion/index.html:378
|
||
#, 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 ""
|
||
"Die zurückgegebene Funktion leitet die Argumente über den Anfrage- und "
|
||
"Antwort-IPC von Electron weiter. Wir können jetzt suchen nach {ph0} auf der "
|
||
"Hauptprozesseite."
|
||
|
||
#: website/public/showcase/notion/index.html:386
|
||
msgctxt "page:showcase/notion/index.html"
|
||
msgid "Check how the receiver is registered"
|
||
msgstr "Überprüfen Sie, wie der Empfänger registriert ist"
|
||
|
||
#. {ph0}: <code>addListener</code>
|
||
#. {ph1}: <code>ipcMain.handle</code>
|
||
#: website/public/showcase/notion/index.html:407
|
||
#, 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 ""
|
||
"Der Hauptprozess verwendet einen anderen Wrapper. Seiner {ph0} methode "
|
||
"registriert eine {ph1} empfänger für diesen Kanal."
|
||
|
||
#: website/public/showcase/notion/index.html:414
|
||
msgctxt "page:showcase/notion/index.html"
|
||
msgid "Find the write and its sender check"
|
||
msgstr "Finden Sie den Schreib- und Absendercheck"
|
||
|
||
#: website/public/showcase/notion/index.html:437
|
||
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 ""
|
||
"Dies ist das Ziel. Nach Überprüfung des Absenders übergibt der Handler die "
|
||
"gelieferten Daten an die Zwischenablage-API von Electron. Der Kanal und die "
|
||
"beiden aufgelösten Wrapper verbinden die exponierte Methode mit diesem "
|
||
"Aufruf."
|
||
|
||
#: website/public/showcase/notion/index.html:448
|
||
msgctxt "page:showcase/notion/index.html"
|
||
msgid "How does a copied block keep its structure?"
|
||
msgstr "Wie behält ein kopierter Block seine Struktur bei?"
|
||
|
||
#. {ph0}: <code>electronApi.clipboard.write</code>
|
||
#: website/public/showcase/notion/index.html:449
|
||
#, 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 ""
|
||
"Der Webeditor von Notion sendet Text und HTML durch {ph0}. Es speichert die "
|
||
"Blockdaten lokal und fügt eine ID in den kopierten HTML-Code ein, um sie zu "
|
||
"verbinden."
|
||
|
||
#: website/public/showcase/notion/index.html:455
|
||
msgctxt "page:showcase/notion/index.html"
|
||
msgid "HTML links to saved block data"
|
||
msgstr "HTML-Links zu gespeicherten Blockdaten"
|
||
|
||
#: website/public/showcase/notion/index.html:479
|
||
msgctxt "page:showcase/notion/index.html"
|
||
msgid "Read the HTML ID"
|
||
msgstr "Lesen Sie die HTML-ID"
|
||
|
||
#: website/public/showcase/notion/index.html:480
|
||
msgctxt "page:showcase/notion/index.html"
|
||
msgid "Find the same local ID"
|
||
msgstr "Finden Sie die gleiche lokale ID"
|
||
|
||
#: website/public/showcase/notion/index.html:481
|
||
msgctxt "page:showcase/notion/index.html"
|
||
msgid "Restore Notion block data"
|
||
msgstr "Wiederherstellen von Notion-Blockdaten"
|
||
|
||
#: website/public/showcase/notion/index.html:483
|
||
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 ""
|
||
"Illustrativer Text und ID. Der aufgezeichnete Modultest stellt die "
|
||
"Blockdaten wieder her, wenn die IDs übereinstimmen. Ein veralteter Eintrag "
|
||
"gibt nur Text und HTML zurück."
|
||
|
||
#: website/public/showcase/notion/index.html:489
|
||
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 ""
|
||
"Beim Einfügen sucht Notion nach der HTML-ID und vergleicht sie mit der "
|
||
"gespeicherten Kopie. Übereinstimmende IDs stellen die Blockdaten wieder her."
|
||
|
||
#: website/public/showcase/notion/index.html:493
|
||
msgctxt "page:showcase/notion/index.html"
|
||
msgid "Clipboard format recorded from web assets cached on July 13, 2026."
|
||
msgstr ""
|
||
"Format der Zwischenablage, aufgezeichnet aus Web-Assets, die am 13.Juli 2026"
|
||
" zwischengespeichert wurden."
|
||
|
||
#: website/public/showcase/notion/index.html:499
|
||
msgctxt "page:showcase/notion/index.html"
|
||
msgid "More examples and sources"
|
||
msgstr "Weitere Beispiele und Quellen"
|
||
|
||
#: website/public/showcase/notion/index.html:501
|
||
msgctxt "page:showcase/notion/index.html"
|
||
msgid "Another example: Markdown tables"
|
||
msgstr "Ein weiteres Beispiel: Markdown-Tabellen"
|
||
|
||
#: website/public/showcase/notion/index.html:502
|
||
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 analysiert Markdown in Blockdaten. Dieses Beispiel zeigt, wie aus "
|
||
"einer Tabelle Kopf- und Datenzeilen werden."
|
||
|
||
#: website/public/showcase/notion/index.html:507
|
||
msgctxt "page:showcase/notion/index.html"
|
||
msgid "A table through Notion's Markdown parser"
|
||
msgstr "Eine Tabelle durch den Markdown-Parser von Notion"
|
||
|
||
#: website/public/showcase/notion/index.html:528
|
||
msgctxt "page:showcase/notion/index.html"
|
||
msgid ""
|
||
"Recorded output from an extracted Markdown parser. The table becomes rows "
|
||
"and cells."
|
||
msgstr ""
|
||
"Aufgezeichnete Ausgabe von einem extrahierten Markdown-Parser. Die Tabelle "
|
||
"wird zu Zeilen und Zellen."
|
||
|
||
#: website/public/showcase/notion/index.html:535
|
||
msgctxt "page:showcase/notion/index.html"
|
||
msgid "Another path: the offline SQLite connection"
|
||
msgstr "Ein anderer Pfad: die Offline-SQLite-Verbindung"
|
||
|
||
#. {ph0}: <code>getSqliteMeta</code>
|
||
#: website/public/showcase/notion/index.html:536
|
||
#, 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 ""
|
||
"Renderer-Anfragen von Notion {ph0} durch IPC. Der Hauptprozess erstellt "
|
||
"einen Nachrichtenkanal und gibt einen Port an den Renderer und den anderen "
|
||
"an einen SQLite-Dienstprogrammprozess weiter. Nachfolgende Anweisungsstapel "
|
||
"und Ergebnisse werden über diesen Port übertragen."
|
||
|
||
#: website/public/showcase/notion/index.html:542
|
||
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 ""
|
||
"Im Anschluss an diese Übergabe wird erläutert, wo die Datenbankarbeit "
|
||
"ausgeführt wird und warum bei der Verfolgung nur der anfänglichen IPC-"
|
||
"Anforderung die spätere Konversation übersehen wird."
|
||
|
||
#: website/public/showcase/notion/index.html:549
|
||
msgctxt "page:showcase/notion/index.html"
|
||
msgid "Sources and how to read the excerpts"
|
||
msgstr "Quellen und wie man die Auszüge liest"
|
||
|
||
#. {ph0}: <code>app.asar</code>
|
||
#. {ph1}: <code>main/index.js</code>
|
||
#. {ph2}: <code>isNotionWebContents</code>
|
||
#: website/public/showcase/notion/index.html:550
|
||
#, 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 ""
|
||
"Die Zwischenablage-Brücke stammt von Notion Desktop 7.6.1 {ph0}: die "
|
||
"Registerkarte Vorspannung und {ph1}. Die Auszüge erweitern minimierte "
|
||
"Variablennamen und lassen nicht verwandten Code weg; Der Absenderprüfungs-"
|
||
"Helfer wird mit seinem zugrunde liegenden angezeigt {ph2} nennen."
|
||
|
||
#. {ph0}: <code>747001</code>
|
||
#. {ph1}: <code>58169</code>
|
||
#. {ph2}: <code>736810</code>
|
||
#. {ph3}: <code>422457</code>
|
||
#: website/public/showcase/notion/index.html:558
|
||
#, 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 ""
|
||
"Die Beispiele für virtuelle Zwischenablage und Markdown stammen aus Web-"
|
||
"Assets, die am 13.Juli 2026 zwischengespeichert wurden, einschließlich "
|
||
"Modulen {ph0}, {ph1}, {ph2} und {ph3}. Diese Assets haben ihre eigene "
|
||
"Version. Gespeicherte Sonden führten extrahierte Module und kleine "
|
||
"Kabelbäume aus; Ihre Ausgaben beschreiben diese Sonden und nicht eine "
|
||
"erfasste Desktop-UI-Sitzung."
|
||
|
||
#: website/public/showcase/notion/index.html:566
|
||
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 ""
|
||
"Das hier gezeigte REA-Ergebnis ist eine fokussierte Analyse des "
|
||
"gespeicherten Tab-Preloads, die mit dem veröffentlichten REA 4.1.0-Paket "
|
||
"aufgezeichnet wurde. Es sucht die API und ruft die Operation auf. Das "
|
||
"Clipboard-Mitglied und der passende Empfänger werden durch Lesen ihrer "
|
||
"Wrapper-Implementierungen im Paket verbunden."
|
||
|
||
#. {ph0}: <code>422457</code>
|
||
#: website/public/showcase/notion/index.html:573
|
||
#, 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 ""
|
||
"Das Markdown-Beispiel verwendet das Parser-Modul {ph0}. Gespeicherte "
|
||
"Modultests zeigen, dass sowohl Seiten- als auch Chatfilter diese Tabelle "
|
||
"beibehalten. Die Paste / Import-, Structured Markdown- und AI / Chat-Parser "
|
||
"haben separate Einstiegspunkte und Zwischenformate."
|
||
|
||
#. {ph0}: <a href="../../guides/javascript/" >
|
||
#. {ph1}: </a >
|
||
#. {ph2}: <span >
|
||
#. {ph3}: </span >
|
||
#: website/public/showcase/notion/index.html:581
|
||
#, 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 Anwendungshandbuch{ph1}{ph2}Folgen Sie der Exportfunktion "
|
||
"einer kleinen Electron-Anwendung.{ph3}"
|
||
|
||
#. {ph0}: <a href="../dx-ball/">
|
||
#. {ph1}: </a >
|
||
#. {ph2}: <span >
|
||
#. {ph3}: </span >
|
||
#: website/public/showcase/notion/index.html:588
|
||
#, 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 Rekonstruktion{ph1}{ph2}Befolgen Sie die nativen Anweisungen "
|
||
"zu einer überprüften C-Funktion.{ph3}"
|
||
|
||
#: website/public/showcase/notion/index.html:6
|
||
msgctxt "page:showcase/notion/index.html"
|
||
msgid "Notion Electron Reverse Engineering: Clipboard — REA"
|
||
msgstr "Notion Electron Rückentwicklung: Zwischenablage - 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 ""
|
||
"Folgen Sie der Zwischenablage-API von Notion durch das Preload, die IPC-"
|
||
"Wrapper und den Hauptprozess von Electron mit kurzen Codeauszügen und einem "
|
||
"Blick auf das umfangreiche Zwischenablage-Format."
|
||
|
||
#: website/public/showcase/notion/index.html:237
|
||
msgctxt "page:showcase/notion/index.html"
|
||
msgid "On this page"
|
||
msgstr "Auf dieser Seite"
|
||
|
||
#: website/public/showcase/notion/index.html:245
|
||
msgctxt "page:showcase/notion/index.html"
|
||
msgid "Notion Electron case study"
|
||
msgstr "Notion Electron Fallstudie"
|
||
|
||
#: website/public/showcase/notion/index.html:259
|
||
msgctxt "page:showcase/notion/index.html"
|
||
msgid "Copy Notion analysis prompt"
|
||
msgstr "Notion Analyseaufforderung kopieren"
|
||
|
||
#: website/public/showcase/notion/index.html:332
|
||
msgctxt "page:showcase/notion/index.html"
|
||
msgid "Copy Notion preload excerpt"
|
||
msgstr "Kopieren Notion Vorspannung Auszug"
|
||
|
||
#: website/public/showcase/notion/index.html:361
|
||
msgctxt "page:showcase/notion/index.html"
|
||
msgid "Copy Notion invoke wrapper excerpt"
|
||
msgstr "Kopieren Notion Wrapper-Auszug aufrufen"
|
||
|
||
#: website/public/showcase/notion/index.html:392
|
||
msgctxt "page:showcase/notion/index.html"
|
||
msgid "Copy Notion handler wrapper excerpt"
|
||
msgstr "Kopieren Sie den Auszug aus dem Notion-Handler-Wrapper"
|
||
|
||
#: website/public/showcase/notion/index.html:420
|
||
msgctxt "page:showcase/notion/index.html"
|
||
msgid "Copy Notion clipboard receiver excerpt"
|
||
msgstr "Kopieren Notion Zwischenablage Empfänger Auszug"
|
||
|
||
#: website/public/showcase/notion/index.html:475
|
||
msgctxt "page:showcase/notion/index.html"
|
||
msgid "Restoring rich clipboard data on paste"
|
||
msgstr ""
|
||
"Wiederherstellen reichhaltiger Daten aus der Zwischenablage beim Einfügen"
|
||
|
||
#: website/public/showcase/notion/index.html:618
|
||
msgctxt "page:showcase/notion/index.html"
|
||
msgid "Back to top"
|
||
msgstr "Nach oben"
|
||
|
||
#: website/public/showcase/th04/index.html:99
|
||
msgctxt "page:showcase/th04/index.html"
|
||
msgid "Skip to content"
|
||
msgstr "Zum Inhalt springen"
|
||
|
||
#. {ph0}: <a href="../../">
|
||
#. {ph1}: </a>
|
||
#. {ph2}: <a href="../">
|
||
#. {ph3}: </a>
|
||
#: website/public/showcase/th04/index.html:181
|
||
#, python-brace-format
|
||
msgctxt "page:showcase/th04/index.html"
|
||
msgid "{ph0}Home{ph1} / {ph2}Showcases{ph3} / TH04"
|
||
msgstr "{ph0}Startseite{ph1} / {ph2}Präsentieren{ph3} Modell: TH04"
|
||
|
||
#: website/public/showcase/th04/index.html:184
|
||
msgctxt "page:showcase/th04/index.html"
|
||
msgid "Case study · Touhou 4: Lotus Land Story"
|
||
msgstr "Fallstudie * Touhou 4: Lotus Land Geschichte"
|
||
|
||
#. {ph0}: <br />
|
||
#: website/public/showcase/th04/index.html:185
|
||
#, python-brace-format
|
||
msgctxt "page:showcase/th04/index.html"
|
||
msgid "Reconstructing TH04's{ph0}bullet patterns."
|
||
msgstr "Rekonstruktion des TH04{ph0}aufzählungsmuster."
|
||
|
||
#: website/public/showcase/th04/index.html:186
|
||
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 ""
|
||
"Ein Kugelring beginnt mit einer kurzen Winkelberechnung. Verwenden Sie REA, "
|
||
"um die ursprüngliche DOS-Funktion zu überprüfen, und folgen Sie dann den "
|
||
"Anweisungen in lesbares C ++."
|
||
|
||
#: website/public/showcase/th04/index.html:191
|
||
msgctxt "page:showcase/th04/index.html"
|
||
msgid "PC-98 · 16-bit DOS · C++ and assembly"
|
||
msgstr "PC-98 · 16-Bit-DOS · C++ und Assemblierung"
|
||
|
||
#: website/public/showcase/th04/index.html:192
|
||
msgctxt "page:showcase/th04/index.html"
|
||
msgid "View the TH04 reconstruction"
|
||
msgstr "Sehen Sie sich die Rekonstruktion des TH04 an"
|
||
|
||
#: website/public/showcase/th04/index.html:198
|
||
msgctxt "page:showcase/th04/index.html"
|
||
msgid "From original instructions to checked source"
|
||
msgstr "Von der Originalanleitung zur geprüften Quelle"
|
||
|
||
#. {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:200
|
||
#, 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 * Original-Spiel{ph1}{ph2}WICHTIGSTEN.EXE{ph3}{ph4}Die ausführbare "
|
||
"Datei PC-98 und ihr Aufzählungswinkel-Helfer.{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:207
|
||
#, 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 * Inspektion mit REA {ph1}{ph2}Anleitungen + "
|
||
"Referenzen{ph3}{ph4}Überprüfen Sie den geladenen DOS-Code und lesen Sie die "
|
||
"Winkelberechnung aus der ausführbaren Datei.{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:215
|
||
#, 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 * Lesen Sie die C ++{ph1}{ph2}Leertaste → Zielen → "
|
||
"Drehen{ph3}{ph4}Verbinden Sie jede Operation mit der gepflegten "
|
||
"Rekonstruktion.{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:222
|
||
#, 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 * Überprüfen Sie die Quelle{ph1}{ph2}2.139 übereinstimmende "
|
||
"Bytes{ph3}{ph4}Aufgezeichnete Compilerprüfungen decken den Code zur "
|
||
"Aufzählungszeichengenerierung ab, der diesen Helfer enthält.{ph5}"
|
||
|
||
#: website/public/showcase/th04/index.html:231
|
||
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 gibt den Originalcode und seine Analysebeweise zurück. Das Projekt TH04 "
|
||
"liefert die gepflegten Quell- und Compilerprüfungen."
|
||
|
||
#: website/public/showcase/th04/index.html:239
|
||
msgctxt "page:showcase/th04/index.html"
|
||
msgid "In this case study"
|
||
msgstr "In dieser Fallstudie"
|
||
|
||
#. {ph0}: <a href="#ring">
|
||
#. {ph1}: </a>
|
||
#: website/public/showcase/th04/index.html:241
|
||
#, python-brace-format
|
||
msgctxt "page:showcase/th04/index.html"
|
||
msgid "{ph0}The bullet ring{ph1}"
|
||
msgstr "{ph0}Der Kugelring{ph1}"
|
||
|
||
#. {ph0}: <a href="#rea">
|
||
#. {ph1}: </a>
|
||
#: website/public/showcase/th04/index.html:242
|
||
#, python-brace-format
|
||
msgctxt "page:showcase/th04/index.html"
|
||
msgid "{ph0}What REA returns{ph1}"
|
||
msgstr "{ph0}Was REA zurückgibt{ph1}"
|
||
|
||
#. {ph0}: <a href="#source">
|
||
#. {ph1}: </a>
|
||
#: website/public/showcase/th04/index.html:243
|
||
#, python-brace-format
|
||
msgctxt "page:showcase/th04/index.html"
|
||
msgid "{ph0}Assembly to C++{ph1}"
|
||
msgstr "{ph0}Assemblierung nach C ++{ph1}"
|
||
|
||
#. {ph0}: <a href="#checking">
|
||
#. {ph1}: </a>
|
||
#: website/public/showcase/th04/index.html:244
|
||
#, python-brace-format
|
||
msgctxt "page:showcase/th04/index.html"
|
||
msgid "{ph0}Checking the source{ph1}"
|
||
msgstr "{ph0}Überprüfen der Quelle{ph1}"
|
||
|
||
#. {ph0}: <a href="#project">
|
||
#. {ph1}: </a>
|
||
#: website/public/showcase/th04/index.html:245
|
||
#, python-brace-format
|
||
msgctxt "page:showcase/th04/index.html"
|
||
msgid "{ph0}The full project{ph1}"
|
||
msgstr "{ph0}Das vollständige Projekt{ph1}"
|
||
|
||
#: website/public/showcase/th04/index.html:250
|
||
msgctxt "page:showcase/th04/index.html"
|
||
msgid "How a ring aims at the player"
|
||
msgstr "Wie ein Ring auf den Spieler zielt"
|
||
|
||
#: website/public/showcase/th04/index.html:251
|
||
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 ""
|
||
"Ellys Angriff fordert einen gezielten Ring mit einer anfänglichen Anzahl von"
|
||
" 16 an. Ein Helfer berechnet die Richtung jeder Kugel. Derselbe Ring kann in"
|
||
" eine feste Richtung zeigen oder sich dem Spieler zuwenden."
|
||
|
||
#. {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:258
|
||
#, 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}Ihr Codierungsagent"
|
||
|
||
#: website/public/showcase/th04/index.html:263
|
||
#: website/public/showcase/th04/index.html:319
|
||
#: website/public/showcase/th04/index.html:496
|
||
#: website/public/showcase/th04/index.html:530
|
||
msgctxt "page:showcase/th04/index.html"
|
||
msgid "Copy"
|
||
msgstr "Kopieren"
|
||
|
||
#. {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:272
|
||
#, 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}Verwenden Sie REA, um herauszufinden, wie TH04 einen "
|
||
"Kugelring erstellt und auf den Spieler richtet. Erklären Sie die Berechnung "
|
||
"und zeigen Sie den Code.{ph3}{ph4}{ph5}"
|
||
|
||
#: website/public/showcase/th04/index.html:281
|
||
msgctxt "page:showcase/th04/index.html"
|
||
msgid ""
|
||
"An example prompt, with the original executable and reconstruction checkout "
|
||
"available locally."
|
||
msgstr ""
|
||
"Eine Beispiel-Eingabeaufforderung, bei der die ursprüngliche ausführbare "
|
||
"Datei und der Rekonstruktions-Checkout lokal verfügbar sind."
|
||
|
||
#. {ph0}: <code>0, 16, 32, …, 240</code>
|
||
#: website/public/showcase/th04/index.html:285
|
||
#, 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 speichert eine volle Drehung im Uhrzeigersinn in 256 Winkeleinheiten. "
|
||
"Bei 16 Aufzählungszeichen addiert jeder Index 16 Einheiten: {ph0}. Das "
|
||
"Hinzufügen der Richtung des Spielers dreht diese Positionen zusammen."
|
||
|
||
#. {ph0}: <a href="../../assets/figures/th04-bullet-ring.svg" >
|
||
#. {ph1}: </a >
|
||
#: website/public/showcase/th04/index.html:305
|
||
#, 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 ""
|
||
"Eine Illustration der wiederhergestellten Winkelmathematik für Zählung 16, "
|
||
"Spielerrichtung 40 und Schablonendrehung 0. {ph0}Offene Figur{ph1}"
|
||
|
||
#: website/public/showcase/th04/index.html:313
|
||
msgctxt "page:showcase/th04/index.html"
|
||
msgid "The firing template in the recovered source"
|
||
msgstr "Die Zündvorlage in der wiederhergestellten Quelle"
|
||
|
||
#: website/public/showcase/th04/index.html:318
|
||
msgctxt "page:showcase/th04/index.html"
|
||
msgid "Elly's ring attack · source excerpt"
|
||
msgstr "Ellys Ringangriff * Quellenauszug"
|
||
|
||
#. {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:333
|
||
#, 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 ""
|
||
"Diese Linien wählen das Muster vor der Schwierigkeits- und "
|
||
"Leistungsabstimmung aus. {ph0}Lesen Sie die Quelle des Angriffs{ph1}."
|
||
|
||
#: website/public/showcase/th04/index.html:344
|
||
msgctxt "page:showcase/th04/index.html"
|
||
msgid "What REA returns"
|
||
msgstr "Was REA zurückgibt"
|
||
|
||
#. {ph0}: <code>bullet_velocity_and_angle_set()</code>
|
||
#: website/public/showcase/th04/index.html:345
|
||
#, 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 ""
|
||
"Wir prüfen {ph0}, die Funktion, die die Geschwindigkeit und den Winkel jedes"
|
||
" Geschosses festlegt. REA gibt seine Anweisungen, Pseudocode und Referenzen"
|
||
" zurück. Drei Teile dieses Ergebnisses erklären das Muster."
|
||
|
||
#: website/public/showcase/th04/index.html:353
|
||
msgctxt "page:showcase/th04/index.html"
|
||
msgid "Check the DOS image before reading its code"
|
||
msgstr "Überprüfen Sie das DOS-Image, bevor Sie den Code lesen"
|
||
|
||
#: website/public/showcase/th04/index.html:374
|
||
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 ""
|
||
"Die Prüfung bindet den geladenen Code und die Umzugsdatensätze an die "
|
||
"gelieferte ausführbare Datei. Der obige Pfad ist für die Anzeige verkürzt."
|
||
|
||
#: website/public/showcase/th04/index.html:380
|
||
msgctxt "page:showcase/th04/index.html"
|
||
msgid "Read the ring's multiply and divide"
|
||
msgstr "Lesen Sie die Multiplikation und Division des Rings"
|
||
|
||
#. {ph0}: <code>SI</code>
|
||
#. {ph1}: <code>DS:53AF</code>
|
||
#. {ph2}: <code>bullet_template.count</code>
|
||
#: website/public/showcase/th04/index.html:398
|
||
#, 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} enthält den Aufzählungszeichenindex. Die Verschiebung multipliziert es"
|
||
" mit 256, dann verwendet die Division die gelesene Zählung {ph1}. Die "
|
||
"gepflegte Quelle benennt dieses Feld {ph2}. Die vollständige Sequenz "
|
||
"erscheint unten."
|
||
|
||
#: website/public/showcase/th04/index.html:407
|
||
msgctxt "page:showcase/th04/index.html"
|
||
msgid "Find where the pattern turns toward the player"
|
||
msgstr "Finde heraus, wo sich das Muster dem Spieler zuwendet"
|
||
|
||
#: website/public/showcase/th04/index.html:428
|
||
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 ""
|
||
"Die Anweisungsoperanden legen zwei Koordinatendifferenzen und einen "
|
||
"Richtungshelfer offen. Sein Rückgabewert wird zum relativen Ringwinkel "
|
||
"addiert. Quellennamen machen diese Adressen lesbar; Mit REA kann der Agent "
|
||
"die ursprünglichen Vorgänge dahinter überprüfen."
|
||
|
||
#: website/public/showcase/th04/index.html:439
|
||
msgctxt "page:showcase/th04/index.html"
|
||
msgid "From assembly to readable C++"
|
||
msgstr "Von Assembly zu lesbarem C ++"
|
||
|
||
#: website/public/showcase/th04/index.html:440
|
||
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 ""
|
||
"Wählen Sie einen Schritt aus, um die ursprünglichen Anweisungen mit der "
|
||
"Winkelberechnung abzugleichen. Diese Zusammenfassung folgt dem Zielringpfad;"
|
||
" Die vollständige Quelle behandelt auch Spreads, Stapel und Zufallsmuster."
|
||
|
||
#. {ph0}: <span>
|
||
#. {ph1}: </span>
|
||
#: website/public/showcase/th04/index.html:451
|
||
#, python-brace-format
|
||
msgctxt "page:showcase/th04/index.html"
|
||
msgid "{ph0}01{ph1} Index"
|
||
msgstr "{ph0}01{ph1} Index"
|
||
|
||
#. {ph0}: <span>
|
||
#. {ph1}: </span>
|
||
#: website/public/showcase/th04/index.html:459
|
||
#, python-brace-format
|
||
msgctxt "page:showcase/th04/index.html"
|
||
msgid "{ph0}02{ph1} Space"
|
||
msgstr "{ph0}02{ph1} Raum"
|
||
|
||
#. {ph0}: <span>
|
||
#. {ph1}: </span>
|
||
#: website/public/showcase/th04/index.html:467
|
||
#, python-brace-format
|
||
msgctxt "page:showcase/th04/index.html"
|
||
msgid "{ph0}03{ph1} Aim"
|
||
msgstr "{ph0}03{ph1} Ziel"
|
||
|
||
#. {ph0}: <span>
|
||
#. {ph1}: </span>
|
||
#: website/public/showcase/th04/index.html:475
|
||
#, python-brace-format
|
||
msgctxt "page:showcase/th04/index.html"
|
||
msgid "{ph0}04{ph1} Rotate"
|
||
msgstr "{ph0}04{ph1} Drehen"
|
||
|
||
#. {ph0}: <span>
|
||
#. {ph1}: </span>
|
||
#: website/public/showcase/th04/index.html:483
|
||
#, python-brace-format
|
||
msgctxt "page:showcase/th04/index.html"
|
||
msgid "{ph0}05{ph1} Store"
|
||
msgstr "{ph0}05{ph1} Speichern"
|
||
|
||
#: website/public/showcase/th04/index.html:495
|
||
msgctxt "page:showcase/th04/index.html"
|
||
msgid "REA · original 16-bit instructions"
|
||
msgstr "REA * originale 16-Bit-Anleitung"
|
||
|
||
#: website/public/showcase/th04/index.html:529
|
||
msgctxt "page:showcase/th04/index.html"
|
||
msgid "Readable C++ · aimed-ring summary"
|
||
msgstr "Lesbare C ++ * zielgerichtete Ring-Zusammenfassung"
|
||
|
||
#. {ph0}: <strong>
|
||
#. {ph1}: </strong>
|
||
#. {ph2}: <code>SI</code>
|
||
#: website/public/showcase/th04/index.html:558
|
||
#, 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 * Lesen Sie den Aufzählungszeichenindex.{ph1} Das Stapelargument "
|
||
"wird geladen in {ph2}. In einem 16-Punkte-Ring verläuft dieser "
|
||
"Mitgliederindex von 0 bis 15."
|
||
|
||
#. {ph0}: <strong>
|
||
#. {ph1}: </strong>
|
||
#. {ph2}: <code>SHL AX,8</code>
|
||
#. {ph3}: <code>IDIV</code>
|
||
#: website/public/showcase/th04/index.html:563
|
||
#, 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 * Platziere die Richtungen um eine volle Umdrehung.{ph1} {ph2} "
|
||
"multipliziert mit 256. Die Zählung ist Null-erweitert zu einem Wort, dann "
|
||
"{ph3} dividiert das Produkt durch diese Anzahl. Für Zählung 16 rückt jeder "
|
||
"Index 16 Winkeleinheiten vor."
|
||
|
||
#. {ph0}: <strong>
|
||
#. {ph1}: </strong>
|
||
#. {ph2}: <code>AX</code>
|
||
#: website/public/showcase/th04/index.html:570
|
||
#, 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 * Fügen Sie die Spielerrichtung hinzu.{ph1} Die beiden Subtraktionen"
|
||
" bilden Spieler-minus-Ursprungskoordinaten. Der Richtungshelfer gibt einen "
|
||
"Winkel in zurück {ph2}; das Hinzufügen dreht den ganzen Ring in Richtung des"
|
||
" Spielers."
|
||
|
||
#. {ph0}: <strong>
|
||
#. {ph1}: </strong>
|
||
#. {ph2}: <code>ADD AL,[0x53ad]</code>
|
||
#: website/public/showcase/th04/index.html:576
|
||
#, 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 * Fügen Sie die Drehung des Musters hinzu.{ph1} {ph2} fügt den "
|
||
"Schablonenwinkel hinzu. Ellys anfängliche Vorlage setzt es auf Null; Andere "
|
||
"Muster können denselben Helfer mit einer Drehung verwenden."
|
||
|
||
#. {ph0}: <strong>
|
||
#. {ph1}: </strong>
|
||
#. {ph2}: <code>AL</code>
|
||
#: website/public/showcase/th04/index.html:582
|
||
#, 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 * Halten Sie den endgültigen Winkel in einem Byte.{ph1} Der Laden "
|
||
"schreibt {ph2} zum Spawnwinkelfeld. Werte werden nach 255 umgebrochen, genau"
|
||
" wie bei der Umwandlung ohne Vorzeichen. Die umgebende Quelle wandelt diesen"
|
||
" Winkel und diese Geschwindigkeit ebenfalls in Geschwindigkeit um."
|
||
|
||
#: website/public/showcase/th04/index.html:591
|
||
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 ""
|
||
"Die Baugruppe wählt den Zielringzweig, die Zielberechnung und den "
|
||
"Endspeicher aus. Das obige C ++ ist eine lesbare Zusammenfassung. Die "
|
||
"folgenden Compiler-Prüfungen gelten für die gepflegte Quelle im verknüpften "
|
||
"Projekt."
|
||
|
||
#: website/public/showcase/th04/index.html:597
|
||
msgctxt "page:showcase/th04/index.html"
|
||
msgid "Read the maintained ring and aim source"
|
||
msgstr "Lesen Sie die gepflegte Ring- und Zielquelle"
|
||
|
||
#. {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:626
|
||
#, 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}Ringmakro{ph1} · {ph2}Ziel- und Geschwindigkeitsquelle{ph3} · "
|
||
"{ph4}Winkeldarstellung{ph5}"
|
||
|
||
#: website/public/showcase/th04/index.html:646
|
||
msgctxt "page:showcase/th04/index.html"
|
||
msgid "Checking the maintained source"
|
||
msgstr "Überprüfen der gepflegten Quelle"
|
||
|
||
#: website/public/showcase/th04/index.html:647
|
||
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 ""
|
||
"Die aufgezeichneten Überprüfungen des TH04-Projekts kompilieren den Code zur"
|
||
" Bullet-Generierung, einschließlich dieses Helpers, mit seiner angehefteten "
|
||
"Turbo C ++ 4.0J-Toolchain."
|
||
|
||
#: website/public/showcase/th04/index.html:654
|
||
msgctxt "page:showcase/th04/index.html"
|
||
msgid "2,139 matching bytes"
|
||
msgstr "2.139 übereinstimmende Bytes"
|
||
|
||
#: website/public/showcase/th04/index.html:655
|
||
msgctxt "page:showcase/th04/index.html"
|
||
msgid ""
|
||
"The compiled bullet-generation code matches a 2,139-byte section of the "
|
||
"original executable."
|
||
msgstr ""
|
||
"Der kompilierte Code zur Aufzählungszeichengenerierung entspricht einem "
|
||
"2.139 Byte großen Abschnitt der ursprünglichen ausführbaren Datei."
|
||
|
||
#: website/public/showcase/th04/index.html:661
|
||
msgctxt "page:showcase/th04/index.html"
|
||
msgid "Two clean builds"
|
||
msgstr "Zwei saubere Builds"
|
||
|
||
#: website/public/showcase/th04/index.html:662
|
||
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 ""
|
||
"Zwei separate Builds erzeugen dieselben übereinstimmenden Bytes. Die "
|
||
"aufgezeichneten Eingabe-Hashes stimmen mit der hier gezeigten gepflegten "
|
||
"Quelle überein."
|
||
|
||
#. {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:668
|
||
#, python-brace-format
|
||
msgctxt "page:showcase/th04/index.html"
|
||
msgid "Recorded on 3 October 2026. {ph0}Read the compiler checks{ph1}."
|
||
msgstr ""
|
||
"Aufgenommen am 3. Oktober 2026. {ph0}Lesen Sie die Compiler-Prüfungen{ph1}."
|
||
|
||
#: website/public/showcase/th04/index.html:676
|
||
msgctxt "page:showcase/th04/index.html"
|
||
msgid "Target identity and analysis scope"
|
||
msgstr "Zielidentität und Analyseumfang"
|
||
|
||
#: website/public/showcase/th04/index.html:681
|
||
msgctxt "page:showcase/th04/index.html"
|
||
msgid "Original target"
|
||
msgstr "Ursprüngliches Ziel"
|
||
|
||
#. {ph0}: <code>MAIN.EXE</code>
|
||
#: website/public/showcase/th04/index.html:682
|
||
#, python-brace-format
|
||
msgctxt "page:showcase/th04/index.html"
|
||
msgid "{ph0}, 156,258 bytes, DOS MZ"
|
||
msgstr "{ph0}, 156.258 bytes, ZWEI MZ"
|
||
|
||
#: website/public/showcase/th04/index.html:685
|
||
msgctxt "page:showcase/th04/index.html"
|
||
msgid "Helper entry"
|
||
msgstr "Hilfseintrag"
|
||
|
||
#. {ph0}: <code>0x2cfc8</code>
|
||
#: website/public/showcase/th04/index.html:686
|
||
#, python-brace-format
|
||
msgctxt "page:showcase/th04/index.html"
|
||
msgid "{ph0} in REA's loaded image"
|
||
msgstr "{ph0} im geladenen Bild von REA"
|
||
|
||
#: website/public/showcase/th04/index.html:689
|
||
msgctxt "page:showcase/th04/index.html"
|
||
msgid "Original file offset"
|
||
msgstr "Versatz der ursprünglichen Datei"
|
||
|
||
#. {ph0}: <code>0x1e7c8</code>
|
||
#. {ph1}: <code>address_to_file_offset</code>
|
||
#: website/public/showcase/th04/index.html:690
|
||
#, python-brace-format
|
||
msgctxt "page:showcase/th04/index.html"
|
||
msgid "{ph0}, returned by {ph1}"
|
||
msgstr "{ph0}, zurückgegeben von {ph1}"
|
||
|
||
#: website/public/showcase/th04/index.html:696
|
||
msgctxt "page:showcase/th04/index.html"
|
||
msgid "Recorded code inspection"
|
||
msgstr "Inspektion aufgezeichneter Codes"
|
||
|
||
#: website/public/showcase/th04/index.html:697
|
||
msgctxt "page:showcase/th04/index.html"
|
||
msgid "REA 4.1.0 · 7 October 2026"
|
||
msgstr "REA 4.1.0 · 7. Oktober 2026"
|
||
|
||
#: website/public/showcase/th04/index.html:702
|
||
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 ""
|
||
"Compiler-Prüfungen decken den gesamten Abschnitt zum Hinzufügen von Code mit"
|
||
" Aufzählungszeichen ab, einschließlich dieses Hilfsprogramms. Sie "
|
||
"vergleichen auch den Kartenbeitrag und die überlappende Verlagerung."
|
||
|
||
#. {ph0}: <code>0x1000</code>
|
||
#: website/public/showcase/th04/index.html:707
|
||
#, 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 hat das statische DOS-Ladebild am Ladesegment überprüft {ph0}. Seine "
|
||
"Adressen beschreiben dieses Analysebild. Das Funktionsergebnis meldet 503 "
|
||
"Körperbytes in zwei Bereichen über einen Zeitraum von 517 Byte; Die oben "
|
||
"ausgewählten Anweisungen liegen in diesen gemeldeten Bereichen."
|
||
|
||
#. {ph0}: <code>0d72e980</code>
|
||
#: website/public/showcase/th04/index.html:714
|
||
#, 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 ""
|
||
"Die Quellnamen und Compilerprüfungen stammen vom Prüfpunkt TH04 {ph0}. "
|
||
"Frühere Rekonstruktionsbeobachtungen verwendeten die projekteigenen "
|
||
"Analyseskripte; Diese Seite fügt eine neue REA-Inspektion desselben "
|
||
"ursprünglichen Ziels hinzu. Die Identität des gelieferten Spiels wird durch "
|
||
"sein Repository-Manifest festgelegt, wobei die unabhängige Herkunft des "
|
||
"unberührten Dumps noch offen ist."
|
||
|
||
#: website/public/showcase/th04/index.html:722
|
||
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 ""
|
||
"Die Abbildung veranschaulicht die Winkelberechnung. Steuerung des "
|
||
"vollständigen Spiels, Timing und Verhalten der PC-98-Hardware haben separate"
|
||
" Laufzeitprüfungen im Rekonstruktionsprojekt."
|
||
|
||
#: website/public/showcase/th04/index.html:731
|
||
msgctxt "page:showcase/th04/index.html"
|
||
msgid "The full TH04 reconstruction"
|
||
msgstr "Die vollständige TH04-Rekonstruktion"
|
||
|
||
#: website/public/showcase/th04/index.html:732
|
||
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 ""
|
||
"Das Projekt erstellt die vier DOS-Produkte des Spiels aus gepflegtem C ++ "
|
||
"und Assembly. Über die Aufzählungszeichenerzeugung hinaus umfasst die Quelle"
|
||
" Stufen, Bosse, Rendering, Eingabe, Menüs, Endungen und Partiturbehandlung."
|
||
|
||
#. {ph0}: <a class="text-link" href="https://github.com/N0zoM1z0/th04" >
|
||
#. {ph1}: </a >
|
||
#: website/public/showcase/th04/index.html:738
|
||
#, python-brace-format
|
||
msgctxt "page:showcase/th04/index.html"
|
||
msgid "{ph0}Explore the TH04 repository{ph1}"
|
||
msgstr "{ph0}Erkunden Sie das TH04-Repository{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:744
|
||
#, 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}Quelle zur Erzeugung von Kugeln{ph1}{ph2}Der komplette Helfer, andere "
|
||
"Mustertypen und Template-Tuning.{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:753
|
||
#, 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-Anleitung zum Erstellen und Ausführen{ph1}{ph2}Erstellen Sie die "
|
||
"Quelle und testen Sie sie im PC-98-Emulator-Workflow des Projekts.{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:762
|
||
#, 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}Aktueller Projektstand{ph1}{ph2}DOS-Verifizierung und den separaten "
|
||
"nativen x64-Port.{ph3}"
|
||
|
||
#: website/public/showcase/th04/index.html:6
|
||
msgctxt "page:showcase/th04/index.html"
|
||
msgid "TH04 Reverse Engineering: DOS Bullet Patterns — REA"
|
||
msgstr "TH04 Rückentwicklung: DOS-Bullet-Muster - 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 ""
|
||
"Überprüfen Sie den ursprünglichen 16-Bit-DOS-Code von TH04 mit REA. Folgen "
|
||
"Sie der Assembly und dem wiederhergestellten C ++, um zu sehen, wie ein "
|
||
"Kugelring beabstandet und auf den Spieler gerichtet ist."
|
||
|
||
#: website/public/showcase/th04/index.html:238
|
||
msgctxt "page:showcase/th04/index.html"
|
||
msgid "On this page"
|
||
msgstr "Auf dieser Seite"
|
||
|
||
#: website/public/showcase/th04/index.html:248
|
||
msgctxt "page:showcase/th04/index.html"
|
||
msgid "TH04 bullet-pattern case study"
|
||
msgstr "TH04 bullet-Muster Fallstudie"
|
||
|
||
#: website/public/showcase/th04/index.html:263
|
||
msgctxt "page:showcase/th04/index.html"
|
||
msgid "Copy TH04 example prompt"
|
||
msgstr "Beispiel-Eingabeaufforderung TH04 kopieren"
|
||
|
||
#: website/public/showcase/th04/index.html:291
|
||
msgctxt "page:showcase/th04/index.html"
|
||
msgid ""
|
||
"TH04 fixed and aimed bullet rings; scroll horizontally on smaller screens"
|
||
msgstr ""
|
||
"TH04 feste und zielgerichtete Geschossringe; auf kleineren Bildschirmen "
|
||
"horizontal scrollen"
|
||
|
||
#: website/public/showcase/th04/index.html:297
|
||
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 ""
|
||
"Zwei Diagramme eines 16-Kugeln-Rings. Der feste Ring beginnt bei Winkel "
|
||
"Null. Wenn Sie eine Spielerrichtung von 40 hinzufügen, wird jede Richtung um"
|
||
" den gleichen Betrag gedreht. Der hervorgehobene erste Punkt zeigt auf den "
|
||
"Spieler. Beide halten einen Abstand von 16 Winkeleinheiten oder 22,5 Grad "
|
||
"ein."
|
||
|
||
#: website/public/showcase/th04/index.html:319
|
||
msgctxt "page:showcase/th04/index.html"
|
||
msgid "Copy TH04 firing template"
|
||
msgstr "Kopieren Sie die TH04-Zündschablone"
|
||
|
||
#: website/public/showcase/th04/index.html:446
|
||
msgctxt "page:showcase/th04/index.html"
|
||
msgid "Follow the TH04 aimed-ring calculation"
|
||
msgstr "Befolgen Sie die TH04 Zielringberechnung"
|
||
|
||
#: website/public/showcase/th04/index.html:496
|
||
msgctxt "page:showcase/th04/index.html"
|
||
msgid "Copy TH04 assembly excerpt"
|
||
msgstr "Auszug aus der TH04-Baugruppe kopieren"
|
||
|
||
#: website/public/showcase/th04/index.html:530
|
||
msgctxt "page:showcase/th04/index.html"
|
||
msgid "Copy readable aimed-ring calculation"
|
||
msgstr "Kopierlesbare Zielringberechnung"
|
||
|
||
#: website/public/showcase/th04/index.html:787
|
||
msgctxt "page:showcase/th04/index.html"
|
||
msgid "Back to top"
|
||
msgstr "Nach oben"
|
||
|
||
#: website/public/assets/main.js:39
|
||
msgctxt "runtime"
|
||
msgid "Copy"
|
||
msgstr "Kopieren"
|
||
|
||
#: website/public/assets/main.js:20
|
||
msgctxt "runtime"
|
||
msgid "Copied"
|
||
msgstr "Kopieren"
|
||
|
||
#: website/public/assets/main.js:31
|
||
msgctxt "runtime"
|
||
msgid "Selected"
|
||
msgstr "Ausgew"
|
||
|
||
#: website/public/assets/main.js:22
|
||
msgctxt "runtime"
|
||
msgid "Code copied to clipboard."
|
||
msgstr "Code in die Zwischenablage kopiert."
|
||
|
||
#: website/public/assets/main.js:33
|
||
msgctxt "runtime"
|
||
msgid "Code selected. Use your keyboard to copy it."
|
||
msgstr "Code ausgewählt. Verwenden Sie Ihre Tastatur, um es zu kopieren."
|
||
|
||
#: website/public/assets/main.js:147
|
||
#, python-brace-format
|
||
msgctxt "runtime"
|
||
msgid "REA on GitHub ({count})"
|
||
msgstr "REA auf GitHub ({count})"
|
||
|
||
#: website/public/assets/dino-demo.js:71
|
||
#, python-brace-format
|
||
msgctxt "runtime"
|
||
msgid "Distance {distance}"
|
||
msgstr "Abstand {distance}"
|
||
|
||
#: website/public/assets/dino-demo.js:81
|
||
msgctxt "runtime"
|
||
msgid "Hit a cactus. Try another speed."
|
||
msgstr "Schlag einen Kaktus. Versuchen Sie eine andere Geschwindigkeit."
|
||
|
||
#: website/public/assets/dino-demo.js:81
|
||
msgctxt "runtime"
|
||
msgid "Space or Jump ↑"
|
||
msgstr "Leertaste oder Sprung ↑"
|
||
|
||
#: website/public/assets/dino-demo.js:91
|
||
msgctxt "runtime"
|
||
msgid "Play again"
|
||
msgstr "Noch einmal spielen"
|
||
|
||
#: website/public/assets/dino-demo.js:91
|
||
#: website/public/assets/dino-demo.js:105
|
||
msgctxt "runtime"
|
||
msgid "Play"
|
||
msgstr "Spielen"
|
||
|
||
#: website/public/assets/dino-demo.js:165
|
||
msgctxt "runtime"
|
||
msgid "Pause"
|
||
msgstr "Pause"
|
||
|
||
#: website/public/assets/dino-demo.js:106
|
||
msgctxt "runtime"
|
||
msgid "Press Play, then jump over the cactus."
|
||
msgstr "Drücke Play und springe dann über den Kaktus."
|
||
|
||
#: website/public/assets/dino-demo.js:141
|
||
msgctxt "runtime"
|
||
msgid "Hit a cactus. Press Play again, or change the speed and restart."
|
||
msgstr ""
|
||
"Schlag einen Kaktus. Drücken Sie erneut auf Wiedergabe oder ändern Sie die "
|
||
"Geschwindigkeit und starten Sie neu."
|
||
|
||
#: website/public/assets/dino-demo.js:166
|
||
msgctxt "runtime"
|
||
msgid "Running. Space or Jump clears a cactus."
|
||
msgstr "Laufen. Leertaste oder Sprung löscht einen Kaktus."
|
||
|
||
#: website/public/assets/dino-demo.js:177
|
||
#: website/public/assets/dino-demo.js:213
|
||
#: website/public/assets/dino-demo.js:218
|
||
msgctxt "runtime"
|
||
msgid "Paused. Press Play to continue."
|
||
msgstr "Pausieren. Drücken Sie Play, um fortzufahren."
|
||
|
||
#: website/public/assets/dino-demo.js:197
|
||
#, python-brace-format
|
||
msgctxt "runtime"
|
||
msgid "Fixed speed: {speed}. Space or Jump clears a cactus."
|
||
msgstr ""
|
||
"Feste Geschwindigkeit: {speed}. Leertaste oder Sprung löscht einen Kaktus."
|
||
|
||
#: website/public/assets/dino-demo.js:200
|
||
#, python-brace-format
|
||
msgctxt "runtime"
|
||
msgid "Fixed speed: {speed}. Press Play to try it."
|
||
msgstr "Feste Geschwindigkeit: {speed}. Drücke Play, um es zu versuchen."
|
||
|
||
#: website/public/assets/dino-demo.js:209
|
||
msgctxt "runtime"
|
||
msgid "Recovered rule: start at 6, then increase toward 13."
|
||
msgstr ""
|
||
"Wiederhergestellte Regel: Beginnen Sie bei 6 und erhöhen Sie sich dann in "
|
||
"Richtung 13."
|
||
|
||
#: website/public/assets/dino-demo.js:210
|
||
#, python-brace-format
|
||
msgctxt "runtime"
|
||
msgid "Fixed speed: {speed}."
|
||
msgstr "Feste Geschwindigkeit: {speed}."
|
||
|
||
#: website/public/assets/dino-demo.js:242
|
||
msgctxt "runtime"
|
||
msgid ""
|
||
"Replayed the recovered rule. All four values match the controlled original-"
|
||
"game check when rounded to three decimals."
|
||
msgstr ""
|
||
"Wiederholte die wiederhergestellte Regel. Alle vier Werte stimmen mit der "
|
||
"kontrollierten Originalspielprüfung überein, wenn sie auf drei "
|
||
"Dezimalstellen gerundet werden."
|
||
|
||
#: website/public/assets/dino-demo.js:245
|
||
msgctxt "runtime"
|
||
msgid ""
|
||
"The replay differs from the recorded original-game values. Compare the speed"
|
||
" rule and settings above."
|
||
msgstr ""
|
||
"Die Wiedergabe weicht von den aufgezeichneten Originalspielwerten ab. "
|
||
"Vergleichen Sie die Geschwindigkeitsregel und die obigen Einstellungen."
|
||
|
||
#: website/public/assets/aegis-demo.js:22
|
||
#, python-brace-format
|
||
msgctxt "runtime"
|
||
msgid "{start}–{end} seconds"
|
||
msgstr "{start}–{end} Sekundenschnelle"
|
||
|
||
#: website/public/assets/aegis-demo.js:29
|
||
#, python-brace-format
|
||
msgctxt "runtime"
|
||
msgid "{seconds} seconds, time block {block}"
|
||
msgstr "{seconds} sekunden, zeitblock {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 ""
|
||
"Interaktive Berechnungen sind in diesem Browser nicht verfügbar. Das "
|
||
"Beispiel zeigt den Code bei 59 Sekunden."
|
||
|
||
#: website/public/assets/aegis-demo.js:62
|
||
msgctxt "runtime"
|
||
msgid "Checking…"
|
||
msgstr "Überprüfung…"
|
||
|
||
#: 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} prüfungen bestanden (sechs Referenzfälle, sechs- und "
|
||
"achtstellig)."
|
||
|
||
#: website/public/assets/aegis-demo.js:81
|
||
msgctxt "runtime"
|
||
msgid "Could not run the reference checks. Try again."
|
||
msgstr ""
|
||
"Die Referenzprüfungen konnten nicht ausgeführt werden. Versuch es noch "
|
||
"einmal."
|
||
|
||
#: website/public/assets/figures/analyst-thinking.svg:2
|
||
msgctxt "figure:analyst-thinking.svg"
|
||
msgid "An analyst thinking at a computer"
|
||
msgstr "Ein Analytiker, der an einem Computer denkt"
|
||
|
||
#: website/public/assets/figures/ctf-mask-equation.svg:2
|
||
#: website/public/assets/figures/ctf-mask-equation.svg:7
|
||
msgctxt "figure:ctf-mask-equation.svg"
|
||
msgid "One check reveals one character"
|
||
msgstr "Ein Häkchen zeigt einen Charakter"
|
||
|
||
#: 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 ""
|
||
"Die siebte Maske wählt nur die Position 21 im sechs mal sechs großen "
|
||
"Eingaberaster aus. Sein Zeichencode muss gleich 55 sein, also ist das "
|
||
"Zeichen 7. Die anderen Masken wählen andere Positionen aus und geben weitere"
|
||
" Gleichungen an."
|
||
|
||
#: website/public/assets/figures/ctf-mask-equation.svg:8
|
||
msgctxt "figure:ctf-mask-equation.svg"
|
||
msgid "The seventh check. Cell labels are input positions, starting at 0."
|
||
msgstr ""
|
||
"Der siebte Check. Zellenbeschriftungen sind Eingabepositionen, die bei 0 "
|
||
"beginnen."
|
||
|
||
#: website/public/assets/figures/ctf-mask-equation.svg:10
|
||
msgctxt "figure:ctf-mask-equation.svg"
|
||
msgid "Encoded mask: −21, +1, −14, 0"
|
||
msgstr "Kodierte Maske: -21, +1, -14, 0"
|
||
|
||
#: website/public/assets/figures/ctf-mask-equation.svg:11
|
||
msgctxt "figure:ctf-mask-equation.svg"
|
||
msgid "Skip 21 cells. Select 1. Skip 14. Stop at 0."
|
||
msgstr ""
|
||
"Überspringen Sie 21 Zellen. Wählen Sie 1. Überspringen 14. Stoppen Sie bei "
|
||
"0."
|
||
|
||
#: website/public/assets/figures/ctf-mask-equation.svg:15
|
||
msgctxt "figure:ctf-mask-equation.svg"
|
||
msgid "Only one cell contributes to this sum"
|
||
msgstr "Nur eine Zelle trägt zu dieser Summe bei"
|
||
|
||
#: website/public/assets/figures/ctf-mask-equation.svg:18
|
||
msgctxt "figure:ctf-mask-equation.svg"
|
||
msgid "Position 21 in the flag must contain 7."
|
||
msgstr "Position 21 in der Flagge muss 7 enthalten."
|
||
|
||
#: website/public/assets/figures/ctf-mask-equation.svg:20
|
||
msgctxt "figure:ctf-mask-equation.svg"
|
||
msgid "Selected: one cell"
|
||
msgstr "Ausgewählt: eine Zelle"
|
||
|
||
#: website/public/assets/figures/ctf-mask-equation.svg:21
|
||
msgctxt "figure:ctf-mask-equation.svg"
|
||
msgid "26 masks give 26 equations."
|
||
msgstr "26 Masken ergeben 26 Gleichungen."
|
||
|
||
#: website/public/assets/figures/ctf-mask-equation.svg:22
|
||
msgctxt "figure:ctf-mask-equation.svg"
|
||
msgid "Solve them together to find the flag."
|
||
msgstr "Löse sie zusammen, um die Flagge zu finden."
|
||
|
||
#: website/public/assets/figures/dx-ball-sound-pan-investigation.svg:2
|
||
#: website/public/assets/figures/dx-ball-sound-pan-investigation.svg:9
|
||
msgctxt "figure:dx-ball-sound-pan-investigation.svg"
|
||
msgid "DX-Ball sound-pan investigation"
|
||
msgstr "DX-Ball Schallschwenkuntersuchung"
|
||
|
||
#: 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 liefert den Befehls-, Aufrufer- und Byte-Lese-Nachweis für eine DX-Ball-"
|
||
"Funktion. Eine Stapeleingabe wird mit 1,5625 multipliziert, mit 500 "
|
||
"versetzt, skaliert und in eine Ganzzahl konvertiert. Gepflegtes C wird in "
|
||
"3.205 Original-x86-Fällen und einer separaten 63-Byte-Compiler-Wiedergabe "
|
||
"überprüft."
|
||
|
||
# Reviewed for technical meaning and concise diagram labels.
|
||
#: website/public/assets/figures/dx-ball-sound-pan-investigation.svg:28
|
||
msgctxt "figure:dx-ball-sound-pan-investigation.svg"
|
||
msgid "Stack"
|
||
msgstr "Stack"
|
||
|
||
# Reviewed for technical meaning and concise diagram labels.
|
||
#: website/public/assets/figures/dx-ball-sound-pan-investigation.svg:29
|
||
msgctxt "figure:dx-ball-sound-pan-investigation.svg"
|
||
msgid "input x"
|
||
msgstr "Input x"
|
||
|
||
# Reviewed for technical meaning and concise diagram labels.
|
||
#: website/public/assets/figures/dx-ball-sound-pan-investigation.svg:33
|
||
msgctxt "figure:dx-ball-sound-pan-investigation.svg"
|
||
msgid "Integer"
|
||
msgstr "int"
|
||
|
||
# Reviewed for technical meaning and concise diagram labels.
|
||
#: website/public/assets/figures/dx-ball-sound-pan-investigation.svg:34
|
||
msgctxt "figure:dx-ball-sound-pan-investigation.svg"
|
||
msgid "return"
|
||
msgstr "Return"
|
||
|
||
# Reviewed for technical meaning and concise diagram labels.
|
||
#: website/public/assets/figures/dx-ball-sound-pan-investigation.svg:35
|
||
msgctxt "figure:dx-ball-sound-pan-investigation.svg"
|
||
msgid "Reconstructed function"
|
||
msgstr "Rekonstruierte Funktion"
|
||
|
||
# Reviewed for technical meaning and concise diagram labels.
|
||
#: website/public/assets/figures/dx-ball-sound-pan-investigation.svg:36
|
||
msgctxt "figure:dx-ball-sound-pan-investigation.svg"
|
||
msgid "Maintained C"
|
||
msgstr "Neuer C-Code"
|
||
|
||
# Reviewed for technical meaning and concise diagram labels.
|
||
#: website/public/assets/figures/dx-ball-sound-pan-investigation.svg:37
|
||
msgctxt "figure:dx-ball-sound-pan-investigation.svg"
|
||
msgid "Brick-hit caller"
|
||
msgstr "Treffer-Aufruf"
|
||
|
||
#: website/public/assets/figures/dx-ball-sound-pan-investigation.svg:38
|
||
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:39
|
||
msgctxt "figure:dx-ball-sound-pan-investigation.svg"
|
||
msgid "Original code"
|
||
msgstr "Originalcode"
|
||
|
||
# Reviewed for technical meaning and concise diagram labels.
|
||
#: website/public/assets/figures/dx-ball-sound-pan-investigation.svg:40
|
||
#: website/public/assets/figures/dx-ball-sound-pan-investigation.svg:43
|
||
msgctxt "figure:dx-ball-sound-pan-investigation.svg"
|
||
msgid "comparison"
|
||
msgstr "Vergleich"
|
||
|
||
# Reviewed for technical meaning and concise diagram labels.
|
||
#: website/public/assets/figures/dx-ball-sound-pan-investigation.svg:41
|
||
msgctxt "figure:dx-ball-sound-pan-investigation.svg"
|
||
msgid "3,205 cases"
|
||
msgstr "3.205 Tests"
|
||
|
||
# Reviewed for technical meaning and concise diagram labels.
|
||
#: website/public/assets/figures/dx-ball-sound-pan-investigation.svg:42
|
||
msgctxt "figure:dx-ball-sound-pan-investigation.svg"
|
||
msgid "VC4.0 build"
|
||
msgstr "VC4.0-Build"
|
||
|
||
# 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 "63 matching bytes"
|
||
msgstr "63 gleiche Bytes"
|
||
|
||
#: website/public/assets/figures/rea-investigation-flow.svg:2
|
||
#: website/public/assets/figures/rea-investigation-flow.svg:10
|
||
msgctxt "figure:rea-investigation-flow.svg"
|
||
msgid "REA investigation flow"
|
||
msgstr "REA Untersuchungsablauf"
|
||
|
||
#: 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 ""
|
||
"Stellen Sie eine Frage zu einem lokalen Ziel. REA prüft und verfolgt lokale"
|
||
" Analyseadapter, gibt Beweise zurück und unterstützt Folgefragen, während "
|
||
"Ihr Agent erklärt, implementiert und testet."
|
||
|
||
# Reviewed for technical meaning and concise diagram labels.
|
||
#: website/public/assets/figures/rea-investigation-flow.svg:19
|
||
msgctxt "figure:rea-investigation-flow.svg"
|
||
msgid "1. Ask"
|
||
msgstr "1. Fragen"
|
||
|
||
# Reviewed for technical meaning and concise diagram labels.
|
||
#: website/public/assets/figures/rea-investigation-flow.svg:20
|
||
msgctxt "figure:rea-investigation-flow.svg"
|
||
msgid "Your agent + local target"
|
||
msgstr "Agent + lokale Datei"
|
||
|
||
# Reviewed for technical meaning and concise diagram labels.
|
||
#: website/public/assets/figures/rea-investigation-flow.svg:21
|
||
msgctxt "figure:rea-investigation-flow.svg"
|
||
msgid "App / binary / browser"
|
||
msgstr "App / Datei / Browser"
|
||
|
||
# Reviewed for technical meaning and concise diagram labels.
|
||
#: website/public/assets/figures/rea-investigation-flow.svg:22
|
||
msgctxt "figure:rea-investigation-flow.svg"
|
||
msgid "2. Inspect & trace"
|
||
msgstr "2. Prüfen und folgen"
|
||
|
||
#: website/public/assets/figures/rea-investigation-flow.svg:24
|
||
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:25
|
||
msgctxt "figure:rea-investigation-flow.svg"
|
||
msgid "3. Read the evidence"
|
||
msgstr "3. Belege lesen"
|
||
|
||
# Reviewed for technical meaning and concise diagram labels.
|
||
#: website/public/assets/figures/rea-investigation-flow.svg:26
|
||
msgctxt "figure:rea-investigation-flow.svg"
|
||
msgid "Code / references /"
|
||
msgstr "Code / Verweise /"
|
||
|
||
# Reviewed for technical meaning and concise diagram labels.
|
||
#: website/public/assets/figures/rea-investigation-flow.svg:27
|
||
msgctxt "figure:rea-investigation-flow.svg"
|
||
msgid "unknowns"
|
||
msgstr "Unbekanntes"
|
||
|
||
# Reviewed for technical meaning and concise diagram labels.
|
||
#: website/public/assets/figures/rea-investigation-flow.svg:28
|
||
msgctxt "figure:rea-investigation-flow.svg"
|
||
msgid "4. Use what you learn"
|
||
msgstr "4. Anwenden"
|
||
|
||
# Reviewed for technical meaning and concise diagram labels.
|
||
#: website/public/assets/figures/rea-investigation-flow.svg:29
|
||
msgctxt "figure:rea-investigation-flow.svg"
|
||
msgid "Your agent"
|
||
msgstr "Ihr Agent"
|
||
|
||
# Reviewed for technical meaning and concise diagram labels.
|
||
#: website/public/assets/figures/rea-investigation-flow.svg:30
|
||
msgctxt "figure:rea-investigation-flow.svg"
|
||
msgid "Explain / implement / test"
|
||
msgstr "Erklären / bauen / testen"
|
||
|
||
# Reviewed for technical meaning and concise diagram labels.
|
||
#: website/public/assets/figures/rea-investigation-flow.svg:31
|
||
msgctxt "figure:rea-investigation-flow.svg"
|
||
msgid "Analysis tools"
|
||
msgstr "Analysewerkzeuge"
|
||
|
||
# Reviewed for technical meaning and concise diagram labels.
|
||
#: website/public/assets/figures/rea-investigation-flow.svg:32
|
||
msgctxt "figure:rea-investigation-flow.svg"
|
||
msgid "Local analysis adapters"
|
||
msgstr "Lokale Analyseadapter"
|
||
|
||
# Reviewed for technical meaning and concise diagram labels.
|
||
#: website/public/assets/figures/rea-investigation-flow.svg:33
|
||
msgctxt "figure:rea-investigation-flow.svg"
|
||
msgid "Follow-up question"
|
||
msgstr "Weitere Frage"
|
||
|
||
#: 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: Abstand und Zielen eines Kugelrings"
|
||
|
||
#: 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 ""
|
||
"Eine volle Drehung im Uhrzeigersinn hat 256 Winkeleinheiten. Sechzehn Kugeln"
|
||
" beginnen in den Winkeln Null, sechzehn, zweiunddreißig bis 240. Wenn Sie "
|
||
"eine Beispielspielerrichtung von vierzig hinzufügen, werden alle sechzehn "
|
||
"Richtungen zusammen gedreht. Die erste Kugel zeigt auf den Spieler. Die "
|
||
"Drehung der Vorlage ist Null."
|
||
|
||
#: website/public/assets/figures/th04-bullet-ring.svg:8
|
||
msgctxt "figure:th04-bullet-ring.svg"
|
||
msgid "Fixed ring"
|
||
msgstr "Fester Ring"
|
||
|
||
#: website/public/assets/figures/th04-bullet-ring.svg:9
|
||
msgctxt "figure:th04-bullet-ring.svg"
|
||
msgid "First bullet: angle 0"
|
||
msgstr "Erste Kugel: Winkel 0"
|
||
|
||
#: website/public/assets/figures/th04-bullet-ring.svg:10
|
||
msgctxt "figure:th04-bullet-ring.svg"
|
||
msgid "Aimed ring"
|
||
msgstr "Gezielter Ring"
|
||
|
||
#: website/public/assets/figures/th04-bullet-ring.svg:11
|
||
msgctxt "figure:th04-bullet-ring.svg"
|
||
msgid "First bullet: player direction"
|
||
msgstr "Erste Kugel: Spielerrichtung"
|
||
|
||
# Reviewed for technical meaning and concise diagram labels.
|
||
#: website/public/assets/figures/th04-bullet-ring.svg:48
|
||
#: website/public/assets/figures/th04-bullet-ring.svg:86
|
||
msgctxt "figure:th04-bullet-ring.svg"
|
||
msgid "Origin"
|
||
msgstr "Mitte"
|
||
|
||
#: website/public/assets/figures/th04-bullet-ring.svg:89
|
||
msgctxt "figure:th04-bullet-ring.svg"
|
||
msgid "Player"
|
||
msgstr "Spieler"
|
||
|
||
#: website/public/assets/figures/th04-bullet-ring.svg:94
|
||
msgctxt "figure:th04-bullet-ring.svg"
|
||
msgid "Same spacing: 256 ÷ 16 = 16 angle units = 22.5°"
|
||
msgstr "Gleicher Abstand: 256 ÷ 16 = 16 Winkeleinheiten = 22,5°"
|
||
|
||
#: website/public/blog/index.html:109
|
||
#: website/public/blog/touhou-reconstruction/index.html:109
|
||
#: website/public/examples/dino-lab/index.html:110
|
||
#: website/public/faq/index.html:109
|
||
#: website/public/first-investigation/index.html:109
|
||
#: website/public/get-started/index.html:109
|
||
#: website/public/guides/browser/index.html:109
|
||
#: website/public/guides/index.html:109
|
||
#: website/public/guides/javascript/index.html:109
|
||
#: website/public/guides/native/index.html:109 website/public/index.html:111
|
||
#: website/public/showcase/aegis/index.html:110
|
||
#: website/public/showcase/ctf/index.html:109
|
||
#: website/public/showcase/dx-ball/index.html:109
|
||
#: website/public/showcase/index.html:109
|
||
#: website/public/showcase/notion/index.html:109
|
||
#: website/public/showcase/th04/index.html:109
|
||
msgctxt "shared"
|
||
msgid "Showcases"
|
||
msgstr "Fallstudien"
|
||
|
||
#: website/public/blog/index.html:110
|
||
#: website/public/blog/touhou-reconstruction/index.html:110
|
||
#: website/public/examples/dino-lab/index.html:111
|
||
#: website/public/faq/index.html:110
|
||
#: website/public/first-investigation/index.html:110
|
||
#: website/public/get-started/index.html:110
|
||
#: website/public/guides/browser/index.html:110
|
||
#: website/public/guides/index.html:110
|
||
#: website/public/guides/javascript/index.html:110
|
||
#: website/public/guides/native/index.html:110 website/public/index.html:112
|
||
#: website/public/showcase/aegis/index.html:111
|
||
#: website/public/showcase/ctf/index.html:110
|
||
#: website/public/showcase/dx-ball/index.html:110
|
||
#: website/public/showcase/index.html:110
|
||
#: website/public/showcase/notion/index.html:110
|
||
#: website/public/showcase/th04/index.html:110
|
||
msgctxt "shared"
|
||
msgid "Blog"
|
||
msgstr "Blog"
|
||
|
||
#: website/public/blog/index.html:111
|
||
#: website/public/blog/touhou-reconstruction/index.html:111
|
||
#: website/public/examples/dino-lab/index.html:112
|
||
#: website/public/faq/index.html:111
|
||
#: website/public/first-investigation/index.html:111
|
||
#: website/public/get-started/index.html:111
|
||
#: website/public/guides/browser/index.html:111
|
||
#: website/public/guides/index.html:111
|
||
#: website/public/guides/javascript/index.html:111
|
||
#: website/public/guides/native/index.html:111 website/public/index.html:113
|
||
#: website/public/showcase/aegis/index.html:112
|
||
#: website/public/showcase/ctf/index.html:111
|
||
#: website/public/showcase/dx-ball/index.html:111
|
||
#: website/public/showcase/index.html:111
|
||
#: website/public/showcase/notion/index.html:111
|
||
#: website/public/showcase/th04/index.html:111
|
||
msgctxt "shared"
|
||
msgid "Get started"
|
||
msgstr "Erste Schritte"
|
||
|
||
#: website/public/blog/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 "Guides"
|
||
msgstr "Anleitungen"
|
||
|
||
#: website/public/blog/index.html:209
|
||
#: website/public/blog/touhou-reconstruction/index.html:1059
|
||
#: website/public/examples/dino-lab/index.html:454
|
||
#: website/public/faq/index.html:552
|
||
#: website/public/first-investigation/index.html:502
|
||
#: website/public/get-started/index.html:861
|
||
#: website/public/guides/browser/index.html:477
|
||
#: website/public/guides/index.html:261
|
||
#: website/public/guides/javascript/index.html:482
|
||
#: website/public/guides/native/index.html:488 website/public/index.html:1165
|
||
#: website/public/showcase/aegis/index.html:787
|
||
#: website/public/showcase/ctf/index.html:756
|
||
#: website/public/showcase/dx-ball/index.html:764
|
||
#: website/public/showcase/index.html:296
|
||
#: website/public/showcase/notion/index.html:610
|
||
#: website/public/showcase/th04/index.html:779
|
||
msgctxt "shared"
|
||
msgid "Source"
|
||
msgstr "Quellcode"
|
||
|
||
#: website/public/blog/index.html:210
|
||
#: website/public/blog/touhou-reconstruction/index.html:1060
|
||
#: website/public/examples/dino-lab/index.html:455
|
||
#: website/public/faq/index.html:553
|
||
#: website/public/first-investigation/index.html:503
|
||
#: website/public/get-started/index.html:862
|
||
#: website/public/guides/browser/index.html:478
|
||
#: website/public/guides/index.html:262
|
||
#: website/public/guides/javascript/index.html:483
|
||
#: website/public/guides/native/index.html:489 website/public/index.html:1166
|
||
#: website/public/showcase/aegis/index.html:788
|
||
#: website/public/showcase/ctf/index.html:757
|
||
#: website/public/showcase/dx-ball/index.html:765
|
||
#: website/public/showcase/index.html:297
|
||
#: website/public/showcase/notion/index.html:611
|
||
#: website/public/showcase/th04/index.html:780
|
||
msgctxt "shared"
|
||
msgid "MIT license"
|
||
msgstr "MIT-Lizenz"
|
||
|
||
#: website/public/blog/index.html:211
|
||
#: website/public/blog/touhou-reconstruction/index.html:1061
|
||
#: website/public/examples/dino-lab/index.html:456
|
||
#: website/public/faq/index.html:554
|
||
#: website/public/first-investigation/index.html:504
|
||
#: website/public/get-started/index.html:863
|
||
#: website/public/guides/browser/index.html:479
|
||
#: website/public/guides/index.html:263
|
||
#: website/public/guides/javascript/index.html:484
|
||
#: website/public/guides/native/index.html:490 website/public/index.html:1167
|
||
#: website/public/showcase/aegis/index.html:789
|
||
#: website/public/showcase/ctf/index.html:758
|
||
#: website/public/showcase/dx-ball/index.html:766
|
||
#: website/public/showcase/index.html:298
|
||
#: website/public/showcase/notion/index.html:612
|
||
#: website/public/showcase/th04/index.html:781
|
||
msgctxt "shared"
|
||
msgid "Join the community"
|
||
msgstr "Zur Community"
|
||
|
||
#: website/public/blog/index.html:212
|
||
#: website/public/blog/touhou-reconstruction/index.html:1062
|
||
#: website/public/examples/dino-lab/index.html:457
|
||
#: website/public/faq/index.html:555
|
||
#: website/public/first-investigation/index.html:505
|
||
#: website/public/get-started/index.html:864
|
||
#: website/public/guides/browser/index.html:480
|
||
#: website/public/guides/index.html:264
|
||
#: website/public/guides/javascript/index.html:485
|
||
#: website/public/guides/native/index.html:491 website/public/index.html:1168
|
||
#: website/public/showcase/aegis/index.html:790
|
||
#: website/public/showcase/ctf/index.html:759
|
||
#: website/public/showcase/dx-ball/index.html:767
|
||
#: website/public/showcase/index.html:299
|
||
#: website/public/showcase/notion/index.html:613
|
||
#: website/public/showcase/th04/index.html:782
|
||
msgctxt "shared"
|
||
msgid "Follow us on X"
|
||
msgstr "Auf X folgen"
|
||
|
||
#: website/public/examples/dino-lab/index.html:293
|
||
msgctxt "page:examples/dino-lab/index.html"
|
||
msgid "REA · selected script source"
|
||
msgstr "REA * ausgewählte Skriptquelle"
|
||
|
||
#: website/public/first-investigation/index.html:361
|
||
msgctxt "page:first-investigation/index.html"
|
||
msgid "Source"
|
||
msgstr "Quellcode"
|
||
|
||
#: website/public/first-investigation/index.html:415
|
||
msgctxt "page:first-investigation/index.html"
|
||
msgid "Expected formatter output"
|
||
msgstr "Erwartete Formatierungsausgabe"
|
||
|
||
#: website/public/guides/index.html:206
|
||
msgctxt "page:guides/index.html"
|
||
msgid "Instructions"
|
||
msgstr "Anweisung"
|
||
|
||
#: website/public/guides/index.html:207
|
||
msgctxt "page:guides/index.html"
|
||
msgid "Caller"
|
||
msgstr "Anrufer"
|
||
|
||
#: website/public/guides/index.html:208
|
||
msgctxt "page:guides/index.html"
|
||
msgid "Constants"
|
||
msgstr "Konstant"
|
||
|
||
#: website/public/guides/index.html:209
|
||
msgctxt "page:guides/index.html"
|
||
msgid "C function"
|
||
msgstr "C-Funktion"
|
||
|
||
#: website/public/guides/index.html:224
|
||
msgctxt "page:guides/index.html"
|
||
msgid "Button"
|
||
msgstr "Schaltfläche"
|
||
|
||
#: website/public/guides/index.html:225
|
||
msgctxt "page:guides/index.html"
|
||
msgid "Preload API"
|
||
msgstr "API vorladen"
|
||
|
||
#: website/public/guides/index.html:226
|
||
msgctxt "page:guides/index.html"
|
||
msgid "IPC"
|
||
msgstr "IPC"
|
||
|
||
#: website/public/guides/index.html:226
|
||
msgctxt "page:guides/index.html"
|
||
msgid "CSV file"
|
||
msgstr "Dateiendung.CSV"
|
||
|
||
#: website/public/guides/index.html:246
|
||
msgctxt "page:guides/index.html"
|
||
msgid "Your click"
|
||
msgstr "Ihr Klick"
|
||
|
||
#: website/public/guides/index.html:247
|
||
msgctxt "page:guides/index.html"
|
||
msgid "Captured request"
|
||
msgstr "Erfasste Anfrage"
|
||
|
||
#: website/public/guides/index.html:248
|
||
msgctxt "page:guides/index.html"
|
||
msgid "Export script"
|
||
msgstr "Skript exportieren"
|
||
|
||
#: website/public/guides/javascript/index.html:344
|
||
msgctxt "page:guides/javascript/index.html"
|
||
msgid "REA result · summary.ipc excerpt"
|
||
msgstr "REA Ergebnis * Zusammenfassung.ipc Auszug"
|
||
|
||
#: website/public/guides/native/index.html:371
|
||
msgctxt "page:guides/native/index.html"
|
||
msgid "REA instruction excerpt · 0x406409"
|
||
msgstr "REA Auszug aus der Anleitung · 0x406409"
|
||
|
||
#: website/public/guides/native/index.html:385
|
||
msgctxt "page:guides/native/index.html"
|
||
msgid "REA caller excerpt · 0x411f5b"
|
||
msgstr "REA Anruferauszug · 0x411f5b"
|
||
|
||
#: website/public/guides/native/index.html:399
|
||
msgctxt "page:guides/native/index.html"
|
||
msgid "REA byte results · interpreted as little-endian doubles"
|
||
msgstr "REA Byte-Ergebnisse * interpretiert als Little-Endian-Doubles"
|
||
|
||
#: website/public/guides/native/index.html:416
|
||
msgctxt "page:guides/native/index.html"
|
||
msgid "Recovered C · excerpt"
|
||
msgstr "Wiederhergestellter C · -Auszug"
|
||
|
||
#: website/public/index.html:219
|
||
msgctxt "page:index.html"
|
||
msgid "See how REA works ↓"
|
||
msgstr "So funktioniert REA ↓"
|
||
|
||
#: website/public/index.html:220
|
||
msgctxt "page:index.html"
|
||
msgid "Setup guide"
|
||
msgstr "Einrichtungsanleitung"
|
||
|
||
#: website/public/index.html:221
|
||
msgctxt "page:index.html"
|
||
msgid "Showcases →"
|
||
msgstr "Präsentieren →"
|
||
|
||
#: website/public/index.html:731
|
||
msgctxt "page:index.html"
|
||
msgid "Selected settings from the inspected script"
|
||
msgstr "Ausgewählte Einstellungen aus dem überprüften Skript"
|
||
|
||
#: website/public/index.html:903
|
||
msgctxt "page:index.html"
|
||
msgid "Readable summary of the % handler"
|
||
msgstr "Lesbare Zusammenfassung des % -Handlers"
|
||
|
||
#: website/public/index.html:967
|
||
msgctxt "page:index.html"
|
||
msgid "REA · selected original instructions"
|
||
msgstr "REA * ausgewählte Originalanleitung"
|
||
|
||
#: website/public/index.html:978
|
||
msgctxt "page:index.html"
|
||
msgid "Operator IDs · Microsoft’s source"
|
||
msgstr "Betreiber-IDs * Quelle von Microsoft"
|
||
|
||
#: website/public/index.html:1152
|
||
msgctxt "page:index.html"
|
||
msgid "Follow @reatools on X"
|
||
msgstr "Folge @reatools auf X"
|
||
|
||
#: website/public/showcase/aegis/index.html:386
|
||
#: website/public/showcase/aegis/index.html:418
|
||
msgctxt "page:showcase/aegis/index.html"
|
||
msgid "Agent → REA"
|
||
msgstr "Vertreter → REA"
|
||
|
||
#: website/public/showcase/aegis/index.html:396
|
||
msgctxt "page:showcase/aegis/index.html"
|
||
msgid "REA → agent · selected results"
|
||
msgstr "REA → Agent * ausgewählte Ergebnisse"
|
||
|
||
#: website/public/showcase/aegis/index.html:432
|
||
msgctxt "page:showcase/aegis/index.html"
|
||
msgid "REA → agent · methods and callers"
|
||
msgstr "REA → agent * Methoden und Anrufer"
|
||
|
||
#: website/public/showcase/aegis/index.html:502
|
||
msgctxt "page:showcase/aegis/index.html"
|
||
msgid "REA · selected decompiled Java"
|
||
msgstr "REA * ausgewähltes dekompiliertes Java"
|
||
|
||
#: website/public/showcase/aegis/index.html:532
|
||
msgctxt "page:showcase/aegis/index.html"
|
||
msgid "Readable summary · agent's interpretation"
|
||
msgstr "Lesbare Zusammenfassung * Interpretation des Agenten"
|
||
|
||
#: website/public/showcase/aegis/index.html:587
|
||
msgctxt "page:showcase/aegis/index.html"
|
||
msgid "REA · generateOTP, complete body"
|
||
msgstr "REA * generateOTP, kompletter Körper"
|
||
|
||
#: website/public/showcase/aegis/index.html:705
|
||
msgctxt "page:showcase/aegis/index.html"
|
||
msgid "Download Aegis APK"
|
||
msgstr "Laden Sie Aegis APK herunter"
|
||
|
||
#: website/public/showcase/aegis/index.html:709
|
||
msgctxt "page:showcase/aegis/index.html"
|
||
msgid "Download Android analysis provider"
|
||
msgstr "Android-Analyse-Anbieter herunterladen"
|
||
|
||
#: website/public/showcase/ctf/index.html:289
|
||
#: website/public/showcase/ctf/index.html:325
|
||
msgctxt "page:showcase/ctf/index.html"
|
||
msgid "Agent → REA"
|
||
msgstr "Vertreter → REA"
|
||
|
||
#: website/public/showcase/ctf/index.html:305
|
||
msgctxt "page:showcase/ctf/index.html"
|
||
msgid "REA → agent · selected results"
|
||
msgstr "REA → Agent * ausgewählte Ergebnisse"
|
||
|
||
#: website/public/showcase/ctf/index.html:337
|
||
msgctxt "page:showcase/ctf/index.html"
|
||
msgid "REA → agent · selected instructions"
|
||
msgstr "REA → Agent * ausgewählte Anweisungen"
|
||
|
||
#: website/public/showcase/ctf/index.html:400
|
||
msgctxt "page:showcase/ctf/index.html"
|
||
msgid "Agent → REA · read_bytes"
|
||
msgstr "Agent → REA · Byte lesen"
|
||
|
||
#: website/public/showcase/ctf/index.html:407
|
||
msgctxt "page:showcase/ctf/index.html"
|
||
msgid "REA → agent · seventh entries"
|
||
msgstr "REA → Agent * siebte Einträge"
|
||
|
||
#: website/public/showcase/ctf/index.html:675
|
||
msgctxt "page:showcase/ctf/index.html"
|
||
msgid "Original executable · SHA-256"
|
||
msgstr "Ursprüngliche ausführbare Datei * SHA-256"
|
||
|
||
#: website/public/showcase/ctf/index.html:711
|
||
msgctxt "page:showcase/ctf/index.html"
|
||
msgid "Download the original challenge"
|
||
msgstr "Laden Sie die ursprüngliche Herausforderung herunter"
|
||
|
||
#: website/public/showcase/ctf/index.html:715
|
||
msgctxt "page:showcase/ctf/index.html"
|
||
msgid "Download solver"
|
||
msgstr "Löser herunterladen"
|
||
|
||
#: website/public/showcase/dx-ball/index.html:316
|
||
msgctxt "page:showcase/dx-ball/index.html"
|
||
msgid "REA result · pseudocode excerpt"
|
||
msgstr "REA Ergebnis * Pseudocode-Auszug"
|
||
|
||
#. {ph0}: <code>analyze_function</code>
|
||
#: website/public/showcase/dx-ball/index.html:339
|
||
#: website/public/showcase/dx-ball/index.html:363
|
||
#, python-brace-format
|
||
msgctxt "page:showcase/dx-ball/index.html"
|
||
msgid "Agent → REA · {ph0}"
|
||
msgstr "Vertreter → REA · {ph0}"
|
||
|
||
#: website/public/showcase/dx-ball/index.html:345
|
||
msgctxt "page:showcase/dx-ball/index.html"
|
||
msgid "REA → agent · instruction excerpt"
|
||
msgstr "REA → Agent * Anweisungsauszug"
|
||
|
||
#: website/public/showcase/dx-ball/index.html:369
|
||
msgctxt "page:showcase/dx-ball/index.html"
|
||
msgid "REA → agent · caller excerpt"
|
||
msgstr "REA → Agent * Anrufer Auszug"
|
||
|
||
#. {ph0}: <code>read_bytes</code>
|
||
#: website/public/showcase/dx-ball/index.html:387
|
||
#, python-brace-format
|
||
msgctxt "page:showcase/dx-ball/index.html"
|
||
msgid "Agent → REA · two {ph0} requests"
|
||
msgstr "Vertreter → REA * zwei {ph0} Antr"
|
||
|
||
#: website/public/showcase/dx-ball/index.html:397
|
||
msgctxt "page:showcase/dx-ball/index.html"
|
||
msgid "REA byte results · decoded as doubles"
|
||
msgstr "REA Byte-Ergebnisse * dekodiert als Doppel"
|
||
|
||
#: website/public/showcase/dx-ball/index.html:750
|
||
msgctxt "page:showcase/dx-ball/index.html"
|
||
msgid "Start with your own target"
|
||
msgstr "Beginnen Sie mit Ihrem eigenen Ziel"
|
||
|
||
#: website/public/showcase/index.html:199
|
||
msgctxt "page:showcase/index.html"
|
||
msgid "APK"
|
||
msgstr "MODELL: APK"
|
||
|
||
#: website/public/showcase/index.html:200
|
||
msgctxt "page:showcase/index.html"
|
||
msgid "Generating code"
|
||
msgstr "Code generieren"
|
||
|
||
#: website/public/showcase/index.html:201
|
||
msgctxt "page:showcase/index.html"
|
||
msgid "Recovered rule"
|
||
msgstr "Wiederhergestellte Regel"
|
||
|
||
#: website/public/showcase/index.html:202
|
||
msgctxt "page:showcase/index.html"
|
||
msgid "Adjustable clock"
|
||
msgstr "Einstellbare Uhr"
|
||
|
||
#: website/public/showcase/index.html:217
|
||
msgctxt "page:showcase/index.html"
|
||
msgid "Binary"
|
||
msgstr "Binär"
|
||
|
||
#: website/public/showcase/index.html:218
|
||
msgctxt "page:showcase/index.html"
|
||
msgid "Checking code"
|
||
msgstr "Code überprüfen"
|
||
|
||
#: website/public/showcase/index.html:219
|
||
msgctxt "page:showcase/index.html"
|
||
msgid "Equations"
|
||
msgstr "Gleichung"
|
||
|
||
#: website/public/showcase/index.html:220
|
||
msgctxt "page:showcase/index.html"
|
||
msgid "Correct!"
|
||
msgstr "Richtig!"
|
||
|
||
#: website/public/showcase/index.html:236
|
||
msgctxt "page:showcase/index.html"
|
||
msgid "Executable"
|
||
msgstr "Ausführbar"
|
||
|
||
#: website/public/showcase/index.html:237
|
||
msgctxt "page:showcase/index.html"
|
||
msgid "REA findings"
|
||
msgstr "REA Ergebnisse"
|
||
|
||
#: website/public/showcase/index.html:238
|
||
msgctxt "page:showcase/index.html"
|
||
msgid "Recovered C"
|
||
msgstr "Wiederhergestelltes C"
|
||
|
||
#: website/public/showcase/index.html:239
|
||
msgctxt "page:showcase/index.html"
|
||
msgid "Validation"
|
||
msgstr "Validierung"
|
||
|
||
#: website/public/showcase/index.html:254
|
||
msgctxt "page:showcase/index.html"
|
||
msgid "Packaged app"
|
||
msgstr "Verpackte App"
|
||
|
||
#: website/public/showcase/index.html:255
|
||
msgctxt "page:showcase/index.html"
|
||
msgid "Exposed API"
|
||
msgstr "Exponierte API"
|
||
|
||
#: website/public/showcase/index.html:256
|
||
msgctxt "page:showcase/index.html"
|
||
msgid "IPC wrappers"
|
||
msgstr "IPC-Verpackungen"
|
||
|
||
#: website/public/showcase/index.html:257
|
||
msgctxt "page:showcase/index.html"
|
||
msgid "Clipboard"
|
||
msgstr "Zwischenablage"
|
||
|
||
#: website/public/showcase/index.html:272
|
||
msgctxt "page:showcase/index.html"
|
||
msgid "Original DOS code"
|
||
msgstr "Ursprünglicher DOS-Code"
|
||
|
||
#: website/public/showcase/index.html:273
|
||
msgctxt "page:showcase/index.html"
|
||
msgid "REA instructions"
|
||
msgstr "REA Anleitung"
|
||
|
||
#: website/public/showcase/index.html:274
|
||
msgctxt "page:showcase/index.html"
|
||
msgid "Angle calculation"
|
||
msgstr "Winkelberechnung"
|
||
|
||
#: website/public/showcase/index.html:275
|
||
msgctxt "page:showcase/index.html"
|
||
msgid "Bullet ring"
|
||
msgstr "Kugelring"
|
||
|
||
#: website/public/showcase/notion/index.html:291
|
||
msgctxt "page:showcase/notion/index.html"
|
||
msgid "Exposed page API"
|
||
msgstr "API für exponierte Seiten"
|
||
|
||
#: website/public/showcase/notion/index.html:297
|
||
msgctxt "page:showcase/notion/index.html"
|
||
msgid "Renderer IPC call"
|
||
msgstr "Renderer-IPC-Aufruf"
|
||
|
||
#: website/public/showcase/notion/index.html:459
|
||
msgctxt "page:showcase/notion/index.html"
|
||
msgid "Sent to the system clipboard"
|
||
msgstr "An die Zwischenablage des Systems gesendet"
|
||
|
||
#: website/public/showcase/notion/index.html:467
|
||
msgctxt "page:showcase/notion/index.html"
|
||
msgid "Saved locally by Notion"
|
||
msgstr "Lokal gespeichert von Notion"
|
||
|
||
#: website/public/showcase/notion/index.html:512
|
||
msgctxt "page:showcase/notion/index.html"
|
||
msgid "Markdown input"
|
||
msgstr "Markdown-Eingabe"
|
||
|
||
#: website/public/showcase/notion/index.html:519
|
||
msgctxt "page:showcase/notion/index.html"
|
||
msgid "Structured parser output · excerpt"
|
||
msgstr "Strukturierte Parser-Ausgabe * Auszug"
|
||
|
||
#: website/public/showcase/notion/index.html:596
|
||
msgctxt "page:showcase/notion/index.html"
|
||
msgid "Analyze your own app"
|
||
msgstr "Analysieren Sie Ihre eigene App"
|
||
|
||
#: website/public/showcase/th04/index.html:356
|
||
msgctxt "page:showcase/th04/index.html"
|
||
msgid "Agent → REA"
|
||
msgstr "Vertreter → REA"
|
||
|
||
#: website/public/showcase/th04/index.html:365
|
||
msgctxt "page:showcase/th04/index.html"
|
||
msgid "REA → agent · selected fields"
|
||
msgstr "REA → Agent * ausgewählte Felder"
|
||
|
||
#. {ph0}: <code>analyze_function</code>
|
||
#: website/public/showcase/th04/index.html:384
|
||
#, python-brace-format
|
||
msgctxt "page:showcase/th04/index.html"
|
||
msgid "Agent → REA · {ph0}"
|
||
msgstr "Vertreter → REA · {ph0}"
|
||
|
||
#: website/public/showcase/th04/index.html:390
|
||
msgctxt "page:showcase/th04/index.html"
|
||
msgid "REA → agent · instruction excerpt"
|
||
msgstr "REA → Agent * Anweisungsauszug"
|
||
|
||
#: website/public/showcase/th04/index.html:411
|
||
msgctxt "page:showcase/th04/index.html"
|
||
msgid "Same function result · aim excerpt"
|
||
msgstr "Gleiches Funktionsergebnis * Zielauszug"
|
||
|
||
#: website/public/showcase/th04/index.html:420
|
||
msgctxt "page:showcase/th04/index.html"
|
||
msgid "Corresponding maintained C++"
|
||
msgstr "Entsprechendes gepflegtes C ++"
|
||
|
||
#: website/public/showcase/th04/index.html:600
|
||
msgctxt "page:showcase/th04/index.html"
|
||
msgid "Ring macro · TH04 branch, excerpt"
|
||
msgstr "Ringmakro * TH04 Zweig, Auszug"
|
||
|
||
#: website/public/showcase/th04/index.html:610
|
||
msgctxt "page:showcase/th04/index.html"
|
||
msgid "Angle and velocity · source excerpt"
|
||
msgstr "Winkel und Geschwindigkeit * Quellenauszug"
|
||
|
||
#: website/public/assets/home.js:29
|
||
msgctxt "runtime"
|
||
msgid "Press % to see what happens to 10."
|
||
msgstr "Drücke %, um zu sehen, was mit 10 passiert."
|
||
|
||
#: website/public/assets/home.js:32
|
||
msgctxt "runtime"
|
||
msgid "10% of 200 is 20. Press = to add it."
|
||
msgstr "10% von 200 sind 20. Drücken Sie =, um es hinzuzufügen."
|
||
|
||
#: website/public/assets/home.js:33
|
||
msgctxt "runtime"
|
||
msgid "For multiplication, 10 becomes 0.1. Press = to multiply."
|
||
msgstr ""
|
||
"Für die Multiplikation wird 10 zu 0,1. Drücken Sie =, um zu multiplizieren."
|
||
|
||
#: scripts/website_i18n.py
|
||
msgctxt "runtime"
|
||
msgid "Translation is being updated. Read this page in English for now."
|
||
msgstr ""
|
||
"Übersetzung wird aktualisiert. Lesen Sie diese Seite vorerst auf Englisch."
|
||
|
||
#. {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:412
|
||
#, 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}Verwenden Sie REA zur Analyse {ph3} und erklären, wie es "
|
||
"Daten exportiert. Zeigen Sie die relevanten Code- und Quellspeicherorte "
|
||
"an.{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:230
|
||
#, 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}Installiere REA mit {ph3} und verbinde es mit diesem Coding-"
|
||
"Agent. Zeige mir zuerst die geplanten Änderungen und warte auf meine "
|
||
"Zustimmung. Prüfe anschließend die Installation.{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:280
|
||
#, 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}Herunterladen {ph3} in einen neuen Beispielordner und "
|
||
"entpacke ihn. Verwenden Sie REA, um herauszufinden, was passiert, wenn ich "
|
||
"auf Notizen exportieren klicke. Zeigen Sie, wo {ph4} geschrieben wird, "
|
||
"welche Felder es enthält und die relevanten Dateien und "
|
||
"Zeilen.{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:419
|
||
#, 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}Installiere REA mit {ph3} und verbinde es mit diesem Coding-"
|
||
"Agent. Zeige mir zuerst die geplanten Änderungen und warte auf meine "
|
||
"Zustimmung. Prüfe anschließend die Installation.{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:251
|
||
#, 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}Installiere REA mit {ph3} und verbinde es mit diesem Coding-"
|
||
"Agent. Zeige mir zuerst die geplanten Änderungen und warte auf meine "
|
||
"Zustimmung. Prüfe anschließend die Installation.{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:1054
|
||
#, 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}Verwenden Sie REA zum Überprüfen {ph3}. Klonen Sie diese "
|
||
"Website für mich.{ph4}{ph5}{ph6}"
|
||
|
||
#. {ph0}: <span translate="no">dino-speed.js</span>
|
||
#: website/public/examples/dino-lab/index.html:307
|
||
#, python-brace-format
|
||
msgctxt "page:examples/dino-lab/index.html"
|
||
msgid "Reconstruction · {ph0}"
|
||
msgstr "Wiederaufbau · {ph0}"
|
||
|
||
#. {ph0}: <span translate="no">Node.js</span>
|
||
#: website/public/faq/index.html:205
|
||
#, 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 ""
|
||
"Wenn {ph0} und npm verfügbar sind, führen Sie Setup aus, wählen Sie Ihren "
|
||
"Codierungsagenten aus und überprüfen Sie die vorgeschlagenen Änderungen."
|
||
|
||
#. {ph0}: <span translate="no">Node.js</span>
|
||
#: website/public/first-investigation/index.html:189
|
||
#, python-brace-format
|
||
msgctxt "page:first-investigation/index.html"
|
||
msgid "A supplied example · {ph0} and npm · Your coding agent"
|
||
msgstr "Ein mitgeliefertes Beispiel * {ph0} und npm · Ihr Codierungsagent"
|
||
|
||
#. {ph0}: <span translate="no">Node.js</span>
|
||
#. {ph1}: <a href="../get-started/">
|
||
#. {ph2}: </a >
|
||
#: website/public/first-investigation/index.html:208
|
||
#, 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 ""
|
||
"Verwenden Sie ein Codierungsmittel wie Claude Code, Codex oder Cursor. Du "
|
||
"brauchst {ph0} und npm; der {ph1}setup Guide listet unterstützte Versionen "
|
||
"auf{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:326
|
||
#, python-brace-format
|
||
msgctxt "page:first-investigation/index.html"
|
||
msgid "{ph0}Page · {ph1}{ph2}{ph3}Export notes{ph4}{ph5}Calls {ph6}.{ph7}"
|
||
msgstr ""
|
||
"{ph0}Seite · {ph1}{ph2}{ph3}Notizen exportieren{ph4}{ph5}Nennen {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:334
|
||
#, 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}Brücke · {ph1}{ph2}{ph3}{ph4}{ph5}{ph6}Sendet eine benannte Nachricht "
|
||
"an den Hauptprozess.{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:342
|
||
#, 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}Handler · {ph1}{ph2}{ph3}Schreiben {ph4}{ph5}{ph6}Ruft den Formatierer "
|
||
"auf {ph7} und schreibt die Datei.{ph8}"
|
||
|
||
#. {ph0}: <span translate="no">main.js</span>
|
||
#: website/public/first-investigation/index.html:360
|
||
#, python-brace-format
|
||
msgctxt "page:first-investigation/index.html"
|
||
msgid "{ph0} · lines 8–12"
|
||
msgstr "{ph0} * linien 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:402
|
||
#, 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}Sagen Sie den CSV für eine Notiz mit ID 1 und Titel voraus "
|
||
"{ph3}. Führen Sie dann die Beispiele aus {ph4} formatierer mit {ph5} um es "
|
||
"zu überprüfen. Zeigen Sie die Vorhersage und die tatsächliche Ausgabe "
|
||
"an.{ph6}{ph7}{ph8}"
|
||
|
||
#. {ph0}: <span translate="no">Node.js</span>
|
||
#: website/public/first-investigation/index.html:420
|
||
#, 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 ""
|
||
"Der Titel bleibt in einem Anführungszeichen; Jedes Anführungszeichen wird "
|
||
"verdoppelt. Dies überprüft den Formatierer direkt mit {ph0} ."
|
||
|
||
#. {ph0}: <span translate="no">Node.js</span>
|
||
#: website/public/first-investigation/index.html:433
|
||
#, python-brace-format
|
||
msgctxt "page:first-investigation/index.html"
|
||
msgid "{ph0} · CSV formatter"
|
||
msgstr "{ph0} * CSV Formatierer"
|
||
|
||
#. {ph0}: <span translate="no">Node.js</span>
|
||
#. {ph1}: <span translate="no">Node.js</span>
|
||
#: website/public/get-started/index.html:187
|
||
#, 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 ""
|
||
"Du brauchst {ph0} 22 (22.19+), 24 (24.11+) oder 26+. npm kommt mit {ph1}."
|
||
|
||
#. {ph0}: <span translate="no">Node.js</span>
|
||
#: website/public/get-started/index.html:192
|
||
#, python-brace-format
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "Don't have {ph0}, or not sure?"
|
||
msgstr "Sie haben {ph0} nicht oder sind sich nicht sicher?"
|
||
|
||
#. {ph0}: <code>node -v</code>
|
||
#. {ph1}: <span translate="no">Node.js</span>
|
||
#: website/public/get-started/index.html:211
|
||
#, 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 ""
|
||
"Wenn {ph0} druckt v22.19+, v24.11+ oder v26+, Sie sind bereit. Wenn eine "
|
||
"ältere Version oder \"nicht erkannt\" / \"Befehl nicht gefunden\" ausgegeben"
|
||
" wird, installieren Sie {ph1} 24 LITER:"
|
||
|
||
#. {ph0}: <span translate="no">export.js</span>
|
||
#: website/public/guides/browser/index.html:428
|
||
#, python-brace-format
|
||
msgctxt "page:guides/browser/index.html"
|
||
msgid "{ph0} · example source excerpt"
|
||
msgstr "{ph0} * beispiel Quellenauszug"
|
||
|
||
#. {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:446
|
||
#, 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}Öffnen Sie das Beispiel{ph1} · {ph2}Herunterladen {ph3}{ph4} · "
|
||
"{ph5}Herunterladen {ph6}{ph7}"
|
||
|
||
#. {ph0}: <span translate="no">renderer.js</span>
|
||
#: website/public/guides/javascript/index.html:296
|
||
#: website/public/guides/javascript/index.html:312
|
||
#: website/public/guides/javascript/index.html:327
|
||
#, python-brace-format
|
||
msgctxt "page:guides/javascript/index.html"
|
||
msgid "{ph0} · example source"
|
||
msgstr "{ph0} * beispielquelle"
|
||
|
||
#. {ph0}: <code>notes-example</code>
|
||
#. {ph1}: <span translate="no">Node.js</span>
|
||
#: website/public/guides/javascript/index.html:361
|
||
#, 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 ""
|
||
"Laden Sie das Beispiel herunter und entpacken Sie es. Das Archiv enthält die"
|
||
" komplette {ph0} Ordner. Analysieren Sie es mit {ph1} und npm; Electron wird"
|
||
" für dieses Beispiel nicht benötigt."
|
||
|
||
#. {ph0}: <span translate="no">Node.js</span>
|
||
#. {ph1}: <a href="get-started/">
|
||
#. {ph2}: </a>
|
||
#: website/public/index.html:276
|
||
#, 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 ""
|
||
"Zum ersten Mal oder vermisst {ph0} oder ein Kodierungsagent? {ph1}Befolgen "
|
||
"Sie die Schritt-für-Schritt-Anleitung zur Einrichtung →{ph2}"
|
||
|
||
#. {ph0}: <strong >
|
||
#. {ph1}: <span translate="no">200 + 10%</span>
|
||
#. {ph2}: </strong >
|
||
#: website/public/index.html:300
|
||
#, python-brace-format
|
||
msgctxt "page:index.html"
|
||
msgid "One question: {ph0}why does Calculator give 220 for {ph1}?{ph2}"
|
||
msgstr "Zum Beispiel: {ph0}Warum ergibt {ph1} im Rechner 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:488
|
||
#, 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}Verwenden REA inspizieren Windows Rechner. Warum ergibt "
|
||
"{ph3} 220?{ph4}{ph5}{ph6}"
|
||
|
||
#. {ph0}: <span translate="no">index.js</span>
|
||
#: website/public/index.html:673
|
||
#, python-brace-format
|
||
msgctxt "page:index.html"
|
||
msgid "REA · loaded {ph0} · selected lines"
|
||
msgstr "REA * geladen {ph0} * ausgewählte Linien"
|
||
|
||
#. {ph0}: <strong>
|
||
#. {ph1}: <span translate="no">200 + 10%</span>
|
||
#. {ph2}: </strong>
|
||
#: website/public/index.html:777
|
||
#, 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 ""
|
||
"Wir haben gesehen warum {ph0}{ph1} ergibt 220.{ph2} Lassen Sie uns nun die "
|
||
"Regeln für + und × wiederherstellen und ausprobieren."
|
||
|
||
#. {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:934
|
||
#, 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 liest {ph1}{ph2}{ph3}Es startet die Taschenrechner-"
|
||
"App{ph4}{ph5}Der Code öffnet sich {ph6}. Der Agent wählt dann die Bibliothek"
|
||
" der installierten App aus.{ph7}"
|
||
|
||
#. {ph0}: <span class="prompt-symbol" aria-hidden="true">
|
||
#. {ph1}: </span >
|
||
#. {ph2}: <span id="aegis-prompt" >
|
||
#. {ph3}: <span translate="no" >3.apk</span >
|
||
#. {ph4}: </span >
|
||
#. {ph5}: <span class="terminal-cursor" aria-hidden="true">
|
||
#. {ph6}: </span>
|
||
#: website/public/showcase/aegis/index.html:265
|
||
#, python-brace-format
|
||
msgctxt "page:showcase/aegis/index.html"
|
||
msgid ""
|
||
"{ph0}›{ph1}{ph2}Use REA to inspect aegis-v3.4.{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}Verwenden Sie REA, um aegis-v3.4 zu überprüfen.{ph3}. Finden"
|
||
" Sie heraus, wie der sechsstellige Anmeldecode generiert wird, erklären Sie,"
|
||
" warum er sich alle 30 Sekunden ändert, und erstellen Sie eine kleine Demo "
|
||
"neu, in der ich die Uhrzeit ändern kann.{ph4}{ph5}{ph6}"
|
||
|
||
#. {ph0}: <span translate="no">preload.js</span>
|
||
#: website/public/showcase/notion/index.html:329
|
||
#, python-brace-format
|
||
msgctxt "page:showcase/notion/index.html"
|
||
msgid "tab_browser_view/{ph0} · API member"
|
||
msgstr "tab_browser_ansicht/{ph0} * API-Mitglied"
|
||
|
||
#. {ph0}: <span translate="no">preload.js</span>
|
||
#: website/public/showcase/notion/index.html:358
|
||
#, python-brace-format
|
||
msgctxt "page:showcase/notion/index.html"
|
||
msgid "tab_browser_view/{ph0} · IPC helper"
|
||
msgstr "tab_browser_ansicht/{ph0} * IPC-Helfer"
|
||
|
||
#. {ph0}: <span translate="no">index.js</span>
|
||
#: website/public/showcase/notion/index.html:389
|
||
#, python-brace-format
|
||
msgctxt "page:showcase/notion/index.html"
|
||
msgid "main/{ph0} · handler helper"
|
||
msgstr "Haupt{ph0} * Handler-Helfer"
|
||
|
||
#. {ph0}: <span translate="no">index.js</span>
|
||
#: website/public/showcase/notion/index.html:417
|
||
#, python-brace-format
|
||
msgctxt "page:showcase/notion/index.html"
|
||
msgid "main/{ph0} · clipboard receiver"
|
||
msgstr "Haupt{ph0} * Zwischenablage-Empfänger"
|
||
|
||
#~ 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 "Wiederaufbau * Dino-Geschwindigkeit.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 ""
|
||
#~ "Wenn Node.js und npm verfügbar sind, führen Sie Setup aus, wählen Sie Ihren "
|
||
#~ "Codierungsagenten aus und überprüfen Sie die vorgeschlagenen Änderungen."
|
||
|
||
#~ msgctxt "page:first-investigation/index.html"
|
||
#~ msgid "A supplied example · Node.js and npm · Your coding agent"
|
||
#~ msgstr "Ein mitgeliefertes Beispiel * Node.js und npm · Ihr Codierungsagent"
|
||
|
||
#, 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 ""
|
||
#~ "Verwenden Sie ein Codierungsmittel wie Claude Code, Codex oder Cursor. Du "
|
||
#~ "brauchst Node.js und npm; der {ph0}setup Guide listet unterstützte Versionen"
|
||
#~ " auf{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}Seite * Renderer.js{ph1}{ph2}Notizen exportieren{ph3}{ph4}Nennen "
|
||
#~ "{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}Brücke * Vorspannung.js{ph1}{ph2}{ph3}{ph4}{ph5}Sendet eine benannte "
|
||
#~ "Nachricht an den Hauptprozess.{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}Handler · Haupt.js{ph1}{ph2}Notizen schreiben.csv{ph3}{ph4}Ruft den "
|
||
#~ "Formatierer auf {ph5} und schreibt die Datei.{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}Vorhersage der CSV für eine Notiz mit ID 1 und Titel Hallo, "
|
||
#~ "\"REA\". Führen Sie dann den toCsv Formatierer des Beispiels mit aus Node.js"
|
||
#~ " um es zu überprüfen. Zeigen Sie die Vorhersage und die tatsächliche Ausgabe"
|
||
#~ " an.{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 ""
|
||
#~ "Der Titel bleibt in einem Anführungszeichen; Jedes Anführungszeichen wird "
|
||
#~ "verdoppelt. Dies überprüft den Formatierer direkt mit Node.js ."
|
||
|
||
#~ msgctxt "page:first-investigation/index.html"
|
||
#~ msgid "Node.js · CSV formatter"
|
||
#~ msgstr "Node.js * CSV Formatierer"
|
||
|
||
#~ 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 ""
|
||
#~ "Sie benötigen Node.js 22 (22.19+), 24 (24.11+) oder 26+. npm wird mit "
|
||
#~ "Node.js geliefert."
|
||
|
||
#~ msgctxt "page:get-started/index.html"
|
||
#~ msgid "Don't have Node.js, or not sure?"
|
||
#~ msgstr "Sie haben Node.js nicht oder sind sich nicht sicher?"
|
||
|
||
#, 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 ""
|
||
#~ "Wenn {ph0} druckt v22.19+, v24.11+ oder v26+, Sie sind bereit. Wenn eine "
|
||
#~ "ältere Version oder \"nicht erkannt\" / \"Befehl nicht gefunden\" ausgegeben"
|
||
#~ " wird, installieren Sie Node.js 24 LITER:"
|
||
|
||
#, 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}Öffnen Sie das Beispiel{ph1} · {ph2}Herunterladen exportieren.js{ph3} ·"
|
||
#~ " {ph4}Notizen herunterladen.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 ""
|
||
#~ "Laden Sie das Beispiel herunter und entpacken Sie es. Das Archiv enthält die"
|
||
#~ " komplette {ph0} Ordner. Analysieren Sie es mit Node.js und npm; Electron "
|
||
#~ "wird für dieses Beispiel nicht benötigt."
|
||
|
||
#, 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 ""
|
||
#~ "Zum ersten Mal oder vermisst Node.js oder ein Kodierungsagent? {ph0}Befolgen"
|
||
#~ " Sie die Schritt-für-Schritt-Anleitung zur Einrichtung →{ph1}"
|
||
|
||
#, python-brace-format
|
||
#~ msgctxt "page:index.html"
|
||
#~ msgid "One question: {ph0}why does Calculator give 220 for 200 + 10%?{ph1}"
|
||
#~ msgstr "Zum Beispiel: {ph0}Warum ergibt 200 + 10% im Rechner 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}Verwenden REA inspizieren Windows Rechner. Warum ergibt 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 ""
|
||
#~ "Wir haben gesehen warum {ph0}200 + 10% ergibt 220.{ph1} Lassen Sie uns nun "
|
||
#~ "die Regeln für + und × wiederherstellen und ausprobieren."
|
||
|
||
#, 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 liest berechnet.exe{ph1}{ph2}Es startet die Taschenrechner-"
|
||
#~ "App{ph3}{ph4}Der Code öffnet sich {ph5}. Der Agent wählt dann die Bibliothek"
|
||
#~ " der installierten App aus.{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}Verwenden REA um aegis-v3.4.3 zu inspizieren.herunterladen. "
|
||
#~ "Finden Sie heraus, wie der sechsstellige Anmeldecode generiert wird, "
|
||
#~ "erklären Sie, warum er sich alle 30 Sekunden ändert, und erstellen Sie eine "
|
||
#~ "kleine Demo neu, in der ich die Uhrzeit ändern kann.{ph3}{ph4}{ph5}"
|
||
|
||
#~ msgctxt "page:showcase/notion/index.html"
|
||
#~ msgid "tab_browser_view/preload.js · API member"
|
||
#~ msgstr "tab_browser_view / Vorladen.js * API-Mitglied"
|
||
|
||
#~ msgctxt "page:showcase/notion/index.html"
|
||
#~ msgid "tab_browser_view/preload.js · IPC helper"
|
||
#~ msgstr "tab_browser_view / Vorladen.js * IPC-Helfer"
|
||
|
||
#~ msgctxt "page:showcase/notion/index.html"
|
||
#~ msgid "main/index.js · handler helper"
|
||
#~ msgstr "Hauptindex.js * Handler-Helfer"
|
||
|
||
#~ msgctxt "page:showcase/notion/index.html"
|
||
#~ msgid "main/index.js · clipboard receiver"
|
||
#~ msgstr "Hauptindex.js * Zwischenablage-Empfänger"
|
||
|
||
#~ msgctxt "page:first-investigation/index.html"
|
||
#~ msgid "main.js · lines 8–12"
|
||
#~ msgstr "wichtigsten.js * Zeilen 8-12"
|
||
|
||
#~ msgctxt "page:guides/browser/index.html"
|
||
#~ msgid "export.js · example source excerpt"
|
||
#~ msgstr "Export.js * Beispielquellenauszug"
|
||
|
||
#~ msgctxt "page:guides/javascript/index.html"
|
||
#~ msgid "renderer.js · example source"
|
||
#~ msgstr "CellRenderer.js * Beispielquelle"
|
||
|
||
#~ msgctxt "page:guides/javascript/index.html"
|
||
#~ msgid "preload.js · example source"
|
||
#~ msgstr "Vorspannung.js * Beispielquelle"
|
||
|
||
#~ msgctxt "page:guides/javascript/index.html"
|
||
#~ msgid "main.js · example source"
|
||
#~ msgstr "wichtigsten.js * Beispielquelle"
|
||
|
||
#~ msgctxt "page:index.html"
|
||
#~ msgid "REA · loaded index.js · selected lines"
|
||
#~ msgstr "REA · geladener Index.js * ausgewählte Zeilen"
|
||
|
||
#, 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}Verwenden REA um /absolute /path /to /app zu analysieren und"
|
||
#~ " zu erklären, wie Daten exportiert werden. Zeigen Sie die relevanten Code- "
|
||
#~ "und Quellspeicherorte an.{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}Installieren REA und verbinden Sie es mit diesem "
|
||
#~ "Codierungsagenten mit npx rea-Agenten @ neueste Einrichtung. Zeigen Sie mir "
|
||
#~ "den Einrichtungsplan zur Genehmigung und überprüfen Sie dann die "
|
||
#~ "Installation.{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}Herunterladen https://rea.tools/examples/notes-example.zip "
|
||
#~ "in einen neuen Beispielordner und entpacke ihn. Verwenden REA um "
|
||
#~ "herauszufinden, was passiert, wenn ich auf Notizen exportieren klicke. "
|
||
#~ "Zeigen Sie, wo Notizen.csv wird geschrieben, welche Felder es enthält und "
|
||
#~ "die relevanten Dateien und Zeilen.{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}Installieren REA und verbinden Sie es mit diesem "
|
||
#~ "Codierungsagenten mit npx rea-Agenten @ neueste Einrichtung. Zeigen Sie mir "
|
||
#~ "den Einrichtungsplan zur Genehmigung und überprüfen Sie dann die "
|
||
#~ "Installation.{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}Installieren REA und verbinden Sie es mit diesem "
|
||
#~ "Codierungsagenten mit npx rea-Agenten @ neueste Einrichtung. Zeigen Sie mir "
|
||
#~ "den Einrichtungsplan zur Genehmigung und überprüfen Sie dann die "
|
||
#~ "Installation.{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}Verwenden REA inspizieren https://rea.tools/. Klonen Sie "
|
||
#~ "diese Website für mich.{ph3}{ph4}{ph5}"
|
||
|
||
#~ msgctxt "figure:ctf-mask-equation.svg"
|
||
#~ msgid "code[21] = 55"
|
||
#~ msgstr "schlüssel [21] = 55"
|
||
|
||
#~ msgctxt "figure:dx-ball-sound-pan-investigation.svg"
|
||
#~ msgid "0x00406400"
|
||
#~ msgstr "0x00406400"
|
||
|
||
#~ msgctxt "figure:dx-ball-sound-pan-investigation.svg"
|
||
#~ msgid "× pan_scale"
|
||
#~ msgstr "× skalieren"
|
||
|
||
#, python-brace-format
|
||
#~ msgctxt "shared"
|
||
#~ msgid "{ph0}REA{ph1}{ph2}Reverse Engineer Anything{ph3}"
|
||
#~ msgstr "{ph0} REA{ph1}{ph2} Alles zurückentwickeln {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 ""
|