13447 lines
570 KiB
Plaintext
13447 lines
570 KiB
Plaintext
#
|
||
msgid ""
|
||
msgstr ""
|
||
"Project-Id-Version: REA website\n"
|
||
"Language: uk\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 "Перейти до змісту"
|
||
|
||
#. {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}Головний{ph1} сторінка / Блог"
|
||
|
||
#: website/public/blog/index.html:182
|
||
msgctxt "page:blog/index.html"
|
||
msgid "Blog."
|
||
msgstr "Блог."
|
||
|
||
#: website/public/blog/index.html:183
|
||
msgctxt "page:blog/index.html"
|
||
msgid "Thoughts on reverse engineering."
|
||
msgstr "Думки про реверс-інжиніринг."
|
||
|
||
#. {ph0}: <br />
|
||
#: website/public/blog/index.html:187
|
||
#, python-brace-format
|
||
msgctxt "page:blog/index.html"
|
||
msgid "Game reconstruction{ph0}Essay"
|
||
msgstr "Реконструкція гри{ph0}Вигадування"
|
||
|
||
#: website/public/blog/index.html:189
|
||
msgctxt "page:blog/index.html"
|
||
msgid "The industrial revolution in reverse engineering"
|
||
msgstr "Промислова революція в області реверс-інжинірингу"
|
||
|
||
#: 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 ""
|
||
"Чому мене навчив посібник з оновлення та реконструкції TH08, TH095 та TH04 "
|
||
"про агентів, перевірку та знання, які використовуються в різних проектах."
|
||
|
||
#: website/public/blog/index.html:195
|
||
msgctxt "page:blog/index.html"
|
||
msgid "Read the article"
|
||
msgstr "Прочитайте статтю"
|
||
|
||
#: website/public/blog/index.html:198
|
||
msgctxt "page:blog/index.html"
|
||
msgid "By N0zoM1z0 · 10 October 2026"
|
||
msgstr "Автор: N0zoM1z0 · 10 жовтня 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} Топ"
|
||
|
||
#: website/public/blog/index.html:6
|
||
msgctxt "page:blog/index.html"
|
||
msgid "REA Blog — Thoughts on Reverse Engineering"
|
||
msgstr "Блог REA - думки про реверс-інжиніринг"
|
||
|
||
#: website/public/blog/index.html:7
|
||
msgctxt "page:blog/index.html"
|
||
msgid ""
|
||
"Thoughts on reverse engineering, drawing on practical experience with REA "
|
||
"and AI agents."
|
||
msgstr ""
|
||
"Роздуми про реверс-інжиніринг, засновані на практичному досвіді роботи з REA"
|
||
" і агентами штучного інтелекту."
|
||
|
||
#: 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-Дізнайтеся, як працює програмне забезпечення. Зворотне проектування за "
|
||
"допомогою вашого програміста."
|
||
|
||
#: 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"
|
||
|
||
#: 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 "Основна навігація"
|
||
|
||
#: 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 на 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 в Discord"
|
||
|
||
#: 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 в X"
|
||
|
||
#: website/public/blog/index.html:217
|
||
msgctxt "page:blog/index.html"
|
||
msgid "Back to top"
|
||
msgstr "Нагору"
|
||
|
||
#: website/public/blog/touhou-reconstruction/index.html:99
|
||
msgctxt "page:blog/touhou-reconstruction/index.html"
|
||
msgid "Skip to content"
|
||
msgstr "Перейти до змісту"
|
||
|
||
#. {ph0}: <a href="../../">
|
||
#. {ph1}: </a>
|
||
#. {ph2}: <a href="../">
|
||
#. {ph3}: </a>
|
||
#: website/public/blog/touhou-reconstruction/index.html:181
|
||
#, python-brace-format
|
||
msgctxt "page:blog/touhou-reconstruction/index.html"
|
||
msgid "{ph0}Home{ph1} / {ph2}Blog{ph3} / Touhou reconstruction"
|
||
msgstr "{ph0}Головний{ph1} сторінка / {ph2}Блог{ph3} / Реконструкція Тохоу"
|
||
|
||
#: website/public/blog/touhou-reconstruction/index.html:185
|
||
msgctxt "page:blog/touhou-reconstruction/index.html"
|
||
msgid "Essay · Touhou reconstruction"
|
||
msgstr "Есе · Реконструкція Тохоу"
|
||
|
||
#: website/public/blog/touhou-reconstruction/index.html:186
|
||
msgctxt "page:blog/touhou-reconstruction/index.html"
|
||
msgid "The industrial revolution in reverse engineering."
|
||
msgstr "Промислова революція в області реверс-інжинірингу."
|
||
|
||
#: website/public/blog/touhou-reconstruction/index.html:187
|
||
msgctxt "page:blog/touhou-reconstruction/index.html"
|
||
msgid "By N0zoM1z0 · 10 October 2026"
|
||
msgstr "Автор: N0zoM1z0 · 10 жовтня 2026"
|
||
|
||
#: website/public/blog/touhou-reconstruction/index.html:189
|
||
msgctxt "page:blog/touhou-reconstruction/index.html"
|
||
msgid "Takeaway"
|
||
msgstr "Головне"
|
||
|
||
#. {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}Надайте агентам самостійність у проведенні розслідування.{ph1} "
|
||
"Встановіть чітку мету та критерії прийнятності, а потім дозвольте агенту "
|
||
"вирішити, що робити далі."
|
||
|
||
#. {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}Використовуйте сховище та Git як робочу пам'ять.{ph1} Зберігайте логіку"
|
||
" в коді. Контрольні точки Git дозволяють продовжити наступний сеанс після "
|
||
"завершення діалогу."
|
||
|
||
#. {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}Дозвольте доказам вирішити, що ви стверджуєте.{ph1} Переконливе "
|
||
"пояснення все ще потребує перевірки. \"Невідомо\" - це правильна відповідь, "
|
||
"коли докази неповні."
|
||
|
||
#. {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}Перевірте також посилання для перевірки (oracle).{ph1} Спробуйте "
|
||
"варіанти, які він повинен відхилити. Якщо помилка не виявлена, перегляньте "
|
||
"попередні результати, які залежали від неї."
|
||
|
||
#. {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}Ми знаходимося на зорі промислової революції в RE.{ph1} Методи все ще "
|
||
"розробляються. Нам ще багато чого належить вивчити."
|
||
|
||
#: website/public/blog/touhou-reconstruction/index.html:223
|
||
msgctxt "page:blog/touhou-reconstruction/index.html"
|
||
msgid "How experience compounds"
|
||
msgstr "Як досвід з'єднує"
|
||
|
||
#. {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}Управління{ph1} персоналом * мета і критерії прийнятності"
|
||
|
||
#: website/public/blog/touhou-reconstruction/index.html:312
|
||
msgctxt "page:blog/touhou-reconstruction/index.html"
|
||
msgid "Autonomy"
|
||
msgstr "Самостійність"
|
||
|
||
#: website/public/blog/touhou-reconstruction/index.html:313
|
||
msgctxt "page:blog/touhou-reconstruction/index.html"
|
||
msgid "Agent"
|
||
msgstr "Агент"
|
||
|
||
#. {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 "Виберіть експеримент.{ph0}Висуньте гіпотезу."
|
||
|
||
#: website/public/blog/touhou-reconstruction/index.html:317
|
||
msgctxt "page:blog/touhou-reconstruction/index.html"
|
||
msgid "Verification"
|
||
msgstr "Перевірка"
|
||
|
||
#: website/public/blog/touhou-reconstruction/index.html:318
|
||
msgctxt "page:blog/touhou-reconstruction/index.html"
|
||
msgid "Oracle"
|
||
msgstr "Еталон перевірки"
|
||
|
||
#. {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 "Тестування на{ph0}конкретні посилання."
|
||
|
||
#: website/public/blog/touhou-reconstruction/index.html:322
|
||
msgctxt "page:blog/touhou-reconstruction/index.html"
|
||
msgid "Repository"
|
||
msgstr "Репозиторій"
|
||
|
||
#: website/public/blog/touhou-reconstruction/index.html:323
|
||
msgctxt "page:blog/touhou-reconstruction/index.html"
|
||
msgid "Working memory"
|
||
msgstr "Робоча пам’ять"
|
||
|
||
#. {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 "Кодекс, докази,{ph0}перевірки та уроки."
|
||
|
||
#. {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 "Невідповідність{ph0}{ph1}Перегляньте гіпотезу{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 "Краще{ph0}{ph1}вихідна точка{ph2}"
|
||
|
||
#: website/public/blog/touhou-reconstruction/index.html:332
|
||
msgctxt "page:blog/touhou-reconstruction/index.html"
|
||
msgid "Reuse"
|
||
msgstr "Повторне використання"
|
||
|
||
#. {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}Минути{ph1} * Зберегти результат і його докази"
|
||
|
||
#: 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 ""
|
||
"Кожен наступний проект стає найкращою відправною точкою. Це включає "
|
||
"виправлення перевірок, коли ми виявляємо прогалини."
|
||
|
||
#: website/public/blog/touhou-reconstruction/index.html:352
|
||
msgctxt "page:blog/touhou-reconstruction/index.html"
|
||
msgid "In this article"
|
||
msgstr "У цій статті"
|
||
|
||
#. {ph0}: <a href="#august">
|
||
#. {ph1}: </a>
|
||
#: website/public/blog/touhou-reconstruction/index.html:354
|
||
#, python-brace-format
|
||
msgctxt "page:blog/touhou-reconstruction/index.html"
|
||
msgid "{ph0}August 2026{ph1}"
|
||
msgstr "{ph0}Серпень 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: продовження{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}Два підходи{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: рецептура{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: різні архітектури{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}Від точного до читабельного{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}Промисловий зсув{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}Що стає можливим{ph1}"
|
||
|
||
#: website/public/blog/touhou-reconstruction/index.html:368
|
||
msgctxt "page:blog/touhou-reconstruction/index.html"
|
||
msgid "What changed in August 2026"
|
||
msgstr "Що змінилося в серпні 2026 року"
|
||
|
||
#: 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 ""
|
||
"До цієї роботи я багато займався зворотним проектуванням вручну. Я перевіряв"
|
||
" функцію, поки не знайшов пояснення, а потім перевірив це пояснення в "
|
||
"програмі. Просуваючись далі, я витрачав більше свого часу на наступну "
|
||
"функцію. Це також означало, що я тримав у голові все більш об'ємну картину."
|
||
|
||
#: 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 ""
|
||
"Велика частина моєї роботи пов'язана з іграми. Я реконструюю їх, щоб я міг "
|
||
"зрозуміти їх поведінку і врешті-решт перенести на програмний порт або мод. "
|
||
"Саме цей досвід лежить в основі цієї статті. Цей метод може бути корисним в "
|
||
"інших областях, але в кожній області потрібно встановити, що можна "
|
||
"перевірити за допомогою надійних посилань."
|
||
|
||
#: 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 ""
|
||
"У серпні 2026 року я почав серйозно вивчати re, керований агентами. Я хотів "
|
||
"побачити, як далеко може зайти агент, маючи доступ до програми та звичайних "
|
||
"інструментів розробки. Touhou reconstruction дав мені значний проект, де я "
|
||
"міг це зрозуміти."
|
||
|
||
#: 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 ""
|
||
"Перші результати були вражаючими. Розслідування могло б тривати без моєї "
|
||
"участі у виборі кожного окремого кроку. Невдале порівняння могло б "
|
||
"відправити агента до іншого абонента. Можна було б написати невелику "
|
||
"діагностику і використати результат, щоб вирішити, що робити далі. Надання "
|
||
"цієї свободи змінило ситуацію на краще: я зміг приділяти більше уваги "
|
||
"напрямку проекту і тому, чи заслуговують довіри його перевірки."
|
||
|
||
#: 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 ""
|
||
"В першу чергу мою увагу привернув темп. Потім я почав замислюватися над тим,"
|
||
" що залишиться після поточного проекту. Чи буде в наступній грі корисно все,"
|
||
" що ми тільки що дізналися?"
|
||
|
||
#: website/public/blog/touhou-reconstruction/index.html:405
|
||
msgctxt "page:blog/touhou-reconstruction/index.html"
|
||
msgid "TH08: building on human work"
|
||
msgstr "TH08: опора на людську працю"
|
||
|
||
#. {ph0}: <a href="https://github.com/N0zoM1z0/th08">
|
||
#. {ph1}: </a>
|
||
#. {ph2}: <a href="https://github.com/GensokyoClub/th08" >
|
||
#. {ph3}: </a >
|
||
#: website/public/blog/touhou-reconstruction/index.html: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} TH08{ph1} , \"Вічна ніч\", починався як продовження "
|
||
"{ph2}реконструкція{ph3} GensokyoClub. Їх відкрите джерело дало мені значну "
|
||
"основу. Це прийшло разом із знанням конструкції та історією внеску, яку я "
|
||
"зберіг у продовженні."
|
||
|
||
#: 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 ""
|
||
"Імпортована історія закінчується на загальнодоступній контрольній точці 10 "
|
||
"серпня. Моє самостійне продовження почалося 13 серпня. До 19 серпня в "
|
||
"журналі були зареєстровані вихідні дані для всіх 1107 ідентифікованих "
|
||
"ігрових функцій."
|
||
|
||
#: 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 ""
|
||
"Відтворюваний порт реконструкції Linux був випущений 24 серпня, приблизно "
|
||
"через одинадцять днів після початку роботи над продовженням. Потім була "
|
||
"випущена веб-версія. 64-розрядна версія Linux для власної версії вийшла 30 "
|
||
"Серпня."
|
||
|
||
#: 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 ""
|
||
"Мене вразило те, що в результаті роботи була створена програма, яку могли "
|
||
"запускати люди. Щоб досягти цього, потрібно було вирішити проблеми, що "
|
||
"виходять за рамки окремої функції. Навіть якщо дві функції виглядали "
|
||
"коректно окремо, вони могли випадково використовувати окремі копії state, "
|
||
"які повинні були бути спільними."
|
||
|
||
#. {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 ""
|
||
"Це зробило перевірку посилань центральною в роботі. Я називаю їх "
|
||
"{ph0}перевірочними посиланнями (оракулами){ph1}. Порівняння коду може "
|
||
"сказати нам, чи відновлена функція відтворює оригінальні інструкції. "
|
||
"Перевірка під час виконання може сказати нам, чи реалізований маршрут "
|
||
"досягає очікуваного стану. Агент пропонує пояснення та перевіряє його; "
|
||
"невідповідність дає йому можливість дослідити щось конкретне."
|
||
|
||
#: website/public/blog/touhou-reconstruction/index.html:440
|
||
msgctxt "page:blog/touhou-reconstruction/index.html"
|
||
msgid "An exact match with the wrong constant"
|
||
msgstr "Точний збіг з неправильною константою"
|
||
|
||
#: 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 ""
|
||
"Посилання для перевірки (oracle)-це програмне забезпечення, яке хтось "
|
||
"написав. TH08 дав мені чітке нагадування про те, наскільки це програмне "
|
||
"забезпечення може залежати."
|
||
|
||
#. {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 ""
|
||
"У вересні помилка, про яку повідомив порт комутатора, знову призвела до "
|
||
"автоматичного збору предметів. У відновленому джерелі потужність програвача "
|
||
"була перевірена на рівні {ph0}. В оригіналі використовувалося значення {ph1}"
|
||
" - поріг максимальної потужності."
|
||
|
||
#: 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 ""
|
||
"Нормальна потужність невід'ємна, тому перевірка відновленої потужності "
|
||
"фактично завжди виконувалася. Вище лінії збору гра могла залучати предмети, "
|
||
"не вимагаючи максимальної потужності. Інші винятки з умови були вірними. Ця "
|
||
"константа змінила поведінку."
|
||
|
||
#. {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}Однак функція вже пройшла точне порівняння.{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 ""
|
||
"При перестроюванні константа може бути поміщена за іншою адресою. Інструмент"
|
||
" порівняння враховував це, коригуючи адреси в складених інструкціях, перш "
|
||
"ніж порівнювати їх з оригінальними. Але він ніколи не перевіряв значення з "
|
||
"плаваючою комою, збережене за вказаною адресою."
|
||
|
||
#. {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 ""
|
||
"Це залишило прогалину в перевірці. Це може призвести до того, що відновлена "
|
||
"команда вказує на початкове значення {ph0}, тоді як джерело все ще вказувало"
|
||
" {ph1}. Байти інструкції збіглися. Джерело мав на увазі щось інше."
|
||
|
||
#. {ph0}: <a href="https://github.com/N0zoM1z0/th08/pull/11" >
|
||
#. {ph1}: </a >
|
||
#. {ph2}: <a href="https://github.com/N0zoM1z0/th08/pull/13">
|
||
#. {ph3}: </a>
|
||
#: website/public/blog/touhou-reconstruction/index.html: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 ""
|
||
"Виправлення, випущене {ph0}2 вересня, виправило{ph1} вихідний код і змусило "
|
||
"при порівнянні перевіряти фактичні байти константи, на яку посилається "
|
||
"посилання. Потім було проведено більше {ph2}широкий аудит{ph3}, в ході якого"
|
||
" було проаналізовано 1548 посилань на константи з плаваючою комою. Було "
|
||
"виявлено ще дванадцять неправильних посилань у п'яти прийнятих функціях."
|
||
|
||
#: 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 ""
|
||
"При порівнянні тепер перевіряється кожна така константа з плаваючою комою. "
|
||
"Тести використовують відомі неправильні значення, щоб переконатися, що вони "
|
||
"відхилені. Нам також довелося переглянути результати, які пройшли більш "
|
||
"слабку перевірку."
|
||
|
||
#. {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}Посилання для перевірки (oracle) також потребувало відновлення.{ph1} Її"
|
||
" виправлення було частиною оновлення гри."
|
||
|
||
#: 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 ""
|
||
"Це важливо, коли команда складається в основному з однієї людини, яка працює"
|
||
" з агентами. Я не можу особисто перевіряти кожен рядок, який вони створюють,"
|
||
" тому багато в чому я довіряю їх перевіркам. \"Сліпа пляма\" в системі "
|
||
"загального контролю (oracle) може вплинути на багато розслідувань, перш ніж "
|
||
"я це помічу. Я повинен зрозуміти, що насправді перевіряє засіб перевірки, і "
|
||
"протестувати його на предмет випадків, які повинні завершитися невдачею."
|
||
|
||
#. {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 ""
|
||
"У міру продовження роботи ці перевірки ставали частиною репозиторію. Так "
|
||
"само і причини змін вихідного коду і примітки, які дозволяли більш пізнього "
|
||
"сеансу продовжити роботу з того місця, на якому зупинилася попередня сесія. "
|
||
"{ph0}Репозиторій вихідного коду ставав робочою пам'яттю проекту.{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}Успішний запуск пакета дозволив нам відновити код та покращити "
|
||
"середовище для наступного пакета.{ph1}"
|
||
|
||
#: website/public/blog/touhou-reconstruction/index.html:522
|
||
msgctxt "page:blog/touhou-reconstruction/index.html"
|
||
msgid "Two different ideas of reconstruction"
|
||
msgstr "Дві різні ідеї реконструкції"
|
||
|
||
#. {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 ""
|
||
"{ph0}Публічний сайт GensokyoClub явно висловлює{ph1} свою незгоду з такого "
|
||
"роду роботою. У повідомленні повідомляється, що подальша розробка буде "
|
||
"вестися в приватному порядку до завершення. В одному уривку сказано:"
|
||
|
||
#: 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 ""
|
||
"Зростання кількості шахраїв (декомпіляторів та портаторів штучного "
|
||
"інтелекту) у цій галузі на основі нашої роботи створює погану картину для "
|
||
"майбутніх зусиль з декомпіляції…"
|
||
|
||
#: 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 ""
|
||
"У повідомленні також описується психологічне навантаження на супроводжуючих."
|
||
" Їх політика щодо вкладів виключає запити на перенесення, зроблені в "
|
||
"основному за допомогою штучного інтелекту. Вони присвятили свій вільний час "
|
||
"складній роботі, і ця робота допомогла мені продовжувати працювати. Я "
|
||
"поважаю зусилля, які стоять за цим. Розбіжності, які я хочу обговорити, "
|
||
"стосуються того, як повинна проходити реконструкція і як слід оцінювати "
|
||
"внесок."
|
||
|
||
#: 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 ""
|
||
"У звичному мені ручному робочому процесі розробка розуміння функції і її "
|
||
"реконструкція зазвичай покладалися на одного і того ж людини. Проект значною"
|
||
" мірою залежав від досвіду цієї людини. Довіра до розробника мала значення, "
|
||
"оскільки більша частина міркувань виникла під час його роботи."
|
||
|
||
#: 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 ""
|
||
"Існуючі проекти вже зберігають знання у своїх оригінальних текстах та "
|
||
"інструментах для створення. Для мене змінилося те, що агент може "
|
||
"використовувати ці знання для проведення наступного розслідування "
|
||
"самостійно."
|
||
|
||
#: 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 ""
|
||
"У своєму продовженні я визначаю мету і стандарт прийняття результату. Агент "
|
||
"має широку свободу у проведенні розслідування. Потім запропонована "
|
||
"реконструкція повинна пройти відповідні перевірки. Я хочу, щоб інша людина "
|
||
"могла проаналізувати, чому ми вибрали певну реалізацію, навіть якщо агент "
|
||
"зробив більшу частину роботи."
|
||
|
||
#: 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 ""
|
||
"Це може бути важким переходом. Роки ретельної роботи можуть стати основою "
|
||
"для подальшого розвитку, яке буде просуватися набагато швидше. У зв'язку з "
|
||
"цим виникають серйозні питання про кредитоспроможність. Це також змінює те, "
|
||
"що розробники повинні знати, перш ніж приймати внесок."
|
||
|
||
#: 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 ""
|
||
"Аналогія з промисловістю допомагає мені задуматися над цим. У ремеслі більша"
|
||
" частина процесу залежить від майстерності людини, яка його виконує. "
|
||
"Обладнання змінюється там, де потрібна ця навичка. Хтось все одно повинен "
|
||
"розробляти процес і розпізнавати, коли його результати неправильні. Різні "
|
||
"спільноти можуть вибрати, яку частину цих змін вони хочуть взяти на себе."
|
||
|
||
#: 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 ""
|
||
"Мій вибір - продовжувати відкрито, враховуючи успадковану роботу та "
|
||
"зберігаючи її історію. Я хочу, щоб нова робота була доступна для "
|
||
"рецензування. Це дає нам можливість оцінити, наскільки далеко може пройти "
|
||
"цей підхід, і навчитися з того, що на цьому шляху йде не так."
|
||
|
||
#. {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 ""
|
||
"Джерело: {ph0}Повідомлення GensokyoClub на README{ph1}, перевірене 10 жовтня"
|
||
" 2026 року, і його {ph2}Політика щодо внесків{ph3}. Цитата є скороченою "
|
||
"витримкою. {ph4}Титри та Походження{ph5} TH08 вказують на межу продовження."
|
||
|
||
#: website/public/blog/touhou-reconstruction/index.html:606
|
||
msgctxt "page:blog/touhou-reconstruction/index.html"
|
||
msgid "TH095: experience starts compounding"
|
||
msgstr "TH095: досвід починає накопичуватися"
|
||
|
||
#. {ph0}: <a href="https://github.com/N0zoM1z0/th095">
|
||
#. {ph1}: </a>
|
||
#: website/public/blog/touhou-reconstruction/index.html: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} TH095{ph1}, Shoot the Bullet, значно спростив сприйняття цього "
|
||
"досвіду. 29 серпня почалося його оновлення з нульовими підтвердженими "
|
||
"ігровими функціями в реєстрі. Ми все ще мали вивчити гру. Але ми вже знали "
|
||
"набагато більше про те, як розпочати реконструкцію та як підтримувати її в "
|
||
"робочому стані."
|
||
|
||
#: 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 ""
|
||
"До 7 вересня всі 697 ідентифікованих ігрових функцій мали вихідний код. До 8"
|
||
" вересня 696 були прийняті як точні порівняння. 9 вересня вся програма була "
|
||
"підключена. Реконструкція Windows i386 була позначена як відтворювана 10 "
|
||
"вересня, приблизно через дванадцять днів після ініціалізації."
|
||
|
||
#: 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 ""
|
||
"Я знайшов це більш захоплюючим, ніж швидкість першого проекту. Нова мета "
|
||
"могла б отримати вигоду від роботи над іншою грою. Досвід вже був присутній "
|
||
"в інструментах і в тому, як був організований проект."
|
||
|
||
#: 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 ""
|
||
"Наприклад, TH08 навчив нас звертати увагу на зібрану програму з самого "
|
||
"початку. Якщо кілька відновлених функцій залежать від одного стану, їх "
|
||
"ізольоване порівняння залишає відкритим важливе питання. Нам потрібно "
|
||
"побачити, як вони працюють разом. Цей урок допоміг нам сформулювати підхід "
|
||
"до побудови всієї програми TH095."
|
||
|
||
#: 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 ""
|
||
"Урок, який залишається в моїй голові, корисний, поки я там. Як тільки він "
|
||
"стає перевіркою, що можна запустити інший сеанс, він може продовжувати "
|
||
"допомагати і після того, як я перейду далі. Наступний агент може використати"
|
||
" результат, не повторюючи розслідування, яке призвело до нього."
|
||
|
||
#: 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 ""
|
||
"Помилка, пов'язана з константою з плаваючою комою, також стосується цієї "
|
||
"пам'яті. Це пояснює, чому перевірка посилання також вимагає перевірки даних,"
|
||
" які стоять за ним. Збереження цього виправлення в коді допомагає подальшим "
|
||
"проектам уникнути\" сліпої плями \" Старої перевірки."
|
||
|
||
#. {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}Цей метод стає частиною вихідного матеріалу для наступної гри.{ph1} У "
|
||
"наступному проекті ми можемо витратити більше зусиль, щоб внести щось "
|
||
"справді нове у свою мету."
|
||
|
||
#: 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 ""
|
||
"Ті ж переваги доступні для тих, хто приєднається пізніше. Вони можуть "
|
||
"переглянути рішення та повторно перевірити його, перш ніж продовжувати "
|
||
"роботу. Їм не потрібно відновлювати всю історію проекту, щоб з'ясувати, чому"
|
||
" вихідний код виглядає саме так."
|
||
|
||
#: 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: робочий процес функціонує відповідно до іншої архітектури"
|
||
|
||
#. {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} TH04{ph1}, Розробник Lotus Land Story, переніс цю роботу в епоху PC-98"
|
||
" для DOS. Тепер метою було 16-розрядне середовище з чотирма взаємодіючими "
|
||
"програмами. Для розуміння поведінки апаратного забезпечення були потрібні "
|
||
"інші дані, отримані з ігор Windows. Існуючий {ph2}робота{ph3} за ReC98 також"
|
||
" дала нам цінні знання та вихідні матеріали."
|
||
|
||
#: 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 ""
|
||
"Відновлення DOS зараз працює. Під час мого ручного тестування я відтворив "
|
||
"усі звичайні маршрути до їх закінчення та перевірив збереження. В даний час "
|
||
"використовується власний 64-розрядний порт. При установці робочої версії DOS"
|
||
" спочатку вказується посилання на цей порт."
|
||
|
||
#: 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 ""
|
||
"Архітектура змінила те, що нам потрібно було дослідити. Це також змінило "
|
||
"компілятор та час виконання, за допомогою яких ми перевіряли свою роботу. "
|
||
"Але агент все-таки міг довести питання до результату і використати цей "
|
||
"результат для наступного експерименту."
|
||
|
||
#: 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 ""
|
||
"Розглянемо перехід від ігрового процесу до завершення. Нам потрібно знати, "
|
||
"який стан переходить через цю межу і яка програма відповідає за це. Це те, "
|
||
"що ми можемо дослідити на прикладі продукту DOS. Як тільки докази та чеки "
|
||
"будуть доступні, агент зможе опрацювати питання приблизно так само, як це "
|
||
"було з заголовком Windows."
|
||
|
||
#: 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 ""
|
||
"Ось чому TH04 важливий для нашого аргументу. Суттєва зміна платформи не "
|
||
"змусила нас почати все спочатку з нового способу роботи. Архітектура "
|
||
"визначила проблему; робочий процес все ще давав нам можливість її вирішити."
|
||
|
||
#: 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 ""
|
||
"Що стосується 64-розрядного порту, то тепер ми можемо порівняти нову "
|
||
"реалізацію з поведінкою, вже відновленою в DOS. Знання, отримані в "
|
||
"результаті реконструкції, дають порту основу для подальшого розвитку."
|
||
|
||
#. {ph0}: <a
|
||
#. href="https://github.com/N0zoM1z0/th04/blob/bb9faca54e2eb3c0d6c757c75d59ac29d2cd5e93/docs/RE_HANDOFF.md"
|
||
#. >
|
||
#. {ph1}: </a >
|
||
#. {ph2}: <a href="https://github.com/N0zoM1z0/th04/tree/port/modern-64" >
|
||
#. {ph3}: </a >
|
||
#: website/public/blog/touhou-reconstruction/index.html: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 ""
|
||
"Стан проекту на 10 жовтня 2026 року: {ph0}реконструкція DOS та ручне "
|
||
"тестування{ph1} · {ph2}64-розрядний порт{ph3}. Порт знаходиться в розробці."
|
||
|
||
#: website/public/blog/touhou-reconstruction/index.html:717
|
||
msgctxt "page:blog/touhou-reconstruction/index.html"
|
||
msgid "From exact code to readable code"
|
||
msgstr "Від точного коду до читабельного коду"
|
||
|
||
#: 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 ""
|
||
"Як тільки реконструкція завершиться, я хочу, щоб хтось інший міг це "
|
||
"зрозуміти."
|
||
|
||
#: 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 ""
|
||
"Для мене асемблер і необроблені зміщення здаються старими друзями. Я "
|
||
"розумію, що це дещо незвичне визначення слова \"читабельний\". Більшість "
|
||
"людей воліли б слідувати логіці гри, не тримаючи в голові розташування "
|
||
"виконуваного файлу в пам'яті."
|
||
|
||
#. {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 ""
|
||
"Саме тут потрібно {ph0}семантична реконструкція{ph1}. Відновлене поле все ще"
|
||
" може бути відоме в основному з його зміщення. Ми стежимо за тим, як він "
|
||
"використовується в грі, поки не зможемо пояснити його роль. Тоді ми можемо "
|
||
"дати йому значущу назву та тип, який відповідає доказам. Ми аргументуємо "
|
||
"відповідно до джерела, щоб наступна людина могла зрозуміти, звідки походить "
|
||
"ця інтерпретація."
|
||
|
||
#: 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 ""
|
||
"Це стає особливо важливим для програмного порту. Абсолютна адреса вказує "
|
||
"мені, де щось було у Старому виконуваному файлі. Це мало допомагає "
|
||
"64-розрядної реалізації вирішити, якому об'єкту має належати цей стан. Щоб "
|
||
"безпечно змінити поведінку, нам потрібно відновити зв'язок, що стоїть за "
|
||
"старим доступом до пам'яті."
|
||
|
||
#: website/public/blog/touhou-reconstruction/index.html:743
|
||
msgctxt "page:blog/touhou-reconstruction/index.html"
|
||
msgid "The order I now use is:"
|
||
msgstr "Порядок, який я зараз використовую, такий:"
|
||
|
||
#. {ph0}: <strong>
|
||
#. {ph1}: </strong>
|
||
#: website/public/blog/touhou-reconstruction/index.html: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}Відновіть точну базову лінію.{ph1} Скомпілюйте відновлені фрагменти за "
|
||
"допомогою історичного компілятора. Порівняйте відповідний код та дані з "
|
||
"оригінальним виконуваним файлом. Запишіть невирішені відмінності, щоб "
|
||
"наступний етап мав чітку відправну точку."
|
||
|
||
#. {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}Створіть і грайте в неї на оригінальній платформі.{ph1} Об'єднайте ці "
|
||
"фрагменти в реальну програму, використовуючи оригінальну архітектуру і "
|
||
"компілятор. Використовуйте важливі елементи геймплея. Саме тут ми можемо "
|
||
"виявити проблеми із загальним станом або ініціалізацією, які були пропущені "
|
||
"при порівнянні ізольованих функцій."
|
||
|
||
#. {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}Реконструюйте семантику відповідно до обох посилань.{ph1} Виділіть одну"
|
||
" цілісну частину гри за раз і з'ясуйте, що означає Відновлене джерело. "
|
||
"Поліпшіть її уявлення, зберігши точні порівняння і відтворювану історичну "
|
||
"структуру."
|
||
|
||
#. {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}Створіть сучасний порт.{ph1} Перенесіть усталену поведінку в нове "
|
||
"середовище, наприклад, у власну 64-розрядну збірку. Реконструйована гра на "
|
||
"оригінальній платформі залишається еталоном для порівняння поведінки порту."
|
||
|
||
#. {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 ""
|
||
"Відтворювана збірка, отримана на другому етапі, стає {ph0}друге посилання "
|
||
"для перевірки (oracle){ph1} на третьому етапі. Перше посилання для перевірки"
|
||
" (oracle) перевіряє, чи все ще наш змінений вихідний код відтворює "
|
||
"відповідний вихідний код та дані. Другий перевіряє, що відновлена програма "
|
||
"як і раніше будує і поводиться коректно відповідно до обраних нами шляхами."
|
||
|
||
#: 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 ""
|
||
"Вони виявляють різні помилки. Зміна типу може призвести до зміни "
|
||
"згенерованих інструкцій. Зміна власника може призвести до того, що дві "
|
||
"частини гри використовуватимуть різні копії state. Якщо обидві перевірки "
|
||
"будуть доступні, агенту не вдасться провести розслідування, перш ніж "
|
||
"проводити подальший рефакторинг."
|
||
|
||
#: 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 ""
|
||
"Назва сама по собі вимагає підтвердження. Точне порівняння не може сказати "
|
||
"нам, чи дійсно поле означає \"Час невразливості\". Ми повинні встановити це "
|
||
"по тому, як гра його записує і використовує. Якщо значення залишається "
|
||
"невизначеним, нейтральний заголовок буде кориснішим для наступного читача, "
|
||
"ніж впевнене припущення."
|
||
|
||
#. {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 ""
|
||
"Ми вивчили цей порядок в ході роботи над проектами. TH08 вже мав доступні "
|
||
"для відтворення порти до деяких пізніших перевірок історичних платформ. Це "
|
||
"ускладнювало виявлення деяких дефектів. {ph0}Поточний робочий процес "
|
||
"фабрики{ph1} ставить збірку оригінальної платформи на перше місце, тому "
|
||
"semantic work може використовувати її як довідковий матеріал перед початком "
|
||
"перенесення."
|
||
|
||
#. {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}Точна реконструкція дає нам посилання. Семантична реконструкція "
|
||
"дозволяє використовувати відновлені знання.{ph1} Потім порт може "
|
||
"використовувати обидва."
|
||
|
||
#: website/public/blog/touhou-reconstruction/index.html:817
|
||
msgctxt "page:blog/touhou-reconstruction/index.html"
|
||
msgid "What makes this an industrial shift"
|
||
msgstr "Що робить це промисловим зрушенням"
|
||
|
||
#: 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 ""
|
||
"Ці проекти змінили напрямок моєї уваги. Після того, як агенти отримали "
|
||
"можливість проводити більшість розслідувань, покращення їх робочого "
|
||
"середовища стало однією з найкорисніших речей, які я міг зробити. Більш "
|
||
"досконалий інструмент міг би допомогти в будь-якій подальшій роботі, яка "
|
||
"його потребувала."
|
||
|
||
#: 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 ""
|
||
"Тут важлива самостійність. Корисний наступний крок часто стає зрозумілим "
|
||
"лише після невдалого експерименту. Агенту потрібна достатня свобода, щоб "
|
||
"досягти результату в несподіваному місці. Якщо йому доводиться чекати, поки "
|
||
"я пропишу кожен крок, більша частина роботи залишається залежною від моєї "
|
||
"уваги."
|
||
|
||
#: 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 ""
|
||
"Я очікую, що агент висуне неправильні гіпотези. Важливо те, чи зможемо ми "
|
||
"перевірити їх і навчитися з результату. Невдала перевірка повинна допомогти "
|
||
"йому зрозуміти помилку досить добре, щоб спробувати ще раз. Мені все ще "
|
||
"потрібно вирішити, чи зібрані дані відповідають етапу проекту."
|
||
|
||
#: 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 надає агенту доступ до інструментів аналізу. Питання про викликає об'єкт"
|
||
" функції може привести безпосередньо до перевірки цього викликає об'єкта. "
|
||
"Проект реконструкції надає компілятор і свої власні перевірки посилань. "
|
||
"Агент може використовувати їх, щоб протестувати запропоноване джерело та "
|
||
"перевірити, чи відповідає його пояснення дійсності."
|
||
|
||
#: 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 ""
|
||
"Помилка TH08 показує, чому ці перевірки самі по собі заслуговують на увагу "
|
||
"інженерів. Коли одне і те ж порівняння використовується в сотнях функцій, "
|
||
"пробіл у ньому може поширитися набагато далі, ніж помилка в одній "
|
||
"реалізації. Тестування засобу перевірки покращує зворотний зв'язок, "
|
||
"доступний для всієї подальшої роботи."
|
||
|
||
#. {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 ""
|
||
"Промислова аналогія має тут корисний історичний приклад. {ph0}У 1796 році "
|
||
"Боултон і Ватт представили індикатор для парової машини, який допомагав "
|
||
"регулювати клапани двигуна{ph1}. Версія для запису тиску відстежувала хід "
|
||
"поршня. Це зробило доступним для контролю внутрішній стан двигуна. Наші "
|
||
"інструменти порівняння служать тій же меті: вони дозволяють нам вивчати, що "
|
||
"робить обладнання, і одночасно вдосконалювати його."
|
||
|
||
#. {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}Ми знаходимося на ранній стадії цього промислового зсуву.{ph1} Більша "
|
||
"частина інфраструктури все ще знаходиться в стадії розробки. Агенти можуть "
|
||
"працювати швидше, ніж це передбачено нашими чеками, тому процес повинен "
|
||
"розвиватися паралельно з ними. Коли ми виявляємо дефект у загальному "
|
||
"інструменті, ми повинні його усунути та переглянути результати, на які він "
|
||
"вплинув. Наступний проект може успадкувати більш потужний інструмент."
|
||
|
||
#: 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 ""
|
||
"Також існує практична межа для будь-якого окремого діалогу. Він завершиться "
|
||
"до завершення масштабної реконструкції. Сховище вихідного коду повинно "
|
||
"забезпечувати можливість продовження наступного сеансу без втрати причини, "
|
||
"по якій було прийнято останнє рішення."
|
||
|
||
#. {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 ""
|
||
"Проект {ph0}Touhou Reconstruction Factory{ph1} виріс з цієї потреби. Він дає"
|
||
" проектам можливість спільно проводити перевірки і витягувати уроки. Робота "
|
||
"над однією грою може покращити стартові умови для іншої."
|
||
|
||
#: 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 ""
|
||
"Саме це робить аналогію з промисловістю значущою для мене. Досвід стає "
|
||
"частиною інструментів, які можуть використовувати інші. Вдосконалення цих "
|
||
"інструментів впливає на те, скільки може зробити наступна людина — або "
|
||
"наступний агент."
|
||
|
||
#: website/public/blog/touhou-reconstruction/index.html:900
|
||
msgctxt "page:blog/touhou-reconstruction/index.html"
|
||
msgid "The projects we can now consider"
|
||
msgstr "Проекти, які ми тепер можемо розглянути"
|
||
|
||
#: 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 ""
|
||
"Темп важливий, оскільки він змінює рішення про початок роботи. Гра може бути"
|
||
" цікавою для реінжинірингу і все одно вимагати від мене більше уваги, ніж я "
|
||
"міг би їй приділити. Багато проектів так і залишаться ідеями."
|
||
|
||
#: 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 ""
|
||
"Тепер я бачу спосіб просунути такий проект за допомогою повторних "
|
||
"досліджень. Отримання робочої реконструкції робить порт програмного "
|
||
"забезпечення більш практичним. Відновлення читабельної семантики полегшує "
|
||
"комусь іншому вивчення мода. Зусилля, витрачені на розуміння гри, можуть "
|
||
"окупитися після запуску першої версії."
|
||
|
||
#. {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 ""
|
||
"Тепер я дивлюся на незнайому програму і запитую: {ph0}який доступ, зворотній"
|
||
" зв'язок та накопичені знання дозволили б агенту надійно працювати з "
|
||
"нею?{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 ""
|
||
"Це питання змушує мене замислитися над проектами, які я б раніше залишив у "
|
||
"спокої. Кожен з них може покращити наш підхід до наступного. Я хочу "
|
||
"продовжувати вивчати, як далеко це може нас завести."
|
||
|
||
#: website/public/blog/touhou-reconstruction/index.html:929
|
||
msgctxt "page:blog/touhou-reconstruction/index.html"
|
||
msgid "Project milestones and sources"
|
||
msgstr "Основні етапи та джерела реалізації проекту"
|
||
|
||
#: 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 ""
|
||
"Дати описують зареєстровані контрольні точки проекту, звірені з "
|
||
"загальнодоступною історією GitHub на 10 жовтня 2026 року. Минулий час-це "
|
||
"календарний час між фіксаціями. Наявність вихідного коду, точні порівняння, "
|
||
"збірка та результат виконання - все це вказує на різні етапи."
|
||
|
||
#. {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} TH08:{ph1} {ph2}продовження від 13 серпня{ph3}, {ph4}вихідний код від "
|
||
"19 {ph5}серпня, порт Linux{ph6} від 24{ph7} серпень, {ph8}веб-версія від 26 "
|
||
"серпня{ph9} і {ph10}64-розрядний реліз Linux від 30 Серпня{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} TH095 :{ph1} оригінальна бухгалтерська книга за {ph2}29 серпня, "
|
||
"{ph3}Початкова бухгалтерська{ph4} книга за 7 вересня{ph5}, {ph6}порівняння "
|
||
"за 8 вересня{ph7}, {ph8}прив'язка за 9 вересня{ph9} і {ph10}запис про "
|
||
"створення гри за 10 вересня{ph11}."
|
||
|
||
#. {ph0}: <strong>
|
||
#. {ph1}: </strong>
|
||
#. {ph2}: <a
|
||
#. href="https://github.com/N0zoM1z0/th04/blob/bb9faca54e2eb3c0d6c757c75d59ac29d2cd5e93/docs/RE_HANDOFF.md"
|
||
#. >
|
||
#. {ph3}: </a >
|
||
#: website/public/blog/touhou-reconstruction/index.html: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} TH04 :{ph1} {ph2}передача від 10 жовтня{ph3} фіксує відновлення "
|
||
"робочої DOS, повне тестування розробником звичайного маршруту і поточну "
|
||
"64-розрядну фазу."
|
||
|
||
#. {ph0}: <strong>
|
||
#. {ph1}: </strong>
|
||
#. {ph2}: <a href="https://github.com/N0zoM1z0/th08/issues/10" >
|
||
#. {ph3}: </a >
|
||
#. {ph4}: <a
|
||
#. href="https://github.com/N0zoM1z0/th08/commit/7148a76ba224742677895c7160807a68897957d5"
|
||
#. >
|
||
#. {ph5}: </a >
|
||
#. {ph6}: <a
|
||
#. href="https://github.com/N0zoM1z0/th08/commit/a393f400786e4cc6cbb1000af0dad3276da12c78"
|
||
#. >
|
||
#. {ph7}: </a >
|
||
#: website/public/blog/touhou-reconstruction/index.html: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 verification reference (oracle):{ph1} {ph2}помилка "
|
||
"автоматичного збору даних, {ph3}виправлення{ph4} вихідного коду та "
|
||
"порівняння{ph5}, а {ph6}також повний аудит констант з плаваючою комою{ph7}."
|
||
|
||
#. {ph0}: <strong>
|
||
#. {ph1}: </strong>
|
||
#. {ph2}: <a
|
||
#. href="https://github.com/N0zoM1z0/th08/blob/d2a00f4acb4a13916e07a00bd13f714961714628/docs/SEMANTIC_PLAYBOOK.md"
|
||
#. >
|
||
#. {ph3}: </a >
|
||
#. {ph4}: <a href="https://github.com/N0zoM1z0/touhou-reconstruction-
|
||
#. factory/blob/717e1b8560783ed17a39fdf159d30aa16bb307a7/docs/semantic-
|
||
#. reconstruction.md" >
|
||
#. {ph5}: </a >
|
||
#: website/public/blog/touhou-reconstruction/index.html: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}Семантична реконструкція:{ph1} {ph2}Керівництво по читабельності{ph3} "
|
||
"TH08, {ph4}заводський порядок етапів і два шляхи перевірки{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}Промислова історія:{ph1} в {ph2}архіві групи наукових музеїв, "
|
||
"присвяченому індикаторам парових двигунів{ph3}, описується введення в "
|
||
"експлуатацію в 1796 році і механізм реєстрації тиску."
|
||
|
||
#. {ph0}: <strong>
|
||
#. {ph1}: </strong>
|
||
#. {ph2}: <a href="https://github.com/N0zoM1z0/touhou-reconstruction-
|
||
#. factory/blob/038b6bed51d273c8b3680553b6f43e1b97d19bd1/docs/agent-
|
||
#. autonomy.md" >
|
||
#. {ph3}: </a >
|
||
#. {ph4}: <a href="https://github.com/N0zoM1z0/touhou-reconstruction-
|
||
#. factory/blob/038b6bed51d273c8b3680553b6f43e1b97d19bd1/docs/knowledge-
|
||
#. base.md" >
|
||
#. {ph5}: </a >
|
||
#: website/public/blog/touhou-reconstruction/index.html: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}Метод:{ph1} у документах Factory по {ph2}автономії агентів{ph3} і "
|
||
"{ph4}знань про крос-іграх{ph5} зберігаються принципи роботи і уроки."
|
||
|
||
#. {ph0}: <a class="text-link" href="../">
|
||
#. {ph1}: </a>
|
||
#. {ph2}: <a class="text-link" href="../../showcase/th04/" >
|
||
#. {ph3}: </a >
|
||
#: website/public/blog/touhou-reconstruction/index.html:1043
|
||
#, python-brace-format
|
||
msgctxt "page:blog/touhou-reconstruction/index.html"
|
||
msgid "{ph0}More articles{ph1} · {ph2}Explore a TH04 investigation{ph3}"
|
||
msgstr ""
|
||
"{ph0}Додаткові статті{ph1} · {ph2}Ознайомтеся з дослідженням TH04{ph3}"
|
||
|
||
#: website/public/blog/touhou-reconstruction/index.html:6
|
||
msgctxt "page:blog/touhou-reconstruction/index.html"
|
||
msgid "Reverse Engineering’s Industrial Revolution — REA"
|
||
msgstr "Промислова революція в галузі реверс-інжинірингу-REA"
|
||
|
||
#: website/public/blog/touhou-reconstruction/index.html:7
|
||
msgctxt "page:blog/touhou-reconstruction/index.html"
|
||
msgid ""
|
||
"N0zoM1z0 reflects on manual reverse engineering, Touhou reconstruction with "
|
||
"AI agents, and how knowledge compounds across TH08, TH095 and PC-98 TH04."
|
||
msgstr ""
|
||
"N0zoM1z0 розповідає про ручне реінжиніринг, реконструкцію Touhou за "
|
||
"допомогою агентів штучного інтелекту та про те, як знання об'єднуються в "
|
||
"TH08, TH095 та PC-98, TH04 ."
|
||
|
||
#: website/public/blog/touhou-reconstruction/index.html:337
|
||
msgctxt "page:blog/touhou-reconstruction/index.html"
|
||
msgid "Experience carried between projects"
|
||
msgstr "Досвід, накопичений в період між проектами"
|
||
|
||
#: website/public/blog/touhou-reconstruction/index.html:351
|
||
msgctxt "page:blog/touhou-reconstruction/index.html"
|
||
msgid "On this page"
|
||
msgstr "На цій сторінці"
|
||
|
||
#: website/public/blog/touhou-reconstruction/index.html:366
|
||
msgctxt "page:blog/touhou-reconstruction/index.html"
|
||
msgid "Touhou reconstruction essay"
|
||
msgstr "Есе про реконструкцію Тохоу"
|
||
|
||
#: website/public/blog/touhou-reconstruction/index.html:1067
|
||
msgctxt "page:blog/touhou-reconstruction/index.html"
|
||
msgid "Back to top"
|
||
msgstr "Нагору"
|
||
|
||
#: website/public/examples/dino-lab/index.html:100
|
||
msgctxt "page:examples/dino-lab/index.html"
|
||
msgid "Skip to content"
|
||
msgstr "Перейти до змісту"
|
||
|
||
#. {ph0}: <a href="../../">
|
||
#. {ph1}: </a>
|
||
#. {ph2}: <span>
|
||
#. {ph3}: </span>
|
||
#: website/public/examples/dino-lab/index.html:182
|
||
#, python-brace-format
|
||
msgctxt "page:examples/dino-lab/index.html"
|
||
msgid "{ph0}Home{ph1}{ph2}/{ph3}Dinosaur speed lab"
|
||
msgstr ""
|
||
"{ph0}Головний{ph1}{ph2} сторінка/{ph3}Лабораторія швидкості динозаврів"
|
||
|
||
#: website/public/examples/dino-lab/index.html:185
|
||
msgctxt "page:examples/dino-lab/index.html"
|
||
msgid "Inspect → rebuild → change"
|
||
msgstr "Перевірити → перебудувати → змінити"
|
||
|
||
#: website/public/examples/dino-lab/index.html:186
|
||
msgctxt "page:examples/dino-lab/index.html"
|
||
msgid "Rebuild the dinosaur’s speed rule."
|
||
msgstr "Відновіть правило швидкості динозавра."
|
||
|
||
#. {ph0}: <strong>
|
||
#. {ph1}: </strong>
|
||
#. {ph2}: <mark class="prose-highlight">
|
||
#. {ph3}: </mark>
|
||
#: website/public/examples/dino-lab/index.html: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 ""
|
||
"Щоб відтворити прискорення гри, спочатку знайдіть правило, яке керує її "
|
||
"швидкістю. {ph0}REA повернув запущений сценарій;{ph1} ми використовували "
|
||
"його правило для створення цієї міні-гри з {ph2}регульованою швидкістю.{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 "На цій сторінці"
|
||
|
||
#. {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}Грайте і змінюйте швидкість{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}Прочитайте Відновлене правило{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}Перевірте реконструкцію{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}Спробуйте провести аналіз{ph1}"
|
||
|
||
#: website/public/examples/dino-lab/index.html:206
|
||
msgctxt "page:examples/dino-lab/index.html"
|
||
msgid "Play and change the speed"
|
||
msgstr "Грайте і змінюйте швидкість"
|
||
|
||
#: 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 ""
|
||
"Натисніть Play, потім перестрибніть через кактус. Перемістіть повзунок "
|
||
"швидкості, щоб вибрати повільнішу або швидшу гру; вона переключиться на "
|
||
"фіксовану швидкість. Виберіть Відновлене правило, щоб почати з 6 і поступово"
|
||
" збільшувати швидкість знову."
|
||
|
||
#: website/public/examples/dino-lab/index.html:213
|
||
msgctxt "page:examples/dino-lab/index.html"
|
||
msgid "Play the reconstruction"
|
||
msgstr "Грати у відтворену версію"
|
||
|
||
#: website/public/examples/dino-lab/index.html:245
|
||
msgctxt "page:examples/dino-lab/index.html"
|
||
msgid "Play"
|
||
msgstr "Грати"
|
||
|
||
#: website/public/examples/dino-lab/index.html:248
|
||
msgctxt "page:examples/dino-lab/index.html"
|
||
msgid "Jump ↑"
|
||
msgstr "Стрибок ↑"
|
||
|
||
#: website/public/examples/dino-lab/index.html:249
|
||
msgctxt "page:examples/dino-lab/index.html"
|
||
msgid "Restart"
|
||
msgstr "Почати знову"
|
||
|
||
#: website/public/examples/dino-lab/index.html:252
|
||
msgctxt "page:examples/dino-lab/index.html"
|
||
msgid "Speed"
|
||
msgstr "Швидкість"
|
||
|
||
#: website/public/examples/dino-lab/index.html:262
|
||
msgctxt "page:examples/dino-lab/index.html"
|
||
msgid "Use the recovered acceleration rule"
|
||
msgstr "Використовуйте правило відновленого прискорення"
|
||
|
||
#: 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 "Початкове правило: починайте з 6, потім збільшуйте до 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 ""
|
||
"Перемістіть повзунок, щоб встановити власну швидкість. Пробіл або стрибок "
|
||
"прибирають кактус."
|
||
|
||
#: 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 ""
|
||
"Увімкніть JavaScript для відтворення реконструкції. Наведений вище код та "
|
||
"пояснення залишаються читабельними."
|
||
|
||
#: website/public/examples/dino-lab/index.html:282
|
||
msgctxt "page:examples/dino-lab/index.html"
|
||
msgid "Read the script REA returned"
|
||
msgstr "Прочитав повернутий скрипт REA"
|
||
|
||
#. {ph0}: <a href="https://wayou.github.io/t-rex-runner/" >
|
||
#. {ph1}: </a >
|
||
#. {ph2}: <code>index.js</code>
|
||
#: website/public/examples/dino-lab/index.html: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 ""
|
||
"Ми перевірили {ph0}версію браузера wayou, засновану{ph1} на Chromium, за "
|
||
"допомогою REA. Вона повернула завантажений {ph2} index.js, включивши цю тему"
|
||
" у функцію оновлення гри:"
|
||
|
||
#. {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 ""
|
||
"Задані наступні параметри: {ph0}, {ph1} і максимальна {ph2}. Гра запускає цю"
|
||
" гілку в оновленні без будь-яких колізій."
|
||
|
||
#: 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 "Використовуйте те саме правило в новій грі"
|
||
|
||
#: 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 "Копіювати"
|
||
|
||
#: 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 ""
|
||
"Міні-гра використовує цю функцію для автоматичного прискорення. Переміщення "
|
||
"повзунка забезпечує фіксовану швидкість. Малювання, Фізика стрибків і "
|
||
"перевірка зіткнень з прямокутниками - це новий код для цієї навчальної гри; "
|
||
"його симуляція оновлюється зі швидкістю 60 разів на секунду."
|
||
|
||
#. {ph0}: <a href="../../assets/dino-speed.js" download >
|
||
#. {ph1}: </a >
|
||
#. {ph2}: <a href="../../assets/dino-demo.js">
|
||
#. {ph3}: </a>
|
||
#: website/public/examples/dino-lab/index.html: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}Скачайте правила швидкості{ph1} · {ph2}Прочитайте код гри{ph3}"
|
||
|
||
#: website/public/examples/dino-lab/index.html:337
|
||
msgctxt "page:examples/dino-lab/index.html"
|
||
msgid "Check the reconstruction"
|
||
msgstr "Перевірте реконструкцію"
|
||
|
||
#: 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 ""
|
||
"Ми запустили функцію оновлення оригінальної гри з відключеними перешкодами і"
|
||
" автоматичним плануванням. Порівняйте ці записані швидкості з відтворенням "
|
||
"відновленого правила."
|
||
|
||
#: website/public/examples/dino-lab/index.html:347
|
||
msgctxt "page:examples/dino-lab/index.html"
|
||
msgid "Updates"
|
||
msgstr "Оновлення"
|
||
|
||
#: website/public/examples/dino-lab/index.html:348
|
||
msgctxt "page:examples/dino-lab/index.html"
|
||
msgid "Original game"
|
||
msgstr "Оригінальна гра"
|
||
|
||
#: website/public/examples/dino-lab/index.html:349
|
||
msgctxt "page:examples/dino-lab/index.html"
|
||
msgid "Reconstructed rule"
|
||
msgstr "Реконструйоване правило"
|
||
|
||
#: website/public/examples/dino-lab/index.html:376
|
||
msgctxt "page:examples/dino-lab/index.html"
|
||
msgid "Run the speed check"
|
||
msgstr "Запустіть перевірку швидкості"
|
||
|
||
#: 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 ""
|
||
"Значення округлені до трьох знаків після коми. Розгалуження перевіряє перед "
|
||
"додаванням, тому кінцевий приріст може бути трохи вище 13."
|
||
|
||
#: website/public/examples/dino-lab/index.html:385
|
||
msgctxt "page:examples/dino-lab/index.html"
|
||
msgid "Try the analysis yourself"
|
||
msgstr "Спробуйте провести аналіз самостійно"
|
||
|
||
#. {ph0}: <a href="../../get-started/">
|
||
#. {ph1}: </a>
|
||
#: website/public/examples/dino-lab/index.html:387
|
||
#, python-brace-format
|
||
msgctxt "page:examples/dino-lab/index.html"
|
||
msgid "{ph0}Set up REA{ph1} with your coding agent."
|
||
msgstr "{ph0}Налаштуйте REA{ph1} за допомогою вашого агента кодування."
|
||
|
||
#. {ph0}: <a href="../../guides/browser/#prepare" >
|
||
#. {ph1}: </a >
|
||
#. {ph2}: <code>https://wayou.github.io/t-rex-runner/</code>
|
||
#: website/public/examples/dino-lab/index.html: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 ""
|
||
"Виконавши {ph0}дії по підключенню до браузеру{ph1}, використовувати {ph2} як"
|
||
" 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 ""
|
||
"Вкажіть своєму агенту URL-адресу сторінки та локальну кінцеву точку "
|
||
"налагодження, а потім скопіюйте цей запит."
|
||
|
||
#. {ph0}: <span class="terminal-dots" aria-hidden="true" >
|
||
#. {ph1}: <i>
|
||
#. {ph2}: </i>
|
||
#. {ph3}: <i>
|
||
#. {ph4}: </i>
|
||
#. {ph5}: <i>
|
||
#. {ph6}: </i>
|
||
#. {ph7}: </span >
|
||
#: website/public/examples/dino-lab/index.html: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}Ваш кодуючий агент"
|
||
|
||
#. {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}Використовуйте REA, щоб ознайомитися з цією грою "
|
||
"динозаврів. Чому вона стала швидше? Покажіть правило швидкості, а потім "
|
||
"створіть зменшену версію зі змінною швидкістю.{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 ""
|
||
"Задайте наступне запитання: {ph0}\"Де розраховується висота стрибка? Додайте"
|
||
" елемент керування висотою стрибка до нової версії\".{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 ""
|
||
"Джерело: {ph0}перевірений код швидкості{ph1}, автори Chromium. "
|
||
"{ph2}Авторське право та ліцензія BSD{ph3}. REA 4.1.0 перевірив запущену "
|
||
"версію HTTP у Chrome 150."
|
||
|
||
#: website/public/examples/dino-lab/index.html:6
|
||
msgctxt "page:examples/dino-lab/index.html"
|
||
msgid "Chrome Dinosaur Game: Rebuild Its Speed Rule — REA"
|
||
msgstr "Chrome гра про динозаврів: перебудувати правила швидкості-REA"
|
||
|
||
#: website/public/examples/dino-lab/index.html:7
|
||
msgctxt "page:examples/dino-lab/index.html"
|
||
msgid ""
|
||
"Read the dinosaur game’s speed rule with REA, rebuild it, then change the "
|
||
"speed and play."
|
||
msgstr ""
|
||
"Прочитайте правила швидкості в грі динозаврів за допомогою REA, перебудуйте "
|
||
"їх, потім змініть швидкість і грайте."
|
||
|
||
#: website/public/examples/dino-lab/index.html:204
|
||
msgctxt "page:examples/dino-lab/index.html"
|
||
msgid "Dinosaur speed reconstruction"
|
||
msgstr "Реконструкція швидкості динозавра"
|
||
|
||
#: 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 ""
|
||
"Міні-гра про динозаврів. Використовуйте кнопку переходу або натисніть "
|
||
"пробіл, поки гра зосереджена."
|
||
|
||
#: website/public/examples/dino-lab/index.html:310
|
||
msgctxt "page:examples/dino-lab/index.html"
|
||
msgid "Copy reconstructed speed rule"
|
||
msgstr "Скопіюйте Відновлене правило швидкості"
|
||
|
||
#: website/public/examples/dino-lab/index.html:409
|
||
msgctxt "page:examples/dino-lab/index.html"
|
||
msgid "Copy dinosaur analysis prompt"
|
||
msgstr "Запит на копіювання результатів аналізу динозаврів"
|
||
|
||
#: website/public/examples/dino-lab/index.html:462
|
||
msgctxt "page:examples/dino-lab/index.html"
|
||
msgid "Back to top"
|
||
msgstr "Нагору"
|
||
|
||
#: website/public/faq/index.html:99
|
||
msgctxt "page:faq/index.html"
|
||
msgid "Skip to content"
|
||
msgstr "Перейти до змісту"
|
||
|
||
#. {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}Головний{ph1} сторінка / поширені запитання"
|
||
|
||
#: website/public/faq/index.html:182
|
||
msgctxt "page:faq/index.html"
|
||
msgid "REA FAQ."
|
||
msgstr "Поширені запитання щодо REA."
|
||
|
||
#: website/public/faq/index.html:183
|
||
msgctxt "page:faq/index.html"
|
||
msgid "Setup, updates, analysis and troubleshooting."
|
||
msgstr "Налаштування, Оновлення, аналіз та усунення несправностей."
|
||
|
||
#: website/public/faq/index.html:187
|
||
msgctxt "page:faq/index.html"
|
||
msgid "Topics"
|
||
msgstr "Тим"
|
||
|
||
#. {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}Налаштування та оновлення{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}Аналіз{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}Діагностика{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}Дані та обмін ними{ph1}"
|
||
|
||
#: website/public/faq/index.html:201
|
||
msgctxt "page:faq/index.html"
|
||
msgid "Setup and updates"
|
||
msgstr "Налаштування та оновлення"
|
||
|
||
#: website/public/faq/index.html:204
|
||
msgctxt "page:faq/index.html"
|
||
msgid "How do I install REA?"
|
||
msgstr "Як встановити REA ?"
|
||
|
||
#: website/public/faq/index.html:212
|
||
msgctxt "page:faq/index.html"
|
||
msgid "Terminal · agent setup"
|
||
msgstr "Термінал * Налаштування агента"
|
||
|
||
#: 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 "Копіювати"
|
||
|
||
# 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 ""
|
||
"Налаштування реєструє MCP-підключення REA та встановлює відповідну навичку "
|
||
"аналізу. Після завершення перезапустіть агента й передайте йому шлях до "
|
||
"файлу та запитання. Вимоги й перші кроки описані в {ph0}посібнику з "
|
||
"налаштування{ph1}."
|
||
|
||
#: website/public/faq/index.html:233
|
||
msgctxt "page:faq/index.html"
|
||
msgid "Which coding agents can use REA?"
|
||
msgstr "Які агенти кодування можуть використовувати REA?"
|
||
|
||
#: 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 ""
|
||
"Будь-який агент, який підтримує локальні сервери MCP. Установка включає в "
|
||
"себе Claude Code, Claude для настільних комп'ютерів, Codex, Cursor, Gemini "
|
||
"CLI, Windsurf, Devin, OpenCode, Antigravity, GitHub Copilot CLI , Command "
|
||
"Code , Grok Build , OMP і VS Code . Коннектор Grok-бота доданий з його чату."
|
||
|
||
#. {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}Підключіть свій кодуючий агент{ph1}."
|
||
|
||
#: website/public/faq/index.html:246
|
||
msgctxt "page:faq/index.html"
|
||
msgid "How do I update REA?"
|
||
msgstr "Як оновити 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 релізи часто, включаючи виправлення помилок. Якщо ви встановили CLI з "
|
||
"npm:"
|
||
|
||
#: website/public/faq/index.html:253
|
||
msgctxt "page:faq/index.html"
|
||
msgid "Terminal · installed CLI"
|
||
msgstr "Термінал * встановлений 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 ""
|
||
"Виконайте команду оновлення налаштувань, зазначену в оновленні. Якщо ви "
|
||
"налаштовуєте свого агента через {ph0}, запустивши:"
|
||
|
||
#: website/public/faq/index.html:271
|
||
msgctxt "page:faq/index.html"
|
||
msgid "Terminal · refresh agent setup"
|
||
msgstr "Термінал * Налаштування агента оновлення"
|
||
|
||
# Reviewed for readable setup and analysis terminology.
|
||
#. {ph0}: <code>npx -y rea-agents@latest</code>
|
||
#: website/public/faq/index.html: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 ""
|
||
"Перевірте зміни й перезапустіть агента. Підключення до REA використовує "
|
||
"визначену версію пакета. Повторіть налаштування, щоб агент перейшов на нову "
|
||
"версію. Для разового виклику CLI додайте потрібну команду після {ph0}."
|
||
|
||
#: website/public/faq/index.html:291
|
||
msgctxt "page:faq/index.html"
|
||
msgid "Is installing the skill from skills.sh enough?"
|
||
msgstr "Встановлюється навик з навичок.цього достатньо?"
|
||
|
||
#. {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 ""
|
||
"Навик надає Вашому агенту інструкції з розслідування. Запустивши "
|
||
"{ph0}програму установки{ph1} REA, щоб підключити сервер MCP і встановити "
|
||
"відповідну навичку, а потім перезапустіть свій агент, щоб він міг викликати "
|
||
"інструменти."
|
||
|
||
#: website/public/faq/index.html:305
|
||
msgctxt "page:faq/index.html"
|
||
msgid "Analysis"
|
||
msgstr "Аналіз"
|
||
|
||
#: website/public/faq/index.html:308
|
||
msgctxt "page:faq/index.html"
|
||
msgid "What can I analyze with REA?"
|
||
msgstr "Що я можу проаналізувати за допомогою REA?"
|
||
|
||
#: website/public/faq/index.html:309
|
||
msgctxt "page:faq/index.html"
|
||
msgid "Start with the kind of software you have:"
|
||
msgstr "Почніть з того програмного забезпечення, яке у вас є:"
|
||
|
||
#. {ph0}: <a href="../guides/native/" >
|
||
#. {ph1}: </a >
|
||
#: website/public/faq/index.html:311
|
||
#, python-brace-format
|
||
msgctxt "page:faq/index.html"
|
||
msgid ""
|
||
"{ph0}Native executables and libraries{ph1}: functions, assembly, pseudocode "
|
||
"and references."
|
||
msgstr ""
|
||
"{ph0}Власні виконувані файли та бібліотеки{ph1}: функції, збірка, псевдокод "
|
||
"та посилання."
|
||
|
||
#. {ph0}: <a href="../guides/javascript/" >
|
||
#. {ph1}: </a >
|
||
#: website/public/faq/index.html:316
|
||
#, python-brace-format
|
||
msgctxt "page:faq/index.html"
|
||
msgid ""
|
||
"{ph0}JavaScript and Electron apps{ph1}: modules, imports, IPC and source "
|
||
"locations."
|
||
msgstr ""
|
||
"{ph0} Програми JavaScript та Electron{ph1}: модулі, імпорт, IPC та "
|
||
"розташування джерел."
|
||
|
||
#. {ph0}: <a href="../guides/browser/">
|
||
#. {ph1}: </a>
|
||
#: website/public/faq/index.html:321
|
||
#, python-brace-format
|
||
msgctxt "page:faq/index.html"
|
||
msgid "{ph0}Browser pages{ph1}: scripts, requests and runtime observations."
|
||
msgstr ""
|
||
"{ph0}Сторінки браузера{ph1}: скрипти, запити та спостереження під час "
|
||
"виконання."
|
||
|
||
#. {ph0}: <a href="../showcase/">
|
||
#. {ph1}: </a>
|
||
#: website/public/faq/index.html: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 також підтримує робочі процеси для керованих збірок, додатків APK для "
|
||
"Android, вбудованого ПЗ і упакованих ресурсів. {ph0}Дивіться приклади "
|
||
"проведених досліджень{ph1}."
|
||
|
||
#: website/public/faq/index.html:334
|
||
msgctxt "page:faq/index.html"
|
||
msgid "Do I need Hopper, Ghidra or IDA?"
|
||
msgstr "Чи потрібен мені Hopper, Ghidra або 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 ""
|
||
"Для глибокого аналізу програм з машинним кодом використовується один з них. "
|
||
"Статичний JavaScript і.NET inspection працюють з наданими файлами і не "
|
||
"вимагають аналізу движка програм з машинним кодом."
|
||
|
||
#. {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 ""
|
||
"Підключіть існуючу установку Ghidra або IDA або дозвольте програмі установки"
|
||
" виявити Hopper і запропонувати установку. Ваш хост і цільовий сервер "
|
||
"визначають, якого постачальника можна використовувати. {ph0}Налаштуйте "
|
||
"аналіз програм з машинним кодом{ph1}."
|
||
|
||
#: website/public/faq/index.html:348
|
||
msgctxt "page:faq/index.html"
|
||
msgid "Can I use REA without a coding agent?"
|
||
msgstr "Чи можу я використовувати REA без кодуючого агента?"
|
||
|
||
#: 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 ""
|
||
"Так. У CLI використовуються ті ж робочі процеси аналізу. Для локальної "
|
||
"програми JavaScript або Electron:"
|
||
|
||
#: website/public/faq/index.html:355
|
||
msgctxt "page:faq/index.html"
|
||
msgid "Terminal · static application analysis"
|
||
msgstr "Термінал * статичний аналіз додатків"
|
||
|
||
#. {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 ""
|
||
"Замініть шлях на папку витягнутої Програми або файл ASAR. "
|
||
"{ph0}Використовуйте CLI{ph1} для параметрів установки."
|
||
|
||
# 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 "Який код повертає 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 ""
|
||
"Аналіз машинного коду повертає асемблер і псевдокод, а також виклики "
|
||
"функцій, посилання та потрібні константи. Аналіз JavaScript повертає модулі,"
|
||
" зв’язки між ними та розташування у вихідному коді."
|
||
|
||
#. {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 ""
|
||
"Ваш агент використовує ці результати для пояснення поведінки або написання "
|
||
"та тестування реалізації. {ph0}Розрахунок{ph1} DX-Ball і {ph2}перевірка "
|
||
"прапора CTF{ph3} показують, як працює цей процес."
|
||
|
||
#: website/public/faq/index.html:392
|
||
msgctxt "page:faq/index.html"
|
||
msgid "What should I ask my agent?"
|
||
msgstr "Що запитати в помічника?"
|
||
|
||
#: 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 ""
|
||
"Задайте йому локальну мету і одну поведінку для вивчення. Для програми "
|
||
"JavaScript або Electron:"
|
||
|
||
#. {ph0}: <span class="terminal-dots" aria-hidden="true" >
|
||
#. {ph1}: <i>
|
||
#. {ph2}: </i>
|
||
#. {ph3}: <i>
|
||
#. {ph4}: </i>
|
||
#. {ph5}: <i>
|
||
#. {ph6}: </i>
|
||
#. {ph7}: </span >
|
||
#: website/public/faq/index.html: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}Ваш кодуючий агент"
|
||
|
||
#. {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 ""
|
||
"Замініть шлях на цільовий. В {ph0}керівництво{ph1} наведені підказки для "
|
||
"прикладів в native, Electron і браузері."
|
||
|
||
#: website/public/faq/index.html:432
|
||
msgctxt "page:faq/index.html"
|
||
msgid "Troubleshooting"
|
||
msgstr "Діагностика"
|
||
|
||
#: website/public/faq/index.html:435
|
||
msgctxt "page:faq/index.html"
|
||
msgid "Why can't my agent see the REA tools?"
|
||
msgstr "Чому мій агент не може бачити інструменти REA?"
|
||
|
||
#. {ph0}: <code>doctor</code>
|
||
#: website/public/faq/index.html: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 ""
|
||
"Перезапустіть або підключіть агент після налаштування. Перевірте його "
|
||
"реєстрацію REA в {ph0}; для Codex :"
|
||
|
||
#: website/public/faq/index.html:442
|
||
msgctxt "page:faq/index.html"
|
||
msgid "Terminal · check one client"
|
||
msgstr "Термінал * перевірте одного клієнта"
|
||
|
||
#. {ph0}: <code>codex</code>
|
||
#. {ph1}: <code>claude_code</code>
|
||
#. {ph2}: <code>cursor</code>
|
||
#: website/public/faq/index.html: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 ""
|
||
"Замінивши {ph0} на свій ідентифікатор клієнта, наприклад, {ph1} або {ph2}. "
|
||
"Якщо у звіті відображається відсутність або застаріла реєстрація, запустіть "
|
||
"програму встановлення для цього клієнта:"
|
||
|
||
#: website/public/faq/index.html:462
|
||
msgctxt "page:faq/index.html"
|
||
msgid "Terminal · repair one client's setup"
|
||
msgstr "Термінал * виправлення налаштувань одного клієнта"
|
||
|
||
#. {ph0}: <a href="../get-started/#help">
|
||
#. {ph1}: </a>
|
||
#: website/public/faq/index.html: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 ""
|
||
"Перегляньте його план і перезапустіть клієнт. Якщо реєстрація успішна, але "
|
||
"інструменти все ще відсутні, перевірте помилку підключення клієнта MCP. "
|
||
"{ph0}Додаткова діагностика налаштування{ph1}."
|
||
|
||
#: website/public/faq/index.html:482
|
||
msgctxt "page:faq/index.html"
|
||
msgid "Do I need to start Hopper first?"
|
||
msgstr "Чи потрібно спочатку запускати Hopper?"
|
||
|
||
#. {ph0}: <a href="../get-started/#native">
|
||
#. {ph1}: </a >
|
||
#: website/public/faq/index.html: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 запускає Hopper, коли це необхідно для виконання операції. На macOS "
|
||
"перед автоматичним аналізом виконайте перший запуск, вибравши "
|
||
"демонстраційний режим або активацію ліцензії. {ph0}Дивіться розділ "
|
||
"Налаштування власного провайдера{ph1}."
|
||
|
||
#: website/public/faq/index.html:492
|
||
msgctxt "page:faq/index.html"
|
||
msgid "What should I do if I hit a bug?"
|
||
msgstr "Що робити, якщо я знайшов помилку?"
|
||
|
||
#. {ph0}: <a href="#update">
|
||
#. {ph1}: </a>
|
||
#: website/public/faq/index.html: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}Оновіть REA{ph1} , перезапустіть свій агент і повторіть те саме "
|
||
"завдання. Можливо, проблема вже вирішена в недавньому випуску."
|
||
|
||
#. {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 ""
|
||
"Якщо {ph0}проблема{ph1} чи не усувається, вкажіть версію REA, операційну "
|
||
"систему, тип пристрою, кроки для відтворення і висновок помилки. Вкажіть "
|
||
"ім'я постачальника, якщо проблема пов'язана з аналізом програм з машинним "
|
||
"кодом."
|
||
|
||
#: website/public/faq/index.html:511
|
||
msgctxt "page:faq/index.html"
|
||
msgid "Data and sharing"
|
||
msgstr "Дані та обмін ними"
|
||
|
||
#: website/public/faq/index.html:514
|
||
msgctxt "page:faq/index.html"
|
||
msgid "Does REA upload my app?"
|
||
msgstr "Чи завантажує REA мій додаток?"
|
||
|
||
#: 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 аналізує цілі на вашому комп'ютері. Ваш агент отримує результати, і до "
|
||
"цих результатів застосовується політика щодо даних, встановлена його "
|
||
"постачальником моделей."
|
||
|
||
#: website/public/faq/index.html:522
|
||
msgctxt "page:faq/index.html"
|
||
msgid "How can I share an example or contribute?"
|
||
msgstr "Як я можу поділитися прикладом або зробити свій внесок?"
|
||
|
||
#. {ph0}: <a href="https://github.com/morluto/rea/issues/new/choose" >
|
||
#. {ph1}: </a >
|
||
#. {ph2}: <a href="https://github.com/morluto/rea/pulls">
|
||
#. {ph3}: </a >
|
||
#: website/public/faq/index.html: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 ""
|
||
"Чи є у вас корисний приклад REA? Ми були б раді його побачити. Розкажіть про"
|
||
" мету, своє запитання, результати та про те, як ви їх перевірили, у дописі "
|
||
"про {ph0}проблема{ph1} або {ph2}запит{ph3} на оновлення. Короткі витяги з "
|
||
"коду та цифри допомагають іншим стежити за ходом розслідування."
|
||
|
||
#. {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 ""
|
||
"Також вітаються повідомлення про помилки, запити на функції, документація та"
|
||
" вдосконалення коду. Ви також можете обговорити приклад у "
|
||
"{ph0}товариство{ph1}."
|
||
|
||
#: website/public/faq/index.html:6
|
||
msgctxt "page:faq/index.html"
|
||
msgid "REA FAQ: Setup, Updates and Troubleshooting"
|
||
msgstr ""
|
||
"Поширені запитання щодо REA: Налаштування, Оновлення та усунення "
|
||
"несправностей"
|
||
|
||
#: website/public/faq/index.html:7
|
||
msgctxt "page:faq/index.html"
|
||
msgid ""
|
||
"Answers to common REA questions: installation, updates, analysis tools, "
|
||
"coding agents, troubleshooting and sharing examples."
|
||
msgstr ""
|
||
"Відповіді на поширені питання REA: установка, оновлення, інструменти "
|
||
"аналізу, засоби програмування, усунення неполадок і обмін прикладами."
|
||
|
||
#: website/public/faq/index.html:186
|
||
msgctxt "page:faq/index.html"
|
||
msgid "On this page"
|
||
msgstr "На цій сторінці"
|
||
|
||
#: website/public/faq/index.html:195
|
||
msgctxt "page:faq/index.html"
|
||
msgid "Frequently asked questions about REA"
|
||
msgstr "Поширені запитання про REA"
|
||
|
||
#: website/public/faq/index.html:213
|
||
msgctxt "page:faq/index.html"
|
||
msgid "Copy REA setup command"
|
||
msgstr "Скопіювати інсталяційну команду REA"
|
||
|
||
#: website/public/faq/index.html:254
|
||
msgctxt "page:faq/index.html"
|
||
msgid "Copy REA update command"
|
||
msgstr "Скопіювати команду оновлення REA"
|
||
|
||
#: website/public/faq/index.html:272
|
||
msgctxt "page:faq/index.html"
|
||
msgid "Copy agent setup refresh command"
|
||
msgstr "Команда оновлення Налаштування агента копіювання"
|
||
|
||
#: website/public/faq/index.html:356
|
||
msgctxt "page:faq/index.html"
|
||
msgid "Copy REA CLI analysis command"
|
||
msgstr "Скопіювати команду аналізу REA CLI"
|
||
|
||
#: website/public/faq/index.html:403
|
||
msgctxt "page:faq/index.html"
|
||
msgid "Copy example analysis prompt"
|
||
msgstr "Запит на копіювання прикладу аналізу"
|
||
|
||
#: website/public/faq/index.html:443
|
||
msgctxt "page:faq/index.html"
|
||
msgid "Copy client diagnosis command"
|
||
msgstr "Скопіювати команду діагностики клієнта"
|
||
|
||
#: website/public/faq/index.html:463
|
||
msgctxt "page:faq/index.html"
|
||
msgid "Copy scoped setup command"
|
||
msgstr "Команда налаштування в області копіювання"
|
||
|
||
#: website/public/faq/index.html:560
|
||
msgctxt "page:faq/index.html"
|
||
msgid "Back to top"
|
||
msgstr "Нагору"
|
||
|
||
#: website/public/first-investigation/index.html:99
|
||
msgctxt "page:first-investigation/index.html"
|
||
msgid "Skip to content"
|
||
msgstr "Перейти до змісту"
|
||
|
||
#. {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}Головний{ph1} / Ваше перше розслідування"
|
||
|
||
#. {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 "Дізнайтеся, куди відправляються{ph0}експортовані нотатки."
|
||
|
||
#: 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 ""
|
||
"Використовуйте REA для перевірки невеликого додатки, натисніть на кнопку "
|
||
"\"Експорт заміток\" і перевірте одну деталь самостійно."
|
||
|
||
#: website/public/first-investigation/index.html:196
|
||
msgctxt "page:first-investigation/index.html"
|
||
msgid "In this exercise"
|
||
msgstr "У цій вправі"
|
||
|
||
#. {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. Настройка{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. Запитайте про експорт{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. Дотримуйтесь відповіді{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. Перевірте прогноз{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. Задайте ще одне питання{ph1}"
|
||
|
||
#: website/public/first-investigation/index.html:207
|
||
msgctxt "page:first-investigation/index.html"
|
||
msgid "1. Connect your agent to REA"
|
||
msgstr "1. Підключіть свого агента до REA."
|
||
|
||
#. {ph0}: <span class="terminal-dots" aria-hidden="true" >
|
||
#. {ph1}: <i>
|
||
#. {ph2}: </i>
|
||
#. {ph3}: <i>
|
||
#. {ph4}: </i>
|
||
#. {ph5}: <i>
|
||
#. {ph6}: </i>
|
||
#. {ph7}: </span >
|
||
#: website/public/first-investigation/index.html: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}Ваш кодуючий агент"
|
||
|
||
#: 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 "Копіювати"
|
||
|
||
#: website/public/first-investigation/index.html:240
|
||
msgctxt "page:first-investigation/index.html"
|
||
msgid "Or run this command in your terminal:"
|
||
msgstr "Або запустіть цю команду у своєму терміналі:"
|
||
|
||
#: 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 ""
|
||
"Ознайомтеся з планом, схваліть налаштування, а потім перезапустіть свого "
|
||
"агента. Ви вже підключені? Продовження нижче."
|
||
|
||
#: website/public/first-investigation/index.html:258
|
||
msgctxt "page:first-investigation/index.html"
|
||
msgid "2. Ask where the CSV is written"
|
||
msgstr "2. Запитайте, де записаний CSV"
|
||
|
||
#. {ph0}: <strong>
|
||
#. {ph1}: </strong>
|
||
#: website/public/first-investigation/index.html: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 ""
|
||
"Прикладом може служити додаток Electron, що складається з шести файлів, з "
|
||
"кнопкою {ph0}експорту заміток{ph1}. Ваш агент може перевірити його код, не "
|
||
"встановлюючи та не запускаючи Electron."
|
||
|
||
#: 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 ""
|
||
"Ваш агент завантажує файли та передає розпаковану папку REA для перевірки."
|
||
|
||
#. {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}Приклад завантаження ZIP-файлу{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 ""
|
||
"Якщо ваш агент не може завантажити файли, розпакуйте цей архів самостійно. "
|
||
"Вкажіть шлях до папки {ph0} і задайте те саме питання щодо експорту."
|
||
|
||
#: website/public/first-investigation/index.html:313
|
||
msgctxt "page:first-investigation/index.html"
|
||
msgid "3. Follow the answer back to the code"
|
||
msgstr "3. Дотримуйтесь відповіді назад до коду"
|
||
|
||
#: 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 "Шукайте коротке пояснення з посиланнями на файли та рядки:"
|
||
|
||
#. {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 ""
|
||
"Кнопка надсилає повідомлення {ph0}. Основний процес форматує нотатки як CSV "
|
||
"і записує {ph1} в папку завантажень користувача. Це стовпці {ph2} і {ph3}."
|
||
|
||
#: website/public/first-investigation/index.html:324
|
||
msgctxt "page:first-investigation/index.html"
|
||
msgid "From the button to the file writer"
|
||
msgstr "Від кнопки до пристрою запису файлів"
|
||
|
||
#: 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 ""
|
||
"Статичний аналіз REA відображає повідомлення з його обробником. Адресат "
|
||
"зчитується з коду."
|
||
|
||
#: 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 ""
|
||
"Шлях до файлу, інструмент форматування та виклик запису знаходяться в цьому "
|
||
"обробнику разом. Попросіть свого агента показати ці рядки, якщо у його "
|
||
"відповіді їх немає."
|
||
|
||
#. {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}Перегляньте повний трасування коду та записаний результат{ph1} REA."
|
||
|
||
#: website/public/first-investigation/index.html:381
|
||
msgctxt "page:first-investigation/index.html"
|
||
msgid "4. Check a prediction"
|
||
msgstr "4. Перевірте прогноз"
|
||
|
||
#: 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 ""
|
||
"Стовпці CSV розділені комою. Що відбувається, коли заголовок нотатки сам по "
|
||
"собі містить кому або лапки?"
|
||
|
||
#: website/public/first-investigation/index.html:426
|
||
msgctxt "page:first-investigation/index.html"
|
||
msgid "Run the check yourself"
|
||
msgstr "Проведіть перевірку самостійно"
|
||
|
||
#. {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 "Відкрийте термінал у розпакованій папці {ph0}:"
|
||
|
||
#: 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 ""
|
||
"Ця команда використовує оболонку з підтримкою here-document, таку як Bash "
|
||
"або Zsh. Ваш агент може запустити той самий JavaScript в оболонці вашої "
|
||
"платформи."
|
||
|
||
#: website/public/first-investigation/index.html:457
|
||
msgctxt "page:first-investigation/index.html"
|
||
msgid "5. Ask another question"
|
||
msgstr "5. Задайте ще одне питання"
|
||
|
||
#: website/public/first-investigation/index.html:458
|
||
msgctxt "page:first-investigation/index.html"
|
||
msgid "Try a follow-up in the same conversation:"
|
||
msgstr "Спробуйте продовжити ту саму розмову:"
|
||
|
||
#: 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 ""
|
||
"Що станеться, якщо файл не може бути записаний? Поверніться на сторінку, "
|
||
"вказану в повідомленні про помилку."
|
||
|
||
#: 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 ""
|
||
"Або надайте своєму агенту власну програму та запитайте про одну кнопку, файл"
|
||
" чи поведінку."
|
||
|
||
#. {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}Як Notion копіює текст та HTML{ph1}{ph2} за допомогою функції буфера "
|
||
"обміну в вбудованому додатку Electron.{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}Як DX-Ball обчислює розташування стереозвуку{ph1}{ph2}, читайте в "
|
||
"оригінальних інструкціях і перевірках реконструкції.{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}Усуньте неполадки в програмі установки або аналітичному{ph1}{ph2} "
|
||
"оновіть REA і перевірте з'єднання, якщо воно не працює.{ph3}"
|
||
|
||
#: website/public/first-investigation/index.html:6
|
||
msgctxt "page:first-investigation/index.html"
|
||
msgid "Your First Reverse Engineering Investigation — REA"
|
||
msgstr "Ваше перше дослідження в області реверс-інжинірингу-REA"
|
||
|
||
#: website/public/first-investigation/index.html:7
|
||
msgctxt "page:first-investigation/index.html"
|
||
msgid ""
|
||
"Try REA on a small Notes app. Set up your agent, ask where exported notes "
|
||
"go, and check the CSV formatter with a sample title."
|
||
msgstr ""
|
||
"Спробуйте REA у невеликому додатку для нотаток. Налаштуйте свого агента, "
|
||
"запитайте, куди надсилаються експортовані нотатки, і перевірте форматування "
|
||
"CSV із прикладом заголовка."
|
||
|
||
#: website/public/first-investigation/index.html:195
|
||
msgctxt "page:first-investigation/index.html"
|
||
msgid "On this page"
|
||
msgstr "На цій сторінці"
|
||
|
||
#: website/public/first-investigation/index.html:205
|
||
msgctxt "page:first-investigation/index.html"
|
||
msgid "Your first REA investigation"
|
||
msgstr "Ваше перше розслідування REA"
|
||
|
||
#: website/public/first-investigation/index.html:221
|
||
msgctxt "page:first-investigation/index.html"
|
||
msgid "Copy REA installation prompt"
|
||
msgstr "Скопіюйте запит на встановлення REA"
|
||
|
||
#: website/public/first-investigation/index.html:243
|
||
msgctxt "page:first-investigation/index.html"
|
||
msgid "Copy setup command"
|
||
msgstr "Команда Налаштування Копіювання"
|
||
|
||
#: website/public/first-investigation/index.html:271
|
||
msgctxt "page:first-investigation/index.html"
|
||
msgid "Copy Notes investigation prompt"
|
||
msgstr "Запит на копіювання нотаток для розслідування"
|
||
|
||
#: website/public/first-investigation/index.html:393
|
||
msgctxt "page:first-investigation/index.html"
|
||
msgid "Copy CSV check prompt"
|
||
msgstr "Скопіювати запит перевірки CSV"
|
||
|
||
#: website/public/first-investigation/index.html:435
|
||
msgctxt "page:first-investigation/index.html"
|
||
msgid "Copy formatter check command"
|
||
msgstr "Команда перевірки форматування копії"
|
||
|
||
#: website/public/first-investigation/index.html:510
|
||
msgctxt "page:first-investigation/index.html"
|
||
msgid "Back to top"
|
||
msgstr "Нагору"
|
||
|
||
#: website/public/get-started/index.html:99
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "Skip to content"
|
||
msgstr "Перейти до змісту"
|
||
|
||
#. {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}Головний{ph1} сторінка / початок роботи"
|
||
|
||
#: website/public/get-started/index.html:182
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "Set up REA."
|
||
msgstr "Налаштуйте REA ."
|
||
|
||
#: 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 ""
|
||
"Підключіть REA до свого програміста або перевірте локальну програму зі свого"
|
||
" терміналу."
|
||
|
||
#: website/public/get-started/index.html:195
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "Open a terminal and check:"
|
||
msgstr "Відкрийте термінал і перевірте:"
|
||
|
||
#: website/public/get-started/index.html:198
|
||
#: website/public/get-started/index.html:455
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "Terminal"
|
||
msgstr "Термінал"
|
||
|
||
#: 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 "Копіювати"
|
||
|
||
#. {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 (PowerShell){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 "Оболонка PowerShell Windows"
|
||
|
||
#. {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 ""
|
||
"Введіть Y, якщо вас попросять прийняти умови. Закрийте PowerShell, відкрийте"
|
||
" його знову, а потім запустіть {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 ""
|
||
"Якщо пізніше PowerShell повідомляє, що {ph0}\"запуск сценаріїв у цій системі"
|
||
" вимкнено\"{ph1}, коли ви запустите {ph2}, запустіть це один раз і повторіть"
|
||
" спробу:"
|
||
|
||
#: website/public/get-started/index.html:255
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "If you use Homebrew:"
|
||
msgstr "Якщо ви використовуєте Homebrew :"
|
||
|
||
#: website/public/get-started/index.html:258
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "macOS · Homebrew"
|
||
msgstr "macOS · Homebrew"
|
||
|
||
#: website/public/get-started/index.html:270
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "Otherwise:"
|
||
msgstr "Не інакше як:"
|
||
|
||
#: website/public/get-started/index.html:285
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "Close Terminal, open it again, then:"
|
||
msgstr "Закрийте термінал, відкрийте його знову, потім:"
|
||
|
||
#. {ph0}: <code>curl</code>
|
||
#. {ph1}: <code>unzip</code>
|
||
#. {ph2}: <code>sudo apt install curl unzip</code>
|
||
#: website/public/get-started/index.html: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 ""
|
||
"Для установки буде потрібно {ph0} і {ph1} файл (у Debian / Ubuntu: {ph2}). "
|
||
"Закрийте термінал, відкрийте його знову, потім:"
|
||
|
||
#. {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 ""
|
||
"Власний пакет {ph0} ваш дистрибутив часто старший за версію 22.19, тому "
|
||
"перевірте {ph1}, якщо ви використовуєте його замість цього."
|
||
|
||
#. {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 ""
|
||
"Віддаєте перевагу звичайному інсталятору? Завантажте версію LTS з сайту "
|
||
"{ph0}nodejs.org{ph1}."
|
||
|
||
#: website/public/get-started/index.html:348
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "Setup options"
|
||
msgstr "Параметри налаштування"
|
||
|
||
#. {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}Підключіть свій кодуючий агент{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}Використовуйте 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}Налаштування аналізу програм з машинним кодом{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}Отримання допомоги{ph1}"
|
||
|
||
#: website/public/get-started/index.html:358
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "Connect your coding agent"
|
||
msgstr "Підключіть свій кодуючий агент"
|
||
|
||
#: 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 ""
|
||
"Запустіть програму встановлення, щоб підключити REA до свого програміста. "
|
||
"Серед доступних клієнтів Claude Code, Codex, Cursor, Gemini CLI, Windsurf, "
|
||
"Grok Build та інші підтримувані клієнти MCP. Коннектор Grok-бота доданий з "
|
||
"його чату."
|
||
|
||
#: website/public/get-started/index.html:366
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "New to coding agents?"
|
||
msgstr "Новачок у кодуванні агентів?"
|
||
|
||
#: 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 ""
|
||
"Програміст-це помічник зі штучним інтелектом, який працює на вашому "
|
||
"комп'ютері, а не на вкладці браузера. Він може читати файли та виконувати "
|
||
"команди, а також запитує їх перед внесенням змін. REA надає йому "
|
||
"інструменти для зворотного проектування."
|
||
|
||
#: 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 ""
|
||
"Якщо у вас його ще немає, виберіть його, перейдіть на сторінку встановлення "
|
||
"та увійдіть:"
|
||
|
||
#. {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} Claude Code{ph2}{ph3} від Anthropic . Потрібен платний тарифний "
|
||
"план Claude."
|
||
|
||
#. {ph0}: <strong >
|
||
#. {ph1}: <a href="https://github.com/openai/codex">
|
||
#. {ph2}: </a>
|
||
#. {ph3}: </strong >
|
||
#: website/public/get-started/index.html: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} Codex{ph2}{ph3} за допомогою OpenAI . Увійдіть у свій обліковий "
|
||
"запис ChatGPT."
|
||
|
||
#. {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} OpenCode{ph2}{ph3} , з відкритим кодом. Підключіть Постачальника "
|
||
"моделі за вашим вибором."
|
||
|
||
#: 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 ""
|
||
"Потім відкрийте його і скопіюйте в нього наведене нижче запрошення. Перш ніж"
|
||
" щось змінити, агент запустить Налаштування REA і покаже вам план."
|
||
|
||
#. {ph0}: <span class="terminal-dots" aria-hidden="true" >
|
||
#. {ph1}: <i>
|
||
#. {ph2}: </i>
|
||
#. {ph3}: <i>
|
||
#. {ph4}: </i>
|
||
#. {ph5}: <i>
|
||
#. {ph6}: </i>
|
||
#. {ph7}: </span >
|
||
#: website/public/get-started/index.html: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}Ваш кодуючий агент"
|
||
|
||
#: website/public/get-started/index.html:430
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "Or run setup yourself"
|
||
msgstr "Або запустіть програму налаштування самостійно"
|
||
|
||
#: website/public/get-started/index.html:432
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "How do I open a terminal?"
|
||
msgstr "Як відкрити термінал?"
|
||
|
||
#. {ph0}: <strong>
|
||
#. {ph1}: </strong>
|
||
#. {ph2}: <em>
|
||
#. {ph3}: </em>
|
||
#: website/public/get-started/index.html: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} Windows :{ph1} відкрийте меню \"Пуск\", введіть {ph2}PowerShell{ph3} і"
|
||
" натисніть Enter."
|
||
|
||
#. {ph0}: <strong>
|
||
#. {ph1}: </strong>
|
||
#. {ph2}: <kbd>⌘</kbd>
|
||
#. {ph3}: <kbd>Space</kbd>
|
||
#. {ph4}: <em>
|
||
#. {ph5}: </em>
|
||
#: website/public/get-started/index.html: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} macOS :{ph1} натиснути {ph2} {ph3}, ввівши {ph4}Terminal{ph5} і "
|
||
"натисніть Enter."
|
||
|
||
#. {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} Linux :{ph1} натиснути {ph2} {ph3} {ph4} на більшості настільних "
|
||
"комп'ютерів."
|
||
|
||
#. {ph0}: <kbd>Ctrl</kbd>
|
||
#. {ph1}: <kbd>V</kbd>
|
||
#. {ph2}: <kbd>⌘</kbd>
|
||
#. {ph3}: <kbd>V</kbd>
|
||
#. {ph4}: <kbd>Ctrl</kbd>
|
||
#. {ph5}: <kbd>Shift</kbd>
|
||
#. {ph6}: <kbd>V</kbd>
|
||
#: website/public/get-started/index.html: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 ""
|
||
"Введіть команду за допомогою {ph0} {ph1} ( macOS : {ph2} {ph3}; Linux для "
|
||
"терміналів: {ph4} {ph5} {ph6}), потім натисніть Enter."
|
||
|
||
#: 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 ""
|
||
"Виберіть свого клієнта та ознайомтеся з планом Налаштування. REA додає "
|
||
"підключення MCP і відповідний навик дослідження, зберігаючи резервну копію "
|
||
"існуючої конфігурації. Перед застосуванням змін програма запитує доступ."
|
||
|
||
#: website/public/get-started/index.html:473
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "Restart your client when setup finishes."
|
||
msgstr "Після завершення встановлення перезавантажте клієнт."
|
||
|
||
#: website/public/get-started/index.html:475
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "How do I restart my client?"
|
||
msgstr "Як перезапустити клієнта?"
|
||
|
||
#. {ph0}: <strong>
|
||
#. {ph1}: </strong>
|
||
#. {ph2}: <kbd>⌘</kbd>
|
||
#. {ph3}: <kbd>Q</kbd>
|
||
#: website/public/get-started/index.html: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}Додатки для настільних{ph1} комп'ютерів (Claude для настільних "
|
||
"комп'ютерів, Cursor, Windsurf, VS Code): повністю закрийте програму, а потім"
|
||
" відкрийте її знову. Закрити вікно недостатньо. На macOS натисніть {ph2} "
|
||
"{ph3}; на Windows також завершіть роботу за допомогою піктограми лотка, якщо"
|
||
" вона є."
|
||
|
||
#. {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}Термінальні агенти{ph1} (Claude Code, Codex, Gemini CLI): вийдіть із "
|
||
"сеансу та запустіть його знову."
|
||
|
||
#: 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 ""
|
||
"Вкажіть своєму агенту цільовий шлях і задайте конкретне запитання. Для "
|
||
"програми JavaScript або Electron ви можете почати з:"
|
||
|
||
#. {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 ""
|
||
"Подивіться на {ph0} і дізнайтеся, як він експортує дані. Вкажіть точки "
|
||
"входу, виклики та залежності, а також вихідні місця для Ваших результатів."
|
||
|
||
#: website/public/get-started/index.html:499
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "Replace the path with your local target."
|
||
msgstr "Замініть шлях на ваш локальний цільовий об'єкт."
|
||
|
||
#: website/public/get-started/index.html:501
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "How do I get a folder's full path?"
|
||
msgstr "Як отримати повний шлях до папки?"
|
||
|
||
#. {ph0}: <strong>
|
||
#. {ph1}: </strong>
|
||
#. {ph2}: <em>
|
||
#. {ph3}: </em>
|
||
#: website/public/get-started/index.html: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} Windows :{ph1} у Провіднику файлів клацніть правою кнопкою миші папку "
|
||
"та виберіть \"{ph2}Копіювати як шлях{ph3}\". На Windows 10, утримуючи Shift,"
|
||
" клацніть правою кнопкою миші."
|
||
|
||
#. {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} macOS :{ph1} у Finder клацніть правою кнопкою миші папку, утримуйте "
|
||
"опцію та виберіть {ph2}Копіювати \"...\"як шлях{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}Будь-яка система:{ph1} перетягніть папку у вікно терміналу, і з'явиться"
|
||
" шлях до неї."
|
||
|
||
#: 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 "У терміналі вкладіть шлях, що містить пробіли, у лапки."
|
||
|
||
#: website/public/get-started/index.html:524
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "Use the CLI"
|
||
msgstr "Використовуйте 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 ""
|
||
"Проаналізуйте папку Програми JavaScript або Electron або архів ASAR, не "
|
||
"запускаючи програму:"
|
||
|
||
#: website/public/get-started/index.html:531
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "Static application analysis"
|
||
msgstr "Статичний аналіз додатків"
|
||
|
||
#. {ph0}: <code>.asar</code>
|
||
#. {ph1}: <code>"D:/apps/example"</code>
|
||
#: website/public/get-started/index.html: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 ""
|
||
"Замініть шлях на каталог витягнутої Програми або файл {ph0}. У Windows тут "
|
||
"працює шлях, наприклад {ph1}."
|
||
|
||
#: website/public/get-started/index.html:550
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "Where do I find an app's .asar file?"
|
||
msgstr "Де я можу знайти файл програми asar?"
|
||
|
||
#. {ph0}: <code>resources</code>
|
||
#: website/public/get-started/index.html:551
|
||
#, python-brace-format
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "Electron apps usually keep it in a {ph0} folder:"
|
||
msgstr "Програми Electron зазвичай зберігають його в папці {ph0}:"
|
||
|
||
#. {ph0}: <strong>
|
||
#. {ph1}: </strong>
|
||
#. {ph2}: <code
|
||
#. >C:\Users\<you>\AppData\Local\Programs\<App>\resources\app.asar</code
|
||
#. >
|
||
#: website/public/get-started/index.html:556
|
||
#, python-brace-format
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "{ph0}Windows:{ph1} {ph2}"
|
||
msgstr "{ph0} Windows :{ph1} {ph2}"
|
||
|
||
#. {ph0}: <strong>
|
||
#. {ph1}: </strong>
|
||
#. {ph2}: <code
|
||
#. >/Applications/<App>.app/Contents/Resources/app.asar</code >
|
||
#. {ph3}: <em>
|
||
#. {ph4}: </em>
|
||
#: website/public/get-started/index.html:562
|
||
#, python-brace-format
|
||
msgctxt "page:get-started/index.html"
|
||
msgid ""
|
||
"{ph0}macOS:{ph1} {ph2} (right-click the app and choose {ph3}Show Package "
|
||
"Contents{ph4})"
|
||
msgstr ""
|
||
"{ph0} macOS :{ph1} {ph2} (клацніть правою кнопкою миші додаток і виберіть "
|
||
"{ph3}Показати вміст пакета{ph4})"
|
||
|
||
#. {ph0}: <strong>
|
||
#. {ph1}: </strong>
|
||
#. {ph2}: <code>/opt/<App>/resources/app.asar</code>
|
||
#: website/public/get-started/index.html:570
|
||
#, python-brace-format
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "{ph0}Linux:{ph1} often {ph2}"
|
||
msgstr "{ph0} Linux :{ph1} часто {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 ""
|
||
"Деякі додатки встановлюються в іншому місці. Знайдіть у папці програми "
|
||
"{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 ""
|
||
"Результат ідентифікує додаток, показує з'єднання між модулями і вказує місце"
|
||
" розташування їх джерел. В результаті відзначаються з'єднання, які REA не "
|
||
"може вирішити."
|
||
|
||
#. {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 "Якщо ви хочете, щоб у вашій оболонці була постійна команда {ph0}:"
|
||
|
||
#: website/public/get-started/index.html:590
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "Install the CLI"
|
||
msgstr "Встановіть CLI"
|
||
|
||
#. {ph0}: <a href="../guides/javascript/" >
|
||
#. {ph1}: </a >
|
||
#: website/public/get-started/index.html:602
|
||
#, python-brace-format
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "{ph0}Continue with the JavaScript application guide{ph1}"
|
||
msgstr "{ph0}Продовжуйте читати посібник із застосування JavaScript{ph1}"
|
||
|
||
#: website/public/get-started/index.html:610
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "Set up native analysis"
|
||
msgstr "Налаштування аналізу програм з машинним кодом"
|
||
|
||
#: 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 ""
|
||
"Програмам з машинним кодом потрібен локальний інструмент аналізу. Виберіть і"
|
||
" налаштуйте один із наведених нижче інструментів, а потім вкажіть REA ваш "
|
||
"виконуваний файл або бібліотеку."
|
||
|
||
#: website/public/get-started/index.html:616
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "Choose a tool: Ghidra, Hopper or IDA"
|
||
msgstr "Виберіть інструмент: Ghidra, Hopper або 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 ""
|
||
"Використовуйте існуючу версію Ghidra 12.1.x і 64-розрядну версію JDK 21 або "
|
||
"новіше на Linux або macOS , на x64 або arm64. Для встановлення Ghidra "
|
||
"потрібен власний декомпілятор для архітектури вашого хоста. Задайте шляхи "
|
||
"перед запуском програми установки:"
|
||
|
||
#: website/public/get-started/index.html:628
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "Connect your Ghidra installation"
|
||
msgstr "Підключіть вашу установку Ghidra"
|
||
|
||
#: website/public/get-started/index.html:631
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "Ghidra connection · macOS / Linux"
|
||
msgstr "Підключення Ghidra * macOS / Linux"
|
||
|
||
#: 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 ""
|
||
"Замініть обидва шляхи на існуючі установки. Програма установки перевіряє їх "
|
||
"і записує коректні настройки для обраного Вами клієнта. У Linux arm64 вам "
|
||
"може знадобитися окремо зібрати власний декомпілятор Ghidra."
|
||
|
||
#: website/public/get-started/index.html:654
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "Connect Ghidra on Windows"
|
||
msgstr "Підключіть Ghidra до 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 має експериментальну підтримку лише для читання власних програм "
|
||
"x86 та x64 PE та бібліотек DLL на фіксованих локальних дисках NTFS. "
|
||
"Використовуйте існуючу установку Ghidra 12.1.x і 64-розрядну версію JDK 21 "
|
||
"або новіше:"
|
||
|
||
#: website/public/get-started/index.html:663
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "Ghidra connection · Windows PowerShell"
|
||
msgstr "Підключення Ghidra * 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 ""
|
||
"Замініть ці два шляхи на свої установки, а потім перегляньте план "
|
||
"встановлення."
|
||
|
||
#: 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 ""
|
||
"Підключіть Hopper до macOS або Linux. Запустіть наведену вище команду "
|
||
"встановлення; вона виявить існуючу установку або запропонує план "
|
||
"встановлення для вашого схвалення."
|
||
|
||
#: 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 ""
|
||
"На macOS перед автоматичним аналізом виконайте перший запуск Hopper, "
|
||
"вибравши демонстраційний режим або активацію ліцензії."
|
||
|
||
#: 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 ""
|
||
"Перевірені Налаштування IDA використовують Windows з наявною реєстрацією MCP"
|
||
" для підключеного графічного інтерфейсу користувача або безголової бази "
|
||
"даних. Аналіз Linux і macOS без урахування даних залишається неперевіреним."
|
||
|
||
#: website/public/get-started/index.html:708
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "Connect an existing IDA MCP registration"
|
||
msgstr "Підключіть існуючу реєстрацію IDA MCP"
|
||
|
||
#. {ph0}: <code>command</code>
|
||
#. {ph1}: <code>args</code>
|
||
#. {ph2}: <code>env</code>
|
||
#. {ph3}: <code>mcpServers</code>
|
||
#. {ph4}: <code>ida-pro-mcp</code>
|
||
#: website/public/get-started/index.html: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 ""
|
||
"Збережіть робочу {ph0} вищого сервера, {ph1} і необов'язковий {ph2} у файлі "
|
||
"JSON. Також приймається існуючий {ph3}об'єкт mcpServers із записом {ph4}. "
|
||
"Вкажіть REA у цьому файлі перед встановленням:"
|
||
|
||
#: website/public/get-started/index.html:720
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "IDA connection · Windows PowerShell"
|
||
msgstr "Підключення IDA * Windows PowerShell"
|
||
|
||
#. {ph0}: <code>"mode": "headless"</code>
|
||
#: website/public/get-started/index.html: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 ""
|
||
"Доданий профіль використовує застарілі інструменти версії 1.4.0, а вихідний "
|
||
"двійковий файл уже відкритий у IDA . У профілі headless використовується "
|
||
"вищестоящий API database-supervisor і реєстрація в {ph0}; для реальної "
|
||
"перевірки використовується супервізор IDA 9.3 Windows x64. Лікар перевіряє "
|
||
"реєстрацію, не запускаючи IDA ."
|
||
|
||
#. {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 ""
|
||
"Вкажіть REA вихідний шлях до виконуваного файлу за допомогою {ph0} у запиті "
|
||
"CLI. Для агента включіть {ph1} у середу реєстрації REA і виберіть IDA при "
|
||
"відкритті двійкового файлу."
|
||
|
||
#: website/public/get-started/index.html:756
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "For an existing Ghidra setup, inspect a function with:"
|
||
msgstr "Для існуючого Налаштування Ghidra перевірте функцію за допомогою:"
|
||
|
||
#: website/public/get-started/index.html:761
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "Function analysis"
|
||
msgstr "Функціональний аналіз"
|
||
|
||
#. {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 "Замінивши {ph0} на ім'я функції або адресу, яку ви хочете перевірити."
|
||
|
||
#: website/public/get-started/index.html:779
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "How native analysis sessions work"
|
||
msgstr "Як працюють сеанси аналізу програм з машинним кодом"
|
||
|
||
#: 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 ""
|
||
"Кожна команда CLI імпортує та аналізує двійковий файл, а потім закриває свій"
|
||
" сеанс. Запити MCP вашого агента повторно використовують імпортований "
|
||
"двійковий файл, поки цей сеанс відкритий."
|
||
|
||
#. {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}Дотримуйтесь прикладу аналізу програм з машинним кодом{ph1}, щоб "
|
||
"побачити, як результат функції призводить до відновленого обчислення."
|
||
|
||
#: website/public/get-started/index.html:793
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "Getting help"
|
||
msgstr "Отримання допомоги"
|
||
|
||
#: website/public/get-started/index.html:794
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "If your agent doesn't see REA"
|
||
msgstr "Якщо ваш агент не бачить REA"
|
||
|
||
#. {ph0}: <code>doctor</code>
|
||
#: website/public/get-started/index.html: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 ""
|
||
"Перезапустіть або підключіть клієнт після встановлення. Перевірте його "
|
||
"REA-з'єднання з {ph0}; для Codex :"
|
||
|
||
#: website/public/get-started/index.html:801
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "Check one client"
|
||
msgstr "Перевірте одного клієнта"
|
||
|
||
#: website/public/get-started/index.html:813
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "If a provider needs attention"
|
||
msgstr "Якщо постачальник послуг потребує уваги"
|
||
|
||
#: website/public/get-started/index.html:814
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "Check the provider you're using. For Ghidra:"
|
||
msgstr "Перевірте, яким провайдером ви користуєтесь. Для Ghidra :"
|
||
|
||
#: website/public/get-started/index.html:817
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "Check one provider"
|
||
msgstr "Перевірте одного постачальника"
|
||
|
||
#: 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 ""
|
||
"У звіті міститься інформація про невдалу перевірку та запропонований "
|
||
"наступний крок."
|
||
|
||
#. {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 задаваний{ph1}{ph2} питання щодо оновлень, агентів та аналізу.{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}Виберіть Посібник з дослідження{ph1}{ph2} і приклади для двійкового "
|
||
"файлу, програми Electron та браузера.{ph3}"
|
||
|
||
#. {ph0}: <a href="https://github.com/morluto/rea/issues">
|
||
#. {ph1}: </a >
|
||
#. {ph2}: <span>
|
||
#. {ph3}: </span>
|
||
#: website/public/get-started/index.html: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} Проблема{ph1}{ph2} GitHub повідомляють про проблему з командою та "
|
||
"діагностикою.{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 питання спільноти{ph1}{ph2}, розслідування та поточна робота.{ph3}"
|
||
|
||
#: website/public/get-started/index.html:6
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "Install REA and Set Up Your Coding Agent"
|
||
msgstr "Встановіть REA і налаштуйте свій кодуючий агент"
|
||
|
||
#: website/public/get-started/index.html:7
|
||
msgctxt "page:get-started/index.html"
|
||
msgid ""
|
||
"Connect REA to your coding agent or inspect a local JavaScript or Electron "
|
||
"app from the terminal. Setup, first questions and native provider guides."
|
||
msgstr ""
|
||
"Підключіть REA до Вашого програміста або скористайтеся локальним додатком "
|
||
"JavaScript або Electron з терміналу. Налаштування, перші Питання та "
|
||
"інструкції для місцевих провайдерів."
|
||
|
||
#: website/public/get-started/index.html:199
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "Copy Node.js version check"
|
||
msgstr "Скопіюйте перевірку версії Node.js"
|
||
|
||
#: website/public/get-started/index.html:220
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "Copy Node.js installation command for Windows"
|
||
msgstr "Скопіюйте команду встановлення Node.js для Windows"
|
||
|
||
#: website/public/get-started/index.html:243
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "Copy PowerShell execution policy command"
|
||
msgstr "Скопіюйте команду політики виконання PowerShell"
|
||
|
||
#: website/public/get-started/index.html:259
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "Copy Homebrew Node.js installation command"
|
||
msgstr "Скопіювати команду установки Homebrew Node.js"
|
||
|
||
#: website/public/get-started/index.html:274
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "Copy fnm installation command for macOS"
|
||
msgstr "Скопіюйте команду встановлення fnm для macOS"
|
||
|
||
#: website/public/get-started/index.html:289
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "Copy Node.js 24 commands for macOS"
|
||
msgstr "Скопіюйте 24 команди Node.js для macOS"
|
||
|
||
#: website/public/get-started/index.html:305
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "Copy fnm installation command for Linux"
|
||
msgstr "Скопіюйте команду встановлення fnm для Linux"
|
||
|
||
#: website/public/get-started/index.html:324
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "Copy Node.js 24 commands for Linux"
|
||
msgstr "Скопіюйте 24 команди Node.js для Linux"
|
||
|
||
#: website/public/get-started/index.html:347
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "On this page"
|
||
msgstr "На цій сторінці"
|
||
|
||
#: website/public/get-started/index.html:356
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "REA getting started guide"
|
||
msgstr "REA Керівництво по початку роботи"
|
||
|
||
#: website/public/get-started/index.html:410
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "Copy REA installation prompt"
|
||
msgstr "Скопіюйте запит на встановлення REA"
|
||
|
||
#: website/public/get-started/index.html:456
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "Copy agent setup command"
|
||
msgstr "Команда Налаштування агента копіювання"
|
||
|
||
#: website/public/get-started/index.html:532
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "Copy JavaScript analysis command"
|
||
msgstr "Скопіювати команду аналізу JavaScript"
|
||
|
||
#: website/public/get-started/index.html:591
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "Copy CLI installation command"
|
||
msgstr "Скопіювати команду установки CLI"
|
||
|
||
#: website/public/get-started/index.html:632
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "Copy ghidra connection · macos / linux"
|
||
msgstr "Скопіюйте з'єднання з ghidra * macos / linux"
|
||
|
||
#: website/public/get-started/index.html:664
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "Copy Ghidra connection for Windows PowerShell"
|
||
msgstr "Скопіюйте підключення Ghidra для Windows PowerShell"
|
||
|
||
#: website/public/get-started/index.html:721
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "Copy IDA connection for Windows PowerShell"
|
||
msgstr "Скопіюйте підключення IDA для Windows PowerShell"
|
||
|
||
#: website/public/get-started/index.html:762
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "Copy native function analysis command"
|
||
msgstr "Скопіювати команду аналізу власної функції"
|
||
|
||
#: website/public/get-started/index.html:802
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "Copy client diagnosis command"
|
||
msgstr "Скопіювати команду діагностики клієнта"
|
||
|
||
#: website/public/get-started/index.html:818
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "Copy provider diagnosis command"
|
||
msgstr "Команда діагностики Постачальника копіювання"
|
||
|
||
#: website/public/get-started/index.html:869
|
||
msgctxt "page:get-started/index.html"
|
||
msgid "Back to top"
|
||
msgstr "Нагору"
|
||
|
||
#: website/public/guides/browser/index.html:99
|
||
msgctxt "page:guides/browser/index.html"
|
||
msgid "Skip to content"
|
||
msgstr "Перейти до змісту"
|
||
|
||
#. {ph0}: <a href="../../">
|
||
#. {ph1}: </a>
|
||
#. {ph2}: <a href="../">
|
||
#. {ph3}: </a>
|
||
#: website/public/guides/browser/index.html:181
|
||
#, python-brace-format
|
||
msgctxt "page:guides/browser/index.html"
|
||
msgid "{ph0}Home{ph1} / {ph2}Guides{ph3} / Browser observation"
|
||
msgstr "{ph0}Головний{ph1} сторінка / {ph2}Керівництво{ph3} / Огляд браузера"
|
||
|
||
#. {ph0}: <br />
|
||
#: website/public/guides/browser/index.html:185
|
||
#, python-brace-format
|
||
msgctxt "page:guides/browser/index.html"
|
||
msgid "See what happens{ph0}when you click."
|
||
msgstr "Подивимося, що станеться{ph0}коли ви натиснете."
|
||
|
||
#: website/public/guides/browser/index.html: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 ""
|
||
"Використовуйте невеликий додаток браузера для підключення дії, його "
|
||
"мережевого запиту та JavaScript, який створює завантаження."
|
||
|
||
#: website/public/guides/browser/index.html:193
|
||
msgctxt "page:guides/browser/index.html"
|
||
msgid "In this guide"
|
||
msgstr "У цьому керівництві"
|
||
|
||
#. {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}Навести приклад{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}Відкрийте браузер{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}Запитайте свого агента{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}Захоплення з 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}Прочитайте запит і скрипт{ph1}"
|
||
|
||
#: website/public/guides/browser/index.html:204
|
||
msgctxt "page:guides/browser/index.html"
|
||
msgid "What happens when you click Export?"
|
||
msgstr "Що відбувається, коли ви натискаєте кнопку Експортувати?"
|
||
|
||
#. {ph0}: <a href="../../examples/notes-web/">
|
||
#. {ph1}: </a>
|
||
#. {ph2}: <strong>
|
||
#. {ph3}: </strong>
|
||
#. {ph4}: <code>notes.json</code>
|
||
#: website/public/guides/browser/index.html: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 ""
|
||
"В {ph0}прикладі браузера Notes{ph1} є кнопка {ph2}експорту заміток{ph3}. При"
|
||
" натисканні на неї завантажується файл {ph4}, дві нотатки форматуються як "
|
||
"CSV і починається завантаження."
|
||
|
||
#: website/public/guides/browser/index.html:213
|
||
msgctxt "page:guides/browser/index.html"
|
||
msgid "From the click to the CSV download"
|
||
msgstr "Від кліка до завантаження CSV"
|
||
|
||
#. {ph0}: <span class="flow-label">
|
||
#. {ph1}: </span >
|
||
#. {ph2}: <span class="flow-node">
|
||
#. {ph3}: </span >
|
||
#. {ph4}: <span class="flow-note" >
|
||
#. {ph5}: </span >
|
||
#: website/public/guides/browser/index.html: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 * ви{ph1}{ph2} натискаєте кнопку Експорт заміток{ph3}{ph4} і "
|
||
"виконуєте цю дію в своєму браузері під час виконання запису.{ph5}"
|
||
|
||
#. {ph0}: <span class="flow-label">
|
||
#. {ph1}: </span >
|
||
#. {ph2}: <span class="flow-node">
|
||
#. {ph3}: </span >
|
||
#. {ph4}: <span class="flow-note" >
|
||
#. {ph5}: </span >
|
||
#: website/public/guides/browser/index.html: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} Запишіть запит{ph3}{ph4}, захопіть URL-адресу "
|
||
"запиту, статус відповіді та структуру JSON із вибраної сторінки.{ph5}"
|
||
|
||
#. {ph0}: <span class="flow-label">
|
||
#. {ph1}: </span >
|
||
#. {ph2}: <span class="flow-node">
|
||
#. {ph3}: </span >
|
||
#. {ph4}: <span class="flow-note" >
|
||
#. {ph5}: <code>fetch("./notes.json")</code>
|
||
#. {ph6}: <code>export.js</code>
|
||
#. {ph7}: </span >
|
||
#: website/public/guides/browser/index.html: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 * ваш агент{ph1}{ph2} прочитав експортний код{ph3}{ph4}, що "
|
||
"підключає спостережуваний запит до {ph5} в {ph6}.{ph7}"
|
||
|
||
#: website/public/guides/browser/index.html:244
|
||
msgctxt "page:guides/browser/index.html"
|
||
msgid "Start the capture before clicking Export notes."
|
||
msgstr "Запустіть запис, перш ніж натиснути кнопку Експортувати нотатки."
|
||
|
||
#: website/public/guides/browser/index.html:250
|
||
msgctxt "page:guides/browser/index.html"
|
||
msgid "Open Chrome with remote debugging"
|
||
msgstr "Відкрийте Chrome з віддаленою налагодженням"
|
||
|
||
#: 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 ""
|
||
"Відкрийте хостинг-приклад Notes, використовуючи окремий профіль браузера та "
|
||
"локальний порт для налагодження. На Linux :"
|
||
|
||
#: website/public/guides/browser/index.html:257
|
||
msgctxt "page:guides/browser/index.html"
|
||
msgid "Start the example browser"
|
||
msgstr "Запустіть приблизний браузер"
|
||
|
||
#: 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 "Копіювати"
|
||
|
||
#: 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 ""
|
||
"Використовуйте шлях до виконуваного файлу встановленого браузера в macOS або"
|
||
" Windows . Ви можете замінити URL-адресу сторінки на іншу сторінку, яку ви "
|
||
"хочете переглянути."
|
||
|
||
#: 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 підключається до цього існуючого браузера. Ви зберігаєте контроль над "
|
||
"сторінкою, виконуєте дію та закриваєте браузер після завершення."
|
||
|
||
#: website/public/guides/browser/index.html:283
|
||
msgctxt "page:guides/browser/index.html"
|
||
msgid "Ask your agent to watch one action"
|
||
msgstr "Попросіть свого агента Переглянути одну дію"
|
||
|
||
#. {ph0}: <span class="terminal-dots" aria-hidden="true" >
|
||
#. {ph1}: <i>
|
||
#. {ph2}: </i>
|
||
#. {ph3}: <i>
|
||
#. {ph4}: </i>
|
||
#. {ph5}: <i>
|
||
#. {ph6}: </i>
|
||
#. {ph7}: </span >
|
||
#: website/public/guides/browser/index.html: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}Ваш кодуючий агент"
|
||
|
||
#. {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}Використовуйте REA, щоб переглянути цю сторінку, поки я "
|
||
"натискаю \"експортувати нотатки\". Який запит вона надсилає та як працює "
|
||
"CSV?{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 ""
|
||
"Приклад запиту. Вкажіть своєму агенту кінцеву точку налагодження, {ph0} і "
|
||
"URL-адреса сторінки. Нехай він запустить запис до того, як ви натиснете."
|
||
|
||
#: 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 ""
|
||
"Ваш агент виявляє цільову сторінку, запускає вікно перегляду та зчитує "
|
||
"отримані дані. Потім він може перевірити сценарій, що лежить в основі "
|
||
"експорту."
|
||
|
||
#: website/public/guides/browser/index.html:319
|
||
msgctxt "page:guides/browser/index.html"
|
||
msgid "Or capture from the terminal"
|
||
msgstr "Або захоплення з терміналу"
|
||
|
||
#: website/public/guides/browser/index.html:320
|
||
msgctxt "page:guides/browser/index.html"
|
||
msgid "Find the page's target ID:"
|
||
msgstr "Знайдіть цільовий ідентифікатор сторінки:"
|
||
|
||
#: website/public/guides/browser/index.html:323
|
||
msgctxt "page:guides/browser/index.html"
|
||
msgid "Find the page"
|
||
msgstr "Знайдіть потрібну сторінку"
|
||
|
||
#. {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 ""
|
||
"Виберіть цільовий об'єкт за допомогою URL-адреси, наведеної в прикладі "
|
||
"Notes. Замінивши {ph0} нижче на його ідентифікатор, потім запустіть:"
|
||
|
||
#: website/public/guides/browser/index.html:342
|
||
msgctxt "page:guides/browser/index.html"
|
||
msgid "Capture the next ten seconds"
|
||
msgstr "Зафіксуйте наступні десять секунд"
|
||
|
||
#. {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 ""
|
||
"Дайте команді підключитися протягом декількох секунд, а потім натисніть "
|
||
"\"{ph0}Експортувати нотатки{ph1}\"у цьому браузері. Результат з'явиться "
|
||
"після завершення перегляду."
|
||
|
||
#: 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 ""
|
||
"Отриманий результат включає вибрану сторінку, мережеву активність протягом "
|
||
"цього вікна та форму відповіді у форматі JSON. Попередні запити не входять "
|
||
"до цього списку."
|
||
|
||
#: website/public/guides/browser/index.html:370
|
||
msgctxt "page:guides/browser/index.html"
|
||
msgid "Read the request and export script"
|
||
msgstr "Прочитайте запит і експортуйте скрипт"
|
||
|
||
#: 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 "Записано за допомогою REA 4.1.0 на прикладі local Notes"
|
||
|
||
#: website/public/guides/browser/index.html:378
|
||
msgctxt "page:guides/browser/index.html"
|
||
msgid "Captured fact"
|
||
msgstr "Зафіксований факт"
|
||
|
||
#: website/public/guides/browser/index.html:379
|
||
msgctxt "page:guides/browser/index.html"
|
||
msgid "Value"
|
||
msgstr "Цінність"
|
||
|
||
#: website/public/guides/browser/index.html:384
|
||
msgctxt "page:guides/browser/index.html"
|
||
msgid "Request"
|
||
msgstr "Запит"
|
||
|
||
#: website/public/guides/browser/index.html:388
|
||
msgctxt "page:guides/browser/index.html"
|
||
msgid "Response"
|
||
msgstr "Відповідь"
|
||
|
||
#: website/public/guides/browser/index.html:392
|
||
msgctxt "page:guides/browser/index.html"
|
||
msgid "Request initiator"
|
||
msgstr "Ініціатор запиту"
|
||
|
||
#. {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} · сценарій"
|
||
|
||
#: website/public/guides/browser/index.html:396
|
||
msgctxt "page:guides/browser/index.html"
|
||
msgid "Response structure"
|
||
msgstr "Структура відповіді"
|
||
|
||
#. {ph0}: <code>notes[]</code>
|
||
#. {ph1}: <code>id</code>
|
||
#. {ph2}: <code>title</code>
|
||
#: website/public/guides/browser/index.html:397
|
||
#, python-brace-format
|
||
msgctxt "page:guides/browser/index.html"
|
||
msgid "{ph0} with {ph1} and {ph2} fields"
|
||
msgstr "{ph0} з полями {ph1} і {ph2}"
|
||
|
||
#: website/public/guides/browser/index.html:407
|
||
msgctxt "page:guides/browser/index.html"
|
||
msgid "Read the loaded scripts"
|
||
msgstr "Прочитайте завантажені скрипти"
|
||
|
||
#. {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 ""
|
||
"Запит ідентифікує джерело даних, а REA записує export.js {ph0} як ініціатор "
|
||
"запиту. Прочитайте захоплений вихідний код сценарію, щоб побачити, як "
|
||
"використовуються дані:"
|
||
|
||
#. {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 ""
|
||
"Завантаження виконується на сторінці за допомогою відповіді у форматі JSON. "
|
||
"Крок форматування CSV виконується зі сценарію; аналіз мережі показує, що при"
|
||
" цьому клацанні запитувався файл {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 ""
|
||
"Знайдіть скрипт, який запитує файл {ph0}. Як він уникає заголовків, що "
|
||
"містять коми чи лапки?"
|
||
|
||
#. {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 ""
|
||
"Для встановленої програми JavaScript або Electron продовжуйте працювати з "
|
||
"робочим {ph0}процесом додатки{ph1}, щоб відстежувати файли та межі процесів."
|
||
|
||
#: website/public/guides/browser/index.html:6
|
||
msgctxt "page:guides/browser/index.html"
|
||
msgid "Browser and Network Analysis — REA"
|
||
msgstr "Аналіз браузера та мережі-REA"
|
||
|
||
#: website/public/guides/browser/index.html:7
|
||
msgctxt "page:guides/browser/index.html"
|
||
msgid ""
|
||
"Observe a Notes export with REA: select a browser page, capture a click, "
|
||
"inspect the request and follow the export script."
|
||
msgstr ""
|
||
"Спостерігайте за експортом нотаток за допомогою REA: виберіть сторінку "
|
||
"браузера, зафіксуйте клацання, перегляньте запит і дотримуйтесь сценарію "
|
||
"експорту."
|
||
|
||
#: website/public/guides/browser/index.html:192
|
||
msgctxt "page:guides/browser/index.html"
|
||
msgid "On this page"
|
||
msgstr "На цій сторінці"
|
||
|
||
#: website/public/guides/browser/index.html:202
|
||
msgctxt "page:guides/browser/index.html"
|
||
msgid "Browser observation"
|
||
msgstr "Спостереження в браузері"
|
||
|
||
#: website/public/guides/browser/index.html:258
|
||
msgctxt "page:guides/browser/index.html"
|
||
msgid "Copy start the example browser"
|
||
msgstr "Скопіюйте та запустіть приклад браузера"
|
||
|
||
#: website/public/guides/browser/index.html:290
|
||
msgctxt "page:guides/browser/index.html"
|
||
msgid "Copy example prompt"
|
||
msgstr "Запит на копіювання прикладу"
|
||
|
||
#: website/public/guides/browser/index.html:324
|
||
msgctxt "page:guides/browser/index.html"
|
||
msgid "Copy find the page"
|
||
msgstr "Скопіюйте знайдену сторінку"
|
||
|
||
#: website/public/guides/browser/index.html:343
|
||
msgctxt "page:guides/browser/index.html"
|
||
msgid "Copy capture the next ten seconds"
|
||
msgstr "Скопіюйте запис на наступні десять секунд"
|
||
|
||
#: website/public/guides/browser/index.html:408
|
||
msgctxt "page:guides/browser/index.html"
|
||
msgid "Copy read the loaded scripts"
|
||
msgstr "Копіювати читати завантажені скрипти"
|
||
|
||
#: website/public/guides/browser/index.html:485
|
||
msgctxt "page:guides/browser/index.html"
|
||
msgid "Back to top"
|
||
msgstr "Нагору"
|
||
|
||
#: website/public/guides/index.html:99
|
||
msgctxt "page:guides/index.html"
|
||
msgid "Skip to content"
|
||
msgstr "Перейти до змісту"
|
||
|
||
#. {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}Головний{ph1} сторінка / Путівники"
|
||
|
||
#: website/public/guides/index.html:182
|
||
msgctxt "page:guides/index.html"
|
||
msgid "REA guides."
|
||
msgstr "Напрямні REA."
|
||
|
||
#: 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 ""
|
||
"Проаналізуйте вбудовану функцію, експорт Electron або запит браузера. Кожен "
|
||
"посібник містить підказку, код та результати."
|
||
|
||
#: website/public/guides/index.html:190
|
||
msgctxt "page:guides/index.html"
|
||
msgid "First investigation"
|
||
msgstr "Перше розслідування"
|
||
|
||
#: website/public/guides/index.html:192
|
||
msgctxt "page:guides/index.html"
|
||
msgid "Set up REA"
|
||
msgstr "Налаштування REA"
|
||
|
||
#: website/public/guides/index.html:193
|
||
msgctxt "page:guides/index.html"
|
||
msgid "Connect your coding agent or use REA from the terminal."
|
||
msgstr "Підключіть свій кодер або використовуйте REA з терміналу."
|
||
|
||
#: website/public/guides/index.html:194
|
||
msgctxt "page:guides/index.html"
|
||
msgid "Get started with REA"
|
||
msgstr "Почніть роботу з REA"
|
||
|
||
#: website/public/guides/index.html:198
|
||
msgctxt "page:guides/index.html"
|
||
msgid "Native binaries"
|
||
msgstr "Програми з машинним кодом"
|
||
|
||
#: website/public/guides/index.html:200
|
||
msgctxt "page:guides/index.html"
|
||
msgid "Recover a sound-pan calculation"
|
||
msgstr "Відновлення розрахунку положення звуку зліва / справа"
|
||
|
||
#: 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 ""
|
||
"Почніть з виконуваного файлу гри Windows. Ознайомтеся з інструкціями, "
|
||
"дотримуйтесь абонента, прочитайте Числові константи та перевірте відновлений"
|
||
" C."
|
||
|
||
#: website/public/guides/index.html:211
|
||
msgctxt "page:guides/index.html"
|
||
msgid "Native analysis guide"
|
||
msgstr "Керівництво по аналізу програм з машинним кодом"
|
||
|
||
#: website/public/guides/index.html:215
|
||
msgctxt "page:guides/index.html"
|
||
msgid "JavaScript & Electron"
|
||
msgstr "JavaScript і Electron"
|
||
|
||
#: website/public/guides/index.html:217
|
||
msgctxt "page:guides/index.html"
|
||
msgid "Follow a CSV export"
|
||
msgstr "Слідкуйте за експортом CSV"
|
||
|
||
#: 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 ""
|
||
"Невеликий додаток Notes поєднує в собі функції рендеринга, попереднього "
|
||
"завантаження і основного процесу. Використовуйте REA для підключення API, "
|
||
"каналу IPC та запису файлів."
|
||
|
||
#: website/public/guides/index.html:228
|
||
msgctxt "page:guides/index.html"
|
||
msgid "JavaScript & Electron guide"
|
||
msgstr "Керівництво по JavaScript і 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 ""
|
||
"Щоб створити більший упакований додаток, скористайтеся {ph0}мостом "
|
||
"буфера{ph1} обміну Notion."
|
||
|
||
#: website/public/guides/index.html:238
|
||
msgctxt "page:guides/index.html"
|
||
msgid "Browser behavior"
|
||
msgstr "Поведінка браузера"
|
||
|
||
#: website/public/guides/index.html:240
|
||
msgctxt "page:guides/index.html"
|
||
msgid "Observe a click"
|
||
msgstr "Спостерігайте за клацанням"
|
||
|
||
#: 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 ""
|
||
"Відкрийте приклад working Notes, запишіть запит на експорт і знайдіть код, "
|
||
"який перетворює його відповідь на завантаження."
|
||
|
||
#: website/public/guides/index.html:250
|
||
msgctxt "page:guides/index.html"
|
||
msgid "Browser observation guide"
|
||
msgstr "Керівництво по спостереженню за браузером"
|
||
|
||
#: website/public/guides/index.html:6
|
||
msgctxt "page:guides/index.html"
|
||
msgid "Reverse Engineering Guides — REA"
|
||
msgstr "Посібники з реверс-інжинірингу-REA"
|
||
|
||
#: website/public/guides/index.html:7
|
||
msgctxt "page:guides/index.html"
|
||
msgid ""
|
||
"Learn REA through short worked examples: a native calculation, an Electron "
|
||
"CSV export and a browser request."
|
||
msgstr ""
|
||
"Вивчіть REA на коротких прикладах: власні обчислення, експорт Electron, CSV "
|
||
"і запит з браузера."
|
||
|
||
#: website/public/guides/index.html:269
|
||
msgctxt "page:guides/index.html"
|
||
msgid "Back to top"
|
||
msgstr "Нагору"
|
||
|
||
#: website/public/guides/javascript/index.html:99
|
||
msgctxt "page:guides/javascript/index.html"
|
||
msgid "Skip to content"
|
||
msgstr "Перейти до змісту"
|
||
|
||
#. {ph0}: <a href="../../">
|
||
#. {ph1}: </a>
|
||
#. {ph2}: <a href="../">
|
||
#. {ph3}: </a>
|
||
#: website/public/guides/javascript/index.html:181
|
||
#, python-brace-format
|
||
msgctxt "page:guides/javascript/index.html"
|
||
msgid "{ph0}Home{ph1} / {ph2}Guides{ph3} / JavaScript & Electron"
|
||
msgstr ""
|
||
"{ph0}Головний{ph1} сторінка / {ph2}Керівництво{ph3} / JavaScript і Electron"
|
||
|
||
#. {ph0}: <br />
|
||
#: website/public/guides/javascript/index.html:185
|
||
#, python-brace-format
|
||
msgctxt "page:guides/javascript/index.html"
|
||
msgid "Trace an Electron{ph0}CSV export."
|
||
msgstr "Простежте експорт Electron {ph0} CSV."
|
||
|
||
#: website/public/guides/javascript/index.html: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 ""
|
||
"Виконайте натискання кнопки на сторінці API, через Electron IPC, для запису "
|
||
"файлів CSV."
|
||
|
||
#: website/public/guides/javascript/index.html:193
|
||
msgctxt "page:guides/javascript/index.html"
|
||
msgid "In this guide"
|
||
msgstr "У цьому керівництві"
|
||
|
||
#. {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}Навести приклад{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}Запитайте свого агента{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}Відстеження експортного коду{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}Спробуйте на прикладі{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}Перевірте пристрій запису CSV{ph1}"
|
||
|
||
#: website/public/guides/javascript/index.html:204
|
||
msgctxt "page:guides/javascript/index.html"
|
||
msgid "Where does “Export notes” go?"
|
||
msgstr "Куди дівається \"експорт нотаток\"?"
|
||
|
||
#. {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 ""
|
||
"У цьому посібнику використовується невеликий додаток Electron. При "
|
||
"натисканні кнопки {ph0}Експортувати нотатки{ph1} викликається API на "
|
||
"сторінці, виконується перехід до основного процесу і записується CSV . "
|
||
"Поведінка розподілена по декількох файлах."
|
||
|
||
#: website/public/guides/javascript/index.html:212
|
||
msgctxt "page:guides/javascript/index.html"
|
||
msgid "The CSV export across Electron processes"
|
||
msgstr "Експорт CSV в рамках процесів Electron"
|
||
|
||
#. {ph0}: <span class="flow-label">
|
||
#. {ph1}: </span >
|
||
#. {ph2}: <span class="flow-node">
|
||
#. {ph3}: <code>notes.exportCsv()</code>
|
||
#. {ph4}: </span >
|
||
#. {ph5}: <span class="flow-note" >
|
||
#. {ph6}: <code>renderer.js</code>
|
||
#. {ph7}: <code>preload.js</code>
|
||
#. {ph8}: </span >
|
||
#: website/public/guides/javascript/index.html: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}Візуалізатор → попереднє завантаження{ph1}{ph2}{ph3}{ph4}{ph5}{ph6} "
|
||
"викликає API, наданий за допомогою {ph7}.{ph8}"
|
||
|
||
#. {ph0}: <span class="flow-label">
|
||
#. {ph1}: </span >
|
||
#. {ph2}: <span class="flow-node">
|
||
#. {ph3}: <code>notes:export</code>
|
||
#. {ph4}: </span >
|
||
#. {ph5}: <span class="flow-note" >
|
||
#. {ph6}: </span >
|
||
#: website/public/guides/javascript/index.html: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}Примітки: при експорті попереднього завантаження викликається IPC-"
|
||
"канал: іменоване повідомлення для основного "
|
||
"процесу{ph1}{ph2}{ph3}{ph4}{ph5}.{ph6}"
|
||
|
||
#. {ph0}: <span class="flow-label">
|
||
#. {ph1}: </span >
|
||
#. {ph2}: <span class="flow-node">
|
||
#. {ph3}: </span >
|
||
#. {ph4}: <span class="flow-note" >
|
||
#. {ph5}: <code>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}Основний процес{ph1}{ph2} - обробник експорту{ph3}{ph4}{ph5} main.js "
|
||
"обробляє цей канал і викликає CSV writer.{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} форматує нотатки → {ph1} записує файли для {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 відображає буквальний виклик IPC до свого обробника та ідентифікує "
|
||
"відкритий API. Шлях виводиться з коду; під час перехоплення під час "
|
||
"виконання можна перевірити, що виконується."
|
||
|
||
#: website/public/guides/javascript/index.html:253
|
||
msgctxt "page:guides/javascript/index.html"
|
||
msgid "Ask about the CSV export"
|
||
msgstr "Запитайте про експорт CSV"
|
||
|
||
#. {ph0}: <a href="../../get-started/#agent">
|
||
#. {ph1}: </a>
|
||
#: website/public/guides/javascript/index.html: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}Підключіть свій агент до REA{ph1} і передайте йому каталог програм або "
|
||
"файл ASAR:"
|
||
|
||
#. {ph0}: <span class="terminal-dots" aria-hidden="true" >
|
||
#. {ph1}: <i>
|
||
#. {ph2}: </i>
|
||
#. {ph3}: <i>
|
||
#. {ph4}: </i>
|
||
#. {ph5}: <i>
|
||
#. {ph6}: </i>
|
||
#. {ph7}: </span >
|
||
#: website/public/guides/javascript/index.html: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}Ваш кодуючий агент"
|
||
|
||
#: website/public/guides/javascript/index.html:264
|
||
#: website/public/guides/javascript/index.html:413
|
||
msgctxt "page:guides/javascript/index.html"
|
||
msgid "Copy"
|
||
msgstr "Копіювати"
|
||
|
||
#. {ph0}: <span class="prompt-symbol" aria-hidden="true">
|
||
#. {ph1}: </span >
|
||
#. {ph2}: <span id="javascript-prompt" >
|
||
#. {ph3}: </span >
|
||
#. {ph4}: <span class="terminal-cursor" aria-hidden="true">
|
||
#. {ph5}: </span>
|
||
#: website/public/guides/javascript/index.html: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}Використовуйте REA, щоб побачити, що відбувається, коли я "
|
||
"експортую нотатки до цієї програми. Де створено CSV?{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 "Приклад запиту. Вкажіть абсолютний шлях до папки програми або {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 зчитує файли програми та створює карту точок входу, модулів та меж "
|
||
"процесів. Ваш агент використовує цю карту, щоб звузити пошук до функції "
|
||
"експорту."
|
||
|
||
#: website/public/guides/javascript/index.html:292
|
||
msgctxt "page:guides/javascript/index.html"
|
||
msgid "Trace the export code"
|
||
msgstr "Відстеження експортного коду"
|
||
|
||
#: website/public/guides/javascript/index.html:293
|
||
msgctxt "page:guides/javascript/index.html"
|
||
msgid "The page calls a small API"
|
||
msgstr "Сторінка викликає невеликий API"
|
||
|
||
#: 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 ""
|
||
"Сторінці відомо ім'я методу. Реалізація знаходиться в попередньому "
|
||
"завантаженні, яка надає її в розпорядження засоби візуалізації."
|
||
|
||
#. {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 записує {ph0} і буквений канал {ph1}. Він пов'язує цей виклик з єдиним "
|
||
"відповідним обробником в основному процесі."
|
||
|
||
#. {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 ""
|
||
"Читання обробника дає відповідь на оригінальне запитання: {ph0} нотатки "
|
||
"форматуються, і основний процес записує файл {ph1} в папку завантажень "
|
||
"користувача."
|
||
|
||
#: 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 ""
|
||
"Записано за допомогою REA 4.1.0 на прикладі, який можна завантажити нижче. "
|
||
"Розташування вихідних текстів відповідає висновкам API, каналу та обробника."
|
||
|
||
#: website/public/guides/javascript/index.html:360
|
||
msgctxt "page:guides/javascript/index.html"
|
||
msgid "Analyze the example yourself"
|
||
msgstr "Проаналізуйте цей приклад самостійно"
|
||
|
||
#. {ph0}: <a class="button" href="../../examples/notes-example.zip"
|
||
#. download="notes-example.zip" >
|
||
#. {ph1}: </a >
|
||
#: website/public/guides/javascript/index.html:367
|
||
#, python-brace-format
|
||
msgctxt "page:guides/javascript/index.html"
|
||
msgid "{ph0}Download example ZIP{ph1}"
|
||
msgstr "{ph0}Приклад завантаження ZIP-файлу{ph1}"
|
||
|
||
#: website/public/guides/javascript/index.html:376
|
||
msgctxt "page:guides/javascript/index.html"
|
||
msgid "Browse the six source files"
|
||
msgstr "Перегляньте шість оригінальних файлів"
|
||
|
||
#: website/public/guides/javascript/index.html:412
|
||
msgctxt "page:guides/javascript/index.html"
|
||
msgid "Static application analysis"
|
||
msgstr "Статичний аналіз додатків"
|
||
|
||
#. {ph0}: <code>normalized_result.summary.ipc</code>
|
||
#. {ph1}: <code>normalized_result.graph</code>
|
||
#: website/public/guides/javascript/index.html: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 ""
|
||
"Замініть шлях на папку, яку ви розпакували. Ви повинні знайти один канал IPC"
|
||
" та один відповідний обробник у {ph0}. Місця розташування джерел вказані в "
|
||
"{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 ""
|
||
"Для власної програми використовуйте ту саму команду, вказавши її каталог або"
|
||
" шлях до ASAR. Агент може використовувати рядок літер, ІМ'Я API або канал "
|
||
"IPC за допомогою інструментів відстеження функцій REA."
|
||
|
||
#: website/public/guides/javascript/index.html:438
|
||
msgctxt "page:guides/javascript/index.html"
|
||
msgid "Inspect the CSV writer"
|
||
msgstr "Перевірте пристрій запису CSV"
|
||
|
||
#. {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 ""
|
||
"Випливати {ph0} в його обробник. Які вхідні дані надходять до CSV writer і "
|
||
"що станеться, якщо запис файлу не вдасться?"
|
||
|
||
#: 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 ""
|
||
"Використовуйте розташування джерел для перевірки цих відомостей. Назви "
|
||
"обчислених каналів та неоднозначні обробники можуть залишатися невирішеними;"
|
||
" спостереження під час виконання дають вам інший спосіб їх вивчення."
|
||
|
||
#. {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}Скористайтеся мостом обміну{ph1} Notion і {ph2}застосуйте той самий "
|
||
"підхід до пакетної програми Electron.{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}Поспостерігайте, як браузер при експорті{ph1}{ph2} фіксує реальний "
|
||
"клік, і подивіться, який запит він робить.{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}Виконання нативної функції{ph1}{ph2} продовжується у двійковому "
|
||
"форматі, коли функція залежить від рідного коду.{ph3}"
|
||
|
||
#: website/public/guides/javascript/index.html:6
|
||
msgctxt "page:guides/javascript/index.html"
|
||
msgid "JavaScript and Electron Analysis — REA"
|
||
msgstr "Аналіз JavaScript і Electron-REA"
|
||
|
||
#: website/public/guides/javascript/index.html:7
|
||
msgctxt "page:guides/javascript/index.html"
|
||
msgid ""
|
||
"Trace a Notes CSV export through a renderer API, preload and IPC handler "
|
||
"with REA. Includes downloadable example files and a verified analysis "
|
||
"result."
|
||
msgstr ""
|
||
"Відстежуйте експорт Notes CSV за допомогою API візуалізації, попереднього "
|
||
"завантаження та обробника IPC за допомогою REA. Включає завантажувані файли "
|
||
"прикладів і перевірений результат аналізу."
|
||
|
||
#: website/public/guides/javascript/index.html:192
|
||
msgctxt "page:guides/javascript/index.html"
|
||
msgid "On this page"
|
||
msgstr "На цій сторінці"
|
||
|
||
#: website/public/guides/javascript/index.html:202
|
||
msgctxt "page:guides/javascript/index.html"
|
||
msgid "JavaScript & Electron"
|
||
msgstr "JavaScript і Electron"
|
||
|
||
#: website/public/guides/javascript/index.html:264
|
||
msgctxt "page:guides/javascript/index.html"
|
||
msgid "Copy example prompt"
|
||
msgstr "Запит на копіювання прикладу"
|
||
|
||
#: website/public/guides/javascript/index.html:413
|
||
msgctxt "page:guides/javascript/index.html"
|
||
msgid "Copy static application analysis"
|
||
msgstr "Копіювання статичного аналізу програми"
|
||
|
||
#: website/public/guides/javascript/index.html:490
|
||
msgctxt "page:guides/javascript/index.html"
|
||
msgid "Back to top"
|
||
msgstr "Нагору"
|
||
|
||
#: website/public/guides/native/index.html:99
|
||
msgctxt "page:guides/native/index.html"
|
||
msgid "Skip to content"
|
||
msgstr "Перейти до змісту"
|
||
|
||
#. {ph0}: <a href="../../">
|
||
#. {ph1}: </a>
|
||
#. {ph2}: <a href="../">
|
||
#. {ph3}: </a>
|
||
#: website/public/guides/native/index.html:181
|
||
#, python-brace-format
|
||
msgctxt "page:guides/native/index.html"
|
||
msgid "{ph0}Home{ph1} / {ph2}Guides{ph3} / Native analysis"
|
||
msgstr ""
|
||
"{ph0}Головний{ph1} сторінка / {ph2}Керівництво{ph3} / Аналіз програм з "
|
||
"машинним кодом"
|
||
|
||
#. {ph0}: <br />
|
||
#: website/public/guides/native/index.html:184
|
||
#, python-brace-format
|
||
msgctxt "page:guides/native/index.html"
|
||
msgid "Recover DX-Ball's{ph0}sound-pan calculation."
|
||
msgstr "Відновити дані DX-Ball{ph0}розрахунок положення звуку зліва / справа."
|
||
|
||
#: website/public/guides/native/index.html:185
|
||
msgctxt "page:guides/native/index.html"
|
||
msgid ""
|
||
"Inspect the original instructions, identify the input and constants, then "
|
||
"check the recovered C."
|
||
msgstr ""
|
||
"Перегляньте оригінальні інструкції, визначте вхідні дані та константи, а "
|
||
"потім перевірте відновлений C."
|
||
|
||
#: website/public/guides/native/index.html:192
|
||
msgctxt "page:guides/native/index.html"
|
||
msgid "In this guide"
|
||
msgstr "У цьому керівництві"
|
||
|
||
#. {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}Навести приклад{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}Запитайте свого агента{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}Ознайомтеся з результатами REA{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}Відновіть і перевірте{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}Використовуйте власний двійковий файл{ph1}"
|
||
|
||
#: website/public/guides/native/index.html:203
|
||
msgctxt "page:guides/native/index.html"
|
||
msgid "Calculate left/right sound panning"
|
||
msgstr "Розрахувати розташування стереозвуку зліва / справа"
|
||
|
||
#: 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 ""
|
||
"У DX-Ball удар цегли задає горизонтальне положення екрану. Звуковий код "
|
||
"перетворює його в значення повороту вліво / вправо."
|
||
|
||
#. {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 ""
|
||
"Початкова функція, {ph0}, видає короткий результат декомпіляції: виклик "
|
||
"функції {ph1}. REA також повертає свої інструкції та пристрої виклику, які "
|
||
"дають агенту можливість знайти відсутню арифметику."
|
||
|
||
#: website/public/guides/native/index.html:215
|
||
msgctxt "page:guides/native/index.html"
|
||
msgid "New to these terms?"
|
||
msgstr "Ви знайомі з цими умовами?"
|
||
|
||
#. {ph0}: <strong>
|
||
#. {ph1}: </strong>
|
||
#. {ph2}: <code>MOV</code>
|
||
#. {ph3}: <code>ADD</code>
|
||
#: website/public/guides/native/index.html: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}Інструкція:{ph1} кроки, які виконує процесор, відображаються у зручній "
|
||
"для читання формі, такій як {ph2} або {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}Результат декомпіляції / псевдокод:{ph1} спроба інструменту аналізу "
|
||
"перетворити інструкції назад у C-подібний код. У ньому можуть бути відсутні "
|
||
"окремі частини, як у цьому прикладі."
|
||
|
||
#. {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}Викликаюча функція:{ph1} функція, яка викликає цю функцію. Вона "
|
||
"показує, які значення передаються."
|
||
|
||
#. {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}Адрес:{ph1} розташування в програмі, записане в шістнадцятковому "
|
||
"форматі, наприклад, {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}Константа:{ph1} фіксовані числа, що зберігаються в програмі, зчитуються"
|
||
" як необроблені байти та декодуються."
|
||
|
||
#: website/public/guides/native/index.html:242
|
||
msgctxt "page:guides/native/index.html"
|
||
msgid "Three pieces of evidence, one calculation"
|
||
msgstr "Три докази, один розрахунок"
|
||
|
||
#. {ph0}: <span class="flow-label">
|
||
#. {ph1}: </span >
|
||
#. {ph2}: <span class="flow-node">
|
||
#. {ph3}: </span >
|
||
#. {ph4}: <span class="flow-note" >
|
||
#. {ph5}: </span >
|
||
#: website/public/guides/native/index.html: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 * інструкції{ph1}{ph2} Ціле введення{ph3}{ph4}, прочитаний стеком, "
|
||
"надає значення, яке використовується інструкціями з плаваючою комою.{ph5}"
|
||
|
||
#. {ph0}: <span class="flow-label">
|
||
#. {ph1}: </span >
|
||
#. {ph2}: <span class="flow-node">
|
||
#. {ph3}: </span >
|
||
#. {ph4}: <span class="flow-note" >
|
||
#. {ph5}: <code>20 + 30 × tile_x</code>
|
||
#. {ph6}: </span >
|
||
#: website/public/guides/native/index.html: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 * Абонент{ph1}{ph2} - Екранна координата{ph3}{ph4}, по якій абонент,"
|
||
" що вдарився цеглою, проходить {ph5}.{ph6}"
|
||
|
||
#. {ph0}: <span class="flow-label">
|
||
#. {ph1}: </span >
|
||
#. {ph2}: <span class="flow-node">
|
||
#. {ph3}: </span >
|
||
#. {ph4}: <span class="flow-note" >
|
||
#. {ph5}: <code>1.5625</code>
|
||
#. {ph6}: <code>500.0</code>
|
||
#. {ph7}: </span >
|
||
#: website/public/guides/native/index.html: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 * байти даних{ph1}{ph2} Числова константа{ph3}{ph4}, на які "
|
||
"посилаються байти, декодуються як {ph5}, {ph6} і масштабне значення.{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 надає інструкції, зв'язок між викликами функцій і байти. Агент "
|
||
"інтерпретує їх разом."
|
||
|
||
#: website/public/guides/native/index.html:281
|
||
msgctxt "page:guides/native/index.html"
|
||
msgid "Ask about the behavior"
|
||
msgstr "Запитайте про поведінку"
|
||
|
||
#. {ph0}: <a href="../../get-started/#agent" >
|
||
#. {ph1}: </a >
|
||
#. {ph2}: <a href="../../get-started/#native" >
|
||
#. {ph3}: </a >
|
||
#: website/public/guides/native/index.html: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 ""
|
||
"Після {ph0}підключення REA до вашого агента{ph1} і {ph2}налаштування "
|
||
"інструменту аналізу програм з машинним кодом{ph3} надайте локальний "
|
||
"виконуваний файл та запитання:"
|
||
|
||
#: website/public/guides/native/index.html:293
|
||
msgctxt "page:guides/native/index.html"
|
||
msgid "Which analysis tool should I use?"
|
||
msgstr "Який інструмент аналізу слід використовувати?"
|
||
|
||
#: 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 потрібен один з них для читання власних програм:"
|
||
|
||
#. {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} Hopper{ph1} (macOS або Linux ): програма встановлення REA виявляє його"
|
||
" або пропонує встановити. На macOS відкрийте Hopper один раз і виберіть "
|
||
"демонстраційний режим або активуйте ліцензію перед першим аналізом."
|
||
|
||
#. {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} Ghidra{ph1} (macOS або Linux ; експериментальна версія Windows ): "
|
||
"безкоштовний, але вимагає існуючої установки Ghidra 12.1.x і 64-розрядної "
|
||
"версії JDK 21 або новіше."
|
||
|
||
#. {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} IDA{ph1} (Windows): для існуючого Налаштування IDA з реєстрацією MCP."
|
||
|
||
#. {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 ""
|
||
"Інструкції по налаштуванню аналізу програм з машинним кодом наведені в "
|
||
"розділі {ph0}Налаштування аналізу програм з машинним кодом{ph1}."
|
||
|
||
#. {ph0}: <span class="terminal-dots" aria-hidden="true" >
|
||
#. {ph1}: <i>
|
||
#. {ph2}: </i>
|
||
#. {ph3}: <i>
|
||
#. {ph4}: </i>
|
||
#. {ph5}: <i>
|
||
#. {ph6}: </i>
|
||
#. {ph7}: </span >
|
||
#: website/public/guides/native/index.html: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}Ваш кодуючий агент"
|
||
|
||
#: website/public/guides/native/index.html:324
|
||
#: website/public/guides/native/index.html:455
|
||
msgctxt "page:guides/native/index.html"
|
||
msgid "Copy"
|
||
msgstr "Копіювати"
|
||
|
||
#. {ph0}: <span class="prompt-symbol" aria-hidden="true">
|
||
#. {ph1}: </span >
|
||
#. {ph2}: <span id="native-prompt" >
|
||
#. {ph3}: </span >
|
||
#. {ph4}: <span class="terminal-cursor" aria-hidden="true">
|
||
#. {ph5}: </span>
|
||
#: website/public/guides/native/index.html: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}Використовуйте REA, щоб дізнатися, як DX-Ball обчислює "
|
||
"розташування стереозвуку. Поясніть розрахунок і покажіть код.{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 ""
|
||
"Приклад запиту. Вкажіть своєму агенту шлях до локального виконуваного файлу "
|
||
"DX-Ball 1.07. REA не включає DX-Ball, тому використовуйте власну копію або "
|
||
"задайте те саме питання про іншу невелику програму Windows, яку ви маєте."
|
||
|
||
#: website/public/guides/native/index.html:348
|
||
msgctxt "page:guides/native/index.html"
|
||
msgid "How do I get a file's full path?"
|
||
msgstr "Як отримати повний шлях до файлу?"
|
||
|
||
#. {ph0}: <strong>
|
||
#. {ph1}: </strong>
|
||
#. {ph2}: <em>
|
||
#. {ph3}: </em>
|
||
#: website/public/guides/native/index.html: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} Windows :{ph1} у Провіднику файлів клацніть правою кнопкою миші файл і"
|
||
" виберіть \"{ph2}Копіювати як шлях{ph3}\". На Windows 10, утримуючи Shift, "
|
||
"клацніть правою кнопкою миші."
|
||
|
||
#. {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} macOS :{ph1} у Finder клацніть файл правою кнопкою миші, утримуйте "
|
||
"опцію та виберіть {ph2}Копіювати \"...\"як шлях{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}Будь-яка система:{ph1} перетягніть файл у вікно терміналу, і з'явиться "
|
||
"шлях до нього."
|
||
|
||
#: website/public/guides/native/index.html:367
|
||
msgctxt "page:guides/native/index.html"
|
||
msgid "Read the REA results"
|
||
msgstr "Ознайомтеся з результатами REA"
|
||
|
||
#: website/public/guides/native/index.html:368
|
||
msgctxt "page:guides/native/index.html"
|
||
msgid "Read the input"
|
||
msgstr "Прочитайте вхідні дані"
|
||
|
||
#: 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 ""
|
||
"Інструкції завантажують цілий аргумент і перетворюють його в арифметику з "
|
||
"плаваючою комою. Це вхідні дані, відсутні в першому поданні псевдокоду."
|
||
|
||
#: website/public/guides/native/index.html:382
|
||
msgctxt "page:guides/native/index.html"
|
||
msgid "Follow the caller"
|
||
msgstr "Слідуйте за абонентом"
|
||
|
||
#. {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 ідентифікує об'єкт, на який впала цегла. У попередніх інструкціях "
|
||
"координату плитки множили на 30; додавання {ph0} (20) дає положення цегли на"
|
||
" екрані."
|
||
|
||
#: website/public/guides/native/index.html:396
|
||
msgctxt "page:guides/native/index.html"
|
||
msgid "Read the referenced constants"
|
||
msgstr "Прочитайте зазначені константи"
|
||
|
||
#: 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 ""
|
||
"Арифметика посилається на ці адреси. Зчитування байтів дозволяє отримати "
|
||
"фактичні значення; порядок команд повідомляє агенту, як вони "
|
||
"використовуються."
|
||
|
||
#: website/public/guides/native/index.html:414
|
||
msgctxt "page:guides/native/index.html"
|
||
msgid "Write and check the recovered function"
|
||
msgstr "Запишіть і перевірте відновлену функцію"
|
||
|
||
#: 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 ""
|
||
"При масштабі 1,0 позиції екрану 0, 320 і 640 перетворюються в -500, 0 і 500 "
|
||
"до перетворення в ціле число. При обчисленні центр екрану виявляється в "
|
||
"центрі стереополя."
|
||
|
||
#: 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 ""
|
||
"Агент використовував результати REA для написання коду C. окремі перевірки "
|
||
"порівняли 3205 входів з оригінальною функцією x86 і відтворили всі 63 "
|
||
"скомпільовані байти повної функції."
|
||
|
||
#. {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}Дивіться повне дослідження та порівняння збірки з C{ph1}"
|
||
|
||
#: website/public/guides/native/index.html:440
|
||
msgctxt "page:guides/native/index.html"
|
||
msgid "Try it with your own binary"
|
||
msgstr "Спробуйте це за допомогою власного двійкового коду"
|
||
|
||
#. {ph0}: <a href="../../get-started/#native" >
|
||
#. {ph1}: </a >
|
||
#: website/public/guides/native/index.html: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}Підключіть Постачальника програм для аналізу машинного коду{ph1}, потім"
|
||
" надайте своєму агенту локальний виконуваний файл або бібліотеку та функцію "
|
||
"для вивчення. Корисні початкові запитання включають “як обробляється цей "
|
||
"файл?\"або\" яка функція виконує цю дію в меню?”."
|
||
|
||
#: 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 ""
|
||
"Якщо ви вже знаєте назву функції або адресу, ви можете запитати її з "
|
||
"терміналу. Для налаштованої установки Ghidra:"
|
||
|
||
#: website/public/guides/native/index.html:454
|
||
msgctxt "page:guides/native/index.html"
|
||
msgid "Function analysis"
|
||
msgstr "Функціональний аналіз"
|
||
|
||
#. {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 ""
|
||
"Замініть цільовий шлях і {ph0} на своє власне ім'я функції або адресу. Кожен"
|
||
" виклик CLI імпортує та аналізує двійковий файл, а потім закриває свій "
|
||
"сеанс. Запити вашого агента MCP повторно використовують імпортований "
|
||
"двійковий файл, поки цей сеанс відкритий."
|
||
|
||
#: 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 ""
|
||
"Прочитайте псевдокод разом з інструкціями та посиланнями. Якщо в результаті "
|
||
"залишається невирішеним питання про виклик або значення, використовуйте це "
|
||
"місце як наступне запитання."
|
||
|
||
#: website/public/guides/native/index.html:6
|
||
msgctxt "page:guides/native/index.html"
|
||
msgid "Native Binary Analysis — REA"
|
||
msgstr "Власний Бінарний аналіз-REA"
|
||
|
||
#: website/public/guides/native/index.html:7
|
||
msgctxt "page:guides/native/index.html"
|
||
msgid ""
|
||
"Recover a native calculation with REA: inspect instructions, follow a "
|
||
"caller, read constants and check reconstructed C."
|
||
msgstr ""
|
||
"Відновіть власні обчислення за допомогою REA: перегляньте інструкції, "
|
||
"дотримуйтесь абонента, прочитайте константи та перевірте відновлений C."
|
||
|
||
#: website/public/guides/native/index.html:191
|
||
msgctxt "page:guides/native/index.html"
|
||
msgid "On this page"
|
||
msgstr "На цій сторінці"
|
||
|
||
#: website/public/guides/native/index.html:201
|
||
msgctxt "page:guides/native/index.html"
|
||
msgid "Native analysis"
|
||
msgstr "Аналіз програм з машинним кодом"
|
||
|
||
#: website/public/guides/native/index.html:324
|
||
msgctxt "page:guides/native/index.html"
|
||
msgid "Copy example prompt"
|
||
msgstr "Запит на копіювання прикладу"
|
||
|
||
#: website/public/guides/native/index.html:455
|
||
msgctxt "page:guides/native/index.html"
|
||
msgid "Copy function analysis"
|
||
msgstr "Аналіз функції копіювання"
|
||
|
||
#: website/public/guides/native/index.html:496
|
||
msgctxt "page:guides/native/index.html"
|
||
msgid "Back to top"
|
||
msgstr "Нагору"
|
||
|
||
#: website/public/index.html:101
|
||
msgctxt "page:index.html"
|
||
msgid "Skip to content"
|
||
msgstr "Перейти до змісту"
|
||
|
||
#: website/public/index.html:183 website/public/index.html:193
|
||
#: website/public/index.html:191
|
||
msgctxt "page:index.html"
|
||
msgid "On this page"
|
||
msgstr "На цій сторінці"
|
||
|
||
#: website/public/index.html:184 website/public/index.html:233
|
||
msgctxt "page:index.html"
|
||
msgid "Set up REA"
|
||
msgstr "Налаштування 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}Налаштування 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}Що таке вогонь?{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}Як допомагає REA{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}Гра в динозаврів{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}Калькулятор{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}Спробуйте REA{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}Дізнатися більше{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}Допомога та зворотній зв'язок{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}Товариство{ph1}"
|
||
|
||
#: website/public/index.html:212
|
||
msgctxt "page:index.html"
|
||
msgid "Reverse engineering, with your coding agent"
|
||
msgstr "Зворотне проектування за допомогою агента кодування"
|
||
|
||
#. {ph0}: <br />
|
||
#: website/public/index.html:213
|
||
#, python-brace-format
|
||
msgctxt "page:index.html"
|
||
msgid "Find out how{ph0}software works."
|
||
msgstr "Дізнайтеся, як{ph0}працює програма."
|
||
|
||
#: 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 надає вашому ШІ-помічнику інструменти, щоб дослідити програму й пояснити"
|
||
" її поведінку."
|
||
|
||
#. {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 "Вже знайомі з RE? {ph0}Перейти до посібників з аналізу →{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 "Хочете копнути глибше? {ph0}Читати блог →{ph1}"
|
||
|
||
#: website/public/index.html:234
|
||
msgctxt "page:index.html"
|
||
msgid "Copy this into your coding agent:"
|
||
msgstr "Вставте цей запит у свого ШІ-помічника для програмування:"
|
||
|
||
#. {ph0}: <span class="terminal-dots" aria-hidden="true" >
|
||
#. {ph1}: <i>
|
||
#. {ph2}: </i>
|
||
#. {ph3}: <i>
|
||
#. {ph4}: </i>
|
||
#. {ph5}: <i>
|
||
#. {ph6}: </i>
|
||
#. {ph7}: </span >
|
||
#: website/public/index.html: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}Ваш кодуючий агент"
|
||
|
||
#: 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 "Копіювати"
|
||
|
||
#: website/public/index.html:261
|
||
msgctxt "page:index.html"
|
||
msgid "Or run this in your terminal:"
|
||
msgstr "Або виконайте цю команду в терміналі:"
|
||
|
||
#: website/public/index.html:273
|
||
msgctxt "page:index.html"
|
||
msgid "Approve the setup plan, then restart your agent."
|
||
msgstr "Перевірте й схваліть план змін, а потім перезапустіть помічника."
|
||
|
||
#: website/public/index.html:288
|
||
msgctxt "page:index.html"
|
||
msgid "What is reverse engineering?"
|
||
msgstr "Що таке зворотна розробка?"
|
||
|
||
#. {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 ""
|
||
"З’ясування того, як працює програма, через {ph0}дослідження самої "
|
||
"програми.{ph1}"
|
||
|
||
#. {ph0}: <mark class="prose-highlight">
|
||
#. {ph1}: </mark>
|
||
#. {ph2}: <mark class="prose-highlight">
|
||
#. {ph3}: </mark>
|
||
#. {ph4}: <mark class="prose-highlight">
|
||
#. {ph5}: </mark>
|
||
#: website/public/index.html: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 ""
|
||
"Мета: зрозуміти функцію досить добре, щоб {ph0}пояснити її{ph1}, "
|
||
"{ph2}змінивши{ph3} або {ph4}перебудувати заново.{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 "До REA · Ви досліджуєте {ph0}самостійно{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} Декодування гілок"
|
||
|
||
#. {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} Відстеження викликів"
|
||
|
||
#. {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} Відновіть правило"
|
||
|
||
#. {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}Оригінальні вибрані інструкції для x64 ·{ph1}{ph2}{ph3}"
|
||
|
||
#: website/public/index.html:391
|
||
msgctxt "page:index.html"
|
||
msgid "01 · Which branch?"
|
||
msgstr "01 * в якій філії?"
|
||
|
||
#. {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? 0x5c?{ph1} Два переходи в одне і те ж місце. Що це за "
|
||
"оператори?”"
|
||
|
||
#: website/public/index.html:396
|
||
msgctxt "page:index.html"
|
||
msgid "Look up the command IDs, then label the branch."
|
||
msgstr "Знайдіть ідентифікатори команд, а потім позначте гілку."
|
||
|
||
#: website/public/index.html:402
|
||
msgctxt "page:index.html"
|
||
msgid "Divide ÷"
|
||
msgstr "Розділити ÷"
|
||
|
||
#: website/public/index.html:406
|
||
msgctxt "page:index.html"
|
||
msgid "Multiply ×"
|
||
msgstr "Помноживши ×"
|
||
|
||
#: website/public/index.html:411
|
||
msgctxt "page:index.html"
|
||
msgid "02 · What do the calls do?"
|
||
msgstr "02 · Що роблять викликані функції?"
|
||
|
||
#. {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-це чисто. Дзвінки-це лише адреси. {ph0}Який з них ділиться? Яке "
|
||
"значення входить в?{ph1}”"
|
||
|
||
#: website/public/index.html:417
|
||
msgctxt "page:index.html"
|
||
msgid "Inspect the helpers and trace the stored values."
|
||
msgstr "Перевірте допоміжні функції та простежте збережені значення."
|
||
|
||
#: website/public/index.html:427
|
||
msgctxt "page:index.html"
|
||
msgid "Divide"
|
||
msgstr "Діливши"
|
||
|
||
#: website/public/index.html:432
|
||
msgctxt "page:index.html"
|
||
msgid "03 · What is the rule?"
|
||
msgstr "03 * яке це правило?"
|
||
|
||
#. {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 ""
|
||
"\"Цей шлях множиться на інші вхідні дані. Таким чином, {ph0}10% означає 10% "
|
||
"від 200{ph1} після +”."
|
||
|
||
#: website/public/index.html:437
|
||
msgctxt "page:index.html"
|
||
msgid "Name the operands and check both operator paths."
|
||
msgstr "Назвіть операнди та перевірте обидва шляхи до операторів."
|
||
|
||
#: website/public/index.html:453 website/public/index.html:381
|
||
msgctxt "page:index.html"
|
||
msgid "Illustrative expert reasoning"
|
||
msgstr "Наочне міркування експерта"
|
||
|
||
#. {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}Ви розшифровуєте інструкції, виконуєте виклики функцій і відновлюєте "
|
||
"обчислення.{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 "З REA · Ви запитуєте {ph0}свого помічника{ph1}"
|
||
|
||
#: website/public/index.html:468
|
||
msgctxt "page:index.html"
|
||
msgid "One prompt."
|
||
msgstr "Лише один запит."
|
||
|
||
#. {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 "Запитайте помічника {ph0}звичайними словами.{ph1}"
|
||
|
||
#. {ph0}: <span class="terminal-dots" aria-hidden="true" >
|
||
#. {ph1}: <i>
|
||
#. {ph2}: </i>
|
||
#. {ph3}: <i>
|
||
#. {ph4}: </i>
|
||
#. {ph5}: <i>
|
||
#. {ph6}: </i>
|
||
#. {ph7}: </span >
|
||
#: website/public/index.html: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}Приклад підказки * Калькулятор"
|
||
|
||
#: website/public/index.html:496
|
||
msgctxt "page:index.html"
|
||
msgid "Example answer · based on the findings"
|
||
msgstr "Приклад відповіді * заснований на результатах дослідження"
|
||
|
||
#. {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 ""
|
||
"Після + кнопка % виводить {ph0}процентне значення від першого числа.{ph1}"
|
||
|
||
#: website/public/index.html:511
|
||
msgctxt "page:index.html"
|
||
msgid "REA supplies"
|
||
msgstr "REA надає"
|
||
|
||
#: website/public/index.html:512
|
||
msgctxt "page:index.html"
|
||
msgid "The handler’s instructions, decompiled code and calls."
|
||
msgstr "Інструкції обробника, декомпільований код та виклики."
|
||
|
||
#: website/public/index.html:517
|
||
msgctxt "page:index.html"
|
||
msgid "Your agent explains"
|
||
msgstr "Помічник пояснює"
|
||
|
||
#: website/public/index.html:518
|
||
msgctxt "page:index.html"
|
||
msgid "Which branch applies, what it calculates and how to rebuild it."
|
||
msgstr "Яка гілка застосовується, що вона обчислює і як її перебудувати."
|
||
|
||
#. {ph0}: <a href="#calculator">
|
||
#. {ph1}: </a>
|
||
#: website/public/index.html: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 ""
|
||
"Виберіть збірку з встановленої бібліотеки DLL Calculator. Міркування та "
|
||
"відповідь ілюструють отримані результати. {ph0}Продовжимо з прикладом з "
|
||
"калькулятором ↓{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}Давайте розглянемо два приклади.{ph1} Змініть швидкість гри, потім "
|
||
"поверніться до калькулятора та відновіть його кнопку %."
|
||
|
||
#: website/public/index.html:542
|
||
msgctxt "page:index.html"
|
||
msgid "Example 01 · Chrome’s dinosaur game"
|
||
msgstr "Приклад 01 * гра в динозаврів Chrome"
|
||
|
||
#: website/public/index.html:543
|
||
msgctxt "page:index.html"
|
||
msgid "Why does the dinosaur get faster?"
|
||
msgstr "Чому динозавр прискорюється?"
|
||
|
||
#: website/public/index.html:547 website/public/index.html:785
|
||
msgctxt "page:index.html"
|
||
msgid "Goal"
|
||
msgstr "Мета"
|
||
|
||
#. {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 "Перебудовуйте гру з {ph0}регульованою швидкістю.{ph1}"
|
||
|
||
#: website/public/index.html:554 website/public/index.html:792
|
||
msgctxt "page:index.html"
|
||
msgid "Why reverse engineer it?"
|
||
msgstr "Навіщо його перепроектувати?"
|
||
|
||
#. {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 ""
|
||
"Щоб відтворити його прискорення, нам потрібно {ph0}правило в біговій "
|
||
"грі{ph1}: як швидко воно починається, наскільки збільшується і коли "
|
||
"припиняється."
|
||
|
||
#: website/public/index.html:564
|
||
msgctxt "page:index.html"
|
||
msgid "Play the reconstruction"
|
||
msgstr "Грати у відтворену версію"
|
||
|
||
#: website/public/index.html:596
|
||
msgctxt "page:index.html"
|
||
msgid "Play"
|
||
msgstr "Грати"
|
||
|
||
#: website/public/index.html:599
|
||
msgctxt "page:index.html"
|
||
msgid "Jump ↑"
|
||
msgstr "Стрибок ↑"
|
||
|
||
#: website/public/index.html:600
|
||
msgctxt "page:index.html"
|
||
msgid "Restart"
|
||
msgstr "Почати знову"
|
||
|
||
#: website/public/index.html:603
|
||
msgctxt "page:index.html"
|
||
msgid "Speed"
|
||
msgstr "Швидкість"
|
||
|
||
#: website/public/index.html:613
|
||
msgctxt "page:index.html"
|
||
msgid "Use the recovered acceleration rule"
|
||
msgstr "Використовуйте правило відновленого прискорення"
|
||
|
||
#: website/public/index.html:617
|
||
msgctxt "page:index.html"
|
||
msgid "Original rule: start at 6, then increase toward 13."
|
||
msgstr "Початкове правило: починайте з 6, потім збільшуйте до 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 ""
|
||
"Перемістіть повзунок, щоб встановити власну швидкість. Пробіл або стрибок "
|
||
"прибирають кактус."
|
||
|
||
#: website/public/index.html:625
|
||
msgctxt "page:index.html"
|
||
msgid ""
|
||
"Enable JavaScript to play the reconstruction. The code and explanation above"
|
||
" remain readable."
|
||
msgstr ""
|
||
"Увімкніть JavaScript для відтворення реконструкції. Наведений вище код та "
|
||
"пояснення залишаються читабельними."
|
||
|
||
#: website/public/index.html:633 website/public/index.html:863
|
||
msgctxt "page:index.html"
|
||
msgid "REA returned"
|
||
msgstr "REA повернув"
|
||
|
||
#. {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}Скрипт, фактично запущений на сторінці.{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: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}Приклад підказки * гра в динозаврів"
|
||
|
||
#. {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}Використовуйте REA, щоб ознайомитися з цією грою "
|
||
"динозаврів. Чому вона стала швидше? Покажіть правило швидкості, а потім "
|
||
"створіть зменшену версію зі змінною швидкістю.{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 ""
|
||
"Перевірена мета: {ph0}версія браузера wayou, заснована{ph1} на Chromium."
|
||
|
||
#. {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}Почніть з 6.{ph1} Додавайте 0,001 при кожному оновленні без збоїв, поки"
|
||
" швидкість нижче 13.{ph2}{ph3}{ph4}{ph5}"
|
||
|
||
#: website/public/index.html:687
|
||
msgctxt "page:index.html"
|
||
msgid "Open the speed lab →"
|
||
msgstr "Відкрийте лабораторію швидкості →"
|
||
|
||
#: website/public/index.html:693
|
||
msgctxt "page:index.html"
|
||
msgid "What each part does"
|
||
msgstr "Що робить кожна частина"
|
||
|
||
#. {ph0}: <span class="flow-label">
|
||
#. {ph1}: </span >
|
||
#. {ph2}: <span class="flow-node">
|
||
#. {ph3}: </span >
|
||
#. {ph4}: <span class="flow-note" >
|
||
#. {ph5}: </span >
|
||
#: website/public/index.html: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} Зчитує скрипт запущеної гри{ph3}{ph4} і повертає "
|
||
"його дійсний код та налаштування агенту.{ph5}"
|
||
|
||
#. {ph0}: <span class="flow-label">
|
||
#. {ph1}: </span >
|
||
#. {ph2}: <span class="flow-node">
|
||
#. {ph3}: </span >
|
||
#. {ph4}: <span class="flow-note" >
|
||
#. {ph5}: </span >
|
||
#: website/public/index.html: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 * ваш агент{ph1}{ph2} перебудує правило, додасть елемент "
|
||
"управління{ph3}{ph4} і використовує Відновлене прискорення в невеликій грі з"
|
||
" повзунком швидкості.{ph5}"
|
||
|
||
#. {ph0}: <span class="flow-label">
|
||
#. {ph1}: </span >
|
||
#. {ph2}: <span class="flow-node">
|
||
#. {ph3}: </span >
|
||
#. {ph4}: <span class="flow-note" >
|
||
#. {ph5}: </span >
|
||
#: website/public/index.html: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 * ви{ph1}{ph2} міняєте швидкість і граєте{ph3}{ph4} з оригінальним "
|
||
"прискоренням, потім вибираєте свій власний темп.{ph5}"
|
||
|
||
#: website/public/index.html:721
|
||
msgctxt "page:index.html"
|
||
msgid "See the script, checks and how to try the analysis"
|
||
msgstr "Ознайомтеся зі сценарієм, перевірками та як спробувати аналіз"
|
||
|
||
#. {ph0}: <code>index.js</code>
|
||
#: website/public/index.html: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 перевірив версію браузера HTTP через локальне з'єднання Налагодження та "
|
||
"повернув завантажений {ph0}, включаючи його вихідний код та дайджест."
|
||
|
||
#: 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 ""
|
||
"Ми запустили функцію оновлення оригінальної гри в контрольованій перевірці "
|
||
"браузера, вимкнувши перешкоди та автоматичне планування. Після 4000 оновлень"
|
||
" швидкість склала 10,0; після 10 000 - 13,0, округлена до одного знака після"
|
||
" коми."
|
||
|
||
#. {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 ""
|
||
"У новій міні-грі збережено це правило швидкості. Її код для малювання, "
|
||
"стрибків і зіткнень - це невелика навчальна реалізація. {ph0}Відкрийте "
|
||
"лабораторію{ph1}, щоб ознайомитися з новим кодом і виконати ту ж перевірку "
|
||
"швидкості."
|
||
|
||
#. {ph0}: <a href="guides/browser/#prepare">
|
||
#. {ph1}: </a>
|
||
#. {ph2}: <a href="https://wayou.github.io/t-rex-runner/" >
|
||
#. {ph3}: </a >
|
||
#: website/public/index.html: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 ""
|
||
"Щоб самостійно перевірити цільовий об'єкт, виконайте {ph0}дії по підключенню"
|
||
" до браузеру{ph1}, використовувати {ph2}сторінку dinosaur{ph3}. Вкажіть "
|
||
"своєму агенту URL - адресу цієї сторінки та локальну кінцеву точку "
|
||
"налагодження, а потім скопіюйте наведений вище запит."
|
||
|
||
#. {ph0}: <a href="https://github.com/wayou/t-rex-
|
||
#. runner/blob/5455bfa408ec6b707c7300ff194b7390733a766d/index.js#L565-L571" >
|
||
#. {ph1}: </a >
|
||
#. {ph2}: <a href="assets/licenses/dinosaur.txt" >
|
||
#. {ph3}: </a >
|
||
#: website/public/index.html:758
|
||
#, python-brace-format
|
||
msgctxt "page:index.html"
|
||
msgid ""
|
||
"{ph0}Inspected speed code{ph1} · {ph2}Chromium Authors · BSD license{ph3}"
|
||
msgstr ""
|
||
"{ph0}Перевірений код швидкості{ph1} · {ph2}Автори Chromium * Ліцензія "
|
||
"BSD{ph3}"
|
||
|
||
#: website/public/index.html:775
|
||
msgctxt "page:index.html"
|
||
msgid "Example 02 · Windows Calculator"
|
||
msgstr "Приклад 02 * Калькулятор Windows"
|
||
|
||
#: website/public/index.html:776
|
||
msgctxt "page:index.html"
|
||
msgid "Rebuild Calculator’s % button."
|
||
msgstr "Відтворіть кнопку % калькулятора."
|
||
|
||
#. {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 ""
|
||
"Створіть невеликий калькулятор, який {ph0}коректно обробляє як+, так і "
|
||
"×.{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 ""
|
||
"Одна і та ж кнопка використовує {ph0}різні правила після + і ×.{ph1} Ми "
|
||
"перевіряємо встановлене додаток, щоб визначити, до якого числа "
|
||
"застосовується процентне співвідношення."
|
||
|
||
#: website/public/index.html:802
|
||
msgctxt "page:index.html"
|
||
msgid "Try the calculation"
|
||
msgstr "Спробуйте зробити розрахунок"
|
||
|
||
#: website/public/index.html:846
|
||
msgctxt "page:index.html"
|
||
msgid "Reset"
|
||
msgstr "Скинути"
|
||
|
||
#: website/public/index.html:854
|
||
msgctxt "page:index.html"
|
||
msgid "10% of 200 = 20. Then 200 + 20 = 220."
|
||
msgstr "10% від 200 = 20. Тоді 200 + 20 = 220."
|
||
|
||
#: website/public/index.html:857
|
||
msgctxt "page:index.html"
|
||
msgid "Interactive illustration of the inspected percentage rule."
|
||
msgstr "Інтерактивна ілюстрація перевіряється процентного правила."
|
||
|
||
#. {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}Одна гілка ділиться на 100. Інша також множиться на перше число.{ph1} "
|
||
"Агент використовує обидві гілки для відтворення кнопки%."
|
||
|
||
#. {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 "У цьому прикладі {ph0}, а {ph1}."
|
||
|
||
#. {ph0}: <span class="terminal-dots" aria-hidden="true" >
|
||
#. {ph1}: <i>
|
||
#. {ph2}: </i>
|
||
#. {ph3}: <i>
|
||
#. {ph4}: </i>
|
||
#. {ph5}: <i>
|
||
#. {ph6}: </i>
|
||
#. {ph7}: </span >
|
||
#: website/public/index.html: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}Приклад підказки · перебудувати "
|
||
"кнопку %"
|
||
|
||
#. {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}Використовуйте REA для перевірки кнопки % у калькуляторі "
|
||
"Windows. Відновіть правила після + і×, а потім створіть невеликий "
|
||
"калькулятор, який використовує обидва параметри.{ph3}{ph4}{ph5}"
|
||
|
||
#: website/public/index.html:913
|
||
msgctxt "page:index.html"
|
||
msgid "With +"
|
||
msgstr "Со +"
|
||
|
||
#. {ph0}: <strong>
|
||
#. {ph1}: </strong >
|
||
#. {ph2}: <code>10% of 200 = 20 → 200 + 20 = 220</code>
|
||
#: website/public/index.html:914
|
||
#, python-brace-format
|
||
msgctxt "page:index.html"
|
||
msgid "{ph0}Take 10% of the first number.{ph1}{ph2}"
|
||
msgstr "{ph0}Візьмемо 10% від першого числа.{ph1}{ph2}"
|
||
|
||
#: website/public/index.html:920
|
||
msgctxt "page:index.html"
|
||
msgid "With ×"
|
||
msgstr "Со ×"
|
||
|
||
#. {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}Перетворіть 10% на 0,1200{ph1}{ph2}"
|
||
|
||
#: website/public/index.html:930
|
||
msgctxt "page:index.html"
|
||
msgid "From the installed app to a working % button"
|
||
msgstr "Від встановленого додатка до робочої кнопки %"
|
||
|
||
#. {ph0}: <span class="flow-label">
|
||
#. {ph1}: </span >
|
||
#. {ph2}: <span class="flow-node">
|
||
#. {ph3}: </span >
|
||
#. {ph4}: <span class="flow-note" >
|
||
#. {ph5}: <code>100</code>
|
||
#. {ph6}: </span >
|
||
#: website/public/index.html: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 читає бібліотеку{ph1}{ph2}, повертає код обробника "
|
||
"%{ph3}{ph4}, функція перевіряє оператор і використовує константу {ph5}.{ph6}"
|
||
|
||
#. {ph0}: <span class="flow-label">
|
||
#. {ph1}: </span >
|
||
#. {ph2}: <span class="flow-node">
|
||
#. {ph3}: </span >
|
||
#. {ph4}: <span class="flow-note" >
|
||
#. {ph5}: </span >
|
||
#: website/public/index.html: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 * ваш агент інтерпретує це{ph1}{ph2}, пояснює та відтворює "
|
||
"правила{ph3}{ph4}, звіряє гілку з вихідним кодом Microsoft, а потім "
|
||
"спробуйте + і × вище.{ph5}"
|
||
|
||
#: website/public/index.html:962
|
||
msgctxt "page:index.html"
|
||
msgid "See the real code and how the answer was checked"
|
||
msgstr "Подивіться реальний код і те, як була перевірена відповідь"
|
||
|
||
#: 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 ""
|
||
"Перевірено за допомогою REA 4.1.0: Windows Calculator 11.2508.4.0, x64. "
|
||
"Резюме, доступне для читання, використовує імена з загальнодоступного "
|
||
"Джерела Microsoft для опису відновленої гілки."
|
||
|
||
#. {ph0}: <a
|
||
#. href="https://github.com/microsoft/calculator/blob/d125246a4e19842ce1332e6c7839cf0e110027d8/src/CalcManager/CEngine/scifunc.cpp#L98-L111"
|
||
#. >
|
||
#. {ph1}: </a >
|
||
#. {ph2}: <a
|
||
#. href="https://github.com/microsoft/calculator/blob/d125246a4e19842ce1332e6c7839cf0e110027d8/src/CalculatorUnitTests/CalculatorManagerTest.cpp#L350-L370"
|
||
#. >
|
||
#. {ph3}: </a >
|
||
#. {ph4}: <a href="guides/native/">
|
||
#. {ph5}: </a>
|
||
#: website/public/index.html: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}Відсоток реалізації{ph1} · {ph2}Тестові приклади Microsoft{ph3} * "
|
||
"Керівництво по {ph4}вбудованої налаштуванні{ph5}"
|
||
|
||
#: website/public/index.html:1012
|
||
msgctxt "page:index.html"
|
||
msgid "Your first investigation"
|
||
msgstr "Ваше перше розслідування"
|
||
|
||
#: website/public/index.html:1013
|
||
msgctxt "page:index.html"
|
||
msgid "Try REA on a small app."
|
||
msgstr "Спробуйте REA у невеликому додатку."
|
||
|
||
#: website/public/index.html:1014
|
||
msgctxt "page:index.html"
|
||
msgid ""
|
||
"Download our Notes example, trace its CSV export, and check one changed "
|
||
"input."
|
||
msgstr ""
|
||
"Завантажте наш приклад Notes, простежте його експорт CSV і перевірте один "
|
||
"змінений вхід."
|
||
|
||
#: website/public/index.html:1019
|
||
msgctxt "page:index.html"
|
||
msgid "Try the guided example"
|
||
msgstr "Спробуйте керуватися наведеним прикладом"
|
||
|
||
#: website/public/index.html:1028
|
||
msgctxt "page:index.html"
|
||
msgid "Want to go deeper?"
|
||
msgstr "Хочете дізнатися більше?"
|
||
|
||
#. {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 ""
|
||
"Скажіть своєму агенту, що ви хочете зрозуміти або доопрацювати. З REA ви "
|
||
"можете працювати разом над чим завгодно-від {ph0}клонування цього веб-"
|
||
"сайту{ph1} до {ph2}відтворення гри по її виконуваному файлу.{ph3}"
|
||
|
||
#. {ph0}: <span class="terminal-dots" aria-hidden="true" >
|
||
#. {ph1}: <i>
|
||
#. {ph2}: </i>
|
||
#. {ph3}: <i>
|
||
#. {ph4}: </i>
|
||
#. {ph5}: <i>
|
||
#. {ph6}: </i>
|
||
#. {ph7}: </span >
|
||
#: website/public/index.html: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}Приклад запиту * Веб-сайт"
|
||
|
||
#: website/public/index.html:1063
|
||
msgctxt "page:index.html"
|
||
msgid "Yes, this one."
|
||
msgstr "Так, ось цей."
|
||
|
||
#. {ph0}: <span class="terminal-dots" aria-hidden="true" >
|
||
#. {ph1}: <i>
|
||
#. {ph2}: </i>
|
||
#. {ph3}: <i>
|
||
#. {ph4}: </i>
|
||
#. {ph5}: <i>
|
||
#. {ph6}: </i>
|
||
#. {ph7}: </span >
|
||
#: website/public/index.html: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}Приклад підказки · Реконструкція гри"
|
||
|
||
#. {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}Використовуйте REA, щоб відтворити цю гру за її виконуваним"
|
||
" файлом. Відновіть логіку ігрового процесу на C і порівняйте її з "
|
||
"оригіналом.{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}Дивіться тематичне дослідження DX-Ball →{ph1}"
|
||
|
||
#: website/public/index.html:1096
|
||
msgctxt "page:index.html"
|
||
msgid "For setup and analysis steps, choose your target:"
|
||
msgstr ""
|
||
"Для виконання етапів настройки і аналізу виберіть свій цільовий об'єкт:"
|
||
|
||
#: website/public/index.html:1101
|
||
msgctxt "page:index.html"
|
||
msgid "Native binaries"
|
||
msgstr "Програми з машинним кодом"
|
||
|
||
#: website/public/index.html:1102
|
||
msgctxt "page:index.html"
|
||
msgid ""
|
||
"Inspect functions, strings, references and call relationships in executables"
|
||
" and libraries."
|
||
msgstr ""
|
||
"Перевірте функції, рядки, посилання та зв'язки між викликами функцій у "
|
||
"виконуваних файлах та бібліотеках."
|
||
|
||
#: website/public/index.html:1106
|
||
msgctxt "page:index.html"
|
||
msgid "Native analysis guide"
|
||
msgstr "Керівництво по аналізу програм з машинним кодом"
|
||
|
||
#: website/public/index.html:1109
|
||
msgctxt "page:index.html"
|
||
msgid "JavaScript & Electron"
|
||
msgstr "JavaScript і 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 ""
|
||
"Відображайте модулі, маршрути, IPC та власні залежності з папки програми або"
|
||
" архіву ASAR."
|
||
|
||
#: website/public/index.html:1114
|
||
msgctxt "page:index.html"
|
||
msgid "Application workflows"
|
||
msgstr "Робочі процеси додатків"
|
||
|
||
#: website/public/index.html:1117
|
||
msgctxt "page:index.html"
|
||
msgid "Browser & runtime activity"
|
||
msgstr "Активність у браузері та під час виконання"
|
||
|
||
#: website/public/index.html:1118
|
||
msgctxt "page:index.html"
|
||
msgid ""
|
||
"Capture selected browser or process activity, then compare the results "
|
||
"across runs."
|
||
msgstr ""
|
||
"Фіксуйте активність обраного браузера або процесу, а потім порівнюйте "
|
||
"результати в різних запусках."
|
||
|
||
#: website/public/index.html:1122
|
||
msgctxt "page:index.html"
|
||
msgid "Browser observation guide"
|
||
msgstr "Керівництво по спостереженню за браузером"
|
||
|
||
#: website/public/index.html:1129
|
||
msgctxt "page:index.html"
|
||
msgid "Any questions?"
|
||
msgstr "Маєте запитання?"
|
||
|
||
#. {ph0}: <a href="faq/">
|
||
#. {ph1}: </a>
|
||
#. {ph2}: <a href="https://discord.gg/GkcryMnJDM">
|
||
#. {ph3}: </a>
|
||
#. {ph4}: <a href="https://github.com/morluto/rea/issues/new/choose" >
|
||
#. {ph5}: </a >
|
||
#: website/public/index.html: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}Ознайомтеся з часто{ph1} задавати питання, {ph2}поспілкуйтеся з нами по"
|
||
" Discord{ph3} або {ph4}відкрийте випуск{ph5} GitHub, щоб дізнатися про "
|
||
"помилки та запити функцій."
|
||
|
||
#: website/public/index.html:1143 website/public/index.html:1149
|
||
msgctxt "page:index.html"
|
||
msgid "Join the community"
|
||
msgstr "Приєднатися до спільноти"
|
||
|
||
#: 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 ""
|
||
"Діліться результатами досліджень і отримуйте допомогу від інших користувачів"
|
||
" REA на Discord. Слідкуйте за оновленнями проекту REA на X."
|
||
|
||
#: website/public/index.html:6
|
||
msgctxt "page:index.html"
|
||
msgid "REA — Reverse Engineering for Your Coding Agent"
|
||
msgstr "REA-реверс-інжиніринг для вашого програміста"
|
||
|
||
#: website/public/index.html:7
|
||
msgctxt "page:index.html"
|
||
msgid ""
|
||
"Reverse engineer apps, binaries and browser behavior with your coding agent."
|
||
" Follow clear guides and try interactive examples with REA."
|
||
msgstr ""
|
||
"Реінжиніринг програм, двійкових файлів та поведінки браузера за допомогою "
|
||
"агента кодування. Дотримуйтесь чітких інструкцій та спробуйте інтерактивні "
|
||
"приклади з REA."
|
||
|
||
#: website/public/index.html:242
|
||
msgctxt "page:index.html"
|
||
msgid "Copy REA installation prompt"
|
||
msgstr "Скопіюйте запит на встановлення REA"
|
||
|
||
#: website/public/index.html:264
|
||
msgctxt "page:index.html"
|
||
msgid "Copy setup command"
|
||
msgstr "Команда Налаштування Копіювання"
|
||
|
||
#: website/public/index.html:316
|
||
msgctxt "page:index.html"
|
||
msgid "Follow the manual Calculator analysis"
|
||
msgstr "Дотримуйтесь інструкцій ручного калькулятора для аналізу"
|
||
|
||
#: website/public/index.html:479
|
||
msgctxt "page:index.html"
|
||
msgid "Copy Calculator percentage question"
|
||
msgstr "Процентне питання калькулятора копіювання"
|
||
|
||
#: 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 ""
|
||
"Міні-гра про динозаврів. Використовуйте кнопку переходу або натисніть "
|
||
"пробіл, поки гра зосереджена."
|
||
|
||
#: website/public/index.html:647
|
||
msgctxt "page:index.html"
|
||
msgid "Copy dinosaur analysis prompt"
|
||
msgstr "Запит на копіювання результатів аналізу динозаврів"
|
||
|
||
#: website/public/index.html:803
|
||
msgctxt "page:index.html"
|
||
msgid "Choose the calculation"
|
||
msgstr "Виберіть спосіб розрахунку"
|
||
|
||
#: website/public/index.html:883
|
||
msgctxt "page:index.html"
|
||
msgid "Copy Calculator analysis prompt"
|
||
msgstr "Запит на аналіз за допомогою калькулятора копіювання"
|
||
|
||
#: website/public/index.html:1045
|
||
msgctxt "page:index.html"
|
||
msgid "Copy website project prompt"
|
||
msgstr "Запит на копіювання проекту веб-сайту"
|
||
|
||
#: website/public/index.html:1073
|
||
msgctxt "page:index.html"
|
||
msgid "Copy game reconstruction prompt"
|
||
msgstr "Запит на копіювання реконструкції гри"
|
||
|
||
#: website/public/index.html:1173
|
||
msgctxt "page:index.html"
|
||
msgid "Back to top"
|
||
msgstr "Нагору"
|
||
|
||
#: website/public/showcase/aegis/index.html:100
|
||
msgctxt "page:showcase/aegis/index.html"
|
||
msgid "Skip to content"
|
||
msgstr "Перейти до змісту"
|
||
|
||
#. {ph0}: <a href="../../">
|
||
#. {ph1}: </a>
|
||
#. {ph2}: <a href="../">
|
||
#. {ph3}: </a>
|
||
#: website/public/showcase/aegis/index.html:182
|
||
#, python-brace-format
|
||
msgctxt "page:showcase/aegis/index.html"
|
||
msgid "{ph0}Home{ph1} / {ph2}Showcases{ph3} / Android"
|
||
msgstr "{ph0}Головний{ph1} сторінка / {ph2}Вітрина{ph3} / Android"
|
||
|
||
#: website/public/showcase/aegis/index.html:185
|
||
msgctxt "page:showcase/aegis/index.html"
|
||
msgid "Case study · Aegis Authenticator"
|
||
msgstr "Практичний приклад * аутентифікатор Aegis"
|
||
|
||
#. {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 "Звідки Аутентифікатор{ph0}генерувати код авторизації?"
|
||
|
||
#: 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 ""
|
||
"Шестизначний код змінюється кожні 30 секунд. Використовуйте REA , щоб знайти"
|
||
" обчислення в Android APK, а потім відновіть їх за допомогою годинника, яким"
|
||
" ви можете керувати."
|
||
|
||
#: 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 * офіційний реліз APK * 6,9 МБ"
|
||
|
||
#: website/public/showcase/aegis/index.html:195
|
||
msgctxt "page:showcase/aegis/index.html"
|
||
msgid "View Aegis on GitHub"
|
||
msgstr "Переглянути Aegis на GitHub"
|
||
|
||
#: website/public/showcase/aegis/index.html:201
|
||
msgctxt "page:showcase/aegis/index.html"
|
||
msgid "From an APK to a code you can reproduce"
|
||
msgstr "Від APK до коду, який ви можете відтворити"
|
||
|
||
#. {ph0}: <span class="flow-label">
|
||
#. {ph1}: </span >
|
||
#. {ph2}: <strong class="flow-node" >
|
||
#. {ph3}: </strong >
|
||
#. {ph4}: <span class="flow-note" >
|
||
#. {ph5}: </span >
|
||
#: website/public/showcase/aegis/index.html: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 * знайдіть функцію{ph1}{ph2} 3077 класи → методи генерації{ph3}{ph4}"
|
||
" REA здійснює пошук у пакеті та відстежує код, який використовується для "
|
||
"відображення та копіювання дій.{ph5}"
|
||
|
||
#. {ph0}: <span class="flow-label">
|
||
#. {ph1}: </span >
|
||
#. {ph2}: <strong class="flow-node">
|
||
#. {ph3}: </strong >
|
||
#. {ph4}: <span class="flow-note" >
|
||
#. {ph5}: </span >
|
||
#: website/public/showcase/aegis/index.html: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 * Прочитайте час розрахунку{ph1}{ph2} + ключ облікового запису → "
|
||
"шестизначний{ph3}{ph4} REA повертає методи та значення за замовчуванням. "
|
||
"Агент пояснює, як вони поєднуються.{ph5}"
|
||
|
||
#. {ph0}: <span class="flow-label">
|
||
#. {ph1}: </span >
|
||
#. {ph2}: <strong class="flow-node">
|
||
#. {ph3}: </strong >
|
||
#. {ph4}: <span class="flow-note" >
|
||
#. {ph5}: </span >
|
||
#: website/public/showcase/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 * перебудуйте і встановіть прапорець{ph1}{ph2} \"Змінити час\". "
|
||
"Ознайомтеся з кодом.{ph3}{ph4}Нова демонстрація браузера відтворює правило і"
|
||
" перевіряє його на відповідність загальнодоступним посиланням.{ph5}"
|
||
|
||
#: website/public/showcase/aegis/index.html:233
|
||
msgctxt "page:showcase/aegis/index.html"
|
||
msgid "In this case study"
|
||
msgstr "У цьому тематичному дослідженні"
|
||
|
||
#. {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}Запитайте свого агента{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}Спробуйте скористатися генератором коду{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}Знайдіть код за допомогою 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}Ознайомтеся з розрахунком{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}Перевірте реконструкцію{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}Перевірте APK самостійно{ph1}"
|
||
|
||
#: website/public/showcase/aegis/index.html:245
|
||
msgctxt "page:showcase/aegis/index.html"
|
||
msgid "Ask your agent"
|
||
msgstr "Запитайте свого агента"
|
||
|
||
#. {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 ""
|
||
"Додаток показує змінюється код для входу в систему. Ми хочемо з'ясувати, "
|
||
"{ph0}що змушує його змінюватися{ph1}, і відтворити цю поведінку."
|
||
|
||
#. {ph0}: <span class="terminal-dots" aria-hidden="true" >
|
||
#. {ph1}: <i>
|
||
#. {ph2}: </i>
|
||
#. {ph3}: <i>
|
||
#. {ph4}: </i>
|
||
#. {ph5}: <i>
|
||
#. {ph6}: </i>
|
||
#. {ph7}: </span >
|
||
#: website/public/showcase/aegis/index.html: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}Ваш кодуючий агент"
|
||
|
||
#: website/public/showcase/aegis/index.html:256
|
||
#: website/public/showcase/aegis/index.html:719
|
||
msgctxt "page:showcase/aegis/index.html"
|
||
msgid "Copy"
|
||
msgstr "Копіювати"
|
||
|
||
#. {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 ""
|
||
"Приклад запиту для завантаженого APK з налаштованим аналізом REA для "
|
||
"Android. {ph0}Отримайте APK і налаштування аналізу ↓{ph1}"
|
||
|
||
#: website/public/showcase/aegis/index.html:284
|
||
msgctxt "page:showcase/aegis/index.html"
|
||
msgid "Try the code generator"
|
||
msgstr "Спробуйте скористатися генератором коду"
|
||
|
||
#. {ph0}: <mark class="prose-highlight">
|
||
#. {ph1}: </mark>
|
||
#: website/public/showcase/aegis/index.html: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 ""
|
||
"Додаток групує час в {ph0}30-секундні блоки.{ph1} Для генерації коду номер "
|
||
"блоку об'єднується з ключем облікового запису. Один і той же ключ і блок "
|
||
"генерують один і той же код."
|
||
|
||
#: website/public/showcase/aegis/index.html:292
|
||
msgctxt "page:showcase/aegis/index.html"
|
||
msgid "Move the clock across 60 seconds"
|
||
msgstr "Переведіть стрілки годинника на 60 секунд вперед"
|
||
|
||
#: website/public/showcase/aegis/index.html:295
|
||
msgctxt "page:showcase/aegis/index.html"
|
||
msgid "Time"
|
||
msgstr "Час"
|
||
|
||
#: website/public/showcase/aegis/index.html:297
|
||
msgctxt "page:showcase/aegis/index.html"
|
||
msgid "seconds"
|
||
msgstr "секунда"
|
||
|
||
#: website/public/showcase/aegis/index.html:298
|
||
msgctxt "page:showcase/aegis/index.html"
|
||
msgid "Our adjustable example clock"
|
||
msgstr "Наші регульовані зразкові годинник"
|
||
|
||
#: website/public/showcase/aegis/index.html:301
|
||
msgctxt "page:showcase/aegis/index.html"
|
||
msgid "30-second block"
|
||
msgstr "30-секундний блок"
|
||
|
||
#: website/public/showcase/aegis/index.html:303
|
||
#: website/public/showcase/aegis/index.html:630
|
||
msgctxt "page:showcase/aegis/index.html"
|
||
msgid "Block"
|
||
msgstr "Блок"
|
||
|
||
#. {ph0}: <code data-aegis-division>floor(59 / 30)</code>
|
||
#. {ph1}: <br />
|
||
#. {ph2}: <span data-aegis-window >
|
||
#. {ph3}: </span >
|
||
#: website/public/showcase/aegis/index.html:304
|
||
#, python-brace-format
|
||
msgctxt "page:showcase/aegis/index.html"
|
||
msgid "{ph0}{ph1}{ph2}30–59 seconds{ph3}"
|
||
msgstr "{ph0}{ph1}{ph2}30-59 секунд{ph3}"
|
||
|
||
#: website/public/showcase/aegis/index.html:312
|
||
msgctxt "page:showcase/aegis/index.html"
|
||
msgid "Generated code"
|
||
msgstr "Згенерований код"
|
||
|
||
#: website/public/showcase/aegis/index.html:320
|
||
msgctxt "page:showcase/aegis/index.html"
|
||
msgid "Account key + block → six digits"
|
||
msgstr "Ключ облікового запису + блокування → шість цифр"
|
||
|
||
#: website/public/showcase/aegis/index.html:326
|
||
msgctxt "page:showcase/aegis/index.html"
|
||
msgid "Example time, in seconds"
|
||
msgstr "Приблизний час, в секундах"
|
||
|
||
#: 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 секунд"
|
||
|
||
#: 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 секунд"
|
||
|
||
#. {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 ""
|
||
"На 59 секунді: {ph0}287082.{ph1} На 60 секунді: {ph2}359152.{ph3} При "
|
||
"переміщенні в межах одного блоку код залишається незмінним."
|
||
|
||
#. {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 ""
|
||
"Ключ є фіксованим, загальнодоступні {ph0}тестові дані RFC 6238{ph1}. У "
|
||
"демонстрації реалізований розрахунок, відновлений з APK ."
|
||
|
||
#: 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 ""
|
||
"На діаграмі показано результат за 59 секунд. Увімкніть JavaScript, щоб "
|
||
"змінити час."
|
||
|
||
#: website/public/showcase/aegis/index.html:380
|
||
msgctxt "page:showcase/aegis/index.html"
|
||
msgid "Find the code with REA"
|
||
msgstr "Знайдіть код за допомогою REA"
|
||
|
||
#: website/public/showcase/aegis/index.html:383
|
||
msgctxt "page:showcase/aegis/index.html"
|
||
msgid "Narrow the APK to three classes"
|
||
msgstr "Скоротіть APK до трьох класів"
|
||
|
||
#. {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} обчислення використовується TotpInfo; два інші параметри стосуються "
|
||
"індикатора виконання та імпортованих облікових записів. TOTP означає "
|
||
"одноразовий пароль на основі часу."
|
||
|
||
#: website/public/showcase/aegis/index.html:415
|
||
msgctxt "page:showcase/aegis/index.html"
|
||
msgid "Connect the generator to the app's display"
|
||
msgstr "Підключіть генератор до дисплея програми"
|
||
|
||
#. {ph0}: <code>EntryHolder.getOtp</code>
|
||
#. {ph1}: <code>TotpInfo.getOtp(timestamp)</code>
|
||
#: website/public/showcase/aegis/index.html: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 визначає перевантаження часової мітки і знаходить викликають базовий "
|
||
"метод. При перевірці {ph0} на дисплеї відображається виклик {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 ""
|
||
"Запити показують скорочений шлях введення. В іменах результуючих КЛАСІВ "
|
||
"відсутній поширений префікс {ph0}."
|
||
|
||
#: website/public/showcase/aegis/index.html:458
|
||
msgctxt "page:showcase/aegis/index.html"
|
||
msgid "Read the calculation"
|
||
msgstr "Ознайомтеся з розрахунком"
|
||
|
||
#. {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 повертає {ph0}перетворення годин, налаштування за замовчуванням і методи"
|
||
" генерації.{ph1} Розробники встановили 30-секундний інтервал і шість цифр; "
|
||
"метод часової позначки перетворює секунди в номер блоку."
|
||
|
||
#. {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}"
|
||
|
||
#. {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} Клавіша + блок"
|
||
|
||
#. {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} Шість цифр"
|
||
|
||
#. {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}Час вибирає блок.{ph1} Усі секунди від 30 до 59 дають блок 1. Через 60 "
|
||
"секунд блок стає 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}Ключ також має значення.{ph1} Генератор поєднує ключ облікового запису "
|
||
"з блоком. Обліковий запис з іншим ключем може одночасно відображати інший "
|
||
"код."
|
||
|
||
#. {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}Залиште шість цифр.{ph1} Залишок після ділення на 1 000 000 при "
|
||
"необхідності доповнюється нулями, так що код може починатися з 0."
|
||
|
||
#. {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 ""
|
||
"Наведено витяги з декількох перевірених методів з перенесенням рядків для "
|
||
"відображення. Права панель являє собою пояснювальне резюме. {ph0}Код Aegis "
|
||
"відповідає GPL-3.0.{ph1}"
|
||
|
||
#: website/public/showcase/aegis/index.html:578
|
||
msgctxt "page:showcase/aegis/index.html"
|
||
msgid "Inside the generator"
|
||
msgstr "Всередині генератора"
|
||
|
||
#. {ph0}: <code>generateOTP</code>
|
||
#. {ph1}: <code>kotlin.ExceptionsKt</code>
|
||
#. {ph2}: <code>TotpInfo</code>
|
||
#. {ph3}: <code>HOTP</code>
|
||
#: website/public/showcase/aegis/index.html: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 ""
|
||
"Випущений APK перекладає {ph0} в {ph1}. REA слідує за викликом з {ph2} і "
|
||
"повертає це тіло; оригінальне джерело викликає допоміжне {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 ""
|
||
"Останній байт хешу вибирає позицію. Чотири байти в цій позиції дають "
|
||
"позитивне 31-розрядне число; форматування зменшує його до необхідної "
|
||
"кількості цифр. Останній аргумент конструктора вибирає гілку форматування "
|
||
"коду, введену під час компіляції."
|
||
|
||
#. {ph0}: <a
|
||
#. href="https://github.com/beemdevelopment/Aegis/blob/d6f4e5925a97e4e91593f1542085eae03432a759/app/src/main/java/com/beemdevelopment/aegis/crypto/otp/HOTP.java"
|
||
#. >
|
||
#. {ph1}: </a >
|
||
#: website/public/showcase/aegis/index.html:608
|
||
#, python-brace-format
|
||
msgctxt "page:showcase/aegis/index.html"
|
||
msgid "{ph0}Compare with the matching release source{ph1}."
|
||
msgstr "{ph0}Порівняйте з відповідним джерелом випуску{ph1}."
|
||
|
||
#: website/public/showcase/aegis/index.html:618
|
||
msgctxt "page:showcase/aegis/index.html"
|
||
msgid "Check the reconstruction"
|
||
msgstr "Перевірте реконструкцію"
|
||
|
||
#. {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 ""
|
||
"Ми зібрали вибрані методи Java, повернуті REA, у невелику тестову програму. "
|
||
"Їх результати відповідали незалежній реконструкції {ph0}133 тестових "
|
||
"прикладів{ph1}, включаючи межі тимчасових блоків і коди, що починаються з "
|
||
"нуля."
|
||
|
||
#: website/public/showcase/aegis/index.html:629
|
||
msgctxt "page:showcase/aegis/index.html"
|
||
msgid "Example time"
|
||
msgstr "Приблизний час"
|
||
|
||
#: website/public/showcase/aegis/index.html:631
|
||
msgctxt "page:showcase/aegis/index.html"
|
||
msgid "Six-digit code"
|
||
msgstr "Шестизначний код"
|
||
|
||
#: website/public/showcase/aegis/index.html:636
|
||
msgctxt "page:showcase/aegis/index.html"
|
||
msgid "30 seconds"
|
||
msgstr "30 секунд"
|
||
|
||
#: website/public/showcase/aegis/index.html:651
|
||
msgctxt "page:showcase/aegis/index.html"
|
||
msgid "1,111,111,109 seconds"
|
||
msgstr "1,111,111,109 секунди"
|
||
|
||
#. {ph0}: <a href="https://www.rfc-editor.org/rfc/rfc6238.html#appendix-B" >
|
||
#. {ph1}: </a >
|
||
#: website/public/showcase/aegis/index.html: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 ""
|
||
"Генератор також відповідає шести опублікованим посилальним варіантам SHA-1 в"
|
||
" {ph0}RFC 6238{ph1}. Перевірте їх реалізацію в браузері:"
|
||
|
||
#: website/public/showcase/aegis/index.html:666
|
||
msgctxt "page:showcase/aegis/index.html"
|
||
msgid "Run reference checks"
|
||
msgstr "Виконувати перевірку посилань"
|
||
|
||
#: website/public/showcase/aegis/index.html:673
|
||
msgctxt "page:showcase/aegis/index.html"
|
||
msgid "Read the demo's calculation"
|
||
msgstr "Ознайомтеся з демонстраційним розрахунком"
|
||
|
||
#: 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 ""
|
||
"У контрольних випадках використовуються восьмизначні значення. Перевірка "
|
||
"також підтверджує їх шестизначні результати."
|
||
|
||
#: 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 ""
|
||
"Для перевірки використовуються витягнуті методи Java та нова демонстрація. "
|
||
"Android APK був перевірений статично."
|
||
|
||
#: website/public/showcase/aegis/index.html:693
|
||
msgctxt "page:showcase/aegis/index.html"
|
||
msgid "Inspect the APK yourself"
|
||
msgstr "Перевірте APK самостійно"
|
||
|
||
#. {ph0}: <a href="../../get-started/">
|
||
#. {ph1}: </a>
|
||
#: website/public/showcase/aegis/index.html: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}Налаштуйте REA{ph1} на macOS або Linux , потім завантажте ці два файли "
|
||
"в одну папку. У Windows використовуйте середовище Linux, таке як 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 потрібен повний JDK 17 або новішої версії. Виберіть його"
|
||
" за допомогою {ph0} або {ph1}. У цьому випадку використовувався JDK 21."
|
||
|
||
#: 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 "Наведіть курсор REA на файл постачальника та перевірте APK :"
|
||
|
||
#: website/public/showcase/aegis/index.html:718
|
||
msgctxt "page:showcase/aegis/index.html"
|
||
msgid "macOS / Linux"
|
||
msgstr "macOS / Linux"
|
||
|
||
#. {ph0}: <code>REA_JADX_MCP_JAR</code>
|
||
#: website/public/showcase/aegis/index.html: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 ""
|
||
"Ваш агент може продовжити роботу через CLI від REA, скориставшись наведеною "
|
||
"вище інструкцією. Для MCP додайте {ph0} у середу сервера REA і повторно "
|
||
"підключіть його."
|
||
|
||
#. {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 ""
|
||
"Наступне питання: {ph0}що відбувається, коли в обліковому записі "
|
||
"використовуються вісім цифр або інший інтервал часу?{ph1}"
|
||
|
||
#: website/public/showcase/aegis/index.html:747
|
||
msgctxt "page:showcase/aegis/index.html"
|
||
msgid "Sources"
|
||
msgstr "Джерело"
|
||
|
||
#. {ph0}: <a
|
||
#. href="https://github.com/beemdevelopment/Aegis/releases/tag/v3.4.3" >
|
||
#. {ph1}: </a >
|
||
#. {ph2}: <a
|
||
#. href="https://github.com/beemdevelopment/Aegis/tree/d6f4e5925a97e4e91593f1542085eae03432a759"
|
||
#. >
|
||
#. {ph3}: </a >
|
||
#. {ph4}: <a
|
||
#. href="https://github.com/beemdevelopment/Aegis/blob/d6f4e5925a97e4e91593f1542085eae03432a759/LICENSE"
|
||
#. >
|
||
#. {ph5}: </a >
|
||
#: website/public/showcase/aegis/index.html: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}Офіційний реліз Aegis 3.4.3{ph1} · {ph2}Відповідний оригінальний{ph3} "
|
||
"код · {ph4}Ліцензія GPL-3.0{ph5}"
|
||
|
||
#. {ph0}: <a href="https://www.rfc-editor.org/rfc/rfc6238.html#appendix-B" >
|
||
#. {ph1}: </a >
|
||
#. {ph2}: <a href="test-vectors.json">
|
||
#. {ph3}: </a>
|
||
#: website/public/showcase/aegis/index.html:765
|
||
#, python-brace-format
|
||
msgctxt "page:showcase/aegis/index.html"
|
||
msgid "{ph0}RFC 6238 reference cases{ph1} · {ph2}Demo test data{ph3}"
|
||
msgstr ""
|
||
"{ph0}Довідкові приклади RFC 6238{ph1} · {ph2}Демонстраційні тестові "
|
||
"дані{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 ""
|
||
"Перевірено за допомогою REA 6.1.0 9 жовтня 2026 року. Декомпільовані "
|
||
"фрагменти додаються до Aegis; діаграма, читабельне резюме та реконструкція "
|
||
"браузера-це новий навчальний матеріал."
|
||
|
||
#: website/public/showcase/aegis/index.html:6
|
||
msgctxt "page:showcase/aegis/index.html"
|
||
msgid "Aegis APK Reverse Engineering: Login Codes — REA"
|
||
msgstr "Aegis APK зворотний інжиніринг: коди для входу-REA"
|
||
|
||
#: website/public/showcase/aegis/index.html:7
|
||
msgctxt "page:showcase/aegis/index.html"
|
||
msgid ""
|
||
"Inspect the Aegis Android APK with REA, recover its six-digit login-code "
|
||
"calculation and try a reconstruction with an adjustable clock."
|
||
msgstr ""
|
||
"Перевірити Aegis Андроїд APK з REA, відновити його шестизначний логін-код "
|
||
"розрахунків і спробувати реконструкція з регульованим годинник."
|
||
|
||
#: website/public/showcase/aegis/index.html:232
|
||
msgctxt "page:showcase/aegis/index.html"
|
||
msgid "On this page"
|
||
msgstr "На цій сторінці"
|
||
|
||
#: website/public/showcase/aegis/index.html:243
|
||
msgctxt "page:showcase/aegis/index.html"
|
||
msgid "Aegis APK case study"
|
||
msgstr "Тематичне дослідження Aegis APK"
|
||
|
||
#: website/public/showcase/aegis/index.html:256
|
||
msgctxt "page:showcase/aegis/index.html"
|
||
msgid "Copy Aegis example prompt"
|
||
msgstr "Скопіювати запит як приклад Aegis"
|
||
|
||
#: website/public/showcase/aegis/index.html:469
|
||
msgctxt "page:showcase/aegis/index.html"
|
||
msgid "Follow the login-code calculation"
|
||
msgstr "Дотримуйтесь інструкцій щодо введення реєстраційного коду"
|
||
|
||
#: website/public/showcase/aegis/index.html:719
|
||
msgctxt "page:showcase/aegis/index.html"
|
||
msgid "Copy APK inspection command"
|
||
msgstr "Скопіювати команду перевірки APK"
|
||
|
||
#: website/public/showcase/aegis/index.html:795
|
||
msgctxt "page:showcase/aegis/index.html"
|
||
msgid "Back to top"
|
||
msgstr "Нагору"
|
||
|
||
#: website/public/showcase/ctf/index.html:99
|
||
msgctxt "page:showcase/ctf/index.html"
|
||
msgid "Skip to content"
|
||
msgstr "Перейти до змісту"
|
||
|
||
#. {ph0}: <a href="../../">
|
||
#. {ph1}: </a>
|
||
#. {ph2}: <a href="../">
|
||
#. {ph3}: </a>
|
||
#: website/public/showcase/ctf/index.html:181
|
||
#, python-brace-format
|
||
msgctxt "page:showcase/ctf/index.html"
|
||
msgid "{ph0}Home{ph1} / {ph2}Showcases{ph3} / CTF"
|
||
msgstr "{ph0}Головний{ph1} сторінка / {ph2}Вітрина{ph3} / CTF"
|
||
|
||
#: website/public/showcase/ctf/index.html:184
|
||
msgctxt "page:showcase/ctf/index.html"
|
||
msgid "Case study · DownUnderCTF 2023"
|
||
msgstr "Тематичне дослідження * 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 "Знайдіть прапор у{ph0}двійковому форматі CTF."
|
||
|
||
#. {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 ""
|
||
"Використовуйте REA для перевірки невеликого засобу перевірки прапорів, "
|
||
"перетворіть його правила в рівняння та знайдіть вхідні дані, які {ph0}."
|
||
|
||
#: website/public/showcase/ctf/index.html:191
|
||
msgctxt "page:showcase/ctf/index.html"
|
||
msgid "masked squares flag checker · Easy · Linux x86-64"
|
||
msgstr ""
|
||
"пристрій для перевірки прапорців в маскованих квадратах * просте * Linux "
|
||
"x86-64"
|
||
|
||
#: website/public/showcase/ctf/index.html:194
|
||
msgctxt "page:showcase/ctf/index.html"
|
||
msgid "View the original challenge"
|
||
msgstr "Перегляньте оригінальну задачу"
|
||
|
||
#: website/public/showcase/ctf/index.html:202
|
||
msgctxt "page:showcase/ctf/index.html"
|
||
msgid "From a binary to a checked answer"
|
||
msgstr "Від двійкового коду до перевіреної відповіді"
|
||
|
||
#. {ph0}: <span class="flow-label">
|
||
#. {ph1}: </span >
|
||
#. {ph2}: <strong class="flow-node">
|
||
#. {ph3}: </strong >
|
||
#. {ph4}: <span class="flow-note" >
|
||
#. {ph5}: </span >
|
||
#: website/public/showcase/ctf/index.html: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 * знайдіть рядки перевірки{ph1}{ph2} → функція{ph3}{ph4} перевірки "
|
||
"REA знаходить запит, посилання на нього і код, який приймає або відхиляє "
|
||
"дані, що вводяться.{ph5}"
|
||
|
||
#. {ph0}: <span class="flow-label">
|
||
#. {ph1}: </span >
|
||
#. {ph2}: <strong class="flow-node">
|
||
#. {ph3}: </strong >
|
||
#. {ph4}: <span class="flow-note" >
|
||
#. {ph5}: </span >
|
||
#: website/public/showcase/ctf/index.html: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 * витягніть правила{ph1}{ph2} з 36 символів * 26 Сум{ph3}{ph4} REA "
|
||
"повертає інструкції та дані, що стоять за кожною перевіркою. Агент "
|
||
"перетворює їх у рівняння.{ph5}"
|
||
|
||
#. {ph0}: <span class="flow-label">
|
||
#. {ph1}: </span >
|
||
#. {ph2}: <strong class="flow-node">
|
||
#. {ph3}: </strong >
|
||
#. {ph4}: <span class="flow-note" >
|
||
#. {ph5}: </span >
|
||
#: website/public/showcase/ctf/index.html: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 * Вирішіть і запустіть{ph1}{ph2} відновлений прапор → "
|
||
"виправити!{ph3}{ph4}Рівняння вирішуються сценарієм Python. REA фіксує "
|
||
"вихідну програму, яка приймає результат.{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 ""
|
||
"Завдання написано Джозефом і опубліковано в офіційному сховищі DownUnderCTF."
|
||
|
||
#: website/public/showcase/ctf/index.html:237
|
||
msgctxt "page:showcase/ctf/index.html"
|
||
msgid "In this case study"
|
||
msgstr "У цьому тематичному дослідженні"
|
||
|
||
#. {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}Знайдіть код підтвердження{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}Прочитайте одну маску{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}Збірка в читається код{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}Розв'яжіть рівняння{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}Перевірте відповідь{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}Спробуйте самі{ph1}"
|
||
|
||
#: website/public/showcase/ctf/index.html:249
|
||
msgctxt "page:showcase/ctf/index.html"
|
||
msgid "Find the checking code"
|
||
msgstr "Знайдіть код підтвердження"
|
||
|
||
#. {ph0}: <code>Correct!</code>
|
||
#. {ph1}: <code>Incorrect!</code>
|
||
#: website/public/showcase/ctf/index.html: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 ""
|
||
"Роздатковий матеріал являє собою виконуваний файл розміром 15 КБ. Він "
|
||
"запитує прапорець, потім виводить \"{ph0} або \"{ph1}. Почніть з простого "
|
||
"запиту до свого агента."
|
||
|
||
#. {ph0}: <span class="terminal-dots" aria-hidden="true" >
|
||
#. {ph1}: <i>
|
||
#. {ph2}: </i>
|
||
#. {ph3}: <i>
|
||
#. {ph4}: </i>
|
||
#. {ph5}: <i>
|
||
#. {ph6}: </i>
|
||
#. {ph7}: </span >
|
||
#: website/public/showcase/ctf/index.html: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}Ваш кодуючий агент"
|
||
|
||
#: 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 "Копіювати"
|
||
|
||
#. {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}Використовуйте REA для аналізу ms_flag_checker та пошуку "
|
||
"прапора. Поясніть, як працюють перевірки, а потім перевірте відповідь за "
|
||
"допомогою оригінальної програми.{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 ""
|
||
"Приклад запиту із завантаженим завданням, доступним локально, та підключеним"
|
||
" постачальником програм для аналізу машинного коду."
|
||
|
||
#: website/public/showcase/ctf/index.html:286
|
||
msgctxt "page:showcase/ctf/index.html"
|
||
msgid "Follow the input prompt to its function"
|
||
msgstr "Дотримуйтесь інструкцій щодо введення, щоб перейти до його функції"
|
||
|
||
#: 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 ""
|
||
"Посилання дає агенту можливість провести розслідування, навіть незважаючи на"
|
||
" те, що оригінальні імена функцій виконуваного файлу були видалені."
|
||
|
||
#: website/public/showcase/ctf/index.html:322
|
||
msgctxt "page:showcase/ctf/index.html"
|
||
msgid "Read the checker and its two helpers"
|
||
msgstr "Ознайомтеся з програмою перевірки і двома її помічниками"
|
||
|
||
#. {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 ""
|
||
"Перший цикл копіює коди з 36 символів. Цикл перевірки розшифровує маску, "
|
||
"підсумовує вибрані коди та порівнює результат із збереженим числом. Його "
|
||
"кроки розміром {ph0} байт по {ph1} байт дають 26 масок."
|
||
|
||
#: 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 ""
|
||
"Це вибрані результати нового аналізу REA. Шлях до локального цільового "
|
||
"об'єкта скорочено для відображення; адреси стосуються імпортованого "
|
||
"зображення REA."
|
||
|
||
#: website/public/showcase/ctf/index.html:366
|
||
msgctxt "page:showcase/ctf/index.html"
|
||
msgid "One check reveals one character"
|
||
msgstr "Одна перевірка виявляє один символ"
|
||
|
||
#: 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 ""
|
||
"Програма перевірки впорядковує вхідні дані у вигляді сітки розміром 6×6. "
|
||
"Маска визначає, які клітини беруть участь у сумі. Компактне кодування "
|
||
"використовує негативні числа для пропуску комірок і позитивні числа для їх "
|
||
"вибору."
|
||
|
||
#. {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 ""
|
||
"При сьомій перевірці вибирається тільки одна позиція. {ph0}Відкрийте "
|
||
"малюнок{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 "Порахуйте маску та її ціль із двійкового файлу"
|
||
|
||
#. {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 ""
|
||
"Команда {ph0} зчитує байти маски як значення зі знаком. Ось чому {ph1} "
|
||
"означає -21. Метою є ціле число в порядку убування. Разом ці байти "
|
||
"повідомляють агенту, що {ph2}, так що цей символ дорівнює {ph3}."
|
||
|
||
#: website/public/showcase/ctf/index.html:425
|
||
msgctxt "page:showcase/ctf/index.html"
|
||
msgid "From instructions to a readable check"
|
||
msgstr "Від інструкцій до читабельного чеку"
|
||
|
||
#: 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 ""
|
||
"Виберіть крок для підключення допоміжного засобу підсумовування та об'єкта, "
|
||
"що його викликає, до того самого правила в C."
|
||
|
||
#. {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} Почавши"
|
||
|
||
#. {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} Вибрати"
|
||
|
||
#. {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} Додавши"
|
||
|
||
#. {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} Просування"
|
||
|
||
#. {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} Порівнювати"
|
||
|
||
#: website/public/showcase/ctf/index.html:480
|
||
msgctxt "page:showcase/ctf/index.html"
|
||
msgid "REA · selected original instructions"
|
||
msgstr "REA * вибрані оригінальні інструкції"
|
||
|
||
#: website/public/showcase/ctf/index.html:504
|
||
msgctxt "page:showcase/ctf/index.html"
|
||
msgid "Readable C · one-check summary"
|
||
msgstr "Читабельний підсумок C * one-check"
|
||
|
||
#. {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 * почніть з нуля.{ph1} {ph2} містить поточну суму."
|
||
|
||
#. {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 * перевірте клітинку маски.{ph1} Нульове значення пропускає символ; "
|
||
"ненульове значення включає його."
|
||
|
||
#. {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 * додайте символьний код.{ph1} До суми додається ціле число, "
|
||
"отримане при введенні з тим же зміщенням."
|
||
|
||
#. {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 * перехід до наступної комірки.{ph1} Початковий цикл просувається по"
|
||
" чотири байти на ціле число і відвідує шість рядків по шість комірок."
|
||
|
||
#. {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 * порівняти зі збереженим цільовим значенням.{ph1} Абонент отримує "
|
||
"суму в {ph2}. Невідповідність стає {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 ""
|
||
"Інструкції надходять від помічника по підсумовуванню і викликає його "
|
||
"пристрою. C - це пояснювальна записка з описовими назвами та згладженим "
|
||
"циклом із 36 клітинок."
|
||
|
||
#: website/public/showcase/ctf/index.html:565
|
||
msgctxt "page:showcase/ctf/index.html"
|
||
msgid "Solve the 26 equations"
|
||
msgstr "Розв'яжіть 26 рівнянь"
|
||
|
||
#: 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 ""
|
||
"У більшості масок вибирається кілька осередків. Наприклад, при першій "
|
||
"перевірці додається 16 кодів символів, і потрібно в цілому 1441. "
|
||
"Перекриваються вибірки дають рівняння, які може вирішити невеликий скрипт "
|
||
"Python."
|
||
|
||
#: website/public/showcase/ctf/index.html:574
|
||
msgctxt "page:showcase/ctf/index.html"
|
||
msgid "Python · solver excerpt"
|
||
msgstr "Уривок з Python * solver"
|
||
|
||
#. {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-це програма-вирішувач, яка знаходить значення, що задовольняють цим "
|
||
"рівнянням. Цей фрагмент використовує витягнуті перевірки та використовує "
|
||
"{ph0} з буквами, цифрами, символами підкреслення і фігурними дужками. Повне "
|
||
"завантаження включає всі 26 масок і цільових об'єктів."
|
||
|
||
#: website/public/showcase/ctf/index.html:608
|
||
msgctxt "page:showcase/ctf/index.html"
|
||
msgid "Download the complete solver"
|
||
msgstr "Завантажте повний вирішувач"
|
||
|
||
#: website/public/showcase/ctf/index.html:614
|
||
msgctxt "page:showcase/ctf/index.html"
|
||
msgid "Check the answer with the original program"
|
||
msgstr "Перевірте відповідь за допомогою оригінальної програми"
|
||
|
||
#. {ph0}: <code>z</code>
|
||
#. {ph1}: <code>y</code>
|
||
#: website/public/showcase/ctf/index.html: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 ""
|
||
"Програма захоплення процесу REA записує оригінальний виконуваний файл, який "
|
||
"приймає прапор solved. Зміна одного вибраного символу з {ph0} на {ph1} "
|
||
"призводить до отримання першої суми 1440 замість 1441, і програма відхиляє "
|
||
"її."
|
||
|
||
#: website/public/showcase/ctf/index.html:625
|
||
msgctxt "page:showcase/ctf/index.html"
|
||
msgid "Input"
|
||
msgstr "Уведення"
|
||
|
||
#: website/public/showcase/ctf/index.html:626
|
||
msgctxt "page:showcase/ctf/index.html"
|
||
msgid "Observed output"
|
||
msgstr "Спостережуваний результат"
|
||
|
||
#: website/public/showcase/ctf/index.html:627
|
||
msgctxt "page:showcase/ctf/index.html"
|
||
msgid "Exit code"
|
||
msgstr "Код виходу"
|
||
|
||
#: website/public/showcase/ctf/index.html:632
|
||
msgctxt "page:showcase/ctf/index.html"
|
||
msgid "Solver's flag"
|
||
msgstr "Прапор вирішувача"
|
||
|
||
#: website/public/showcase/ctf/index.html:637
|
||
msgctxt "page:showcase/ctf/index.html"
|
||
msgid "One character changed"
|
||
msgstr "Один персонаж змінено"
|
||
|
||
#: website/public/showcase/ctf/index.html:645
|
||
msgctxt "page:showcase/ctf/index.html"
|
||
msgid "Show the recovered flag and captured output"
|
||
msgstr "Відобразити відновлений прапор і захоплені вихідні дані"
|
||
|
||
#: website/public/showcase/ctf/index.html:648
|
||
msgctxt "page:showcase/ctf/index.html"
|
||
msgid "REA · original program output"
|
||
msgstr "REA * вихідний програмний результат"
|
||
|
||
#: website/public/showcase/ctf/index.html:649
|
||
msgctxt "page:showcase/ctf/index.html"
|
||
msgid "Copy flag"
|
||
msgstr "Прапор копіювання"
|
||
|
||
#: 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 ""
|
||
"Відновлене значення також відповідає прапору в опублікованих організаторами "
|
||
"метаданих задачі, який був перевірений після вирішення двійкової задачі."
|
||
|
||
#: website/public/showcase/ctf/index.html:667
|
||
msgctxt "page:showcase/ctf/index.html"
|
||
msgid "Source, target identity and analysis details"
|
||
msgstr "Ідентифікація джерела, цілі та деталі аналізу"
|
||
|
||
#: 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 ""
|
||
"Новий аналіз та два записи процесів, опубліковані 8 жовтня 2026 року, "
|
||
"використовуючи REA 4.1.0 та Ghidra 12.1.4 на Linux x64. Двійковий файл являє"
|
||
" собою урізаний x86-64 ELF, об'ємом 15 248 байт."
|
||
|
||
#: 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 ""
|
||
"Посилання на рядки, функції та константи були перевірені перед читанням "
|
||
"вихідного коду або рішення організаторів. На основі цих результатів REA було"
|
||
" створено вирішувач Python та діаграму."
|
||
|
||
#. {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}Порівняйте з джерелом, наданим організаторами{ph1} · {ph2}Метадані та "
|
||
"прапор конкурсу{ph3} · {ph4}Примітки до доказів REA{ph5}"
|
||
|
||
#: website/public/showcase/ctf/index.html:704
|
||
msgctxt "page:showcase/ctf/index.html"
|
||
msgid "Try it yourself"
|
||
msgstr "Спробуйте самі"
|
||
|
||
#: 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 ""
|
||
"Завантажте оригінальне завдання та рішення в одну папку. Скористайтеся "
|
||
"наведеною вище інструкцією, щоб провести розслідування за допомогою свого "
|
||
"агента, або запустіть доданий сценарій."
|
||
|
||
#: website/public/showcase/ctf/index.html:721
|
||
msgctxt "page:showcase/ctf/index.html"
|
||
msgid "Terminal · solve and run"
|
||
msgstr "Термінал * вирішити і запустити"
|
||
|
||
#. {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 ""
|
||
"Сценарій виводить прапор кандидата; вставте його в командний рядок програми."
|
||
" Для вирішення потрібен Python і {ph0}. Для запуску оригінального "
|
||
"виконуваного файлу потрібен Linux x86-64."
|
||
|
||
#: website/public/showcase/ctf/index.html:743
|
||
msgctxt "page:showcase/ctf/index.html"
|
||
msgid "Set up REA with your coding agent"
|
||
msgstr "Налаштуйте REA за допомогою агента кодування"
|
||
|
||
#: website/public/showcase/ctf/index.html:6
|
||
msgctxt "page:showcase/ctf/index.html"
|
||
msgid "CTF Reverse Engineering: DownUnderCTF Flag Checker — REA"
|
||
msgstr "Зворотна інженерія CTF: перевірка прапора DownUnderCTF-REA"
|
||
|
||
#: website/public/showcase/ctf/index.html:7
|
||
msgctxt "page:showcase/ctf/index.html"
|
||
msgid ""
|
||
"Use REA to solve DownUnderCTF's masked squares flag checker. Find the "
|
||
"checking functions, extract the masks and compare a recovered flag with the "
|
||
"original program."
|
||
msgstr ""
|
||
"Використовуйте REA для вирішення проблеми перевірки прапорів маскованих "
|
||
"квадратів у DOWNDERCTF. Знайдіть функції перевірки, витягніть маски та "
|
||
"порівняйте відновлений прапор з оригінальною програмою."
|
||
|
||
#: website/public/showcase/ctf/index.html:236
|
||
msgctxt "page:showcase/ctf/index.html"
|
||
msgid "On this page"
|
||
msgstr "На цій сторінці"
|
||
|
||
#: website/public/showcase/ctf/index.html:247
|
||
msgctxt "page:showcase/ctf/index.html"
|
||
msgid "CTF flag-checker case study"
|
||
msgstr "Практичний приклад перевірки прапорів CTF"
|
||
|
||
#: website/public/showcase/ctf/index.html:262
|
||
msgctxt "page:showcase/ctf/index.html"
|
||
msgid "Copy CTF example prompt"
|
||
msgstr "Запит на копіювання прикладу CTF"
|
||
|
||
#: website/public/showcase/ctf/index.html:373
|
||
msgctxt "page:showcase/ctf/index.html"
|
||
msgid "CTF mask equation; scroll horizontally on smaller screens"
|
||
msgstr "Рівняння маски CTF; горизонтальна прокрутка на менших екранах"
|
||
|
||
#: 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 ""
|
||
"Сьома маска пропускає 21 клітинку, вибирає позицію 21, потім пропускає 14. "
|
||
"Тільки ця комірка вносить свій внесок у суму. Її обов'язковий код-55, що "
|
||
"означає, що символ дорівнює 7."
|
||
|
||
#: website/public/showcase/ctf/index.html:431
|
||
msgctxt "page:showcase/ctf/index.html"
|
||
msgid "Follow the CTF check"
|
||
msgstr "Виконайте перевірку CTF"
|
||
|
||
#: website/public/showcase/ctf/index.html:481
|
||
msgctxt "page:showcase/ctf/index.html"
|
||
msgid "Copy CTF assembly"
|
||
msgstr "Скопіюйте збірку CTF"
|
||
|
||
#: website/public/showcase/ctf/index.html:505
|
||
msgctxt "page:showcase/ctf/index.html"
|
||
msgid "Copy readable CTF check"
|
||
msgstr "Копіюваний чек CTF для читання"
|
||
|
||
#: website/public/showcase/ctf/index.html:575
|
||
msgctxt "page:showcase/ctf/index.html"
|
||
msgid "Copy CTF solver excerpt"
|
||
msgstr "Скопіюйте витяг із CTF-вирішувача"
|
||
|
||
#: website/public/showcase/ctf/index.html:649
|
||
msgctxt "page:showcase/ctf/index.html"
|
||
msgid "Copy recovered flag"
|
||
msgstr "Копіювати відновлений прапор"
|
||
|
||
#: website/public/showcase/ctf/index.html:722
|
||
msgctxt "page:showcase/ctf/index.html"
|
||
msgid "Copy CTF solver commands"
|
||
msgstr "Копіювання команд вирішувача CTF"
|
||
|
||
#: website/public/showcase/ctf/index.html:764
|
||
msgctxt "page:showcase/ctf/index.html"
|
||
msgid "Back to top"
|
||
msgstr "Нагору"
|
||
|
||
#: website/public/showcase/dx-ball/index.html:99
|
||
msgctxt "page:showcase/dx-ball/index.html"
|
||
msgid "Skip to content"
|
||
msgstr "Перейти до змісту"
|
||
|
||
#. {ph0}: <a href="../../">
|
||
#. {ph1}: </a>
|
||
#. {ph2}: <a href="../">
|
||
#. {ph3}: </a>
|
||
#: website/public/showcase/dx-ball/index.html:181
|
||
#, python-brace-format
|
||
msgctxt "page:showcase/dx-ball/index.html"
|
||
msgid "{ph0}Home{ph1} / {ph2}Showcases{ph3} / DX-Ball"
|
||
msgstr "{ph0}Головний{ph1} сторінка / {ph2}Вітрина{ph3} / DX-Ball"
|
||
|
||
#: website/public/showcase/dx-ball/index.html:184
|
||
msgctxt "page:showcase/dx-ball/index.html"
|
||
msgid "Case study · DX-Ball 1.07"
|
||
msgstr "Тематичне дослідження * 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 "Відновлюємо DX-Ball {ph0}з його виконуваного файлу."
|
||
|
||
#: 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 ""
|
||
"Метою є створення підтримуваної версії гри Windows на мові C, випущеної в "
|
||
"1996 році. REA допомагає агенту перевіряти оригінал, по одній функції за "
|
||
"раз."
|
||
|
||
#: website/public/showcase/dx-ball/index.html:190
|
||
msgctxt "page:showcase/dx-ball/index.html"
|
||
msgid "Windows i386 · C · REA"
|
||
msgstr "Windows для i386 · s * 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 ""
|
||
"Одна функція, від виконуваної до перевіряється C. REA надає інструкції, що "
|
||
"викликають пристрої і дані для читання; проект реконструкції реалізує і "
|
||
"тестує результат. {ph0}Відкрити малюнок{ph1}"
|
||
|
||
#: website/public/showcase/dx-ball/index.html:218
|
||
msgctxt "page:showcase/dx-ball/index.html"
|
||
msgid "In this case study"
|
||
msgstr "У цьому тематичному дослідженні"
|
||
|
||
#. {ph0}: <a href="#progress">
|
||
#. {ph1}: </a>
|
||
#: website/public/showcase/dx-ball/index.html:220
|
||
#, python-brace-format
|
||
msgctxt "page:showcase/dx-ball/index.html"
|
||
msgid "{ph0}The project{ph1}"
|
||
msgstr "{ph0}Проект{ph1}"
|
||
|
||
#. {ph0}: <a href="#sound-pan">
|
||
#. {ph1}: </a>
|
||
#: website/public/showcase/dx-ball/index.html:221
|
||
#, python-brace-format
|
||
msgctxt "page:showcase/dx-ball/index.html"
|
||
msgid "{ph0}Sound pan{ph1}"
|
||
msgstr "{ph0}Звукова панорама{ph1}"
|
||
|
||
#. {ph0}: <a href="#checking">
|
||
#. {ph1}: </a>
|
||
#: website/public/showcase/dx-ball/index.html:222
|
||
#, python-brace-format
|
||
msgctxt "page:showcase/dx-ball/index.html"
|
||
msgid "{ph0}Checking the result{ph1}"
|
||
msgstr "{ph0}Перевірка результату{ph1}"
|
||
|
||
#. {ph0}: <a href="#continue">
|
||
#. {ph1}: </a>
|
||
#: website/public/showcase/dx-ball/index.html:223
|
||
#, python-brace-format
|
||
msgctxt "page:showcase/dx-ball/index.html"
|
||
msgid "{ph0}Continue the work{ph1}"
|
||
msgstr "{ph0}Продовжуйте роботу{ph1}"
|
||
|
||
#: website/public/showcase/dx-ball/index.html:231
|
||
msgctxt "page:showcase/dx-ball/index.html"
|
||
msgid "maintained C functions"
|
||
msgstr "підтримувані функції C"
|
||
|
||
#: website/public/showcase/dx-ball/index.html:235
|
||
msgctxt "page:showcase/dx-ball/index.html"
|
||
msgid "comparisons with original code"
|
||
msgstr "порівняння з вихідним кодом"
|
||
|
||
#: website/public/showcase/dx-ball/index.html:239
|
||
msgctxt "page:showcase/dx-ball/index.html"
|
||
msgid "functions with matching compiled bytes"
|
||
msgstr "функції з відповідними скомпільованими байтами"
|
||
|
||
#. {ph0}: <a href="https://github.com/N0zoM1z0/dx-
|
||
#. ball/blob/a55dca27ec0a07018c1b2c95ae2be027f7d8c3c4/docs/PROGRESS.md" >
|
||
#. {ph1}: </a >
|
||
#. {ph2}: <a href="https://github.com/N0zoM1z0/dx-
|
||
#. ball/blob/a55dca27ec0a07018c1b2c95ae2be027f7d8c3c4/docs/ORACLES.md" >
|
||
#. {ph3}: </a >
|
||
#: website/public/showcase/dx-ball/index.html: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 ""
|
||
"Контрольна точка проекту: 7 жовтня 2026 року. {ph0}Журнал виконання{ph1} "
|
||
"роботи · {ph2}Тестове покриття{ph3}"
|
||
|
||
#: website/public/showcase/dx-ball/index.html:254
|
||
msgctxt "page:showcase/dx-ball/index.html"
|
||
msgid "The project so far"
|
||
msgstr "Проект досі"
|
||
|
||
#: 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 ""
|
||
"Відновлений код охоплює управління дошкою та ресурсами, удари цеглою, "
|
||
"анімацію, частинки та отримання бонусів. У поточних збірках доступні утиліти"
|
||
" перевірки та бібліотека аналізу. Триває робота над грою, в яку можна грати,"
|
||
" фізикою м'яча і весла, управлінням посиленнями і інтеграцією Windows."
|
||
|
||
#: website/public/showcase/dx-ball/index.html:265
|
||
msgctxt "page:showcase/dx-ball/index.html"
|
||
msgid "Finding the sound-pan calculation"
|
||
msgstr "Визначення положення звуку зліва / справа при розрахунку"
|
||
|
||
#: 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 ""
|
||
"При ударі по цеглі його горизонтальне положення передається в звуковий код. "
|
||
"У ході дослідження було необхідно відновити, як ця координата екрану "
|
||
"перетворюється в значення повороту вліво/вправо."
|
||
|
||
#. {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}Ваш кодуючий агент"
|
||
|
||
#: 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 "Копіювати"
|
||
|
||
#. {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}Використовуйте REA, щоб дізнатися, як DX-Ball обчислює "
|
||
"розташування стереозвуку. Поясніть розрахунок і покажіть код.{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 ""
|
||
"Приклад запиту для вашого coding agent з доступним локальним виконуваним "
|
||
"файлом. У наведеному нижче дослідженні Показані запити REA та докази, що "
|
||
"лежать в основі відповіді."
|
||
|
||
#: 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 ""
|
||
"Агент використовував REA для перевірки функції, відстеження її абонента та "
|
||
"зчитування констант із виконуваного файлу. Ці результати надали вхідні дані "
|
||
"та арифметику, необхідні для написання функції на мові Сі, наведеної нижче."
|
||
|
||
#. {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 ""
|
||
"Перший результат функції для {ph0} включав псевдокод, що оголошує {ph1} і "
|
||
"викликає {ph2}. У вікні команд відображалося Введення даних зі стека та "
|
||
"операції з плаваючою комою. Ця невідповідність дала агенту конкретну причину"
|
||
" продовжувати розслідування."
|
||
|
||
#: website/public/showcase/dx-ball/index.html:313
|
||
msgctxt "page:showcase/dx-ball/index.html"
|
||
msgid "The first decompiler view"
|
||
msgstr "Перше представлення декомпілятора"
|
||
|
||
#: 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 ""
|
||
"На виході відображається виклик перетворення. При читанні наведених нижче "
|
||
"інструкцій можна побачити вхідні дані і обчислення, які використовуються для"
|
||
" цього виклику."
|
||
|
||
#: website/public/showcase/dx-ball/index.html:332
|
||
msgctxt "page:showcase/dx-ball/index.html"
|
||
msgid "Three questions answered through REA"
|
||
msgstr "Відповіді на три запитання за допомогою REA"
|
||
|
||
#: website/public/showcase/dx-ball/index.html:335
|
||
msgctxt "page:showcase/dx-ball/index.html"
|
||
msgid "Recover the missing input"
|
||
msgstr "Відновіть відсутні вхідні дані"
|
||
|
||
#. {ph0}: <code>[EBP+8]</code>
|
||
#: website/public/showcase/dx-ball/index.html: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 ""
|
||
"Результат роботи функції включає інструкції поряд з псевдокодом і викликають"
|
||
" елементами. Тут {ph0} забезпечує цілочисельний вхід, відсутній у поданні "
|
||
"декомпілятора."
|
||
|
||
#: website/public/showcase/dx-ball/index.html:359
|
||
msgctxt "page:showcase/dx-ball/index.html"
|
||
msgid "Follow the caller to understand the input"
|
||
msgstr "Слідкуйте за абонентом, щоб зрозуміти введені дані"
|
||
|
||
#. {ph0}: <code>tile_x</code>
|
||
#. {ph1}: <code>20 + 30 × tile_x</code>
|
||
#: website/public/showcase/dx-ball/index.html: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 визначив цього абонента в першому результаті. У попередніх інструкціях "
|
||
"tile_x масштабується {ph0}на 30; додавання 20 дає екранну координату цегли, "
|
||
"{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 "Порахуйте значення, що стоять за адресами пам'яті"
|
||
|
||
#: 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 ""
|
||
"Повернені байти задають дві арифметичні константи та початковий масштаб "
|
||
"панорамування. Тепер агент має значення, необхідні для вираження мовою Сі."
|
||
|
||
#: website/public/showcase/dx-ball/index.html:412
|
||
msgctxt "page:showcase/dx-ball/index.html"
|
||
msgid "From REA's findings to C"
|
||
msgstr "Від штифтів REA до 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 ""
|
||
"Виконайте п'ять кроків, описаних нижче. У кожному обраному елементі виділені"
|
||
" вихідні інструкції і відповідні їм рядки."
|
||
|
||
#. {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}"
|
||
|
||
#. {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} Помноживши"
|
||
|
||
#. {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} Віднявши"
|
||
|
||
#. {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}"
|
||
|
||
#. {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} Повернення"
|
||
|
||
#: website/public/showcase/dx-ball/index.html:467
|
||
msgctxt "page:showcase/dx-ball/index.html"
|
||
msgid "Original x86 · excerpt"
|
||
msgstr "Оригінальний витяг з x86 ·"
|
||
|
||
#: website/public/showcase/dx-ball/index.html:488
|
||
msgctxt "page:showcase/dx-ball/index.html"
|
||
msgid "Reconstructed C"
|
||
msgstr "Реконструйований C"
|
||
|
||
#. {ph0}: <strong>
|
||
#. {ph1}: </strong>
|
||
#. {ph2}: <code>[EBP+8]</code>
|
||
#. {ph3}: <code>FILD</code>
|
||
#. {ph4}: <code>x</code>
|
||
#: website/public/showcase/dx-ball/index.html: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 * прочитайте вхідні дані.{ph1} У вікні команд в результаті роботи "
|
||
"функції REA відображається {ph2} і використовується {ph3} для завантаження "
|
||
"цілого числа. Відстеження абонента через REA встановлює значення екранної "
|
||
"координати параметра C {ph4}."
|
||
|
||
#. {ph0}: <strong>
|
||
#. {ph1}: </strong>
|
||
#. {ph2}: <code>FMUL</code>
|
||
#. {ph3}: <code>0x420068</code>
|
||
#. {ph4}: <code>read_bytes</code>
|
||
#. {ph5}: <code>1.5625</code>
|
||
#: website/public/showcase/dx-ball/index.html: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 * помножити на 1,5625.{ph1} {ph2} зчитує подвоєне значення {ph3}. "
|
||
"Байти, повернуті функцією REA'S {ph4}, декодуються як {ph5}; C використовує "
|
||
"ту саму константу."
|
||
|
||
#. {ph0}: <strong>
|
||
#. {ph1}: </strong>
|
||
#. {ph2}: <code>FSUB</code>
|
||
#. {ph3}: <code>0x420070</code>
|
||
#. {ph4}: <code>500.0</code>
|
||
#. {ph5}: <code>320</code>
|
||
#: website/public/showcase/dx-ball/index.html: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 * відніміть 500,0.{ph1} {ph2} зчитує подвійне значення в {ph3}. "
|
||
"Результат у байтах REA розшифровується як {ph4}, зміщуючи центр обчислення "
|
||
"на екранну координату {ph5}."
|
||
|
||
#. {ph0}: <strong>
|
||
#. {ph1}: </strong>
|
||
#. {ph2}: <code>FMUL</code>
|
||
#. {ph3}: <code>0x4210a0</code>
|
||
#. {ph4}: <code>dxball_pan_scale</code>
|
||
#. {ph5}: <code>1.0</code>
|
||
#: website/public/showcase/dx-ball/index.html: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 * застосуйте збережену шкалу.{ph1} Друге {ph2} показує значення "
|
||
"{ph3}. У підтримуваному джерелі цей глобал називається {ph4}. При читанні "
|
||
"другого байта REA його початкове значення дорівнює {ph5}."
|
||
|
||
#. {ph0}: <strong>
|
||
#. {ph1}: </strong>
|
||
#. {ph2}: <code>0x406430</code>
|
||
#. {ph3}: <code>__ftol</code>
|
||
#. {ph4}: <code>DxBallInt</code>
|
||
#: website/public/showcase/dx-ball/index.html: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 * повертає ціле число.{ph1} Виклик по {ph2} 0x406430 досягає "
|
||
"значення {ph3}, зазначеного в результатах пошуку абонента REA. C перетворює "
|
||
"результат у {ph4}; оригінальні порівняння з x86 перевіряють повернене "
|
||
"значення."
|
||
|
||
#: 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 ""
|
||
"У наведеному нижче уривку зі збірки вибираються інструкції щодо введення, "
|
||
"арифметики та повернення. У наведений нижче повний список також включені "
|
||
"проміжні сховища, настройка і очищення функцій."
|
||
|
||
#: website/public/showcase/dx-ball/index.html:556
|
||
msgctxt "page:showcase/dx-ball/index.html"
|
||
msgid "Full assembly and supporting evidence"
|
||
msgstr "Повна збірка та підтверджуючі докази"
|
||
|
||
#: website/public/showcase/dx-ball/index.html:559
|
||
msgctxt "page:showcase/dx-ball/index.html"
|
||
msgid "REA result · 0x406400–0x40643e"
|
||
msgstr "Результат REA · 0X406400–0X40643E"
|
||
|
||
#: website/public/showcase/dx-ball/index.html:593
|
||
msgctxt "page:showcase/dx-ball/index.html"
|
||
msgid "What the caller supplies"
|
||
msgstr "Що надає Абонент"
|
||
|
||
#. {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 ""
|
||
"Функція brick-hit в {ph0} масштабує координату плитки на 30, додає 20, а "
|
||
"потім переміщує її перед викликом:"
|
||
|
||
#: website/public/showcase/dx-ball/index.html:608
|
||
msgctxt "page:showcase/dx-ball/index.html"
|
||
msgid "What the data reads establish"
|
||
msgstr "Те, що читають дані, встановлює"
|
||
|
||
#: 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, декодується як подвоєння в порядку убування"
|
||
|
||
#: website/public/showcase/dx-ball/index.html:616
|
||
msgctxt "page:showcase/dx-ball/index.html"
|
||
msgid "Address"
|
||
msgstr "Адрес"
|
||
|
||
#: website/public/showcase/dx-ball/index.html:617
|
||
msgctxt "page:showcase/dx-ball/index.html"
|
||
msgid "Value"
|
||
msgstr "Цінність"
|
||
|
||
#: website/public/showcase/dx-ball/index.html:618
|
||
msgctxt "page:showcase/dx-ball/index.html"
|
||
msgid "Used for"
|
||
msgstr "Використовується для"
|
||
|
||
#: website/public/showcase/dx-ball/index.html:625
|
||
msgctxt "page:showcase/dx-ball/index.html"
|
||
msgid "First multiplication"
|
||
msgstr "Перше множення"
|
||
|
||
#: website/public/showcase/dx-ball/index.html:630
|
||
msgctxt "page:showcase/dx-ball/index.html"
|
||
msgid "Subtraction"
|
||
msgstr "Віднімання"
|
||
|
||
#. {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} споконвічно"
|
||
|
||
#: website/public/showcase/dx-ball/index.html:635
|
||
msgctxt "page:showcase/dx-ball/index.html"
|
||
msgid "Stored pan scale"
|
||
msgstr "Збережені ваги для піддонів"
|
||
|
||
#: 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 ""
|
||
"Записано за допомогою REA 4.1.0 для цілі DX-Ball 1.07 з прив'язкою до хешу. "
|
||
"У пов'язаних матеріалах розслідування зберігаються ідентифікатори доказів."
|
||
|
||
#. {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}Підтримуване джерело{ph1} · {ph2}Примітки щодо розслідування та "
|
||
"посилання на докази{ph3}"
|
||
|
||
#: website/public/showcase/dx-ball/index.html:659
|
||
msgctxt "page:showcase/dx-ball/index.html"
|
||
msgid "Checking the recovered function"
|
||
msgstr "Перевірка відновленої функції"
|
||
|
||
#: 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 ""
|
||
"Відновлена функція проходить дві перевірки: її повертаються значення "
|
||
"збігаються з вихідними, а скомпільовані байти відповідають виконуваному "
|
||
"файлу."
|
||
|
||
#: website/public/showcase/dx-ball/index.html:666
|
||
msgctxt "page:showcase/dx-ball/index.html"
|
||
msgid "3,205 behavior cases"
|
||
msgstr "3 205 випадків порушення поведінки"
|
||
|
||
#: 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 ""
|
||
"Тести виконують вихідну функцію x86 і порівнюють значення, яке вона "
|
||
"повертає, із збереженим значенням C. Вони охоплюють усі цілі позиції від 0 "
|
||
"до 640 у п'яти масштабах панорамування: 0, 0,5, 1, 20 та -1."
|
||
|
||
#: website/public/showcase/dx-ball/index.html:675
|
||
msgctxt "page:showcase/dx-ball/index.html"
|
||
msgid "63 matching bytes"
|
||
msgstr "63 збігаються байти"
|
||
|
||
#: 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 ""
|
||
"Функція C компілюється за допомогою закріпленого ланцюжка інструментів "
|
||
"VC4.0. Повторне відтворення компілятором відповідає повній функції після "
|
||
"застосування розглянутих змін і перевірки констант, на які дано посилання."
|
||
|
||
#: 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 ""
|
||
"За шкалою 1 відновлені обчислення повертають значення -500 за лівим краєм, 0"
|
||
" за центром і 500 за правим краєм. Наступна частина роботи зі звуком-це "
|
||
"інтеграція цього значення зі звуковим супроводом гри."
|
||
|
||
#. {ph0}: <a href="https://github.com/N0zoM1z0/dx-
|
||
#. ball/blob/a55dca27ec0a07018c1b2c95ae2be027f7d8c3c4/docs/BUILD_MATCHING.md"
|
||
#. >
|
||
#. {ph1}: </a >
|
||
#: website/public/showcase/dx-ball/index.html:690
|
||
#, python-brace-format
|
||
msgctxt "page:showcase/dx-ball/index.html"
|
||
msgid "{ph0}Read the compiler replay details{ph1}"
|
||
msgstr "{ph0}Ознайомтеся з подробицями відтворення компілятором{ph1}"
|
||
|
||
#: website/public/showcase/dx-ball/index.html:699
|
||
msgctxt "page:showcase/dx-ball/index.html"
|
||
msgid "Continue the investigation"
|
||
msgstr "Продовжуйте розслідування"
|
||
|
||
#: 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 ""
|
||
"Той самий підхід використовується для оновлення частинок, створення черг із "
|
||
"розширенням та генерування бонусів: перевірте відповідні функції, відновіть "
|
||
"їх стан та залежності, а потім порівняйте реалізацію з оригінальною."
|
||
|
||
#: 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 ""
|
||
"Щоб самостійно перевірити функцію панорамування звуку, дотримуйтесь "
|
||
"інструкцій з налаштування DX-Ball project і вкажіть відповідну вихідну мету."
|
||
" Потім запустіть:"
|
||
|
||
#: website/public/showcase/dx-ball/index.html:713
|
||
msgctxt "page:showcase/dx-ball/index.html"
|
||
msgid "In the DX-Ball checkout"
|
||
msgstr "При оформленні замовлення DX-Ball"
|
||
|
||
#. {ph0}: <a href="https://github.com/N0zoM1z0/dx-ball" >
|
||
#. {ph1}: </a >
|
||
#. {ph2}: <span>
|
||
#. {ph3}: </span>
|
||
#: website/public/showcase/dx-ball/index.html: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} Поточне джерело репозиторію{ph1}{ph2} DX-Ball, хід виконання і "
|
||
"локальна настройка.{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} Робочий процес аналізу{ph1}{ph2} REA завершується обчисленням, а потім"
|
||
" використовуйте той самий підхід із власним двійковим файлом.{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}Створення частинок і бонусів{ph1}{ph2} - більш масштабне дослідження "
|
||
"стану, черг і запису пікселів.{ph3}"
|
||
|
||
#: website/public/showcase/dx-ball/index.html:6
|
||
msgctxt "page:showcase/dx-ball/index.html"
|
||
msgid "DX-Ball Reverse Engineering: Sound Panning — REA"
|
||
msgstr "DX-Ball зворотний інжиніринг: панорамування звуку-REA"
|
||
|
||
#: website/public/showcase/dx-ball/index.html:7
|
||
msgctxt "page:showcase/dx-ball/index.html"
|
||
msgid ""
|
||
"Follow a DX-Ball reconstruction from binary analysis through REA to "
|
||
"maintained C, original-x86 tests and matching compiled function bytes."
|
||
msgstr ""
|
||
"Виконайте реконструкцію DX-Ball від бінарного аналізу через REA до "
|
||
"підтримуваних тестів на C, вихідних x86 і зіставлення скомпільованих байтів "
|
||
"функцій."
|
||
|
||
#: website/public/showcase/dx-ball/index.html:193
|
||
msgctxt "page:showcase/dx-ball/index.html"
|
||
msgid ""
|
||
"DX-Ball sound-pan investigation; scroll horizontally on smaller screens"
|
||
msgstr ""
|
||
"DX-Ball sound - дослідження панорамування; горизонтальна прокрутка на менших"
|
||
" екранах"
|
||
|
||
#: 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.EXE функція 0x00406400 перевіряється за допомогою REA . Абонент, який"
|
||
" потрапив у глухий кут, видає значення tile_x в 20 і 30 разів більше. "
|
||
"Інструкції завантажують x, множать на 1,5625, віднімають 500,0, застосовують"
|
||
" pan_scale і повертають ціле число. Підтримуваний C перевіряється незалежно "
|
||
"від вихідного x86 в 3205 випадках і за допомогою компілятора VC4.0 "
|
||
"відтворюється на відповідність 63 байтам."
|
||
|
||
#: website/public/showcase/dx-ball/index.html:217
|
||
msgctxt "page:showcase/dx-ball/index.html"
|
||
msgid "On this page"
|
||
msgstr "На цій сторінці"
|
||
|
||
#: website/public/showcase/dx-ball/index.html:226
|
||
msgctxt "page:showcase/dx-ball/index.html"
|
||
msgid "DX-Ball reconstruction case study"
|
||
msgstr "Тематичне дослідження реконструкції DX-Ball"
|
||
|
||
#: website/public/showcase/dx-ball/index.html:277
|
||
msgctxt "page:showcase/dx-ball/index.html"
|
||
msgid "Copy example prompt"
|
||
msgstr "Запит на копіювання прикладу"
|
||
|
||
#: website/public/showcase/dx-ball/index.html:418
|
||
msgctxt "page:showcase/dx-ball/index.html"
|
||
msgid "Follow the sound-pan calculation"
|
||
msgstr "Слідкуйте за розрахунком положення звуку зліва / справа"
|
||
|
||
#: website/public/showcase/dx-ball/index.html:468
|
||
msgctxt "page:showcase/dx-ball/index.html"
|
||
msgid "Copy original assembly excerpt"
|
||
msgstr "Скопіюйте фрагмент оригінальної збірки"
|
||
|
||
#: website/public/showcase/dx-ball/index.html:489
|
||
msgctxt "page:showcase/dx-ball/index.html"
|
||
msgid "Copy sound-pan function"
|
||
msgstr "Функція копіювання звуку-панорамування"
|
||
|
||
#: website/public/showcase/dx-ball/index.html:560
|
||
msgctxt "page:showcase/dx-ball/index.html"
|
||
msgid "Copy complete sound-pan assembly"
|
||
msgstr "Скопіюйте повну збірку sound-pan"
|
||
|
||
#: website/public/showcase/dx-ball/index.html:714
|
||
msgctxt "page:showcase/dx-ball/index.html"
|
||
msgid "Copy DX-Ball analysis command"
|
||
msgstr "Скопіювати команду аналізу DX-Ball"
|
||
|
||
#: website/public/showcase/dx-ball/index.html:772
|
||
msgctxt "page:showcase/dx-ball/index.html"
|
||
msgid "Back to top"
|
||
msgstr "Нагору"
|
||
|
||
#: website/public/showcase/index.html:99
|
||
msgctxt "page:showcase/index.html"
|
||
msgid "Skip to content"
|
||
msgstr "Перейти до змісту"
|
||
|
||
#. {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}Головний{ph1} сторінка / вітрини"
|
||
|
||
#: website/public/showcase/index.html:182
|
||
msgctxt "page:showcase/index.html"
|
||
msgid "REA case studies."
|
||
msgstr "Тематичні дослідження REA."
|
||
|
||
#: 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, ігри, Electron і конкурс CTF з кодом, цифрами і перевіреними "
|
||
"результатами."
|
||
|
||
#: website/public/showcase/index.html:190
|
||
msgctxt "page:showcase/index.html"
|
||
msgid "Android · APK analysis"
|
||
msgstr "Android * аналіз APK"
|
||
|
||
#: website/public/showcase/index.html:192
|
||
msgctxt "page:showcase/index.html"
|
||
msgid "How an authenticator generates a login code"
|
||
msgstr "Як аутентифікатор генерує код входу"
|
||
|
||
#: 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 ""
|
||
"Дізнайтеся, як Aegis обчислює шестизначний код у опублікованому APK . "
|
||
"Слідкуйте за методами генерації за допомогою REA, а потім подивіться на "
|
||
"демонстраційний годинник, щоб зрозуміти, чому код змінюється кожні 30 "
|
||
"секунд."
|
||
|
||
#: website/public/showcase/index.html:204
|
||
msgctxt "page:showcase/index.html"
|
||
msgid "Read the Android case study"
|
||
msgstr "Ознайомтеся з тематичним дослідженням Android"
|
||
|
||
#: website/public/showcase/index.html:208
|
||
msgctxt "page:showcase/index.html"
|
||
msgid "CTF · Native analysis"
|
||
msgstr "CTF * аналіз програм з машинним кодом"
|
||
|
||
#: website/public/showcase/index.html:210
|
||
msgctxt "page:showcase/index.html"
|
||
msgid "Solve a CTF flag checker"
|
||
msgstr "Вирішіть проблему перевірки прапора CTF"
|
||
|
||
#: 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 ""
|
||
"Вивчіть просте завдання DOWNDERCTF за допомогою REA. Знайдіть її функції "
|
||
"перевірки, Перетворіть маски та суми в рівняння, а потім перевірте прапорець"
|
||
" \"вирішено\" за допомогою оригінальної програми."
|
||
|
||
#: website/public/showcase/index.html:222
|
||
msgctxt "page:showcase/index.html"
|
||
msgid "Read the CTF case study"
|
||
msgstr "Ознайомтеся з тематичним дослідженням CTF"
|
||
|
||
#: website/public/showcase/index.html:226
|
||
msgctxt "page:showcase/index.html"
|
||
msgid "Native · Reconstruction"
|
||
msgstr "Нативна * Реконструкція"
|
||
|
||
#: website/public/showcase/index.html:228
|
||
msgctxt "page:showcase/index.html"
|
||
msgid "DX-Ball's sound-pan calculation"
|
||
msgstr "DX-Ball обчислює положення звуку зліва / справа"
|
||
|
||
#: 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 ""
|
||
"Відновіть розрахунок положення звуку зліва / справа з гри Windows 1996 року "
|
||
"випуску. Інструкції REA, посилання на виклик та Числові константи "
|
||
"призводять до невеликої функції C, яка перевіряється на відповідність "
|
||
"вихідній поведінці та всім 63 скомпільованим байтам."
|
||
|
||
#: website/public/showcase/index.html:241
|
||
msgctxt "page:showcase/index.html"
|
||
msgid "Read the DX-Ball case study"
|
||
msgstr "Ознайомтеся з тематичним дослідженням DX-Ball"
|
||
|
||
#: website/public/showcase/index.html:245
|
||
msgctxt "page:showcase/index.html"
|
||
msgid "Electron · Feature tracing"
|
||
msgstr "Electron * відстеження об'єктів"
|
||
|
||
#: website/public/showcase/index.html:247
|
||
msgctxt "page:showcase/index.html"
|
||
msgid "How Notion copies text and HTML"
|
||
msgstr "Як Notion копіює текст та HTML"
|
||
|
||
#: 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 ""
|
||
"Відстежуйте API, що працює на сторінці, за допомогою JavaScript, вбудованого"
|
||
" в Notion. Слідкуйте за його оболонками IPC у системному буфері обміну, а "
|
||
"потім подивіться, як маленький маркер HTML пов'язує дані розширеного блоку з"
|
||
" копією."
|
||
|
||
#: website/public/showcase/index.html:259
|
||
msgctxt "page:showcase/index.html"
|
||
msgid "Read the Notion case study"
|
||
msgstr "Ознайомтеся з тематичним дослідженням Notion"
|
||
|
||
#: website/public/showcase/index.html:263
|
||
msgctxt "page:showcase/index.html"
|
||
msgid "PC-98 DOS · Reconstruction"
|
||
msgstr "PC-98 DOS * Реконструкція"
|
||
|
||
#: website/public/showcase/index.html:265
|
||
msgctxt "page:showcase/index.html"
|
||
msgid "How TH04 aims a ring of bullets"
|
||
msgstr "Як TH04 цілиться в кільце з куль"
|
||
|
||
#: 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 ""
|
||
"Перевірте оригінальний 16-розрядний angle helper за допомогою REA . Зіставте"
|
||
" його операції множення, ділення та координації з зрозумілим C++, а потім "
|
||
"подивіться, як вони створюють кільце, спрямоване на гравця."
|
||
|
||
#: website/public/showcase/index.html:277
|
||
msgctxt "page:showcase/index.html"
|
||
msgid "Read the TH04 case study"
|
||
msgstr "Ознайомтеся з тематичним дослідженням TH04"
|
||
|
||
#: website/public/showcase/index.html:282
|
||
msgctxt "page:showcase/index.html"
|
||
msgid "Step-by-step guides"
|
||
msgstr "Покрокові керівництва"
|
||
|
||
#: 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 ""
|
||
"У посібниках описуються власні обчислення, експорт Electron і запит до "
|
||
"браузера. Кожне з них починається з запиту і конкретної мети."
|
||
|
||
#: website/public/showcase/index.html:287
|
||
msgctxt "page:showcase/index.html"
|
||
msgid "Read the guides"
|
||
msgstr "Ознайомтеся з посібниками"
|
||
|
||
#: website/public/showcase/index.html:6
|
||
msgctxt "page:showcase/index.html"
|
||
msgid "Reverse Engineering Case Studies — REA"
|
||
msgstr "Тематичні дослідження з реверс-інжинірингу-REA"
|
||
|
||
#: website/public/showcase/index.html:7
|
||
msgctxt "page:showcase/index.html"
|
||
msgid ""
|
||
"Follow REA investigations through code, figures and demos: an Android "
|
||
"authenticator, DX-Ball, Notion, TH04 and a DownUnderCTF flag checker."
|
||
msgstr ""
|
||
"Слідкуйте за розслідуваннями REA за допомогою коду, малюнків і демонстрацій:"
|
||
" Android authenticator, DX-Ball, Notion, TH04 і засоби перевірки прапора "
|
||
"downunderctf."
|
||
|
||
#: website/public/showcase/index.html:304
|
||
msgctxt "page:showcase/index.html"
|
||
msgid "Back to top"
|
||
msgstr "Нагору"
|
||
|
||
#: website/public/showcase/notion/index.html:99
|
||
msgctxt "page:showcase/notion/index.html"
|
||
msgid "Skip to content"
|
||
msgstr "Перейти до змісту"
|
||
|
||
#. {ph0}: <a href="../../">
|
||
#. {ph1}: </a>
|
||
#. {ph2}: <a href="../">
|
||
#. {ph3}: </a>
|
||
#: website/public/showcase/notion/index.html:181
|
||
#, python-brace-format
|
||
msgctxt "page:showcase/notion/index.html"
|
||
msgid "{ph0}Home{ph1} / {ph2}Showcases{ph3} / Notion"
|
||
msgstr "{ph0}Головний{ph1} сторінка / {ph2}Вітрина{ph3} / Notion"
|
||
|
||
#: website/public/showcase/notion/index.html:184
|
||
msgctxt "page:showcase/notion/index.html"
|
||
msgid "Case study · Electron"
|
||
msgstr "Тематичне дослідження * 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 "Як Notion копіює{ph0}текст і 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 ""
|
||
"Простежте виклик буфера обміну з API сторінки Notion, через попереднє "
|
||
"завантаження і основний процес, в програму запису буфера обміну Electron."
|
||
|
||
#: website/public/showcase/notion/index.html:190
|
||
msgctxt "page:showcase/notion/index.html"
|
||
msgid "Notion Desktop 7.6.1 · JavaScript · REA"
|
||
msgstr "Робочий стіл Notion 7.6.1 * JavaScript * REA"
|
||
|
||
#: website/public/showcase/notion/index.html:194
|
||
msgctxt "page:showcase/notion/index.html"
|
||
msgid "The bridge inside Notion's desktop package"
|
||
msgstr "Міст всередині настільного пакету Notion"
|
||
|
||
#. {ph0}: <span class="flow-label">
|
||
#. {ph1}: </span>
|
||
#. {ph2}: <span class="flow-node">
|
||
#. {ph3}: <code>clipboard.write(data)</code>
|
||
#. {ph4}: </span>
|
||
#. {ph5}: <span class="flow-note" >
|
||
#. {ph6}: </span >
|
||
#: website/public/showcase/notion/index.html: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 · {ph1}Буфер обміну API, орієнтований на сторінку{ph2}{ph3}{ph4} "
|
||
"{ph5}Попереднє завантаження надає викликаний метод.{ph6}"
|
||
|
||
#. {ph0}: <span class="flow-label">
|
||
#. {ph1}: </span>
|
||
#. {ph2}: <span class="flow-node">
|
||
#. {ph3}: <code>ipcRenderer.invoke</code>
|
||
#. {ph4}: </span>
|
||
#. {ph5}: <span class="flow-note" >
|
||
#. {ph6}: </span >
|
||
#: website/public/showcase/notion/index.html: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 * попередньо завантажте оболонку{ph1} {ph2}{ph3}{ph4} {ph5}оболонки "
|
||
"надсилає канал та аргументи.{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 * обробник основного процесу ipcMain{ph1}.обробник{ph2}{ph3}{ph4} "
|
||
"{ph5}одержувача перевіряє, з якої сторінки він був відправлений.{ph6}"
|
||
|
||
#. {ph0}: <span class="flow-label">
|
||
#. {ph1}: </span>
|
||
#. {ph2}: <span class="flow-node">
|
||
#. {ph3}: <code>clipboard.write(data)</code>
|
||
#. {ph4}: </span>
|
||
#. {ph5}: <span class="flow-note" >
|
||
#. {ph6}: </span >
|
||
#: website/public/showcase/notion/index.html: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 * системний буфер{ph1} обмін {ph2}{ph3}{ph4} {ph5}Electron записує "
|
||
"наданий текст і 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 "Один канал з'єднує дві сторони: {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 ""
|
||
"Упакований код використовує один і той же канал у процесі попереднього "
|
||
"завантаження та в основному процесі. При вирішенні оболонок виявляються "
|
||
"виклики Electron, що стоять за цими іменами."
|
||
|
||
#: website/public/showcase/notion/index.html:238
|
||
msgctxt "page:showcase/notion/index.html"
|
||
msgid "In this case study"
|
||
msgstr "У цьому тематичному дослідженні"
|
||
|
||
#. {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}Дотримуйтесь мосту з буфера обміну{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}Збереження структури блоку{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}Додаткові приклади та джерела{ph1}"
|
||
|
||
#: website/public/showcase/notion/index.html:247
|
||
msgctxt "page:showcase/notion/index.html"
|
||
msgid "Where does the copy operation go?"
|
||
msgstr "Де виконується операція копіювання?"
|
||
|
||
#. {ph0}: <code>clipboard.write</code>
|
||
#: website/public/showcase/notion/index.html: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 ""
|
||
"На сторінці відображається метод під назвою {ph0}. Його реалізація в "
|
||
"попередньому завантаженні є оболонкою. Корисне питання полягає в тому, що "
|
||
"надсилає ця оболонка і який код її отримує."
|
||
|
||
#. {ph0}: <span class="terminal-dots" aria-hidden="true" >
|
||
#. {ph1}: <i>
|
||
#. {ph2}: </i>
|
||
#. {ph3}: <i>
|
||
#. {ph4}: </i>
|
||
#. {ph5}: <i>
|
||
#. {ph6}: </i>
|
||
#. {ph7}: </span >
|
||
#: website/public/showcase/notion/index.html: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}Ваш кодуючий агент"
|
||
|
||
#: 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 "Копіювати"
|
||
|
||
#. {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}Використовуйте REA, щоб простежити, як Notion копіює текст "
|
||
"і HTML в системний буфер обміну. Показуйте код на кожному "
|
||
"кроці.{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 ""
|
||
"Приклад запиту з локальним пакетом додатків Notion, доступним вашому "
|
||
"програмісту."
|
||
|
||
#: website/public/showcase/notion/index.html:281
|
||
msgctxt "page:showcase/notion/index.html"
|
||
msgid "REA finds where to start reading"
|
||
msgstr "REA знаходить, з чого почати читання"
|
||
|
||
#: 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 ""
|
||
"Аналіз попереднього завантаження вкладок за допомогою REA дозволяє знайти "
|
||
"API, доступний для сторінки, і виклик, який відправляє запит IPC. Обидва "
|
||
"результати представлені з діапазонами вихідних текстів у зменшеному пакеті:"
|
||
|
||
#: website/public/showcase/notion/index.html:288
|
||
msgctxt "page:showcase/notion/index.html"
|
||
msgid "REA findings → two places to open"
|
||
msgstr "REA висновки → два місця для відкриття"
|
||
|
||
#. {ph0}: <code>analyze_javascript_application</code>
|
||
#: website/public/showcase/notion/index.html: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 ""
|
||
"Вибрані поля з нового {ph0}результату застосування "
|
||
"analyze_javascript_application в попередньому завантаженні вкладки Notion, "
|
||
"записаного за допомогою REA 4.1.0. Для позицій використовуються рядок "
|
||
"вихідного пакета і стовпець, заснований на нулі."
|
||
|
||
#. {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 ""
|
||
"Агент відкриває ці папки, знаходить елемент clipboard у зібраному API та "
|
||
"читає {ph0}. Його сайт виклику надає {ph1}. Це ім'я дає Агенту точну "
|
||
"інформацію для пошуку в основному пакеті. У чотирьох наведених нижче витягах"
|
||
" показано маршрут, по якому він підключається."
|
||
|
||
#: website/public/showcase/notion/index.html:319
|
||
msgctxt "page:showcase/notion/index.html"
|
||
msgid "Four short pieces of code"
|
||
msgstr "Чотири короткі фрагменти коду"
|
||
|
||
#: 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 ""
|
||
"Спрощений порівняно з пакетом JavaScript, з читабельними іменами змінних. "
|
||
"Незв'язані елементи опущені."
|
||
|
||
#: website/public/showcase/notion/index.html:326
|
||
msgctxt "page:showcase/notion/index.html"
|
||
msgid "Start at the API exposed to the page"
|
||
msgstr "Почніть з API, доступного для цієї сторінки"
|
||
|
||
#. {ph0}: <code>invokerInMain</code>
|
||
#: website/public/showcase/notion/index.html: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 ""
|
||
"Цей учасник надає назву каналу. Реалізація {ph0} повідомляє нам, як запит "
|
||
"завершує обробку сторінки."
|
||
|
||
#: website/public/showcase/notion/index.html:355
|
||
msgctxt "page:showcase/notion/index.html"
|
||
msgid "Resolve the preload's wrapper"
|
||
msgstr "Усуньте оболонку попереднього завантаження"
|
||
|
||
#. {ph0}: <code class="notion-channel">notion:clipboard:write</code>
|
||
#: website/public/showcase/notion/index.html: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 ""
|
||
"Функція повернення перенаправляє аргументи через IPC запиту та відповіді "
|
||
"Electron. Тепер ми можемо шукати {ph0} на стороні основного процесу."
|
||
|
||
#: website/public/showcase/notion/index.html:386
|
||
msgctxt "page:showcase/notion/index.html"
|
||
msgid "Check how the receiver is registered"
|
||
msgstr "Перевірте, як зареєстрований одержувач"
|
||
|
||
#. {ph0}: <code>addListener</code>
|
||
#. {ph1}: <code>ipcMain.handle</code>
|
||
#: website/public/showcase/notion/index.html: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 ""
|
||
"Основний процес використовує іншу оболонку. Його метод {ph0} реєструвати "
|
||
"{ph1} для цього каналу."
|
||
|
||
#: website/public/showcase/notion/index.html:414
|
||
msgctxt "page:showcase/notion/index.html"
|
||
msgid "Find the write and its sender check"
|
||
msgstr "Знайдіть запис і перевірте його відправника"
|
||
|
||
#: 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 ""
|
||
"Це адресат. Після перевірки відправника обробник передає надані дані в API "
|
||
"буфера обміну Electron. Канал і дві дозволені оболонки підключають відкритий"
|
||
" метод до цього виклику."
|
||
|
||
#: website/public/showcase/notion/index.html:448
|
||
msgctxt "page:showcase/notion/index.html"
|
||
msgid "How does a copied block keep its structure?"
|
||
msgstr "Як скопійований блок зберігає свою структуру?"
|
||
|
||
#. {ph0}: <code>electronApi.clipboard.write</code>
|
||
#: website/public/showcase/notion/index.html: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 ""
|
||
"Веб-редактор Notion надсилає текст та HTML-код через {ph0}. Він зберігає "
|
||
"дані блоку локально та вставляє ідентифікатор у скопійований HTML-код, щоб "
|
||
"зв'язати їх."
|
||
|
||
#: website/public/showcase/notion/index.html:455
|
||
msgctxt "page:showcase/notion/index.html"
|
||
msgid "HTML links to saved block data"
|
||
msgstr "HTML-посилання на збережені дані блоків"
|
||
|
||
#: website/public/showcase/notion/index.html:479
|
||
msgctxt "page:showcase/notion/index.html"
|
||
msgid "Read the HTML ID"
|
||
msgstr "Прочитайте ідентифікатор HTML"
|
||
|
||
#: website/public/showcase/notion/index.html:480
|
||
msgctxt "page:showcase/notion/index.html"
|
||
msgid "Find the same local ID"
|
||
msgstr "Знайдіть той самий локальний ідентифікатор"
|
||
|
||
#: website/public/showcase/notion/index.html:481
|
||
msgctxt "page:showcase/notion/index.html"
|
||
msgid "Restore Notion block data"
|
||
msgstr "Відновити дані блоку Notion"
|
||
|
||
#: 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 ""
|
||
"Ілюстративний текст та ідентифікатор. Записаний модульний тест відновлює "
|
||
"дані блоку, якщо ідентифікатори однакові; застарілий запис повертає лише "
|
||
"текст та HTML."
|
||
|
||
#: 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 ""
|
||
"При вставці Notion шукає HTML-ідентифікатор і порівнює його зі збереженою "
|
||
"копією. Відповідні ідентифікатори відновлюють дані блоку."
|
||
|
||
#: 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 ""
|
||
"Формат буфера обміну, записаний із веб-ресурсів, кешованих 13 липня 2026 "
|
||
"року."
|
||
|
||
#: website/public/showcase/notion/index.html:499
|
||
msgctxt "page:showcase/notion/index.html"
|
||
msgid "More examples and sources"
|
||
msgstr "Додаткові приклади та джерела"
|
||
|
||
#: website/public/showcase/notion/index.html:501
|
||
msgctxt "page:showcase/notion/index.html"
|
||
msgid "Another example: Markdown tables"
|
||
msgstr "Інший приклад: таблиці уцінки"
|
||
|
||
#: 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 перетворює Markdown в блокові дані. У цьому прикладі показано, як "
|
||
"таблиця перетворюється на заголовок та рядки даних."
|
||
|
||
#: website/public/showcase/notion/index.html:507
|
||
msgctxt "page:showcase/notion/index.html"
|
||
msgid "A table through Notion's Markdown parser"
|
||
msgstr "Таблиця за допомогою аналізатора уцінки 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 ""
|
||
"Записаний вихід із витягнутого аналізатора Markdown. Таблиця перетворюється "
|
||
"в рядки і осередки."
|
||
|
||
#: website/public/showcase/notion/index.html:535
|
||
msgctxt "page:showcase/notion/index.html"
|
||
msgid "Another path: the offline SQLite connection"
|
||
msgstr "Інший шлях: автономне підключення до SQLite"
|
||
|
||
#. {ph0}: <code>getSqliteMeta</code>
|
||
#: website/public/showcase/notion/index.html: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 ""
|
||
"Програма візуалізації Notion запитує {ph0} через IPC. Основний процес "
|
||
"створює канал передачі повідомлень і передає один порт програмі "
|
||
"візуалізації, а інший - службовому процесу SQLite. Наступні пакети "
|
||
"інструкцій та результати передаються через цей порт."
|
||
|
||
#: 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 ""
|
||
"Після цієї передачі обслуговування пояснюється, як виконується робота з "
|
||
"базою даних і чому при відстеженні тільки початкового IPC-запиту не "
|
||
"враховується подальший діалог."
|
||
|
||
#: website/public/showcase/notion/index.html:549
|
||
msgctxt "page:showcase/notion/index.html"
|
||
msgid "Sources and how to read the excerpts"
|
||
msgstr "Джерела та як читати уривки"
|
||
|
||
#. {ph0}: <code>app.asar</code>
|
||
#. {ph1}: <code>main/index.js</code>
|
||
#. {ph2}: <code>isNotionWebContents</code>
|
||
#: website/public/showcase/notion/index.html: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 ""
|
||
"Інтерфейс буфера обміну взято з NotionNotion{ph0}: попереднє завантаження "
|
||
"вкладки та {ph1}. У наведених витягах наведені скорочені імена змінних і "
|
||
"опущений незв'язаний код; показаний помічник для перевірки відправника з "
|
||
"базовим {ph2}викликом isNotionWebContents."
|
||
|
||
#. {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 ""
|
||
"Приклади віртуального буфера обміну та Markdown взяті з веб-ресурсів, "
|
||
"кешованих 13 липня 2026 року, включаючи модулі {ph0}, {ph1}, {ph2} і {ph3}. "
|
||
"У цих ресурсів є своя версія. Збережені тести запускали витягнуті модулі та "
|
||
"невеликі модулі управління; їх результати описують ці тести, а не захоплений"
|
||
" сеанс інтерфейсу робочого столу."
|
||
|
||
#: 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 ""
|
||
"Показаний тут результат REA - це цілеспрямований аналіз збереженого "
|
||
"попереднього завантаження вкладок, записаний за допомогою опублікованого "
|
||
"пакету REA 4.1.0. Він визначає розташування API і запускає операцію. Елемент"
|
||
" буфера обміну і відповідний приймач підключаються шляхом зчитування їх "
|
||
"реалізацій-оболонок в пакеті."
|
||
|
||
#. {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 ""
|
||
"У прикладі Markdown використовується модуль синтаксичного аналізу {ph0}. "
|
||
"Тести збереженого модуля показують, що і фільтри сторінки, і фільтри чату "
|
||
"зберігають цю таблицю. Парсери вставки / імпорту, структурованого Markdown і"
|
||
" AI / chat мають окремі точки входу і проміжні формати."
|
||
|
||
#. {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} Керівництво по застосуванню{ph1}{ph2} JavaScript ознайомтеся з "
|
||
"невеликою функцією експорту програми Electron.{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} Реконструкція{ph1}{ph2} DX-Ball виконується відповідно до власних "
|
||
"інструкцій для перевіреної функції C.{ph3}"
|
||
|
||
#: website/public/showcase/notion/index.html:6
|
||
msgctxt "page:showcase/notion/index.html"
|
||
msgid "Notion Electron Reverse Engineering: Clipboard — REA"
|
||
msgstr "Notion Electron зворотна інженерія: Буфер обміну-REA"
|
||
|
||
#: website/public/showcase/notion/index.html:7
|
||
msgctxt "page:showcase/notion/index.html"
|
||
msgid ""
|
||
"Follow Notion's clipboard API through Electron's preload, IPC wrappers and "
|
||
"main process, with short code excerpts and a look at its rich clipboard "
|
||
"format."
|
||
msgstr ""
|
||
"Дотримуйтесь API буфера обміну Notion за допомогою попереднього завантаження"
|
||
" Electron, обгортки IPC та основного процесу, з короткими витягами коду та "
|
||
"ознайомтеся з його багатим форматом буфера обміну."
|
||
|
||
#: website/public/showcase/notion/index.html:237
|
||
msgctxt "page:showcase/notion/index.html"
|
||
msgid "On this page"
|
||
msgstr "На цій сторінці"
|
||
|
||
#: website/public/showcase/notion/index.html:245
|
||
msgctxt "page:showcase/notion/index.html"
|
||
msgid "Notion Electron case study"
|
||
msgstr "Тематичне дослідження Notion Electron"
|
||
|
||
#: website/public/showcase/notion/index.html:259
|
||
msgctxt "page:showcase/notion/index.html"
|
||
msgid "Copy Notion analysis prompt"
|
||
msgstr "Скопіювати запит на аналіз Notion"
|
||
|
||
#: website/public/showcase/notion/index.html:332
|
||
msgctxt "page:showcase/notion/index.html"
|
||
msgid "Copy Notion preload excerpt"
|
||
msgstr "Скопіювати фрагмент попереднього завантаження Notion"
|
||
|
||
#: website/public/showcase/notion/index.html:361
|
||
msgctxt "page:showcase/notion/index.html"
|
||
msgid "Copy Notion invoke wrapper excerpt"
|
||
msgstr "Скопіювати фрагмент коду Notion для виклику оболонки"
|
||
|
||
#: website/public/showcase/notion/index.html:392
|
||
msgctxt "page:showcase/notion/index.html"
|
||
msgid "Copy Notion handler wrapper excerpt"
|
||
msgstr "Скопіювати фрагмент оболонки обробника Notion"
|
||
|
||
#: website/public/showcase/notion/index.html:420
|
||
msgctxt "page:showcase/notion/index.html"
|
||
msgid "Copy Notion clipboard receiver excerpt"
|
||
msgstr "Скопіювати фрагмент приймача з буфера обміну Notion"
|
||
|
||
#: website/public/showcase/notion/index.html:475
|
||
msgctxt "page:showcase/notion/index.html"
|
||
msgid "Restoring rich clipboard data on paste"
|
||
msgstr "Відновлення розширених даних буфера обміну при вставці"
|
||
|
||
#: website/public/showcase/notion/index.html:618
|
||
msgctxt "page:showcase/notion/index.html"
|
||
msgid "Back to top"
|
||
msgstr "Нагору"
|
||
|
||
#: website/public/showcase/th04/index.html:99
|
||
msgctxt "page:showcase/th04/index.html"
|
||
msgid "Skip to content"
|
||
msgstr "Перейти до змісту"
|
||
|
||
#. {ph0}: <a href="../../">
|
||
#. {ph1}: </a>
|
||
#. {ph2}: <a href="../">
|
||
#. {ph3}: </a>
|
||
#: website/public/showcase/th04/index.html:181
|
||
#, python-brace-format
|
||
msgctxt "page:showcase/th04/index.html"
|
||
msgid "{ph0}Home{ph1} / {ph2}Showcases{ph3} / TH04"
|
||
msgstr "{ph0}Головний{ph1} сторінка / {ph2}Вітрина{ph3} / TH04"
|
||
|
||
#: website/public/showcase/th04/index.html:184
|
||
msgctxt "page:showcase/th04/index.html"
|
||
msgid "Case study · Touhou 4: Lotus Land Story"
|
||
msgstr "Тематичне дослідження * Тохоу 4: історія Землі лотосів"
|
||
|
||
#. {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 "Реконструкції TH04 з{ph0}візерунки кулі."
|
||
|
||
#: 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 ""
|
||
"Набір маркерів починається з обчислення короткого кута. Використовуйте REA "
|
||
"для перевірки оригінальної функції DOS, а потім дотримуйтесь її інструкцій "
|
||
"на читабельному 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-розрядна версія DOS * C++ та збірка"
|
||
|
||
#: website/public/showcase/th04/index.html:192
|
||
msgctxt "page:showcase/th04/index.html"
|
||
msgid "View the TH04 reconstruction"
|
||
msgstr "Переглянути реконструкцію TH04"
|
||
|
||
#: website/public/showcase/th04/index.html:198
|
||
msgctxt "page:showcase/th04/index.html"
|
||
msgid "From original instructions to checked source"
|
||
msgstr "Від оригінальних інструкцій до перевіреного джерела"
|
||
|
||
#. {ph0}: <span class="flow-label">
|
||
#. {ph1}: </span >
|
||
#. {ph2}: <strong class="flow-node">
|
||
#. {ph3}: </strong >
|
||
#. {ph4}: <span class="flow-note" >
|
||
#. {ph5}: </span >
|
||
#: website/public/showcase/th04/index.html: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 * основна частина оригінальної гри{ph1}{ph2}.Запустіть "
|
||
"виконуваний{ph3}{ph4} файл PC-98 та його допоміжний інструмент Bullet-"
|
||
"angle.{ph5}"
|
||
|
||
#. {ph0}: <span class="flow-label">
|
||
#. {ph1}: </span >
|
||
#. {ph2}: <strong class="flow-node">
|
||
#. {ph3}: </strong >
|
||
#. {ph4}: <span class="flow-note" >
|
||
#. {ph5}: </span >
|
||
#: website/public/showcase/th04/index.html: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 * перевірте за допомогою{ph1}{ph2} інструкцій REA + "
|
||
"посилань{ph3}{ph4}, перевірте завантажений код DOS і прочитайте розрахунок "
|
||
"кута з виконуваного файлу.{ph5}"
|
||
|
||
#. {ph0}: <span class="flow-label">
|
||
#. {ph1}: </span >
|
||
#. {ph2}: <strong class="flow-node">
|
||
#. {ph3}: </strong >
|
||
#. {ph4}: <span class="flow-note" >
|
||
#. {ph5}: </span >
|
||
#: website/public/showcase/th04/index.html: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 * Прочитайте пробіл C++{ph1}{ph2} → aim → rotate{ph3}{ph4}, щоб "
|
||
"пов'язати кожну операцію зі збереженою реконструкцією.{ph5}"
|
||
|
||
#. {ph0}: <span class="flow-label">
|
||
#. {ph1}: </span >
|
||
#. {ph2}: <strong class="flow-node">
|
||
#. {ph3}: </strong >
|
||
#. {ph4}: <span class="flow-note" >
|
||
#. {ph5}: </span >
|
||
#: website/public/showcase/th04/index.html: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 * перевірте вихідні{ph1}{ph2} 2139 відповідних байт{ph3}{ph4}, "
|
||
"записаних компілятором, перевірки охоплюють код генерації маркерів, що "
|
||
"містить цей допоміжний елемент.{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 повертає вихідний код і результати його аналізу. Проект TH04 забезпечує "
|
||
"підтримувані перевірки вихідного коду та компілятора."
|
||
|
||
#: website/public/showcase/th04/index.html:239
|
||
msgctxt "page:showcase/th04/index.html"
|
||
msgid "In this case study"
|
||
msgstr "У цьому тематичному дослідженні"
|
||
|
||
#. {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}Кільце з кулями{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}Що повертає REA{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}Збірка на 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}Перевірка джерела{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}Повний проект{ph1}"
|
||
|
||
#: website/public/showcase/th04/index.html:250
|
||
msgctxt "page:showcase/th04/index.html"
|
||
msgid "How a ring aims at the player"
|
||
msgstr "Як кільце націлюється на гравця"
|
||
|
||
#: 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 ""
|
||
"Для атаки Еллі потрібно прицільне кільце з початковим рахунком 16. Один з "
|
||
"помічників розраховує напрямок польоту кожної кулі. Одне і те ж кільце може "
|
||
"бути спрямоване у фіксованому напрямку або повернуто в бік гравця."
|
||
|
||
#. {ph0}: <span class="terminal-dots" aria-hidden="true" >
|
||
#. {ph1}: <i>
|
||
#. {ph2}: </i>
|
||
#. {ph3}: <i>
|
||
#. {ph4}: </i>
|
||
#. {ph5}: <i>
|
||
#. {ph6}: </i>
|
||
#. {ph7}: </span >
|
||
#: website/public/showcase/th04/index.html: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}Ваш кодуючий агент"
|
||
|
||
#: 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 "Копіювати"
|
||
|
||
#. {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}Використовуйте REA, щоб дізнатися, як TH04 створює кільце з"
|
||
" куль і направляє його на гравця. Поясніть розрахунок і покажіть "
|
||
"код.{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 ""
|
||
"Приклад запиту з оригінальним виконуваним файлом та відновленням, доступним "
|
||
"локально."
|
||
|
||
#. {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 зберігає повний оборот за годинниковою стрілкою в 256 кутових одиницях."
|
||
" Для 16 куль кожен індекс додає по 16 одиниць.: {ph0}. При додаванні "
|
||
"напрямку руху гравця ці позиції міняються місцями."
|
||
|
||
#. {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 ""
|
||
"Ілюстрація відновленого математичного розрахунку кута для рахунку 16, "
|
||
"напрямку гравця 40 і повороту шаблону 0. {ph0}Відкрити малюнок{ph1}"
|
||
|
||
#: website/public/showcase/th04/index.html:313
|
||
msgctxt "page:showcase/th04/index.html"
|
||
msgid "The firing template in the recovered source"
|
||
msgstr "Шаблон запуску у відновленому джерелі"
|
||
|
||
#: website/public/showcase/th04/index.html:318
|
||
msgctxt "page:showcase/th04/index.html"
|
||
msgid "Elly's ring attack · source excerpt"
|
||
msgstr "Напад Еллі на кільце · уривок з джерела"
|
||
|
||
#. {ph0}: <a
|
||
#. href="https://github.com/N0zoM1z0/th04/blob/0d72e9801a5c14c10384efcbb6734ceccb74ee63/src/main/boss/elly_phase_ring16.cpp#L26"
|
||
#. >
|
||
#. {ph1}: </a >
|
||
#: website/public/showcase/th04/index.html: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 ""
|
||
"У цих рядках вибирається шаблон перед налаштуванням складності та "
|
||
"продуктивності. {ph0}Прочитайте джерело атаки{ph1}."
|
||
|
||
#: website/public/showcase/th04/index.html:344
|
||
msgctxt "page:showcase/th04/index.html"
|
||
msgid "What REA returns"
|
||
msgstr "Що повертає REA"
|
||
|
||
#. {ph0}: <code>bullet_velocity_and_angle_set()</code>
|
||
#: website/public/showcase/th04/index.html: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 ""
|
||
"Ми перевіряємо {ph0}, які задають швидкість і кут нахилу кожної кулі. REA "
|
||
"повертає свої інструкції, псевдокод та посилання. Три частини цього "
|
||
"результату пояснюють закономірність."
|
||
|
||
#: website/public/showcase/th04/index.html:353
|
||
msgctxt "page:showcase/th04/index.html"
|
||
msgid "Check the DOS image before reading its code"
|
||
msgstr "Перевірте зображення DOS, перш ніж читати його код"
|
||
|
||
#: 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 ""
|
||
"Перевірка прив'язує завантажений код і записи про переміщення до наданого "
|
||
"виконуваного файлу. Шлях, зазначений вище, скорочений для відображення."
|
||
|
||
#: website/public/showcase/th04/index.html:380
|
||
msgctxt "page:showcase/th04/index.html"
|
||
msgid "Read the ring's multiply and divide"
|
||
msgstr "Прочитайте напис на кільці \"множ і Делі\""
|
||
|
||
#. {ph0}: <code>SI</code>
|
||
#. {ph1}: <code>DS:53AF</code>
|
||
#. {ph2}: <code>bullet_template.count</code>
|
||
#: website/public/showcase/th04/index.html: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} записаний загальний індекс. При зсуві значення множиться на 256, потім"
|
||
" при діленні використовується значення, прочитане з {ph1}. Імена "
|
||
"підтримуваних джерел, які вказані в полі {ph2}. Повна послідовність наведена"
|
||
" нижче."
|
||
|
||
#: website/public/showcase/th04/index.html:407
|
||
msgctxt "page:showcase/th04/index.html"
|
||
msgid "Find where the pattern turns toward the player"
|
||
msgstr "Знайдіть, де малюнок повертається в бік гравця"
|
||
|
||
#: 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 ""
|
||
"Операнди команд надають дві різниці координат і допоміжне значення напрямку."
|
||
" Повернене значення додається до відносного кільцевого кута. Імена джерел "
|
||
"роблять ці адреси читабельними; REA дозволяє агенту перевіряти початкові "
|
||
"операції, що стоять за ними."
|
||
|
||
#: website/public/showcase/th04/index.html:439
|
||
msgctxt "page:showcase/th04/index.html"
|
||
msgid "From assembly to readable C++"
|
||
msgstr "Від асемблера до читабельного 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 ""
|
||
"Виберіть крок, який відповідає початковим інструкціям з розрахунку кута. У "
|
||
"цьому огляді наведено схему прицільного кільця; повний вихідний код також "
|
||
"містить дані про розсіювання, стеки та випадкові моделі."
|
||
|
||
#. {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}"
|
||
|
||
#. {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} Простір"
|
||
|
||
#. {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} Мета"
|
||
|
||
#. {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} Обертати"
|
||
|
||
#. {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} Магазин"
|
||
|
||
#: website/public/showcase/th04/index.html:495
|
||
msgctxt "page:showcase/th04/index.html"
|
||
msgid "REA · original 16-bit instructions"
|
||
msgstr "REA * оригінальні 16-розрядні інструкції"
|
||
|
||
#: website/public/showcase/th04/index.html:529
|
||
msgctxt "page:showcase/th04/index.html"
|
||
msgid "Readable C++ · aimed-ring summary"
|
||
msgstr "Читабельний c++ * короткий опис aimed-ring"
|
||
|
||
#. {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 * зчитуємо маркерний Індекс.{ph1} Аргумент stack завантажується в "
|
||
"{ph2}. У кільці з 16 маркерів цей індекс елемента знаходиться в діапазоні "
|
||
"від 0 до 15."
|
||
|
||
#. {ph0}: <strong>
|
||
#. {ph1}: </strong>
|
||
#. {ph2}: <code>SHL AX,8</code>
|
||
#. {ph3}: <code>IDIV</code>
|
||
#: website/public/showcase/th04/index.html: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 * розставте напрямки на повний оборот.{ph1} {ph2} 8 множиться на "
|
||
"256. Число множиться на нуль і перетворюється в слово, потім {ph3} ділить "
|
||
"результат на це число. Для числа 16 кожен індекс множиться на 16 кутових "
|
||
"одиниць."
|
||
|
||
#. {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 * додайте напрямок руху гравця.{ph1} Два віднімання утворюють "
|
||
"координати гравця мінус вихідна точка. Допоміжний інструмент direction "
|
||
"повертає кут у {ph2}; при додаванні все кільце повертається до гравця."
|
||
|
||
#. {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 * додайте поворот шаблону.{ph1} {ph2} додає кут нахилу шаблону. У "
|
||
"вихідному шаблоні Elly він дорівнює нулю; інші шаблони можуть "
|
||
"використовувати той самий допоміжний елемент із поворотом."
|
||
|
||
#. {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 * Зберігайте кінцевий кут в одному байті.{ph1} Сховище записує {ph2}"
|
||
" в поле \"кут появи\". Значення переносяться після 255, так само, як це "
|
||
"відбувається при перетворенні беззнакових байт. Навколишнє джерело також "
|
||
"перетворює цей кут і швидкість у Швидкість обертання."
|
||
|
||
#: 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 ""
|
||
"У збірці вибирається гілка aimed-ring, обчислення aim і кінцеве сховище. "
|
||
"Наведений вище текст на C++ - це читабельний підсумок. Наведені нижче "
|
||
"перевірки компілятора застосовуються до підтримуваного вихідного тексту у "
|
||
"зв'язаному проекті."
|
||
|
||
#: website/public/showcase/th04/index.html:597
|
||
msgctxt "page:showcase/th04/index.html"
|
||
msgid "Read the maintained ring and aim source"
|
||
msgstr "Ознайомтеся з збереженим кільцем і приціліться в джерело"
|
||
|
||
#. {ph0}: <a
|
||
#. href="https://github.com/N0zoM1z0/th04/blob/0d72e9801a5c14c10384efcbb6734ceccb74ee63/src/main/bullet/add_impl.hpp#L4"
|
||
#. >
|
||
#. {ph1}: </a >
|
||
#. {ph2}: <a
|
||
#. href="https://github.com/N0zoM1z0/th04/blob/0d72e9801a5c14c10384efcbb6734ceccb74ee63/src/main/bullet/add.cpp#L422"
|
||
#. >
|
||
#. {ph3}: </a >
|
||
#. {ph4}: <a
|
||
#. href="https://github.com/N0zoM1z0/th04/blob/0d72e9801a5c14c10384efcbb6734ceccb74ee63/src/main/bullet/types.hpp#L6"
|
||
#. >
|
||
#. {ph5}: </a >
|
||
#: website/public/showcase/th04/index.html: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}Кільцевий макрос{ph1} · {ph2}Мета та джерело швидкості{ph3} · "
|
||
"{ph4}Представлення кута{ph5}"
|
||
|
||
#: website/public/showcase/th04/index.html:646
|
||
msgctxt "page:showcase/th04/index.html"
|
||
msgid "Checking the maintained source"
|
||
msgstr "Перевірка підтримуваного джерела"
|
||
|
||
#: 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 ""
|
||
"Записані перевірки проекту TH04 дозволяють скомпілювати код для генерації "
|
||
"маркерів, включаючи цей помічник, за допомогою закріпленого набору "
|
||
"інструментів Turbo C++ 4.0 J."
|
||
|
||
#: website/public/showcase/th04/index.html:654
|
||
msgctxt "page:showcase/th04/index.html"
|
||
msgid "2,139 matching bytes"
|
||
msgstr "2,139 відповідних байтів"
|
||
|
||
#: 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 ""
|
||
"Скомпільований код генерації маркерів відповідає 2139-байтовому розділу "
|
||
"оригінального виконуваного файлу."
|
||
|
||
#: website/public/showcase/th04/index.html:661
|
||
msgctxt "page:showcase/th04/index.html"
|
||
msgid "Two clean builds"
|
||
msgstr "Дві чисті збірки"
|
||
|
||
#: 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 ""
|
||
"Дві окремі збірки генерують однакові відповідні байти. Записані вхідні хеші "
|
||
"відповідають показаному тут збереженому джерелу."
|
||
|
||
#. {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 ""
|
||
"Записано 3 жовтня 2026 року. {ph0}Ознайомтеся з перевірками "
|
||
"компілятора{ph1}."
|
||
|
||
#: website/public/showcase/th04/index.html:676
|
||
msgctxt "page:showcase/th04/index.html"
|
||
msgid "Target identity and analysis scope"
|
||
msgstr "Ідентифікація мети і обсяг аналізу"
|
||
|
||
#: website/public/showcase/th04/index.html:681
|
||
msgctxt "page:showcase/th04/index.html"
|
||
msgid "Original target"
|
||
msgstr "Початкова мета"
|
||
|
||
#. {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 байт, DOS MZ"
|
||
|
||
#: website/public/showcase/th04/index.html:685
|
||
msgctxt "page:showcase/th04/index.html"
|
||
msgid "Helper entry"
|
||
msgstr "Допоміжний запис"
|
||
|
||
#. {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} у завантаженому зображенні REA"
|
||
|
||
#: website/public/showcase/th04/index.html:689
|
||
msgctxt "page:showcase/th04/index.html"
|
||
msgid "Original file offset"
|
||
msgstr "Зміщення вихідного файлу"
|
||
|
||
#. {ph0}: <code>0x1e7c8</code>
|
||
#. {ph1}: <code>address_to_file_offset</code>
|
||
#: website/public/showcase/th04/index.html:690
|
||
#, python-brace-format
|
||
msgctxt "page:showcase/th04/index.html"
|
||
msgid "{ph0}, returned by {ph1}"
|
||
msgstr "{ph0}, що повертається параметром {ph1}"
|
||
|
||
#: website/public/showcase/th04/index.html:696
|
||
msgctxt "page:showcase/th04/index.html"
|
||
msgid "Recorded code inspection"
|
||
msgstr "Перевірка записаного коду"
|
||
|
||
#: 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 жовтня 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 ""
|
||
"Перевірки компілятора охоплюють весь розділ коду для додавання маркерів, "
|
||
"включаючи цей допоміжний інструмент. Вони також порівнюють його внесок у "
|
||
"відображення та перекриття переміщення."
|
||
|
||
#. {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 перевірив статичне зображення завантаження DOS у сегменті завантаження "
|
||
"{ph0}. Його адреси описують цей аналітичний образ. Результат функції "
|
||
"повідомляє про 503 байти тіла в двох діапазонах по 517 байт; вибрані "
|
||
"інструкції, наведені вище, знаходяться в цих повідомлених діапазонах."
|
||
|
||
#. {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 ""
|
||
"Імена вихідних текстів та перевірки компілятором походять з контрольної "
|
||
"точки TH04 {ph0}. Попередні спостереження за реконструкцією використовували "
|
||
"власні аналітичні сценарії проекту; на цій сторінці додано нову перевірку "
|
||
"REA для тієї ж початкової мети. Надана гра ідентифікується в маніфесті "
|
||
"сховища, при цьому незалежне Походження незайманого дампа все ще відкрите."
|
||
|
||
#: 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 ""
|
||
"На малюнку показаний розрахунок кута. Елементи управління в повній версії "
|
||
"гри, хронометраж і поведінку апаратного забезпечення PC-98 перевіряються під"
|
||
" час виконання в проекті реконструкції окремо."
|
||
|
||
#: website/public/showcase/th04/index.html:731
|
||
msgctxt "page:showcase/th04/index.html"
|
||
msgid "The full TH04 reconstruction"
|
||
msgstr "Повна реконструкція TH04"
|
||
|
||
#: 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 ""
|
||
"Проект створює чотири dos-продукти для гри на підтримуваному C++ та "
|
||
"асемблері. Крім генерації маркерів, у вихідному коді описані етапи, боси, "
|
||
"рендеринг, введення, меню, кінцівки і обробка результатів."
|
||
|
||
#. {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}Вивчіть репозиторій TH04{ph1}"
|
||
|
||
#. {ph0}: <a
|
||
#. href="https://github.com/N0zoM1z0/th04/blob/0d72e9801a5c14c10384efcbb6734ceccb74ee63/src/main/bullet/add.cpp#L292"
|
||
#. >
|
||
#. {ph1}: </a >
|
||
#. {ph2}: <span >
|
||
#. {ph3}: </span >
|
||
#: website/public/showcase/th04/index.html: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}Джерело для генерації маркерів -{ph1}{ph2} це повний допоміжний "
|
||
"інструмент, інші типи шаблонів та налаштування шаблону.{ph3}"
|
||
|
||
#. {ph0}: <a
|
||
#. href="https://github.com/N0zoM1z0/th04/blob/0d72e9801a5c14c10384efcbb6734ceccb74ee63/docs/DOS_BUILD.md"
|
||
#. >
|
||
#. {ph1}: </a >
|
||
#. {ph2}: <span >
|
||
#. {ph3}: </span >
|
||
#: website/public/showcase/th04/index.html: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{ph1}{ph2} Створіть вихідний код і "
|
||
"протестуйте його в робочому процесі емулятора PC-98 проекту.{ph3}"
|
||
|
||
#. {ph0}: <a
|
||
#. href="https://github.com/N0zoM1z0/th04/blob/0d72e9801a5c14c10384efcbb6734ceccb74ee63/docs/RE_HANDOFF.md"
|
||
#. >
|
||
#. {ph1}: </a >
|
||
#. {ph2}: <span>
|
||
#. {ph3}: </span>
|
||
#: website/public/showcase/th04/index.html: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}Поточна перевірка стану проекту{ph1}{ph2} DOS та окремий власний порт "
|
||
"x64.{ph3}"
|
||
|
||
#: website/public/showcase/th04/index.html:6
|
||
msgctxt "page:showcase/th04/index.html"
|
||
msgid "TH04 Reverse Engineering: DOS Bullet Patterns — REA"
|
||
msgstr "TH04 зворотний інжиніринг: шаблони маркерів DOS-REA"
|
||
|
||
#: website/public/showcase/th04/index.html:7
|
||
msgctxt "page:showcase/th04/index.html"
|
||
msgid ""
|
||
"Inspect TH04's original 16-bit DOS code with REA. Follow the assembly and "
|
||
"recovered C++ to see how a ring of bullets is spaced and aimed at the "
|
||
"player."
|
||
msgstr ""
|
||
"Перевірте оригінальний 16-розрядний dos-код TH04 за допомогою REA . "
|
||
"Слідкуйте за збіркою та відновленим C++, щоб побачити, як розставлено кільце"
|
||
" куль і як вони націлені на гравця."
|
||
|
||
#: website/public/showcase/th04/index.html:238
|
||
msgctxt "page:showcase/th04/index.html"
|
||
msgid "On this page"
|
||
msgstr "На цій сторінці"
|
||
|
||
#: website/public/showcase/th04/index.html:248
|
||
msgctxt "page:showcase/th04/index.html"
|
||
msgid "TH04 bullet-pattern case study"
|
||
msgstr "Тематичне дослідження щодо маркування TH04"
|
||
|
||
#: website/public/showcase/th04/index.html:263
|
||
msgctxt "page:showcase/th04/index.html"
|
||
msgid "Copy TH04 example prompt"
|
||
msgstr "Скопіювати запит як приклад TH04"
|
||
|
||
#: 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 фіксовані та цільові кульові кільця; горизонтальна прокрутка на менших "
|
||
"екранах"
|
||
|
||
#: 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 ""
|
||
"Дві діаграми кільця з 16 точок. Нерухоме кільце починається з нульового "
|
||
"кута. При додаванні напрямку руху гравця, рівного 40, всі сторони "
|
||
"повертаються на однакову величину; виділена перша точка вказує на гравця. В "
|
||
"обох випадках відстань між точками становить 16 кутових одиниць, або 22,5 "
|
||
"градуса."
|
||
|
||
#: website/public/showcase/th04/index.html:319
|
||
msgctxt "page:showcase/th04/index.html"
|
||
msgid "Copy TH04 firing template"
|
||
msgstr "Скопіювати шаблон запуску TH04"
|
||
|
||
#: website/public/showcase/th04/index.html:446
|
||
msgctxt "page:showcase/th04/index.html"
|
||
msgid "Follow the TH04 aimed-ring calculation"
|
||
msgstr "Дотримуйтесь розрахунку прицільного кільця TH04"
|
||
|
||
#: website/public/showcase/th04/index.html:496
|
||
msgctxt "page:showcase/th04/index.html"
|
||
msgid "Copy TH04 assembly excerpt"
|
||
msgstr "Скопіюйте фрагмент збірки TH04"
|
||
|
||
#: website/public/showcase/th04/index.html:530
|
||
msgctxt "page:showcase/th04/index.html"
|
||
msgid "Copy readable aimed-ring calculation"
|
||
msgstr "Копіювально-читається розрахунок прицільного кільця"
|
||
|
||
#: website/public/showcase/th04/index.html:787
|
||
msgctxt "page:showcase/th04/index.html"
|
||
msgid "Back to top"
|
||
msgstr "Нагору"
|
||
|
||
#: website/public/assets/main.js:39
|
||
msgctxt "runtime"
|
||
msgid "Copy"
|
||
msgstr "Копіювати"
|
||
|
||
#: website/public/assets/main.js:20
|
||
msgctxt "runtime"
|
||
msgid "Copied"
|
||
msgstr "Скопійований"
|
||
|
||
#: website/public/assets/main.js:31
|
||
msgctxt "runtime"
|
||
msgid "Selected"
|
||
msgstr "Вибраний"
|
||
|
||
#: website/public/assets/main.js:22
|
||
msgctxt "runtime"
|
||
msgid "Code copied to clipboard."
|
||
msgstr "Код копіюється в буфер обміну."
|
||
|
||
#: website/public/assets/main.js:33
|
||
msgctxt "runtime"
|
||
msgid "Code selected. Use your keyboard to copy it."
|
||
msgstr "Обраний код. Скопіюйте його з клавіатури."
|
||
|
||
#: website/public/assets/main.js:147
|
||
#, python-brace-format
|
||
msgctxt "runtime"
|
||
msgid "REA on GitHub ({count})"
|
||
msgstr "REA на GitHub ({count})"
|
||
|
||
#: website/public/assets/dino-demo.js:71
|
||
#, python-brace-format
|
||
msgctxt "runtime"
|
||
msgid "Distance {distance}"
|
||
msgstr "Відстань {distance}"
|
||
|
||
#: website/public/assets/dino-demo.js:81
|
||
msgctxt "runtime"
|
||
msgid "Hit a cactus. Try another speed."
|
||
msgstr "Врізався в кактус. Перемкни швидкість."
|
||
|
||
#: website/public/assets/dino-demo.js:81
|
||
msgctxt "runtime"
|
||
msgid "Space or Jump ↑"
|
||
msgstr "Пробіл або стрибок ↑"
|
||
|
||
#: website/public/assets/dino-demo.js:91
|
||
msgctxt "runtime"
|
||
msgid "Play again"
|
||
msgstr "Зіграй ще раз"
|
||
|
||
#: website/public/assets/dino-demo.js:91
|
||
#: website/public/assets/dino-demo.js:105
|
||
msgctxt "runtime"
|
||
msgid "Play"
|
||
msgstr "Грати"
|
||
|
||
#: website/public/assets/dino-demo.js:165
|
||
msgctxt "runtime"
|
||
msgid "Pause"
|
||
msgstr "Пауза"
|
||
|
||
#: website/public/assets/dino-demo.js:106
|
||
msgctxt "runtime"
|
||
msgid "Press Play, then jump over the cactus."
|
||
msgstr "Натисніть Play, потім перестрибніть через кактус."
|
||
|
||
#: website/public/assets/dino-demo.js:141
|
||
msgctxt "runtime"
|
||
msgid "Hit a cactus. Press Play again, or change the speed and restart."
|
||
msgstr ""
|
||
"Потрапте по кактусу. Натисніть відтворення ще раз або змініть швидкість і "
|
||
"перезапустіть гру."
|
||
|
||
#: website/public/assets/dino-demo.js:166
|
||
msgctxt "runtime"
|
||
msgid "Running. Space or Jump clears a cactus."
|
||
msgstr "Рухомий. Пробіл або стрибок знищують кактус."
|
||
|
||
#: 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 "Призупинений. Натисніть відтворення, щоб продовжити."
|
||
|
||
#: website/public/assets/dino-demo.js:197
|
||
#, python-brace-format
|
||
msgctxt "runtime"
|
||
msgid "Fixed speed: {speed}. Space or Jump clears a cactus."
|
||
msgstr "Фіксована швидкість: {speed}. Пробіл або стрибок прибирають кактус."
|
||
|
||
#: website/public/assets/dino-demo.js:200
|
||
#, python-brace-format
|
||
msgctxt "runtime"
|
||
msgid "Fixed speed: {speed}. Press Play to try it."
|
||
msgstr ""
|
||
"Фіксована швидкість: збільшити {speed}. Натисніть Play, щоб спробувати."
|
||
|
||
#: website/public/assets/dino-demo.js:209
|
||
msgctxt "runtime"
|
||
msgid "Recovered rule: start at 6, then increase toward 13."
|
||
msgstr "Відновлене правило: починайте з 6, потім збільшуйте до 13."
|
||
|
||
#: website/public/assets/dino-demo.js:210
|
||
#, python-brace-format
|
||
msgctxt "runtime"
|
||
msgid "Fixed speed: {speed}."
|
||
msgstr "Фіксована швидкість: {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 ""
|
||
"Відтворив Відновлене правило. Всі чотири значення відповідають "
|
||
"контрольованій перевірці в оригінальній грі, якщо округлити їх до трьох "
|
||
"знаків після коми."
|
||
|
||
#: 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 ""
|
||
"Відтворення відрізняється від значень, записаних в оригінальній грі. "
|
||
"Порівняйте наведені вище правила швидкості та налаштування."
|
||
|
||
#: website/public/assets/aegis-demo.js:22
|
||
#, python-brace-format
|
||
msgctxt "runtime"
|
||
msgid "{start}–{end} seconds"
|
||
msgstr "{start} і {end}"
|
||
|
||
#: website/public/assets/aegis-demo.js:29
|
||
#, python-brace-format
|
||
msgctxt "runtime"
|
||
msgid "{seconds} seconds, time block {block}"
|
||
msgstr "{seconds} секунди, часовий блок {block}"
|
||
|
||
#: website/public/assets/aegis-demo.js:35
|
||
msgctxt "runtime"
|
||
msgid ""
|
||
"Interactive calculation is unavailable in this browser. The example shows "
|
||
"the code at 59 seconds."
|
||
msgstr ""
|
||
"Інтерактивний розрахунок в цьому браузері недоступний. У прикладі код "
|
||
"відображається через 59 секунд."
|
||
|
||
#: website/public/assets/aegis-demo.js:62
|
||
msgctxt "runtime"
|
||
msgid "Checking…"
|
||
msgstr "Перевірка…"
|
||
|
||
#: website/public/assets/aegis-demo.js:76
|
||
#, python-brace-format
|
||
msgctxt "runtime"
|
||
msgid ""
|
||
"{passed} / {total} checks passed (six reference cases, at six and eight "
|
||
"digits)."
|
||
msgstr ""
|
||
"{passed} / {total} пройдено перевірок (шість контрольних випадків, "
|
||
"позначених шестизначними і восьмизначними цифрами)."
|
||
|
||
#: website/public/assets/aegis-demo.js:81
|
||
msgctxt "runtime"
|
||
msgid "Could not run the reference checks. Try again."
|
||
msgstr "Не вдалося виконати перевірку посилань. Пробувати знову."
|
||
|
||
#: website/public/assets/figures/analyst-thinking.svg:2
|
||
msgctxt "figure:analyst-thinking.svg"
|
||
msgid "An analyst thinking at a computer"
|
||
msgstr "Аналітик, який думає за комп'ютером"
|
||
|
||
#: website/public/assets/figures/ctf-mask-equation.svg:2
|
||
#: website/public/assets/figures/ctf-mask-equation.svg:7
|
||
msgctxt "figure:ctf-mask-equation.svg"
|
||
msgid "One check reveals one character"
|
||
msgstr "Одна перевірка виявляє один символ"
|
||
|
||
#: website/public/assets/figures/ctf-mask-equation.svg:3
|
||
msgctxt "figure:ctf-mask-equation.svg"
|
||
msgid ""
|
||
"The seventh mask selects only position 21 in the six by six input grid. Its "
|
||
"character code must equal 55, so the character is 7. The other masks select "
|
||
"different positions and give further equations."
|
||
msgstr ""
|
||
"Сьома маска вибирає лише позицію 21 у вхідній сітці шість на шість. Її "
|
||
"символьний код повинен дорівнювати 55, таким чином, символ дорівнює 7. Інші "
|
||
"маски вибирають інші позиції і дають додаткові рівняння."
|
||
|
||
#: 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 "Сьома перевірка. Мітки комірок-це Вхідні позиції, що починаються з 0."
|
||
|
||
#: website/public/assets/figures/ctf-mask-equation.svg:10
|
||
msgctxt "figure:ctf-mask-equation.svg"
|
||
msgid "Encoded mask: −21, +1, −14, 0"
|
||
msgstr "Кодована маска: -21, +1, -14, 0"
|
||
|
||
#: website/public/assets/figures/ctf-mask-equation.svg:11
|
||
msgctxt "figure:ctf-mask-equation.svg"
|
||
msgid "Skip 21 cells. Select 1. Skip 14. Stop at 0."
|
||
msgstr "Пропустіть 21 клітинку. Виберіть 1. Пропустіть 14. Зупиніться на 0."
|
||
|
||
#: website/public/assets/figures/ctf-mask-equation.svg:15
|
||
msgctxt "figure:ctf-mask-equation.svg"
|
||
msgid "Only one cell contributes to this sum"
|
||
msgstr "У сумі лише одна клітинка"
|
||
|
||
#: 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 "Позиція 21 у прапорі повинна містити 7."
|
||
|
||
#: website/public/assets/figures/ctf-mask-equation.svg:20
|
||
msgctxt "figure:ctf-mask-equation.svg"
|
||
msgid "Selected: one cell"
|
||
msgstr "Виділено: одна клітинка"
|
||
|
||
#: website/public/assets/figures/ctf-mask-equation.svg:21
|
||
msgctxt "figure:ctf-mask-equation.svg"
|
||
msgid "26 masks give 26 equations."
|
||
msgstr "26 масок дають 26 рівнянь."
|
||
|
||
#: website/public/assets/figures/ctf-mask-equation.svg:22
|
||
msgctxt "figure:ctf-mask-equation.svg"
|
||
msgid "Solve them together to find the flag."
|
||
msgstr "Вирішіть їх разом, щоб знайти прапор."
|
||
|
||
#: website/public/assets/figures/dx-ball-sound-pan-investigation.svg:2
|
||
#: website/public/assets/figures/dx-ball-sound-pan-investigation.svg:9
|
||
msgctxt "figure:dx-ball-sound-pan-investigation.svg"
|
||
msgid "DX-Ball sound-pan investigation"
|
||
msgstr "Дослідження звуку DX-Ball-панорамування"
|
||
|
||
#: website/public/assets/figures/dx-ball-sound-pan-investigation.svg:3
|
||
msgctxt "figure:dx-ball-sound-pan-investigation.svg"
|
||
msgid ""
|
||
"REA provides the instruction, caller and byte-read evidence for one DX-Ball "
|
||
"function. A stack input is multiplied by 1.5625, offset by 500, scaled, and "
|
||
"converted to an integer. Maintained C is checked in 3,205 original-x86 cases"
|
||
" and a separate 63-byte compiler replay."
|
||
msgstr ""
|
||
"REA надає інструкцію, що викликає елемент і дані для зчитування байтів для "
|
||
"однієї функції DX-Ball. Вхідні дані стека множаться на 1,5625, зміщуються на"
|
||
" 500, масштабуються та перетворюються на ціле число. Підтримуваний C "
|
||
"перевіряється в 3205 оригінальних x86 випадках і в окремому 63-байтовому "
|
||
"відтворенні компілятором."
|
||
|
||
# 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 "Стек"
|
||
|
||
# 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 "вхід 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 "Ціле"
|
||
|
||
# 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 "Відновлена функція"
|
||
|
||
# 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 "Код на C"
|
||
|
||
# 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 "Виклик при ударі"
|
||
|
||
#: 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 "Оригінал"
|
||
|
||
# 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 "порівняння"
|
||
|
||
# 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 тестів"
|
||
|
||
# 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"
|
||
|
||
# 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 байтів"
|
||
|
||
#: 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"
|
||
|
||
#: website/public/assets/figures/rea-investigation-flow.svg:3
|
||
msgctxt "figure:rea-investigation-flow.svg"
|
||
msgid ""
|
||
"Ask a question about a local target. REA inspects and traces through local "
|
||
"analysis adapters, returns evidence, and supports follow-up questions as "
|
||
"your agent explains, implements and tests."
|
||
msgstr ""
|
||
"Задайте питання про локальний об'єкт. REA перевіряє та відстежує дані за "
|
||
"допомогою локальних адаптерів аналізу, повертає докази та підтримує подальші"
|
||
" запитання, коли ваш агент пояснює, впроваджує та тестує."
|
||
|
||
# Reviewed for technical meaning and concise diagram labels.
|
||
#: website/public/assets/figures/rea-investigation-flow.svg:19
|
||
msgctxt "figure:rea-investigation-flow.svg"
|
||
msgid "1. Ask"
|
||
msgstr "1. Запитання"
|
||
|
||
# Reviewed for technical meaning and concise diagram labels.
|
||
#: website/public/assets/figures/rea-investigation-flow.svg:20
|
||
msgctxt "figure:rea-investigation-flow.svg"
|
||
msgid "Your agent + local target"
|
||
msgstr "Агент + локальний файл"
|
||
|
||
# Reviewed for technical meaning and concise diagram labels.
|
||
#: website/public/assets/figures/rea-investigation-flow.svg:21
|
||
msgctxt "figure:rea-investigation-flow.svg"
|
||
msgid "App / binary / browser"
|
||
msgstr "Програма / файл / Web"
|
||
|
||
# Reviewed for technical meaning and concise diagram labels.
|
||
#: website/public/assets/figures/rea-investigation-flow.svg:22
|
||
msgctxt "figure:rea-investigation-flow.svg"
|
||
msgid "2. Inspect & trace"
|
||
msgstr "2. Аналіз і пошук"
|
||
|
||
#: 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. Читати докази"
|
||
|
||
# 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 "Код / посилання /"
|
||
|
||
# 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 "невідоме"
|
||
|
||
# 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. Застосувати"
|
||
|
||
# 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 "Ваш агент"
|
||
|
||
# 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 "Пояснити / створити / тест"
|
||
|
||
# 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 "Засоби аналізу"
|
||
|
||
# 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 "Локальні адаптери"
|
||
|
||
# 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 "Наступне запитання"
|
||
|
||
#: website/public/assets/figures/th04-bullet-ring.svg:2
|
||
msgctxt "figure:th04-bullet-ring.svg"
|
||
msgid "TH04: spacing and aiming a ring of bullets"
|
||
msgstr "TH04: відстань між кулями і наведення їх на ціль кільцем"
|
||
|
||
#: website/public/assets/figures/th04-bullet-ring.svg:3
|
||
msgctxt "figure:th04-bullet-ring.svg"
|
||
msgid ""
|
||
"A full clockwise turn has 256 angle units. Sixteen bullets start at angles "
|
||
"zero, sixteen, thirty-two, through 240. Adding an example player direction "
|
||
"of forty turns all sixteen directions together; the first bullet points at "
|
||
"the player. Template rotation is zero."
|
||
msgstr ""
|
||
"Повний поворот за годинниковою стрілкою має 256 кутових одиниць. Шістнадцять"
|
||
" точок відліку починаються з кутів від нуля, шістнадцяти, тридцяти двох до "
|
||
"240. Якщо додати приблизний напрямок гравця, що складається з сорока точок, "
|
||
"то вийде, що всі шістнадцять точок відліку збігаються; перша точка відліку "
|
||
"вказує на гравця. Обертання шаблону дорівнює нулю."
|
||
|
||
#: website/public/assets/figures/th04-bullet-ring.svg:8
|
||
msgctxt "figure:th04-bullet-ring.svg"
|
||
msgid "Fixed ring"
|
||
msgstr "Нерухоме кільце"
|
||
|
||
#: website/public/assets/figures/th04-bullet-ring.svg:9
|
||
msgctxt "figure:th04-bullet-ring.svg"
|
||
msgid "First bullet: angle 0"
|
||
msgstr "Перший маркер: кут 0"
|
||
|
||
#: website/public/assets/figures/th04-bullet-ring.svg:10
|
||
msgctxt "figure:th04-bullet-ring.svg"
|
||
msgid "Aimed ring"
|
||
msgstr "Націлене кільце"
|
||
|
||
#: website/public/assets/figures/th04-bullet-ring.svg:11
|
||
msgctxt "figure:th04-bullet-ring.svg"
|
||
msgid "First bullet: player direction"
|
||
msgstr "Перший пункт: напрямок руху гравця"
|
||
|
||
# Reviewed for technical meaning and concise diagram labels.
|
||
#: website/public/assets/figures/th04-bullet-ring.svg:48
|
||
#: website/public/assets/figures/th04-bullet-ring.svg:86
|
||
msgctxt "figure:th04-bullet-ring.svg"
|
||
msgid "Origin"
|
||
msgstr "Центр"
|
||
|
||
#: website/public/assets/figures/th04-bullet-ring.svg:89
|
||
msgctxt "figure:th04-bullet-ring.svg"
|
||
msgid "Player"
|
||
msgstr "Гравець"
|
||
|
||
#: 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 "Однакова відстань: 256 ÷ 16 = 16 кутових одиниць = 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 "Приклади"
|
||
|
||
#: 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 "Блог"
|
||
|
||
#: 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 "Почати"
|
||
|
||
#: 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 "Посібники"
|
||
|
||
#: 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 "Вихідний код"
|
||
|
||
#: 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"
|
||
|
||
#: 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 "Приєднатися до спільноти"
|
||
|
||
#: 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 "Стежити в X"
|
||
|
||
#: website/public/examples/dino-lab/index.html:293
|
||
msgctxt "page:examples/dino-lab/index.html"
|
||
msgid "REA · selected script source"
|
||
msgstr "REA * вибране джерело сценарію"
|
||
|
||
#: website/public/first-investigation/index.html:361
|
||
msgctxt "page:first-investigation/index.html"
|
||
msgid "Source"
|
||
msgstr "Вихідний код"
|
||
|
||
#: website/public/first-investigation/index.html:415
|
||
msgctxt "page:first-investigation/index.html"
|
||
msgid "Expected formatter output"
|
||
msgstr "Очікуваний результат форматування"
|
||
|
||
#: website/public/guides/index.html:206
|
||
msgctxt "page:guides/index.html"
|
||
msgid "Instructions"
|
||
msgstr "Інструкція"
|
||
|
||
#: website/public/guides/index.html:207
|
||
msgctxt "page:guides/index.html"
|
||
msgid "Caller"
|
||
msgstr "Абонент"
|
||
|
||
#: website/public/guides/index.html:208
|
||
msgctxt "page:guides/index.html"
|
||
msgid "Constants"
|
||
msgstr "Константа"
|
||
|
||
#: website/public/guides/index.html:209
|
||
msgctxt "page:guides/index.html"
|
||
msgid "C function"
|
||
msgstr "Функція C"
|
||
|
||
#: website/public/guides/index.html:224
|
||
msgctxt "page:guides/index.html"
|
||
msgid "Button"
|
||
msgstr "Кнопка"
|
||
|
||
#: website/public/guides/index.html:225
|
||
msgctxt "page:guides/index.html"
|
||
msgid "Preload API"
|
||
msgstr "API попереднього завантаження"
|
||
|
||
#: website/public/guides/index.html:226
|
||
msgctxt "page:guides/index.html"
|
||
msgid "IPC"
|
||
msgstr "МПК"
|
||
|
||
#: website/public/guides/index.html:226
|
||
msgctxt "page:guides/index.html"
|
||
msgid "CSV file"
|
||
msgstr "Файл CSV"
|
||
|
||
#: website/public/guides/index.html:246
|
||
msgctxt "page:guides/index.html"
|
||
msgid "Your click"
|
||
msgstr "Ваш клацання"
|
||
|
||
#: website/public/guides/index.html:247
|
||
msgctxt "page:guides/index.html"
|
||
msgid "Captured request"
|
||
msgstr "Захоплений запит"
|
||
|
||
#: website/public/guides/index.html:248
|
||
msgctxt "page:guides/index.html"
|
||
msgid "Export script"
|
||
msgstr "Експорт скрипта"
|
||
|
||
#: website/public/guides/javascript/index.html:344
|
||
msgctxt "page:guides/javascript/index.html"
|
||
msgid "REA result · summary.ipc excerpt"
|
||
msgstr "REA результат * підсумок.витяг з ipc"
|
||
|
||
#: website/public/guides/native/index.html:371
|
||
msgctxt "page:guides/native/index.html"
|
||
msgid "REA instruction excerpt · 0x406409"
|
||
msgstr "REA витяг з інструкції * 0x406409"
|
||
|
||
#: website/public/guides/native/index.html:385
|
||
msgctxt "page:guides/native/index.html"
|
||
msgid "REA caller excerpt · 0x411f5b"
|
||
msgstr "REA запит абонента * 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 * інтерпретуються як подвоєння в порядку зменшення"
|
||
|
||
#: website/public/guides/native/index.html:416
|
||
msgctxt "page:guides/native/index.html"
|
||
msgid "Recovered C · excerpt"
|
||
msgstr "Відновлений уривок з C ·"
|
||
|
||
#: website/public/index.html:219
|
||
msgctxt "page:index.html"
|
||
msgid "See how REA works ↓"
|
||
msgstr "Подивіться, як працює REA ↓"
|
||
|
||
#: website/public/index.html:220
|
||
msgctxt "page:index.html"
|
||
msgid "Setup guide"
|
||
msgstr "Посібник зі встановлення"
|
||
|
||
#: website/public/index.html:221
|
||
msgctxt "page:index.html"
|
||
msgid "Showcases →"
|
||
msgstr "Вітрина →"
|
||
|
||
#: website/public/index.html:731
|
||
msgctxt "page:index.html"
|
||
msgid "Selected settings from the inspected script"
|
||
msgstr "Вибрані налаштування з перевіреного скрипта"
|
||
|
||
#: website/public/index.html:903
|
||
msgctxt "page:index.html"
|
||
msgid "Readable summary of the % handler"
|
||
msgstr "Читається зведення про обробнику %"
|
||
|
||
#: website/public/index.html:967
|
||
msgctxt "page:index.html"
|
||
msgid "REA · selected original instructions"
|
||
msgstr "REA * вибрані оригінальні інструкції"
|
||
|
||
#: website/public/index.html:978
|
||
msgctxt "page:index.html"
|
||
msgid "Operator IDs · Microsoft’s source"
|
||
msgstr "Ідентифікатори операторів * вихідний код Microsoft"
|
||
|
||
#: website/public/index.html:1152
|
||
msgctxt "page:index.html"
|
||
msgid "Follow @reatools on X"
|
||
msgstr "Слідкуйте за @reatools на 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 "Агент → REA"
|
||
|
||
#: website/public/showcase/aegis/index.html:396
|
||
msgctxt "page:showcase/aegis/index.html"
|
||
msgid "REA → agent · selected results"
|
||
msgstr "REA → агент * вибрані результати"
|
||
|
||
#: website/public/showcase/aegis/index.html:432
|
||
msgctxt "page:showcase/aegis/index.html"
|
||
msgid "REA → agent · methods and callers"
|
||
msgstr "REA → агент * методи та абоненти"
|
||
|
||
#: website/public/showcase/aegis/index.html:502
|
||
msgctxt "page:showcase/aegis/index.html"
|
||
msgid "REA · selected decompiled Java"
|
||
msgstr "REA * вибраний Декомпільований Java"
|
||
|
||
#: website/public/showcase/aegis/index.html:532
|
||
msgctxt "page:showcase/aegis/index.html"
|
||
msgid "Readable summary · agent's interpretation"
|
||
msgstr "Читабельне резюме * інтерпретація агента"
|
||
|
||
#: website/public/showcase/aegis/index.html:587
|
||
msgctxt "page:showcase/aegis/index.html"
|
||
msgid "REA · generateOTP, complete body"
|
||
msgstr "REA * generateOTP, повний корпус"
|
||
|
||
#: website/public/showcase/aegis/index.html:705
|
||
msgctxt "page:showcase/aegis/index.html"
|
||
msgid "Download Aegis APK"
|
||
msgstr "Завантажити Aegis APK"
|
||
|
||
#: website/public/showcase/aegis/index.html:709
|
||
msgctxt "page:showcase/aegis/index.html"
|
||
msgid "Download Android analysis provider"
|
||
msgstr "Завантажити Android analysis provider"
|
||
|
||
#: website/public/showcase/ctf/index.html:289
|
||
#: website/public/showcase/ctf/index.html:325
|
||
msgctxt "page:showcase/ctf/index.html"
|
||
msgid "Agent → REA"
|
||
msgstr "Агент → REA"
|
||
|
||
#: website/public/showcase/ctf/index.html:305
|
||
msgctxt "page:showcase/ctf/index.html"
|
||
msgid "REA → agent · selected results"
|
||
msgstr "REA → агент * вибрані результати"
|
||
|
||
#: website/public/showcase/ctf/index.html:337
|
||
msgctxt "page:showcase/ctf/index.html"
|
||
msgid "REA → agent · selected instructions"
|
||
msgstr "REA → агент * вибрані інструкції"
|
||
|
||
#: website/public/showcase/ctf/index.html:400
|
||
msgctxt "page:showcase/ctf/index.html"
|
||
msgid "Agent → REA · read_bytes"
|
||
msgstr "Агент → REA * прочитано_байт"
|
||
|
||
#: website/public/showcase/ctf/index.html:407
|
||
msgctxt "page:showcase/ctf/index.html"
|
||
msgid "REA → agent · seventh entries"
|
||
msgstr "REA → агент * сьомі записи"
|
||
|
||
#: website/public/showcase/ctf/index.html:675
|
||
msgctxt "page:showcase/ctf/index.html"
|
||
msgid "Original executable · SHA-256"
|
||
msgstr "Оригінальний виконуваний файл * SHA-256"
|
||
|
||
#: website/public/showcase/ctf/index.html:711
|
||
msgctxt "page:showcase/ctf/index.html"
|
||
msgid "Download the original challenge"
|
||
msgstr "Скачайте оригінальну гру challenge"
|
||
|
||
#: website/public/showcase/ctf/index.html:715
|
||
msgctxt "page:showcase/ctf/index.html"
|
||
msgid "Download solver"
|
||
msgstr "Завантажити вирішувач"
|
||
|
||
#: website/public/showcase/dx-ball/index.html:316
|
||
msgctxt "page:showcase/dx-ball/index.html"
|
||
msgid "REA result · pseudocode excerpt"
|
||
msgstr "Результат REA * фрагмент псевдокоду"
|
||
|
||
#. {ph0}: <code>analyze_function</code>
|
||
#: website/public/showcase/dx-ball/index.html:339
|
||
#: website/public/showcase/dx-ball/index.html:363
|
||
#, python-brace-format
|
||
msgctxt "page:showcase/dx-ball/index.html"
|
||
msgid "Agent → REA · {ph0}"
|
||
msgstr "Агент → REA * функція {ph0}"
|
||
|
||
#: website/public/showcase/dx-ball/index.html:345
|
||
msgctxt "page:showcase/dx-ball/index.html"
|
||
msgid "REA → agent · instruction excerpt"
|
||
msgstr "REA → агент * уривок з інструкції"
|
||
|
||
#: website/public/showcase/dx-ball/index.html:369
|
||
msgctxt "page:showcase/dx-ball/index.html"
|
||
msgid "REA → agent · caller excerpt"
|
||
msgstr "REA → агент * уривок з повідомлення про абонента"
|
||
|
||
#. {ph0}: <code>read_bytes</code>
|
||
#: website/public/showcase/dx-ball/index.html:387
|
||
#, python-brace-format
|
||
msgctxt "page:showcase/dx-ball/index.html"
|
||
msgid "Agent → REA · two {ph0} requests"
|
||
msgstr "Агент → REA * два {ph0}запиту на читання в байтах"
|
||
|
||
#: website/public/showcase/dx-ball/index.html:397
|
||
msgctxt "page:showcase/dx-ball/index.html"
|
||
msgid "REA byte results · decoded as doubles"
|
||
msgstr "Результати в байтах REA * декодуються як подвійні"
|
||
|
||
#: website/public/showcase/dx-ball/index.html:750
|
||
msgctxt "page:showcase/dx-ball/index.html"
|
||
msgid "Start with your own target"
|
||
msgstr "Почніть зі своєї власної мети"
|
||
|
||
#: website/public/showcase/index.html:199
|
||
msgctxt "page:showcase/index.html"
|
||
msgid "APK"
|
||
msgstr "APK"
|
||
|
||
#: website/public/showcase/index.html:200
|
||
msgctxt "page:showcase/index.html"
|
||
msgid "Generating code"
|
||
msgstr "Генерація коду"
|
||
|
||
#: website/public/showcase/index.html:201
|
||
msgctxt "page:showcase/index.html"
|
||
msgid "Recovered rule"
|
||
msgstr "Відновлене правило"
|
||
|
||
#: website/public/showcase/index.html:202
|
||
msgctxt "page:showcase/index.html"
|
||
msgid "Adjustable clock"
|
||
msgstr "Регульований годинник"
|
||
|
||
#: website/public/showcase/index.html:217
|
||
msgctxt "page:showcase/index.html"
|
||
msgid "Binary"
|
||
msgstr "Двійковий"
|
||
|
||
#: website/public/showcase/index.html:218
|
||
msgctxt "page:showcase/index.html"
|
||
msgid "Checking code"
|
||
msgstr "Перевіряючий код"
|
||
|
||
#: website/public/showcase/index.html:219
|
||
msgctxt "page:showcase/index.html"
|
||
msgid "Equations"
|
||
msgstr "Рівняння"
|
||
|
||
#: website/public/showcase/index.html:220
|
||
msgctxt "page:showcase/index.html"
|
||
msgid "Correct!"
|
||
msgstr "Правильно!"
|
||
|
||
#: website/public/showcase/index.html:236
|
||
msgctxt "page:showcase/index.html"
|
||
msgid "Executable"
|
||
msgstr "Здійсненний"
|
||
|
||
#: website/public/showcase/index.html:237
|
||
msgctxt "page:showcase/index.html"
|
||
msgid "REA findings"
|
||
msgstr "Висновки REA"
|
||
|
||
#: website/public/showcase/index.html:238
|
||
msgctxt "page:showcase/index.html"
|
||
msgid "Recovered C"
|
||
msgstr "Відновлений C"
|
||
|
||
#: website/public/showcase/index.html:239
|
||
msgctxt "page:showcase/index.html"
|
||
msgid "Validation"
|
||
msgstr "Затвердження"
|
||
|
||
#: website/public/showcase/index.html:254
|
||
msgctxt "page:showcase/index.html"
|
||
msgid "Packaged app"
|
||
msgstr "Упакований додаток"
|
||
|
||
#: website/public/showcase/index.html:255
|
||
msgctxt "page:showcase/index.html"
|
||
msgid "Exposed API"
|
||
msgstr "Відкритий API"
|
||
|
||
#: website/public/showcase/index.html:256
|
||
msgctxt "page:showcase/index.html"
|
||
msgid "IPC wrappers"
|
||
msgstr "Оболонки IPC"
|
||
|
||
#: website/public/showcase/index.html:257
|
||
msgctxt "page:showcase/index.html"
|
||
msgid "Clipboard"
|
||
msgstr "Буфер обміну"
|
||
|
||
#: website/public/showcase/index.html:272
|
||
msgctxt "page:showcase/index.html"
|
||
msgid "Original DOS code"
|
||
msgstr "Вихідний код DOS"
|
||
|
||
#: website/public/showcase/index.html:273
|
||
msgctxt "page:showcase/index.html"
|
||
msgid "REA instructions"
|
||
msgstr "Інструкції щодо REA"
|
||
|
||
#: website/public/showcase/index.html:274
|
||
msgctxt "page:showcase/index.html"
|
||
msgid "Angle calculation"
|
||
msgstr "Розрахунок кута нахилу"
|
||
|
||
#: website/public/showcase/index.html:275
|
||
msgctxt "page:showcase/index.html"
|
||
msgid "Bullet ring"
|
||
msgstr "Кульове кільце"
|
||
|
||
#: website/public/showcase/notion/index.html:291
|
||
msgctxt "page:showcase/notion/index.html"
|
||
msgid "Exposed page API"
|
||
msgstr "Відкритий API сторінки"
|
||
|
||
#: website/public/showcase/notion/index.html:297
|
||
msgctxt "page:showcase/notion/index.html"
|
||
msgid "Renderer IPC call"
|
||
msgstr "Виклик IPC засобу візуалізації"
|
||
|
||
#: website/public/showcase/notion/index.html:459
|
||
msgctxt "page:showcase/notion/index.html"
|
||
msgid "Sent to the system clipboard"
|
||
msgstr "Надіслано до системного буфера обміну"
|
||
|
||
#: website/public/showcase/notion/index.html:467
|
||
msgctxt "page:showcase/notion/index.html"
|
||
msgid "Saved locally by Notion"
|
||
msgstr "Збережено локально за допомогою Notion"
|
||
|
||
#: website/public/showcase/notion/index.html:512
|
||
msgctxt "page:showcase/notion/index.html"
|
||
msgid "Markdown input"
|
||
msgstr "Введення даних для уцінки"
|
||
|
||
#: website/public/showcase/notion/index.html:519
|
||
msgctxt "page:showcase/notion/index.html"
|
||
msgid "Structured parser output · excerpt"
|
||
msgstr "Висновок структурованого синтаксичного аналізатора · Витяг"
|
||
|
||
#: website/public/showcase/notion/index.html:596
|
||
msgctxt "page:showcase/notion/index.html"
|
||
msgid "Analyze your own app"
|
||
msgstr "Проаналізуйте свій власний додаток"
|
||
|
||
#: website/public/showcase/th04/index.html:356
|
||
msgctxt "page:showcase/th04/index.html"
|
||
msgid "Agent → REA"
|
||
msgstr "Агент → REA"
|
||
|
||
#: website/public/showcase/th04/index.html:365
|
||
msgctxt "page:showcase/th04/index.html"
|
||
msgid "REA → agent · selected fields"
|
||
msgstr "REA → агент * вибрані поля"
|
||
|
||
#. {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 "Агент → REA * функція {ph0}"
|
||
|
||
#: website/public/showcase/th04/index.html:390
|
||
msgctxt "page:showcase/th04/index.html"
|
||
msgid "REA → agent · instruction excerpt"
|
||
msgstr "REA → агент * уривок з інструкції"
|
||
|
||
#: website/public/showcase/th04/index.html:411
|
||
msgctxt "page:showcase/th04/index.html"
|
||
msgid "Same function result · aim excerpt"
|
||
msgstr "Результат тієї ж функції · витяг з aim"
|
||
|
||
#: website/public/showcase/th04/index.html:420
|
||
msgctxt "page:showcase/th04/index.html"
|
||
msgid "Corresponding maintained C++"
|
||
msgstr "Відповідний Підтримуваний c++"
|
||
|
||
#: website/public/showcase/th04/index.html:600
|
||
msgctxt "page:showcase/th04/index.html"
|
||
msgid "Ring macro · TH04 branch, excerpt"
|
||
msgstr "Кільцевий макрос * гілка TH04, фрагмент"
|
||
|
||
#: website/public/showcase/th04/index.html:610
|
||
msgctxt "page:showcase/th04/index.html"
|
||
msgid "Angle and velocity · source excerpt"
|
||
msgstr "Кут і швидкість * витяг з джерела"
|
||
|
||
#: website/public/assets/home.js:29
|
||
msgctxt "runtime"
|
||
msgid "Press % to see what happens to 10."
|
||
msgstr "Натисніть %, щоб побачити, що станеться з 10."
|
||
|
||
#: website/public/assets/home.js:32
|
||
msgctxt "runtime"
|
||
msgid "10% of 200 is 20. Press = to add it."
|
||
msgstr "10% від 200 дорівнює 20. Натисніть =, щоб додати це значення."
|
||
|
||
#: website/public/assets/home.js:33
|
||
msgctxt "runtime"
|
||
msgid "For multiplication, 10 becomes 0.1. Press = to multiply."
|
||
msgstr "При множенні 10 стає рівним 0,1. Натисніть = для множення."
|
||
|
||
#: scripts/website_i18n.py
|
||
msgctxt "runtime"
|
||
msgid "Translation is being updated. Read this page in English for now."
|
||
msgstr "Переклад оновлюється. Поки прочитайте цю сторінку англійською мовою."
|
||
|
||
#. {ph0}: <span class="prompt-symbol" aria-hidden="true">
|
||
#. {ph1}: </span >
|
||
#. {ph2}: <span id="faq-analysis-prompt" >
|
||
#. {ph3}: <span translate="no">/absolute/path/to/app</span>
|
||
#. {ph4}: </span >
|
||
#. {ph5}: <span class="terminal-cursor" aria-hidden="true">
|
||
#. {ph6}: </span>
|
||
#: website/public/faq/index.html: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}Використовуйте REA для аналізу {ph3}і пояснення того, як "
|
||
"він експортує дані. Покажіть відповідний код та розташування "
|
||
"джерел.{ph4}{ph5}{ph6}"
|
||
|
||
#. {ph0}: <span class="prompt-symbol" aria-hidden="true">
|
||
#. {ph1}: </span >
|
||
#. {ph2}: <span id="first-install-prompt" >
|
||
#. {ph3}: <span translate="no">npx rea-agents@latest setup</span>
|
||
#. {ph4}: </span >
|
||
#. {ph5}: <span class="terminal-cursor" aria-hidden="true">
|
||
#. {ph6}: </span>
|
||
#: website/public/first-investigation/index.html: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}Встанови REA та підключи його до цього ШІ-помічника за "
|
||
"допомогою {ph3}. Спочатку покажи план змін і дочекайся мого схвалення. Потім"
|
||
" перевір встановлення.{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}Завантаживши {ph3}в нову папку з прикладами і розпакуйте "
|
||
"її. Використовуйте REA, щоб побачити, що відбувається, коли я натискаю "
|
||
"\"експортувати нотатки\". Покажіть, де {ph4}що записано, які поля воно "
|
||
"містить, а також відповідні файли і рядки.{ph5}{ph6}{ph7}"
|
||
|
||
#. {ph0}: <span class="prompt-symbol" aria-hidden="true">
|
||
#. {ph1}: </span >
|
||
#. {ph2}: <span id="agent-install-prompt" >
|
||
#. {ph3}: <span translate="no">npx rea-agents@latest setup</span>
|
||
#. {ph4}: </span >
|
||
#. {ph5}: <span class="terminal-cursor" aria-hidden="true">
|
||
#. {ph6}: </span>
|
||
#: website/public/get-started/index.html: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}Встанови REA та підключи його до цього ШІ-помічника за "
|
||
"допомогою {ph3}. Спочатку покажи план змін і дочекайся мого схвалення. Потім"
|
||
" перевір встановлення.{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}Встанови REA та підключи його до цього ШІ-помічника за "
|
||
"допомогою {ph3}. Спочатку покажи план змін і дочекайся мого схвалення. Потім"
|
||
" перевір встановлення.{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}Використовуйте REA для перевірки {ph3}. Скопіюйте цей веб-"
|
||
"сайт для мене.{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 "Реконструкція * {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 ""
|
||
"При {ph0}npm запустіть програму установки, виберіть свій кодуючий агент і "
|
||
"ознайомтеся з запропонованими змінами."
|
||
|
||
#. {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 "Наведений приклад · {ph0} та npm * ваш кодуючий агент"
|
||
|
||
#. {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 ""
|
||
"Використовуйте інструмент кодування, такий як Claude Code, Codex або Cursor."
|
||
" Вам знадобляться {ph0} і npm; в {ph1}керівництві по установці перераховані "
|
||
"підтримувані версії{ph2}."
|
||
|
||
#. {ph0}: <span class="flow-label" >
|
||
#. {ph1}: <span translate="no">renderer.js</span>
|
||
#. {ph2}: </span >
|
||
#. {ph3}: <span class="flow-node">
|
||
#. {ph4}: </span >
|
||
#. {ph5}: <span class="flow-note" >
|
||
#. {ph6}: <code>notes.exportCsv()</code>
|
||
#. {ph7}: </span >
|
||
#: website/public/first-investigation/index.html: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}Сторінка * {ph1}{ph2}{ph3} При експорті нотаток{ph4}{ph5} викликається "
|
||
"функція {ph6}.{ph7}"
|
||
|
||
#. {ph0}: <span class="flow-label" >
|
||
#. {ph1}: <span translate="no">preload.js</span>
|
||
#. {ph2}: </span >
|
||
#. {ph3}: <span class="flow-node">
|
||
#. {ph4}: <code>notes:export</code>
|
||
#. {ph5}: </span >
|
||
#. {ph6}: <span class="flow-note" >
|
||
#. {ph7}: </span >
|
||
#: website/public/first-investigation/index.html: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}Міст * {ph1}{ph2}{ph3}{ph4}{ph5}{ph6} в основний процес відправляється "
|
||
"іменоване повідомлення.{ph7}"
|
||
|
||
#. {ph0}: <span class="flow-label" >
|
||
#. {ph1}: <span translate="no">main.js</span>
|
||
#. {ph2}: </span >
|
||
#. {ph3}: <span class="flow-node" >
|
||
#. {ph4}: <span translate="no">notes.csv</span>
|
||
#. {ph5}: </span >
|
||
#. {ph6}: <span class="flow-note" >
|
||
#. {ph7}: <code>csv.js</code>
|
||
#. {ph8}: </span >
|
||
#: website/public/first-investigation/index.html: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}Обробник · {ph1}{ph2}{ph3}Write {ph4}{ph5}{ph6}Викликає засіб "
|
||
"форматування в {ph7} і записує файл.{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} * рядки 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}Прогнозуйте CSV для примітки з ідентифікатором 1 та "
|
||
"заголовком {ph3}. Потім запустіть {ph4}програму форматування прикладу "
|
||
"з{ph5}, щоб перевірити це. Покажіть прогноз і фактичний "
|
||
"результат.{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 ""
|
||
"Заголовок залишається в одному полі, укладеному в лапки; кожна лапка "
|
||
"подвоюється. При цьому виконується пряма перевірка форматування за допомогою"
|
||
" {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"
|
||
|
||
#. {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 ""
|
||
"Вам знадобиться {ph0}22 (22.19+), 24 (24.11+) або 26+. У комплект поставки "
|
||
"входить {ph1}npm ."
|
||
|
||
#. {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 "У вас немає {ph0} або ви не впевнені?"
|
||
|
||
#. {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 ""
|
||
"Якщо {ph0} друкує версії v22.19+, v24.11+ або v26+, все готово. Якщо він "
|
||
"видає стару версію або \"не розпізнається\" / \"команда не знайдена\", "
|
||
"встановіть {ph1} 24 LTS:"
|
||
|
||
#. {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} * приклад витягу з джерела"
|
||
|
||
#. {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}Відкрийте приклад{ph1} · {ph2}Завантажити {ph3}{ph4} · {ph5}Завантажте "
|
||
"файл {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} * приклад джерела"
|
||
|
||
#. {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 ""
|
||
"Завантажте приклад і розпакуйте його. Архів містить повну папку з {ph0}. "
|
||
"Проаналізуйте його з {ph1}npm; Electron для цього прикладу не потрібен."
|
||
|
||
#. {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 ""
|
||
"Перший раз або відсутній {ph0} або використовується засіб кодування? "
|
||
"{ph1}Дотримуйтесь покрокового керівництва по налаштуванню →{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 "Наприклад: {ph0}чому калькулятор дає 220 для {ph1}?{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}Використовувати REA для перевірки Windows Calculator. Чому "
|
||
"{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 · завантажено {ph0} * вибрані рядки"
|
||
|
||
#. {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 ""
|
||
"Ми бачили, чому {ph0}{ph1} дають 220.{ph2} Тепер давайте відновимо правила "
|
||
"для + і × і спробуємо їх застосувати."
|
||
|
||
#. {ph0}: <span class="flow-label" >
|
||
#. {ph1}: <span translate="no">calc.exe</span>
|
||
#. {ph2}: </span >
|
||
#. {ph3}: <span class="flow-node">
|
||
#. {ph4}: </span >
|
||
#. {ph5}: <span class="flow-note" >
|
||
#. {ph6}: <code>ms-calculator:</code>
|
||
#. {ph7}: </span >
|
||
#: website/public/index.html: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 читає {ph1}{ph2}{ph3} При запуску програми "
|
||
"Calculator{ph4}{ph5} код відкриває {ph6}. Потім агент вибирає бібліотеку "
|
||
"встановленого додатка.{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}Використовувати REA для перевірки aegis-v3.4. {ph3}. "
|
||
"Дізнайтеся, як він генерує шестизначний код для входу, поясніть, чому він "
|
||
"змінюється кожні 30 секунд, і відновіть невелику демонстрацію, де я можу "
|
||
"змінити час.{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_view/{ph0} * Учасник API"
|
||
|
||
#. {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_view/{ph0} * Помічник IPC"
|
||
|
||
#. {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 "main/{ph0} * помічник обробника"
|
||
|
||
#. {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 "головний/{ph0} * приймач буфера обміну"
|
||
|
||
#~ 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 "Реконструкція * dino-speed.js"
|
||
|
||
#~ msgctxt "page:faq/index.html"
|
||
#~ msgid ""
|
||
#~ "With Node.js and npm available, run setup, choose your coding agent and "
|
||
#~ "review the proposed changes."
|
||
#~ msgstr ""
|
||
#~ "При Node.js Node.js і npm запустіть програму встановлення, виберіть свого "
|
||
#~ "програміста та ознайомтесь із запропонованими змінами."
|
||
|
||
#~ msgctxt "page:first-investigation/index.html"
|
||
#~ msgid "A supplied example · Node.js and npm · Your coding agent"
|
||
#~ msgstr "Наведений приклад · Node.js та npm * ваш кодуючий агент"
|
||
|
||
#, python-brace-format
|
||
#~ msgctxt "page:first-investigation/index.html"
|
||
#~ msgid ""
|
||
#~ "Use a coding agent such as Claude Code, Codex or Cursor. You’ll need Node.js"
|
||
#~ " and npm; the {ph0}setup guide lists supported versions{ph1}."
|
||
#~ msgstr ""
|
||
#~ "Використовуйте інструмент кодування, такий як Claude Code, Codex або Cursor."
|
||
#~ " Вам знадобляться Node.js і npm; в {ph0}керівництві по установці "
|
||
#~ "перераховані підтримувані версії{ph1}."
|
||
|
||
#, python-brace-format
|
||
#~ msgctxt "page:first-investigation/index.html"
|
||
#~ msgid ""
|
||
#~ "{ph0}Page · renderer.js{ph1}{ph2}Export notes{ph3}{ph4}Calls {ph5}.{ph6}"
|
||
#~ msgstr ""
|
||
#~ "{ph0}Сторінка * renderer.js{ph1}{ph2} При експорті нотаток{ph3}{ph4} "
|
||
#~ "викликається функція {ph5}.{ph6}"
|
||
|
||
#, python-brace-format
|
||
#~ msgctxt "page:first-investigation/index.html"
|
||
#~ msgid ""
|
||
#~ "{ph0}Bridge · preload.js{ph1}{ph2}{ph3}{ph4}{ph5}Sends a named message to "
|
||
#~ "the main process.{ph6}"
|
||
#~ msgstr ""
|
||
#~ "{ph0}Міст * preload.js{ph1}{ph2}{ph3}{ph4}{ph5} в основний процес "
|
||
#~ "відправляється іменоване повідомлення.{ph6}"
|
||
|
||
#, python-brace-format
|
||
#~ msgctxt "page:first-investigation/index.html"
|
||
#~ msgid ""
|
||
#~ "{ph0}Handler · main.js{ph1}{ph2}Write notes.csv{ph3}{ph4}Calls the formatter"
|
||
#~ " in {ph5} and writes the file.{ph6}"
|
||
#~ msgstr ""
|
||
#~ "{ph0}Обробник * main.js{ph1}{ph2} Запис нотаток.csv{ph3}{ph4} Викликає засіб"
|
||
#~ " форматування в {ph5} і записує файл.{ph6}"
|
||
|
||
#, python-brace-format
|
||
#~ msgctxt "page:first-investigation/index.html"
|
||
#~ msgid ""
|
||
#~ "{ph0}›{ph1}{ph2}Predict the CSV for a note with id 1 and title Hello, "
|
||
#~ "\"REA\". Then run the example’s toCsv formatter with Node.js to check it. "
|
||
#~ "Show the prediction and actual output.{ph3}{ph4}{ph5}"
|
||
#~ msgstr ""
|
||
#~ "{ph0}\"{ph1}{ph2}Спрогнозувавши CSV- файл для нотатки з ідентифікатором 1 та"
|
||
#~ " заголовком \" Привіт, REA\". Потім запустіть інструмент форматування toCsv "
|
||
#~ "у прикладі за допомогою Node.jsNode.js щоб перевірити його. Покажіть прогноз"
|
||
#~ " і фактичний результат.{ph3}{ph4}{ph5}"
|
||
|
||
#~ msgctxt "page:first-investigation/index.html"
|
||
#~ msgid ""
|
||
#~ "The title stays in one quoted field; each quotation mark is doubled. This "
|
||
#~ "checks the formatter directly with Node.js."
|
||
#~ msgstr ""
|
||
#~ "Заголовок залишається в одному полі, укладеному в лапки; кожна лапка "
|
||
#~ "подвоюється. При цьому виконується пряма перевірка форматування за допомогою"
|
||
#~ " Node.js."
|
||
|
||
#~ msgctxt "page:first-investigation/index.html"
|
||
#~ msgid "Node.js · CSV formatter"
|
||
#~ msgstr "Node.js * Засіб форматування CSV"
|
||
|
||
#~ msgctxt "page:get-started/index.html"
|
||
#~ msgid ""
|
||
#~ "You'll need Node.js 22 (22.19+), 24 (24.11+) or 26+. npm comes with Node.js."
|
||
#~ msgstr ""
|
||
#~ "Вам знадобиться Node.js 22 (22.19+), 24 (24.11+) або 26+. npm поставляється "
|
||
#~ "з Node.js."
|
||
|
||
#~ msgctxt "page:get-started/index.html"
|
||
#~ msgid "Don't have Node.js, or not sure?"
|
||
#~ msgstr "У вас немає Node.js або ви не впевнені?"
|
||
|
||
#, python-brace-format
|
||
#~ msgctxt "page:get-started/index.html"
|
||
#~ msgid ""
|
||
#~ "If {ph0} prints v22.19+, v24.11+ or v26+, you're ready. If it prints an "
|
||
#~ "older version or \"not recognized\" / \"command not found\", install Node.js"
|
||
#~ " 24 LTS:"
|
||
#~ msgstr ""
|
||
#~ "Якщо {ph0} друкує версії v22.19+, v24.11+ або v26+, все готово. Якщо він "
|
||
#~ "видає стару версію або \"не розпізнається\" / \"команда не знайдена\", "
|
||
#~ "встановіть Node.js 24 LTS:"
|
||
|
||
#, python-brace-format
|
||
#~ msgctxt "page:guides/browser/index.html"
|
||
#~ msgid ""
|
||
#~ "{ph0}Open the example{ph1} · {ph2}Download export.js{ph3} · {ph4}Download "
|
||
#~ "notes.json{ph5}"
|
||
#~ msgstr ""
|
||
#~ "{ph0}Відкрийте приклад{ph1} · {ph2}Завантажити export.js{ph3} · "
|
||
#~ "{ph4}Завантажте файл notes.json{ph5}"
|
||
|
||
#, python-brace-format
|
||
#~ msgctxt "page:guides/javascript/index.html"
|
||
#~ msgid ""
|
||
#~ "Download the example and unzip it. The archive contains the complete {ph0} "
|
||
#~ "folder. Analyze it with Node.js and npm; Electron is not needed for this "
|
||
#~ "example."
|
||
#~ msgstr ""
|
||
#~ "Завантажте приклад і розпакуйте його. Архів містить повну папку з {ph0}. "
|
||
#~ "Проаналізуйте це з Node.js Node.js і npm; у цьому прикладі Electron не "
|
||
#~ "потрібен."
|
||
|
||
#, python-brace-format
|
||
#~ msgctxt "page:index.html"
|
||
#~ msgid ""
|
||
#~ "First time, or missing Node.js or a coding agent? {ph0}Follow the step-by-"
|
||
#~ "step setup guide →{ph1}"
|
||
#~ msgstr ""
|
||
#~ "Перший раз або відсутній Node.js або використовується засіб кодування? "
|
||
#~ "{ph0}Дотримуйтесь покрокового керівництва по налаштуванню →{ph1}"
|
||
|
||
#, python-brace-format
|
||
#~ msgctxt "page:index.html"
|
||
#~ msgid "One question: {ph0}why does Calculator give 220 for 200 + 10%?{ph1}"
|
||
#~ msgstr "Наприклад: {ph0}чому калькулятор дає 220 для 200 + 10%?{ph1}"
|
||
|
||
#, python-brace-format
|
||
#~ msgctxt "page:index.html"
|
||
#~ msgid ""
|
||
#~ "{ph0}›{ph1}{ph2}Use REA to inspect Windows Calculator. Why does 200 + 10% "
|
||
#~ "give 220?{ph3}{ph4}{ph5}"
|
||
#~ msgstr ""
|
||
#~ "{ph0}\"{ph1}{ph2}Використовувати REA для перевірки Windows Calculator. Чому "
|
||
#~ "200 + 10% дають 220?{ph3}{ph4}{ph5}"
|
||
|
||
#, python-brace-format
|
||
#~ msgctxt "page:index.html"
|
||
#~ msgid ""
|
||
#~ "We saw why {ph0}200 + 10% gives 220.{ph1} Now let’s recover the rules for "
|
||
#~ "both + and ×, and try them."
|
||
#~ msgstr ""
|
||
#~ "Ми бачили, чому {ph0}200 + 10% дають 220.{ph1} Тепер давайте відновимо "
|
||
#~ "правила для + і × і спробуємо їх застосувати."
|
||
|
||
#, python-brace-format
|
||
#~ msgctxt "page:index.html"
|
||
#~ msgid ""
|
||
#~ "{ph0}01 · REA reads calc.exe{ph1}{ph2}It launches the Calculator "
|
||
#~ "app{ph3}{ph4}The code opens {ph5}. The agent then selects the installed "
|
||
#~ "app’s library.{ph6}"
|
||
#~ msgstr ""
|
||
#~ "{ph0}01 · REA читає calc.exe{ph1}{ph2} При запуску програми "
|
||
#~ "Calculator{ph3}{ph4} код відкриває {ph5}. Потім агент вибирає бібліотеку "
|
||
#~ "встановленого додатка.{ph6}"
|
||
|
||
#, python-brace-format
|
||
#~ msgctxt "page:showcase/aegis/index.html"
|
||
#~ msgid ""
|
||
#~ "{ph0}›{ph1}{ph2}Use REA to inspect aegis-v3.4.3.apk. Find how it generates "
|
||
#~ "the six-digit login code, explain why it changes every 30 seconds, and "
|
||
#~ "rebuild a small demo where I can change the time.{ph3}{ph4}{ph5}"
|
||
#~ msgstr ""
|
||
#~ "{ph0}\"{ph1}{ph2}Використовувати REA для перевірки aegis-v3.4. 3.apk. "
|
||
#~ "Дізнайтеся, як він генерує шестизначний код для входу, поясніть, чому він "
|
||
#~ "змінюється кожні 30 секунд, і відновіть невелику демонстрацію, де я можу "
|
||
#~ "змінити час.{ph3}{ph4}{ph5}"
|
||
|
||
#~ msgctxt "page:showcase/notion/index.html"
|
||
#~ msgid "tab_browser_view/preload.js · API member"
|
||
#~ msgstr "tab_browser_view/preload.JS * член API"
|
||
|
||
#~ msgctxt "page:showcase/notion/index.html"
|
||
#~ msgid "tab_browser_view/preload.js · IPC helper"
|
||
#~ msgstr "tab_browser_view/preload.JS * Помічник IPC"
|
||
|
||
#~ msgctxt "page:showcase/notion/index.html"
|
||
#~ msgid "main/index.js · handler helper"
|
||
#~ msgstr "main/index.js * помічник обробника"
|
||
|
||
#~ msgctxt "page:showcase/notion/index.html"
|
||
#~ msgid "main/index.js · clipboard receiver"
|
||
#~ msgstr "main/index.JS * приймач буфера обміну"
|
||
|
||
#~ msgctxt "page:first-investigation/index.html"
|
||
#~ msgid "main.js · lines 8–12"
|
||
#~ msgstr "main.JS * рядки 8-12"
|
||
|
||
#~ msgctxt "page:guides/browser/index.html"
|
||
#~ msgid "export.js · example source excerpt"
|
||
#~ msgstr "export.js * приклад витягу з джерела"
|
||
|
||
#~ msgctxt "page:guides/javascript/index.html"
|
||
#~ msgid "renderer.js · example source"
|
||
#~ msgstr "renderer.js * приклад джерела"
|
||
|
||
#~ msgctxt "page:guides/javascript/index.html"
|
||
#~ msgid "preload.js · example source"
|
||
#~ msgstr "preload.js * приклад джерела"
|
||
|
||
#~ msgctxt "page:guides/javascript/index.html"
|
||
#~ msgid "main.js · example source"
|
||
#~ msgstr "main.js * приклад джерела"
|
||
|
||
#~ msgctxt "page:index.html"
|
||
#~ msgid "REA · loaded index.js · selected lines"
|
||
#~ msgstr "REA · завантажено index.js * вибрані рядки"
|
||
|
||
#, python-brace-format
|
||
#~ msgctxt "page:faq/index.html"
|
||
#~ msgid ""
|
||
#~ "{ph0}›{ph1}{ph2}Use REA to analyze /absolute/path/to/app and explain how it "
|
||
#~ "exports data. Show the relevant code and source locations.{ph3}{ph4}{ph5}"
|
||
#~ msgstr ""
|
||
#~ "{ph0}\"{ph1}{ph2}Використовувати REA для аналізу / абсолютного / шляху/до / "
|
||
#~ "програми та поясніть, як вона експортує дані. Покажіть відповідний код та "
|
||
#~ "розташування джерел.{ph3}{ph4}{ph5}"
|
||
|
||
#, python-brace-format
|
||
#~ msgctxt "page:first-investigation/index.html"
|
||
#~ msgid ""
|
||
#~ "{ph0}›{ph1}{ph2}Install REA and connect it to this coding agent using npx "
|
||
#~ "rea-agents@latest setup. Show me the setup plan for approval, then verify "
|
||
#~ "the installation.{ph3}{ph4}{ph5}"
|
||
#~ msgstr ""
|
||
#~ "{ph0}\"{ph1}{ph2}Установивши REA і підключіть його до цього агента "
|
||
#~ "програмування за допомогою npx rea-agents@latest setup. Покажіть мені план "
|
||
#~ "встановлення для затвердження, а потім перевірте правильність "
|
||
#~ "встановлення.{ph3}{ph4}{ph5}"
|
||
|
||
#, python-brace-format
|
||
#~ msgctxt "page:first-investigation/index.html"
|
||
#~ msgid ""
|
||
#~ "{ph0}›{ph1}{ph2}Download https://rea.tools/examples/notes-example.zip into a"
|
||
#~ " new example folder and unpack it. Use REA to find what happens when I click"
|
||
#~ " Export notes. Show where notes.csv is written, which fields it contains, "
|
||
#~ "and the relevant files and lines.{ph3}{ph4}{ph5}"
|
||
#~ msgstr ""
|
||
#~ "{ph0}\"{ph1}{ph2}Завантаживши https://rea.tools/examples/notes-example.zip в"
|
||
#~ " нову папку з прикладами і розпакуйте її. Використовувати REA, щоб побачити,"
|
||
#~ " що відбувається, коли я натискаю \"експортувати нотатки\". Покажіть, де "
|
||
#~ "записаний файл notes.csv, які поля він містить, а також відповідні файли та "
|
||
#~ "рядки.{ph3}{ph4}{ph5}"
|
||
|
||
#, python-brace-format
|
||
#~ msgctxt "page:get-started/index.html"
|
||
#~ msgid ""
|
||
#~ "{ph0}›{ph1}{ph2}Install REA and connect it to this coding agent using npx "
|
||
#~ "rea-agents@latest setup. Show me the setup plan for approval, then verify "
|
||
#~ "the installation.{ph3}{ph4}{ph5}"
|
||
#~ msgstr ""
|
||
#~ "{ph0}\"{ph1}{ph2}Установивши REA і підключіть його до цього агента "
|
||
#~ "програмування за допомогою npx rea-agents@latest setup. Покажіть мені план "
|
||
#~ "встановлення для затвердження, а потім перевірте правильність "
|
||
#~ "встановлення.{ph3}{ph4}{ph5}"
|
||
|
||
#, python-brace-format
|
||
#~ msgctxt "page:index.html"
|
||
#~ msgid ""
|
||
#~ "{ph0}›{ph1}{ph2}Install REA and connect it to this coding agent using npx "
|
||
#~ "rea-agents@latest setup. Show me the setup plan for approval, then verify "
|
||
#~ "the installation.{ph3}{ph4}{ph5}"
|
||
#~ msgstr ""
|
||
#~ "{ph0}\"{ph1}{ph2}Установивши REA і підключіть його до цього агента "
|
||
#~ "програмування за допомогою npx rea-agents@latest setup. Покажіть мені план "
|
||
#~ "встановлення для затвердження, а потім перевірте правильність "
|
||
#~ "встановлення.{ph3}{ph4}{ph5}"
|
||
|
||
#~ msgctxt "page:index.html"
|
||
#~ msgid "0x5b"
|
||
#~ msgstr "0x5b"
|
||
|
||
#~ msgctxt "page:index.html"
|
||
#~ msgid "0x5c"
|
||
#~ msgstr "0x5c"
|
||
|
||
#~ msgctxt "page:index.html"
|
||
#~ msgid "0x64"
|
||
#~ msgstr "0x64"
|
||
|
||
#, python-brace-format
|
||
#~ msgctxt "page:index.html"
|
||
#~ msgid ""
|
||
#~ "{ph0}›{ph1}{ph2}Use REA to inspect https://rea.tools/. Clone this website "
|
||
#~ "for me.{ph3}{ph4}{ph5}"
|
||
#~ msgstr ""
|
||
#~ "{ph0}\"{ph1}{ph2}Використовувати REA для перевірки https://rea.tools/. "
|
||
#~ "Клонуйте цей веб-сайт для мене.{ph3}{ph4}{ph5}"
|
||
|
||
#~ msgctxt "figure:ctf-mask-equation.svg"
|
||
#~ msgid "code[21] = 55"
|
||
#~ msgstr "код[21] = 55"
|
||
|
||
#~ msgctxt "figure:dx-ball-sound-pan-investigation.svg"
|
||
#~ msgid "0x00406400"
|
||
#~ msgstr "0x00406400"
|
||
|
||
#~ msgctxt "figure:dx-ball-sound-pan-investigation.svg"
|
||
#~ msgid "× pan_scale"
|
||
#~ msgstr "× панорамний масштаб"
|
||
|
||
#, python-brace-format
|
||
#~ msgctxt "shared"
|
||
#~ msgid "{ph0}REA{ph1}{ph2}Reverse Engineer Anything{ph3}"
|
||
#~ msgstr "{ph0}REA{ph1}{ph2} зворотне проектування чого завгодно{ph3}"
|
||
|
||
#, python-brace-format
|
||
#~ msgctxt "shared"
|
||
#~ msgid ""
|
||
#~ "{ph0}Showcases{ph1} {ph2}Blog{ph3} {ph4}Get started{ph5} {ph6}Guides{ph7} "
|
||
#~ "{ph8}FAQ{ph9}"
|
||
#~ msgstr ""
|
||
|
||
#, python-brace-format
|
||
#~ msgctxt "shared"
|
||
#~ msgid ""
|
||
#~ "{ph0}Source{ph1}{ph2}MIT license{ph3}{ph4}Join the community{ph5}{ph6}Follow"
|
||
#~ " us on X{ph7}"
|
||
#~ msgstr ""
|
||
|
||
#, python-brace-format
|
||
#~ msgctxt "page:blog/touhou-reconstruction/index.html"
|
||
#~ msgid "{ph0}TH08{ph1}{ph2}→{ph3}{ph4}TH095{ph5}{ph6}→{ph7}{ph8}TH04{ph9}"
|
||
#~ msgstr ""
|
||
|
||
#, python-brace-format
|
||
#~ msgctxt "page:examples/dino-lab/index.html"
|
||
#~ msgid "{ph0}REA · selected script source{ph1}"
|
||
#~ msgstr ""
|
||
|
||
#, python-brace-format
|
||
#~ msgctxt "page:first-investigation/index.html"
|
||
#~ msgid "{ph0}main.js · lines 8–12{ph1}{ph2}Source{ph3}"
|
||
#~ msgstr ""
|
||
|
||
#, python-brace-format
|
||
#~ msgctxt "page:first-investigation/index.html"
|
||
#~ msgid "{ph0}Expected formatter output{ph1}"
|
||
#~ msgstr ""
|
||
|
||
#, python-brace-format
|
||
#~ msgctxt "page:guides/browser/index.html"
|
||
#~ msgid "{ph0}export.js · example source excerpt{ph1}"
|
||
#~ msgstr ""
|
||
|
||
#, python-brace-format
|
||
#~ msgctxt "page:guides/index.html"
|
||
#~ msgid ""
|
||
#~ "{ph0}Instructions{ph1} {ph2}→{ph3} {ph4}Caller{ph5} {ph6}→{ph7} "
|
||
#~ "{ph8}Constants{ph9} {ph10}→{ph11} {ph12}C function{ph13}"
|
||
#~ msgstr ""
|
||
|
||
#, python-brace-format
|
||
#~ msgctxt "page:guides/index.html"
|
||
#~ msgid ""
|
||
#~ "{ph0}Button{ph1} {ph2}→{ph3} {ph4}Preload API{ph5} {ph6}→{ph7} {ph8}IPC{ph9}"
|
||
#~ " {ph10}→{ph11} {ph12}CSV file{ph13}"
|
||
#~ msgstr ""
|
||
|
||
#, python-brace-format
|
||
#~ msgctxt "page:guides/index.html"
|
||
#~ msgid ""
|
||
#~ "{ph0}Your click{ph1} {ph2}→{ph3} {ph4}Captured request{ph5} {ph6}→{ph7} "
|
||
#~ "{ph8}Export script{ph9}"
|
||
#~ msgstr ""
|
||
|
||
#, python-brace-format
|
||
#~ msgctxt "page:guides/javascript/index.html"
|
||
#~ msgid "{ph0}renderer.js · example source{ph1}"
|
||
#~ msgstr ""
|
||
|
||
#, python-brace-format
|
||
#~ msgctxt "page:guides/javascript/index.html"
|
||
#~ msgid "{ph0}preload.js · example source{ph1}"
|
||
#~ msgstr ""
|
||
|
||
#, python-brace-format
|
||
#~ msgctxt "page:guides/javascript/index.html"
|
||
#~ msgid "{ph0}main.js · example source{ph1}"
|
||
#~ msgstr ""
|
||
|
||
#, python-brace-format
|
||
#~ msgctxt "page:guides/javascript/index.html"
|
||
#~ msgid "{ph0}REA result · summary.ipc excerpt{ph1}"
|
||
#~ msgstr ""
|
||
|
||
#, python-brace-format
|
||
#~ msgctxt "page:guides/native/index.html"
|
||
#~ msgid "{ph0}REA instruction excerpt · 0x406409{ph1}"
|
||
#~ msgstr ""
|
||
|
||
#, python-brace-format
|
||
#~ msgctxt "page:guides/native/index.html"
|
||
#~ msgid "{ph0}REA caller excerpt · 0x411f5b{ph1}"
|
||
#~ msgstr ""
|
||
|
||
#, python-brace-format
|
||
#~ msgctxt "page:guides/native/index.html"
|
||
#~ msgid "{ph0}REA byte results · interpreted as little-endian doubles{ph1}"
|
||
#~ msgstr ""
|
||
|
||
#, python-brace-format
|
||
#~ msgctxt "page:guides/native/index.html"
|
||
#~ msgid "{ph0}Recovered C · excerpt{ph1}"
|
||
#~ msgstr ""
|
||
|
||
#, python-brace-format
|
||
#~ msgctxt "page:index.html"
|
||
#~ msgid ""
|
||
#~ "{ph0}See how REA works ↓{ph1} {ph2}Setup guide{ph3} {ph4}Showcases →{ph5}"
|
||
#~ msgstr ""
|
||
|
||
#, python-brace-format
|
||
#~ msgctxt "page:index.html"
|
||
#~ msgid "{ph0}REA · loaded index.js · selected lines{ph1}"
|
||
#~ msgstr ""
|
||
|
||
#, python-brace-format
|
||
#~ msgctxt "page:index.html"
|
||
#~ msgid "{ph0}Selected settings from the inspected script{ph1}"
|
||
#~ msgstr ""
|
||
|
||
#, python-brace-format
|
||
#~ msgctxt "page:index.html"
|
||
#~ msgid "{ph0}Readable summary of the % handler{ph1}"
|
||
#~ msgstr ""
|
||
|
||
#, python-brace-format
|
||
#~ msgctxt "page:index.html"
|
||
#~ msgid "{ph0}REA · selected original instructions{ph1}"
|
||
#~ msgstr ""
|
||
|
||
#, python-brace-format
|
||
#~ msgctxt "page:index.html"
|
||
#~ msgid "{ph0}Operator IDs · Microsoft’s source{ph1}"
|
||
#~ msgstr ""
|
||
|
||
#, python-brace-format
|
||
#~ msgctxt "page:index.html"
|
||
#~ msgid "{ph0}Join the community{ph1} {ph2}Follow @reatools on X{ph3}"
|
||
#~ msgstr ""
|
||
|
||
#, python-brace-format
|
||
#~ msgctxt "page:showcase/aegis/index.html"
|
||
#~ msgid "{ph0}Agent → REA{ph1}"
|
||
#~ msgstr ""
|
||
|
||
#, python-brace-format
|
||
#~ msgctxt "page:showcase/aegis/index.html"
|
||
#~ msgid "{ph0}REA → agent · selected results{ph1}"
|
||
#~ msgstr ""
|
||
|
||
#, python-brace-format
|
||
#~ msgctxt "page:showcase/aegis/index.html"
|
||
#~ msgid "{ph0}REA → agent · methods and callers{ph1}"
|
||
#~ msgstr ""
|
||
|
||
#, python-brace-format
|
||
#~ msgctxt "page:showcase/aegis/index.html"
|
||
#~ msgid "{ph0}REA · selected decompiled Java{ph1}"
|
||
#~ msgstr ""
|
||
|
||
#, python-brace-format
|
||
#~ msgctxt "page:showcase/aegis/index.html"
|
||
#~ msgid "{ph0}Readable summary · agent's interpretation{ph1}"
|
||
#~ msgstr ""
|
||
|
||
#, python-brace-format
|
||
#~ msgctxt "page:showcase/aegis/index.html"
|
||
#~ msgid "{ph0}REA · generateOTP, complete body{ph1}"
|
||
#~ msgstr ""
|
||
|
||
#, python-brace-format
|
||
#~ msgctxt "page:showcase/aegis/index.html"
|
||
#~ msgid ""
|
||
#~ "{ph0}Download Aegis APK{ph1}{ph2}Download Android analysis provider{ph3}"
|
||
#~ msgstr ""
|
||
|
||
#, python-brace-format
|
||
#~ msgctxt "page:showcase/ctf/index.html"
|
||
#~ msgid "{ph0}Agent → REA{ph1}"
|
||
#~ msgstr ""
|
||
|
||
#, python-brace-format
|
||
#~ msgctxt "page:showcase/ctf/index.html"
|
||
#~ msgid "{ph0}REA → agent · selected results{ph1}"
|
||
#~ msgstr ""
|
||
|
||
#, python-brace-format
|
||
#~ msgctxt "page:showcase/ctf/index.html"
|
||
#~ msgid "{ph0}REA → agent · selected instructions{ph1}"
|
||
#~ msgstr ""
|
||
|
||
#, python-brace-format
|
||
#~ msgctxt "page:showcase/ctf/index.html"
|
||
#~ msgid "{ph0}Agent → REA · read_bytes{ph1}"
|
||
#~ msgstr ""
|
||
|
||
#, python-brace-format
|
||
#~ msgctxt "page:showcase/ctf/index.html"
|
||
#~ msgid "{ph0}REA → agent · seventh entries{ph1}"
|
||
#~ msgstr ""
|
||
|
||
#, python-brace-format
|
||
#~ msgctxt "page:showcase/ctf/index.html"
|
||
#~ msgid "{ph0}Original executable · SHA-256{ph1}"
|
||
#~ msgstr ""
|
||
|
||
#, python-brace-format
|
||
#~ msgctxt "page:showcase/ctf/index.html"
|
||
#~ msgid "{ph0}Download the original challenge{ph1}{ph2}Download solver{ph3}"
|
||
#~ msgstr ""
|
||
|
||
#, python-brace-format
|
||
#~ msgctxt "page:showcase/dx-ball/index.html"
|
||
#~ msgid "{ph0}REA result · pseudocode excerpt{ph1}"
|
||
#~ msgstr ""
|
||
|
||
#, python-brace-format
|
||
#~ msgctxt "page:showcase/dx-ball/index.html"
|
||
#~ msgid "{ph0}Agent → REA · {ph1}{ph2}"
|
||
#~ msgstr ""
|
||
|
||
#, python-brace-format
|
||
#~ msgctxt "page:showcase/dx-ball/index.html"
|
||
#~ msgid "{ph0}REA → agent · instruction excerpt{ph1}"
|
||
#~ msgstr ""
|
||
|
||
#, python-brace-format
|
||
#~ msgctxt "page:showcase/dx-ball/index.html"
|
||
#~ msgid "{ph0}REA → agent · caller excerpt{ph1}"
|
||
#~ msgstr ""
|
||
|
||
#, python-brace-format
|
||
#~ msgctxt "page:showcase/dx-ball/index.html"
|
||
#~ msgid "{ph0}Agent → REA · two {ph1} requests{ph2}"
|
||
#~ msgstr ""
|
||
|
||
#, python-brace-format
|
||
#~ msgctxt "page:showcase/dx-ball/index.html"
|
||
#~ msgid "{ph0}REA byte results · decoded as doubles{ph1}"
|
||
#~ msgstr ""
|
||
|
||
#, python-brace-format
|
||
#~ msgctxt "page:showcase/dx-ball/index.html"
|
||
#~ msgid "{ph0}Start with your own target{ph1}"
|
||
#~ msgstr ""
|
||
|
||
#, python-brace-format
|
||
#~ msgctxt "page:showcase/index.html"
|
||
#~ msgid ""
|
||
#~ "{ph0}APK{ph1} {ph2}→{ph3} {ph4}Generating code{ph5} {ph6}→{ph7} "
|
||
#~ "{ph8}Recovered rule{ph9} {ph10}→{ph11} {ph12}Adjustable clock{ph13}"
|
||
#~ msgstr ""
|
||
|
||
#, python-brace-format
|
||
#~ msgctxt "page:showcase/index.html"
|
||
#~ msgid ""
|
||
#~ "{ph0}Binary{ph1} {ph2}→{ph3} {ph4}Checking code{ph5} {ph6}→{ph7} "
|
||
#~ "{ph8}Equations{ph9} {ph10}→{ph11} {ph12}Correct!{ph13}"
|
||
#~ msgstr ""
|
||
|
||
#, python-brace-format
|
||
#~ msgctxt "page:showcase/index.html"
|
||
#~ msgid ""
|
||
#~ "{ph0}Executable{ph1} {ph2}→{ph3} {ph4}REA findings{ph5} {ph6}→{ph7} "
|
||
#~ "{ph8}Recovered C{ph9} {ph10}→{ph11} {ph12}Validation{ph13}"
|
||
#~ msgstr ""
|
||
|
||
#, python-brace-format
|
||
#~ msgctxt "page:showcase/index.html"
|
||
#~ msgid ""
|
||
#~ "{ph0}Packaged app{ph1} {ph2}→{ph3} {ph4}Exposed API{ph5} {ph6}→{ph7} "
|
||
#~ "{ph8}IPC wrappers{ph9} {ph10}→{ph11} {ph12}Clipboard{ph13}"
|
||
#~ msgstr ""
|
||
|
||
#, python-brace-format
|
||
#~ msgctxt "page:showcase/index.html"
|
||
#~ msgid ""
|
||
#~ "{ph0}Original DOS code{ph1} {ph2}→{ph3} {ph4}REA instructions{ph5} "
|
||
#~ "{ph6}→{ph7} {ph8}Angle calculation{ph9} {ph10}→{ph11} {ph12}Bullet "
|
||
#~ "ring{ph13}"
|
||
#~ msgstr ""
|
||
|
||
#, python-brace-format
|
||
#~ msgctxt "page:showcase/notion/index.html"
|
||
#~ msgid "{ph0}Exposed page API{ph1}"
|
||
#~ msgstr ""
|
||
|
||
#, python-brace-format
|
||
#~ msgctxt "page:showcase/notion/index.html"
|
||
#~ msgid "{ph0}Renderer IPC call{ph1}"
|
||
#~ msgstr ""
|
||
|
||
#, python-brace-format
|
||
#~ msgctxt "page:showcase/notion/index.html"
|
||
#~ msgid "{ph0}Sent to the system clipboard{ph1}"
|
||
#~ msgstr ""
|
||
|
||
#, python-brace-format
|
||
#~ msgctxt "page:showcase/notion/index.html"
|
||
#~ msgid "{ph0}Saved locally by Notion{ph1}"
|
||
#~ msgstr ""
|
||
|
||
#, python-brace-format
|
||
#~ msgctxt "page:showcase/notion/index.html"
|
||
#~ msgid "{ph0}Markdown input{ph1}"
|
||
#~ msgstr ""
|
||
|
||
#, python-brace-format
|
||
#~ msgctxt "page:showcase/notion/index.html"
|
||
#~ msgid "{ph0}Structured parser output · excerpt{ph1}"
|
||
#~ msgstr ""
|
||
|
||
#, python-brace-format
|
||
#~ msgctxt "page:showcase/notion/index.html"
|
||
#~ msgid "{ph0}Analyze your own app{ph1}"
|
||
#~ msgstr ""
|
||
|
||
#, python-brace-format
|
||
#~ msgctxt "page:showcase/th04/index.html"
|
||
#~ msgid "{ph0}Agent → REA{ph1}"
|
||
#~ msgstr ""
|
||
|
||
#, python-brace-format
|
||
#~ msgctxt "page:showcase/th04/index.html"
|
||
#~ msgid "{ph0}REA → agent · selected fields{ph1}"
|
||
#~ msgstr ""
|
||
|
||
#, python-brace-format
|
||
#~ msgctxt "page:showcase/th04/index.html"
|
||
#~ msgid "{ph0}Agent → REA · {ph1}{ph2}"
|
||
#~ msgstr ""
|
||
|
||
#, python-brace-format
|
||
#~ msgctxt "page:showcase/th04/index.html"
|
||
#~ msgid "{ph0}REA → agent · instruction excerpt{ph1}"
|
||
#~ msgstr ""
|
||
|
||
#, python-brace-format
|
||
#~ msgctxt "page:showcase/th04/index.html"
|
||
#~ msgid "{ph0}Same function result · aim excerpt{ph1}"
|
||
#~ msgstr ""
|
||
|
||
#, python-brace-format
|
||
#~ msgctxt "page:showcase/th04/index.html"
|
||
#~ msgid "{ph0}Corresponding maintained C++{ph1}"
|
||
#~ msgstr ""
|
||
|
||
#, python-brace-format
|
||
#~ msgctxt "page:showcase/th04/index.html"
|
||
#~ msgid "{ph0}Ring macro · TH04 branch, excerpt{ph1}"
|
||
#~ msgstr ""
|
||
|
||
#, python-brace-format
|
||
#~ msgctxt "page:showcase/th04/index.html"
|
||
#~ msgid "{ph0}Angle and velocity · source excerpt{ph1}"
|
||
#~ msgstr ""
|