rea/website/locales/de/messages.po

13595 lines
492 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

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

#
msgid ""
msgstr ""
"Project-Id-Version: REA website\n"
"Language: 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\&lt;you&gt;\AppData\Local\Programs\&lt;App&gt;\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/&lt;App&gt;.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/&lt;App&gt;/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 ""