rea/website/locales/fa/messages.po

13228 lines
533 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

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

#
msgid ""
msgstr ""
"Project-Id-Version: REA website\n"
"Language: fa\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}از مخزن و گیت به عنوان حافظه کاری استفاده کنید.{ph1} استدلال را با کد "
"نگه دارید. نقاط بازرسی گیت اجازه دهید جلسه بعدی پس از پایان مکالمه ادامه "
"یابد."
#. {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}مرجع تأیید (اوراکل) را نیز آزمایش کنید.{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, من شروع به کاوش دوباره عامل محور جدی. ميخواستم ببينم که يه "
"مامور چقدر ميتونه با دسترسي به برنامه و ابزار توسعه معمولي به اينجا برسه "
"بازسازی توهو به من یک پروژه قابل توجهی داد که در آن می توانستم بفهمم."
#: 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} بازسازی "
"GensokyoClub{ph3}. منبع عمومی آنها به من یک پایه قابل توجهی داد. با دانش "
"ساخت و ساز و سابقه کمک هایی که در ادامه حفظ کردم ، همراه بود."
#: 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 اوت ، تقریبا یازده روز پس از شروع "
"ادامه ، انجام شد. یک نسخه وب به دنبال آن بود. نسخه بومی Linux 64 بیتی در 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 ""
"چیزی که مرا تحت تاثیر قرار داد این بود که کار به برنامه ای رسیده بود که مردم"
" می توانستند اجرا کنند. رسیدن به آنجا نیاز به دنبال مشکلات فراتر از یک "
"عملکرد فردی دارد. حتی وقتی دو تابع به صورت جداگانه درست به نظر می رسیدند ، "
"می توانستند به طور تصادفی از نسخه های جداگانه ای از حالت استفاده کنند که "
"باید به اشتراک گذاشته می شد."
#. {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 ""
"یک مرجع تأیید (اوراکل) نرم افزاری است که کسی نوشته است. 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} منبع را اصلاح کرد و مقایسه را انجام داد بایت "
"های واقعی ثابت مرجع را بررسی کنید. A {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}مرجع تأیید (اوراکل) نیز نیاز به بازسازی داشت.{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 ""
"این مهم است وقتی که تیم بیشتر یک نفر است که با ماموران کار می کند. من شخصا "
"نمی توانم هر خطی را که تولید می کنند بازرسی کنم ، بنابراین اعتماد به نفس من "
"بر روی چک های آنها استوار است. نقطه کور یک مرجع تایید مشترک (اوراکل) می "
"تواند بسیاری از تحقیقات را قبل از اینکه متوجه آن شوم ، تحت تاثیر قرار دهد. "
"باید بفهمم که چک کننده واقعا چه چیزی را تایید می کند و آن را در برابر مواردی"
" که باید شکست بخورند تست می کند."
#. {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 ""
"GensokyoClub {ph0}عمومی README{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 ""
"ظهور grifters (تجزیه هوش مصنوعی و پورت ها) در این فضا گرفتن از کار ما یک "
"تصویر بد برای تلاش های تجزیه آینده را نقاشی می کند…"
#: 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 ""
"این اطلاعیه همچنین تلفات روانی را بر روی نگهدارنده ها توصیف می کند. سیاست "
"مشارکت آنها درخواست های pull را که عمدتا با هوش مصنوعی تولید شده است ، حذف "
"می کند. آنها وقت آزادشان را به کار سختی اختصاص داده اند ، و این کار به ادامه"
" من کمک کرد. من به تلاش پشتش احترام ميذارم اختلاف نظر که می خواهم در مورد آن"
" بحث کنم این است که بازسازی چگونه باید ادامه یابد و چگونه باید یک سهم را "
"قضاوت کرد."
#: 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 ""
"منبع: GensokyoClub {ph0}اطلاعیه README{ph1}، در 10 اکتبر 2026 بررسی شد و "
"{ph2}سیاست مشارکت{ph3}. نقل قول یک گزیده کوتاه است. TH08 {ph4}اعتبارات و "
"منشأ{ph5} مرز ادامه را ثبت کنید."
#: 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}، گلوله رو شلیک کن ، ارزش اون تجربه رو خیلی راحت تر دید. "
"مخزن آن در 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}، داستان سرزمین لوتوس ، این کار را به دوران PC-98 dos برد. "
"هدف در حال حاضر یک محیط 16 بیتی با چهار برنامه همکاری بود. درک رفتار سخت "
"افزاری آن نیاز به شواهد متفاوتی از بازی های Windows داشت. موجود {ph2}کار "
"ReC98{ph3} ما دانش ارزشمندی و منبع مواد را در اینجا نیز به ما داد."
#: 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}مرجع تأیید دوم (اوراکل){ph1} در طول "
"سوم. اولین مرجع تأیید (اوراکل) بررسی می کند که آیا منبع تغییر یافته ما هنوز "
"کد و داده های اصلی مربوطه را بازتولید می کند یا خیر. دوم بررسی می کند که "
"برنامه بازسازی شده هنوز در مسیرهایی که ما تمرین می کنیم درست می سازد و رفتار"
" می کند."
#: 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 ""
"آنها اشتباهات مختلفی را می گیرند. تغییر نوع می تواند دستورالعمل های تولید "
"شده را تغییر دهد. تغییر مالکیت می تواند دو قسمت از بازی را با استفاده از "
"نسخه های مختلف حالت ترک کند. نگه داشتن هر دو چک در دسترس به عامل یک شکست "
"مشخص برای تحقیق قبل از حمل یک refactor بیشتر می دهد."
#: 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} ساخت پلتفرم اصلی "
"را در اولویت قرار می دهد ، بنابراین کار معنایی می تواند از آن به عنوان مرجع "
"قبل از شروع پورت استفاده کند."
#. {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}کارخانه بازسازی توهو{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 ""
"این تاریخ ها نقاط بازرسی ثبت شده پروژه را توصیف می کنند که در تاریخ 10 اکتبر"
" 2026 با تاریخچه عمومی GitHub بررسی شده است. زمان سپری شده زمان تقویم بین "
"commits است. حضور منبع ، مقایسه دقیق ، ساخت و نتیجه زمان اجرا هر نام یک نقطه"
" عطف متفاوت است."
#. {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},"
" {ph6}24 اوت Linux پورت{ph7}, {ph8}26 آگوست نسخه وب{ph9} و {ph10}30 آگوست "
"نسخه 64 بیتی Linux{ph11}."
#. {ph0}: <strong>
#. {ph1}: </strong>
#. {ph2}: <a
#. href="https://github.com/N0zoM1z0/th095/blob/8c31e6f892d945423b7f7b439747a2bd915f82d8/docs/PROGRESS.md"
#. >
#. {ph3}: </a >
#. {ph4}: <a
#. href="https://github.com/N0zoM1z0/th095/blob/0fa857fb2b2ec6237732e4d6be8d0a28069c9330/docs/PROGRESS.md"
#. >
#. {ph5}: </a >
#. {ph6}: <a
#. href="https://github.com/N0zoM1z0/th095/blob/74baddfccb712d1311a4d6e7487a63cd1100452e/docs/PROGRESS.md"
#. >
#. {ph7}: </a >
#. {ph8}: <a
#. href="https://github.com/N0zoM1z0/th095/commit/33d46a0ee48f37060d973125a1a7632a40f8d998"
#. >
#. {ph9}: </a >
#. {ph10}: <a
#. href="https://github.com/N0zoM1z0/th095/blob/3442dcf29d9e0b5bef384a49bd0c9ad32a711826/docs/WHOLE_BUILD_TODO.md"
#. >
#. {ph11}: </a >
#: website/public/blog/touhou-reconstruction/index.html: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 مرجع تأیید (اوراکل) اصلاح:{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} کتاب بازی قابلیت خواندن TH08{ph3} و "
"{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} کارخانه {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 ""
"بازی را فشار دهید ، سپس از روی کاکتوس بپرید. حرکت لغزنده سرعت به سعی کنید یک"
" بازی کندتر و یا سریع تر; آن را به یک سرعت ثابت سوئیچ. قانون بازیابی شده را "
"انتخاب کنید تا از 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}نسخه مرورگر مشتق شده از Chromium wayou{ph1} با REA . "
"اون بار رو برگردوند {ph2}، شامل این شاخه در تابع به روز رسانی بازی:"
#. {ph0}: <code>SPEED: 6</code>
#. {ph1}: <code>ACCELERATION: 0.001</code>
#. {ph2}: <code>MAX_SPEED: 13</code>
#: website/public/examples/dino-lab/index.html: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 Bot از چت آن اضافه شده است."
#. {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 ""
"دستور setup refresh چاپ شده توسط update را دنبال کنید. اگه ماموريت رو از "
"طريق {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 "نصب مهارت از skills.sh کافيه ؟"
#. {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} REA راه اندازی{ph1} "
"برای اتصال سرور 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 با فایل های ارائه شده کار می کنند و نیازی به "
"تجزیه و تحلیل موتور برنامه های کد ماشین ندارند."
#. {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} محاسبه DX-Ball{ph1} و {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} ارائه راهنمایی برای "
"نمونه های بومی ، 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 "دستور Copy agent setup refresh"
#: 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 "کپی مثال تجزیه و تحلیل prompt"
#: 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 "دستور Copy scoped setup"
#: 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}دانلود نمونه زیپ{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} در پوشه Downloads کاربر. ستون ها عبارتند از {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 ""
"مسیر فایل ، formatter و write call در این handler با هم هستند. از مامور خود "
"بخواهید که این خطوط را نشان دهد اگر پاسخ آن آنها را از بین ببرد."
#. {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}مشاهده کد کامل ردیابی و ثبت REA نتیجه{ph1}."
#: 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 نصب و راه اندازی prompt"
#: website/public/first-investigation/index.html:243
msgctxt "page:first-investigation/index.html"
msgid "Copy setup command"
msgstr "دستور Copy setup"
#: 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 چک prompt"
#: website/public/first-investigation/index.html:435
msgctxt "page:first-investigation/index.html"
msgid "Copy formatter check command"
msgstr "دستور copy formatter check"
#: 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 "Windows PowerShell"
#. {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} (در دبیان / اوبونتو: {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 Bot از چت آن اضافه شده"
" است."
#: 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} منوی Start را باز کنید ، تایپ کنید {ph2}پاور شل{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}ترمینال{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} در File Explorer ، روی پوشه کلیک راست کرده و انتخاب "
"کنید {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 ، روی پوشه کلیک راست کنید ، گزینه hold را "
"انتخاب کنید {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 "کجا یه اپلیکیشن پیدا کنم ؟ فایل آسار?"
#. {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\&lt;you&gt;\AppData\Local\Programs\&lt;App&gt;\resources\app.asar</code
#. >
#: website/public/get-started/index.html:556
#, python-brace-format
msgctxt "page:get-started/index.html"
msgid "{ph0}Windows:{ph1} {ph2}"
msgstr "{ph0} Windows :{ph1} {ph2}"
#. {ph0}: <strong>
#. {ph1}: </strong>
#. {ph2}: <code
#. >/Applications/&lt;App&gt;.app/Contents/Resources/app.asar</code >
#. {ph3}: <em>
#. {ph4}: </em>
#: website/public/get-started/index.html:562
#, python-brace-format
msgctxt "page:get-started/index.html"
msgid ""
"{ph0}macOS:{ph1} {ph2} (right-click the app and choose {ph3}Show Package "
"Contents{ph4})"
msgstr ""
"{ph0} macOS :{ph1} {ph2} (روی برنامه کلیک راست کنید و انتخاب کنید {ph3}نمایش"
" محتویات بسته{ph4})"
#. {ph0}: <strong>
#. {ph1}: </strong>
#. {ph2}: <code>/opt/&lt;App&gt;/resources/app.asar</code>
#: website/public/get-started/index.html: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 و یک JDK 21 64 بیتی یا جدیدتر در "
"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 متصل کنید . دستور setup را در بالا اجرا کنید ؛ "
"این دستور یک نصب موجود را تشخیص می دهد یا یک برنامه نصب برای تأیید شما ارائه"
" می دهد."
#: 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} شی با یک {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 ""
"پروفایل پیوست شده از ابزارهای upstream legacy 1.4.0 با باینری اصلی که قبلا "
"در IDA باز شده است استفاده می کند . پروفایل بدون سر از api upstream "
"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} مسائل GitHub{ph1}{ph2}گزارش یک مشکل با دستور و تشخیص.{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 "کپی Node.js 24 دستورات برای 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 "کپی Node.js 24 دستورات برای 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 نصب و راه اندازی prompt"
#: website/public/get-started/index.html:456
msgctxt "page:get-started/index.html"
msgid "Copy agent setup command"
msgstr "دستور Copy agent setup"
#: 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 / لینوکس"
#: 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 "وقتی روی Export کلیک می کنید چه اتفاقی می افتد ؟"
#. {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}یادداشت مثال مرورگر{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}Capturel درخواست ، وضعیت پاسخ و"
" ساختار 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 ""
"مثال یادداشت های میزبان را با یک پروفایل مرورگر جداگانه و یک پورت اشکال "
"زدایی محلی باز کنید. در 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 ""
"هدف را با Notesl مثال یادداشت ها انتخاب کنید. جایگزین کنید {ph0} در زیر با "
"ID آن ، سپس اجرا:"
#: 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 در مثال یادداشت های محلی ضبط شده است"
#: 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 را شناسایی می کند {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 "کپی مثال prompt"
#: 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 ""
"یک برنامه یادداشت های کوچک یک ویژگی را در رندر ، پیش بارگذاری و فرآیند اصلی "
"گسترش می دهد. از REA برای اتصال API ، کانال IPC و file writer استفاده کنید."
#: 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} پل کلیپ بورد Notion{ph1}."
#: 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 ""
"یک مثال یادداشت های کاری را باز کنید ، یک درخواست صادرات را ضبط کنید و کد را"
" پیدا کنید که پاسخ آن را به یک دانلود تبدیل می کند."
#: 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 file "
"writer کلیک کنید."
#: 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}بین فرایندها{ph1}{ph2}{ph3}{ph4}{ph5}پیش بارگذاری یک کانال IPC را فرا "
"می خواند: یک پیام نامگذاری شده به فرآیند اصلی.{ph6}"
#. {ph0}: <span class="flow-label">
#. {ph1}: </span >
#. {ph2}: <span class="flow-node">
#. {ph3}: </span >
#. {ph4}: <span class="flow-note" >
#. {ph5}: <code>main.js</code>
#. {ph6}: </span >
#: website/public/guides/javascript/index.html: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} اون کانال رو "
"اداره ميکنه و به نويسنده CSV زنگ ميزنه{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 ""
"خواندن handler به سوال اصلی پاسخ می دهد: {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}دانلود نمونه زیپ{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}پل کلیپ بورد Notion را دنبال کنید{ph1} {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 ""
"ردیابی یادداشت 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 "کپی مثال prompt"
#: 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}نتیجه Decompiler / pseudocode:{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} در File Explorer ، روی فایل کلیک راست کرده و انتخاب "
"کنید {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 ، روی فایل کلیک راست کنید ، گزینه hold را "
"انتخاب کنید {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 "کپی مثال prompt"
#: 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}RE چیست؟{ph1}"
#. {ph0}: <a href="#how-rea-helps">
#. {ph1}: </a>
#: website/public/index.html:197
#, python-brace-format
msgctxt "page:index.html"
msgid "{ph0}How REA helps{ph1}"
msgstr "{ph0}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 ""
"در حال حاضر می دانم دوباره? {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 "نام operands و بررسی هر دو مسیر اپراتور."
#: 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. افکار و پاسخ ها یافته ها را "
"نشان می دهد. {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 "چرا مهندسی معکوس it ؟"
#. {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}نسخه مرورگر مشتق شده از Chromium wayou{ph1}."
#. {ph0}: <strong>
#. {ph1}: </strong>
#. {ph2}: <strong>
#. {ph3}: </strong>
#. {ph4}: <strong>
#. {ph5}: </strong>
#: website/public/index.html:682
#, python-brace-format
msgctxt "page:index.html"
msgid ""
"{ph0}Start at 6.{ph1} Add {ph2}0.001{ph3} each update without a collision, "
"while speed is below {ph4}13{ph5}."
msgstr ""
"{ph0}از 6 شروع کن{ph1} اضافه کردن {ph2}0.001{ph3} هر به روز رسانی بدون "
"برخورد ، در حالی که سرعت زیر است {ph4}13{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 "
"بود ؛ پس از 10000 ، 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}صفحه "
"دایناسور{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}مثال prompt * دکمه % را بازسازی کنید"
#. {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.1 تبدیل کنید.{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}کد % handler را "
"برگردانید{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}شاخه را با منبع مایکروسافت بررسی کنید ، سپس + و × "
"بالا را امتحان کنید.{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 ماشین حساب 11.2508.4.0, x64. خلاصه قابل خواندن "
"از نام های منبع عمومی مایکروسافت برای توضیح شاخه بازیابی شده استفاده می کند."
#. {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}موارد تست مایکروسافت{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 ""
"نمونه یادداشت های ما را دانلود کنید ، صادرات 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}مثال prompt * وب سایت"
#: 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}یک شماره GitHub را باز کنید{ph5} برای اشکالات و درخواست ویژگی."
#: 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 نصب و راه اندازی prompt"
#: website/public/index.html:264
msgctxt "page:index.html"
msgid "Copy setup command"
msgstr "دستور Copy setup"
#: 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 "کپی وب سایت project prompt"
#: 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} / اندروید"
#: website/public/showcase/aegis/index.html:185
msgctxt "page:showcase/aegis/index.html"
msgid "Case study · Aegis Authenticator"
msgstr "مطالعه موردی * Aegis Authenticator"
#. {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 "چگونه یک authenticator{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 برای یافتن محاسبه در یک APK "
"Android استفاده کنید ، سپس آن را با ساعتی که می توانید کنترل کنید بازسازی "
"کنید."
#: 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 * اندروید * انتشار رسمی APK * 6.9 MB"
#: 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}3,077 کلاس → روش های تولید{ph3}{ph4} "
"REA بسته را جستجو می کند و کد مورد استفاده نمایش و کپی را ردیابی می "
"کند.{ph5}"
#. {ph0}: <span class="flow-label">
#. {ph1}: </span >
#. {ph2}: <strong class="flow-node">
#. {ph3}: </strong >
#. {ph4}: <span class="flow-note" >
#. {ph5}: </span >
#: website/public/showcase/aegis/index.html: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 پیکربندی شده است."
" {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} دو مورد دیگر مربوط به نوار پیشرفت و حساب های وارداتی است. 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 ""
"ما روش های جاوا انتخاب شده 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 ""
"Verification روش های جاوا استخراج شده و دمو جدید را اجرا می کند. اندروید 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 ""
"Analysis 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 ""
"نماینده شما می تواند از طریق REA CLI با استفاده از دستور بالا ادامه دهد. "
"برای 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}تطبیق منبع commit{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 Android 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 مثال prompt"
#: 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}یک اسکریپت "
"پایتون معادلات را حل می کند. 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 * یک چک خلاصه"
#. {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 مورد نیاز دارد. انتخاب های همپوشانی "
"معادلاتی را ارائه می دهند که یک اسکریپت کوچک پایتون می تواند با هم حل کند."
#: website/public/showcase/ctf/index.html:574
msgctxt "page:showcase/ctf/index.html"
msgid "Python · solver excerpt"
msgstr "پایتون * گزیده حل کننده"
#. {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 ، فایل اجرایی اصلی را که پرچم حل شده را قبول می کند ، ثبت می "
"کند. تغییر یک کاراکتر انتخاب شده از {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. باینری یک ELF x86-64 است که 15248 بایت است."
#: 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 ساخته شده است."
#. {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 ""
"اسکریپت پرچم کاندیداها را چاپ می کند ؛ آن را در دستور برنامه چسبانید. حل "
"نیازها پایتون و {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 برای حل چک کننده پرچم مربع های نقاب دار DownUnderCTF استفاده کنید. "
"توابع چک کردن را پیدا کنید ، ماسک ها را استخراج کنید و یک پرچم بازیابی شده "
"را با برنامه اصلی مقایسه کنید."
#: 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 flag-checker"
#: website/public/showcase/ctf/index.html:262
msgctxt "page:showcase/ctf/index.html"
msgid "Copy CTF example prompt"
msgstr "کپی نمونه ctf prompt"
#: 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 solver گزیده"
#: 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 solver را کپی کنید"
#: 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 ""
"هدف یک نسخه c قابل نگهداری از بازی Windows 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 * C * REA"
#. {ph0}: <a href="../../assets/figures/dx-ball-sound-pan-investigation.svg" >
#. {ph1}: </a >
#: website/public/showcase/dx-ball/index.html:207
#, python-brace-format
msgctxt "page:showcase/dx-ball/index.html"
msgid ""
"One function, from executable to checked C. REA supplies the instructions, "
"callers and data reads; the reconstruction project implements and tests the "
"result. {ph0}Open figure{ph1}"
msgstr ""
"یک تابع ، از اجرایی به 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 ""
"یک مثال برای عامل کدگذاری شما ، با فایل اجرایی محلی در دسترس است. تحقیقات "
"زیر سوالات 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 برای بازرسی عملکرد استفاده کرد ، تماس گیرنده ضربه آجر آن را "
"دنبال کرد و ثابت ها را از فایل اجرایی خواند. این نتایج ورودی و ریاضی مورد "
"نیاز برای نوشتن تابع C زیر را فراهم می کند."
#. {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 "اولین نمایش decompiler"
#: 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} ورودی عدد صحیح را که از نمای decompiler گم شده است ، نشان می دهد."
#: 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 این تماس گیرنده را در اولین نتیجه شناسایی کرد. مقیاس دستورالعمل های قبلی"
" آن {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 ""
"بایت های بازگردانده شده دو ثابت ریاضی و مقیاس اولیه پان را ایجاد می کنند. "
"عامل اکنون مقادیر مورد نیاز برای عبارت C را دارد."
#: 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 ""
"پنج مرحله زیر را دنبال کنید. هر انتخاب دستورالعمل های اصلی و خطوط C را که "
"آنها اطلاع داده اند برجسته می کند."
#. {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 {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} به دست می آید {ph3}، "
"در نتایج callee 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 ""
"عملکرد ضربه آجر در {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 "3205 مورد رفتار"
#: 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 "
"را دنبال کنید و هدف اصلی تطبیق یافته آن را ارائه دهید. سپس اجرا کنید:"
#: 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} مخزن DX-Ball{ph1}{ph2}منبع فعلی ، پیشرفت و راه اندازی محلی.{ph3}"
#. {ph0}: <a href="../../guides/native/">
#. {ph1}: </a >
#. {ph2}: <span >
#. {ph3}: </span >
#: website/public/showcase/dx-ball/index.html:732
#, python-brace-format
msgctxt "page:showcase/dx-ball/index.html"
msgid ""
"{ph0}REA analysis workflow{ph1}{ph2}Follow the calculation, then use the "
"same approach with your own binary.{ph3}"
msgstr ""
"{ph0} گردش کار تجزیه و تحلیل REA{ph1}{ph2}محاسبه را دنبال کنید ، سپس از همان"
" رویکرد با باینری خود استفاده کنید.{ph3}"
#. {ph0}: <a href="https://github.com/N0zoM1z0/dx-
#. ball/blob/a55dca27ec0a07018c1b2c95ae2be027f7d8c3c4/docs/ENTITIES_OWNER.md"
#. >
#. {ph1}: </a >
#. {ph2}: <span >
#. {ph3}: </span >
#: website/public/showcase/dx-ball/index.html: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 ، "
"original-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 تحقیق صدا-پان; به صورت افقی روی صفحه نمایش های کوچکتر حرکت کنید"
#: 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 بازرسی می شود . یک تماس گیرنده با آجر 20 "
"به علاوه 30 بار tile_x را تامین می کند.دستورالعمل ها x را بارگذاری می کنند ،"
" با 1.5625 ضرب می کنند ، 500.0 را کم می کنند ، pan_scale را اعمال می کنند و "
"یک عدد صحیح را باز می گردانند. C نگهداری شده به طور مستقل با x86 اصلی در "
"3205 مورد و توسط vc4.0 compiler replay که با 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 "کپی مثال prompt"
#: 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 "کپی کامل مونتاژ پان صدا"
#: 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 ""
"اندروید ، بازی ، 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 "مطالعه موردی اندروید را بخوانید"
#: 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 ""
"بازرسی یک چالش downunderctf آسان با 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 رو به صفحه از طریق Notion بسته بندی JavaScript. بسته بندی های "
"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 بیتی را با 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"
" ، 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 * api رو به صفحه{ph1} {ph2}{ph3}{ph4} {ph5}پیش بارگذاری یک روش قابل "
"فراخوان را نشان می دهد.{ph6}"
#. {ph0}: <span class="flow-label">
#. {ph1}: </span>
#. {ph2}: <span class="flow-node">
#. {ph3}: <code>ipcRenderer.invoke</code>
#. {ph4}: </span>
#. {ph5}: <span class="flow-note" >
#. {ph6}: </span >
#: website/public/showcase/notion/index.html: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 · کنترل کننده فرآیند اصلی{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 برای ردیابی نحوه کپی متن و HTML Notion در کلیپ بورد "
"سیستم استفاده کنید. کد را در هر مرحله نشان دهید.{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} نتیجه در Notion ' s tab preload ، ضبط "
"شده با 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 ""
"نماینده این مکان ها را باز می کند ، عضو کلیپ بورد را در 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}. این داده های بلوک را به صورت"
" محلی نگه می دارد و یک ID را در 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 ""
"متن تصویری و شناسنامه. تست ماژول ضبط شده داده های بلوک را هنگام مطابقت IDs "
"بازیابی می کند ؛ یک ورودی قدیمی فقط متن و 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 ""
"در paste ، 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 "مثال دیگر: جداول Markdown"
#: 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 "جدول از طریق تجزیه کننده Markdown 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 ""
"پل کلیپ بورد از دسکتاپ Notion 7.6.1 می آید {ph0}: پیش بارگذاری برگه و {ph1}."
" این گزیده ها نام های متغیر کوچک شده را گسترش می دهند و کد غیر مرتبط را حذف "
"می کنند ؛ کمک کننده چک فرستنده با زیربنای آن نشان داده شده است {ph2} تماس "
"بگیرید"
#. {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}. تست های ماژول ذخیره"
" شده نشان می دهد که هر دو فیلتر صفحه و چت این جدول را حفظ می کنند. تجزیه "
"کننده های paste/import ، Structured 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} راهنمای برنامه JavaScript{ph1}{ph2}ویژگی صادرات یک برنامه کوچک "
"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} بازسازی DX-Ball{ph1}{ph2}دستورالعمل های بومی را به یک تابع C چک شده "
"دنبال کنید.{ph3}"
#: website/public/showcase/notion/index.html:6
msgctxt "page:showcase/notion/index.html"
msgid "Notion Electron Reverse Engineering: Clipboard — REA"
msgstr "Notion Electron مهندسی معکوس: کلیپ بورد-REA"
#: website/public/showcase/notion/index.html:7
msgctxt "page:showcase/notion/index.html"
msgid ""
"Follow Notion's clipboard API through Electron's preload, IPC wrappers and "
"main process, with short code excerpts and a look at its rich clipboard "
"format."
msgstr ""
"API کلیپ بورد Notion را از طریق پیش بارگذاری ، بسته بندی IPC و فرآیند اصلی "
"Electron ، با گزیده های کوتاه کد و نگاهی به قالب کلیپ بورد غنی آن دنبال "
"کنید."
#: 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 تجزیه و تحلیل prompt"
#: 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 handler wrapper گزیده"
#: 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 "بازیابی اطلاعات غنی کلیپ بورد در paste"
#: 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 "مطالعه موردی * Touhou 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 read قابل خواندن دنبال"
" کنید."
#: 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}اصلی.EXE{ph3}{ph4}فایل اجرایی PC-98 و کمک کننده"
" زاویه گلوله آن.{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 * با REA بازرسی کنید {ph1}{ph2}دستورالعمل ها + مرجع{ph3}{ph4}کد dos "
"بارگذاری شده را تأیید کنید و محاسبه زاویه را از فایل اجرایی بخوانید.{ph5}"
#. {ph0}: <span class="flow-label">
#. {ph1}: </span >
#. {ph2}: <strong class="flow-node">
#. {ph3}: </strong >
#. {ph4}: <span class="flow-note" >
#. {ph5}: </span >
#: website/public/showcase/th04/index.html: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}فضا → هدف → چرخش{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}2,139 بایت تطبیق{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 summary * هدف-خلاصه حلقه"
#. {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} استدلال پشته بارگذاری شده است {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} ضرب در 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} دو تفریق مختصات بازیکن-منهای-منشأ "
"را تشکیل می دهند. کمک کننده جهت زاویه ای را در {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} زاویه قالب را اضافه می کند. "
"الگوی اولیه ایلی آن را به صفر می رساند ؛ الگوهای دیگر می توانند از همان کمک "
"کننده با چرخش استفاده کنند."
#. {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 ""
"مجمع شاخه حلقه هدف ، محاسبه هدف و فروشگاه نهایی را انتخاب می کند. 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 کد تولید گلوله ، از جمله این کمک کننده را با "
"زنجیره ابزار توربو C 4 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 ' s تصویر لود"
#: 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 ""
"چک های کامپایلر بخش کامل کد bullet-add را شامل می شود ، از جمله این کمک "
"کننده. آنها همچنین سهم نقشه و جابجایی همپوشانی آن را مقایسه می کنند."
#. {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 بازی را از Ctained و مونتاژ نگهداری می کند. فراتر "
"از تولید گلوله ، منبع شامل مراحل ، کارفرمایان ، رندر ، ورودی ، منوها ، پایان"
" ها و مدیریت امتیاز است."
#. {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 ""
"کد dos اصلی 16 بیتی 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 مثال prompt"
#: 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 assembly گزیده"
#: 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 "بازی را فشار دهید ، سپس از روی کاکتوس بپرید."
#: website/public/assets/dino-demo.js:141
msgctxt "runtime"
msgid "Hit a cactus. Press Play again, or change the speed and restart."
msgstr ""
"ضربه به یک کاکتوس دوباره Play را فشار دهید یا سرعت را تغییر دهید و دوباره "
"راه اندازی کنید."
#: 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 "بازگشت"
# 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 "۳٬۲۰۵ آزمون"
# 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 "تطابق ۶۳ بایت"
#: 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 "۱. پرسش"
# 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 "برنامه / فایل / مرورگر"
# 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 "۲. بررسی و دنبال کردن"
#: 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 "۳. خواندن شواهد"
# 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 "۴. استفاده از نتیجه"
# 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 "IPC"
#: 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 "خلاصه قابل خواندن از % handler"
#: 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 "شناسه های اپراتور * منبع مایکروسافت"
#: 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 * جاوا تجزیه شده انتخاب شده"
#: 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 "دانلود 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 * read_bytes"
#: 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 "دانلود چالش اصلی"
#: 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 "ورودی Markdown"
#: 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}بنویسید {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 برای یک یادداشت با id 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+ npm همراه با {ph1}."
#. {ph0}: <span translate="no">Node.js</span>
#: website/public/get-started/index.html:192
#, python-brace-format
msgctxt "page:get-started/index.html"
msgid "Don't have {ph0}, or not sure?"
msgstr "ندارم {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 "
"لیتر:"
#. {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}چرا ماشین‌حساب برای {ph1} عدد 220 را می‌دهد؟{ph2}"
#. {ph0}: <span class="prompt-symbol" aria-hidden="true">
#. {ph1}: </span >
#. {ph2}: <span id="home-analysis-prompt" >
#. {ph3}: <span translate="no">200 + 10%</span>
#. {ph4}: </span >
#. {ph5}: <span class="terminal-cursor" aria-hidden="true">
#. {ph6}: </span>
#: website/public/index.html: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 ماشین حساب. چرا {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}برنامه ماشین حساب را راه اندازی می "
"کند{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 "اصلی/{ph0} * handler helper"
#. {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 "بازسازی * دینو-سرعت.js"
#~ msgctxt "page:faq/index.html"
#~ msgid ""
#~ "With Node.js and npm available, run setup, choose your coding agent and "
#~ "review the proposed changes."
#~ msgstr ""
#~ "با Node.js و npm در دسترس ، راه اندازی را اجرا کنید ، عامل کدگذاری خود را "
#~ "انتخاب کنید و تغییرات پیشنهادی را بررسی کنید."
#~ msgctxt "page:first-investigation/index.html"
#~ msgid "A supplied example · Node.js and npm · Your coding agent"
#~ msgstr "یک مثال ارائه شده · Node.js و npm * عامل کدگذاری شما"
#, python-brace-format
#~ msgctxt "page:first-investigation/index.html"
#~ msgid ""
#~ "Use a coding agent such as Claude Code, Codex or Cursor. You’ll need Node.js"
#~ " and npm; the {ph0}setup guide lists supported versions{ph1}."
#~ msgstr ""
#~ "از یک عامل کدگذاری مانند Claude Code, Codex یا Cursor. شما نیاز دارید "
#~ "Node.js و npm; {ph0}راهنمای راه اندازی لیست نسخه های پشتیبانی شده{ph1}."
#, python-brace-format
#~ msgctxt "page:first-investigation/index.html"
#~ msgid ""
#~ "{ph0}Page · renderer.js{ph1}{ph2}Export notes{ph3}{ph4}Calls {ph5}.{ph6}"
#~ msgstr ""
#~ "{ph0}صفحه * رندر.js{ph1}{ph2}یادداشت های صادراتی{ph3}{ph4}تماس ها "
#~ "{ph5}.{ph6}"
#, python-brace-format
#~ msgctxt "page:first-investigation/index.html"
#~ msgid ""
#~ "{ph0}Bridge · preload.js{ph1}{ph2}{ph3}{ph4}{ph5}Sends a named message to "
#~ "the main process.{ph6}"
#~ msgstr ""
#~ "{ph0}پل * پیش بار.js{ph1}{ph2}{ph3}{ph4}{ph5}یک پیام نامگذاری شده به فرآیند "
#~ "اصلی می فرستد.{ph6}"
#, python-brace-format
#~ msgctxt "page:first-investigation/index.html"
#~ msgid ""
#~ "{ph0}Handler · main.js{ph1}{ph2}Write notes.csv{ph3}{ph4}Calls the formatter"
#~ " in {ph5} and writes the file.{ph6}"
#~ msgstr ""
#~ "{ph0}Handler * اصلی.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 برای یک یادداشت با id 1 و عنوان سلام, \"REA\". "
#~ "سپس فرمت tocsv نمونه را با Node.js برای بررسی پیش بینی و خروجی واقعی را نشان"
#~ " دهید.{ph3}{ph4}{ph5}"
#~ msgctxt "page:first-investigation/index.html"
#~ msgid ""
#~ "The title stays in one quoted field; each quotation mark is doubled. This "
#~ "checks the formatter directly with Node.js."
#~ msgstr ""
#~ "عنوان در یک فیلد نقل قول شده باقی می ماند ؛ هر علامت نقل قول دو برابر می "
#~ "شود. این قالب را مستقیما با 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"
#~ " لیتر:"
#, python-brace-format
#~ msgctxt "page:guides/browser/index.html"
#~ msgid ""
#~ "{ph0}Open the example{ph1} · {ph2}Download export.js{ph3} · {ph4}Download "
#~ "notes.json{ph5}"
#~ msgstr ""
#~ "{ph0}مثال را باز کنید{ph1} · {ph2}دانلود صادرات.js{ph3} · {ph4}دانلود "
#~ "یادداشت ها.json{ph5}"
#, python-brace-format
#~ msgctxt "page:guides/javascript/index.html"
#~ msgid ""
#~ "Download the example and unzip it. The archive contains the complete {ph0} "
#~ "folder. Analyze it with Node.js and npm; Electron is not needed for this "
#~ "example."
#~ msgstr ""
#~ "مثال را دانلود کنید و آن را باز کنید. آرشیو شامل کامل {ph0} پوشه. تجزیه و "
#~ "تحلیل آن با Node.js و npm; Electron برای این مثال لازم نیست."
#, python-brace-format
#~ msgctxt "page:index.html"
#~ msgid ""
#~ "First time, or missing Node.js or a coding agent? {ph0}Follow the step-by-"
#~ "step setup guide →{ph1}"
#~ msgstr ""
#~ "اولین بار یا گمشده Node.js یا یک عامل برنامه نویسی ؟ {ph0}راهنمای راه "
#~ "اندازی گام به گام را دنبال کنید →{ph1}"
#, python-brace-format
#~ msgctxt "page:index.html"
#~ msgid "One question: {ph0}why does Calculator give 220 for 200 + 10%?{ph1}"
#~ msgstr "مثلاً: {ph0}چرا ماشین‌حساب برای 200 + 10% عدد 220 را می‌دهد؟{ph1}"
#, python-brace-format
#~ msgctxt "page:index.html"
#~ msgid ""
#~ "{ph0}›{ph1}{ph2}Use REA to inspect Windows Calculator. Why does 200 + 10% "
#~ "give 220?{ph3}{ph4}{ph5}"
#~ msgstr ""
#~ "{ph0}›{ph1}{ph2}استفاده کنید REA برای بازرسی Windows ماشین حساب. چرا 200 + "
#~ "10% 220 می دهند؟{ph3}{ph4}{ph5}"
#, python-brace-format
#~ msgctxt "page:index.html"
#~ msgid ""
#~ "We saw why {ph0}200 + 10% gives 220.{ph1} Now let’s recover the rules for "
#~ "both + and ×, and try them."
#~ msgstr ""
#~ "دیدیم چرا {ph0}200 + 10% می دهد 220.{ph1} حالا بیایید قوانین هر دو + و × را "
#~ "بازیابی کنیم و آنها را امتحان کنیم."
#, python-brace-format
#~ msgctxt "page:index.html"
#~ msgid ""
#~ "{ph0}01 · REA reads calc.exe{ph1}{ph2}It launches the Calculator "
#~ "app{ph3}{ph4}The code opens {ph5}. The agent then selects the installed "
#~ "app’s library.{ph6}"
#~ msgstr ""
#~ "{ph0}01 · REA \"کالک\" رو ميخونه.exe{ph1}{ph2}برنامه ماشین حساب را راه "
#~ "اندازی می کند{ph3}{ph4}کد باز می شود {ph5}. سپس نماینده کتابخانه برنامه نصب "
#~ "شده را انتخاب می کند.{ph6}"
#, python-brace-format
#~ msgctxt "page:showcase/aegis/index.html"
#~ msgid ""
#~ "{ph0}›{ph1}{ph2}Use REA to inspect aegis-v3.4.3.apk. Find how it generates "
#~ "the six-digit login code, explain why it changes every 30 seconds, and "
#~ "rebuild a small demo where I can change the time.{ph3}{ph4}{ph5}"
#~ msgstr ""
#~ "{ph0}›{ph1}{ph2}استفاده کنید REA برای بازرسی aegis-v3.4.3.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 "اصلی / شاخص.js * handler helper"
#~ msgctxt "page:showcase/notion/index.html"
#~ msgid "main/index.js · clipboard receiver"
#~ msgstr "اصلی / شاخص.گیرنده کلیپ بورد js · "
#~ msgctxt "page:first-investigation/index.html"
#~ msgid "main.js · lines 8–12"
#~ msgstr "اصلی.js * خطوط 8-12"
#~ msgctxt "page:guides/browser/index.html"
#~ msgid "export.js · example source excerpt"
#~ msgstr "صادرات.js * نمونه منبع گزیده"
#~ msgctxt "page:guides/javascript/index.html"
#~ msgid "renderer.js · example source"
#~ msgstr "رندر.js * منبع مثال"
#~ msgctxt "page:guides/javascript/index.html"
#~ msgid "preload.js · example source"
#~ msgstr "پیش بار.js * منبع مثال"
#~ msgctxt "page:guides/javascript/index.html"
#~ msgid "main.js · example source"
#~ msgstr "اصلی.js * منبع مثال"
#~ msgctxt "page:index.html"
#~ msgid "REA · loaded index.js · selected lines"
#~ msgstr "REA * شاخص لود شده.js * خطوط انتخاب شده"
#, python-brace-format
#~ msgctxt "page:faq/index.html"
#~ msgid ""
#~ "{ph0}›{ph1}{ph2}Use REA to analyze /absolute/path/to/app and explain how it "
#~ "exports data. Show the relevant code and source locations.{ph3}{ph4}{ph5}"
#~ msgstr ""
#~ "{ph0}›{ph1}{ph2}استفاده کنید REA برای تجزیه و تحلیل /مطلق/مسیر/به/برنامه و "
#~ "توضیح چگونگی صادرات داده ها. مکان های کد و منبع مربوطه را نشان "
#~ "دهید.{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 @ آخرین تنظیمات."
#~ " نقشه ي راه اندازي رو براي تاييد بهم نشون بده ، بعد نصبش رو تاييد "
#~ "کن.{ph3}{ph4}{ph5}"
#, python-brace-format
#~ msgctxt "page:first-investigation/index.html"
#~ msgid ""
#~ "{ph0}›{ph1}{ph2}Download https://rea.tools/examples/notes-example.zip into a"
#~ " new example folder and unpack it. Use REA to find what happens when I click"
#~ " Export notes. Show where notes.csv is written, which fields it contains, "
#~ "and the relevant files and lines.{ph3}{ph4}{ph5}"
#~ msgstr ""
#~ "{ph0}›{ph1}{ph2}دانلود فیلم https://rea.tools/examples/notes-example.zip به "
#~ "یک پوشه مثال جدید بروید و آن را باز کنید. استفاده کنید REA برای پیدا کردن "
#~ "آنچه که اتفاق می افتد زمانی که من روی یادداشت های صادرات کلیک کنید. نشان می "
#~ "دهد که در آن یادداشت.csv نوشته شده است ، چه زمینه هایی را شامل می شود ، و "
#~ "فایل ها و خطوط مربوطه.{ph3}{ph4}{ph5}"
#, python-brace-format
#~ msgctxt "page:get-started/index.html"
#~ msgid ""
#~ "{ph0}›{ph1}{ph2}Install REA and connect it to this coding agent using npx "
#~ "rea-agents@latest setup. Show me the setup plan for approval, then verify "
#~ "the installation.{ph3}{ph4}{ph5}"
#~ msgstr ""
#~ "{ph0}›{ph1}{ph2}نصب کنید REA و با استفاده از npx rea-agents @ آخرین تنظیمات."
#~ " نقشه ي راه اندازي رو براي تاييد بهم نشون بده ، بعد نصبش رو تاييد "
#~ "کن.{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 @ آخرین تنظیمات."
#~ " نقشه ي راه اندازي رو براي تاييد بهم نشون بده ، بعد نصبش رو تاييد "
#~ "کن.{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 "× pan_scale"
#, 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 ""